{"version":3,"sources":["webpack:///./node_modules/devextreme/esm/localization/language_codes.js","webpack:///./node_modules/devextreme/esm/localization/cldr-data/first_day_of_week_data.js","webpack:///./node_modules/devextreme/esm/localization/intl/date.js","webpack:///./node_modules/devextreme/esm/localization/date.js","webpack:///./src/api/Report-Setting.js","webpack:///./src/views/modules/data-processing/dataProcessingHistory.vue?4ed2","webpack:///src/views/modules/data-processing/dataProcessingHistory.vue","webpack:///./src/views/modules/data-processing/dataProcessingHistory.vue?2951","webpack:///./src/views/modules/data-processing/dataProcessingHistory.vue","webpack:///./src/views/modules/data-processing/dataProcessingHistory.vue?2f63","webpack:///./node_modules/devextreme/esm/localization/ldml/date.formatter.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.utils.js","webpack:///./node_modules/devextreme/esm/localization/ldml/date.format.js","webpack:///./node_modules/devextreme/esm/localization/default_date_names.js","webpack:///./node_modules/devextreme/esm/format_helper.js","webpack:///./node_modules/devextreme/esm/ui/shared/filtering.js","webpack:///./node_modules/devextreme/esm/localization/ldml/date.parser.js","webpack:///./node_modules/jszip/dist/jszip.min.js","webpack:///./node_modules/devextreme-vue/data-grid.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.modules.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.core.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.column_state_mixin.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.columns_view.js","webpack:///./node_modules/devextreme/esm/ui/shared/accessibility.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.accessibility.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.column_headers.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.column_headers.js","webpack:///./node_modules/devextreme/esm/core/utils/date_serialization.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.columns_controller.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.columns_controller.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.data_source_adapter.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.data_source_adapter.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.data_controller.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.data_controller.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.sorting_mixin.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.sorting.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.sorting.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.rows.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.rows.js","webpack:///./node_modules/devextreme/esm/ui/context_menu/ui.menu_base.edit.strategy.js","webpack:///./node_modules/devextreme/esm/ui/context_menu/ui.menu_base.js","webpack:///./node_modules/devextreme/esm/ui/context_menu/ui.context_menu.js","webpack:///./node_modules/devextreme/esm/ui/context_menu.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.context_menu.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.context_menu.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.error_handling.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.error_handling.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.grid_view.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.grid_view.js","webpack:///./node_modules/devextreme/esm/ui/toolbar/ui.toolbar.menu.js","webpack:///./node_modules/devextreme/esm/ui/toolbar/ui.toolbar.utils.js","webpack:///./node_modules/devextreme/esm/ui/drop_down_menu.js","webpack:///./node_modules/devextreme/esm/ui/toolbar/ui.toolbar.drop_down_menu.js","webpack:///./node_modules/devextreme/esm/ui/toolbar.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.header_panel.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.header_panel.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.base.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.state_storing_core.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.state_storing.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.state_storing.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.selection.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.selection.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.column_chooser.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.column_chooser.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.grouping.core.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.utils.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.grouping.expanded.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.grouping.collapsed.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.grouping.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.master_detail.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.master_detail.js","webpack:///./node_modules/devextreme/esm/ui/number_box/utils.js","webpack:///./node_modules/devextreme/esm/ui/number_box/number_box.caret.js","webpack:///./node_modules/devextreme/esm/ui/number_box/number_box.spin.js","webpack:///./node_modules/devextreme/esm/ui/number_box/number_box.spins.js","webpack:///./node_modules/devextreme/esm/ui/number_box/number_box.base.js","webpack:///./node_modules/devextreme/esm/ui/number_box/number_box.mask.js","webpack:///./node_modules/devextreme/esm/ui/number_box/number_box.js","webpack:///./node_modules/devextreme/esm/ui/number_box.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.mask.parts.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_utils.js","webpack:///./node_modules/devextreme/esm/events/gesture/swipeable.js","webpack:///./node_modules/devextreme/esm/ui/calendar/ui.calendar.navigator.js","webpack:///./node_modules/devextreme/esm/ui/calendar/ui.calendar.base_view.js","webpack:///./node_modules/devextreme/esm/ui/calendar/ui.calendar.views.js","webpack:///./node_modules/devextreme/esm/ui/calendar/ui.calendar.js","webpack:///./node_modules/devextreme/esm/ui/calendar.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.calendar.js","webpack:///./node_modules/devextreme/esm/renovation/ui/scroll_view/utils/scroll_direction.js","webpack:///./node_modules/devextreme/esm/renovation/ui/scroll_view/utils/convert_location.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_view_roller.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_view.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.date_view.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.native.js","webpack:///./node_modules/devextreme/esm/ui/box.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.time_view.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.calendar_with_time.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.list.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.base.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.mask.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.js","webpack:///./node_modules/devextreme/esm/ui/shared/ui.editor_factory_mixin.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.editor_factory.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.editor_factory.js","webpack:///./node_modules/devextreme/esm/ui/dialog.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.editing_constants.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.editing.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.editing.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.editing_row_based.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.editing_row_based.js","webpack:///./node_modules/devextreme/esm/ui/form/ui.form.items_runtime_info.js","webpack:///./node_modules/devextreme/esm/ui/multi_view/ui.multi_view.animation.js","webpack:///./node_modules/devextreme/esm/ui/multi_view.js","webpack:///./node_modules/devextreme/esm/ui/tabs/item.js","webpack:///./node_modules/devextreme/esm/ui/tabs/constants.js","webpack:///./node_modules/devextreme/esm/renovation/ui/scroll_view/utils/get_scroll_left_max.js","webpack:///./node_modules/devextreme/esm/renovation/ui/scroll_view/utils/get_boundary_props.js","webpack:///./node_modules/devextreme/esm/ui/tabs.js","webpack:///./node_modules/devextreme/esm/ui/tab_panel/item.js","webpack:///./node_modules/devextreme/esm/ui/tab_panel.js","webpack:///./node_modules/devextreme/esm/ui/form/ui.form.item_option_action.js","webpack:///./node_modules/devextreme/esm/ui/form/ui.form.utils.js","webpack:///./node_modules/devextreme/esm/ui/form/ui.form.item_options_actions.js","webpack:///./node_modules/devextreme/esm/ui/responsive_box.js","webpack:///./node_modules/devextreme/esm/ui/form/constants.js","webpack:///./node_modules/devextreme/esm/ui/validation/default_adapter.js","webpack:///./node_modules/devextreme/esm/ui/validator.js","webpack:///./node_modules/devextreme/esm/ui/form/ui.form.layout_manager.utils.js","webpack:///./node_modules/devextreme/esm/ui/form/components/label.js","webpack:///./node_modules/devextreme/esm/ui/form/components/field_item.js","webpack:///./node_modules/devextreme/esm/ui/form/components/button_item.js","webpack:///./node_modules/devextreme/esm/ui/form/components/empty_item.js","webpack:///./node_modules/devextreme/esm/ui/form/ui.form.layout_manager.js","webpack:///./node_modules/devextreme/esm/ui/validation_summary.js","webpack:///./node_modules/devextreme/esm/ui/validation_group.js","webpack:///./node_modules/devextreme/esm/ui/form/ui.form.js","webpack:///./node_modules/devextreme/esm/ui/form.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.editing_form_based.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.editing_form_based.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.editing_cell_based.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.editing_cell_based.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.validating.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.validating.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid.core.virtual_data_loader.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.virtual_scrolling_core.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.virtual_scrolling.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.virtual_scrolling.js","webpack:///./node_modules/devextreme/esm/ui/overlay/utils.js","webpack:///./node_modules/devextreme/esm/ui/menu/ui.submenu.js","webpack:///./node_modules/devextreme/esm/ui/menu/ui.menu.js","webpack:///./node_modules/devextreme/esm/ui/menu.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.filter_row.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.filter_row.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.header_filter_core.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.header_filter.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.header_filter.js","webpack:///./node_modules/devextreme/esm/ui/filter_builder/between.js","webpack:///./node_modules/devextreme/esm/ui/filter_builder/ui.filter_operations_dictionary.js","webpack:///./node_modules/devextreme/esm/ui/filter_builder/utils.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.filter_custom_operations.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.filter_sync.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.filter_sync.js","webpack:///./node_modules/devextreme/esm/ui/filter_builder/filter_builder.js","webpack:///./node_modules/devextreme/esm/ui/filter_builder.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.filter_builder.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.filter_builder.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.filter_panel.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.filter_panel.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.search.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.search.js","webpack:///./node_modules/devextreme/esm/renovation/component_wrapper/grid_pager.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/utils/get_element_width.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/resizable_container.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/common/base_pager_props.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/common/pager_props.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/info.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/common/keyboard_action_context.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/common/light_button.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/common/consts.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/pages/page.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/pages/large.js","webpack:///./node_modules/devextreme/esm/renovation/ui/editors/common/editor_state_props.js","webpack:///./node_modules/devextreme/esm/renovation/ui/editors/common/editor_label_props.js","webpack:///./node_modules/devextreme/esm/renovation/ui/editors/number_box.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/utils/calculate_values_fitted_width.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/pages/small.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/pages/page_index_selector.js","webpack:///./node_modules/devextreme/esm/renovation/ui/editors/drop_down_editors/select_box.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/page_size/small.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/page_size/large.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/page_size/selector.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/content.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/pager.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/pager.j.js","webpack:///./node_modules/devextreme/esm/ui/pager.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.pager.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.pager.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.columns_resizing_reordering.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.columns_resizing_reordering.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.keyboard_navigation.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/aggregate_calculator.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.keyboard_navigation.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.summary.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.column_fixing.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.column_fixing.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.adaptivity.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.virtual_columns_core.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.adaptivity.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.virtual_columns.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.export.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.virtual_columns.js","webpack:///./node_modules/devextreme/esm/exporter/file_saver.js","webpack:///./node_modules/devextreme/esm/exporter/excel_format_converter.js","webpack:///./node_modules/devextreme/esm/exporter/excel/excel.tag_helper.js","webpack:///./node_modules/devextreme/esm/exporter/excel/excel.cell_alignment_helper.js","webpack:///./node_modules/devextreme/esm/exporter/excel/excel.color_helper.js","webpack:///./node_modules/devextreme/esm/exporter/excel/excel.pattern_fill_helper.js","webpack:///./node_modules/devextreme/esm/exporter/excel/excel.fill_helper.js","webpack:///./node_modules/devextreme/esm/exporter/excel/excel.font_helper.js","webpack:///./node_modules/devextreme/esm/exporter/excel/excel.cell_format_helper.js","webpack:///./node_modules/devextreme/esm/exporter/excel/excel.number_format_helper.js","webpack:///./node_modules/devextreme/esm/exporter/excel/excel.file.js","webpack:///./node_modules/devextreme/esm/exporter/excel_creator.js","webpack:///./node_modules/devextreme/esm/color.js","webpack:///./node_modules/devextreme/esm/core/utils/svg.js","webpack:///./node_modules/devextreme/esm/exporter/image_creator.js","webpack:///./node_modules/devextreme/esm/exporter/svg_creator.js","webpack:///./node_modules/devextreme/esm/exporter/pdf_creator.js","webpack:///./node_modules/devextreme/esm/exporter.js","webpack:///./node_modules/devextreme/esm/ui/button_group.js","webpack:///./node_modules/devextreme/esm/ui/drop_down_button.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.export.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.focus.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.focus.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.row_dragging.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.row_dragging.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.js","webpack:///./node_modules/devextreme/esm/ui/data_grid.js","webpack:///./node_modules/devextreme/esm/core/utils/date.js"],"names":["LANGUAGE_CODES","ar","bg","ca","cs","da","de","el","en","es","fi","fr","he","hu","is","it","ja","ko","nl","no","pl","pt","rm","ro","ru","hr","sk","sq","sv","th","tr","ur","id","uk","be","sl","et","lv","lt","tg","fa","vi","hy","az","eu","hsb","mk","tn","xh","zu","af","ka","fo","hi","mt","se","ga","ms","kk","ky","sw","tk","uz","tt","bn","pa","gu","or","ta","te","kn","ml","as","mr","sa","mn","bo","cy","km","lo","gl","kok","syr","si","iu","am","tzm","ne","fy","ps","fil","dv","ha","yo","quz","nso","ba","lb","kl","ig","ii","arn","moh","br","ug","mi","oc","co","gsw","sah","qut","rw","wo","prs","gd","smn","sms","zh","nn","bs","sma","nb","sr","dsb","smj","getLanguageId","locale","agq","ak","asa","ast","bas","bem","bez","bm","ce","cgg","ckb","dje","dua","dyo","ee","eo","ewo","ff","fur","gv","ia","jgo","jmc","kab","kde","kea","khq","kkj","ksb","ksf","ksh","ku","kw","lag","lg","ln","lrc","lu","mfe","mg","mgo","mua","mzn","naq","nds","nmg","nnh","nus","nyn","os","pcm","rn","rof","rwk","sbp","sc","ses","sg","shi","so","teo","to","twq","vai","vun","wae","xog","yav","yi","zgh","SYMBOLS_TO_REMOVE_REGEX","getIntlFormatter","format","date","timeZoneName","year","getFullYear","recognizableAsTwentyCentury","String","length","temporaryYearValue","utcDate","Date","UTC","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","setFullYear","utcFormat","extend","timeZone","formatDateTime","formattersCache","getFormatter","key","JSON","stringify","Intl","DateTimeFormat","replace","formatNumber","number","NumberFormat","getAlternativeNumeralsMap","numeralsMapCache","i","normalizeNumerals","dateString","alternativeNumeralsMap","split","map","sign","join","removeLeadingZeroes","str","dateStringEquals","actual","expected","normalizeMonth","text","intlFormats","day","dayofweek","weekday","longdate","month","longdatelongtime","hour","minute","second","longtime","monthandday","monthandyear","shortdate","shorttime","shortyear","Object","defineProperty","get","defaultOptions","resolvedOptions","getIntlFormat","toLowerCase","monthNameStrategies","standalone","monthIndex","monthFormat","parts","filter","part","indexOf","engine","getMonthNames","type","wide","abbreviated","narrow","Array","apply","_","getDayNames","result","dayIndex","short","getPeriodNames","hour12Formatter","hour12","hours","hourNumberText","timeParts","biggerPart","trim","_format","formatter","intlFormat","formatType","this","callBase","arguments","parse","parser","_parseDateBySimpleFormat","formatParts","getFormatParts","dateParts","dateArgs","_generateDateArgs","constructValidDate","ampmShift","parsedDate","hoursShift","minutes","seconds","currentDate","forEach","formatPart","index","datePart","parsed","parseInt","formatUsesMonthName","formatUsesDayName","getTimeSeparator","formattedDate","name","value","sort","a","b","DEFAULT_DAY_OF_WEEK_INDEX","hasIntl","FORMATS_TO_PATTERN_MAP","quarterandyear","shortdateshorttime","quarter","millisecond","possiblePartPatterns","milliseconds","dateLocalization","_getPatternByFormat","_expandPattern","pattern","partName","possiblePatterns","includes","push","getQuarterNames","is24HourFormat","amTime","pmTime","amTimeFormatted","pmTimeFormatted","isNaN","convertDigits","ldmlFormat","that","e","errors","log","getTime","firstDayOfWeekIndex","getValueByClosestLocale","inject","api_RCS03","data","fetch","ROOT","API_RCS03","requestOptions","postBody","then","handleResponse","api_RRCE05","API_RRCE05","api_RRCS04","API_RRCS04","api_URCZ02","API_URCZ02","api_RRCC00E","API_RRCC00E","api_URCD01","API_URCD01","api_URCR01","API_URCR01","api_RRCC00D","API_RRCC00D","api_RCT04","API_RCT04","api_URCSN1","API_URCSN1","api_RRCC00P","API_RRCC00P","api_IRCE01","API_IRCE01","api_RRCE01","API_RRCE01","api_URCE01","API_URCE01","api_RRCE02","API_RRCE02","api_DRCE01","API_DRCE01","api_RRCZ01","API_RRCZ01","api_IRCZ01","API_IRCZ01","api_URCZ01","API_URCZ01","api_URCP01","API_URCP01","api_RRCC00","API_RRCC00","api_RLPD01","API_RLPD01","api_URCT01","API_URCT01","api_URCC01","API_URCC01","api_URGC01","API_URGC01","api_URCTC1","API_URCTC1","reportSetting","render","_vm","_h","$createElement","_c","_self","attrs","isLoadingDataProcess","scopedSlots","_u","fn","staticClass","staticStyle","_v","min","max","model","callback","$$v","check","expression","_s","proxy","ref","daysOfWeek","monthNames","firstDay","keyWord","$set","dataProcessStatus","item","on","$event","getListHistoryDataProcessing","$t","optionPerPage","perPage","HandleClickDataProcessingAll","isLoading","dataGridRef","items","HandleClickDataProcessing","convertUTC","StartTime","_e","EndTime","ReportDate","ProcessStatus","_l","field","isShow","caption","cellTemplate","alignment","width","allowEditing","editCellTemplate","editorOptions","band","j","bands","customText","allMode","checkBoxesMode","staticRenderFns","components","DxTexts","DxDataGrid","DxColumn","DxEditing","DxFilterRow","DxHeaderFilter","DxGroupPanel","DxGrouping","DxScrolling","DxPaging","DxPager","DxSummary","DxLookup","DxTotalItem","DxGroupItem","DxMasterDetail","DxStringLengthRule","DxRangeRule","DxRequiredRule","DxValueFormat","DxColumnChooser","DxColumnFixing","DxSelection","DxExport","StartDate","getUTC","EndDate","label","currentPage","configTable","selectedRowsData","created","computed","dataGrid","$refs","instance","methods","_this","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","res","Data","LogProcessData","stop","_this2","_callee3","processCode","body","_context3","generateUUID","dayjs","utc","tz","localStorage","getItem","add","RStartDate","REndDate","ProcessDataCode","RevenueCenterId","_ref","_callee2","_context2","showResToast","_x","_this3","_callee5","_context5","getSelectedData","_ref2","_callee4","_context4","showToast","_x2","getSelectedRowsData","d","d2","performance","now","c","r","Math","random","floor","toString","component","leftPad","FORMAT_TYPES","3","4","5","LDML_FORMATTERS","y","count","useUtc","M","L","Q","E","period","H","h","m","s","S","substr","x","timezoneOffset","getTimezoneOffset","signPart","timezoneOffsetAbs","abs","hoursPart","minutesPart","X","Z","charIndex","char","isCurrentCharEqualsNext","charCount","isEscaping","slice","DATAGRID_SELECTION_DISABLED_CLASS","DATAGRID_GROUP_OPENED_CLASS","DATAGRID_GROUP_CLOSED_CLASS","DATAGRID_EXPAND_CLASS","NO_DATA_CLASS","SCROLLING_MODE_INFINITE","SCROLLING_MODE_VIRTUAL","LEGACY_SCROLLING_MODE","SCROLLING_MODE_OPTION","ROW_RENDERING_MODE_OPTION","DATE_INTERVAL_SELECTORS","getIntervalSelector","calculateCellValue","isDateType","dataType","nameIntervalSelector","groupInterval","Number","equalSelectors","selector1","selector2","originalCallback","columnIndex","setEmptyText","$container","textContent","normalizeSortingInfo","isExpanded","formatValue","options","valueText","formatObject","getDisplayFormat","target","customizeText","call","getSummaryText","summaryItem","summaryTexts","displayFormat","columnCaption","summaryType","valueFormat","getWidgetInstance","$element","editorData","dxComponents","widgetName","equalFilterParameters","filter1","filter2","isArray","filterValue","normalizeGroupingLoadOptions","group","selector","renderNoDataText","element","noDataClass","addWidgetPrefix","noDataElement","find","last","isVisible","_dataController","isEmpty","addClass","appendTo","removeClass","_getNoDataText","renderLoadPanel","isLocalStore","loadPanelOptions","_loadPanel","remove","option","enabled","shading","message","container","_createComponent","$window","of","boundary","collision","getIndexByKey","keyName","combineFilters","filters","operation","resultFilter","_filters$i","checkChanges","changes","changeNames","changesWithChangeNamesCount","proxyMethod","methodName","defaultResult","dataSource","_dataSource","getFormatOptionsByColumn","column","trueText","falseText","getDisplayValue","rowType","displayValueMap","calculateDisplayValue","lookup","calculateGroupValue","getGroupRowSummaryText","summaryItems","getFormatByDataType","getHeaderFilterGroupParameters","remoteGrouping","dataField","getGroupInterval","interval","bind","sortingMethod","compare","sortParameters1","sortParameters2","ignoreIsExpanded","desc","Boolean","getPointsByColumns","pointCreated","isVertical","startColumnIndex","offset","rtlEnabled","cellsLength","notCreatePoint","eq","css","point","left","top","height","prevItemOffset","getExpandCellTemplate","allowRenderToDetachedContainer","isContinuation","row","isNewRow","rowsView","getView","setAria","localize","getSelectionRange","focusedElement","selectionStart","selectionEnd","setSelectionRange","selectionRange","focusAndSelectElement","isFocused","trigger","isSelectTextOnEditingStart","editor","closest","_loadItemDeferred","done","select","getLastResizableColumnIndex","columns","resultWidths","lastColumnIndex","hasResizableColumns","some","command","fixed","allowResizing","isElementInCurrentGrid","controller","$grid","getWidgetContainerClass","parent","isVirtualRowRendering","rowRenderingMode","isVirtualMode","isAppendMode","getPixelRatio","window","devicePixelRatio","browser","mozilla","lookupDataSourceOptions","isWrapped","normalizeLookupDataSource","defaultCalculateCellValue","cachedUniqueRelevantItems","hasGroupPaging","remoteOperations","groupPaging","hasLookupOptimization","displayField","lookupDataSource","load","loadOptions","resolve","take","skip","fail","newDataSource","lookupItems","_column$displayValueM","valueExpr","displayExpr","store","_filter","flatMap","storeLoadOptions","arr","promise","ARABIC_COMMA","FORMAT_SEPARATORS","AM_PM_PATTERN","checkDigit","code","charCodeAt","zeroCode","checkPatternContinue","patterns","isDigit","nextChar","isDigitChanged","getPatternStartIndex","defaultPattern","getDifference","processedIndexes","patternsFilter","unshift","replaceCharsCore","indexes","patternPositions","baseCharIndex","patternIndex","replaceChars","letterCount","pop","ESCAPE_CHARS_REGEXP","escapeChars","escapeIndexes","match","isCurrentCharEscaped","isPrevCharEscaped","isNextCharEscaped","getFormat","replacedPatterns","datePatterns","test","diff","MONTHS","DAYS","PERIODS","QUARTERS","cutCaptions","captions","lengthByFormat","formatIsValid","valueIsValid","getTimeFormat","showSecond","_normalizeFormat","getDateFormatByDifferences","dateDifferences","intervalFormat","resultFormat","needSpecialSecondFormatter","getDateFormatByTicks","ticks","maxDiff","currentDiff","getDatesDifferences","getDateFormatByTickInterval","startValue","endValue","tickInterval","dateUnitInterval","correctDateDifferences","differences","minDate","maxDate","getDateUnitInterval","week","DEFAULT_DATE_INTERVAL","DEFAULT_DATETIME_INTERVAL","dateIntervals","headerFilter","getFilterSelector","getFilterExpressionByRange","endFilterValue","startFilterExpression","endFilterExpression","setDate","getFilterExpressionForDate","selectedFilterOperation","dateStart","dateEnd","dateInterval","values","dateValue","getFilterExpressionForNumber","startFilterValue","condition","defaultCalculateFilterExpression","isSearchByDisplayValue","monthRegExpGenerator","keys","PATTERN_REGEXPS","countSuffix","concat","timeSeparator","w","parseNumber","caseInsensitiveIndexOf","array","monthPatternParser","reduce","PATTERN_PARSERS","dayNames","periodNames","ORDERED_PATTERNS","PATTERN_SETTERS","datePartValues","hourPartValue","setHours","getSameCharCount","createPattern","getRegExpInfo","regexpText","stubText","addPreviousStub","isEscapeChar","regexpPart","isPossibleForParsingFormat","warn","regexp","RegExp","digitFieldSymbols","isDigitPattern","possibleForParsing","ambiguousDigitPatternsCount","every","getPatternSetters","setPatternPart","patternChar","partSetter","partParser","setPatternPartFromNow","setterName","getterName","getShortPatterns","fullPatterns","getMaxOrderedPatternIndex","getOrderedFormatPatterns","formatPatterns","otherPatterns","getParser","regExpInfo","regExpResult","exec","maxPatternIndex","orderedFormatPatterns","regExpPattern","regExpText","module","exports","o","u","t","require","l","n","Error","1","p","encode","f","getTypeOf","charAt","decode","uint8array","Uint8Array","2","compressedSize","uncompressedSize","crc32","compression","compressedContent","prototype","getContentWorker","Promise","pipe","uncompressWorker","streamInfo","data_length","getCompressedWorker","withStreamInfo","createWorkerFrom","compressWorker","STORE","magic","DEFLATE","base64","binary","dir","createFolders","compressionOptions","comment","unixPermissions","dosPermissions","6","lie","7","Uint16Array","Uint32Array","_pako","_pakoAction","_pakoOptions","meta","inherits","processChunk","_createPako","transformTo","flush","cleanUp","raw","level","onData","pako","8","A","fromCharCode","file","O","utf8encode","I","g","v","k","z","C","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCFullYear","getUTCMonth","getUTCDate","B","fileRecord","R","LOCAL_FILE_HEADER","dirRecord","CENTRAL_FILE_HEADER","bytesWritten","zipComment","zipPlatform","encodeFileName","streamFiles","accumulate","contentBuffer","dirRecords","currentSourceOffset","entriesCount","currentFile","_sources","percent","openedSource","closedSource","DATA_DESCRIPTOR","shift","CENTRAL_DIRECTORY_END","prepareNextSource","previous","isPaused","pause","resume","registerPrevious","end","error","generatedError","lock","9","generateWorker","platform","_compressWorker","10","files","create","root","clone","loadAsync","support","defaults","version","external","11","decompressed","checkCRC32","optimizedBinaryString","decodeFileName","utf8decode","isNode","isStream","reject","prepareContent","all","fileNameStr","fileCommentStr","unsafeOriginalName","12","_upstreamEnded","_bindStream","_stream","13","Readable","_helper","emit","_read","14","Buffer","newBufferFrom","from","allocBuffer","alloc","fill","isBuffer","15","toUpperCase","substring","lastIndexOf","folder","generate","generateInternalStream","mimeType","checkSupport","generateAsync","generateNodeStream","toNodejsStream","16","stream","17","byteAt","zero","lastIndexOfSignature","readAndCheckSignature","readData","checkOffset","18","checkIndex","setIndex","readInt","readString","readDate","19","20","21","subarray","22","23","ZIP64_CENTRAL_DIRECTORY_LOCATOR","ZIP64_CENTRAL_DIRECTORY_END","24","destType","25","26","propName","27","dataIsReady","_tickScheduled","_tickAndRepeat","delay","isFinished","_tick","28","extraStreamInfo","isLocked","_listeners","mergeStreamInfo","hasOwnProperty","29","nodestream","_internalType","_outputType","_mimeType","newBlob","set","_worker","objectMode","30","string","arraybuffer","ArrayBuffer","nodebuffer","blob","Blob","size","self","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","append","getBlob","31","leftOver","applyFromCharCode","Utf8DecodeWorker","Utf8EncodeWorker","32","stringifyByChunk","stringifyByChar","applyCanBeUsed","buffer","byteLength","MAX_VALUE_16BITS","MAX_VALUE_32BITS","pretty","setImmediate","FileReader","onload","onerror","readAsArrayBuffer","setimmediate","33","checkSignature","reader","isSignature","readBlockEndOfCentral","diskNumber","diskWithCentralDirStart","centralDirRecordsOnThisDisk","centralDirRecords","centralDirSize","centralDirOffset","zipCommentLength","readBlockZip64EndOfCentral","zip64EndOfCentralSize","zip64ExtensibleData","readBlockZip64EndOfCentralLocator","diskWithZip64CentralDirStart","relativeOffsetEndOfZip64CentralDir","disksCount","readLocalFiles","localHeaderOffset","readLocalPart","handleUTF8","processAttributes","readCentralDir","zip64","readCentralPart","readEndOfCentral","prepareReader","34","isEncrypted","bitFlag","useUTF8","fileNameLength","fileName","compressionMethod","versionMadeBy","extraFieldsLength","fileCommentLength","diskNumberStart","internalFileAttributes","externalFileAttributes","readExtraFields","parseZIP64ExtraField","fileComment","extraFields","findExtraFieldUnicodePath","findExtraFieldUnicodeComment","35","_data","_dataBinary","internalStream","_decompressWorker","async","nodeStream","36","MutationObserver","WebKitMutationObserver","document","createTextNode","observe","characterData","MessageChannel","createElement","onreadystatechange","parentNode","removeChild","documentElement","appendChild","setTimeout","port1","onmessage","port2","postMessage","global","37","TypeError","state","queue","outcome","onFulfilled","callFulfilled","otherCallFulfilled","onRejected","callRejected","otherCallRejected","status","finally","constructor","catch","race","immediate","38","assign","39","method","chunkSize","windowBits","memLevel","strategy","gzip","err","msg","ended","chunks","strm","avail_out","deflateInit2","header","deflateSetHeader","dictionary","string2buf","deflateSetDictionary","_dict_set","input","next_in","avail_in","output","Buf8","next_out","deflate","onEnd","buf2binstring","shrinkBuf","deflateEnd","flattenChunks","Deflate","deflateRaw","40","inflateInit2","Z_OK","inflateGetHeader","Z_FINISH","Z_NO_FLUSH","binstring2buf","inflate","Z_NEED_DICT","inflateSetDictionary","Z_BUF_ERROR","Z_STREAM_END","Z_SYNC_FLUSH","utf8border","buf2string","arraySet","inflateEnd","Inflate","inflateRaw","ungzip","41","Int32Array","setTyped","Buf16","Buf32","42","43","44","Z_PARTIAL_FLUSH","Z_FULL_FLUSH","Z_BLOCK","Z_TREES","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","Z_BINARY","Z_TEXT","Z_UNKNOWN","Z_DEFLATED","45","46","T","D","F","pending","pending_buf","pending_out","total_out","N","_tr_flush_block","block_start","strstart","U","P","max_chain_length","prev_length","nice_match","w_size","w_mask","good_match","lookahead","match_start","window_size","hash_size","head","adler","total_in","insert","ins_h","hash_shift","hash_mask","match_length","_tr_tally","max_lazy_match","last_lit","W","prev_match","match_available","good_length","max_lazy","nice_length","max_chain","func","pending_buf_size","gzhead","gzindex","last_flush","w_bits","hash_bits","dyn_ltree","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","bl_count","heap","heap_len","heap_max","depth","l_buf","lit_bufsize","d_buf","opt_len","static_len","matches","bi_buf","bi_valid","G","data_type","_tr_init","K","Y","deflateInit","deflateReset","deflateResetKeep","hcrc","extra","time","_tr_align","_tr_stored_block","deflateInfo","47","xflags","extra_len","48","dmax","wsize","whave","wnext","hold","bits","lencode","distcode","lenbits","distbits","mode","sane","49","havedict","flags","total","wbits","ncode","nlen","ndist","have","lens","work","lendyn","distdyn","back","was","inflateReset","inflateReset2","inflateResetKeep","inflateInit","inflateInfo","50","51","0","52","static_tree","extra_bits","extra_base","elems","max_length","has_stree","dyn_tree","max_code","stat_desc","V","q","J","53","54","getPrototypeOf","process","nextTick","importScripts","addEventListener","attachEvent","Function","args","clearImmediate","source","__importDefault","mod","__esModule","DxLoadPanel","DxLabel","DxKeyboardNavigation","DxItem","DxHide","DxGroupOperationDescriptions","DxGroupingTexts","DxFrom","DxFormItem","DxFormat","DxForm","DxFilterPanelTexts","DxFilterPanel","DxFilterOperationDescriptions","DxFilterBuilderPopup","DxFilterBuilder","DxFieldLookup","DxField","DxExportTexts","DxEmailRule","DxEditingTexts","DxDataGridHeaderFilterTexts","DxDataGridHeaderFilter","DxCustomRule","DxCustomOperation","DxCursorOffset","DxCompareRule","DxColumnLookup","DxColumnHeaderFilter","DxColumnFixingTexts","DxCollision","DxColCountByScreen","DxChange","DxButton","DxBoundaryOffset","DxAt","DxAsyncRule","DxAnimation","DxValidationRule","DxToolbarItem","DxToolbar","DxTo","DxSummaryTexts","DxStateStoring","DxSorting","DxSortByGroupSummaryInfo","DxShow","DxSearchPanel","DxRowDragging","DxRemoteOperations","DxPosition","DxPopup","DxPatternRule","DxOperationDescriptions","DxOffset","DxNumericRule","DxMy","data_grid_1","index_1","index_2","createComponent","props","accessKey","activeStateEnabled","allowColumnReordering","allowColumnResizing","autoNavigateToFocusedRow","cacheEnabled","cellHintEnabled","columnAutoWidth","columnChooser","columnFixing","columnHidingEnabled","columnMinWidth","columnResizingMode","columnWidth","customizeColumns","customizeExportData","dataRowTemplate","dateSerializationFormat","disabled","editing","elementAttr","errorRowEnabled","export","filterBuilder","filterBuilderPopup","filterPanel","filterRow","filterSyncEnabled","focusedColumnIndex","focusedRowEnabled","focusedRowIndex","focusedRowKey","focusStateEnabled","grouping","groupPanel","highlightChanges","hint","hoverStateEnabled","keyboardNavigation","keyExpr","loadPanel","masterDetail","noDataText","onAdaptiveDetailRowPreparing","onCellClick","onCellDblClick","onCellHoverChanged","onCellPrepared","onContentReady","onContextMenuPreparing","onDataErrorOccurred","onDisposing","onEditCanceled","onEditCanceling","onEditingStart","onEditorPrepared","onEditorPreparing","onExported","onExporting","onFileSaving","onFocusedCellChanged","onFocusedCellChanging","onFocusedRowChanged","onFocusedRowChanging","onInitialized","onInitNewRow","onKeyDown","onOptionChanged","onRowClick","onRowCollapsed","onRowCollapsing","onRowDblClick","onRowExpanded","onRowExpanding","onRowInserted","onRowInserting","onRowPrepared","onRowRemoved","onRowRemoving","onRowUpdated","onRowUpdating","onRowValidating","onSaved","onSaving","onSelectionChanged","onToolbarPreparing","pager","paging","renderAsync","repaintChangesOnly","rowAlternationEnabled","rowDragging","rowTemplate","scrolling","searchPanel","selectedRowKeys","selection","selectionFilter","showBorders","showColumnHeaders","showColumnLines","showRowLines","sortByGroupSummaryInfo","sorting","stateStoring","summary","syncLookupFilterValues","tabIndex","toolbar","twoWayBindingEnabled","visible","wordWrapEnabled","emits","$_instance","beforeCreate","$_WidgetClass","default","$_hasAsyncTemplate","$_expectedChildren","isCollectionItem","optionName","dataGridHeaderFilter","createConfigurationComponent","hide","show","$_optionName","ignoreEmptyValue","reevaluate","validationCallback","$_isCollectionItem","$_predefinedProps","cssClass","icon","onClick","template","insertAfterKey","insertBeforeKey","md","sm","xs","allowExporting","allowFiltering","allowFixing","allowGrouping","allowHeaderFiltering","allowHiding","allowReordering","allowSearch","allowSorting","autoExpandGroup","buttons","calculateFilterExpression","calculateSortValue","encodeHtml","filterOperations","filterType","filterValues","fixedPosition","formItem","groupCellTemplate","grouped","groupIndex","headerCellTemplate","hidingPriority","isBand","minWidth","ownerBand","resized","setCellValue","showEditorAlways","showInColumnChooser","showWhenGrouped","sortIndex","sortOrder","validationRules","visibleIndex","AsyncRule","button","columnHeaderFilter","columnLookup","CompareRule","CustomRule","EmailRule","NumericRule","PatternRule","RangeRule","RequiredRule","StringLengthRule","validationRule","emptyPanelText","searchTimeout","title","texts","columnFixingTexts","fix","leftPosition","rightPosition","unfix","searchMode","allowClearing","comparisonTarget","comparisonType","dataTypes","editorTemplate","hasValue","dataGridHeaderFilterTexts","cancel","emptyValue","ok","allowAdding","allowDeleting","allowUpdating","confirmDelete","editColumnName","editRowKey","form","newRowPosition","popup","refreshMode","selectTextOnEditStart","startEditAction","useIcons","change","editingTexts","addRow","cancelAllChanges","cancelRowChanges","confirmDeleteMessage","confirmDeleteTitle","deleteRow","editRow","saveAllChanges","saveRowChanges","undeleteRow","validationCancelChanges","allowExportSelectedData","customizeExcelCell","excelFilterEnabled","excelWrapTextEnabled","formats","ignoreExcelErrors","proxyUrl","exportTexts","exportAll","exportSelectedRows","exportTo","defaultFilterOperation","fieldLookup","allowHierarchicalFields","bindingOptions","customOperations","fields","filterOperationDescriptions","groupOperationDescriptions","groupOperations","maxGroupLevel","onFocusIn","onFocusOut","onValueChanged","customOperation","animation","closeOnOutsideClick","contentTemplate","copyRootClassesToWrapper","deferRendering","dragAndResizeArea","dragEnabled","dragOutsideBoundary","fullScreen","hideOnOutsideClick","hideOnParentScroll","maxHeight","maxWidth","minHeight","onHidden","onHiding","onResize","onResizeEnd","onResizeStart","onShowing","onShown","onTitleRendered","position","resizeEnabled","restorePosition","shadingColor","showCloseButton","showTitle","titleTemplate","toolbarItems","wrapperAttr","between","contains","endsWith","equal","greaterThan","greaterThanOrEqual","isBlank","isNotBlank","lessThan","lessThanOrEqual","notContains","notEqual","startsWith","filterEnabled","filterPanelTexts","clearFilter","createFilter","filterEnabledHint","applyFilter","applyFilterText","betweenEndText","betweenStartText","operationDescriptions","resetOperationText","showAllText","showOperationChooser","alignItemLabels","alignItemLabelsInAllGroups","colCount","colCountByScreen","customizeItem","formData","labelLocation","labelMode","minColWidth","onEditorEnterKey","onFieldDataChanged","optionalMark","readOnly","requiredMark","requiredMessage","screenByWidth","scrollingEnabled","showColonAfterLabel","showOptionalMark","showRequiredMark","showValidationSummary","validationGroup","currency","precision","useCurrencyAccountingStyle","colSpan","editorType","helpText","isRequired","itemType","opacity","scale","allowCollapsing","autoExpandAll","contextMenuEnabled","expandMode","groupingTexts","groupByThisColumn","groupContinuedMessage","groupContinuesMessage","ungroup","ungroupAll","alignByColumn","showInColumn","showInGroupFooter","skipEmptyValues","and","notAnd","notOr","allowColumnDragging","complete","direction","duration","easing","staggerDelay","start","html","locateInMenu","location","menuItemTemplate","showText","widget","editOnKeyPress","enterKeyAction","enterKeyDirection","showColon","indicatorSrc","showIndicator","showPane","allowedPageSizes","displayMode","infoText","showInfo","showNavigationButtons","showPageSizeSelector","pageIndex","pageSize","toolbarItem","at","boundaryOffset","my","filtering","allowDropInsideItem","autoScroll","cursorOffset","dragDirection","dragTemplate","dropFeedbackMode","handle","onAdd","onDragChange","onDragEnd","onDragMove","onDragStart","onRemove","onReorder","scrollSensitivity","scrollSpeed","showDragIcons","columnRenderingMode","preloadEnabled","scrollByContent","scrollByThumb","showScrollbar","useNative","highlightCaseSensitive","highlightSearchText","placeholder","searchVisibleColumnsOnly","allowSelectAll","deferred","maxFilterLengthInRequest","selectAllMode","showCheckBoxesMode","groupColumn","ascendingText","clearText","descendingText","showSortIndexes","customLoad","customSave","savingTimeout","storageKey","calculateCustomSummary","groupItems","recalculateWhileEditing","totalItems","groupItem","totalItem","avg","avgOtherColumn","maxOtherColumn","minOtherColumn","sum","sumOtherColumn","WIDGET_WITH_LEGACY_CONTAINER_NAME","ModuleItem","inherit","_endUpdateCore","ctor","_updateLockCount","_actions","_actionConfigs","callbackNames","callbackFlags","unique","syncStrategy","init","publicMethods","beginUpdate","endUpdate","optionCache","_optionCache","_silentOption","_setOptionWithoutOptionChange","off","optionChanged","createAction","handled","getAction","actionName","$target","prefix","setAttribute","attr","getController","_controllers","config","action","_createAction","event","_createActionByOption","executeAction","dispose","empty","className","componentName","NAME","containerName","elementIsInsideGrid","$gridElement","Controller","ViewController","_views","getViews","View","_isReady","isReady","_requireReady","_requireRender","_requireResize","_$parent","_invalidate","requireResize","requireReady","_renderCore","_resizeCore","_parentElement","renderCompleted","resizeCompleted","_$element","getElementHeight","marginTop","parseFloat","marginBottom","offsetHeight","getTemplate","_getTemplate","$parent","toggleClass","fire","resize","isResizing","focus","preventScroll","MODULES_ORDER_MAX_INDEX","processModules","componentClass","modules","modulesOrder","controllerTypes","viewTypes","module1","module2","orderIndex1","orderIndex2","controllers","moduleName","views","subclassOf","extenders","extender","createModuleItems","moduleTypes","moduleItems","moduleType","moduleItem","callModuleItemsMethod","registerModule","registerModulesOrder","moduleNames","unregisterModule","COLUMN_INDICATORS_CLASS","GROUP_PANEL_ITEM_CLASS","_applyColumnState","_that$component","columnAlignment","_getColumnAlignment","parameters","isGroupPanelItem","rootElement","hasClass","$indicatorsContainer","_createIndicatorContainer","$span","_getIndicatorClassName","columnsController","indicatorAlignment","getHeaderContentAlignment","indicator","_renderIndicator","ignoreIndicatorAlignment","_getIndicatorContainer","$cell","_getIndicatorElements","$indicatorContainer","children","$indicator","_updateIndicators","indicatorName","getColumns","$cells","getColumnElements","_updateIndicator","rowOptions","cells","SCROLL_CONTAINER_CLASS","SCROLLABLE_SIMULATED_CLASS","GROUP_SPACE_CLASS","CONTENT_CLASS","TABLE_CLASS","TABLE_FIXED_CLASS","CONTENT_FIXED_CLASS","ROW_CLASS","GROUP_ROW_CLASS","GROUP_CELL_CLASS","DETAIL_ROW_CLASS","FILTER_ROW_CLASS","ERROR_ROW_CLASS","CELL_UPDATED_ANIMATION_CLASS","HIDDEN_COLUMNS_WIDTH","CELL_HINT_VISIBLE","FORM_FIELD_ITEM_CONTENT_CLASS","appendElementTemplate","content","subscribeToRowEvents","$table","touchTarget","touchCurrentTarget","timeoutId","clearTouchTargets","timeout","clearTimeout","currentTarget","pointer","down","rowIndex","getRowIndex","rowElement","_rowPointerDown","_rowClick","_rowDblClick","getWidthStyle","setCellWidth","cell","style","copyAttributes","newElement","oldAttributes","attributes","newAttributes","nodeName","hasAttribute","removeAttribute","nodeValue","ColumnsView","_createScrollableOptions","scrollingOptions","useNativeScrolling","bounceEnabled","useKeyboard","useSimulatedScrollbar","_updateCell","_cellPrepared","_createCell","textAlign","headerId","colspan","visibleWidth","_createRow","rowObject","tagName","_isAltRow","dataIndex","_createTable","isAppend","_createColGroup","safari","ctrlKey","preventDefault","$row","visibleColumns","_columnsController","getVisibleColumns","cellOptions","isHeaderRow","isDataRow","isMasterDetailRow","isGroupRow","isFilterRow","isDataRowWithTemplate","isEditorShown","isEditing","isHeaderRowWithTemplate","isGroupCellWithTemplate","shouldShowHint","removeAttr","difference","scrollWidth","clientWidth","getOptions","$fieldItemContent","delegateTarget","resultOptions","cellElement","eventType","formItemOptions","getVisibleIndex","colgroupElement","_createCol","col","renderDelayedTemplates","delayedTemplates","_delayedTemplates","syncTemplates","asyncTemplates","_renderDelayedTemplatesCore","_renderDelayedTemplatesCoreAsync","templates","isAsync","templateParameters","doc","getDocument","_processTemplate","renderingTemplate","renderedTemplate","nodeType","templateID","_templatesCache","renderTemplate","templateDeferred","templateOptions","onRendered","templateDeferreds","_getBodies","tableElement","not","_needWrapRow","$tableElement","_this$_getBodies","hasRowTemplate","_wrapRowIfNeed","isRefreshing","_tableElement","needWrapRow","$tbody","_appendRow","appendTemplate","scrollLeft","_scrollLeft","scrollTo","$root","_renderTable","changeType","_renderRows","rows","_getRows","columnIndices","changeTypes","_renderRow","$wrappedRow","_renderCells","_addWatchMethod","_rowPrepared","_needRenderCell","_renderCell","oldValue","oldValues","_updateCells","$rowElement","$newRowElement","$newCells","cellUpdatedClass","$newCell","replaceWith","_setCellAriaAttributes","columnIndexOffset","getColumnIndexOffset","ariaColIndex","_getCellOptions","cellIndex","findIndex","_renderCellContent","renderOptions","_getCellTemplate","isAltRow","watchers","watch","getter","updateValueFunc","updateRowFunc","watcher","newValue","splice","update","keepRow","_columnOptionChanged","optionNames","widths","iterator","setColumnWidths","getCellIndex","getTableElements","getTableElement","setTableElement","excludeValidators","category","afterExecute","_afterRowPrepared","columnsChanged","changed","_handleDataChanged","_updateScrollLeftPosition","pos","$scrollContainer","_wrapTableInScrollContainer","scrollChanged","_updateContent","$newTableElement","_findContentElement","_getWidths","$cellElements","offsetWidth","getBoundingClientRect","clientRect","getColumnWidths","$rows","isRowVisible","display","getVisibleColumnIndex","$cols","classList","querySelector","toFixed","getCellElements","_getCellElementsCore","_getRowElements","_getCellElement","columnIdentifier","columnVisibleIndex","_getVisibleColumnIndex","_getRowElement","$tableElements","getCellElement","getRowElement","elements","columnOption","getCell","cellPosition","getRowsCount","_getRowElementsCore","tBodies","getBoundingRect","getName","setScrollerSpacing","paddingLeft","paddingRight","isScrollbarVisible","isHorizontal","FOCUS_STATE_CLASS","FOCUS_DISABLED_CLASS","FOCUSED_ROW_SELECTOR","GRID_ROW_SELECTOR","GRID_CELL_SELECTOR","TREELIST_ROW_SELECTOR","TREELIST_CELL_SELECTOR","viewItemSelectorMap","columnHeaders","footer","isMouseDown","isHiddenFocusing","focusedElementInfo","processKeyDown","viewName","$mainElement","executeKeyDown","isHandled","fireKeyDownEvent","originalEvent","saveFocusedElementInfo","selectView","ariaLabel","$activeElements","getActiveAccessibleElements","targetIndex","viewInstance","viewElement","$viewElement","findFocusedViewElement","viewSelectors","$focusViewElement","first","onDocumentVisibilityChange","visibilityState","subscribeVisibilityChange","unsubscribeVisibilityChange","hiddenFocus","registerKeyboardAction","getMainElement","keyDownHandler","mouseDownHandler","focusinHandler","needShowOverlay","$targetElement","viewNames","viewItemIndex","_viewName","setTabIndex","keyboardController","isKeyboardEnabled","CELL_CONTENT_CLASS","HEADERS_CLASS","NOWRAP_CLASS","ROW_CLASS_SELECTOR","HEADER_ROW_CLASS","COLUMN_LINES_CLASS","CONTEXT_MENU_SORT_ASC_ICON","CONTEXT_MENU_SORT_DESC_ICON","CONTEXT_MENU_SORT_NONE_ICON","CELL_FOCUS_DISABLED_CLASS","VISIBILITY_HIDDEN_CLASS","TEXT_CONTENT_ALIGNMENT_CLASS_PREFIX","SORT_INDICATOR_CLASS","SORT_INDEX_INDICATOR_CLASS","HEADER_FILTER_CLASS_SELECTOR","HEADER_FILTER_INDICATOR_CLASS","MULTI_ROW_HEADER_CLASS","columnHeadersModule","columnHeadersView","createCellContent","$cellContent","addCssClassesToCellContent","contentAlignment","$indicatorElements","$visibleIndicatorElements","indicatorCount","sortIndicatorClassName","sortIndexIndicatorClassName","$sortIndicator","$sortIndexIndicator","shiftKey","_getDefaultTemplate","$content","_getHeaderTemplate","resultTemplate","_isGroupingChanged","_isLegacyKeyboardNavigation","_handleActionKeyDown","_lastActionElement","headerFilterController","$column","getColumnIndexByElement","showHeaderFilterMenu","_processHeaderAction","isLoaded","_hasRowElements","getRowCount","_getRowVisibleColumns","$cellElement","rowspan","rowCount","groupExpanding","_isElementVisible","elementOptions","_alignCaptionByCenter","insertBefore","$indicatorElement","returnAll","_isSortableElement","getHeadersRowHeight","$headerRows","toArray","headerRow","getHeaderElement","columnElements","bandColumnIndex","getChildrenByBandColumn","$columnElements","allowDragging","sourceLocation","draggingPanels","draggableColumnCount","canHideColumn","allowDrag","isColumnOptionUsed","draggingPanel","getColumnCount","getHeight","getContextMenuItems","sortingOptions","onItemClick","params","changeSortOrder","itemData","setRowsOpacity","columnID","setColumnOpacity","NUMBER_SERIALIZATION_FORMAT","DATE_SERIALIZATION_FORMAT","DATETIME_SERIALIZATION_FORMAT","ISO8601_PATTERN","ISO8601_TIME_PATTERN","ISO8601_PATTERN_PARTS","DATE_SERIALIZATION_PATTERN","MILLISECOND_LENGHT","dateParser","skipISO8601Parsing","parseISO8601String","parseDate","getTimePart","isDefaultSerializationFormat","getDateSerializationFormat","parsedValue","newDate","setMonth","timeZoneHour","timeZoneMinute","correctYear","pow","getIso8601Format","deserializeDate","forceIsoDateParsing","serializeDate","serializationFormat","valueOf","USER_STATE_FIELD_NAMES_15_1","USER_STATE_FIELD_NAMES","IGNORE_COLUMN_OPTION_NAMES","bestFitWidth","bufferedFilterValue","COMMAND_EXPAND_CLASS","MAX_SAFE_INTEGER","GROUP_COMMAND_COLUMN_NAME","globalColumnId","columnsControllerModule","commonColumnSettings","adaptColumnWidthByRatio","regenerateColumnsByVisibleItems","DEFAULT_COLUMN_OPTIONS","DATATYPE_OPERATIONS","datetime","COLUMN_INDEX_OPTIONS","setFilterOperationsAsDefaultValues","defaultFilterOperations","createColumn","columnOptions","userStateColumnOptions","bandColumn","commonColumnOptions","setName","getCommonSettings","calculatedColumnOptions","_createCalculatedColumnOptions","createColumnsFromOptions","columnsOptions","_columnsUserState","checkUserStateColumn","hasColumns","getParentBandColumns","columnParentByIndex","_getChildrenByBandColumn","columnChildrenByIndex","recursive","getColumnFullPath","bandColumnsCache","getBandColumnsCache","callbackFilter","isPlain","_columns","calculateColspan","getValueDataType","getSerializationFormat","updateSerializers","deserializeValue","serializeValue","customizeTextForBooleanDataType","getCustomizeTextByDataType","updateColumnIndexes","_commandColumns","updateColumnGroupIndexes","currentColumn","getColumnIndexByVisibleIndex","getGroupColumns","getChooserColumns","userStateColumn","applyUserState","userStateColumnIndex","columnsUserState","ignoreColumnOptionNames","_ignoreColumnOptionNames","columnCountById","resultColumns","allColumnsHaveState","userStateColumnIndexes","applyFieldsState","fieldName","defaultSelectedFilterOperation","findUserStateColumn","_hasUserState","initialIndex","hasAddedBands","columnUserState","added","assignColumns","updateIndexes","isSortOrderValid","resetBandColumnsCache","bandedColumns","parentBandColumns","resetColumnsCache","updateColumnDataTypes","updateColumnChanges","columnChanges","_columnChanges","fireColumnsChanged","onColumnsChanging","reinitOptionNames","isInitialized","reinit","updateSortOrderWhenGrouping","prevGroupIndex","columnWasGrouped","lastSortOrder","sortMode","sortedByAnotherColumn","fireOptionChanged","prevValue","fullOptionName","fullOptionPath","_skipProcessingColumnsChange","_notifyOptionChanged","columnOptionCore","notFireEvent","initialColumn","optionGetter","functionsAsIs","optionSetter","_checkColumns","getColumnByPath","defaultSetCellValue","path","dotCount","isCustomCommandColumn","commandColumn","getFixedPosition","processExpandColumns","expandColumns","customColumnIndex","expandColumnsByType","expandColumn","numberToString","digitsCount","mergeColumns","commandColumns","needToExtend","commandColumnIndex","isColumnFixing","_isColumnFixing","defaultCommandColumns","getCommandColumnIndex","columnType","isColumnFixed","_bandColumnsCache","findColumn","identifier","identifierOptionName","_getExpandColumnOptions","_getFirstItems","groupsCount","getFirstItemsCore","childItems","collapsedItems","isApplyingUserState","_isColumnsFromOptions","addCommandColumn","_dataSourceApplied","applyDataSource","columnIndexes","needUpdateRequireResize","previousValue","fullName","_updateRequireResize","columnOptionValue","columnOptionName","forceApplying","isDataSourceLoaded","_dataSourceColumnsCount","columnsFromDataSource","firstItems","processedFields","updateColumns","isAllDataTypesDefined","reset","_visibleColumns","_fixedColumns","_rowCount","getUserState","isDataSourceApplied","groupingOptions","groupPanelOptions","checkSerializers","isBandColumnsUsed","_shouldReturnVisibleColumns","_compileVisibleColumns","_compileVisibleColumnsCore","getFixedColumns","_getFixedColumnsCore","getFilteringColumns","notFixedColumnCount","transparentColumnIndex","lastFixedPosition","transparentColumn","transparentColspan","prevColumn","newColumn","_getExpandColumnsCore","getExpandColumns","firstGroupColumn","isFixedFirstGroupColumn","parentIndex","_isColumnVisible","isParentColumnVisible","isFixedToEnd","rowspanGroupColumns","rowspanExpandColumns","positiveIndexedColumns","negativeIndexedColumns","notGroupedColumnsCount","columnDigitsCount","indexedColumns","firstPositiveIndexColumn","columnsByFixing","columnsByVisibleIndex","getDataColumns","bandColumnID","getInvisibleColumns","hiddenColumnsByBand","getAllColumns","columnChooserColumns","column1","column2","caption1","caption2","localeCompare","allowMoveColumn","fromVisibleIndex","toVisibleIndex","targetLocation","sourceColumn","moveColumn","targetGroupIndex","fromIndex","toIndex","groupColumns","targetColumn","sortingMode","needResetSorting","getSortDataSourceParameters","useLocalSelector","sortColumns","sortItem","getGroupDataSourceParameters","refresh","updateNewLookupsOnly","deferreds","valueMap","_updateColumnOptions","calculateCallbackName","calculateCallback","context","isRTL","isColumnDataTypesUpdated","lookupDataType","valueDataType","_customizeColumns","hasOwnerBand","updateSortingGrouping","sortParameters","groupParameters","filterParameters","lastLoadOptions","always","_updateChanges","equalSortParameters","dataController","getCombinedFilter","fromDataSource","isColumnsChanged","updateSortGroupParameterIndexes","indexParameterName","columnsGroupParameters","columnsSortParameters","groupingChanged","groupExpandingChanged","updateFilter","remoteFiltering","columnCount","clearSorting","clearGrouping","getVisibleIndexByColumn","visibleColumn","addColumn","deleteColumn","childIndexes","handleStateField","setUserState","isFilterPanelHidden","usedNames","hasEditableColumnWithoutName","duplicatedNames","_column$columns","isEditable","skipDeserialization","parseValue","formattedValue","formattedValueWithDefaultFormat","createFilterExpression","userDataType","updateValueMap","calculateValue","displayValue","dataSourceOptions","paginate","resizedCallbacks","defaultOptionName","parents","invisibleParents","alwaysGetRowIndex","onlyVisibleDirectChildren","isParentBandColumn","bandColumns","getColumnId","cloneItems","groupCount","calculateOperationTypes","isFullReload","operationTypes","reload","fullReload","groupExpand","getPageDataFromCache","updatePaging","fillItemsFromCache","cacheItemsFromBegin","cacheItemBeginCount","cacheItemsFromEnd","_options$skip2","_options$take2","cacheItemEndCount","cachedDataPartBegin","cachedDataPartEnd","reverse","fromEnd","_options$take","_options$cachedData","cachedItems","cachedData","_options$skip","localIndex","cacheItemIndex","cacheItem","getItemFromCache","skips","takes","getGroupItemFromCache","isContinuationOnNextPage","childCacheItem","isLast","getCacheItem","loadedItem","globalIndex","childSkips","_remoteOperations","_isLastPage","isLastPage","_hasLastPage","_currentTotalCount","_cachedData","_lastOperationTypes","_eventsStrategy","_totalCountCorrection","_isLoadingAll","loadingChanged","loadError","customizeStoreLoadOptions","changing","pushed","_dataChangedHandler","_customizeStoreLoadOptionsHandler","_handleCustomizeStoreLoadOptions","_dataLoadedHandler","_handleDataLoaded","_loadingChangedHandler","_handleLoadingChanged","_loadErrorHandler","_handleLoadError","_pushHandler","_handlePush","_changingHandler","_handleChanging","memberName","member","isSharedDataSource","resetCurrentTotalCount","resetCache","_cachedStoreData","_cachedPagingData","resetPagesCache","_needClearStoreDataCache","_lastLoadOptions","isLocalOperations","operationName","fromStore","keyInfo","_applyBatch","getDataIndexGetter","_dataIndexGetter","indexByKey","storeData","isCacheUpdated","keyOf","_getKeyInfo","totalCount","isReshapeMode","isLegacyMode","getItemCount","itemsCount","oldItemCount","_items","useInsertIndex","needUpdateTotalCountCorrection","_ref5","_needCleanCacheByOperation","operationType","operationTypesByOrder","operationTypeIndex","currentOperationTypes","_customizeRemoteOperations","cachedStoreData","cachedPagingData","isCustomLoading","_options$data","_handleDataLoading","originalStoreLoadOptions","_isRefreshing","_loadingOperationTypes","_isRefreshed","_lastOperationId","operationId","_handleDataLoadingCore","cachedExtra","localLoadOptionNames","requireTotalCount","optionValue","localPaging","needCache","needPageCache","needPagingCache","needStoreCache","mergeStoreLoadData","_handleDataLoadedCore","_ref3","_options$skip3","_ref4","_options$take3","cacheItems","_loadPageSize","currentTotalCount","isDataLoading","pageCount","_operationTypes","_scheduleCustomLoadCallbacks","_isCustomLoading","loadingOperationTypes","_dataSourceTotalCount","totalCountCorrection","totalItemsCount","ceil","hasKnownLastPage","loadFromStore","dataSourceLoadOptions","loadResult","_customLoadOptions","isLoadingAll","_scheduleLoadCallbacks","fireEvent","full","getCachedStoreData","dataSourceAdapterType","dataControllerModule","loadingTimeout","include","changePaging","_getPagingOptionValue","_skipProcessingPagingChange","_isPaging","pageChanged","members","_cachedProcessedItems","_currentOperationTypes","_columnsChangedHandler","_handleColumnsChanged","_dataPushedHandler","_handleDataPushed","_isLoading","_repaintChangesOnly","_changes","dataErrorOccurred","_refreshDataSource","stopOnFalse","isValueChanged","_array","needToRefreshOnDataSourceChange","changedPagingOptions","_handleDataSourceChange","_setPagingOptions","isPageIndexChanged","_useSortingGroupingFromColumns","getDataSource","returnDataField","combinedFilter","additionalFilter","_calculateAdditionalFilter","waitReady","_readyDeferred","updateItems","_storeLoadOptions$fil","_columnsUpdating","filterApplied","_applyFilter","_needApplyFilter","updateItemsHandler","_change$changeTypes","virtualColumnsScrolling","isAsyncDataSourceApplying","_isDataSourceApplying","isDelayed","needApplyFilter","_isAllDataTypesDefined","_fireLoadingChanged","fireError","pagingEnabled","scrollingMode","appendMode","virtualMode","isPaginateChanged","isPageSizeChanged","_getSpecificDataSourceOption","_initDataSource","oldDataSource","setDataSource","_loadDataSource","_beforeProcessItems","getRowIndexDelta","_processItems","rowIndexDelta","visibleItems","lastVisibleItem","_processItem","_generateDataItem","_processDataItem","dataItem","generateDataValues","isModified","_applyChange","_applyChangeUpdate","_applyChangesOnly","_applyChangeFull","_getRowIndices","rowIndices","correctedRowIndex","allowInvisibleRowIndices","prevIndex","rowIndexCorrection","equalItems","item1","item2","strict","oldItem","oldNextItem","newItem","newNextItem","isFullUpdate","_partialUpdateRow","_isCellChanged","oldRow","newRow","visibleRowIndex","isLiveUpdate","isCellModified","modifiedValues","_getChangedColumnIndices","_cell$column","_changedColumnIndices","changedColumnIndices","isCellChanged","_isItemEquals","_item1$data","_item2$data","_item1$data2","_item2$data2","expandedMatch","summaryCellsMatch","summaryCells","continuationMatch","_change$isLiveUpdate","newIndexByKey","getRowKey","currentItems","oldItems","_correctRowIndices","oldRowIndexOffset","_rowIndexOffset","rowIndexOffset","getRowIndexOffset","newVisibleRowIndex","_afterProcessItems","_updateItemsCore","cachedProcessedItems","useProcessedItemsCache","loadIndex","getVisibleRows","isDataChanged","_change$repaintChange","needUpdateDimensions","_needUpdateDimensions","_fireChanged","_loadingText","_isFilterApplying","resetFilterApplying","filterExpr","filterName","clearColumnOption","searchByText","_fireDataSourceChanged","changedHandler","dataSourceChanged","_getDataSourceAdapter","_createDataSourceAdapterCore","dataSourceAdapterProvider","dataSourceAdapter","isCustomStore","_createDataSourceAdapter","enabledRemoteOperations","cancelAll","_isSharedDataSource","loadAll","getKeyByRowIndex","byLoaded","getRowIndexByKey","byKey","getDataByKeys","rowKeys","keyData","beginCustomLoading","messageText","endCustomLoading","changesOnly","customizeLoadResult","_disposeDataSource","repaintRows","rowIndexes","skipProcessingPagingChange","searchText","isLastPageLoaded","DataController","SORT_CLASS","SORT_NONE_CLASS","SORTUP_CLASS","SORTDOWN_CLASS","SORT_INDEX_CLASS","SORT_INDEX_ICON_CLASS","HEADERS_ACTION_CLASS","ariaSortState","isSortingAllowed","hasSeveralSortIndexes","prepend","COLUMN_HEADERS_VIEW_NAMESPACE","ColumnHeadersViewSortingExtender","$cellElementFromEvent","editingController","editingMode","isCellEditing","HeaderPanelSortingExtender","$rootElement","$item","_processGroupItemAction","groupColumnIndex","sortingModule","headerPanel","ROWS_VIEW_CLASS","DATA_ROW_CLASS","FREE_SPACE_CLASS","ROW_LINES_CLASS","ROW_ALTERNATION_CLASS","LAST_ROW_BORDER","EMPTY_CLASS","ROW_INSERTED_ANIMATION_CLASS","LOADPANEL_HIDE_TIMEOUT","getMaxHorizontalScrollOffset","scrollable","round","rowsModule","defaultCellTemplate","isDataTextEmpty","innerHTML","_getDefaultGroupTemplate","_update","isGroup","isRowExpanded","_setAriaRowIndex","isPagerMode","arg","deep","skipImmediate","_renderScrollable","force","_renderLoadPanel","getScrollable","allColumnsHasWidth","_hasHeight","_renderScrollableCore","_handleScroll","isNativeScrolling","_scrollTop","scrollOffset","_scrollRight","dxScrollableOptions","scrollHandler","onScroll","_scrollable","_scrollableContainer","_renderContent","contentElement","newTableElement","executors","rowInsertedClass","$rowsElement","toggle","insertAfter","prependTo","_createEmptyRow","isFixed","_appendEmptyRow","$emptyRow","$tBodies","isTableContainer","$colgroup","_renderFreeSpaceRow","$freeSpaceRowElement","_checkRowKeys","_needUpdateRowHeight","_rowHeight","_getRowsHeight","$rowElements","_updateRowHeight","rowsHeight","_getFreeSpaceRowElements","tableElements","evaluate","expr","_getColumnsCountBeforeGroups","_getGroupCellOptions","columnsCountBeforeGroups","_renderGroupedCells","groupCellOptions","groupColumnAlignment","updateFreeSpaceRowHeight","_renderDataRowByTemplate","resizeCompletedHandler","scrollableInstance","_visibilityChanged","_lastColumnWidths","groupingTextsOptions","_setRowsOpacityCore","_getDevicePixelRatio","getCellOptions","getRow","itemCount","freeSpaceRowElements","isFreeSpaceRowVisible","scrollbarWidth","getScrollbarWidth","elementHeightWithoutScrollbar","contentHeight","showFreeSpaceRow","borderTopWidth","heightCorrection","_getHeightCorrection","resultHeight","_updateLastRowBorder","freeSpaceRowCount","isZoomedWebkit","webkit","isChromeLatest","chrome","hasExtraBorderTop","_fireColumnResizedCallbacks","_editorFactoryController","setLoading","contentWidth","scrollableContainer","clientHeight","lastColumnWidths","columnWidths","_updateScrollable","dxScrollable","getInstance","_updateHorizontalScrollPosition","maxHorizontalScrollOffset","scrollRight","_height","hasHeight","visibilityOptions","calculateLoadPanelPosition","_hideLoadingTimeoutID","groupCellIndex","_getBoundaryVisibleItemIndex","isTop","isFloor","itemIndex","prevOffset","viewportBoundary","$contentElement","contentElementOffsetTop","rowElements","getTopVisibleItemIndex","getBottomVisibleItemIndex","getTopVisibleRowData","_scrollToElement","scrollToElement","_restoreErrorRow","_collectionWidget","getMenuItems","_getTemplateString","DX_MENU_CLASS","DX_MENU_NO_ICONS_CLASS","DX_MENU_BASE_CLASS","ITEM_CLASS","DX_ITEM_CONTENT_CLASS","DX_MENU_SELECTED_ITEM_CLASS","DX_MENU_ITEM_WRAPPER_CLASS","DX_MENU_ITEMS_CONTAINER_CLASS","DX_MENU_ITEM_EXPANDED_CLASS","DX_MENU_SEPARATOR_CLASS","DX_MENU_ITEM_LAST_GROUP_ITEM","DX_ITEM_HAS_TEXT","DX_ITEM_HAS_ICON","DX_ITEM_HAS_SUBMENU","DX_MENU_ITEM_POPOUT_CLASS","DX_MENU_ITEM_POPOUT_CONTAINER_CLASS","DX_MENU_ITEM_CAPTION_CLASS","SINGLE_SELECTION_MODE","DEFAULT_DELAY","super","_getDefaultOptions","showSubmenuMode","selectByClick","focusOnSelectedItem","_itemAttributes","role","useInkRipple","_itemContainer","_clean","_supportedKeys","space","_isSelectionEnabled","selectItem","pageUp","pageDown","_activeStateUnit","_init","_renderSelectedItem","_initActions","itemText","$itemContainer","itemContent","$popOutContainer","$popOutImage","rootValue","multipleSelection","recursiveSelection","recursiveExpansion","searchValue","selectedItem","nodeToSelect","_dataAdapter","getNodeByItem","toggleSelection","internalFields","selectedKeys","getSelectedNodesKeys","selectedKey","node","getNodeByKey","selectable","_selectByItem","_initMarkup","_renderInkRipple","_inkRipple","_toggleActiveState","showWave","hideWave","_isDesktopDevice","devices","real","deviceType","Strategy","_editStrategy","$itemElement","_getItemElementByEventArgs","_isItemDisabled","stopPropagation","_getShowSubmenuMode","_showSubmenusTimeout","_showSubmenu","_getSubmenuDelay","$itemElements","_getAvailableItems","_disabledGetter","_itemDataKey","_addExpandedClass","itemElement","eventArgs","_itemClass","childrenKeys","_renderItems","getRootNodes","nodes","submenuContainer","hasIcons","$nodeContainer","_renderContainer","firstVisibleIndex","nextGroupFirstIndex","isVisibleNode","isBeginGroup","beginGroup","_renderSeparator","_renderItem","$wrapper","$node","$nodeElement","_createDOMElement","$itemFrame","_hasSubmenu","_renderItemFrame","_itemIndexKey","hasText","hasIcon","hasSubmenu","$itemContent","_getItemContent","selectedIndex","_selectedGetter","_isItemSelectable","_selectedItemClass","_setAriaSelected","$itemsContainer","_skipHandling","itemClickActionHandler","_updateSubmenuVisibilityOnClick","_itemDXEventHandler","actionArgs","_updateSelectedItemOnClick","_isItemSelectionAllowed","selectedItemKey","selectedNode","_toggleItemSelection","_fireSelectionChangeEvent","isSelectionByClickEnabled","_isContainerEmpty","_itemsGetter","_updateSelectedItems","_optionChanged","_getElementByItem","_itemElements","oldSelection","newSelection","addedSelection","removedSelection","addedItems","removedItems","_getItemData","selected","ItemClass","DX_MENU_ITEM_CLASS","DX_MENU_PHONE_CLASS","DX_SUBMENU_CLASS","DX_CONTEXT_MENU_CLASS","DX_HAS_CONTEXT_MENU_CLASS","DX_STATE_DISABLED_CLASS","DX_STATE_FOCUSED_CLASS","DX_STATE_HOVER_CLASS","OVERLAY_CONTENT_CLASS","FOCUS_UP","FOCUS_DOWN","FOCUS_LEFT","FOCUS_RIGHT","FOCUS_FIRST","FOCUS_LAST","ACTIONS","LOCAL_SUBMENU_DIRECTIONS","DEFAULT_SHOW_EVENT","showEventOption","showEvent","onSubmenuCreated","onPositioning","submenuDirection","onLeftFirstItem","onLeftLastItem","onCloseRootSubmenu","onExpandLastSubmenu","_defaultOptionsRules","device","_setDeprecatedOptions","_deprecatedOptions","since","alias","_setOptionsByReference","_optionsByReference","_overlay","escape","$availableItems","$focusedItem","$hoveredItem","$hoveredItemContainer","_getActiveItem","$newTarget","$items","_getItemsByLocation","$oldTarget","itemsContainer","$activeItemHighlighted","_prevItem","_setFocusedElement","_nextItem","_hideSubmenuHandler","_expandSubmenuHandler","_moveFocus","$activeItem","_refreshActiveDescendant","$curItem","$parentItem","_hideSubmenusOnSameLevel","_hideSubmenu","isItemHasSubmenu","$submenu","_detachShowContextMenuEvents","_getTarget","_render","_renderVisibility","_addWidgetClass","_attachShowContextMenuEvents","_keyboardListenerId","_focusTarget","_attachKeyboardEvents","overlayOptions","_getOverlayOptions","$overlayContent","_addCustomCssClass","_addPlatformDependentClass","_attachContextMenuEvent","eventName","_itemContextMenuHandler","current","phone","getShowEvent","_showContextMenuEventHandler","contextMenuAction","getShowDelay","_show","validatingTargetName","handler","_hoverEndHandler","$holder","_getChildNodes","submenuElement","innerOverlay","_hideOnOutsideClickHandler","propagateOutsideClick","_overlayShownActionHandler","_overlayHidingActionHandler","_overlayHiddenActionHandler","visualContainer","_hideAllShownSubmenus","_shouldHideOnOutsideClick","isDocument","$activeItemContainer","_getActiveItemsContainer","$itemContainers","_getItemsContainers","$clickedItem","_searchActiveItem","$rootItem","isRootItemClicked","isInnerOverlayClicked","_isIncludeOverlay","_hideAllShownChildSubmenus","$activeOverlay","$allOverlays","isSame","$overlay","$submenuElements","shownSubmenus","_shownSubmenus","$context","isSubmenuRendered","_renderSubmenuItems","_isSubmenuVisible","_drawSubmenu","$expandedItems","siblings","_hideSubmenuCore","submenuPosition","_getSubmenuPosition","fx","setup","_animate","animate","$rootItemWrapper","shouldRenderSubmenu","notCloseMenuOnItemClick","closeMenuOnClick","$prevSubmenu","canceled","$curSubmenu","_stopAnimate","_renderContentImpl","showing","_hide","jQEvent","_event$originalEvent","_positionContextMenu","_renderContextMenuOverlay","_widgetClass","_renderFocusState","_attachHoverEvents","_attachClickEvent","_setAriaAttributes","preventShowingDefaultContextMenuAboveOverlay","_overlayContentId","_getContextMenuPosition","isInitialPosition","_isInitialOptionValue","positioningAction","lastPosition","_refresh","_cleanAriaAttributes","CONTEXT_MENU","footerView","VIEW_NAMES","ContextMenuController","dxEvent","$targetRowElement","$targetCellElement","menuItems","view","_rowOptions$cells","_rowOptions$cells$col","targetElement","_contextMenuPrepared","ContextMenuView","contextMenuInstance","contextMenuModule","contextMenu","contextMenuView","ERROR_MESSAGE_CLASS","ERROR_CLOSEBUTTON_CLASS","ACTION_CLASS","ErrorHandlingController","_columnHeadersView","_rowsView","_createErrorRow","$errorRow","$closeButton","$errorMessage","_renderErrorMessage","errorRowIndex","removeErrorRow","fireContentReadyAction","url","$message","renderErrorRow","$popupContent","$errorMessageElement","$firstErrorRow","resizingController","$columnHeaders","$rowsViewElement","errorHandlingModule","errorHandling","errorHandlingController","hasChanges","BORDERS_CLASS","IMPORTANT_MARGIN_CLASS","GRIDBASE_CONTAINER_CLASS","isPixelWidth","getContainerHeight","paddingTop","paddingBottom","calculateFreeWidth","totalWidth","_getTotalWidth","calculateFreeWidthWithCurrentMinWidth","currentMinWidth","ResizingController","_initPostRenderHandlers","_refreshSizesHandler","_refreshSizes","resizeDeferred","_e$changeTypes","_setScrollerSpacing","_setAriaRowColCount","_fireContentReadyAction","_getBestFitWidths","_widths","_rowsView$getTableEle","headersTableElement","_setVisibleWidths","columnId","_toggleBestFitModeForView","isBestFit","$rowsTables","$viewTables","$tableBody","$rowsTable","$viewTable","_toggleBestFitMode","$rowsFixedTable","_footerView","_toggleContentMinHeight","_needStretch","getContentHeightLimit","_synchronizeColumns","resetBestFitMode","needBestFit","_needBestFit","hasMinWidth","isColumnWidthsCorrected","getActiveElement","_maxWidth","isFocusOutsideWindow","bottom","_correctColumnWidths","expandColumnWidth","_processStretch","_getAverageColumnsWidth","freeWidth","columnCountWithoutWidth","hasPercentWidth","hasAutoWidth","hasWidth","_hasWidth","_loop","isHiddenColumn","averageColumnsWidth","realColumnWidth","_getRealColumnWidth","borderWidth","resultSizes","groupSize","tableSize","unusedIndexes","diffElement","onePixelElementsCount","groupWidth","ratio","percentTotalWidth","pixelTotalWidth","freeSpace","percentTotalWidthInPixel","updateSize","$groupElement","importantMarginClass","detach","updateDimensions","checkSize","_checkSize","prevResult","_resizeDeferred","_resetGroupElementHeight","_updateDimensionsCore","groupElement","scrollTop","_lastWidth","_lastHeight","_devicePixelRatio","_setScrollerSpacingCore","vScrollbarWidth","hScrollbarWidth","$testDiv","rootElementHeight","maxHeightHappened","editorFactory","isMaxHeightApplied","scrollHeight","_updateLastSizes","_renderDimensions","SynchronizeScrollingController","_scrollChangedHandler","GridView","_resizingController","_getWidgetAriaLabel","_groupElement","_renderViews","_getTableRoleName","isFirstRender","_rootElement","gridViewModule","resizing","synchronizeScrolling","gridView","TOOLBAR_MENU_ACTION_CLASS","TOOLBAR_HIDDEN_BUTTON_CLASS","TOOLBAR_HIDDEN_BUTTON_GROUP_CLASS","TOOLBAR_MENU_SECTION_CLASS","TOOLBAR_MENU_LAST_SECTION_CLASS","ToolbarMenu","_renderSections","_getSections","_itemSelector","sectionName","$section","_updateSections","$sections","itemContainer","$after","_getItemTemplateName","isAction","menuTemplate","_itemClickHandler","BUTTON_GROUP_CLASS","TOOLBAR_ITEMS","getItemInstance","toggleItemFocusableElementTabIndex","_itemData$options","_findItemElementByItem","isItemNotFocusable","$widget","_itemInstance$_focusT","_itemData$options2","itemInstance","$focusTarget","DROP_DOWN_MENU_CLASS","DROP_DOWN_MENU_POPUP_CLASS","DROP_DOWN_MENU_POPUP_WRAPPER_CLASS","DROP_DOWN_MENU_LIST_CLASS","DROP_DOWN_MENU_BUTTON_CLASS","POPUP_OPTION_MAP","popupWidth","popupHeight","popupMaxHeight","popupAutoResizeEnabled","BUTTON_OPTION_MAP","buttonIcon","buttonText","buttonWidth","buttonHeight","buttonTemplate","DropDownMenu","extension","_list","_button","tab","_popup","itemTemplate","onButtonClick","usePopover","opened","selectionMode","selectedItemKeys","popupPosition","popupAnimation","onItemRendered","menuWidget","closeOnClick","isSimulator","_initOptions","_dataSourceOptions","_initItemClickAction","_initButtonClickAction","_itemClickAction","_buttonClickAction","_initTemplates","_templateManager","addDefaultTemplates","_renderButton","haspopup","expanded","_renderPopup","_cleanFocusState","_$popup","$button","_buttonOptions","_toggleMenuVisibility","$popup","_popupOptions","usePopup","_renderList","autoResizeEnabled","listConfig","_listOptions","_getAriaTarget","_setListDataSource","listMaxHeight","_itemOptionChanged","property","_this$_list","pageLoadMode","indicateLoading","_deferRendering","_toggleVisibility","_updateFocusableItemsTabIndex","open","close","MENU_INVISIBLE_CLASS","TOOLBAR_DROP_DOWN_MENU_CONTAINER_CLASS","POPOVER_BOUNDARY_OFFSET","_toolbar","_hasVisibleMenuItems","_renderMenuButtonContainer","$menu","_dropDownMenuContainer","_dropDownMenu","_dropDownMenuOptions","renderMenuItems","_getMenuItems","$afterSection","_$afterSection","_$menuButtonContainer","_buttonClass","_getTemplateByOption","itemClickAction","topAndBottomOffset","_getMenuItemTemplate","getDocumentElement","_updateMenuVisibility","isMenuVisible","overflowGetter","itemVisible","itemOverflow","_this$_dropDownMenu","TOOLBAR_AUTO_HIDE_ITEM_CLASS","TOOLBAR_AUTO_HIDE_TEXT_CLASS","TOOLBAR_HIDDEN_ITEM","Toolbar","menuContainer","overflowMenuVisible","_dimensionChanged","dimension","_menu","actionSheetItem","_renderMenu","_postProcessRenderItems","_hideOverflowItems","_getItemsWidth","_getSummaryItemsWidth","_$beforeSection","_$centerSection","elementWidth","overflowItems","itemsWidth","_isMenuItem","$hiddenItems","_restoreItems","$itemMarkup","_getToolbarItems","_renderMenuStrategy","_arrangeItems","margin","float","obj","itemOption","_isToolbarItem","repaint","_changeMenuOption","widgetOption","HEADER_PANEL_CLASS","TOOLBAR_BUTTON_CLASS","TOOLBAR_ARIA_LABEL","DEFAULT_TOOLBAR_ITEM_NAMES","HeaderPanel","_getButtonContainer","_getToolbarButtonClass","specificClass","secondClass","_getToolbarOptions","userToolbarOptions","toolbarOptions","itemRenderedCallback","userItems","_normalizeToolbarItems","defaultItems","defaultProps","defaultButtonsByNames","normalizedItems","_toolbarOptions","$headerPanel","$toolbar","setToolbarItemDisabled","toolbarInstance","itemOptionPrefix","updateToolbarDimensions","_this$_toolbar","getHeaderPanel","normalizedItem","headerPanelModule","DATAGRID_ROW_SELECTOR","DATAGRID_DEPRECATED_TEMPLATE_WARNING","DataGrid","_device","templateName","_dispose","DATE_REGEX","parseDates","StateStoringController","getStorage","storage","getUniqueStorageKey","_loadState","_saveState","setItem","isEnabled","_state","_isLoaded","_windowUnloadHandler","_savingTimeoutID","save","getDataState","pagerView","getPageSizes","processLoadState","selectionController","exportController","updateState","selectionChanged","_initialPageSize","_initialFilterValue","selectionOnlyChanged","exportSelectionOnly","selectionOnly","DEFAULT_FILTER_VALUE","filterSyncController","hasFilterState","getFilterValueFromColumns","stateStoringModule","stateLoaded","isStateLoading","applyState","oldState","newState","oldStateHash","newStateHash","isVirtualScrollingMode","stateStoringController","_restoreStateTimeoutID","_fireSelectionChanged","isDeferredSelection","EDITOR_CELL_CLASS","ROW_SELECTION_CLASS","SELECT_CHECKBOX_CLASS","CHECKBOXES_HIDDEN_CLASS","COMMAND_SELECT_CLASS","SELECTION_DISABLED_CLASS","SHOW_CHECKBOXES_MODE","SELECTION_MODE","processLongTap","isSelectionWithCheckboxes","stopSelectionWithCheckboxes","startSelectionWithCheckboxes","changeItemSelection","control","SelectionController","selectionCellTemplate","isRowSelected","renderSelectCheckBoxContainer","selectionHeaderTemplate","_renderSelectAllCheckBox","_attachSelectAllCheckBoxClickEvent","_selectionMode","_isSelectionWithCheckboxes","_selection","_createSelection","_updateSelectColumn","removedKeys","deselectRows","_getSelectionConfig","selectionOptions","virtualPaging","legacyScrollingMode","ignoreDisabledItems","allowLoadByRange","hasGroupColumns","dataFields","_dataController$dataS","_dataController$dataS2","plainItems","isItemSelected","isSelectableItem","getItemData","oldData","getLoadOptions","loadItemIndex","focusedItemIndex","shiftItemIndex","_dataController$dataS3","_dataController$dataS4","minIndex","maxIndex","isSelectColumnVisible","argument","_updateCheckboxesState","isDeferredMode","removedItemKeys","keyIndex","isComplexKey","selectionChangedOptions","changedItemIndexes","getChangedItemIndexes","visibleChangedItemIndexes","itemIndexes","addedItemKeys","_selectedItemsInternalChange","selectedItems","currentSelectedRowKeys","currentDeselectedRowKeys","isDataItem","isSelected","oldSelectionMode","selectRows","_isOnePageSelectAll","isSelectAll","getSelectAllState","selectAll","deselectAll","clearSelection","preserve","isDeselect","getSelectedRowKeys","getSelectedItemKeys","selectRowsByIndexes","getSelectedItems","visibleItemIndex","setFocusOnly","loadedItemIndex","_focusedItemIndex","selectionModule","hasSelectColumn","currentItem","isUpdateSelection","_updateSelectAllValue","$editor","selectAllValue","hasSelection","dxCheckBox","isEmptyData","createEditor","parentType","setValue","_attachCheckBoxClickEvent","_renderSelectCheckBox","_e$event","_updateCheckboxesClass","isSelectionDisabled","isClickableElement","isCommandSelect","isCheckBoxesHidden","COLUMN_CHOOSER_CLASS","COLUMN_CHOOSER_BUTTON_CLASS","NOTOUCH_ACTION_CLASS","COLUMN_CHOOSER_LIST_CLASS","COLUMN_CHOOSER_PLAIN_CLASS","COLUMN_CHOOSER_DRAG_CLASS","COLUMN_CHOOSER_SELECT_CLASS","COLUMN_CHOOSER_ICON_NAME","COLUMN_CHOOSER_ITEM_CLASS","TREEVIEW_NODE_SELECTOR","CHECKBOX_SELECTOR","CLICK_TIMEOUT","processItems","chooserColumns","isSelectMode","disableCheckBox","parentId","ColumnChooserController","renderShowColumnChooserButton","$columnChooserButton","columnChooserButtonClass","columnChooserEnabled","$showColumnChooserButton","showColumnChooser","integrationOptions","getPosition","ColumnChooserView","_isWinDevice","win","_updateList","_popupContainer","columnChooserList","_columnChooserList","unselectItem","_renderTreeView","_initializePopupContainer","columnChooserOptions","themeName","isGenericTheme","isMaterial","dxPopupOptions","_ignoreCopyRootClassesToWrapperDeprecation","shortcut","treeViewConfig","dataStructure","searchEnabled","$checkBox","$treeViewNode","checkBoxInstance","_prepareSelectModeConfig","_prepareDragModeConfig","selectNodesRecursive","onItemSelectionChanged","isLastColumnUnselected","needPartialRender","needFullRender","$nodes","columnVisible","isColumnChooserVisible","right","hideColumnChooser","popupContainer","columnChooserModule","columnChooserView","_appendColumnChooserItem","hintText","columnChooserMode","isMoveColumnDisallowed","createOffsetFilter","lastLevelOnly","groups","filterElement","currentFilter","GroupingHelper","findGroupInfoByKey","groupsInfo","hash","getGroupInfoIndexByOffset","leftIndex","rightIndex","middleIndex","_groupsInfo","updateTotalItemsCount","isGroupItemCountable","_isVirtualPaging","calculateItemsCount","foreachGroups","childrenAtFirst","foreachCollapsedGroups","updateOffsets","updateParentOffsets","foreachGroupsCore","callbackResults","executeCallback","callbackResult","currentParents","_updateGroupInfoOffsets","groupInfo","findGroupInfo","pathIndex","addGroupInfo","groupInfoData","allowCollapseAll","oldGroups","_group","cleanGroupsInfo","handleDataLoading","handleDataLoaded","handleDataLoadedCore","createGroupFilter","loadTotalCount","correctSkipLoadOption","skipCorrection","resultSkip","pathEquals","path1","path2","updateGroupOffsets","additionalGroupInfo","getGroupCount","collapsedGroups","collapsedItemsCount","skipFirstItem","sorts","arrangeSortingInfo","appendCollapsedPath","collapsedGroup","keyValue","pathValue","_totalCountWasIncreasedByCollapsedItems","query","multiLevelGroup","enumerate","groupedData","processGroupItems","removeLastItemsCount","needRemoveFirstItem","offsetInfo","itemsCountCorrection","changeRowExpand","groupCountQuery","beginPageIndex","dataSourceItems","groupOffsetQuery","getContinuationGroupCount","groupOffset","pageOffset","foreachExpandedGroups","updateGroups","expandedInfo","isLastGroupExpanded","paths","lastCount","updateGroupInfoItem","isLastGroupLevel","_isGroupExpanded","updateGroupInfos","loadedGroupCount","remotePaging","isGroupExpanded","getTotalOffset","groupInfos","totalOffset","childrenTotalCount","applyContinuationToGroupItem","groupLevel","expandedItemIndex","isLastExpandedItem","isFirstExpandedItem","lastExpandedItemSkip","isItemsTruncatedByTake","isDataDeferred","makeDataDeferred","loadGroupItems","currentGroupCount","currentGroupIndex","currentGroup","requireGroupCount","groupSummary","expandedFilters","expandedPath","isPagingLocal","isLastLevelGroupItemsPagingLocal","sortLastLevelGroupItems","expandedItems","loadGroupTotalCount","isGrouping","isFinite","isVirtualPaging","_updatePagingOptions","skipChildrenTotalCount","takeCorrection","parentTakeCorrection","continuationGroupCount","skipContinuationGroupCount","groupInfoCount","childrenGroupInfoCount","remoteGroupPaging","isLastGroup","_processPaging","_processSkips","firstItem","_processTakes","lastItem","maxTakeCount","handleGroup","DATAGRID_GROUP_PANEL_CLASS","DATAGRID_GROUP_PANEL_MESSAGE_CLASS","DATAGRID_GROUP_PANEL_ITEM_CLASS","DATAGRID_GROUP_PANEL_LABEL_CLASS","DATAGRID_GROUP_PANEL_CONTAINER_CLASS","DATAGRID_GROUP_ROW_CLASS","GroupingDataSourceAdapterExtender","_initGroupingHelper","_grouping","isAutoExpandAll","isFocusedRowEnabled","isODataRemoteOperations","collapseAll","_collapseExpandAll","expandAll","isExpand","beginLoading","_changeRowExpandCore","endLoading","_hasGroupLevelsExpandState","GroupingDataControllerExtender","_processGroupItems","_processGroupItem","groupedColumns","collectContinuationItems","resultItems","expandRow","collapseRow","onGroupingMenuItemClick","GroupingHeaderPanelExtender","_appendGroupingItem","_isGroupPanelVisible","isRendered","$groupPanel","_updateGroupPanelContent","_renderGroupPanelItems","_createGroupPanelItem","$groupPanelItem","$toolbarElement","$groupedColumnElement","isGroupingAllowed","isColumnGrouped","GroupingRowsViewExtender","isGroupRowStateChanged","isExpandButtonClicked","_changeGroupRowState","columnHeadersViewExtender","_isProcessedItem","MASTER_DETAIL_CELL_CLASS","MASTER_DETAIL_ROW_CLASS","masterDetailModule","initMasterDetail","_expandedItems","_isExpandAll","expandIndex","_getRowIndicesForExpand","detailColumnIndex","isEnabledChanged","isAutoExpandAllChanged","_updateParentDataGrids","$masterDetailRow","_updateMasterDataGrid","$detailElement","masterRowOptions","masterDataGrid","_updateMasterDataGridCore","isFixedColumns","_updateFixedMasterDetailGrids","masterRowIndex","$tables","rowsNotEqual","tablesNotEqual","detailElementWidth","isDetailHorizontalScrollCanBeShown","isDetailGridWidthChanged","isEditRow","_isDetailRow","$detailCell","getRealSeparatorIndex","quoteBalance","separatorCount","occurrence","getNthOccurrence","splitByIndex","adjustPercentValue","rawValue","getCaretBoundaries","signParts","getSign","prefixStubLength","postfixStubLength","_getDigitCountBeforeIndex","decimalSeparator","getDecimalSeparator","regExp","textBeforePosition","_reverseText","_getDigitPositionByIndex","digitIndex","counter","_trimNonNumericCharsFromEnd","getCaretWithOffset","caret","getCaretAfterFormat","formatted","isSeparatorBasedText","isSeparatorBasedString","realSeparatorOccurrenceIndex","pointPosition","newPointPosition","textParts","formattedParts","isCaretOnFloat","relativeIndex","digitsBefore","newPosition","getCaretInBoundaries","formattedIntPart","positionFromEnd","digitsFromEnd","newPositionFromEnd","newPositionFromBegin","isCaretInBoundaries","boundaries","adjustedCaret","getCaretOffset","previousText","newText","previousBoundaries","newBoundaries","SPIN_CLASS","SPIN_BUTTON_CLASS","SPIN_HOLD_DELAY","NUMBER_BOX","POINTERUP_EVENT_NAME","up","POINTERCANCEL_EVENT_NAME","SpinButton","onChange","_spinIcon","_spinDownHandler","_spinChangeHandler","_clearTimer","_feedBackDeferred","_holdTimer","setInterval","clearInterval","SPIN_CONTAINER_CLASS","SPIN_TOUCH_FRIENDLY_CLASS","$spinContainer","$spinContainerChildren","pointerDownAction","_spinButtonsPointerDownHandler","_spinUpChangeHandler","_spinDownChangeHandler","$spinUp","$spinDown","_getOptions","_addToContainer","_legacyRender","_isTouchFriendly","_isVisible","isTouchFriendly","shouldUpdate","$spinButtons","spinUp","spinDown","WIDGET_CLASS","FIREFOX_CONTROL_KEYS","FORCE_VALUECHANGE_EVENT_NAMESPACE","NumberBoxBase","upArrow","downArrow","enter","step","showSpinButtons","useLargeSpinButtons","invalidValueMessage","_useTemplates","_getDefaultButtons","Ctor","_isSupportInputMode","generic","_renderSubmitElement","_getDefaultAttributes","inputmode","_validateValue","_$submitElement","_setSubmitValue","_getSubmitElement","val","_keyPressHandler","isInputCharValid","_keyPressed","_onMouseWheel","delta","_spinValueChange","_renderValue","inputValue","_input","_forceValueRender","_toggleEmptinessEventHandler","valuenow","valuetext","_updateButtons","_applyDisplayValueFormatter","_renderDisplayText","_renderProps","prop","valuemin","valuemax","$input","_normalizeInputValue","_correctRounding","_saveValueChangeEvent","regex","isFloatValue","isFloatStep","valueAccuracy","stepAccuracy","accuracy","_round","multiplier","_renderValueChangeEvent","forceValueChangeEvent","_forceRefreshInputValue","_valueChangeEventHandler","_normalizeText","_parseValue","valueHasDigits","_isValueValid","_applyValueBoundaries","validationRequest","isValueIncomplete","_isValueIncomplete","isValueCorrect","_isValueInRange","_replaceCommaWithPoint","_inputIsInvalid","isNumberMode","validityState","validity","badInput","_isNumber","isValueValid","isValid","isNumber","validationError","editorSpecific","_clearValue","_resumeValueChangeAction","NUMBER_FORMATTER_NAMESPACE","MOVE_FORWARD","MOVE_BACKWARD","MINUS","MINUS_KEY","INPUT_EVENT","CARET_TIMEOUT_DURATION","NumberBoxMask","useMaskBehavior","_isDeleteKey","_useMaskBehavior","minus","_revertSign","del","_removeHandler","backspace","leftArrow","_arrowHandler","rightArrow","home","_moveCaretToBoundaryEventHandler","_updateFormattedValue","_getTextSeparatorIndex","_focusInHandler","_preventNestedFocusEvent","clearCaretTimeout","_caretTimeout","_caret","_getInputVal","decimalSeparatorIndex","_focusOutHandler","shouldHandleEvent","_focusOutOccurs","_getFormatPattern","_hasValueBeenChanged","_updateParsedValue","_adjustParsedValue","_setTextByParsedValue","_parsedValue","nextCaret","_moveCaretToBoundary","newCaret","_shouldMoveCaret","isDecimalSeparatorNext","moveToFloat","_lastKey","_keyboardHandler","_lastKeyName","_shouldHandleKey","normalizedText","enteredChar","_tryParse","_moveCaret","isDeleteKey","isBackspaceKey","caretPosition","canDelete","_isStub","editedText","_replaceSelectedText","noDigits","search","valueAfterRemoving","_isNonStubAfter","_isPercentFormat","noEscapedFormat","_parse","formatOption","isCustomParser","integerPartStartIndex","formatPointIndex","textPointIndex","formatIntegerPartLength","textIntegerPartLength","customFormatter","_currentFormat","_updateFormat","isLDMLPattern","isExponentialFormat","shouldUseFormatAsIs","_getFormatForSign","_sign","_removeStubs","excludeComma","thousandsSeparator","getThousandsSeparator","stubs","_getStubs","prefixStubs","postfixRegex","decoratorsRegex","stub","_truncateToPrecision","maxPrecision","strValue","isTextSelected","_getParsedValue","_getPrecisionLimits","isDecimalPointRestricted","isUselessCharRestricted","textWithoutStubs","parsedValueSign","parsedValueWithSign","pointIndex","floatLength","isPrecisionInRange","endsWithZero","_setInputText","_formattedValue","_renderInputType","isNumberType","isDesktop","_setInputType","_isChar","isSpecialChar","altKey","isMinusKey","_renderInput","_renderFormatter","_clearCache","_detachFormatterEvents","_attachFormatterEvents","_isInputFromPaste","inputType","_isValuePasted","_formatValue","isString","escapedDecimalSeparator","regExpString","stubRegExp","currentFormat","realSeparatorIndex","floatPart","minPrecision","_applyRevertedSign","preserveSelectedText","currentText","caretInBoundaries","_removeMinusFromText","isMinusPressed","textWithoutMinus","wasMinusRemoved","textWasChanged","clearedText","_refreshValueChangeEvent","_refreshEvents","monthGetter","monthSetter","monthLimits","getLimits","newDay","PATTERN_GETTERS","lastDayInMonth","isPM","getDay","currentYear","valueLength","maxLimitLength","getPatternGetter","renderDateParts","sections","isStub","limits","_len","_key","setter","forcedPattern","dM","getAmPm","getDatePartIndexByPosition","caretInGroup","DATE_COMPONENTS","TIME_COMPONENTS","ONE_MINUTE","ONE_DAY","ONE_YEAR","getStringFormat","dateUtils","SUPPORTED_FORMATS","MIN_DATEVIEW_DEFAULT_DATE","MAX_DATEVIEW_DEFAULT_DATE","FORMATS_INFO","getStandardPattern","standardPattern","FORMATS_MAP","SUBMIT_FORMATS_MAP","toStandardDateFormat","fromStandardDateFormat","getMaxMonthDay","mergeDates","formatInfo","componentInfo","DATE_COMPONENTS_INFO","getLongestCaptionIndex","captionArray","longestIndex","longestCaptionLength","getLongestDate","stringFormat","longestDate","normalizeTime","setSeconds","setMilliseconds","formatDate","DX_SWIPEABLE","SWIPEABLE_CLASS","ACTION_TO_EVENT_MAP","onStart","swipe","onUpdated","onCancel","Swipeable","elastic","itemSizeFunc","_attachEventHandlers","_detachEventHandlers","_createEventData","_eventData","CALENDAR_NAVIGATOR_CLASS","CALENDAR_NAVIGATOR_PREVIOUS_MONTH_CLASS","CALENDAR_NAVIGATOR_NEXT_MONTH_CLASS","CALENDAR_NAVIGATOR_PREVIOUS_VIEW_CLASS","CALENDAR_NAVIGATOR_NEXT_VIEW_CLASS","CALENDAR_NAVIGATOR_DISABLED_LINK_CLASS","CALENDAR_NAVIGATOR_CAPTION_BUTTON_CLASS","Navigator","onCaptionClick","_clickAction","_captionClickAction","_renderButtons","_renderCaption","_prevButton","$prevButton","_nextButton","$nextButton","_caption","$caption","toggleButton","buttonPrefix","buttonName","abstract","CALENDAR_OTHER_VIEW_CLASS","CALENDAR_CELL_CLASS","CALENDAR_EMPTY_CELL_CLASS","CALENDAR_TODAY_CLASS","CALENDAR_SELECTED_DATE_CLASS","CALENDAR_CONTOURED_DATE_CLASS","CALENDAR_DXCLICK_EVENT_NAME","CALENDAR_DATE_VALUE_KEY","BaseView","_getViewName","disabledDates","allowValueSelection","_todayDate","_renderImpl","_createDisabledDatesHandler","_renderBody","_renderContouredDate","_renderEvents","_$table","$body","rowData","cellDate","_getFirstCellData","prevCellDate","colIndex","_appendCell","_appendMethodName","_cacheAppendMethodName","_getClassNameByDate","getShortDateFormat","getCellAriaLabel","fixTimezoneGap","_prepareCellTemplateData","_getCellText","_getNextCellData","_isTodayCell","_isDateOutOfRange","isDateDisabled","_isOtherView","_createCellClickAction","_cellClickAction","_disabledDatesHandler","_getDefaultDisabledDatesHandler","contouredDate","$oldContouredCell","_getContouredCell","$newContouredCell","_getCellByDate","_changeValue","selectedCell","_selectedCell","_getFirstAvailableDate","getFirstDateView","isBoundary","CALENDAR_OTHER_MONTH_CLASS","Views","firstDayOfWeek","_renderHeader","_renderFocusTarget","$headerRow","$header","_renderHeaderCell","fullCaption","abbrCaption","_getDayCaption","_getFirstDayOfWeek","scope","abbr","getNavigatorCaption","today","sameDate","dateInRange","daysInWeek","getFirstMonthDate","firstMonthDayOffset","sameMonthAndYear","isDisabledDate","getLastMonthDate","foundDate","sameYear","decade","sameDecade","getFirstYearInDecade","createDateWithFullYear","firstYearInDecade","startDate","endDate","_isValueOnCurrentView","century","minDecade","maxDecade","sameCentury","getFirstDecadeInCentury","firstDecadeInCentury","CALENDAR_CLASS","CALENDAR_BODY_CLASS","CALENDAR_FOOTER_CLASS","CALENDAR_TODAY_BUTTON_CLASS","CALENDAR_HAS_FOOTER_CLASS","CALENDAR_VIEWS_WRAPPER_CLASS","CALENDAR_VIEW_CLASS","FOCUSED_STATE_CLASS","ANIMATION_DURATION_SHOW_VIEW","POP_ANIMATION_FROM","POP_ANIMATION_TO","CALENDAR_INPUT_STANDARD_PATTERN","LEVEL_COMPARE_MAP","ZOOM_LEVEL","MONTH","YEAR","DECADE","CENTURY","elementHasFocus","Calendar","zoomLevel","maxZoomLevel","minZoomLevel","showTodayButton","onContouredChanged","skipFocusCheck","_waitRenderView","_moveCurrentDateByOffset","_getRtlCorrection","_navigateUp","isAnimating","_view","_navigateDown","_dateOption","sameView","getViewFirstCellDate","_moveToClosestAvailableDate","getViewLastCellDate","_isMaxZoomLevel","_updateTimeComponent","_dateValue","_getSerializationFormat","_convertToDate","_shiftDate","baseDate","_getMaxDate","_getMinDate","isDateForwardInNeighborView","_areDatesInNeighborView","isDateForwardInRange","dateForward","date1","date2","getYear","isDateForwardInStartView","isDateBackwardInStartView","isCurrentDateAvailable","_isDateNotAvailable","isDateForwardAvailable","isDateBackwardAvailable","dateBackward","_areDatesInSameView","_correctZoomLevel","_initCurrentDate","_getNormalizedDate","normalizeDate","_getDate","_onContouredChanged","_updateCurrentDate","_$viewsWrapper","normalizedDate","_getViewsOffset","_isOtherViewCellClicked","_suppressNavigation","_navigate","_renderNavigator","_setViewContoured","_updateAriaId","zoomCorrection","_getMonthsOffset","yearOffset","monthOffset","_alreadyViewRender","_getDateByOffset","_waitRenderViewTimeout","_date","currentDay","getDifferenceInMonth","lastDay","_navigator","_renderSwipeable","_renderFooter","_updateAriaSelected","_renderSpecificView","beforeDate","_beforeView","_isViewAvailable","afterDate","_afterView","_translateViews","specificView","$view","_viewConfig","_injectComponent","_cellClickHandler","getViewMinBoundaryDate","getViewMaxBoundaryDate","_getViewPosition","coefficient","rtlCorrection","nextView","getViewDown","isMaxZoomLevel","currentValue","setMinutes","newCurrentDate","_animateShowView","_navigatorConfig","_updateButtonsVisibility","_navigatorClickHandler","getViewUp","_isMinZoomLevel","_getRequiredView","_swipeable","_swipeStartHandler","_swipeUpdateHandler","_swipeEndHandler","_viewWidth","maxLeftOffset","maxRightOffset","isRtl","_updateNavigatorCaption","targetOffset","moveOffset","_isDateInInvalidRange","_animateWrapper","_viewWidthValue","$todayButton","_toTodayView","_$footer","_popAnimationView","newView","offsetSign","endPosition","viewsWrapperPosition","_preventViewChangeAnimation","_wrapperAnimationEndHandler","_rearrangeViews","_resetLocation","viewOffset","viewToCreateKey","viewToRemoveKey","destinationDate","dateByOffset","_clearViewWidthCache","_disposeViews","_refreshViews","_updateViewsValue","_value","$prevSelectedCell","$selectedCell","_value2","ariaId","_suppressingNavigation","getContouredDate","DateBoxStrategy","dateBox","_widget","_renderWidget","_createWidget","_getWidgetContainer","_getWidgetName","widgetOptions","_getWidgetOptions","getDefaultOptions","supportedKeys","getKeyboardListener","customizeButtons","getParsedText","renderInputMinMax","renderOpenedState","_updateValue","popupConfig","_this$_getPopup","_getPopup","renderPopupContent","_preventFocusOnPopup","getFirstPopupElement","getLastPopupElement","popupShowingHandler","popupHiddenHandler","dateBoxValue","useCurrentDateByDefault","getDefaultDate","textChangedHandler","renderValue","getValue","isAdaptivityChanged","dateOption","CalendarStrategy","homeEndHandler","viewValue","_getContouredValue","lastActionElement","shouldCloseDropDown","_closeDropDownByEnter","_valueChangedHandler","actionValue","_popupConfig","buttonsLocation","_isCalendarVisible","registerKeyHandler","_escapeHandler","sameHoursAndMinutes","DIRECTION_HORIZONTAL","DIRECTION_VERTICAL","DIRECTION_BOTH","convertToLocation","DATEVIEW_ROLLER_CLASS","DATEVIEW_ROLLER_ACTIVE_CLASS","DATEVIEW_ROLLER_CURRENT_CLASS","DATEVIEW_ROLLER_ITEM_CLASS","DATEVIEW_ROLLER_ITEM_SELECTED_CLASS","DATEVIEW_ROLLER_ITEM_SELECTED_FRAME_CLASS","DATEVIEW_ROLLER_ITEM_SELECTED_BORDER_CLASS","showOnClick","onSelectedIndexChanged","_visibilityChangedHandler","_endActionHandler","_renderSelectedItemFrame","_renderContainerClick","_renderSelectedValue","_renderItemsClick","_renderWheelEvent","_renderSelectedIndexChanged","_selectedIndexChanged","_isWheelScrolled","clickAction","_$items","_fitIndex","_moveTo","_getItemPosition","_renderActiveStateItem","_itemHeight","itemSelector","_getItemSelector","_itemElementIndex","_prepareDirections","_animation","_shouldScrollToNeighborItem","handleMove","_moveIsAllowed","currentSelectedIndex","locationTop","currentSelectedIndexPosition","dy","_isInNullNeighborhood","newSelectedIndex","_fitSelectedIndexInRange","_getSelectedIndexAfterScroll","_getNewSelectedIndex","_visibilityTimer","toggleActiveState","fitIndex","_fireSelectedIndexChanged","_refreshSelectedIndex","DATEVIEW_CLASS","DATEVIEW_COMPACT_CLASS","DATEVIEW_WRAPPER_CLASS","DATEVIEW_ROLLER_CONTAINER_CLASS","TYPE","ROLLER_TYPE","DateView","_valueOption","_getDefaultDate","applyCompactClass","_toggleFormatClasses","_toggleCompactClass","previousFormat","_wrapper","_$wrapper","_renderRollers","_$rollersContainer","_createRollerConfigs","_rollers","_rollerConfigs","$roller","displayItems","roller","_toggleActive","_setActiveRoller","_setRollerState","_createRollerConfig","valueRange","_calculateRollerConfigValueRange","curDate","_getCurrentDate","valueItems","getIndex","currentRoller","activeRoller","_updateRollersPosition","correctIndex","rollerValue","_refreshRollers","_refreshRoller","rollerType","rollerConfig","minYear","minMonth","maxYear","maxMonth","minHour","maxHour","DateViewStrategy","openOnFieldClick","applyButtonText","_popupToolbarItemsConfig","defaultOptionsRules","_device2","_isNativeType","NativeStrategy","_getDateBoxType","dropDownButton","getButton","android","click","BOX_CLASS","BOX_SELECTOR","BOX_ITEM_CLASS","BOX_ITEM_DATA_KEY","MINSIZE_MAP","MAXSIZE_MAP","SHRINK","FLEX_JUSTIFY_CONTENT_MAP","center","FLEX_ALIGN_ITEMS_MAP","stretch","FLEX_DIRECTION_MAP","setFlexProp","cssName","styleExpr","BOX_EVENTNAMESPACE","UPDATE_EVENT","FALLBACK_BOX_ITEM","FALLBACK_WRAP_MAP","FALLBACK_MAIN_SIZE_MAP","FALLBACK_CROSS_SIZE_MAP","FALLBACK_PRE_MARGIN_MAP","FALLBACK_POST_MARGIN_MAP","FALLBACK_CROSS_PRE_MARGIN_MAP","FALLBACK_CROSS_POST_MARGIN_MAP","MARGINS_RTL_FLIP_MAP","marginLeft","marginRight","_renderVisible","_options","fireItemStateChangedAction","_option","initSize","justifyContent","_normalizedAlign","align","alignItems","_normalizedCrossAlign","crossAlign","flexPropPrefix","maxSize","minSize","baseSize","shrink","each","flexBasis","flexDirection","fontSize","whiteSpace","verticalAlign","totalItemSize","boxSize","_setItemsMargins","_chooseMarginSide","itemSize","totalRatio","totalWeightedShrink","totalBaseSize","_baseSize","freeSpaceSize","_boxSize","factor","totalFactor","_contentSize","_parseSize","_boxSizeValue","_totalBaseSize","renderItems","renderAlign","renderCrossAlign","triggerHandler","onItemStateChanged","_layoutStrategy","_queue","_initLayout","_initBoxQueue","_layout","renderBox","_renderAlign","_renderActions","_onItemStateChanged","_queueIsNotEmpty","_shiftItemFromQueue","itemHoldTimeout","onItemHold","onItemContextMenu","_updateTimer","_isUpdated","$itemNode","_renderItemContentByNode","_renderItemContent","boxConfig","box","_pushItemToQueue","_createItemByTemplate","_itemOptions","TIMEVIEW_CLASS","TIMEVIEW_CLOCK_CLASS","TIMEVIEW_FIELD_CLASS","TIMEVIEW_HOURARROW_CLASS","TIMEVIEW_TIME_SEPARATOR_CLASS","TIMEVIEW_FORMAT12_CLASS","TIMEVIEW_FORMAT12_AM","TIMEVIEW_FORMAT12_PM","TIMEVIEW_MINUTEARROW_CLASS","rotateArrow","$arrow","angle","cssRotate","TimeView","use24HourFormat","_showClock","_arrowOffset","stylingMode","_getValue","_renderBox","_updateTime","$box","_renderClock","_renderField","__","_$hourArrow","_$minuteArrow","_updateClock","hourArrowAngle","minuteArrowAngle","_getBoxItems","is12HourFormat","_hourBox","_minuteBox","_format12","_createHourBox","_createMinuteBox","_createFormat12Box","_onHourBoxValueChanged","onKeyboardHandled","opts","_getNumberBoxConfig","_isPM","newHours","_convertMaxHourToMin","maxHoursValue","newMinutes","_refreshFormat12","_silentEditorValueUpdate","_suppressValueChangeAction","displayValueFormatter","_normalizeHours","_updateField","SHRINK_VIEW_SCREEN_WIDTH","DATEBOX_ADAPTIVITY_MODE_CLASS","DATEBOX_TIMEVIEW_SIDE_CLASS","CalendarWithTimeStrategy","applyValueMode","_is24HourFormat","viewDate","_updateDateTime","_timeView","_isShrinkView","_isSmallScreen","_repaintTimer","isAdaptiveMode","currentAdaptiveMode","_currentAdaptiveMode","preventDefaultValue","_box","_attachTabHandler","calendarPopupConfig","clockMinWidth","_hasFocusClass","_this$_widget$option","_removeMinWidthTimer","DATE_FORMAT","BOUNDARY_VALUES","ListStrategy","_widgetItems","_getDateByItemData","_refreshItems","_timeListItemTemplate","_listItemClickHandler","onFocusedItemChanged","_getTimeListItems","_setSelectedItemsByValue","_asyncScrollTimeout","_scrollToSelectedItem","dateIndex","_getDateIndex","scrollToItem","_areDatesEqual","_getBoundaryDate","_getRangeItems","rangeDuration","rangeItems","boundaryValue","_updatePopupHeight","dropDownOptionsHeight","_setPopupOption","_timeList","DATEBOX_CLASS","DX_AUTO_WIDTH_CLASS","DX_INVALID_BADGE_CLASS","DX_CLEAR_BUTTON_CLASS","DATEBOX_WRAPPER_CLASS","DROPDOWNEDITOR_OVERLAY_CLASS","PICKER_TYPE","calendar","rollers","list","native","STRATEGY_NAME","dateView","calendarWithTime","STRATEGY_CLASSES","Native","CalendarWithTime","List","DateBox","_strategy","_renderButtonContainers","showAnalogClock","pickerType","invalidDateMessage","dateOutOfRangeMessage","adaptivityEnabled","calendarOptions","useHiddenSubmitElement","realDevice","_userOptions","_updatePickerOptions","_pickerType","_initStrategy","_toLowerCaseFirstLetter","strategyName","_getStrategyName","_getFormatType","currentType","isTime","isDate","_refreshFormatClass","_refreshPickerTypeClass","_formatValidationIcon","_this$_strategy$_upda","_this$_strategy","inputElement","isRtlEnabled","clearButtonWidth","_getClearButtonWidth","longestElementDimensions","_getLongestElementDimensions","curWidth","getComputedStyle","shouldHideValidationIcon","_storedPadding","leftPadding","rightPadding","_isClearButtonVisible","clearButtonElement","longestValue","$longestValueElement","isPaddingStored","storedPadding","necessaryWidth","_renderPopupWrapper","_getPopupTitle","classPostfixes","_renderPopupContent","_getFirstPopupElement","_getLastPopupElement","_popupShowingHandler","_popupShownHandler","_popupHiddenHandler","_clearValueHandler","_readOnlyPropValue","isCustomValueDisabled","_getDisplayedText","submitFormat","submitValue","displayedText","_getFormatByMode","_getParsedDate","_getDateByDefault","_applyInternalValidation","_applyCustomValidation","parsedText","isDateInRange","validationMessage","_serializeDate","_isValueChanged","oldTime","newTime","_isTextChanged","oldText","_renderOpenedState","_refreshStrategy","_applyButtonHandler","_this$_strategy2","_updatePopupTitle","_this$_popup","_renderInputValue","MASK_EVENT_NAMESPACE","FORWARD","BACKWARD","DateBoxMask","originalHandlers","callOriginalHandler","originalHandler","applyHandler","maskHandler","_shouldUseOriginalHandler","_revertPart","_isAllSelected","_selectFirstPart","_selectLastPart","_revertChanges","_enterHandler","_selectNextPart","_upDownArrowHandler","isNotDeletingInCalendar","_setNewDateIfEmpty","originalValue","_getActivePartValue","_initialMaskValue","_loadMaskValue","_partIncrease","emptyDateValue","alt","_e$originalEvent","_useBeforeInputEvent","oldInputValue","_processInputKey","_maskInputHandler","_renderSelectedPart","_isSingleCharKey","_keyInputHandler","isBackwardDeletion","isForwardDeletion","_isSingleDigitKey","_maskValue","_activePartIndex","_searchString","_searchNumber","_formatPattern","_renderDateParts","formatLength","_getActivePartProp","isShortFormat","maxSearchLength","isLengthExceeded","_searchValue","isValueOverflowed","_getActivePartLimits","_setActivePartValue","_partLimitsReached","startString","endLimit","_clearSearchValue","_regExpInfo","quantifierRegexp","convertedSource","sourcePart","_prepareRegExpInfo","_detachMaskEvents","_clearMaskState","_attachMaskEvents","_initMaskState","_dateParts","_maskClickHandler","_maskPasteHandler","_maskCompositionEndHandler","_maskBeforeInputHandler","_disposed","isBoundaryIndex","lockOtherParts","limitFunction","_getRealLimitsPattern","zeroes","_addLeadingZeroes","limitDelta","_applyLimits","limitBase","limitClosest","_isDateValid","_isValueDirty","_fireChangeEvent","shouldFireChangeEvent","isDefaultPrevented","_saveMaskValue","_renderMask","CHECKBOX_SIZE_CLASS","EDITOR_INLINE_BLOCK","EditorFactoryMixin","getResultConfig","inputAttr","checkEnterBug","ios","getTextEditorConfig","isEnterBug","sharedData","needDelayedUpdate","isInputOrKeyUpEvent","updateValue","valueChangeTimeout","updateValueTimeout","valueChangeEvent","prepareBooleanEditor","prepareSelectBox","editorName","displayGetter","postProcess","selectBox","stopWatch","searchExpr","showClearButton","editorElement","blur","isSearching","isOnForm","showValidationMark","$editorElement","dxDateBox","defaultEnterKeyHandler","dxTextArea","FOCUS_OVERLAY_CLASS","FOCUSED_ELEMENT_CLASS","MODULE_NAMESPACE","UPDATE_FOCUS_EVENTS","DX_HIDDEN","EditorFactory","_getFocusedElement","$dataGridElement","rowSelector","focusedElementSelector","$focusedElement","_getFocusCellSelector","_updateFocusCore","$focusCell","hideBorders","$focus","loseFocus","_updateFocus","isFocusOverlay","_isFocusOverlay","_updateFocusTimeoutID","_updateFocusOverlaySize","calculate","oversize","hideBorder","_$focusedElement","_focusTimeoutID","renderFocusOverlay","focused","refocus","_$focusOverlay","elemCoord","focusOverlayPosition","precise","_updateFocusHandler","_attachContainerEventHandlers","editorFactoryModule","DEFAULT_BUTTON","DX_DIALOG_CLASSNAME","DX_DIALOG_WRAPPER_CLASSNAME","DX_DIALOG_ROOT_CLASSNAME","DX_DIALOG_CONTENT_CLASSNAME","DX_DIALOG_MESSAGE_CLASSNAME","DX_DIALOG_BUTTONS_CLASSNAME","DX_DIALOG_BUTTON_CLASSNAME","DX_BUTTON_CLASSNAME","FakeDialogComponent","custom","_options$title","isMessageDefined","isMessageHtmlDefined","messageHtml","popupToolbarItems","popupInstance","execute","ignoreChildEvents","bottomToolbar","$firstButton","popupOptions","isPortrait","ROW_SELECTED_CLASS","EDIT_FORM_CLASS","DATA_EDIT_DATA_INSERT_TYPE","DATA_EDIT_DATA_REMOVE_TYPE","EDITING_POPUP_OPTION_NAME","EDITING_FORM_OPTION_NAME","EDITING_EDITROWKEY_OPTION_NAME","EDITING_EDITCOLUMNNAME_OPTION_NAME","TARGET_COMPONENT_NAME","EDITORS_INPUT_SELECTOR","FOCUSABLE_ELEMENT_SELECTOR","EDIT_MODE_BATCH","EDIT_MODE_ROW","EDIT_MODE_CELL","EDIT_MODE_FORM","EDIT_MODE_POPUP","FIRST_NEW_ROW_POSITION","LAST_NEW_ROW_POSITION","PAGE_BOTTOM_NEW_ROW_POSITION","PAGE_TOP_NEW_ROW_POSITION","VIEWPORT_BOTTOM_NEW_ROW_POSITION","VIEWPORT_TOP_NEW_ROW_POSITION","EDIT_MODES","ROW_BASED_MODES","MODES_WITH_DELAYED_FOCUS","READONLY_CLASS","LINK_CLASS","ROW_SELECTED","EDIT_BUTTON_CLASS","COMMAND_EDIT_CLASS","COMMAND_EDIT_WITH_ICONS_CLASS","INSERT_INDEX","ROW_INSERTED","ROW_MODIFIED","CELL_MODIFIED","EDITING_NAMESPACE","DATA_EDIT_DATA_UPDATE_TYPE","DEFAULT_START_EDIT_ACTION","EDIT_LINK_CLASS","edit","undelete","delete","EDIT_ICON_CLASS","METHOD_NAMES","ACTION_OPTION_NAMES","BUTTON_NAMES","EDITING_CHANGES_OPTION_NAME","createFailureHandler","isEditingCell","isEditingOrShowEditorAlwaysDataCell","isCommandCell","isEditorCell","EditingController","getButtonIndex","getButtonName","_lastOperation","_deferreds","_saveEditorHandler","_updateEditColumn","_updateEditButtons","_internalState","getEditMode","editMode","_getDefaultEditorTemplate","_getNewRowPosition","getChanges","getInsertRowCount","resetChanges","needReset","_getInternalData","_addInternalData","internalData","_getOldData","_this$_getInternalDat","getUpdatedData","editIndex","getInsertedData","getRemovedData","_fireDataErrorOccurred","getPopupContent","_needToCloseEditableCell","_closeEditItem","_isDefaultButtonVisible","_isButtonVisible","_isButtonDisabled","_getButtonConfig","addRowToNode","editingOptions","allowAction","_getEditingButtons","buttonIndex","haveCustomButtons","_renderEditingButtons","_createButton","_getEditCommandCellTemplate","isRowBasedEditMode","getFirstEditableColumnIndex","getFirstEditableCellInRow","getFocusedCellInRow","_inputFocusTimeoutID","_pointerUpEditorHandler","_pointerDownEditorHandler","_handleEditRowKeyChange","_handleChangesChange","_resetEditColumnName","_resetEditRowKey","oldRowIndexCorrection","_getEditRowIndexCorrection","oldRowIndex","_editRowFromOptionChanged","cancelEditData","_addInsertInfo","_items$rowIndex","_pageIndex","_refreshCore","isEditRowKeyDefined","_setEditRowKey","silent","_setEditRowKeyByIndex","getEditRowIndex","_getVisibleEditRowIndex","getEditFormRowIndex","isKeyEqual","isEditCell","isEditRowByIndex","_getVisibleEditColumnIndex","_getInsertRowIndex","isProcessedItems","_getInsertAfterOrBeforeKey","isProcessedItem","nextItem","_generateNewItem","_this$_getInternalDat2","insertInfo","_getLoadedRowIndex","loadedRowIndex","insertAfterOrBeforeKey","_this$_getInternalDat3","isInsert","processDataItem","_processDataItemCore","modified","removed","_initNewRow","_createInsertInfo","_getInsertIndex","parentKey","_this$_getInternalDat4","_setInsertAfterOrBeforeKey","allItems","isViewportBottom","insertKey","maxInsertIndex","editItem","_this$_getInternalDat5","insertChange","_insertChange$insertA","_getPageIndexToInsertRow","lastPageIndex","_addRow","param","oldEditRowIndex","allowCancelEditing","_allowRowAdding","__KEY__","_addRowCore","_navigateToNewRow","insertIndex","initialOldEditRowIndex","editRowIndex","_addChange","_editRowIndex","_change","focusController","pageIndexToInsertRow","navigateToRowByKey","navigateToRow","_showAddedRow","_afterInsertRow","_focusFirstEditableCellInRow","_beforeFocusElementInRow","$firstCell","_editCellInProgress","_delayedInputFocus","_isEditingStart","_beforeUpdateItems","_setEditColumnNameByIndex","_visibleColumns$index","_setEditColumnName","_getEditColumn","_getColumnByName","editColumn","columnName","isColumnHidden","_resetEditIndices","_item$oldData","_editRowFromOptionChangedCore","preventRendering","_needFocusEditor","_focusEditorIfNeed","_showEditPopup","_repaintEditPopup","_getEditPopupHiddenHandler","_getPopupEditFormTemplate","_getSaveButtonConfig","saveEditData","_getCancelButtonConfig","_removeInternalData","_updateInsertAfterOrBeforeKeys","removeChange","_removeChange","executeOperation","waitForDeferredOperations","_processCanceledEditingCell","_repaintEditCell","oldColumn","beforeFocusCallback","callBeforeFocusCallbackAlways","inputFocus","$focusableElement","_beforeFocusCallback","_focusEditingCell","$editCell","editColumnIndex","_checkAndDeleteRow","showDialogTitle","confirmResult","_deleteRowCore","_afterDeleteRow","_fireOnSaving","onSavingParams","_executeEditingAction","_processChanges","results","dataChanges","changeCopy","_beforeSaveEditData","newData","doneDeferred","_processRemoveIfError","_processRemove","_processRemoveCore","_processSaveEditDataResult","hasSavedData","changesLength","isError","_fireSaveEditDataEvents","isSaving","_resolveAfterSave","_saving","_saveEditDataInner","needFocusEditCell","_afterSaveEditData","_endSaving","_cancelSaving","_beforeEndSaving","_refreshDataAfterSave","isFullRefresh","isEditColumnVisible","_isEditColumnVisible","_isEditButtonDisabled","isEditRowDefined","isButtonDisabled","_applyModified","_beforeCloseEditCellInBatchMode","_cancelEditDataCore","_beforeCancelEditData","_afterCancelEditData","_hideEditPopup","hasEditData","isPageChanged","_getRowIndicesForCascadeUpdating","skipCurrentRow","addDeferred","_prepareChange","_options$row","rowKey","setCellValueResult","_updateRowValues","updateFieldValue","forceUpdateRow","_focusPreviousEditingCellIfNeed","_updateEditRow","_needUpdateRow","isCustomSetCellValue","isCustomCalculateCellValue","changeOptions","_applyChangeCore","_updateEditRowCore","_updateRowImmediately","_updateRowWithDelay","_validateEditFormAfterUpdate","changeParams","_this$getChanges","_getFormEditItemTemplate","getColumnTemplate","editingStartOptions","isRowMode","isRowEditing","getEditFormTemplate","useLegacyColumnButtonTemplate","iconType","localizationName","getButtonLocalizationNames","_button$onClick","prepareButtonItem","titleButtonTextByClassNames","revert","prepareEditButtons","buttonItems","highlightDataCell","shouldHighlightCell","_allowEditAction","allowEditAction","needCallback","isNewRowInEditMode","visibleEditRowIndex","cellModified","editingModule","_editingController","_this$_updateEditItem","_updateEditItem","isParasiteChange","dataSourceKeys","newChanges","isEditNewItem","isRowRemoved","isRowInserted","isRowModified","_getColumnIndexByElement","_getColumnIndexByElementCore","_editCellByClick","isEditedCell","editCell","withoutSaveEditData","closeEditCell","_pointerDownTimeout","isEditForm","_parameters$column","isEditableCell","_editCellPrepared","hasTemplate","_formItemPrepared","cellValue","editButtonItems","excludedOptions","shouldInvalidate","EDIT_ROW","editingRowBasedModule","isRowEditMode","hasUpdateChanges","isVisibleInRowEditMode","$editingCell","_map","guid","widgetInstance","itemsRunTimeInfo","getItems","removeItemByKey","itemRunTimeInfo","_findWidgetInstance","storedItem","targetPath","_findFieldByCondition","targetItem","filteredKeys","_translator","completeAction","MULTIVIEW_CLASS","MULTIVIEW_WRAPPER_CLASS","MULTIVIEW_ITEM_CONTAINER_CLASS","MULTIVIEW_ITEM_CLASS","MULTIVIEW_ITEM_HIDDEN_CLASS","MULTIVIEW_ITEM_DATA_KEY","MULTIVIEW_ANIMATION_DURATION","toNumber","MultiView","swipeEnabled","animationEnabled","loop","loopItemFocus","selectOnFocus","selectionRequired","selectionByClick","_$itemContainer","_itemWidth","_itemWidthValue","_clearItemWidthCache","_itemsCount","_normalizeIndex","_getRTLSignCorrection","_initSwipeable","_deferredItems","selectedItemIndices","_getSelectedItemIndices","_updateItemsVisibility","_afterItemElementDeleted","deletedActionArgs","_beforeItemElementInserted","_executeItemRenderAction","renderContentDeferred","_updateItems","newIndex","_updateItemsPosition","_modifyByChanges","positionSign","_animationDirection","$selectedItem","move","isHidden","_renderSpecificItem","hasItemContent","_itemContentClass","_refreshItem","_updateSelection","animationDirection","_animateItemContainer","completeCallback","moveTo","containerPosition","indexDifference","_getItemFocusLoopSignCorrection","isSwipePresent","directionSignVariable","_getSwipeDisabledState","lastIndex","rtl","_swipeDirection","swipeDirection","$selectedElement","itemElements","_itemFocusLooped","$result","_updateSwipeDisabledState","TABS_ITEM_BADGE_CLASS","BADGE_CLASS","TabsItem","_renderWatchers","_startWatcher","_renderBadge","badge","$badge","TABS_EXPANDED_CLASS","getScrollLeftMax","isReachedLeft","scrollOffsetLeft","epsilon","isReachedRight","TABS_CLASS","TABS_WRAPPER_CLASS","TABS_STRETCHED_CLASS","TABS_SCROLLABLE_CLASS","TABS_NAV_BUTTONS_CLASS","OVERFLOW_HIDDEN_CLASS","TABS_ITEM_CLASS","TABS_ITEM_SELECTED_CLASS","TABS_NAV_BUTTON_CLASS","TABS_LEFT_NAV_BUTTON_CLASS","TABS_RIGHT_NAV_BUTTON_CLASS","TABS_ITEM_TEXT_CLASS","TABS_ITEM_DATA_KEY","BUTTON_NEXT_ICON","BUTTON_PREV_ICON","FEEDBACK_HIDE_TIMEOUT","FEEDBACK_DURATION_INTERVAL","FEEDBACK_SCROLL_TIMEOUT","TAB_OFFSET","Tabs","showNavButtons","badgeExpr","_renderWrapper","_renderMultiple","_feedbackHideTimeout","_prepareDefaultItemTemplate","$iconElement","wrapInner","renderArgs","_deferredTemplates","_deferRenderScrolling","_renderScrolling","removeClasses","_isItemsWidthExceeded","_renderNavButtons","_updateNavButtonsVisibility","_scrollToItem","_cleanScrolling","_needStretchItems","tabItemsWidth","_getVisibleItems","$visibleItems","maxTabWidth","_cleanNavButtons","_leftButton","_rightButton","getItemElement","_createNavButton","$leftButton","$rightButton","_updateScrollPosition","scrollBy","holdAction","_holdInterval","holdEventName","pointerUpEventName","pointerOutEventName","out","navButton","$navButton","_clearInterval","_itemSelectHandler","TABPANEL_CLASS","TABPANEL_TABS_CLASS","TABPANEL_CONTAINER_CLASS","TabPanel","itemTitleTemplate","onTitleClick","onTitleHold","_createTitleActions","_renderLayout","_createTitleClickAction","_createTitleHoldAction","_createTitleRenderedAction","_titleClickAction","_titleHoldAction","_titleRenderedAction","_resizeEventTimer","_updateLayout","_tabs","_$tabContainer","$tabs","_tabConfig","_$container","tabsHeight","tabs","tabItems","$activeTab","getFocusedItemId","itemTemplateProperty","$value","$newItem","_isFocusOutHandlerExecuting","_updateFocusState","_toggleFocusClass","_setTabsOption","selectedTabContent","_itemsRunTimeInfo","findWidgetInstanceByItem","findItemContainerByItem","findPreparedItemByItem","createItemPathByIndex","isTabs","concatPaths","getTextWithoutSpaces","isEqualToDataFieldOrNameOrTitleOrCaption","getFullOptionName","getOptionNameFromFullName","tryGetTabPath","fullPath","pathParts","resultPathParts","isFullPathContainsTabs","getItemPath","tabOrGroupItems","itemPath","convertToLayoutManagerOptions","$formElement","formOptions","extendedLayoutManagerOptions","onFieldItemRendered","baseOptions","validationBoundary","layoutData","isRoot","cssItemClass","onLayoutChanged","findInstance","tabPanel","findItemIndexByItem","preparedItem","findPreparedItem","_prepareGroupItemTemplate","_renderGroupContentTemplate","validator","filterRequired","oldContainsRequired","newContainsRequired","findItemContainer","tryCreateItemOptionAction","itemActionOptions","_itemActionOptions$it","_itemActionOptions$it2","_itemActionOptions$it3","RESPONSIVE_BOX_CLASS","SCREEN_SIZE_CLASS_PREFIX","HD_SCREEN_WIDTH","ResponsiveBox","cols","singleColumnScreen","currentScreenFactor","_initLayoutChangedAction","_layoutChangedAction","_updateRootBox","_$root","_setScreenSize","_screenItems","_itemsByScreen","_prepareGrid","_spreadItems","_layoutItems","_linkNodeToItem","_clearItemNodeTemplates","currentScreen","_getCurrentScreen","_removeScreenSizeClass","grid","_grid","_prepareRowsAndCols","_rows","_cols","_createEmptyCell","getSingleColumnRows","screenItemsLength","filteredRows","_filterByScreen","sizeConfig","_defaultSizeConfig","_isSingleColumnScreen","_prepareSingleColumnScreenItems","_sizesByScreen","_screenRegExp","sizeConfigs","_createDefaultSizeConfig","defaultSizeConfig","screenRegExp","screen","_screenWidth","itemInfo","itemCol","itemRow","itemCell","_occupyCells","locations","_isItemCellOccupied","_markSpanningCell","_loopOverSpanning","rowEnd","colEnd","boundRowEnd","boundColEnd","spanningCell","itemNode","rowsCount","colsCount","_layoutBlock","rootBox","_prepareBoxConfig","_rootBoxConfig","rootItems","_needApplyAutoBaseSize","_isSingleItem","_itemByCell","_layoutDirection","firstCellLocation","isItemRowSpanned","isItemColSpanned","block","crossDirection","_crossDirection","_nextBlock","_isBlockIndivisible","prevBlockOptions","_blockSize","startIndex","endIndex","crossStartIndex","crossSpan","crossIndex","lineCrossSpan","_cellByDirection","lineCrossEndIndex","crossEndIndex","defaultMinSize","forceRemoveRoot","$existingRoot","_saveAssistantRoot","_assistantRoots","_cleanUnusedRoots","FORM_CLASS","FORM_GROUP_CLASS","FORM_GROUP_CAPTION_CLASS","FORM_FIELD_ITEM_COL_CLASS","FIELD_ITEM_CLASS","LAYOUT_MANAGER_ONE_COLUMN","FIELD_ITEM_LABEL_CONTENT_CLASS","FORM_LAYOUT_MANAGER_CLASS","FIELD_ITEM_LABEL_CLASS","FIELD_ITEM_CONTENT_CLASS","SINGLE_COLUMN_ITEM_CONTENT","ROOT_SIMPLE_ITEM_CLASS","FORM_GROUP_CONTENT_CLASS","FIELD_ITEM_CONTENT_HAS_GROUP_CLASS","FIELD_ITEM_CONTENT_HAS_TABS_CLASS","FORM_GROUP_WITH_CAPTION_CLASS","FIELD_ITEM_TAB_CLASS","GROUP_COL_COUNT_CLASS","GROUP_COL_COUNT_ATTR","FORM_VALIDATION_SUMMARY","FORM_UNDERLINED_CLASS","SIMPLE_ITEM_TYPE","DefaultAdapter","validationRequestsCallbacks","validationErrors","brokenRules","validationStatus","VALIDATOR_CLASS","VALIDATION_STATUS_VALID","VALIDATION_STATUS_INVALID","VALIDATION_STATUS_PENDING","Validator","initValidationOptions","_initGroupRegistration","_initAdapter","_validationInfo","skipValidation","_findGroup","_groupWasInit","removeRegisteredValidator","_validationGroup","registerValidatorInGroup","dxStandardEditor","_getEditor","adapter","validate","callbacks","_this$option$editor$o","_this$option","_this$option$editor","_toggleAccessibilityAttributes","rules","_resetValidationRules","synchronizeValidationOptions","_validationRules","rule","findGroup","_modelByElement","bypass","currentError","getCurrentValidationError","_getValidationRules","currentResult","brokenRule","_applyValidationResult","pendingRules","validatedAction","_updateValidationResult","applyValidationResults","EDITORS_WITH_ARRAY_VALUE","EDITORS_WITHOUT_LABELS","convertToRenderFieldItemOptions","rootElementCssClassList","formOrLayoutManager","createComponentCallback","useFlexLayout","formLabelLocation","requiredMessageTemplate","editorValue","canAssignUndefinedValueToEditor","editorValidationBoundary","editorStylingMode","managerLabelLocation","itemId","managerMarkOptions","_hasRequiredRuleInSet","isSimpleItem","helpID","labelOptions","_convertToLabelOptions","formLabelMode","needRenderLabel","labelID","labelNeedBaselineAlign","_convertToEditorOptions","defaultEditorName","externalEditorOptions","editorInputId","labelText","textWithoutColon","labelMark","markOptions","needRenderOptionalMarkAsHelpText","getLabelMarkText","convertToLabelMarkOptions","editorOptionsWithValue","hasRequiredRule","isEditorWithoutLabels","_excluded","GET_LABEL_WIDTH_BY_TEXT_CLASS","FIELD_ITEM_REQUIRED_MARK_CLASS","FIELD_ITEM_LABEL_LOCATION_CLASS","FIELD_ITEM_OPTIONAL_MARK_CLASS","FIELD_ITEM_LABEL_TEXT_CLASS","renderLabel","_renderLabelMark","markText","setLabelWidthByMaxLabelWidth","$targetContainer","labelsSelector","labelMarkOptions","labelWidth","FIELD_ITEM_LABEL_CONTENT_CLASS_Selector","$FIELD_ITEM_LABEL_CONTENT_CLASS_Items","FIELD_ITEM_LABEL_CONTENT_CLASS_Length","getLabelWidthByInnerHTML","$FIELD_ITEM_LABEL_CONTENT_CLASS","renderLabelOptions","$hiddenContainer","$label","labelTextElement","getLabelInnerHTML","child","innerText","FLEX_LAYOUT_CLASS","FIELD_ITEM_OPTIONAL_CLASS","FIELD_ITEM_REQUIRED_CLASS","FIELD_ITEM_CONTENT_WRAPPER_CLASS","FIELD_ITEM_CONTENT_LOCATION_CLASS","FIELD_ITEM_LABEL_ALIGN_CLASS","FIELD_ITEM_HELP_TEXT_CLASS","LABEL_VERTICAL_ALIGNMENT_CLASS","LABEL_HORIZONTAL_ALIGNMENT_CLASS","TEMPLATE_WRAPPER_CLASS","VALIDATION_TARGET_CLASS","INVALID_CLASS","renderFieldItem","$fieldEditorContainer","$validationTarget","getValidationTarget","validationTargetInstance","tryGetValidationTargetInstance","subscribeWrapperInvalidClassToggle","$div","isItemHaveCustomLabel","itemName","dataGetter","$editorParent","_$validationTarget$pa","_$validationTarget$pa2","wrapperClass","toggleInvalidClass","validationMessageMode","_isFocused","FIELD_BUTTON_ITEM_CLASS","renderButtonItem","convertAlignmentToTextAlign","horizontalAlignment","convertAlignmentToJustifyContent","verticalAlignment","buttonInstance","buttonOptions","FIELD_EMPTY_ITEM_CLASS","renderEmptyItem","FORM_EDITOR_BY_DEFAULT","LAYOUT_MANAGER_FIRST_ROW_CLASS","LAYOUT_MANAGER_LAST_ROW_CLASS","LAYOUT_MANAGER_FIRST_COL_CLASS","LAYOUT_MANAGER_LAST_COL_CLASS","LAYOUT_STRATEGY_FLEX","LAYOUT_STRATEGY_FALLBACK","LayoutManager","_itemWatchers","_updateReferencedOptions","_initDataAndItems","_cleanItemWatchers","initialData","_syncDataWithItems","_getDataByField","_updateFieldValue","_isCheckboxUndefinedStateEnabled","allowIndeterminateState","nameParts","propertyName","isWritableWrapped","_triggerOnFieldDataChanged","isUserItemsExist","_generateItemsByData","processedItems","_isAcceptableItem","unwrap","_updateItemWatchers","_setItems","_sortItems","_getWatch","itemField","_getEditorTypeByDataType","_item$allowIndetermin","_sortIndexes","itemA","itemB","indexA","indexB","clear","_renderResponsiveBox","_hasBrowserFlex","templatesInfo","_getColCount","_prepareItemsWithMerging","layoutItems","_generateLayoutItems","_responsiveBox","_getResponsiveBoxConfig","_renderTemplates","_itemStateChangedHandler","info","_renderButtonItem","_renderFieldItem","xsColCount","isSingleColumnMode","itemRenderedCountInPreviousRows","itemCssClassList","isLastColumn","_getRowsCount","isLastRow","_generateRatio","screenFactor","getTargetScreenFactor","_cashedColCount","_getMaxColCount","maxColCount","isCachedColCountObsolete","itemsMergedByCol","_getColByIndex","merged","generatedItem","rowSpan","_renderEmptyItem","_getFormOrThis","getItemID","_getMarkOptions","_bindDataField","editorInstance","formOrThis","_createWatcher","linkEditorToDataField","fieldValue","array1","array2","_watch","formInstance","readOnlyState","isAutoSize","newLayoutData","getOwnPropertyNames","_disableEditorValueChangedHandler","_cashedRequiredConfig","valueGetter","dataValue","_resetWidget","_resetColCount","isValueReferenceType","updateData","getEditor","findWidgetInstanceByDataField","findWidgetInstanceByName","responsiveBox","getItemsRunTimeInfo","VALIDATION_SUMMARY_CLASS","ITEM_DATA_KEY","ValidationSummary","groupConfig","addGroup","_unsubscribeGroup","groupSubscription","_groupValidationHandler","getGroupConfig","validators","orderedItems","foundItems","_getOrderedItems","_validationSummary","_itemValidationHandler","itemsChanged","foundRule","foundItem","VALIDATION_ENGINE_CLASS","validatorContainer","summaryContainer","refreshValidationGroup","validateGroup","resetGroup","removeGroup","ITEM_OPTIONS_FOR_VALIDATION_UPDATING","Form","_cachedColCountOptions","_groupsColCount","_attachSyncSubscriptions","formID","alignRootItemLabels","_getGroupColCount","_applyLabelsWidthByCol","fieldItemClass","inOneColumn","cssExcludeTabbedSelector","excludeTabbed","_applyLabelsWidth","applyLabelsOptions","_getGroupElementsInColumn","cssColCountSelector","groupSelector","_applyLabelsWidthWithGroups","$rootSimpleItems","_applyLabelsWidthWithNestedGroups","$groups","groupsColIndex","groupColIndex","$groupsByCol","groupColCount","_labelLocation","_alignLabelsInColumn","layoutManager","_checkGrouping","_prepareFormData","_setStylingModeClass","_getValidationGroup","_clearCachedInstances","_renderValidationSummary","_lastMarkupScreenFactor","_targetScreenFactor","_getCurrentScreenFactor","_cachedLayoutManagers","_alignLabels","_clearValidationSummary","_getContent","_this$_$validationSum","_$validationSummary","dxValidationSummary","parentIsTabbedItem","currentPath","_tryPrepareGroupItem","_tryPrepareTabbedItem","_tryPrepareItemTemplate","_prepareItems","groupContentTemplate","_itemGroupTemplate","_itemTabbedTemplate","_rootLayoutManager","_renderLayoutManager","_createLayoutManagerOptions","_tryGetItemsForTemplate","$tabPanel","tabPanelOptions","extendRunTimeItemInfoByKey","tryUpdateTabPanelInstance","$group","$groupContent","_isDataUpdating","addItemsOrExtendFrom","nestedItemsRunTimeInfo","removeItemsByItems","_this$_validationSumm","layoutManagerOptions","baseColCountByScreen","_clearAutoColCountChangedTimeout","autoColCountChangedTimeoutId","_extendConfig","optionFullName","_triggerOnFieldDataChangedByDataSet","splitFullName","_itemsOptionChangedHandler","_formDataOptionChangedHandler","_defaultOptionChangedHandler","_resetValues","_getItemPath","optionNameWithoutPath","simpleOptionName","itemAction","_tryCreateItemOptionAction","_tryExecuteItemOptionAction","_tryChangeLayoutManagerItemOption","_changeItemOption","_generateItemsFromData","removeItemsByPathStartWith","tryExecute","_updateValidationGroupAndSummaryIfNeeded","_this$_validationSumm2","findKeyByPath","postponedOperations","contentReadyHandler","tabPath","tabLayoutManager","findGroupOrTabLayoutManagerByPath","_setLayoutManagerItemOption","endPartIndex","_itemPath","_layoutManager","formItems","layoutManagerItems","layoutItem","_getItemByField","resultItem","fieldParts","_getFieldParts","fieldPath","_getItemByFieldPath","subItemsField","_getSubItemField","separatorIndex","resultPath","isItemWithSubItems","isGroupWithName","nameWithoutSpaces","pathNode","_searchItemInEverySubItem","_isColCountChanged","oldScreenSize","newScreenSize","isChanged","editorSelector","isEditor","_updateData","isComplexData","resetValues","resolveWith","allowUpdateItems","_tryChangeLayoutManagerItemOptions","isRenovatedScrollable","IS_RENOVATED_WIDGET","EDIT_FORM_ITEM_CLASS","EDIT_POPUP_CLASS","EDIT_POPUP_FORM_CLASS","FOCUSABLE_ELEMENT_CLASS","BUTTON_CLASS","FORM_BUTTONS_CONTAINER_CLASS","getEditorType","_column$formItem","isCustomEditorType","forEachFormItems","callBack","editingFormBasedModule","_editForm","_updateEditFormDeferred","isFormOrPopupEditMode","isPopupEditMode","isFormEditMode","firstFormItem","_firstFormItem","$editFormElements","_getEditFormEditorVisibleIndex","_args$items","_args$changeTypes","hasEditRow","onlyInsertChanges","_this$_editPopup","popupVisible","_editPopup","_$popupContent","_row$update","editForm","repaintForm","isMobileDevice","$popupContainer","_this$_editForm","formTemplate","isPopupForm","_this$_editPopup2","_this$_editPopup3","defaultAnimation","_this$_editPopup4","_handleFormOptionChange","_handlePopupOptionChange","_this$_editPopup5","editPopup","popupOptionName","renderFormEditTemplate","detailCellOptions","formTemplateOptions","isReadOnly","getFormEditorTemplate","_cellOptions$row$watc","_cellOptions$row","_validator","validatorOptions","contents","dxValidator","getEditFormOptions","detailOptions","_this$_getValidationG","editFormOptions","_getValidationGroupsInForm","userCustomizeItem","editFormItemClass","baseEditFormOptions","$formContainer","$buttonsContainer","_this$_editPopup6","getEditForm","_this$_updateEditForm","_this$_editPopup7","editFormRowIndex","_isFormItem","isDetailRow","isPopupEditing","ADD_ROW_BUTTON_CLASS","DROPDOWN_EDITOR_OVERLAY_CLASS","ROW_REMOVED","$pointerDownTarget","needCreateHandlers","_this$getController","targetComponent","isCellOrBatchEditMode","isEditorPopup","checkEditorPopup","isDomElement","isAnotherComponent","isAddRowButton","isCellEditMode","$dropDownEditorOverlay","$componentElement","isBatchEditMode","isCurrentComponentElement","$targetCell","_this$_rowsView","isEditColumnNameDefined","_handleEditColumnNameChange","oldColumnIndex","_editCellFromOptionChanged","_deferred","_editCell","coreResult","_editCellCore","isEditByOptionChanged","_getNormalizedEditCellOptions","_beforeEditCell","_prepareEditCell","_closeEditCellCore","_resetModifiedClassCells","columnsCount","_this$_editCellFromOp","needResetIndexes","isBatchMode","_isRowDeleteAllowed","_changes$","_deferred2","isUpdateInCellMode","focusPreviousEditingCell","processIfBatch","INVALIDATE_CLASS","REVERT_TOOLTIP_CLASS","INVALID_MESSAGE_CLASS","WIDGET_INVALID_MESSAGE_CLASS","INVALID_MESSAGE_ALWAYS_CLASS","REVERT_BUTTON_CLASS","PENDING_INDICATOR_CLASS","VALIDATION_PENDING_CLASS","PADDING_BETWEEN_TOOLTIPS","FORM_BASED_MODES","COMMAND_TRANSPARENT","VALIDATION_STATUS","valid","invalid","EDIT_DATA_INSERT_TYPE","EDIT_DATA_REMOVE_TYPE","VALIDATION_CANCELLED","validationResultIsValid","cellValueShouldBeValidated","ValidatingController","_validationState","initValidationState","_validationStateCache","_rowIsValidated","validationData","_getValidationData","validated","keyHash","isObjectKeyHash","_getBrokenRules","validationResults","_rowValidating","getChangeByKey","errorText","getHiddenValidatorsErrorText","brokenRulesMessages","isGroupExpandColumn","isVisibleColumn","isFull","completeList","_isValidationInProgress","validationResult","_currentCellValidator","_validationResult","resetRowValidationResults","isRowDataModified","updateValidationState","setDisableApplyValidationResults","setValidator","renderCellPendingIndicator","disposeCellPendingIndicator","validationStatusChanged","updateCellValidationResult","validatorInitialized","validatorDisposing","getCellValidationResult","cancelCellValidationResult","applyValidationResult","requestIsDisabled","disabledPendingId","_disableApplyValidationResults","getEditorInstance","_syncInternalEditingData","_parameters$row","oldDataFromState","createValidator","needCreateValidator","_parameters$row$oldDa","_parameters$row2","isCellOrBatchEditingAllowed","useDefaultValidator","flag","getDisableApplyValidationResults","isCurrentValidatorProcessing","validateCell","cellParams","stateRestored","_validationData$valid","removeCellValidationResult","_ref6","isInvalidCell","_ref7","getCellValidator","_ref8","setCellValidationStatus","validatingModule","validating","validatingController","_updateRowAndPageIndices","startInsertIndex","_ref9","isNotCanceled","addInValidItem","isInserted","_createInvisibleColumnValidators","invisibleColumns","invisibleColumnValidators","isCellVisible","disposeValidators","isFullValid","_showErrorRow","shouldResetValidationState","columnsWithValidatingEditors","_col$validationRules","validationState","resetRowAndPageIndices","currentValidator","isValidated","needValidation","isCellInvalid","_showRevertButton","$tooltipElement","$overlayContainer","tooltipOptions","$buttonElement","onPositioned","_positionedHandler","_hideFixedGroupCell","$nextFixedRowElement","$groupCellElement","nextRowOptions","visibility","isOverlayVisible","__skipPositionProcessing","isRevertButton","needRepaint","normalizedPosition","_normalizeValidationMessagePositionAndMaxWidth","_showValidationMessage","messages","revertTooltip","editorPopup","myPosition","atPosition","errorMessageText","invalidMessageClass","$overlayElement","_shiftValidationMessageIfNeed","fixedColumns","visibleTableWidth","w1","w2","$overlayContentElement","validationMessageWidth","needMaxWidth","boundaryNonFixedColumnsInfo","firstNonFixedColumnIndex","lastNonFixedColumnIndex","endColumnIndex","$revertContent","contentOffset","revertContentOffset","_getTooltipsSelector","revertTooltipClass","skipValidator","updateCellState","_change$data","showValidationMessage","errorMessages","$tooltips","_oldRow$cells","_cell$column$validati","oldValidationStatus","newValidationStatus","rowIsModified","cellIsMarkedAsInvalid","editingChanged","hasValidationRules","$freeSpaceRowElements","$tooltipContent","isEditorDisposed","contentTable","needTwoPagesLoading","_controller","isVirtual","getViewportItemIndex","getBeginPageIndex","_cache","getEndPageIndex","fireChanged","_isChangedFiring","processDelayChanged","_isDelayChanged","getViewportPageCount","_dataOptions","preventPreload","realViewportSize","viewportSize","viewportItemSize","getContentOffset","getViewportPosition","virtualItemsCount","begin","getItemSizes","getPreloadPageCount","getPageIndexForLoad","dataOptions","needToLoadPageBeforeLast","needToLoadPrevPage","needToLoadNextPage","_loadingPageIndexes","loadCore","processChanged","isDelayChanged","removeCacheItem","isPrepend","viewportItems","removeCount","correctCount","removeItemCount","itemsLength","updateLoading","_lastPageIndex","newPageIndex","lastPageSize","maxPageIndex","defaultPageIndex","endPageIndex","pageIndexForLoad","delayDeferred","_delayDeferred","onChanged","_setViewportPositionCore","removeInvisiblePages","lastCacheLength","isBase","beginItemsCount","endItemsCount","_isVirtualMode","_isVirtual","_isAppendMode","subscribeToExternalScrollers","scrollChangedHandler","$scrollElement","scrollableArray","scrollToArray","disposeArray","getElementOffset","$scrollableElement","scrollableOffset","widgetScrollStrategy","subscribeToScrollEvents","eventsStrategy","topOffset","scrollMethod","VirtualScrollController","_viewportSize","_viewportItemSize","_viewportItemIndex","_position","_isScrollingBack","_itemSizes","_sizeRatio","positionChanged","_dataLoader","viewportParams","getViewportParams","loadedOffset","loadedItemCount","getScrollingTimeout","scrollingTimeout","changingDuration","setViewportPosition","_scrollTimeoutID","getItemIndexByPosition","viewportItemIndex","defaultItemSize","getItemSize","itemOffset","itemOffsetsWithSize","itemOffsetWithSize","itemOffsetDiff","isScrollingBack","prevPosition","setViewportItemIndex","setContentItemSizes","sizes","virtualContentSize","contentHeightLimit","getItemOffset","isEnd","currentItemIndex","getVirtualContentSize","viewportItemIndexChanged","viewportHeight","isRefresh","subscribeToWindowScrollEvents","_windowScroll","_this$option2","topIndex","bottomIndex","maxGap","minGap","topMinGap","bottomMinGap","remainedItems","BOTTOM_LOAD_PANEL_CLASS","TABLE_CONTENT_CLASS","FREESPACE_CLASS","VIRTUAL_ROW_CLASS","LOAD_TIMEOUT","VISIBLE_PAGE_INDEX","_correctCount","isItemCountableFunc","isItemCountableByDataSource","updateItemIndices","VirtualScrollingDataSourceAdapterExtender","_updateLoading","_virtualScrollController","_totalCount","_loadPageCount","_getVirtualScrollDataOptions","_renderTime","_startLoadTime","handleDataChanged","newMode","virtualScrollController","getDelayDeferred","loadPageCount","takeIsDefined","VirtualScrollingRowsViewExtender","removeEmptyRows","$emptyRows","_dataController$state","scrollToPage","updateViewport","_scrollToCurrentPageOnResize","resizeHandler","scrollPosition","itemSizes","_updateContentPosition","startRenderTime","_removeRowsElements","_updateBottomLoading","_addVirtualRow","$virtualRow","_updateContentItemSizes","rowHeights","_getRowHeights","correctedRowHeights","_correctRowHeights","_updateViewportSize","_this$getController$i","visibleRows","firstCountableItem","lastLoadIndex","isRender","rowHeight","$virtualRows","prevFixed","_isFixedTableRendering","_isTableLinesDisplaysCorrect","table","hasColumnLines","_isColumnElementsEqual","$columns","$virtualColumns","_getCellClasses","classes","isExpandColumn","_findBottomLoadPanel","$bottomLoadPanel","showBottomLoading","bottomLoadPanelElement","zeroTopPosition","hasBottomLoadPanel","isViewportChanging","scrollPos","loadIfNeed","_dataController$loadI","virtualScrollingModule","updateTimeout","minTimeout","renderingThreshold","rowPageSize","prerenderedRowChunkSize","loadTwoPagesOnStart","legacyMode","prerenderedRowCount","baseResult","initVirtualRows","_rowsScrollController","_this$_dataSource","_loadViewportParams","getLoadPageParams","getRowPageSize","rowsScrollController","isSortingOperation","allowedTopOffset","virtualRowsRendering","_allItems","_visibleItems","_rowPageIndex","_viewportChanging","_needUpdateViewportAfterLoading","_getRowsScrollDataOptions","_this$_dataSource2","loadViewport","_updateLoadViewportParams","isItemCountable","_that$_dataSource","_itemCount","isNextAfterLast","countableOnly","cancelEmptyChanges","newItems","_dataSource$lastLoadO","prevCountable","prevRowType","isPrevRowNew","currentIndex","wasCountableItem","itemCountable","isNextGroupItem","isNextDataItem","isPrevNewRowFirst","skipForCurrentPage","isNewRowOnStart","isNewRowInEmptyData","isLoadIndexGreaterStart","isLoadIndexLessEnd","byLoadedRows","firstLoadIndex","_dataSource$lastLoadO2","_this$_rowsScrollCont","getPreloadedRowCount","preloadCount","byLoadedPage","_this$_dataSource3","_this$_dataSource4","loadedPageIndex","loadedTake","topPreloadCount","bottomPreloadCount","skipWithPreload","loadingTake","_updateVisiblePageIndex","currentPageIndex","viewPortItemIndex","_getChangedLoadParams","loadedPageParams","pageIndexIsValid","_pageIndexIsValid","_loadItems","checkLoading","viewportIsFilled","_dataSourceAdapter$lo","_dataSourceAdapter$pa","changedParams","currentLoadPageCount","lastRequiredItemCount","pageIndexNotChanged","allLoadedInAppendMode","isRepaintMode","pageIndexIncreased","viewportChanging","checkLoadedParamsOnly","viewportIsNotFilled","loadingItemsStarted","_this$_loadViewportPa","_this$_loadViewportPa2","currentTake","newTake","topItemIndex","_this$_loadViewportPa3","bottomItemIndex","_this$_dataSource5","masterDataGridUpdated","isNewVirtualMode","_resizeTimeout","_lastTime","WINDOW_HEIGHT_PERCENT","getElementMaxHeightByWindow","startLocation","actualOffset","elementOffset","offsetTop","offsetBottom","DX_CONTEXT_MENU_CONTENT_DELIMITER_CLASS","orientation","onHoverStart","_initDataAdapter","_renderDelimiter","$contentDelimiter","_overlayPositionedActionHandler","_showDelimiter","hoverStartAction","_hoverStartHandler","rootItem","submenu","containerOffset","vLocation","hLocation","rootOffset","offsetLeft","rootWidth","rootHeight","submenuWidth","submenuHeight","_isMenuHorizontal","DX_MENU_VERTICAL_CLASS","DX_MENU_HORIZONTAL_CLASS","DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS","DX_STATE_ACTIVE_CLASS","DX_ADAPTIVE_MODE_CLASS","DX_ADAPTIVE_HAMBURGER_BUTTON_CLASS","DX_ADAPTIVE_MODE_OVERLAY_WRAPPER_CLASS","SHOW_SUBMENU_OPERATION","NEXTITEM_OPERATION","PREVITEM_OPERATION","showFirstSubmenuMode","hideSubmenuOnMouseLeave","onSubmenuShowing","onSubmenuShown","onSubmenuHiding","onSubmenuHidden","rootMenuElements","submenuElements","_submenuItemElements","currentSubmenu","_submenus","navigationAction","isMenuHorizontal","_getItemsNavigationOperation","_getKeyboardNavigationAction","navOperation","_menuItemsWidth","_updateItemsWidthCache","$menuItems","_isAdaptivityEnabled","containerWidth","_toggleAdaptiveMode","_visibleSubmenu","_initAdaptivity","_hamburger","_toggleTreeView","_toggleHamburgerActiveState","$menuItemsContainer","$adaptiveElements","_hideVisibleSubmenu","_treeView","_$adaptiveContainer","_ignoreFunctionValueDeprecation","menuOptions","_treeviewItemClickHandler","onItemExpanded","onItemCollapsed","expandEvent","$hamburger","_renderHamburgerButton","_getTreeViewOptions","_getAdaptiveOverlayOptions","delayType","_createSubmenu","_renderBorderElement","_getKeyboardListeners","$submenuContainer","subMenu","_getSubmenuOptions","_parentKey","_clearTimeouts","getSubmenuPosition","_attachSubmenuHandlers","$submenuTarget","disabledExpr","selectedExpr","itemsExpr","_nestedItemOnSelectionChangedHandler","_nestedItemOnItemClickHandler","_nestedItemOnItemRenderedHandler","_moveMainMenuFocus","$currentItem","_clearSelectionInSubmenus","_clearRootSelection","targetSubmenu","cleanAllSubmenus","isOtherItem","selectedItemData","_clearSelectedItems","$prevSelectedItem","prevSelectedItemData","$submenuOverlayContent","getOverlayContent","submenus","submenuMouseLeaveName","hover","_submenuOnShowingHandler","_submenuOnShownHandler","_submenuOnHidingHandler","_submenuOnHiddenHandler","_submenuMouseLeaveHandler","$border","relatedTarget","_getSubmenuByRootElement","_hideSubmenuAfterTimeout","_getDelay","isRootItemHovered","isSubmenuItemHovered","hoveredElementFromSubMenu","isHorizontalMenu","$closestItem","_itemPointerDownHandler","mouseMoveEventName","isSelectionActive","which","_hasChildren","_getShowFirstSubmenuMode","_getSubmenuByElement","_itemMouseMoveHandler","_showSubmenuTimer","eventArg","_hideSubmenuTimer","_hoveredRootItem","pointers","_changeSubmenusOption","_removeAdaptivity","OPERATION_ICONS","notcontains","startswith","endswith","OPERATION_DESCRIPTORS","FILTERING_TIMEOUT","CORRECT_FILTER_RANGE_OVERLAY_WIDTH","FILTER_RANGE_OVERLAY_CLASS","FILTER_RANGE_START_CLASS","FILTER_RANGE_END_CLASS","MENU_CLASS","EDITOR_WITH_MENU_CLASS","EDITOR_CONTAINER_CLASS","FILTER_MENU","APPLY_BUTTON_CLASS","HIGHLIGHT_OUTLINE_CLASS","FOCUSED_CLASS","FILTER_RANGE_CONTENT_CLASS","FILTER_MODIFIED_CLASS","BETWEEN_OPERATION_DATA_TYPES","isOnClickApplyFilterMode","$editorContainer","componentNames","ColumnHeadersViewFilterRowExtender","getRangeTextByFilterValue","rangeEnd","getColumnFilterValue","formatOptions","getColumnSelectedFilterOperation","bufferedSelectedFilterOperation","getFilterValue","isFilterRange","isRangeStart","updateFilterValue","_applyFilterViewController","setHighLight","normalizedValue","columnFilterValue","isBetween","_updateEditorValue","$editorRangeElements","overlayInstance","_updateFilterRangeContent","_updateFilterOperationChooser","_renderFilterRangeContent","_renderEditor","_getEditorOptions","_hideFilterRange","_filterRangeOverlayInstance","isFilterRowVisible","_initFilterRangeOverlay","$prevElement","_updateFilterRangeOverlay","_showFilterRange","getFilterRangeOverlayInstance","_renderFilterCell","_renderFilterOperationChooser","accessibilityOptions","_getFilterInputAccessibilityAttributes","columnAriaLabel","editorController","filterRowController","setCurrentColumnForFiltering","getWrappedLookupDataSource","lookupOptions","$filterRangeContent","isCellWasFocused","restoreFocus","menu","_focusEditor","_getFilterOperationMenuItems","properties","columnSelectedFilterOperation","notFocusEditor","isOnClickMode","_isEditorFocused","filterRowOptions","availableFilterOperations","descriptionName","_e$operationTypes","_e$operationTypes2","updateLookupDataSource","applyFilterViewController","DataControllerFilterRowExtender","skipCalculateColumnFilters","_filterRowController$","shouldSkip","getCurrentColumnForFiltering","ApplyFilterViewController","_getHeaderPanel","_headerPanel","enableApplyButton","removeHighLights","columnHeadersViewElement","_currentColumn","filterRowModule","columnsResizer","_startResizing","_targetPoint","_endResizing","_needUpdateLookupDataSource","_this$getView","filterItem","_prepareFilterItem","_isShowApplyFilterButton","HEADER_FILTER_CLASS","HEADER_FILTER_MENU_CLASS","DEFAULT_SEARCH_EXPRESSION","resetChildrenItemSelection","updateSelectAllState","selectAllCheckBox","isSearchEnabled","updateHeaderFilterItemSelectionState","filterValuesMatch","isExcludeFilter","HeaderFilterView","getPopupContainer","getListContainer","_listContainer","applyHeaderFilter","isFilterBuilder","fillSelectedItemKeys","isExclude","_getNode","hasChildren","hasChildrenWithSelection","hideHeaderFilterMenu","$columnElement","updatePopup","headerFilterMenu","_cleanPopupContent","_getSearchExpr","useDefaultSearchExpr","headerFilterDataSource","headerFilterOptions","_initializeListContainer","showSelectionControls","_selectedItemsUpdating","oldSelected","filterValueIndex","headerFilterMixin","$headerFilterIndicator","_isHeaderFilterEmpty","indicatorLabel","DATE_INTERVAL_FORMATS","ungroupUTCDates","dates","isMonthPart","convertDataFromUTCToLocal","queryByOptions","isUTCFormat","HeaderFilterController","_headerFilterView","_updateSelectedState","_normalizeGroupItem","currentLevel","valueSelector","displaySelector","getHeaderItemText","firstValueText","secondValue","secondValueText","_column$headerFilter","isLookup","cutoffLevel","useDefaultSearch","convertUTCDates","origPostProcess","getCurrentColumn","isGroupPanel","showHeaderFilterMenuBase","columnElement","dxResizableInstance","dxResizable","headerFilterByColumn","ColumnHeadersViewHeaderFilterExtender","_subscribeToIndicatorEvent","_updateHeaderFilterIndicators","_needUpdateFilterIndicators","HeaderPanelHeaderFilterExtender","headerFilterModule","headerFilterView","FILTER_BUILDER_RANGE_CLASS","FILTER_BUILDER_RANGE_START_CLASS","FILTER_BUILDER_RANGE_END_CLASS","FILTER_BUILDER_RANGE_SEPARATOR_CLASS","SEPARATOR","conditionInfo","$editorStart","$editorEnd","getStartValue","getEndValue","_editorFactory","getConfig","valueSeparator","notForLookup","isblank","isnotblank","OPERATION_NAME","getIconByFilterOperation","filterOperation","getNameByFilterOperation","DEFAULT_DATA_TYPE","EMPTY_MENU_ICON","AND_GROUP_OPERATION","EQUAL_OPERATION","NOT_EQUAL_OPERATION","boolean","object","DEFAULT_FORMAT","LOOKUP_OPERATIONS","AVAILABLE_FIELD_PROPERTIES","FILTER_BUILDER_CLASS","FILTER_BUILDER_ITEM_TEXT_CLASS","FILTER_BUILDER_ITEM_TEXT_PART_CLASS","FILTER_BUILDER_ITEM_TEXT_SEPARATOR_CLASS","FILTER_BUILDER_ITEM_TEXT_SEPARATOR_EMPTY_CLASS","getFormattedValueText","fieldFormat","isNegationGroup","isCondition","getGroupCriteria","setGroupCriteria","criteria","convertGroupToNewStructure","setGroupValue","getGroupMenuItem","availableGroups","groupValue","getGroupValue","getCriteriaOperation","getDefaultFilterOperations","containItems","entity","getFilterOperations","getCaptionByOperation","getOperationFromAvailable","availableOperations","getCustomOperation","filteredOperations","getAvailableOperations","isLookupField","isOperationForbidden","isCustom","getDefaultOperation","createCondition","updateConditionByOperation","removeItem","createEmptyGroup","isNegation","isNegationGroupOperation","groupOperation","getGroupOperationFromNegationOperation","getField","extendedFields","convertToInnerGroup","defaultGroupOperation","innerGroup","convertToInnerStructure","appendGroupOperationToGroup","convertToInnerCondition","conditionHasCustomOperation","appendGroupOperationToCriteria","getNormalizedFields","normalizedField","getConditionFilterExpression","filterExpression","getFilterExpression","_filterExpression","getNormalizedFilter","itemsForRemove","normalizedGroupValue","isValidCondition","getCurrentLookupValueText","loadSingle","getPrimitiveValueText","getArrayValueText","checkDefaultValue","getCurrentValueText","itemExists","pushItemAndCheckParent","originalItems","hasParent","getParentIdFromItemDataField","generateCaptionByDataField","getCaptionWithParents","getOperationValue","getMergedOperations","betweenCaption","betweenIndex","isMatchedCondition","addedFilterDataField","removeFieldConditionsFromFilter","hasMatchedCondition","syncConditionIntoGroup","addedFilter","canPush","syncFilters","getMatchedConditions","filterHasField","renderValueText","lastItemIndex","baseOperation","getFullText","parentText","div","closeEditor","fieldInfo","itemsDeferred","_values","getSelectedItemsTexts","selectedItemsTexts","anyOf","noneOf","baseOp","baseFilter","FILTER_ROW_OPERATIONS","FILTER_TYPES_INCLUDE","FILTER_TYPES_EXCLUDE","getColumnIdentifier","checkForErrors","FilterSyncController","getEmptyFilterValues","canSyncHeaderFilterWithFilterRow","getConditionFromFilterRow","getConditionFromHeaderFilter","selectedOperation","updateHeaderFilterCondition","headerFilterCondition","hasArrayValue","updateFilterRowCondition","syncFilterValue","_skipSyncColumnOptions","filterConditions","filterCondition","_initSync","filteringColumns","isFilterSyncActive","_getSyncFilterRow","_getSyncHeaderFilter","syncFilterRow","syncHeaderFilter","getCustomFilterOperations","filterBuilderCustomOperations","DataControllerFilterSyncExtender","filterSyncEnabledValue","calculatedFilterValue","_parseColumnPropertyName","matched","ColumnHeadersViewFilterSyncExtender","filterSyncModule","filterSync","FILTER_BUILDER_GROUP_CLASS","FILTER_BUILDER_GROUP_ITEM_CLASS","FILTER_BUILDER_GROUP_CONTENT_CLASS","FILTER_BUILDER_GROUP_OPERATIONS_CLASS","FILTER_BUILDER_GROUP_OPERATION_CLASS","FILTER_BUILDER_ACTION_CLASS","FILTER_BUILDER_IMAGE_CLASS","FILTER_BUILDER_IMAGE_ADD_CLASS","FILTER_BUILDER_IMAGE_REMOVE_CLASS","FILTER_BUILDER_ITEM_FIELD_CLASS","FILTER_BUILDER_ITEM_OPERATION_CLASS","FILTER_BUILDER_ITEM_VALUE_CLASS","FILTER_BUILDER_ITEM_VALUE_TEXT_CLASS","FILTER_BUILDER_OVERLAY_CLASS","FILTER_BUILDER_FILTER_OPERATIONS_CLASS","FILTER_BUILDER_FIELDS_CLASS","FILTER_BUILDER_ADD_CONDITION_CLASS","ACTIVE_CLASS","FILTER_BUILDER_MENU_CUSTOM_OPERATION_CLASS","SOURCE","DISABLED_STATE_CLASS","TAB_KEY","ENTER_KEY","ESCAPE_KEY","OPERATORS","FilterBuilder","closePopupOnTargetScroll","_initCustomOperations","disableInvalidateForValue","_disableInvalidateForValue","_initModel","_getNormalizedFields","_model","_customOperations","_updateFilter","_getModel","_initEditorFactory","_getDefaultGroupOperation","_this$option$","actionConfig","_createGroupElementByCriteria","_createConditionElement","_createConditionItem","_createGroupElement","groupCriteria","innerCriteria","$groupItem","_createRemoveButton","_createGroupOperationButton","_createAddButton","newGroup","newCondition","_getGroupOperations","groupMenuItem","$operationButton","_createButtonWithMenu","removeMenu","treeViewElement","treeView","dxTreeView","_subscribeOnClickAndEnterKey","_createPopupWithTreeView","_hasValueButton","_createOperationButtonWithMenu","currentOperation","$valueButton","_createValueButton","_createOperationAndValueButtons","_createFieldButtonWithMenu","getFullCaption","$fieldButton","isSingleChild","$removeButton","addGroupHandler","addConditionHandler","_createValueText","$text","_createValueEditorWithEvents","_updateConditionValue","areValuesDifferent","_addDocumentKeyUp","isComposing","hasCompositionJustEnded","documentKeyUpHandler","_documentKeyUpHandler","_addDocumentClick","closeEditorFunc","documentClickHandler","_isFocusOnEditorParts","_documentClickHandler","activeElement","_removeEvents","createValueText","_createValueEditor","class","$menuContainer","FilterBuilderView","_updatePopupOptions","_initPopup","_filterBuilderPopup","_disposePopup","_filterBuilder","_getPopupContentTemplate","_getPopupToolbarItems","$filterBuilderContainer","filterBuilderModule","filterBuilderView","FILTER_PANEL_CLASS","FILTER_PANEL_TEXT_CLASS","FILTER_PANEL_CHECKBOX_CLASS","FILTER_PANEL_CLEAR_FILTER_CLASS","FILTER_PANEL_LEFT_CONTAINER","FILTER_PANEL_TARGET","FilterPanelView","$leftContainer","_filterValueBuffer","_getCheckElement","_getFilterElement","_getTextElement","_getRemoveButtonElement","_showFilterBuilder","_addTabIndexToElement","filterText","$textElement","getFilterText","clearFilterValue","tabindex","_getConditionText","fieldText","operationText","_getValueMaskedText","_getValueText","hasCustomOperation","getConditionText","getGroupText","isInnerGroup","groupText","filterPanelModule","filterPanelView","SEARCH_PANEL_CLASS","SEARCH_TEXT_CLASS","searchModule","searchFilter","onQueryDone","_i","getSearchPanelOptions","_prepareSearchItem","searchPanelOptions","$search","getSearchTextEditor","$searchPanel","dxTextBox","_searchParams","_getFormattedSearchText","_getStringNormalizer","isCaseSensitive","_findHighlightingTextNodes","stringNormalizer","normalizedSearchText","resultTextNodes","$contents","_highlightSearchTextCore","$textNode","$searchTextSpan","firstContentElement","after","_highlightSearchText","isEquals","textNodes","textNode","_highlightTimer","pageIndexChanged","pageSizeChanged","getElementStyle","_getElementComputedSt","computedStyle","getElementWidth","getElementMinWidth","viewFunction","contentAttributes","infoTextRef","infoTextVisible","isLargeDisplayMode","pageSizesRef","pagesRef","parentRef","Content","rootElementRef","calculateLargeDisplayMode","pageSizes","pageSizesWidth","pages","pagesWidth","parentWidth","calculateInfoTextVisible","infoWidth","minimalWidth","getElementsWidth","pagesHtmlWidth","ResizableContainerProps","TemplateProp","actualIsLargeDisplayMode","actualInfoTextVisible","subscribeToResize","effectUpdateChildProps","updateAdaptivityProps","pagerProps","_this$_effects$","_this$_effects$2","_effects","gridCompatibility","lightModeEnabled","maxPagesCount","pageIndexChange","pageSizeChange","pagesCountText","pagesNavigatorVisible","showPageSizes","restAttributes","currentElementsWidth","elementsWidth","setState","__state_argument","_this$props","restProps","BasePagerProps","freeze","PagerProps","getOwnPropertyDescriptors","defaultPageSize","InternalPagerProps","PAGER_INFO_CLASS","InfoTextPropsType","_this$props$infoText","KeyboardActionContext","widgetRef","LightButtonProps","keyboardEffect","subscribeToClick","keyboardContext","PAGER_CLASS","LIGHT_MODE_CLASS","PAGER_PAGES_CLASS","PAGER_PAGE_INDEXES_CLASS","PAGER_PAGE_CLASS","PAGER_SELECTION_CLASS","PAGER_PAGE_SIZE_CLASS","PAGER_PAGE_SIZES_CLASS","PAGER_SELECTED_PAGE_SIZE_CLASS","FIRST_CHILD_CLASS","PageProps","_excluded2","PAGER_PAGE_SEPARATOR_CLASS","PagesMarkup","pageProps","PAGES_LIMITER","getDelimiterType","slidingWindowSize","createPageIndexesBySlidingWindowIndexes","slidingWindowIndexes","delimiter","pageIndexes","indexesForReuse","createPageIndexes","PagesLargePropsType","canReuseSlidingWindow","generatePageIndexes","isSlidingWindowMode","onPageClick","ConfigContext","slidingWindowState","slidingWindowStateHolder","currentPageCount","lastPageIsFartherThanWindow","pageIndexExistInIndexes","_createPageIndexes","_this$config","createPage","rtlPageIndexes","EditorStateProps","EditorLabelProps","DEFAULT_VALUE","componentProps","componentType","templateNames","NumberBoxProps","defaultValue","isReactComponentWrapper","NumberBoxPropsType","_this$props$value","oneDigitWidth","calculateValuesFittedWidth","PAGER_INFO_TEXT_CLASS","PAGER_PAGE_INDEX_CLASS","LIGHT_PAGES_CLASS","PAGER_PAGES_COUNT_CLASS","pageIndexRef","selectLastPageIndex","valueChange","PagerSmallProps","updateWidth","_this$pageIndexRef$cu","_this$props$pagesCoun","PAGER_NAVIGATE_BUTTON","PAGER_PREV_BUTTON_CLASS","PAGER_NEXT_BUTTON_CLASS","PAGER_BUTTON_DISABLE_CLASS","getNextButtonLabel","getPrevButtonLabel","classNames","nextEnabledClass","prevEnabledClass","nextDisabledClass","prevDisabledClass","reverseDirections","nextButtonProps","prevButtonProps","renderNextButton","renderPrevButton","navigate","getIncrement","PageIndexSelectorProps","PageIndexSelectorPropsType","__getterCache","getButtonProps","canNavigateToPage","getNextPageIndex","canNavigateTo","navigateToPage","rtlAwareDirection","canNavigate","nextProps","nextState","SelectBoxProps","SelectBoxPropsType","PageSizeSmallPropsType","pageSizesText","PageSizeLargePropsType","onPageSizeChange","processedPageSize","htmlRef","normalizedPageSizes","getAllText","PageSizeSelectorProps","PageSizeSelectorPropsType","setRootElementRef","componentWillUpdate","aria","infoVisible","pageIndexSelectorVisible","pagesContainerVisibility","pagesContainerVisible","widgetRootElementRef","PagerContentProps","createFakeInstance","keyboardAction","_this$props$onKeyDown","fakePagerInstance","normalizedDisplayMode","classesMap","_this$props2","__newValue","_newValue","newPageSize","_this$props$pageSize$","getProps","_wrapKeyDownHandler","twoWay","allowNull","MAX_PAGES_COUNT","getPageIndex","PagerView","_pager","pagerOptions","useLegacyKeyboardNavigation","getPager","_pageSizes","pagerVisible","isPager","isPaging","isDataSource","isScrolling","pagerModule","COLUMNS_SEPARATOR_CLASS","COLUMNS_SEPARATOR_TRANSPARENT","DRAGGING_HEADER_CLASS","HEADERS_DRAG_ACTION_CLASS","TRACKER_CLASS","HEADERS_DROP_HIGHLIGHT_CLASS","BLOCK_SEPARATOR_CLASS","DRAGGING_COMMAND_CELL_CLASS","COLUMNS_SEPARATOR_TOUCH_TRACKER_WIDTH","DRAGGING_DELTA","COLUMN_OPACITY","TrackerView","_unsubscribeFromCallback","_positionChanged","_tablePositionController","_subscribeToCallback","setHeight","SeparatorView","_isShown","ColumnsSeparatorView","_isTransparent","columnsSeparatorTransparent","moveByX","outerX","changeCursor","cursorName","BlockSeparatorView","startAnimate","toOptions","DraggingHeaderView","_isDragging","isDragging","_getDraggingPanelByPos","_dragOptions","boundingRect","_resetTargetColumnOptions","_dropOptions","targetColumnIndex","targetColumnElement","posX","posY","_getVisibleIndexObject","_columnsResizerViewController","dragHeader","isCommandColumn","sourceIndex","sourceColumnIndex","sourceColumnElement","_onSelectStart","onselectstart","drag","getSwatchContainer","moveHeader","eventData","dragOptions","moveDeltaX","deltaX","moveDeltaY","deltaY","newLeft","newTop","dockHeader","targetDraggingPanel","isVerticalOrientation","axisName","pointsByTarget","pointsByColumns","_generatePointsByColumns","centerPosition","dock","dropHeader","drop","isNextColumnResizingMode","ColumnsResizerViewController","_isHeadersRowArea","headersRowHeight","_isRtlParentStyle","_this$_$parentContain","_$parentContainer","_pointCreated","isNextColumnMode","isRtlParentStyle","firstPointColumnIndex","nextColumn","_getTargetPoint","currentX","_moveSeparator","_that$_draggingHeader","columnsSeparatorWidth","_columnsSeparatorView","parentOffset","parentOffsetLeft","_draggingHeaderView","_isResizing","_resizingInfo","_updateColumnsWidthIfNeeded","currentColumnIndex","outerWidth","_previousParentOffset","_isReadyResizing","_trackerView","_getNextColumnIndex","_setupResizingInfo","nextColumnIndex","currentHeader","nextHeader","startPosX","currentColumnWidth","nextColumnWidth","_pointsByColumns","_unsubscribeFromEvents","_moveSeparatorHandler","_startResizingHandler","_endResizingHandler","_subscribeToEvents","needUpdate","resizingInfo","isPercentWidth","setColumnWidth","oldColumnWidth","cellWidth","nextCellWidth","nextMinWidth","needCorrectionNextCellWidth","allColumnsHaveWidth","totalPercent","hasScroll","_subscribesToCallbacks","_unsubscribeFromCallbacks","subscribe","_unsubscribes","generatePointsByColumnsHandler","generatePointsByColumnsScrollHandler","previousScrollbarVisibility","previousTableHeight","scrollbarVisibility","TablePositionViewController","diffOffsetTop","columnsHeadersHeight","scrollBarWidth","columnsResizerController","draggingHeaderView","isDraggingOrResizing","_pagerView","targetPoint","DraggingHeaderViewController","draggingHeader","nameDraggingPanel","subscribeToEvents","_getSeparator","_blockSeparatorView","hideSeparators","blockSeparator","columnsSeparator","_animationColumnIndex","_headerPanelView","_columnChooserView","allowDrop","headersView","separator","hasTargetVisibleIndex","columnsResizingReorderingModule","columnsSeparatorView","blockSeparatorView","trackerView","tablePosition","GROUP_FOOTER_CLASS","FREESPACE_ROW_CLASS","COMMAND_CELL_SELECTOR","DATEBOX_WIDGET_NAME","FAST_EDITING_DELETE_KEY","INTERACTIVE_ELEMENTS_SELECTOR","NON_FOCUSABLE_ELEMENTS_SELECTOR","FOCUS_TYPE_ROW","FOCUS_TYPE_CELL","COLUMN_HEADERS_VIEW","FUNCTIONAL_KEYS","isNotFocusedRow","isCellElement","_isRowEditMode","isElementDefined","isMobile","isCellInHeaderRow","isFixedColumnIndexOffsetRequired","shouldPreventScroll","_isVirtualScrolling","KeyboardNavigationController","_selectionController","_updateFocusTimeout","_fastEditingStarted","_focusedCellPosition","_canceledCellPosition","setupFocusedView","_isNeedScroll","_focusedView","_initViewHandlers","_initDocumentHandlers","rowsViewFocusHandler","isRelatedTargetInRowsView","isCommandButton","_isEventInCurrentGrid","$focusedCell","_getFocusedCell","$rowsView","isFocusedViewCorrect","needUpdateFocus","isFocusedElementCorrect","_initPointerEventHandler","_initKeyDownHandler","_setRowsViewAttributes","_isNeedFocus","_isHiddenFocus","isCurrentRowsViewClick","isEditorOverlay","isColumnResizing","targetInsideFocusedView","_resetFocusedCell","_resetFocusedView","_getRowsViewElement","isGridEmpty","_applyTabIndexToElement","pointerEventName","clickSelector","_pointerEventAction","_pointerEventHandler","_keyDownListener","_keyDownHandler","isRowFocusType","focusType","isCellFocusType","setRowFocusType","setCellFocusType","needStopPropagation","_processOnKeyDown","_updateFocusedCellPositionByTarget","_leftRightKeysHandler","ctrl","_upDownKeysHandler","_pageUpDownKeyHandler","_spaceKeyHandler","_ctrlAKeyHandler","_beginFastEditing","_tabKeyHandler","_enterKeyHandler","_escapeKeyHandler","_ctrlFKeyHandler","_f2KeyHandler","_isFastEditingAllowed","_isFastEditingStarted","_closeEditCell","getVisibleRowIndex","directionCode","_getDirectionCodeByKey","isEditingNavigationMode","allowNavigate","_isVirtualColumnRender","_processVirtualHorizontalPosition","_getNextCell","_arrowKeysHandlerFocusCell","_this$_editingControl","_this$_editingControl2","isUpArrow","isRowEditingInCurrentRow","_navigateNextCell","_isVirtualRowRender","_scrollBy","isPageUp","pageStep","isFocusedRowElement","_getElementType","isFocusedSelectionCell","isCellPositionDefined","isOriginalHandlerRequired","_isLastValidCell","_isFirstValidCell","eventTarget","focusedViewElement","_handleTabKeyOnMasterDetailCell","_editingCellTabHandler","_targetCellTabHandler","_getMaxHorizontalOffset","_isColumnRendered","allVisibleColumns","renderedVisibleColumns","_isFixedColumn","_isColumnVirtual","localColumnIndex","getColumnIndex","horizontalScrollPosition","needToScroll","_getVisibleColumnCount","leftEdgePosition","_getHorizontalScrollPositionOffset","positionOffset","$currentCell","_getCell","currentCellWidth","rtlMultiplier","isEditingAllowed","_getCellElementFromTarget","elementType","_updateFocusedCellPosition","nextCellInfo","_getNextCellByTabKey","_getRowIndex","_isDataRow","_focusCell","isHighlighted","_editFocusedCell","_focusInteractiveElement","$lastInteractiveElement","_getInteractiveElement","getFirstValidCellInRow","_checkNewLineTransition","_fireFocusedCellChanging","$newCellElement","_getCellPosition","_fireFocusedRowChanging","rowIndexChanged","setFocusedColumnIndex","_processEnterKeyForDataCell","_getEnterKeyDirection","allowEditingOnEnterKey","_allowEditingOnEnterKey","_handleEnterKeyEditingCell","_startEditing","isShift","_focusEditFormCell","searchTextEditor","keyCode","isCellValid","_isCellValid","$nextCell","isVerticalDirection","_fireFocusChangingEvents","_focus","isDeleting","fastEditingKey","isInteractiveElement","isExpandCommandCell","_isInsideEditForm","_focusView","_isMasterDetailCell","_clickTargetCellHandler","_isCellEditMode","setFocusedRowIndex","prevRowIndex","resetFocusedRow","_resetFocusedRow","_allowRowUpdating","skipFocusEvent","isDisabled","activeElementSelector","_focusElement","getFocusedView","rowsViewElement","$focusedView","_getFocusedViewByElement","disableFocus","$focusElement","focusedView","isRowFocus","one","isRenderView","_hasSkipRow","$focusedElementInsideCell","isFocusedElementDefined","_this$_focusedCellPos","setFocusedCellPosition","_getFocusedColumnIndexOffset","_getFixedColumnIndexOffset","_applyColumnIndexBoundaries","_this$_focusedView","renderFocusState","restoreFocusableElement","newRowIndex","_getNewPositionByCode","visibleColumnsCount","_hasValidCellAfterPosition","_isLastRow","_hasValidCellBeforePosition","_isCellByPositionValid","getMaxRowIndex","isFirstValidCell","hasValidCells","checkingPosition","visibleColumnCount","isClick","isShowWhenGrouped","isDataCell","rowItems","_isLegacyNavigation","focusedCellPosition","includeCommandCells","newFocusedCellPosition","isLastCellOnDirection","_isCellInRow","visibleColumnIndex","_isAllowEditing","_startEditCell","editResult","_editingCellHandler","_$input$get$select","_$input$get","keyDownEvent","keyPressEvent","inputEvent","$widgetContainer","fireRowEvent","newColumnIndex","prevCellIndex","prevColumnIndex","_fireFocusedCellChanged","localRowIndex","$newFocusedRow","prevFocusedRowIndex","_fireFocusedRowChanged","getFocusedRowIndexByKey","$editForm","$masterDetailCell","_processNextCellInMasterDetail","_processCanceledEditCellPosition","isCanceled","updateFocusedRowIndex","lastVisibleIndex","keyboardNavigationModule","needTriggerPointerEventHandler","_triggerPointerDownEventHandler","cellElements","updateFocusElementTabIndex","_updateFocusedCellTabIndex","cellElementsLength","updateCellTabIndex","isMasterDetailCell","isValidCell","_renderFocusByChange","_getEditorInstance","_handleEditingNavigationMode","originalKeyHandler","isDropDownOpened","isDateBoxWithMask","keyboardNavigationController","_keyboardNavigationController","getRowIndexCorrection","focusedRowIndexCorrection","adaptiveColumns","_showHiddenCellsInView","_hideVisibleCellInView","depthFirstSearch","isCount","aggregator","normalizeAggregate","aggregate","_groupLevel","_totalAggregates","totalAggregates","_groupAggregates","groupAggregates","_totals","_calculateTotals","_calculateGroups","_aggregate","aggregates","_accumulate","_seed","_finalize","maxLevel","seedFn","stepFn","finalizeFn","innerNode","seed","NaN","aggregateIndex","fin","finalize","DATAGRID_TOTAL_FOOTER_CLASS","DATAGRID_SUMMARY_ITEM_CLASS","DATAGRID_TEXT_CONTENT_CLASS","DATAGRID_GROUP_FOOTER_CLASS","DATAGRID_GROUP_TEXT_CONTENT_CLASS","DATAGRID_NOWRAP_CLASS","DATAGRID_FOOTER_ROW_CLASS","DATAGRID_GROUP_FOOTER_ROW_TYPE","DATAGRID_TOTAL_FOOTER_ROW_TYPE","renderSummaryCell","$summaryItems","getSummaryCellOptions","getGroupAggregates","FooterView","footerItems","needUpdateScrollLeft","$newTable","$newRow","totalColumnIndices","SummaryDataSourceAdapterExtender","_summaryGetter","summaryGetter","_summary","sortByGroupsInfo","sortByGroups","groupedItems","forEachGroup","itemsPath","SummaryDataSourceAdapterClientExtender","calculateAggregates","calculator","insertedData","applyAddedData","removedData","applyRemovedData","updatedData","updatedItems","sortGroupsBySummary","sortGroupsBySummaryCore","sortBy","thenBy","sortedItems","totalSummary","_options$cachedData$e","hasOperations","_isDataColumn","_isGroupFooterVisible","isGroupFooterVisible","summaryGroupItems","afterGroupColumnIndex","_calculateSummaryCells","calculateTargetColumnIndex","summaryCellsByColumns","summaryIndex","_getSummaryCells","summaryTotalItems","_footerItems","oldSummaryCells","summaryCell","_prepareUnsavedDataSelector","_prepareAggregateSelector","_getAggregates","commonSkipEmptyValues","summaryProcess","totalValue","_addSortInfo","_findSummaryItem","summaryItemIndex","_getSummarySortByGroups","groupSummaryItems","currentRemoteOperations","_getSummaryOptions","totalSummaryItems","getTotalSummaryValue","summaryItemName","_refreshSummary","_renderGroupSummaryCells","_hasAlignByColumnSummaryItems","_getAlignByColumnCellCount","groupCellColSpan","alignByColumnCellCount","$groupCell","_renderGroupSummaryCellsCore","_getSummaryCellIndex","FIRST_CELL_CLASS","LAST_CELL_CLASS","HOVER_STATE_CLASS","FIXED_COL_CLASS","FIXED_COLUMNS_CLASS","POINTER_EVENTS_NONE_CLASS","getTransparentColumnIndex","normalizeColumnWidths","fixedWidths","fixedColumnIndex","baseFixedColumns","_isFixedColumns","_correctColumnIndicesForFixedColumns","fixedTableElement","_fixedTableElement","_partialUpdateFixedRow","childNodes","_this$_columnsControl","needUpdateColspan","$fixedTable","_partialUpdateFixedTable","fixedCorrection","fixedCells","prevFixedColumn","columnCommand","isRowAltStyle","isEmptyCell","isFixedTableRendering","isGroupCell","alignByFixedColumnCellCount","headerRowIndex","fixedCellElements","fixedColumn","getFixedColumnsOffset","$transparentColumn","getTransparentColumnElement","positionTransparentColumn","getFixedTableElement","synchronizeRows","isWidthsSynchronized","isColumnWidthChanged","useVisibleColumns","_getClientHeight","boundingClientRectElement","$fixedRowElements","fixedRowHeights","heightTable","heightFixedTable","fixedRowHeight","ColumnHeadersViewFixedColumnsExtender","columnFixingOptions","getFixedColumnElements","$transparentColumnElement","$fixedColumnElements","RowsViewFixedColumnsExtender","_detachHoverEvents","attachHoverEvent","isHover","contentClass","scrollDelay","_fixedScrollTimeout","wheel","$nearestScrollable","shouldScroll","nearestScrollableInstance","nearestScrollableHasVerticalScrollbar","_updateFixedTablePosition","needFocus","vWidth","hWidth","styles","$fixedContent","_getElasticScrollTop","elasticScrollTop","reachedBottom","$scrollableContent","$scrollableContainer","maxScrollTop","_applyElasticScrolling","FooterViewFixedColumnsExtender","columnFixingModule","_pointsByFixedColumns","ROWS_VIEW","FOOTER_VIEW","COLUMN_VIEWS","ADAPTIVE_NAMESPACE","ADAPTIVE_ROW_TYPE","FORM_ITEM_CONTENT_CLASS","FORM_ITEM_MODIFIED","HIDDEN_COLUMN_CLASS","ADAPTIVE_COLUMN_BUTTON_CLASS","ADAPTIVE_COLUMN_NAME_CLASS","COMMAND_ADAPTIVE_HIDDEN_CLASS","ADAPTIVE_DETAIL_ROW_CLASS","ADAPTIVE_ITEM_TEXT_CLASS","LAST_DATA_CELL_CLASS","ADAPTIVE_COLUMN_NAME","EXPAND_ARIA_NAME","COLLAPSE_ARIA_NAME","getDataCellElements","adaptiveCellTemplate","$adaptiveColumnButton","adaptiveColumnsController","toggleExpandAdaptiveDetailRow","AdaptiveColumnsController","_getEditMode","_isItemModified","_renderFormViewTemplate","focusAction","renderFormTemplate","isItemEdited","_isItemEdited","_isVisibleColumnsValid","_calculatePercentWidths","percentWidths","_getItemPercentWidth","_isPercentWidth","_isColumnHidden","_hiddenColumns","hiddenColumn","columnsCanFit","fixedColumnsWidth","columnsWithoutFixedWidthCount","_calculatePercentWidth","_calculateColumnWidth","contentColumns","colWidth","widthOption","columnFitted","partialWidth","resultWidth","_getNotTruncatedColumnWidth","_getCommandColumnsWidth","adaptiveExpandedKey","_getFormItemsByHiddenColumns","hiddenColumns","_getAdaptiveColumnVisibleIndex","_hideAdaptiveColumn","_hideVisibleColumn","cssClassNameToRemove","_showHiddenColumns","$hiddenCommandCells","$hiddenCells","_hideVisibleColumnInView","cancelClassAdding","currentVisibleIndex","_findCellElementInRow","$rowCells","cellIsInsideGroup","groupCellLength","endGroupIndex","cssClassNameToAdd","hideRedundantColumns","hiddenQueue","hasHiddenColumns","needHideColumn","rootElementWidth","getVisibleContentColumns","visibleContentColumns","contentColumnsCount","columnBestFitWidth","getItemContentByColumnIndex","_$itemContents","alwaysExpanded","createFormByHiddenColumns","userFormOptions","defaultFormOptions","_form","updateForm","hasAdaptiveDetailRowExpanded","_contentReadyAction","updateHidingQueue","columnsHasHidingPriority","hideableColumns","_hidingColumnsQueue","getHiddenColumns","getHidingColumnsQueue","adaptiveHidden","isAdaptiveVisible","isAdaptiveDetailRowExpanded","expandAdaptiveDetailRow","collapseAdaptiveDetailRow","updateCommandAdaptiveAriaLabel","setCommandAdaptiveAriaLabel","labelName","$adaptiveCommand","adaptivityModule","_adaptiveColumnsController","hidingColumnsQueueLength","hiddenColumnsLength","isClickable","_updateColumnWidth","hasHiddenColumnsOnly","hasAdaptiveHiddenWidth","$itemContents","_adaptiveController","oldExpandRowIndex","_isForceRowAdaptiveExpand","_collapseAdaptiveDetailRow","_cancelEditAdaptiveDetailRow","expandedKey","_adaptiveExpandedKey","adaptiveController","oldHiddenColumns","hidingColumnsQueue","_updateScrollableTimeoutID","expandRowIndex","lastRowIndex","oldExpandLoadedRowIndex","newExpandLoadedRowIndex","oldKey","isCellOrBatchMode","focusHandler","$dataCells","isCellElementsEquals","foreachColumnInfo","offsets","lastProcessedIndexes","processedColumnCount","createColumnsInfo","newInfo","columnInfo","cellColspan","DEFAULT_COLUMN_WIDTH","setScrollPosition","HeaderViewExtender","ColumnsControllerExtender","getWidths","_beginPageIndex","_endPageIndex","_virtualVisibleColumns","currentPosition","getColumnPageSize","getTotalWidth","_fireColumnsChanged","_changedTimeout","_setScrollPositionCore","needColumnsChanged","_this$_columns","visibleColumnsHash","beginFixedColumnCount","beginFixedColumns","beginColumns","beginWidth","endFixedColumnCount","endFixedColumns","endColumns","endWidth","columnsInfo","leftFixedColumnCount","virtualColumnsModule","columnPageSize","columnRenderingThreshold","prepareItems","emptyCell","defaultSetter","addItem","FILE_EXTESIONS","EXCEL","CSS","PNG","JPEG","GIF","SVG","PDF","MIME_TYPES","fileSaver","_revokeObjectURLTimeout","_getDataUri","_getMimeType","_linkDownloader","href","exportLinkElement","download","_formDownloader","contentType","formAttributes","enctype","exportForm","setAttributes","_saveByProxy","_winJSBlobSave","savePicker","Windows","Storage","Pickers","FileSavePicker","suggestedStartLocation","PickerLocationId","documentsLibrary","fileExtension","fileTypeChoices","suggestedFileName","pickSaveFileAsync","openAsync","FileAccessMode","readWrite","outputStream","inputStream","msDetachStream","Streams","RandomAccessStream","copyAsync","flushAsync","_click","link","dispatchEvent","MouseEvent","cancelable","createEvent","initMouseEvent","_saveBlobAs","_blobSaved","msSaveOrOpenBlob","WinJS","URL","webkitURL","mozURL","msURL","oURL","objectURL","createObjectURL","downloadLink","revokeObjectURL","_objectUrlRevoked","saveAs","proxyURL","forceProxy","userAgent","ARABIC_ZERO_CODE","DEFINED_NUMBER_FORMTATS","thousands","millions","billions","trillions","decimal","fixedpoint","exponential","PERIOD_REGEXP","DAY_REGEXP","DO_REGEXP","STANDALONE_MONTH_REGEXP","HOUR_REGEXP","ANY_REGEXP","excelFormatConverter","_applyPrecision","_hasArabicDigits","_convertDateFormatToOpenXml","_convertDateFormat","_getLanguageInfo","languageID","languageIDStr","languageInfo","_convertNumberFormat","excelFormat","getOpenXmlCurrencyFormat","convertFormat","tagHelper","toXml","attributeName","attributeValue","cellAlignmentHelper","tryCreateTag","sourceObj","vertical","wrapText","horizontal","copy","areEqual","leftTag","rightTag","tag","colorHelper","_tryConvertColor","colorCode","rgb","theme","patternFillHelper","patternType","backgroundColor","foregroundColor","fillHelper","patternFill","tryCreateFillFromSimpleFormat","fillPatternType","fillPatternColor","copySimpleFormat","fontHelper","family","scheme","bold","italic","underline","color","cellFormatHelper","sharedItemsContainer","numberFormatId","numberFormat","registerNumberFormat","fontId","registerFont","font","fillId","registerFill","applyNumberFormat","isAlignmentEmpty","xfId","applyAlignment","numFmtId","numberFormatHelper","ID_PROPERTY_NAME","formatCode","_cellFormatTags","_fillTags","_fontTags","_numberFormatTags","cellFormat","cellFormatTag","cellFormatTagsAsXmlStringsArray","fillTag","tagsAsXmlStringsArray","fontTag","xmlStringsArray","_convertNumberFormatIndexToId","XML_TAG","GROUP_SHEET_PR_XML","SINGLE_SHEET_PR_XML","BASE_STYLE_XML2","OPEN_XML_FORMAT_URL","RELATIONSHIP_PART_NAME","XL_FOLDER_NAME","WORKBOOK_FILE_NAME","CONTENTTYPES_FILE_NAME","SHAREDSTRING_FILE_NAME","STYLE_FILE_NAME","WORKSHEETS_FOLDER","WORKSHEET_FILE_NAME","WORKSHEET_HEADER_XML","VALID_TYPES","EXCEL_START_TIME","DAYS_COUNT_BEFORE_29_FEB_1900","MAX_DIGIT_WIDTH_IN_PIXELS","UNSUPPORTED_FORMAT_MAPPING","quarterAndYear","ExcelCreator","_getXMLTag","_convertToExcelCellRef","zeroBasedRowIndex","zeroBasedCellIndex","charCode","isCellIndexFound","_convertToExcelCellRefAndTrackMaxIndex","_maxRowIndex","_maxColumnIndex","_getDataType","_tryGetExcelCellDataType","_formatObjectConverter","_tryConvertToExcelNumberFormat","newFormat","_appendString","_stringHash","_stringArray","_tryGetExcelDateValue","days","totalTime","_prepareValue","sourceValue","dataProvider","_dataProvider","cellSourceData","getCellData","getCellType","_callCustomizeExcelCell","sourceData","styleCopy","copyCellFormat","clearStyle","wrapTextEnabled","newStyle","_getDataArray","cellsArray","cellData","rowsLength","styleArrayIndex","getStyleId","cellStyleId","_styleArrayIndexToCellStyleIdMap","hasCustomizeExcelCell","modifiedExcelCell","_styleArray","cellDataType","excelDateValue","_excelFile","registerCellFormat","_needSheetPr","getGroupLevel","_calculateWidth","pixelsWidth","_prepareStyleData","getStyles","_colsArray","fonts","_prepareCellData","_cellsArray","_createXMLRelationships","xmlRelationships","_createXMLRelationship","_getWorkbookContent","_getContentTypesContent","_generateStylesXML","_zip","XML","generateNumberFormatsXml","generateFontsXml","generateFillsXml","generateCellFormatsXml","_generateStringsXML","stringIndex","stringsLength","sharedStringXml","_getPaneXML","frozenArea","getFrozenArea","_getAutoFilterXML","maxCellIndex","autoFilterEnabled","getHeaderRowCount","_getIgnoredErrorsXML","ignoreErrors","_generateWorksheetXML","xmlCells","xmlRows","colsLength","rSpans","headerRowCount","xmlResult","_rtlEnabled","rightBottomCellRef","_generateMergingXML","mergeIndex","columnsLength","usedArea","mergeArray","mergeXML","cellMerge","getCellMerging","mergeArrayLength","_generateCommonXML","relsFileContent","relsXML","_generateContent","_generateWorkXML","JSZip","_checkZipState","ready","getData","isBlob","excelCreator","standardColorNames","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","feldspar","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslateblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","violetred","wheat","white","whitesmoke","yellow","yellowgreen","standardColorTypes","re","colorString","hsvToRgb","hslToRgb","Color","baseColor","parseColor","colorIsInvalid","normalize","hsv","toHsvFromRgb","hsl","toHslFromRgb","colorComponent","def","toHexFromRgb","vMin","vInc","vDec","calculateHue","convertTo01Bounds","maxMinSum","makeColorTint","colorPart","colorTint","modifyColorTint","hueToRgb","isIntegerBetweenMinAndMax","highlight","alter","toHex","darken","blend","blendColor","other","getPureColor","isValidHex","hex","isValidRGB","isValidAlpha","fromHSL","_math","_number","PI","sqrt","atan2","cos","sin","_export","exportingAction","exportedAction","fileSavingAction","selectedRowsOnly","excel","creator","formatConverter","BUTTON_GROUP_WRAPPER_CLASS","BUTTON_GROUP_ITEM_CLASS","BUTTON_GROUP_FIRST_ITEM_CLASS","BUTTON_GROUP_LAST_ITEM_CLASS","BUTTON_GROUP_ITEM_HAS_WIDTH","SHAPE_STANDARD_CLASS","ButtonCollection","_prepareItemStyles","_getBasicButtonOptions","_templateData","_hasCustomTemplate","_prepareContent","ButtonGroup","_createItemClickAction","_syncSelectionOptions","$buttons","_buttonsCollection","DROP_DOWN_BUTTON_CLASS","DROP_DOWN_BUTTON_CONTENT","DROP_DOWN_BUTTON_ACTION_CLASS","DROP_DOWN_BUTTON_TOGGLE_CLASS","DROP_DOWN_BUTTON_HAS_ARROW_CLASS","DROP_DOWN_BUTTON_POPUP_WRAPPER_CLASS","DROP_DOWN_EDITOR_OVERLAY_CLASS","DX_BUTTON_TEXT_CLASS","DX_ICON_RIGHT_CLASS","DropDownButton","useSelectMode","splitButton","showArrowIcon","dropDownOptions","dropDownContentTemplate","wrapItemText","useItemTextAsTitle","groupTemplate","buttonGroupOptions","_createActionClickAction","_createSelectionChangedAction","_compileKeyGetter","_compileDisplayGetter","_itemsToDataSource","cache","$listContainer","_escHandler","_getKey","storeKey","_keyGetter","_displayGetter","_renderButtonGroup","_updateArrowClass","_loadSelectedItem","_updateActionButton","_this$_loadSingleDefe","_loadSingleDeferred","_lastSelectedItemData","cachedResult","_loadSingle","_actionClickAction","_selectionChangedAction","previousItem","_actionItem","_actionButtonConfig","isActionButton","isToggleButton","buttonContent","$firstIcon","$textContainer","$secondIcon","_getButtonGroupItems","_buttonGroupItemClick","_popupContentId","$buttonClicked","actionResult","_fireItemClickAction","_buttonGroup","_popupHidingHandler","_bindInnerWidgetOptions","_setAriaExpanded","_popupOptionChanged","getOptionsFromContainer","optionsKeys","_setWidgetOption","_ariaExpandedElements","ariaElement","owns","$buttonGroup","_buttonGroupOptions","buttonElements","_upDownKeyHandler","_tabHandler","hasArrow","isPrimitiveItem","_getDisplayValue","_setListOption","_fireSelectionChangedAction","newConfig","_selectedItemKeyChanged","_actionButtonOptionChanged","_updateDataSource","_updateKeyExpr","_selectModeChanged","_innerWidgetOptionChanged","_updateItemCollection","DATAGRID_EXPORT_MENU_CLASS","DATAGRID_EXPORT_BUTTON_CLASS","DATAGRID_EXPORT_TOOLBAR_BUTTON_NAME","DATAGRID_EXPORT_ICON","DATAGRID_EXPORT_EXCEL_ICON","DATAGRID_EXPORT_SELECTED_ICON","DATAGRID_PDF_EXPORT_ICON","DataProvider","initialColumnWidthsByColumnIndex","_exportController","_initialColumnWidthsByColumnIndex","_selectedRowsOnly","_getGroupValue","_correctCellIndex","_getColumns","_selectionOnly","_getSelectedItems","_getAllItems","isHeadersVisible","gridCell","getHeaderStyles","columnStyles","getColumnStyles","getGroupRowStyle","_getTotalCellStyleId","_this$getColumns$cell","isTotalCell","getColumnsByAllRows","getColumnsWidths","_convertFromGridGroupSummaryItems","gridGroupSummaryItems","isExcelJS","correctedCellIndex","columnsRow","gridColumn","itemValues","totalSummaryItemName","correctCellIndex","isSummaryAlignByColumn","exportColspan","ExportController","_getEmptyCell","currentHeaderRow","columnWidthsByColumnIndex","_getColumnWidths","_headersView","_needColumnExporting","currentColspan","_calculateExportColspan","childColumns","childColumn","_getFooterSummaryItems","isTotal","estimatedItemsCount","_hasSummaryGroupFooters","_getItemsWithSummaryGroupFooters","sourceItems","beforeGroupFooterItems","groupFooterItems","_updateGroupValuesWithSummaryByColumn","summaryValues","groupColumnCount","_processUnExportedItems","isDetailExpandColumn","selectedRowData","getDataProvider","columnsLastRowVisibleColumns","exportToExcel","_isSelectedRows","callbackList","exportButton","_getExportToolbarButton","_correctItemsPosition","_getExportToolbarItems","toolbarButtonOptions","_widgetOptions","_index","exportOptions","exportMethod","formatName","exportAllIcon","exportSelectedIcon","_isExportButtonVisible","ROW_FOCUSED_CLASS","TABLE_POSTFIX_CLASS","FocusController","_keyboardController","_focusRowByIndex","_triggerFocusedRowChangedIfNeed","_focusRowByKey","focusedRowIndexByKey","isAutoNavigateToFocusedRow","_focusRowByIndexCore","setKeyByIndex","_isValidFocusedRowIndex","_getLastItemIndex","isRowFocused","_isLocalRowIndex","isVirtualScrolling","virtualItems","virtualItemsBegin","visibleRowsCount","visiblePagesCount","_setFocusedRowKeyByIndex","_navigateToRow","isFocusedRowKeyDefined","needFocusRow","isAutoNavigate","rowIndexByKey","_navigateTo","getPageIndexByKey","isVirtualRowRenderingMode","_navigateToVirtualRow","_navigateToVisibleRow","_triggerUpdateFocusedRow","scrollToRowElement","triggerUpdateFocusedRow","scrollTopPosition","_focusRowByKeyOrIndex","currentFocusedRowIndex","updateFocusedRow","$mainRow","isMainTable","_clearPreviousFocusedRow","_prepareFocusedRow","changedItem","scrollToElementVertically","$prevRowFocusedElement","focusedRow","$focusedRowTable","$firstRow","focusModule","visibleRow","isRowElement","sortByKey","notSortedKeys","notSortedKey","isPartialUpdate","isPartialUpdateWithDeleting","_updatePageIndexes","processUpdateFocusedRow","prevRenderingPageIndex","_lastRenderingPageIndex","renderingPageIndex","_isPagingByRendering","isPagingByRendering","isValidRowIndexByKey","needFocusRowByIndex","getGlobalRowIndexByKey","_calculateGlobalRowIndexByGroupedData","_calculateGlobalRowIndexByFlatData","groupFilter","useGroup","_generateFilterByKey","_concatWithCombinedFilter","_generateOperationFilterByKey","_generateBooleanFilter","sortInfo","booleanFilter","sortFilter","dataSourceKey","keyPart","_setFocusedRowElementTabIndex","_findRowElementForTabIndex","_scrollToFocusOnResize","getScrollElementPosition","currentScrollTop","isRowClick","_isFocusedRowInsideGroup","_getGroupPath","groupPath","_expandGroupByPath","isGroupKey","_calculateExpandedRowGlobalIndex","dataOffset","groupContinuationCount","currentPageOffset","COMMAND_HANDLE_CLASS","HANDLE_ICON_CLASS","SORTABLE_WITHOUT_HANDLE_CLASS","RowDraggingExtender","_updateHandleColumn","_allowReordering","isHandleColumnVisible","_getHandleTemplate","sortableName","sortableFixedName","currentSortableName","anotherSortableName","togglePointerEventsStyle","_this$sortableFixedNa","rowsViewOffset","pageX","onDraggableElementShown","$dragElement","dragElement","gridInstance","_synchronizeScrollLeftPosition","_getDraggableRowTemplate","_rowDragging$onDragSt","onDragEnter","onDragLeave","_rowDragging$onDragEn","_rowDragging$onAdd","hasFixedSortable","_updateSortable","_sortable","_sortableFixed","sortable","_getDraggableGridOptions","gridOptions","$dataGridContainer","rowDraggingModule","dateUnitIntervals","toMilliseconds","getDatesInterval","intervalUnit","millisecondCount","getNextDateUnit","unit","withWeeks","convertMillisecondsToDateUnits","dateUnitCount","convertDateUnitToMilliseconds","dateToMilliseconds","dateUnit","maxInterval","tickIntervalToFormatMap","getQuarter","getFirstQuarterMonth","correctDateWithUnitBeginning","withCorrection","firstQuarterMonth","oldDate","getFirstWeekDate","trimTime","setToDayEnd","getTimezonesDifference","addDateInterval","intervalObject","getDateIntervalByString","years","quarters","months","weeks","setTime","addInterval","isNegative","getSequenceByInterval","cur","intervals","viewType","getLastMonthDay","resultDate","typeView","getDifferenceInMonthForCells","intervalString","startDecadeDate1","startDecadeDate2","startCenturyDate1","startCenturyDate2","normalizeDateByWeek","differenceInDays","intervalsOverlap","firstMin","firstMax","secondMin","secondMax","dateTimeFromDecimal","roundDateByStartDayHour","startDayHour","startTime","trial","roundToHour","makeDate","getDatesOfInterval","sameMonth"],"mappings":"kHAAA,kDASIA,EAAiB,CACjBC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJ,UAAW,EACXC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,IAAK,GACLC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,IAAK,GACLC,IAAK,GACLC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,IAAK,GACLC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,IAAK,IACLC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,IAAK,IACLC,IAAK,IACLC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,IAAK,IACLC,IAAK,IACLC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,GAAI,IACJC,GAAI,IACJC,IAAK,IACLC,GAAI,IACJ,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,KACV,SAAU,KACV,QAAS,KACT,aAAc,KACd,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,KACV,QAAS,KACT,aAAc,KACd,QAAS,KACT,SAAU,KACV,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,KACV,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,KACV,SAAU,KACV,SAAU,KACV,QAAS,KACT,QAAS,KACT,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,aAAc,KACd,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,aAAc,KACd,aAAc,KACd,cAAe,KACf,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,SAAU,KACV,QAAS,KACT,SAAU,KACV,QAAS,KACT,aAAc,KACd,SAAU,KACV,QAAS,MACT,QAAS,MACT,QAAS,MACT,aAAc,MACd,QAAS,MACT,QAAS,MACT,QAAS,MACT,aAAc,MACd,QAAS,MACT,QAAS,MACT,QAAS,MACT,aAAc,MACd,QAAS,MACT,QAAS,MACT,QAAS,MACT,QAAS,MACT,QAAS,MACT,QAAS,MACT,QAAS,MACT,QAAS,MACT,QAAS,MACT,QAAS,MACT,QAAS,MACT,QAAS,MACT,QAAS,MACT,QAAS,MACT,QAAS,MACT,QAAS,MACT,QAAS,MACT,UAAW,MACX,UAAW,MACX,UAAW,MACX,UAAW,MACXC,IAAK,MACL,UAAW,MACXC,IAAK,MACLC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJ,UAAW,MACXC,IAAK,MACL,UAAW,MACX,UAAW,MACX,UAAW,MACX,UAAW,MACXC,GAAI,MACJC,GAAI,MACJ,UAAW,MACXC,IAAK,MACLC,IAAK,MACL,UAAW,MACX,UAAW,MACX,UAAW,MACX,WAAY,MACZ,UAAW,OAER,SAASC,IACZ,OAAO7H,EAAe,OAAsB8H,Y,wICnWjC,GACX,QAAS,EACTC,IAAK,EACLC,GAAI,EACJ/H,GAAI,EACJ,QAAS,EACT,QAAS,EACT,QAAS,EACT,QAAS,EACT,QAAS,EACT,QAAS,EACT,QAAS,EACT,QAAS,EACT,QAAS,EACT,QAAS,EACT,QAAS,EACTgI,IAAK,EACLC,IAAK,EACLvF,GAAI,EACJ,UAAW,EACXwF,IAAK,EACLjG,GAAI,EACJkG,IAAK,EACLC,IAAK,EACLnI,GAAI,EACJoI,GAAI,EACJ/B,GAAI,EACJgB,GAAI,EACJ,UAAW,EACXpH,GAAI,EACJoI,GAAI,EACJC,IAAK,EACLC,IAAK,EACLrI,GAAI,EACJyE,GAAI,EACJxE,GAAI,EACJC,GAAI,EACJoI,IAAK,EACLf,IAAK,EACLgB,IAAK,EACLC,IAAK,EACLC,GAAI,EACJtI,GAAI,EACJ,SAAU,EACV,QAAS,EACT,QAAS,EACT,QAAS,EACT,QAAS,EACT,QAAS,EACTuI,GAAI,EACJrI,GAAI,EACJ2B,GAAI,EACJQ,GAAI,EACJmG,IAAK,EACLvG,GAAI,EACJwG,GAAI,EACJ,UAAW,EACXtI,GAAI,EACJ0C,GAAI,EACJzC,GAAI,EACJ,QAAS,EACT,QAAS,EACT,QAAS,EACTsI,IAAK,EACLzD,GAAI,EACJhC,GAAI,EACJ0D,GAAI,EACJlC,GAAI,EACJ4B,IAAK,EACLsC,GAAI,EACJtD,GAAI,EACJnE,GAAI,EACJoB,IAAK,EACLhC,GAAI,EACJ6B,GAAI,EACJyG,GAAI,EACJhD,GAAI,EACJrF,GAAI,EACJC,GAAI,EACJqI,IAAK,EACLC,IAAK,EACLlG,GAAI,EACJmG,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACL/F,GAAI,EACJgG,IAAK,EACLxD,GAAI,EACJ,QAAS,EACTyD,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,GAAI,EACJC,GAAI,EACJpG,GAAI,EACJqG,IAAK,EACL/D,GAAI,EACJgE,GAAI,EACJC,GAAI,EACJC,IAAK,EACL7H,GAAI,EACJ8H,GAAI,EACJ/H,GAAI,EACJ,SAAU,EACVgI,IAAK,EACLC,GAAI,EACJC,IAAK,EACL9D,GAAI,EACJ3D,GAAI,EACJ6B,GAAI,EACJlB,GAAI,EACJ+G,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLzJ,GAAI,EACJ0J,IAAK,EACLC,IAAK,EACL1J,GAAI,EACJ2J,IAAK,EACLC,IAAK,EACLC,GAAI,EACJC,IAAK,EACL7J,GAAI,EACJqE,GAAI,EACJ,QAAS,EACT,QAAS,EACT,QAAS,EACT,QAAS,EACT,QAAS,EACT,QAAS,EACT,QAAS,EACT,QAAS,EACT,QAAS,EACT,QAAS,EACTnE,GAAI,EACJ4J,GAAI,EACJ3J,GAAI,EACJ4J,IAAK,EACL3J,GAAI,EACJuF,GAAI,EACJqE,IAAK,EACLvE,IAAK,EACLwE,IAAK,EACLC,GAAI,EACJ/H,GAAI,EACJgI,IAAK,EACLC,GAAI,EACJC,IAAK,EACL,WAAY,EACZtG,GAAI,EACJzD,GAAI,EACJS,GAAI,EACJgF,IAAK,EACLuE,GAAI,EACJ,QAAS,EACT/J,GAAI,EACJ+F,GAAI,EACJ,UAAW,EACX9F,GAAI,EACJgC,GAAI,EACJ,QAAS,EACT,QAAS,EACT+H,IAAK,EACLpJ,GAAI,EACJ,QAAS,EACTsB,GAAI,EACJ+H,GAAI,EACJ9J,GAAI,EACJiC,GAAI,EACJ8H,IAAK,EACLvG,IAAK,EACLrD,GAAI,EACJ6B,GAAI,EACJ,UAAW,EACX,UAAW,EACXgI,IAAK,EACL,WAAY,EACZrJ,GAAI,EACJsJ,IAAK,EACLC,IAAK,EACLhF,GAAI,EACJiF,IAAK,EACLC,IAAK,EACLC,GAAI,EACJtG,GAAI,EACJuG,IAAK,G,oCCvLLC,EAA0B,kBAC1BC,EAAmBC,GAAUC,IAC7B,IAAKD,EAAOE,aAAc,CACtB,IAAIC,EAAOF,EAAKG,cACZC,EAA8BC,OAAOH,GAAMI,OAAS,EACpDC,EAAqBH,EAA8BF,EAAO,IAAMA,EAChEM,EAAU,IAAIC,KAAKA,KAAKC,IAAIH,EAAoBP,EAAKW,WAAYX,EAAKY,UAAWZ,EAAKa,WAAYb,EAAKc,aAAcd,EAAKe,aAAcf,EAAKgB,oBAC7IZ,GACAI,EAAQS,YAAYf,GAExB,IAAIgB,EAAY,OAAAC,EAAA,WAAO,CACnBC,SAAU,OACXrB,GACH,OAAOsB,EAAeb,EAASU,GAEnC,OAAOG,EAAerB,EAAMD,IAE5BuB,EAAkB,GAClBC,EAAexB,IACf,IAAIyB,EAAM,OAAsBlG,SAAW,IAAMmG,KAAKC,UAAU3B,GAIhE,OAHKuB,EAAgBE,KACjBF,EAAgBE,GAAO,IAAIG,KAAKC,eAAe,OAAsBtG,SAAUyE,GAAQA,QAEpFuB,EAAgBE,IAG3B,SAASH,EAAerB,EAAMD,GAC1B,OAAOwB,EAAaxB,EAAbwB,CAAqBvB,GAAM6B,QAAQhC,EAAyB,IAEvE,IAAIiC,EAAeC,GAAU,IAAIJ,KAAKK,aAAa,OAAsB1G,UAAUyE,OAAOgC,GACtFE,EAA4B,MAC5B,IAAIC,EAAmB,GACvB,OAAO5G,IACH,KAAMA,KAAU4G,GAAmB,CAC/B,GAAI,MAAQJ,EAAa,GAErB,OADAI,EAAiB5G,IAAU,GACpB,EAEX4G,EAAiB5G,GAAU,GAC3B,IAAK,IAAI6G,EAAI,EAAGA,EAAI,KAAMA,EACtBD,EAAiB5G,GAAQwG,EAAaK,IAAMA,EAGpD,OAAOD,EAAiB5G,KAbA,GAgB5B8G,EAAoBC,IACpB,IAAIC,EAAyBL,EAA0B,OAAsB3G,UAC7E,OAAKgH,EAGED,EAAWE,MAAM,IAAIC,IAAIC,GAAQA,KAAQH,EAAyBjC,OAAOiC,EAAuBG,IAASA,GAAMC,KAAK,IAFhHL,GAIXM,EAAsBC,GAAOA,EAAIf,QAAQ,cAAe,QACxDgB,EAAmB,CAACC,EAAQC,IAAaJ,EAAoBG,KAAYH,EAAoBI,GAC7FC,EAAiBC,GAAQA,EAAKpB,QAAQ,KAAW,OACjDqB,EAAc,CACdC,IAAK,CACDA,IAAK,WAETC,UAAW,CACPC,QAAS,QAEbC,SAAU,CACND,QAAS,OACTnD,KAAM,UACNqD,MAAO,OACPJ,IAAK,WAETK,iBAAkB,CACdH,QAAS,OACTnD,KAAM,UACNqD,MAAO,OACPJ,IAAK,UACLM,KAAM,UACNC,OAAQ,UACRC,OAAQ,WAEZC,SAAU,CACNH,KAAM,UACNC,OAAQ,UACRC,OAAQ,WAEZJ,MAAO,CACHA,MAAO,QAEXM,YAAa,CACTN,MAAO,OACPJ,IAAK,WAETW,aAAc,CACV5D,KAAM,UACNqD,MAAO,QAEXQ,UAAW,GACXC,UAAW,CACPP,KAAM,UACNC,OAAQ,WAEZO,UAAW,CACP/D,KAAM,WAEVA,KAAM,CACFA,KAAM,YAGdgE,OAAOC,eAAejB,EAAa,qBAAsB,CACrDkB,IAAK,WACD,IAAIC,EAAiB1C,KAAKC,eAAe,OAAsBtG,UAAUgJ,kBACzE,MAAO,CACHpE,KAAMmE,EAAenE,KACrBqD,MAAOc,EAAed,MACtBJ,IAAKkB,EAAelB,IACpBM,KAAM,UACNC,OAAQ,cAIpB,IAAIa,EAAgBxE,GAAU,kBAAoBA,GAAUmD,EAAYnD,EAAOyE,eAC3EC,EAAsB,CACtBC,WAAY,SAASC,EAAYC,GAC7B,IAAI5E,EAAO,IAAIS,KAAK,KAAMkE,EAAY,GAAI,GACtCtC,EAAavC,EAAiB,CAC9ByD,MAAOqB,GADM9E,CAEdE,GACH,OAAOqC,GAEXtC,OAAQ,SAAS4E,EAAYC,GACzB,IAAI5E,EAAO,IAAIS,KAAK,EAAGkE,EAAY,GAAI,GACnCtC,EAAaW,EAAelD,EAAiB,CAC7CqD,IAAK,UACLI,MAAOqB,GAFqB9E,CAG7BE,IACC6E,EAAQxC,EAAWE,MAAM,KAAKuC,OAAOC,GAAQA,EAAKC,QAAQ,MAAQ,GACtE,OAAI,IAAMH,EAAMvE,OACLuE,EAAM,GACN,IAAMA,EAAMvE,OACZuE,EAAM,GAAGvE,OAASuE,EAAM,GAAGvE,OAASuE,EAAM,GAAKA,EAAM,GAEzDJ,EAAoBC,WAAWC,EAAYC,KAG3C,GACXK,OAAQ,WACJ,MAAO,QAEXC,cAAe,SAASnF,EAAQoF,GAC5B,IAAIP,EAAc,CACdQ,KAAM,OACNC,YAAa,QACbC,OAAQ,UACTvF,GAAU,QAEb,OADAoF,EAAO,WAAaA,EAAOA,EAAO,aAC3BI,MAAMC,MAAM,KAAM,IAAID,MAAM,KAAK/C,IAAI,CAACiD,EAAGd,IAAeF,EAAoBU,GAAMR,EAAYC,KAEzGc,YAAa,SAAS3F,GAClB,IAAI4F,EAAS,CAAC5F,GAAUwF,MAAMC,MAAM,KAAM,IAAID,MAAM,IAAI/C,IAAI,CAACiD,EAAGG,IAAa9F,EAAiB,CAC1FuD,QAAStD,GADgED,CAE1E,IAAIW,KAAK,EAAG,EAAGmF,KAFL,CAEkB,CAC3BR,KAAM,OACNC,YAAa,QACbQ,MAAO,SACPP,OAAQ,UACTvF,GAAU,SACb,OAAO4F,GAEXG,eAAgB,WACZ,IAAIC,EAAkBjG,EAAiB,CACnC2D,KAAM,UACNuC,QAAQ,IAEZ,MAAO,CAAC,EAAG,IAAIxD,IAAIyD,IACf,IAAIC,EAAiBpE,EAAa,GAC9BqE,EAAYJ,EAAgB,IAAItF,KAAK,EAAG,EAAG,EAAGwF,IAAQ1D,MAAM2D,GAChE,GAAI,IAAMC,EAAU7F,OAChB,MAAO,GAEX,IAAI8F,EAAaD,EAAU,GAAG7F,OAAS6F,EAAU,GAAG7F,OAAS6F,EAAU,GAAKA,EAAU,GACtF,OAAOC,EAAWC,UAG1BtG,OAAQ,SAASC,EAAMsG,GACnB,GAAKtG,EAAL,CAGA,IAAKsG,EACD,OAAOtG,EAEP,oBAAsBsG,GAAYA,EAAQC,YAC1CD,EAAUA,EAAQnB,MAAQmB,GAE9B,IAAIE,EAAajC,EAAc+B,GAC/B,GAAIE,EACA,OAAO1G,EAAiB0G,EAAjB1G,CAA6BE,GAExC,IAAIyG,SAAoBH,EACxB,OAAIA,EAAQC,WAAa,aAAeE,GAAc,WAAaA,EACxDC,KAAKC,SAASnB,MAAMkB,KAAME,WAE9B9G,EAAiBwG,EAAjBxG,CAA0BE,KAErC6G,MAAO,SAASxE,EAAYtC,GACxB,IAAIwG,EAKJ,OAJIxG,IAAWA,EAAO+G,QAAU,kBAAoBzE,IAChDA,EAAaW,EAAeX,GAC5BkE,EAAYvG,GAAQgD,EAAe0D,KAAK3G,OAAOC,EAAMD,KAElD2G,KAAKC,SAAStE,EAAYkE,GAAaxG,IAElDgH,yBAA0B,SAAS1E,EAAYtC,GAC3CsC,EAAaD,EAAkBC,GAC/B,IAAI2E,EAAcN,KAAKO,eAAelH,GAClCmH,EAAY7E,EAAWE,MAAM,OAAOuC,OAAOC,GAAQA,EAAKzE,OAAS,GACrE,GAAI0G,EAAY1G,SAAW4G,EAAU5G,OAArC,CAGA,IAAI6G,EAAWT,KAAKU,kBAAkBJ,EAAaE,GAC/CG,EAAqBC,IACrB,IAAIC,EAAa,EAAEJ,EAAUG,KACzB,IAAIE,EAAaF,EAAY,GAAK,EAClC,OAAO,IAAI7G,KAAK0G,EAASjH,KAAMiH,EAAS5D,MAAO4D,EAAShE,KAAMgE,EAASlB,MAAQuB,GAAc,GAAIL,EAASM,QAASN,EAASO,UAF/G,CAGdP,EAAUG,GACb,GAAIzE,EAAiBT,EAAkBsE,KAAK3G,OAAOwH,EAAYxH,IAAUsC,GACrE,OAAOkF,GAGf,OAAOF,GAAmB,IAAUA,GAAmB,KAE3DD,kBAAmB,SAASJ,EAAaE,GACrC,IAAIS,EAAc,IAAIlH,KAClB0G,EAAW,CACXjH,KAAMyH,EAAYxH,cAClBoD,MAAOoE,EAAYhH,WACnBwC,IAAKwE,EAAY/G,UACjBqF,MAAO,EACPwB,QAAS,EACTC,QAAS,GAUb,OARAV,EAAYY,QAAQ,CAACC,EAAYC,KAC7B,IAAIC,EAAWb,EAAUY,GACrBE,EAASC,SAASF,EAAU,IAC5B,UAAYF,IACZG,GAAU,GAEdb,EAASU,GAAcG,IAEpBb,GAEXe,oBAAqB,SAASnI,GAC1B,MAAI,kBAAoBA,GAAYA,EAAOoF,MAAQpF,EAAOA,OAGnD2G,KAAKC,SAASnB,MAAMkB,KAAME,WAFtB,SAAW7G,EAAOwD,OAIjC4E,kBAAmB,SAASpI,GACxB,MAAI,kBAAoBA,GAAYA,EAAOoF,MAAQpF,EAAOA,OAGnD2G,KAAKC,SAASnB,MAAMkB,KAAME,WAFtB,SAAW7G,EAAOsD,SAIjC+E,iBAAkB,WACd,OAAOhG,EAAkBf,EAAe,IAAIZ,KAAK,KAAM,EAAG,EAAG,GAAI,IAAK,CAClEgD,KAAM,UACNC,OAAQ,UACRsC,QAAQ,KACRnE,QAAQ,MAAO,KAEvBoF,eAAgB,SAASlH,GACrB,GAAI,kBAAoBA,EACpB,OAAO2G,KAAKC,SAAS5G,GAEzB,IAAIyG,EAAa,OAAArF,EAAA,WAAO,GAAI+B,EAAYnD,EAAOyE,gBAC3CxE,EAAO,IAAIS,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GAClC4H,EAAgBvI,EAAiB0G,EAAjB1G,CAA6BE,GAEjD,OADAqI,EAAgBjG,EAAkBiG,GAC3B,CAAC,CACJC,KAAM,OACNC,MAAO,GACR,CACCD,KAAM,QACNC,MAAO,GACR,CACCD,KAAM,MACNC,MAAO,GACR,CACCD,KAAM,QACNC,MAAO,GACR,CACCD,KAAM,UACNC,MAAO,GACR,CACCD,KAAM,UACNC,MAAO,IACR/F,IAAIuC,IAAQ,CACXuD,KAAMvD,EAAKuD,KACXR,MAAOO,EAAcrD,QAAQD,EAAKwD,UAClCzD,OAAOC,GAAQA,EAAK+C,OAAS,GAAGU,KAAK,CAACC,EAAGC,IAAMD,EAAEX,MAAQY,EAAEZ,OAAOtF,IAAIuC,GAAQA,EAAKuD,QCtR3FK,EAA4B,EAC5BC,EAAU,qBAAuBjH,KACjCkH,EAAyB,CACzB9E,UAAW,QACXC,UAAW,SACXV,SAAU,kBACVM,SAAU,YACVC,YAAa,SACbC,aAAc,SACdgF,eAAgB,QAChB3F,IAAK,IACLjD,KAAM,IACN6I,mBAAoB,gBACpBvF,iBAAkB,6BAClBD,MAAO,OACPU,UAAW,KACXb,UAAW,OACX4F,QAAS,MACTvF,KAAM,KACNC,OAAQ,KACRC,OAAQ,KACRsF,YAAa,MACb,iBAAkB,2BAElBC,EAAuB,CACvBhJ,KAAM,CAAC,IAAK,KAAM,QAClBiD,IAAK,CAAC,IAAK,MACXI,MAAO,CAAC,IAAK,KAAM,MAAO,QAC1B0C,MAAO,CAAC,IAAK,KAAM,IAAK,KAAM,MAC9BwB,QAAS,CAAC,IAAK,MACfC,QAAS,CAAC,IAAK,MACfyB,aAAc,CAAC,IAAK,KAAM,QAE1BC,EAAmB,eAAmB,CACtCnE,OAAQ,WACJ,MAAO,QAEXoE,oBAAqB,SAAStJ,GAC1B,OAAO8I,EAAuB9I,EAAOyE,gBAEzC8E,eAAgB,SAASC,GACrB,OAAO7C,KAAK2C,oBAAoBE,IAAYA,GAEhDrB,oBAAqB,SAASnI,GAC1B,OAAQ,IAAM2G,KAAK4C,eAAevJ,GAAQiF,QAAQ,SAEtDmD,kBAAmB,SAASpI,GACxB,OAAQ,IAAM2G,KAAK4C,eAAevJ,GAAQiF,QAAQ,SAEtDiC,eAAgB,SAASlH,GACrB,IAAIwJ,EAAU7C,KAAK2C,oBAAoBtJ,IAAWA,EAC9C4F,EAAS,GAQb,OAPA,eAAK4D,EAAQhH,MAAM,OAAQ,CAACkD,EAAGoC,KAC3B,eAAKqB,EAAsB,CAACM,EAAUC,KAC9BA,EAAiBC,SAAS7B,IAC1BlC,EAAOgE,KAAKH,OAIjB7D,GAEXT,cAAe,SAASnF,GACpB,OAAO,OAAiBmF,cAAcnF,IAE1C2F,YAAa,SAAS3F,GAClB,OAAO,OAAiB2F,YAAY3F,IAExC6J,gBAAiB,SAAS7J,GACtB,OAAO,OAAiB6J,gBAAgB7J,IAE5C+F,eAAgB,SAAS/F,GACrB,OAAO,OAAiB+F,eAAe/F,IAE3CqI,iBAAkB,WACd,MAAO,KAEXyB,eAAgB,SAAS9J,GAKrB,IAJA,IAAI+J,EAAS,IAAIrJ,KAAK,KAAM,EAAG,GAAI,GAAI,EAAG,EAAG,GACzCsJ,EAAS,IAAItJ,KAAK,KAAM,EAAG,GAAI,GAAI,EAAG,EAAG,GACzCuJ,EAAkBtD,KAAK3G,OAAO+J,EAAQ/J,GACtCkK,EAAkBvD,KAAK3G,OAAOgK,EAAQhK,GACjCoC,EAAI,EAAGA,EAAI6H,EAAgB1J,OAAQ6B,IACxC,GAAI6H,EAAgB7H,KAAO8H,EAAgB9H,GACvC,OAAQ+H,MAAMjC,SAAS+B,EAAgB7H,MAInDpC,OAAQ,SAASC,EAAMsG,GACnB,GAAKtG,EAAL,CAGA,IAAKsG,EACD,OAAOtG,EAEX,IAAIuG,EACJ,GAAI,oBAAsBD,EACtBC,EAAYD,OACT,GAAIA,EAAQC,UACfA,EAAYD,EAAQC,eAGpB,GADAD,EAAUA,EAAQnB,MAAQmB,EACtB,eAASA,GAET,OADAA,EAAUuC,EAAuBvC,EAAQ9B,gBAAkB8B,EACpD,OAAmB6D,cAAc,eAAqB7D,EAASI,KAA9B,CAAoC1G,IAGpF,GAAKuG,EAGL,OAAOA,EAAUvG,KAErB6G,MAAO,SAAS5D,EAAMlD,GAClB,IACIqK,EACA7D,EAFA8D,EAAO3D,KAGX,GAAKzD,EAAL,CAGA,IAAKlD,EACD,OAAO2G,KAAKG,MAAM5D,EAAM,aAE5B,GAAIlD,EAAO+G,OACP,OAAO/G,EAAO+G,OAAO7D,GAEzB,GAAI,kBAAoBlD,GAAW8I,EAAuB9I,EAAOyE,eAE1D,CACH+B,EAAYgC,IACR,IAAItF,EAAOoH,EAAKtK,OAAOwI,EAAOxI,GAC9B,OAAO,OAAmBoK,cAAclH,GAAM,IAElD,IACImH,EAAa,eAAkB7D,GACjC,MAAO+D,UARTF,EAAarK,EAUjB,GAAIqK,EAEA,OADAnH,EAAO,OAAmBkH,cAAclH,GAAM,GACvC,eAAkBmH,EAAY1D,KAA9B,CAAoCzD,GAE/CsH,EAAA,KAAOC,IAAI,SACX,IAAI7E,EAAS,IAAIlF,KAAKwC,GACtB,GAAK0C,IAAUuE,MAAMvE,EAAO8E,WAG5B,OAAO9E,IAEX+E,oBAAqB,WACjB,IAAI5C,EAAQ,OAAiB6C,wBAAwBrP,GAAU,EAAmBA,IAClF,YAAO,IAAWwM,EAAQa,EAA4Bb,KAG1Dc,GACAQ,EAAiBwB,OAAO,GAEb,U,wHCzJf,SAASC,EAAUC,GACf,OAAOC,MAAMC,QAAOC,QAAWC,OAAeC,SAASL,IAClDM,KAAKC,QACLD,MAAK,SAAAN,GAAI,OAAIA,KAEtB,SAASQ,EAAWR,GAChB,OAAOC,MAAMC,QAAOO,QAAYL,OAAeC,SAASL,IACnDM,KAAKC,QACLD,MAAK,SAAAN,GAAI,OAAIA,KAEtB,SAASU,EAAWV,GAChB,OAAOC,MAAMC,QAAOS,QAAYP,OAAeC,SAASL,IACnDM,KAAKC,QACLD,MAAK,SAAAN,GAAI,OAAIA,KAEtB,SAASY,EAAWZ,GAChB,OAAOC,MAAMC,QAAOW,QAAYT,OAAeC,SAASL,IACnDM,KAAKC,QACLD,MAAK,SAAAN,GAAI,OAAIA,KAItB,SAASc,EAAYd,GACjB,OAAOC,MAAMC,QAAOa,QAAaX,OAAeC,SAASL,IACpDM,KAAKC,QACLD,MAAK,SAAAN,GAAI,OAAIA,KAEtB,SAASgB,EAAWhB,GAChB,OAAOC,MAAMC,QAAOe,QAAYb,OAAeC,SAASL,IACnDM,KAAKC,QACLD,MAAK,SAAAN,GAAI,OAAIA,KAEtB,SAASkB,EAAWlB,GAChB,OAAOC,MAAMC,QAAOiB,QAAYf,OAAeC,SAASL,IACnDM,KAAKC,QACLD,MAAK,SAAAN,GAAI,OAAIA,KAEtB,SAASoB,EAAYpB,GACjB,OAAOC,MAAMC,QAAOmB,QAAajB,OAAeC,SAASL,IACpDM,KAAKC,QACLD,MAAK,SAAAN,GAAI,OAAIA,KAGtB,SAASsB,EAAUtB,GACf,OAAOC,MAAMC,QAAOqB,QAAWnB,OAAeC,SAASL,IAClDM,KAAKC,QACLD,MAAK,SAAAN,GAAI,OAAIA,KAItB,SAASwB,EAAWxB,GAChB,OAAOC,MAAMC,QAAOuB,QAAYrB,OAAeC,SAASL,IACnDM,KAAKC,QACLD,MAAK,SAAAN,GAAI,OAAIA,KAEtB,SAAS0B,EAAY1B,GACjB,OAAOC,MAAMC,QAAOyB,QAAavB,OAAeC,SAASL,IACpDM,KAAKC,QACLD,MAAK,SAAAN,GAAI,OAAIA,KAEtB,SAAS4B,EAAW5B,GAChB,OAAOC,MAAMC,QAAO2B,QAAYzB,OAAeC,SAASL,IACnDM,KAAKC,QACLD,MAAK,SAAAN,GAAI,OAAIA,KAGtB,SAAS8B,EAAW9B,GAChB,OAAOC,MAAMC,QAAO6B,QAAY3B,OAAeC,SAASL,IACnDM,KAAKC,QACLD,MAAK,SAAAN,GAAI,OAAIA,KAGtB,SAASgC,EAAWhC,GAChB,OAAOC,MAAMC,QAAO+B,QAAY7B,OAAeC,SAASL,IACnDM,KAAKC,QACLD,MAAK,SAAAN,GAAI,OAAIA,KAGtB,SAASkC,EAAWlC,GAChB,OAAOC,MAAMC,QAAOiC,QAAY/B,OAAeC,SAASL,IACnDM,KAAKC,QACLD,MAAK,SAAAN,GAAI,OAAIA,KAGtB,SAASoC,EAAWpC,GAChB,OAAOC,MAAMC,QAAOmC,OAAYjC,OAAeC,SAASL,IACnDM,KAAKC,QACLD,MAAK,SAAAN,GAAI,OAAIA,KAItB,SAASsC,EAAWtC,GAChB,OAAOC,MAAMC,QAAOqC,QAAYnC,OAAeC,SAASL,IACnDM,KAAKC,QACLD,MAAK,SAAAN,GAAI,OAAIA,KAGtB,SAASwC,EAAWxC,GAChB,OAAOC,MAAMC,QAAOuC,QAAYrC,OAAeC,SAASL,IACnDM,KAAKC,QACLD,MAAK,SAAAN,GAAI,OAAIA,KAGtB,SAAS0C,EAAW1C,GAChB,OAAOC,MAAMC,QAAOyC,QAAYvC,OAAeC,SAASL,IACnDM,KAAKC,QACLD,MAAK,SAAAN,GAAI,OAAIA,KAGtB,SAAS4C,EAAW5C,GAChB,OAAOC,MAAMC,QAAO2C,QAAYzC,OAAeC,SAASL,IACnDM,KAAKC,QACLD,MAAK,SAAAN,GAAI,OAAIA,KAGtB,SAAS8C,EAAW9C,GAChB,OAAOC,MAAMC,QAAO6C,QAAY3C,OAAeC,SAASL,IACnDM,KAAKC,QACLD,MAAK,SAAAN,GAAI,OAAIA,KAGtB,SAASgD,EAAWhD,GAChB,OAAOC,MAAMC,QAAO+C,QAAY7C,OAAeC,SAASL,IACnDM,KAAKC,QACLD,MAAK,SAAAN,GAAI,OAAIA,KAEtB,SAASkD,EAAWlD,GAChB,OAAOC,MAAMC,QAAOiD,QAAY/C,OAAeC,SAASL,IACnDM,KAAKC,QACLD,MAAK,SAAAN,GAAI,OAAIA,KAEtB,SAASoD,EAAWpD,GAChB,OAAOC,MAAMC,QAAOmD,QAAYjD,OAAeC,SAASL,IACnDM,KAAKC,QACLD,MAAK,SAAAN,GAAI,OAAIA,KAEtB,SAASsD,EAAWtD,GAChB,OAAOC,MAAMC,QAAOqD,QAAYnD,OAAeC,SAASL,IACnDM,KAAKC,QACLD,MAAK,SAAAN,GAAI,OAAIA,KAEtB,SAASwD,EAAWxD,GAChB,OAAOC,MAAMC,QAAOuD,QAAYrD,OAAeC,SAASL,IACnDM,KAAKC,QACLD,MAAK,SAAAN,GAAI,OAAIA,KAEf,IAAM0D,EAAgB,CACzB9B,aACAE,aACAE,aACAE,aACAE,aACAE,aACAE,aACAE,aACAE,aACAE,aACAE,aACAE,aACAE,aACAE,aACAE,aACAhC,aACAE,cACA3B,YACAuB,YACAF,cACAJ,aACAE,aACAJ,cACAF,aACAF,aACAF,e,yCC3MJ,IAAImD,EAAS,WAAa,IAAIC,EAAIhI,KAASiI,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,YAAY,CAACE,MAAM,CAAC,KAAOL,EAAIM,qBAAqB,QAAU,GAAI,QAAU,KAAK,QAAU,SAASC,YAAYP,EAAIQ,GAAG,CAAC,CAAC1N,IAAI,UAAU2N,GAAG,WAAW,MAAO,CAACN,EAAG,MAAM,CAACO,YAAY,eAAe,CAACP,EAAG,UAAU,CAACE,MAAM,CAAC,UAAY,QAAQ,KAAO,oBAAoB,KAAO,QAAQF,EAAG,IAAI,CAACQ,YAAY,CAAC,YAAY,QAAQN,MAAM,CAAC,GAAK,iBAAiB,CAACL,EAAIY,GAAG,oBAAoBT,EAAG,eAAe,CAACQ,YAAY,CAAC,YAAY,SAASN,MAAM,CAAC,SAAW,GAAG,GAAK,UAAU,KAAO,QAAQ,IAAML,EAAIa,IAAI,IAAMb,EAAIc,KAAKC,MAAM,CAAClH,MAAOmG,EAAS,MAAEgB,SAAS,SAAUC,GAAMjB,EAAIkB,MAAMD,GAAKE,WAAW,WAAWhB,EAAG,IAAI,CAACH,EAAIY,GAAGZ,EAAIoB,GAAGpB,EAAIkB,OAAO,IAAIlB,EAAIoB,GAAGpB,EAAIc,SAAS,KAAKO,OAAM,MAAS,CAAClB,EAAG,SAAS,CAACA,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACE,MAAM,CAAC,KAAO,OAAO,CAACF,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACE,MAAM,CAAC,KAAO,MAAM,CAACF,EAAG,eAAe,CAACE,MAAM,CAAC,MAAQ,YAAY,CAACF,EAAG,oBAAoB,CAACmB,IAAI,SAASjB,MAAM,CAAC,sBAAqB,EAAK,QAAS,EAAM,MAAQ,QAAQ,wBAAwB,EAAE,kBAAiB,EAAK,cAAa,EAAK,cAAc,CAC3jChP,OAAQ,aACRkQ,WAAY,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACvDC,WAAY,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAC1FC,SAAU,IACXV,MAAM,CAAClH,MAAOmG,EAAI0B,QAAiB,UAAEV,SAAS,SAAUC,GAAMjB,EAAI2B,KAAK3B,EAAI0B,QAAS,YAAaT,IAAME,WAAW,wBAAwB,IAAI,GAAGhB,EAAG,QAAQ,CAACE,MAAM,CAAC,KAAO,MAAM,CAACF,EAAG,eAAe,CAACE,MAAM,CAAC,MAAQ,aAAa,CAACF,EAAG,oBAAoB,CAACmB,IAAI,SAASjB,MAAM,CAAC,sBAAqB,EAAK,QAAS,EAAM,MAAQ,QAAQ,wBAAwB,EAAE,kBAAiB,EAAK,cAAa,EAAK,cAAc,CACtZhP,OAAQ,aACRkQ,WAAY,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACvDC,WAAY,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAC1FC,SAAU,IACXV,MAAM,CAAClH,MAAOmG,EAAI0B,QAAe,QAAEV,SAAS,SAAUC,GAAMjB,EAAI2B,KAAK3B,EAAI0B,QAAS,UAAWT,IAAME,WAAW,sBAAsB,IAAI,GAAGhB,EAAG,QAAQ,CAACE,MAAM,CAAC,KAAO,MAAM,CAACF,EAAG,eAAe,CAACE,MAAM,CAAC,MAAQ,eAAe,CAACF,EAAG,WAAW,CAACE,MAAM,CAAC,MAAQ,QAAQ,QAAUL,EAAI4B,kBAAkB,OAAS,SAAUC,GAAQ,OAAOA,EAAKhI,OAAS,WAAY,EAAK,YAAc,cAAckH,MAAM,CAAClH,MAAOmG,EAAI0B,QAAqB,cAAEV,SAAS,SAAUC,GAAMjB,EAAI2B,KAAK3B,EAAI0B,QAAS,gBAAiBT,IAAME,WAAW,4BAA4B,IAAI,IAAI,IAAI,GAAGhB,EAAG,QAAQ,CAACO,YAAY,SAASL,MAAM,CAAC,KAAO,MAAM,CAACF,EAAG,WAAW,CAACE,MAAM,CAAC,QAAU,UAAU,KAAO,UAAUyB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO/B,EAAIgC,kCAAkC,CAAChC,EAAIY,GAAG,IAAIZ,EAAIoB,GAAGpB,EAAIiC,GAAG,uBAAuB,QAAQ,IAAI,IAAI,GAAG9B,EAAG,SAAS,CAACE,MAAM,CAAC,UAAU,GAAG,iBAAiB,MAAM,CAACF,EAAG,MAAM,CAACA,EAAG,MAAM,CAACO,YAAY,OAAO,CAACP,EAAG,QAAQ,CAACE,MAAM,CAAC,UAAU,WAAW,CAACF,EAAG,QAAQ,CAACE,MAAM,CAAC,GAAK,MAAM,CAACF,EAAG,MAAM,CAACO,YAAY,oBAAoB,CAACP,EAAG,eAAe,CAACE,MAAM,CAAC,MAAQL,EAAIiC,GAAG,+BAA+B,YAAY,eAAe,gBAAgB,MAAM,CAAC9B,EAAG,WAAW,CAACE,MAAM,CAAC,QAAUL,EAAIkC,cAAc,WAAY,GAAOnB,MAAM,CAAClH,MAAOmG,EAAW,QAAEgB,SAAS,SAAUC,GAAMjB,EAAImC,QAAQlB,GAAKE,WAAW,cAAc,IAAI,KAAKhB,EAAG,QAAQ,CAACE,MAAM,CAAC,MAAQ,UAAU,CAACF,EAAG,WAAW,CAACO,YAAY,OAAOL,MAAM,CAAC,QAAU,mBAAmByB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO/B,EAAIoC,kCAAkC,CAACpC,EAAIY,GAAG,sBAAsB,IAAI,IAAI,GAAGT,EAAG,MAAM,CAACA,EAAG,YAAY,CAACE,MAAM,CAAC,KAAOL,EAAIqC,UAAU,QAAU,GAAI,QAAU,OAAO,CAAClC,EAAG,aAAa,CAACmB,IAAItB,EAAIsC,YAAY5B,YAAY,gBAAgBL,MAAM,CAAC,OAAS,IAAI,gBAAe,EAAM,cAAcL,EAAIuC,MAAM,qBAAoB,EAAK,kBAAiB,EAAK,2BAA0B,EAAK,yBAAwB,EAAK,uBAAuB,SAAS,qBAAoB,GAAMhC,YAAYP,EAAIQ,GAAG,CAAC,CAAC1N,IAAI,SAAS2N,GAAG,SAASa,GAC56D,IAAIlF,EAAOkF,EAAIlF,KAC3C,MAAO,CAAC+D,EAAG,WAAW,CAACE,MAAM,CAAC,QAAU,WAAWyB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO/B,EAAIwC,0BAA0BpG,EAAKA,SAAS,CAAC4D,EAAIY,GAAG,wBAAwB,CAAC9N,IAAI,aAAa2N,GAAG,SAASa,GACrK,IAAIlF,EAAOkF,EAAIlF,KAC3C,MAAO,CAAEA,EAAKA,KAAc,UAAE+D,EAAG,MAAM,CAACH,EAAIY,GAAG,IAAIZ,EAAIoB,GAAGpB,EAAIyC,WAAWrG,EAAKA,KAAKsG,UAAU,qBAAqB,OAAO1C,EAAI2C,QAAQ,CAAC7P,IAAI,WAAW2N,GAAG,SAASa,GACrI,IAAIlF,EAAOkF,EAAIlF,KAC3C,MAAO,CAAEA,EAAKA,KAAY,QAAE+D,EAAG,MAAM,CAACH,EAAIY,GAAG,IAAIZ,EAAIoB,GAAGpB,EAAIyC,WAAWrG,EAAKA,KAAKwG,QAAQ,qBAAqB,OAAO5C,EAAI2C,QAAQ,CAAC7P,IAAI,cAAc2N,GAAG,SAASa,GACpI,IAAIlF,EAAOkF,EAAIlF,KAC3C,MAAO,CAAEA,EAAKA,KAAe,WAAE+D,EAAG,MAAM,CAACH,EAAIY,GAAG,IAAIZ,EAAIoB,GAAGpB,EAAIyC,WAAWrG,EAAKA,KAAKyG,WAAW,eAAe,OAAO7C,EAAI2C,QAAQ,CAAC7P,IAAI,aAAa2N,GAAG,SAASa,GACnI,IAAIlF,EAAOkF,EAAIlF,KAC3C,MAAO,CAAC+D,EAAG,MAAM,CAACH,EAAIY,GAAG,IAAIZ,EAAIoB,IAAI,IAAIrP,KAAKqK,EAAKA,KAAKwG,SAAW,IAAI7Q,KAAKqK,EAAKA,KAAKsG,YAAY,KAAM,UAAU,CAAC5P,IAAI,iBAAiB2N,GAAG,SAASa,GACxH,IAAIlF,EAAOkF,EAAIlF,KAC3C,MAAO,CAAC+D,EAAG,MAAM,CAA6B,aAA3B/D,EAAKA,KAAK0G,cAA8B3C,EAAG,OAAO,CAACH,EAAIY,GAAG,kBAAkBZ,EAAI2C,KAAiC,iBAA3BvG,EAAKA,KAAK0G,cAAkC3C,EAAG,OAAO,CAACH,EAAIY,GAAG,gBAAgBZ,EAAI2C,aAAa,CAAC3C,EAAI+C,GAAI/C,EAAe,aAAE,SAAS6B,EAAKpO,GAAG,MAAuB,UAAdoO,EAAKmB,OAAqBnB,EAAKoB,OAAe9C,EAAG,WAAW,CAACrN,IAAIW,EAAEuP,MAAM3C,MAAM,CAAC,QAAUwB,EAAKqB,QAAQ,aAAarB,EAAKmB,MAAM,YAAYnB,EAAKpL,KAAK,kBAAiBoL,EAAiB,cAAIA,EAAKsB,aAAqB,UAAYtB,EAAKuB,UAAU,MAAQvB,EAAKwB,MAAM,gBAAgBxB,EAAKyB,aAAa,qBAAqBzB,EAAK0B,iBAAiB,iBAAiB1B,EAAK2B,gBAAgBxD,EAAI+C,GAAIlB,EAAU,OAAE,SAAS4B,EAAKC,GAAG,OAAQD,EAAKR,QAAUpB,EAAK8B,MAAM/R,OAAS,EAAGuO,EAAG,WAAW,CAACrN,IAAI2Q,EAAKT,MAAM3C,MAAM,CAAC,QAAUoD,EAAKP,QAAQ,aAAaO,EAAKT,MAAM,YAAYS,EAAKhN,KAAK,sBAAsBuJ,EAAI4D,WAAW,kBAAiBH,EAAiB,cAAIA,EAAKN,aAAqB,UAAYM,EAAKL,UAAU,MAAQvB,EAAKwB,MAAM,gBAAgBxB,EAAKyB,aAAa,qBAAqBzB,EAAK0B,oBAAoBvD,EAAI2C,QAAO,GAAG3C,EAAI2C,QAAOxC,EAAG,cAAc,CAACE,MAAM,CAAC,kBAAkBL,EAAI6D,QAAQ,wBAAwB7D,EAAI8D,eAAe,KAAO,cAAc3D,EAAG,iBAAiB,CAACE,MAAM,CAAC,SAAU,KAAQF,EAAG,eAAe,CAACE,MAAM,CAAC,SAAU,KAASF,EAAG,WAAW,CAACE,MAAM,CAAC,YAAYL,EAAImC,WAAWhC,EAAG,UAAU,CAACE,MAAM,CAAC,SAAU,EAAK,eAAe,OAAO,aAAY,MAAS,IAAI,IAAI,QAAQ,IAAI,IAC74C0D,EAAkB,G,gHCsPtBzB,EAAA,WACe,GACf0B,WAAA,CACAC,qBACAC,2BACAC,uBACAC,yBACAC,6BACAC,mCACAC,+BACAC,2BACAC,6BACAC,uBACAC,qBACAC,yBACAC,uBACAC,6BACAC,6BACAC,mCACAC,2CACAC,6BACAC,mCACAC,iCACAC,qCACAC,mCACAC,6BACAC,wBAEApJ,KAAA,WACA,OACAkG,cACAZ,QAAA,CACA+D,UAAA,KAAAC,OAAA,eACAC,QAAA,KAAAD,OAAA,eACA5C,cAAA,MAEAlB,kBAAA,CACA,CACAgE,MAAA,aACA/L,MAAA,aAEA,CACA+L,MAAA,WACA/L,MAAA,kBAGAgM,YAAA,EACA1D,QAAA,GACAD,cAAA,YACA2B,QAAA,WACAC,eAAA,UACAgC,YAAA,CACA,CACA5C,QAAA,OACAF,MAAA,aACAC,QAAA,EACAG,UAAA,SACAD,aAAA,cACAE,MAAA,MAEA,CACAH,QAAA,oBACAF,MAAA,YACAG,aAAA,aACAF,QAAA,EACAG,UAAA,SACAC,MAAA,OAEA,CACAH,QAAA,qBACAF,MAAA,UACAG,aAAA,WACAF,QAAA,EACAG,UAAA,SACAC,MAAA,OAEA,CACAH,QAAA,wBACAF,MAAA,GACAG,aAAA,aACAF,QAAA,EACAG,UAAA,SACAC,MAAA,OAEA,CACAH,QAAA,aACAF,MAAA,gBACAC,QAAA,EACAE,aAAA,iBACAC,UAAA,SACAC,MAAA,OAEA,CACAH,QAAA,mBACAF,MAAA,mBACAC,QAAA,EACAG,UAAA,SACAC,MAAA,OAEA,CACAH,QAAA,cACAF,MAAA,eACAC,QAAA,EACAG,UAAA,SACAC,MAAA,OAEA,CACAH,QAAA,GACAF,MAAA,SACAC,QAAA,EACAE,aAAA,SACAE,MAAA,MACAD,UAAA,WAGAb,MAAA,KACAF,WAAA,EACA0D,iBAAA,GACAlF,IAAA,KACAC,IAAA,KACAI,MAAA,KACAZ,sBAAA,IAGA0F,QAAA,WACA,KAAAhE,gCAEAiE,SAAA,CACAC,SAAA,WACA,YAAAC,MAAA7D,GAAA8D,WAGAC,QAAA,CACArE,6BAAA,eAAAsE,EAAA,YAAAC,eAAAC,iBAAAC,MAAA,SAAAC,IAAA,OAAAF,iBAAAG,MAAA,SAAAC,GAAA,eAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACA,OAAAR,EAAAjE,WAAA,EAAAuE,EAAAE,KAAA,EACAhH,OAAAV,WAAAkH,EAAA5E,SAAAhF,MAAA,SAAAqK,GACAT,EAAA/D,MAAAwE,EAAAC,KAAAC,eACAX,EAAAjE,WAAA,KACA,wBAAAuE,EAAAM,UAAAR,MALAH,IAOA/D,0BAAA,SAAApG,GAAA,IAAA+K,EAAA,YAAAZ,eAAAC,iBAAAC,MAAA,SAAAW,IAAA,IAAAC,EAAA/V,EAAAgW,EAAA,OAAAd,iBAAAG,MAAA,SAAAY,GAAA,eAAAA,EAAAV,KAAAU,EAAAT,MAAA,OAaA,OAZAO,EAAAF,EAAAK,eACAL,EAAA9E,WAAA,EACA/Q,EAAA6V,EAAAM,MAAArL,EAAAyG,YAAA6E,MAAAC,GAAAC,aAAAC,QAAA,aACAC,KAAA,EAAAF,aAAAC,QAAA,6BACAxW,OAAA,uBACAiW,EAAA,CACA7B,UAAAnU,EAAA,IACAyW,WAAAzW,EAAA,IACAqU,QAAArU,EAAA,IACA0W,SAAA1W,EAAA,IACA2W,gBAAAZ,EACAa,gBAAA,IACAX,EAAAT,KAAA,EACAhH,OAAAZ,WAAAoI,GAAA5K,KAAA,eAAAyL,EAAA5B,eAAAC,iBAAAC,MAAA,SAAA2B,EAAArB,GAAA,OAAAP,iBAAAG,MAAA,SAAA0B,GAAA,eAAAA,EAAAxB,KAAAwB,EAAAvB,MAAA,cAAAuB,EAAAvB,KAAA,EACAhH,OAAA5C,YAAA,CACAnL,KAAAT,IACA,cAAA+W,EAAAvB,KAAA,EACAhH,OAAAtC,YAAA8J,GAAA,OACAH,EAAAmB,aAAAvB,GACAI,EAAAnF,+BACAmF,EAAA9E,WAAA,0BAAAgG,EAAAnB,UAAAkB,OACA,gBAAAG,GAAA,OAAAJ,EAAArR,MAAA,KAAAoB,YARA,IAQA,wBAAAqP,EAAAL,UAAAE,MAtBAb,IAwBAnE,6BAAA,eAAAoG,EAAA,YAAAjC,eAAAC,iBAAAC,MAAA,SAAAgC,IAAA,IAAAhV,EAAA4T,EAAA/V,EAAAgW,EAAA,OAAAd,iBAAAG,MAAA,SAAA+B,GAAA,eAAAA,EAAA7B,KAAA6B,EAAA5B,MAAA,OACA,GAAA0B,EAAAG,oBACAH,EAAAzC,iBAAAnU,OAAA,IAAA8W,EAAA5B,KAAA,SAEA0B,EAAA3H,IAAA,EACA2H,EAAA1H,IAAA0H,EAAAzC,iBAAAnU,OACA4W,EAAAtH,MAAA,EACAsH,EAAAlI,sBAAA,EACA7M,EAAA,cAAAA,EAAA+U,EAAA1H,KAAA,CAAA4H,EAAA5B,KAAA,SAYA,OAXAO,EAAAmB,EAAAhB,eACAlW,EAAAkX,EAAAf,MAAAe,EAAAzC,iBAAAtS,GAAAoP,YAAA6E,MAAAC,GAAAC,aAAAC,QAAA,aACAC,KAAA,EAAAF,aAAAC,QAAA,6BACAxW,OAAA,uBACAiW,EAAA,CACA7B,UAAAnU,EAAA,IACAyW,WAAAzW,EAAA,IACAqU,QAAArU,EAAA,IACA0W,SAAA1W,EAAA,IACA2W,gBAAAZ,EACAa,gBAAA,IACAQ,EAAA5B,KAAA,GACAhH,OAAAZ,WAAAoI,GAAA5K,KAAA,eAAAkM,EAAArC,eAAAC,iBAAAC,MAAA,SAAAoC,EAAA9B,GAAA,OAAAP,iBAAAG,MAAA,SAAAmC,GAAA,eAAAA,EAAAjC,KAAAiC,EAAAhC,MAAA,cAAAgC,EAAAhC,KAAA,EACAhH,OAAA5C,YAAA,CACAnL,KAAAT,IACA,cAAAwX,EAAAhC,KAAA,EACAhH,OAAAtC,YAAA8J,GAAA,OACAkB,EAAAtH,OAAA,EACAsH,EAAAtH,QAAAsH,EAAA1H,MACA0H,EAAAlI,sBAAA,EACAkI,EAAAO,UAAA,UAAAP,EAAAvG,GAAA,wBACAuG,EAAAxG,gCACA,wBAAA8G,EAAA5B,UAAA2B,OACA,gBAAAG,GAAA,OAAAJ,EAAA9R,MAAA,KAAAoB,YAXA,IAWA,QAxBAzE,IAAAiV,EAAA5B,KAAA,gBAAA4B,EAAA5B,KAAA,iBA2BA0B,EAAAO,UAAA,wEAAAL,EAAAxB,UAAAuB,MAnCAlC,IAsCAoC,gBAAA,WACA,KAAA5C,iBAAA,KAAAG,SAAA+C,uBAEAzB,aAAA,WACA,IAAA0B,GAAA,IAAAnX,MAAAgK,UACAoN,EAAA,qBAAAC,yBAAAC,KAAA,IAAAD,YAAAC,OAAA,EACA,6CAAAlW,QAAA,kBAAAmW,GACA,IAAAC,EAAA,GAAAC,KAAAC,SAQA,OAPAP,EAAA,GACAK,GAAAL,EAAAK,GAAA,KACAL,EAAAM,KAAAE,MAAAR,EAAA,MAEAK,GAAAJ,EAAAI,GAAA,KACAJ,EAAAK,KAAAE,MAAAP,EAAA,MAEA,MAAAG,EAAAC,EAAA,EAAAA,EAAA,GAAAI,SAAA,UCte4X,I,wBCQxXC,EAAY,eACd,EACA7J,EACAgE,GACA,EACA,KACA,KACA,MAIa,aAAA6F,E,6CCnBf,W,kCCQA,SAASC,EAAQtV,EAAM3C,GACnB,MAAO2C,EAAK3C,OAASA,EACjB2C,EAAO,IAAMA,EAEjB,OAAOA,EAZX,kCAcA,IAAIuV,EAAe,CACfC,EAAG,cACHC,EAAG,OACHC,EAAG,UAEHC,EAAkB,CAClBC,EAAG,SAAS7Y,EAAM8Y,EAAOC,GACrB,IAAI7Y,EAAOF,EAAK+Y,EAAS,iBAAmB,iBAI5C,OAHI,IAAMD,IACN5Y,GAAQ,KAELqY,EAAQrY,EAAKmY,WAAYS,IAEpCE,EAAG,SAAShZ,EAAM8Y,EAAOC,EAAQ7R,GAC7B,IAAI3D,EAAQvD,EAAK+Y,EAAS,cAAgB,cACtCtS,EAAa+R,EAAaM,GAC9B,OAAIrS,EACOS,EAAUhC,cAAcuB,EAAY,UAAUlD,GAElDgV,GAAShV,EAAQ,GAAG8U,WAAYH,KAAK3I,IAAIuJ,EAAO,KAE3DG,EAAG,SAASjZ,EAAM8Y,EAAOC,EAAQ7R,GAC7B,IAAI3D,EAAQvD,EAAK+Y,EAAS,cAAgB,cACtCtS,EAAa+R,EAAaM,GAC9B,OAAIrS,EACOS,EAAUhC,cAAcuB,EAAY,cAAclD,GAEtDgV,GAAShV,EAAQ,GAAG8U,WAAYH,KAAK3I,IAAIuJ,EAAO,KAE3DI,EAAG,SAASlZ,EAAM8Y,EAAOC,EAAQ7R,GAC7B,IAAI3D,EAAQvD,EAAK+Y,EAAS,cAAgB,cACtC/P,EAAUkP,KAAKE,MAAM7U,EAAQ,GAC7BkD,EAAa+R,EAAaM,GAC9B,OAAIrS,EACOS,EAAU0C,gBAAgBnD,GAAYuC,GAE1CuP,GAASvP,EAAU,GAAGqP,WAAYH,KAAK3I,IAAIuJ,EAAO,KAE7DK,EAAG,SAASnZ,EAAM8Y,EAAOC,EAAQ7R,GAC7B,IAAI/D,EAAMnD,EAAK+Y,EAAS,YAAc,YAClCtS,EAAa+R,EAAaM,EAAQ,EAAI,EAAIA,GAC9C,OAAO5R,EAAUxB,YAAYe,GAAYtD,IAE7CsF,EAAG,SAASzI,EAAM8Y,EAAOC,EAAQ7R,GAC7B,IAAIjB,EAAQjG,EAAK+Y,EAAS,cAAgB,cACtCK,EAASnT,EAAQ,GAAK,EAAI,EAC1BQ,EAAa+R,EAAaM,GAC9B,OAAO5R,EAAUpB,eAAeW,GAAY2S,IAEhDxB,EAAG,SAAS5X,EAAM8Y,EAAOC,GACrB,OAAOR,EAAQvY,EAAK+Y,EAAS,aAAe,aAAaV,WAAYH,KAAK3I,IAAIuJ,EAAO,KAEzFO,EAAG,SAASrZ,EAAM8Y,EAAOC,GACrB,OAAOR,EAAQvY,EAAK+Y,EAAS,cAAgB,cAAcV,WAAYH,KAAK3I,IAAIuJ,EAAO,KAE3FQ,EAAG,SAAStZ,EAAM8Y,EAAOC,GACrB,IAAI9S,EAAQjG,EAAK+Y,EAAS,cAAgB,cAC1C,OAAOR,GAAStS,EAAQ,IAAM,IAAIoS,WAAYH,KAAK3I,IAAIuJ,EAAO,KAElES,EAAG,SAASvZ,EAAM8Y,EAAOC,GACrB,OAAOR,EAAQvY,EAAK+Y,EAAS,gBAAkB,gBAAgBV,WAAYH,KAAK3I,IAAIuJ,EAAO,KAE/FU,EAAG,SAASxZ,EAAM8Y,EAAOC,GACrB,OAAOR,EAAQvY,EAAK+Y,EAAS,gBAAkB,gBAAgBV,WAAYH,KAAK3I,IAAIuJ,EAAO,KAE/FW,EAAG,SAASzZ,EAAM8Y,EAAOC,GACrB,OAAOR,EAAQvY,EAAK+Y,EAAS,qBAAuB,qBAAqBV,WAAY,GAAGqB,OAAO,EAAGZ,IAEtGa,EAAG,SAAS3Z,EAAM8Y,EAAOC,GACrB,IAAIa,EAAiBb,EAAS,EAAI/Y,EAAK6Z,oBACnCC,EAAWF,EAAiB,EAAI,IAAM,IACtCG,EAAoB7B,KAAK8B,IAAIJ,GAC7B3T,EAAQiS,KAAKE,MAAM2B,EAAoB,IACvCtS,EAAUsS,EAAoB,GAC9BE,EAAY1B,EAAQtS,EAAMoS,WAAY,GACtC6B,EAAc3B,EAAQ9Q,EAAQ4Q,WAAY,GAC9C,OAAOyB,EAAWG,GAAanB,GAAS,EAAI,IAAM,KAAOA,EAAQ,GAAKrR,EAAUyS,EAAc,KAElGC,EAAG,SAASna,EAAM8Y,EAAOC,GACrB,OAAIA,IAAW/Y,EAAK6Z,oBACT,IAEJjB,EAAgBe,EAAE3Z,EAAM8Y,EAAOC,IAE1CqB,EAAG,SAASpa,EAAM8Y,EAAOC,GACrB,OAAOH,EAAgBuB,EAAEna,EAAM8Y,GAAS,EAAI,EAAI,EAAGC,KAGhDxX,EAAe,SAASxB,EAAQmH,GACvC,OAAO,SAASlH,GACZ,IAAIqa,EACA9T,EACA+T,EAGAC,EAFAC,EAAY,EACZC,GAAa,EAEb9U,EAAS,GACb,IAAK3F,EACD,OAAO,KAEX,IAAKD,EACD,OAAOC,EAEX,IAAI+Y,EAAS,MAAQhZ,EAAOA,EAAOO,OAAS,IAAM,QAAUP,EAAO2a,OAAO,GAC1E,IAAKL,EAAY,EAAGA,EAAYta,EAAOO,OAAQ+Z,IAC3CC,EAAOva,EAAOsa,GACd9T,EAAYqS,EAAgB0B,GAC5BC,EAA0BD,IAASva,EAAOsa,EAAY,GACtDG,IACKD,IACGhU,IAAckU,IACd9U,GAAUY,EAAUvG,EAAMwa,EAAWzB,EAAQ7R,IAEjDsT,EAAY,GAEZ,MAAQF,GAASC,GAEVE,GAAelU,IACtBZ,GAAU2U,GAFVG,GAAcA,EAId,MAAQH,GAAQC,GAChBF,IAGR,OAAO1U,K,oCC1If,gQA0DIgV,EAAoC,wBACpCC,EAA8B,2BAC9BC,EAA8B,2BAC9BC,EAAwB,qBACxBC,EAAgB,SAChBC,EAA0B,WAC1BC,EAAyB,UACzBC,EAAwB,uBACxBC,EAAwB,iBACxBC,EAA4B,6BAC5BC,EAA0B,CAC1Bnb,KAAM,SAASqI,GACX,OAAOA,GAASA,EAAMpI,eAE1BoD,MAAO,SAASgF,GACZ,OAAOA,GAASA,EAAM5H,WAAa,GAEvCwC,IAAK,SAASoF,GACV,OAAOA,GAASA,EAAM3H,WAE1BoI,QAAS,SAAST,GACd,OAAOA,GAAS2P,KAAKE,MAAM7P,EAAM5H,WAAa,GAAK,GAEvD8C,KAAM,SAAS8E,GACX,OAAOA,GAASA,EAAM1H,YAE1B6C,OAAQ,SAAS6E,GACb,OAAOA,GAASA,EAAMzH,cAE1B6C,OAAQ,SAAS4E,GACb,OAAOA,GAASA,EAAMxH,eAG1Bua,EAAsB,WACtB,IAAIxQ,EAAOlE,UAAU,GACjB2B,EAAQ7B,KAAK6U,mBAAmBzQ,GACpC,IAAK,eAAUvC,GACX,OAAO,KACJ,GAAIiT,EAAW9U,KAAK+U,UAAW,CAClC,IAAIC,EAAuB9U,UAAU,GACrC,OAAOyU,EAAwBK,GAAsBnT,GAClD,GAAI,WAAa7B,KAAK+U,SAAU,CACnC,IAAIE,EAAgB/U,UAAU,GAC9B,OAAOsR,KAAKE,MAAMwD,OAAOrT,GAASoT,GAAiBA,IAGvDE,EAAiB,SAASC,EAAWC,GACrC,OAAI,eAAWD,IAAc,eAAWC,IAChCD,EAAUE,kBAAoBD,EAAUC,iBACjCF,EAAUE,mBAAqBD,EAAUC,kBAAoBF,EAAUG,cAAgBF,EAAUE,YAGzGH,IAAcC,GAGzB,SAASP,EAAWC,GAChB,MAAO,SAAWA,GAAY,aAAeA,EAEjD,IAAIS,EAAe,SAASC,GACxBA,EAAW/X,IAAI,GAAGgY,YAAc,KAEhCC,EAAuB,SAAS7T,GAChCA,EAAOA,GAAQ,GAEf,IADA,IAAI7C,EAAS,kCAA4B6C,GAChCrG,EAAI,EAAGA,EAAIqG,EAAKlI,OAAQ6B,IACzBqG,GAAQA,EAAKrG,SAAM,IAAWqG,EAAKrG,GAAGma,aACtC3W,EAAOxD,GAAGma,WAAa9T,EAAKrG,GAAGma,YAE/B9T,GAAQA,EAAKrG,SAAM,IAAWqG,EAAKrG,GAAGwZ,gBACtChW,EAAOxD,GAAGwZ,cAAgBnT,EAAKrG,GAAGwZ,eAG1C,OAAOhW,GAEP4W,EAAc,SAAShU,EAAOiU,GAC9B,IAAIC,EAAY,OAAa1c,OAAOwI,EAAOiU,EAAQzc,SAAWwI,GAASA,EAAM8P,YAAc,GACvFqE,EAAe,CACfnU,MAAOA,EACPkU,UAAWD,EAAQG,iBAAmBH,EAAQG,iBAAiBF,GAAaA,EAC5EG,OAAQJ,EAAQI,QAAU,MAC1BjB,cAAea,EAAQb,eAE3B,OAAOa,EAAQK,cAAgBL,EAAQK,cAAcC,KAAKN,EAASE,GAAgBA,EAAaD,WAEhGM,EAAiB,SAASC,EAAaC,GACvC,IAAIC,EAAgBF,EAAYE,eAAiBF,EAAYG,eAAiBF,EAAaD,EAAYI,YAAc,gBAAkBH,EAAaD,EAAYI,aAChK,OAAOb,EAAYS,EAAYzU,MAAO,CAClCxI,OAAQid,EAAYK,YACpBV,iBAAkB,SAASF,GACvB,OAAOS,EAAgB,eAAOA,EAAeT,EAAWO,EAAYG,eAAiBV,GAEzFI,cAAeG,EAAYH,iBAG/BS,EAAoB,SAASC,GAC7B,IAAIC,EAAaD,EAASzS,MAAQyS,EAASzS,OACvC2S,EAAeD,GAAcA,EAAWC,aACxCC,EAAaD,GAAgBA,EAAa,GAC9C,OAAOC,GAAcF,EAAWE,IAEhCC,EAAwB,SAASA,EAAsBC,EAASC,GAChE,GAAItY,MAAMuY,QAAQF,IAAYrY,MAAMuY,QAAQD,GAAU,CAClD,GAAID,EAAQtd,SAAWud,EAAQvd,OAC3B,OAAO,EAEP,IAAK,IAAI6B,EAAI,EAAGA,EAAIyb,EAAQtd,OAAQ6B,IAChC,IAAKwb,EAAsBC,EAAQzb,GAAI0b,EAAQ1b,IAC3C,OAAO,EAInB,OAAO,EACJ,OAAI,eAAWyb,IAAYA,EAAQ3B,aAAe,GAAK,eAAW4B,IAAYA,EAAQ5B,aAAe,EACjG2B,EAAQ3B,cAAgB4B,EAAQ5B,aAAe,eAAa2B,EAAQG,eAAiB,eAAaF,EAAQE,aAE1G,eAAaH,IAAY,eAAaC,IAIrD,SAASG,EAA6BC,GAIlC,OAHK1Y,MAAMuY,QAAQG,KACfA,EAAQ,CAACA,IAENA,EAAMzb,IAAI,CAAC+N,EAAMpO,IAChB,eAASoO,GACF,CACH2N,SAAU3N,EACV+L,WAAYna,EAAI8b,EAAM3d,OAAS,GAGhCiQ,GAGA,QACX4N,iBAAkB,SAASZ,GAEvB,GADAA,EAAWA,GAAY7W,KAAK0X,UACvBb,EAAL,CAGA,IAAIc,EAAc3X,KAAK4X,gBAAgBvD,GACnCwD,EAAgBhB,EAASiB,KAAK,IAAMH,GAAaI,OACjDC,EAAYhY,KAAKiY,gBAAgBC,UACjC7N,EAAYrK,KAAKiY,gBAAgB5N,YAChCwN,EAAcje,SACfie,EAAgB,eAAE,UAAUM,SAASR,GAAaS,SAASvB,IAE3DmB,IAAc3N,EACdwN,EAAcQ,YAAY,aAAa9b,KAAKyD,KAAKsY,kBAEjDT,EAAcM,SAAS,eAG/BI,gBAAiB,SAAS1B,EAAUpB,EAAY+C,GAC5C,IAAIC,EACJzY,KAAK0Y,YAAc1Y,KAAK0Y,WAAW7B,WAAW8B,SAC9CF,EAAmBzY,KAAK4Y,OAAO,aAC3BH,IAAqB,SAAWA,EAAiBI,SAAWL,EAAeC,EAAiBI,UAC5FJ,EAAmB,oBAAO,CACtBK,SAAS,EACTC,QAASN,EAAiBlc,KAC1Byc,UAAWvD,GACZgD,GACHzY,KAAK0Y,WAAa1Y,KAAKiZ,iBAAiB,eAAE,SAASb,SAAS3C,GAAa,OAAWgD,IAEpFzY,KAAK0Y,WAAa,MAG1B,2BAA2B7B,GACvB,IAAIqC,EAAU,eAAE,kBAChB,OAAI,eAAUrC,GAAY,eAAUqC,GACzB,CACHC,GAAID,EACJE,SAAUvC,EACVwC,UAAW,OAGZ,CACHF,GAAItC,IAGZyC,cAAe,SAASxe,EAAKyP,EAAOgP,GAChC,IAAInY,GAAS,EACb,QAAI,IAAWtG,GAAO+D,MAAMuY,QAAQ7M,GAAQ,CACxCgP,EAAUrZ,UAAUtG,QAAU,EAAI,MAAQ2f,EAC1C,IAAK,IAAI9d,EAAI,EAAGA,EAAI8O,EAAM3Q,OAAQ6B,IAAK,CACnC,IAAIoO,EAAO,eAAU0P,GAAWhP,EAAM9O,GAAG8d,GAAWhP,EAAM9O,GAC1D,GAAI,eAAaX,EAAK+O,GAAO,CACzBzI,EAAQ3F,EACR,QAIZ,OAAO2F,GAEXoY,eAAgB,SAASC,EAASC,GAC9B,IAAIC,EAAe,GACnBD,EAAYA,GAAa,MACzB,IAAK,IAAIje,EAAI,EAAGA,EAAIge,EAAQ7f,OAAQ6B,IAAK,CACrC,IAAIme,EACJ,GAAKH,EAAQhe,GAAb,CAGA,GAAI,KAAO,QAAUme,EAAaH,EAAQhe,UAAO,IAAWme,OAAa,EAASA,EAAWhgB,SAAW,MAAQ6f,EAAQhe,GAAG,GAAI,CAC3H,GAAI,QAAUie,EACV,MAAO,CAAC,KACL,GAAI,OAASA,EAChB,SAGJC,EAAa/f,QACb+f,EAAa1W,KAAKyW,GAEtBC,EAAa1W,KAAKwW,EAAQhe,KAK9B,GAHI,IAAMke,EAAa/f,SACnB+f,EAAeA,EAAa,IAE5BA,EAAa/f,OACb,OAAO+f,GAGfE,aAAc,SAASC,EAASC,GAE5B,IADA,IAAIC,EAA8B,EACzBve,EAAI,EAAGA,EAAIse,EAAYngB,OAAQ6B,IAChCqe,EAAQC,EAAYte,KACpBue,IAGR,OAAOF,EAAQlgB,QAAUkgB,EAAQlgB,SAAWogB,GAEhD/C,sBAAuBA,EACvBgD,YAAa,SAAS7L,EAAU8L,EAAYC,GACnC/L,EAAS8L,KACV9L,EAAS8L,GAAc,WACnB,IAAIE,EAAapa,KAAKqa,YACtB,OAAOD,EAAaA,EAAWF,GAAYpb,MAAMsb,EAAYla,WAAaia,KAItFtE,YAAaA,EACbyE,yBAA0B,SAASC,EAAQrE,GACvC,MAAO,CACH7c,OAAQkhB,EAAOlhB,OACf4c,iBAAkBsE,EAAOtE,iBACzBE,cAAeoE,EAAOpE,cACtBD,OAAQA,EACRsE,SAAUD,EAAOC,SACjBC,UAAWF,EAAOE,YAG1BC,gBAAiB,SAASH,EAAQ1Y,EAAOuC,EAAMuW,GAC3C,OAAIJ,EAAOK,sBAAmB,IAAWL,EAAOK,gBAAgB/Y,GACrD0Y,EAAOK,gBAAgB/Y,GACvB0Y,EAAOM,uBAAyBzW,GAAQ,UAAYuW,EACpDJ,EAAOM,sBAAsBzW,IAC7BmW,EAAOO,QAAY,UAAYH,IAAYJ,EAAOQ,qBAAuBR,EAAOM,uBAGpFhZ,EAFI0Y,EAAOO,OAAOjG,mBAAmBhT,IAIhDmZ,uBAAwB,SAASC,EAAc1E,GAE3C,IADA,IAAItX,EAAS,IACJxD,EAAI,EAAGA,EAAIwf,EAAarhB,OAAQ6B,IAAK,CAC1C,IAAI6a,EAAc2E,EAAaxf,GAC/BwD,IAAWxD,EAAI,EAAI,KAAO,IAAM4a,EAAeC,EAAaC,GAEhE,OAAOtX,EAAS,KAEpBoX,eAAgBA,EAChBV,qBAAsBA,EACtBuF,oBAAqB,SAASnG,GAC1B,OAAQA,GACJ,IAAK,OACD,MAAO,YACX,IAAK,WACD,MAAO,uBAGnBoG,+BAAgC,SAASZ,EAAQa,GAC7C,IAAInc,EAAS,GACToc,EAAYd,EAAOc,WAAad,EAAO3Y,KACvCqT,EAAgB,OAAgBqG,iBAAiBf,GACrD,OAAItF,GACA,eAAKA,GAAe,SAAU7T,EAAOma,GACjCtc,EAAOgE,KAAKmY,EAAiB,CACzB5D,SAAU6D,EACVpG,cAAesG,EACf3F,WAAYxU,EAAQ6T,EAAcrb,OAAS,GAC3Cgb,EAAoB4G,KAAKjB,EAAQgB,OAElCtc,IAEPmc,EACAnc,EAAS,CAAC,CACNuY,SAAU6D,EACVzF,YAAY,KAGhB3W,EAAS,SAASmF,GACd,IAAInF,EAASsb,EAAO1F,mBAAmBzQ,GAIvC,YAHI,IAAWnF,GAAU,KAAOA,IAC5BA,EAAS,MAENA,GAEPsb,EAAOkB,gBACPxc,EAAS,CAAC,CACNuY,SAAUvY,EACVyc,QAASnB,EAAOkB,cAAcD,KAAKjB,OAIxCtb,IAEX,oBAAoB0c,EAAiBC,EAAiBC,GAGlD,GAFAF,EAAkBhG,EAAqBgG,GACvCC,EAAkBjG,EAAqBiG,GACnC/c,MAAMuY,QAAQuE,IAAoB9c,MAAMuY,QAAQwE,GAAkB,CAClE,GAAID,EAAgB/hB,SAAWgiB,EAAgBhiB,OAC3C,OAAO,EAEP,IAAK,IAAI6B,EAAI,EAAGA,EAAIkgB,EAAgB/hB,OAAQ6B,IACxC,IAAK0Z,EAAewG,EAAgBlgB,GAAG+b,SAAUoE,EAAgBngB,GAAG+b,WAAamE,EAAgBlgB,GAAGqgB,OAASF,EAAgBngB,GAAGqgB,MAAQH,EAAgBlgB,GAAGwZ,gBAAkB2G,EAAgBngB,GAAGwZ,gBAAkB4G,GAAoBE,QAAQJ,EAAgBlgB,GAAGma,cAAgBmG,QAAQH,EAAgBngB,GAAGma,YACxS,OAAO,EAInB,OAAO,EAEP,QAAS+F,IAAoBA,EAAgB/hB,YAAcgiB,IAAoBA,EAAgBhiB,SAGvGoiB,mBAAoB,SAASzR,EAAO0R,EAAcC,EAAYC,GAQ1D,IAPA,IAEItS,EACAuS,EAGAC,EANAC,EAAc/R,EAAM3Q,OACpB2iB,GAAiB,EAGjBhH,EAAc4G,GAAoB,EAClCld,EAAS,GAEJxD,EAAI,EAAGA,GAAK6gB,EAAa7gB,IAAK,CAC/BA,EAAI6gB,IACJzS,EAAOU,EAAMiS,GAAG/gB,GAChB2gB,EAASvS,EAAKuS,SACdC,EAAa,QAAUxS,EAAK4S,IAAI,cAEpC,IAAIC,EAAQ,CACRtb,MAAOmU,EACPtC,EAAGmJ,EAASA,EAAOO,OAAST,GAAcG,EAAa5gB,IAAM6gB,EAAc,eAAgBzS,EAAK,IAAIwB,MAAQ,GAAK,EACjH8G,EAAGiK,EAASA,EAAOQ,KAAOV,GAAczgB,IAAM6gB,EAAc,eAAgBzS,EAAK,IAAIgT,OAAS,GAAK,EACnGtH,YAAaA,GAEjB,IAAK2G,GAAczgB,EAAI,EAAG,CACtB,IAAIqhB,EAAiBvS,EAAMiS,GAAG/gB,EAAI,GAAG2gB,SACjCU,EAAeF,IAAMF,EAAMvK,IAC3BuK,EAAMvK,EAAI2K,EAAeF,KAG7BX,IACAM,EAAiBN,EAAaS,IAE7BH,GACDtd,EAAOgE,KAAKyZ,GAEhBnH,IAEJ,OAAOtW,GAEX8d,sBAAuB,WACnB,MAAO,CACHC,gCAAgC,EAChCjV,OAAQ,SAASiR,EAAWlD,GACxB,IAAIL,EAAa,eAAEuD,GACnB,IAAI,eAAUlD,EAAQjU,QAAYiU,EAAQ1R,MAAQ0R,EAAQ1R,KAAK6Y,gBAAoBnH,EAAQoH,IAAIC,SAM3F3H,EAAaC,OANwF,CACrG,IAAI2H,EAAWtH,EAAQlE,UAAUyL,QAAQ,YACzC5H,EAAW0C,SAAS/D,GAAuB+D,SAASlE,GACpD,eAAE,SAASkE,SAASrC,EAAQjU,MAAQqS,EAA8BC,GAA6BiE,SAAS3C,GACxG2H,EAASE,QAAQ,QAASxH,EAAQjU,MAAQub,EAASG,SAAS,2BAA6BH,EAASG,SAAS,yBAA0B9H,OAOrJD,aAAcA,EACdV,WAAYA,EACZ0I,kBAAmB,SAASC,GACxB,IACI,GAAIA,EACA,MAAO,CACHC,eAAgBD,EAAeC,eAC/BC,aAAcF,EAAeE,cAGvC,MAAO/Z,IACT,MAAO,IAEXga,kBAAmB,SAASH,EAAgBI,GACxC,IACQJ,GAAkBA,EAAeG,mBACjCH,EAAeG,kBAAkBC,EAAeH,eAAgBG,EAAeF,cAErF,MAAO/Z,MAEbka,sBAAuB,SAASlM,EAAWiF,GACvC,IAAIkH,EAAYlH,EAASjpB,GAAG,UAC5B,OAAaowB,QAAQnH,EAAU,SAC/B,IAAIoH,EAA6BrM,EAAUgH,OAAO,iCAC9ClB,EAAUb,EAASnZ,IAAI,GAC3B,IAAKqgB,GAAaE,GAA8BpH,EAASjpB,GAAG,0BAA4BipB,EAASjpB,GAAG,cAAe,CAC/G,IAAIswB,EAAStH,EAAkBC,EAASsH,QAAQ,mBAChD,kBAAKD,GAAUA,EAAOE,mBAAmBC,MAAK,WAC1C3G,EAAQ4G,cAIpB1H,kBAAmBA,EACnB2H,4BAA6B,SAASC,EAASC,GAC3C,IACIC,EADAC,EAAsBH,EAAQI,KAAKrE,GAAUA,IAAWA,EAAOsE,UAAYtE,EAAOuE,QAAS,IAAUvE,EAAOwE,eAEhH,IAAKL,EAAkBF,EAAQ5kB,OAAS,EAAG4kB,EAAQE,GAAkBA,IAAmB,CACpF,IAAInE,EAASiE,EAAQE,GACjBrT,EAAQoT,GAAgBA,EAAaC,GACrCK,GAAiBJ,IAAuB,IAAUpE,EAAOwE,cAC7D,IAAKxE,EAAOsE,UAAYtE,EAAOuE,OAAS,mBAAqBzT,GAAS0T,EAClE,MAGR,OAAOL,GAEXM,uBAAwB,SAASC,EAAYpI,GACzC,GAAIA,GAAYA,EAASjd,OAAQ,CAC7B,IAAIslB,EAAQrI,EAASsH,QAAQ,IAAMc,EAAWE,2BAA2BC,SACzE,OAAOF,EAAMtxB,GAAGqxB,EAAWrN,UAAUiF,YAEzC,OAAO,GAEXwI,sBAAuB,SAAS1b,GAC5B,IAAI2b,EAAmB3b,EAAKiV,OAAOlE,GAC/B6K,EAAgB5b,EAAKiV,OAAOnE,KAA2BF,EACvDiL,EAAe7b,EAAKiV,OAAOnE,KAA2BH,EAC1D,SAAI,IAAU3Q,EAAKiV,OAAOpE,KAA2B+K,IAAiBC,IAG/DF,IAAqB/K,GAEhCkL,cAAe,SAASC,GACpB,OAAOA,EAAOC,kBAAoB,GAEtC,sBAAsBC,GAClB,OAAIA,EAAQC,QACD,IAEJ,KAAO7f,KAAKyf,cAAc,mBAErC,0BAA0B3E,GACtB,IAAIgF,EASJ,OARIhF,EAAOvQ,MACPuV,EAA0BhF,EAAOvQ,OAEjCuV,EAA0BhF,EAAOV,WAC7B,eAAW0F,KAA6B,OAAgBC,UAAUD,KAClEA,EAA0BA,EAAwB,MAGnD,eAA2BA,IAEtC,2BAA2BvF,EAAQH,EAAYhc,GAC3C,IAAI0hB,EAA0B9f,KAAKggB,0BAA0BzF,EAAOO,QACpE,GAAIP,EAAO1F,qBAAuB0F,EAAO0F,0BACrC,OAAOH,EAEX,IAEII,EAFAC,EAAiB/F,EAAWgG,mBAAmBC,YAC/CC,EAAwB/F,EAAOgG,cAAgB,eAAShG,EAAOgG,cAE/DC,EAAmB,eAAS,GAAIV,EAAyB,CACzDW,KAAMC,IACF,IAAIxP,EAAI,IAAI,cAmDZ,MAlDA,CAACwP,IACG,IAAInJ,EAAQD,EAA6BgJ,EAAwB,CAAC/F,EAAOc,UAAWd,EAAOgG,cAAgBhG,EAAOc,WAC9GnK,EAAI,IAAI,cAcZ,OAbKiP,GAAkBD,EACnBhP,EAAEyP,QAAQT,GAEV9F,EAAWqG,KAAK,CACZriB,OAAQA,EACRmZ,MAAOA,EACPqJ,KAAMT,EAAiBO,EAAYE,UAAO,EAC1CC,KAAMV,EAAiBO,EAAYG,UAAO,IAC3CxC,KAAK9T,IACJ2V,EAA4B3V,EAC5B2G,EAAEyP,QAAQpW,KACXuW,KAAK5P,EAAE4P,MAEP5P,GAhBX,CAiBGwP,GAAarC,KAAK9T,IAIjB,IAAIwW,EACJ,GAJI,IAAMxW,EAAM3Q,QACZsX,EAAEyP,QAAQ,IAGVL,EAAuB,CACvB,IAAIU,EAAczW,EAAMzO,IAAI+N,IACxB,IAAIoX,EACJ,MAAO,CACH,CAAC1G,EAAOO,OAAOoG,WAAYrX,EAAK/O,IAChC,CAACyf,EAAOO,OAAOqG,aAAc,QAAUF,EAAwB1G,EAAOK,gBAAgB/Q,EAAK/O,YAAS,IAAWmmB,EAAwBA,EAAwBpX,EAAKU,MAAM,GAAGzP,OAGrLimB,EAAgB,IAAI,OAAW,eAAS,GAAIjB,EAAyBY,EAAa,CAC9EU,MAAO,IAAI,OAAW,CAClBhd,KAAM4c,EACNlmB,IAAKyf,EAAOO,OAAOoG,mBAGxB,CACH,IAAIG,EAAUrhB,KAAKwZ,eAAejP,EAAM+W,QAAQld,GAAQA,EAAKtJ,KAAKgB,IAAIhB,GAAO,CAACyf,EAAOO,OAAOoG,UAAWpmB,IAAO,MAC9GimB,EAAgB,IAAI,OAAW,eAAS,GAAIjB,EAAyBY,EAAa,CAC9EtiB,OAAQ4B,KAAKwZ,eAAe,CAAC6H,EAASX,EAAYtiB,QAAS,UAG9D+hB,GACDY,EAAcjX,GAAG,4BAA6BlG,IAC1CA,EAAE2d,iBAAiBX,KAAOF,EAAYE,KACtChd,EAAE2d,iBAAiBV,KAAOH,EAAYG,OAG9CE,EAAcN,OAAOpC,KAAKnN,EAAEyP,SAASG,KAAK5P,EAAE4P,QAC7CA,KAAK5P,EAAE4P,MACH5P,GAEXpW,IAAKyf,EAAOO,OAAOoG,UACnB,MAAMpmB,GACF,IAAIoW,EAAI,wBAMR,OALAlR,KAAKygB,KAAK,CACNriB,OAAQ,CAACmc,EAAOO,OAAOoG,UAAW,IAAKpmB,KACxCujB,KAAKmD,IACJtQ,EAAEyP,QAAQa,EAAI,MAEXtQ,EAAEuQ,aAGjB,OAAOjB,K,oCCvlBf,kDASIkB,EAAe,IACfC,EAAoB,kBAAoBD,EACxCE,EAAgB,OAChBC,EAAa,SAASjO,GACtB,IAAIkO,EAAOlO,GAAQ,OAAmBnQ,cAAcmQ,GAAM,GAAOmO,WAAW,GACxEC,EAAW,OAAmBve,cAAc,KAAK,GAAOse,WAAW,GACvE,OAAOC,GAAYF,GAAQA,EAAOE,EAAW,IAE7CC,EAAuB,SAAS1lB,EAAM2lB,EAAU9gB,EAAO+gB,GACvD,IAAIvO,EAAOrX,EAAK6E,GACZghB,EAAW7lB,EAAK6E,EAAQ,GAC5B,IAAK+gB,EAAS,CACV,GAAI,MAAQvO,GAAQ,MAAQA,GAAQrX,EAAKyX,MAAM5S,EAAQ,EAAGA,EAAQ,KAAOwgB,EACrE,OAAO,EAEX,GAAI,MAAQhO,IAASiO,EAAWO,GAC5B,OAAO,EAGf,IAAIC,EAAiBF,GAAWD,EAAStD,KAAK/b,GAAWtG,EAAK6E,KAAWyB,EAAQzB,IACjF,OAAOugB,EAAkBrjB,QAAQsV,GAAQ,GAAKuO,IAAYN,EAAWjO,MAAWuO,GAAWE,IAE3FC,EAAuB,SAASC,EAAgBnhB,GAChD,IAAKygB,EAAWU,EAAenhB,IAC3B,MAAOA,EAAQ,IAAMygB,EAAWU,EAAenhB,EAAQ,MAAQ,MAAQmhB,EAAenhB,EAAQ,IAAMugB,EAAkBrjB,QAAQikB,EAAenhB,EAAQ,IAAM,GACvJA,IAGR,OAAOA,GAEPohB,EAAgB,SAASD,EAAgBL,EAAUO,EAAkBN,GACrE,IAAI1mB,EAAI,EACJwD,EAAS,GACTyjB,EAAiB,SAAS7f,GAC1B,OAAO0f,EAAe9mB,KAAOoH,EAAQpH,UAAO,IAAW0mB,GAAWN,EAAWU,EAAe9mB,MAAQ0mB,IAKxG,IAHKtjB,MAAMuY,QAAQ8K,KACfA,EAAW,CAACA,IAEXzmB,EAAI,EAAGA,EAAI8mB,EAAe3oB,OAAQ6B,IACnC,GAAIgnB,EAAiBnkB,QAAQ7C,GAAK,GAAKymB,EAAS9jB,OAAOskB,GAAgB9oB,OAAQ,CAC3E6B,EAAI6mB,EAAqBC,EAAgB9mB,GACzC,EAAG,CAEC,GADA0mB,EAAUN,EAAWU,EAAe9mB,KAC/BwD,EAAOrF,SAAWuoB,GAAWN,EAAWK,EAAS,GAAGzmB,IACrD,MAEJwD,EAAOgE,KAAKxH,GACZgnB,EAAiBE,QAAQlnB,GACzBA,UACK8mB,EAAe9mB,IAAMwmB,EAAqBM,EAAgBL,EAAUzmB,EAAG0mB,IAChF,MAMR,OAHI,IAAMljB,EAAOrF,QAAW,MAAQ2oB,EAAeE,EAAiB,GAAK,IAAM,MAAaF,EAAeE,EAAiB,GAAK,IAC7HA,EAAiBE,QAAQF,EAAiB,GAAK,GAE5CxjB,GAEP2jB,EAAmB,SAAS/f,EAASggB,EAASjP,EAAMkP,GACpD,IAAIC,EAAgBF,EAAQ,GACxBG,EAAeD,EAAgBD,EAAiBlpB,OAASkpB,EAAiBC,GAAiBA,EAQ/F,OAPAF,EAAQ3hB,SAAQ,SAAUnC,EAAGqC,GACzByB,EAAUA,EAAQmQ,OAAO,EAAGgQ,EAAe5hB,IAAUwS,EAAKha,OAAS,EAAIga,EAAKxS,GAASwS,GAAQ/Q,EAAQmQ,OAAOgQ,EAAe5hB,EAAQ,MAEnI,IAAMyhB,EAAQjpB,SACdiJ,EAAUA,EAAQ1H,QAAQ,IAAMyY,EAAMA,EAAOA,GAC7C/Q,EAAUA,EAAQ1H,QAAQ,IAAWyY,EAAMA,EAAOA,IAE/C/Q,GAEPogB,EAAe,SAASpgB,EAASggB,EAASjP,EAAMkP,GAChD,IAAIrnB,EACA2F,EACA4hB,EACJ,IAAKnB,EAAWhf,EAAQggB,EAAQ,KAAO,KAAM,CACzC,IAAIK,EAAc1R,KAAK1I,IAAI+Z,EAAQjpB,QAAU,EAAI,EAAI,EAAGga,EAAKha,QAC7D,MAAOipB,EAAQjpB,OAASspB,EAAa,CAIjC,IAHA9hB,EAAQyhB,EAAQM,MAChBH,EAAeF,EAAiB1hB,GAChC0hB,EAAiB1hB,IAAU,EACtB3F,EAAI2F,EAAQ,EAAG3F,EAAIqnB,EAAiBlpB,OAAQ6B,IAC7CqnB,EAAiBrnB,KAErBoH,EAAUA,EAAQmQ,OAAO,EAAGgQ,GAAgBngB,EAAQmQ,OAAOgQ,EAAe,GAE9E5hB,EAAQyhB,EAAQA,EAAQjpB,OAAS,GAAK,EAAGopB,EAAe5hB,EAAQ0hB,EAAiBlpB,OAASkpB,EAAiB1hB,GAASA,EACpH,MAAOyhB,EAAQjpB,OAASspB,EAAa,CAEjC,IADAL,EAAQ5f,KAAK4f,EAAQA,EAAQjpB,OAAS,GAAK,GACtC6B,EAAI2F,EAAO3F,EAAIqnB,EAAiBlpB,OAAQ6B,IACzCqnB,EAAiBrnB,KAErBoH,EAAUA,EAAQmQ,OAAO,EAAGgQ,GAAgB,IAAMngB,EAAQmQ,OAAOgQ,IAIzE,OADAngB,EAAU+f,EAAiB/f,EAASggB,EAASjP,EAAMkP,GAC5CjgB,GAEPgT,EAAc,SAAShU,EAAOhC,GAC9B,OAAIhB,MAAMuY,QAAQvV,GACPA,EAAM/F,KAAI,SAAU+F,GACvB,OAAQhC,EAAUgC,IAAU,IAAI8P,eAGhC9R,EAAUgC,IAAU,IAAI8P,YAEhCyR,EAAsB,YACtBC,EAAc,SAASxgB,EAAS0f,EAAgBE,EAAkBK,GAClE,IAAIQ,EAAgBf,EAAe1mB,MAAM,IAAIC,KAAI,SAAU8X,EAAMxS,GAC7D,OAAIqhB,EAAiBnkB,QAAQ8C,GAAS,IAAMwS,EAAK2P,MAAMH,IAAwB,MAAQxP,GAC5EkP,EAAiB1hB,IAEpB,KAiBZ,OAfAyB,EAAUA,EAAQhH,MAAM,IAAIC,KAAI,SAAU8X,EAAMxS,GAC5C,IAAInC,EAAS2U,EACT4P,EAAuBF,EAAchlB,QAAQ8C,IAAU,EACvDqiB,EAAoBriB,EAAQ,GAAKkiB,EAAchlB,QAAQ8C,EAAQ,IAAM,EACrEsiB,EAAoBJ,EAAchlB,QAAQ8C,EAAQ,IAAM,EAS5D,OARIoiB,IACKC,IACDxkB,EAAS,IAAMA,GAEdykB,IACDzkB,GAAU,MAGXA,KACPjD,KAAK,IACF6G,GAEA8gB,EAAY,SAAS9jB,GAC5B,IAAI4iB,EAAmB,GACnBF,EAAiB1M,EAAY,IAAI9b,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GAAI8F,GAC5DijB,EAAmBP,EAAe1mB,MAAM,IAAIC,KAAI,SAAUiD,EAAGqC,GAC7D,OAAOA,KAEPnC,EAASsjB,EACTqB,EAAmB,GACnBC,EAAe,CAAC,CAChBvqB,KAAM,IAAIS,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,EAAG,KACpC8I,QAAS,KACV,CACCvJ,KAAM,IAAIS,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GACjC8I,QAAS,KACV,CACCvJ,KAAM,IAAIS,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GACjC8I,QAAS,KACV,CACCvJ,KAAM,IAAIS,KAAK,KAAM,EAAG,EAAG,GAAI,EAAG,GAClC8I,QAAS,IACTsf,SAAS,GACV,CACC7oB,KAAM,IAAIS,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GACjC8I,QAAS,IACTsf,SAAS,GACV,CACC7oB,KAAM,IAAIS,KAAK,KAAM,EAAG,EAAG,GAAI,EAAG,GAClC8I,QAAS,IACTsf,SAAS,GACV,CACC7oB,KAAM,IAAIS,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GACjC8I,QAAS,KACV,CACCvJ,KAAM,CAAC,IAAIS,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GAAI,IAAIA,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GAAI,IAAIA,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,IAChG8I,QAAS,KACV,CACCvJ,KAAM,IAAIS,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GACjC8I,QAAS,KACV,CACCvJ,KAAM,IAAIS,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GACjC8I,QAAS,MAEb,GAAK5D,EAUL,OAPA4kB,EAAa3iB,SAAQ,SAAU4iB,GAC3B,IAAIC,EAAOvB,EAAcD,EAAgB1M,EAAYiO,EAAKxqB,KAAMuG,GAAY4iB,EAAkBqB,EAAK3B,SAC/Ftf,EAAU,MAAQihB,EAAKjhB,SAAY+gB,EAAiB1S,EAAU4S,EAAKjhB,QAAX,IAC5D5D,EAASgkB,EAAahkB,EAAQ8kB,EAAMlhB,EAASigB,GAC7Cc,EAAiB/gB,GAAWkhB,EAAKnqB,UAErCqF,EAASokB,EAAYpkB,EAAQsjB,EAAgBE,EAAkBK,GAC3DL,EAAiB7oB,OACVqF,OADX,I,oCChMJ,gBAWI+kB,EAAS,CAAC,UAAW,WAAY,QAAS,QAAS,MAAO,OAAQ,OAAQ,SAAU,YAAa,UAAW,WAAY,YACxHC,EAAO,CAAC,SAAU,SAAU,UAAW,YAAa,WAAY,SAAU,YAC1EC,EAAU,CAAC,KAAM,MACjBC,EAAW,CAAC,KAAM,KAAM,KAAM,MAC9BC,EAAc,CAACC,EAAUhrB,KACzB,IAAIirB,EAAiB,CACjB3lB,YAAa,EACbQ,MAAO,EACPP,OAAQ,GAEZ,OAAO,eAAIylB,EAAUnZ,GAAWA,EAAQ8H,OAAO,EAAGsR,EAAejrB,MAEtD,QACXmF,cAAe,SAASnF,GACpB,OAAO+qB,EAAYJ,EAAQ3qB,IAE/B2F,YAAa,SAAS3F,GAClB,OAAO+qB,EAAYH,EAAM5qB,IAE7B6J,gBAAiB,SAAS7J,GACtB,OAAO8qB,GAEX/kB,eAAgB,SAAS/F,GACrB,OAAO6qB,K,oCClCf,0EAqBe,sBAAmB,CAC9B7qB,OAAQ,SAASwI,EAAOjC,GACpB,IAAI2kB,EAAgB,eAAS3kB,IAAY,KAAOA,GAAW,eAAcA,IAAY,eAAWA,GAC5F4kB,EAAe,eAAU3iB,IAAU,eAAOA,GAC9C,OAAK0iB,GAAkBC,EAGnB,eAAW5kB,GACJA,EAAQiC,IAEf,eAASjC,KACTA,EAAU,CACNnB,KAAMmB,IAGV,eAAUiC,GACH,OAAmBxI,OAAOwI,EAAOjC,GAExC,eAAOiC,GACA,OAAiBxI,OAAOwI,EAAOjC,QAD1C,GAbW,eAAUiC,GAASA,EAAM8P,WAAa,IAiBrD8S,cAAe,SAASC,GACpB,OAAOA,EAAa,WAAa,aAErCC,iBAAkB,SAAStrB,GACvB,OAAKwF,MAAMuY,QAAQ/d,GAGf,IAAMA,EAAOO,OACNP,EAAO,GAEX,SAASC,GACZ,OAAOD,EAAOyC,KAAI,SAAUqF,GACxB,OAAO,OAAiB9H,OAAOC,EAAM6H,MACrCnF,KAAK,MARF3C,GAWfurB,2BAA4B,SAASC,EAAiBC,GAClD,IAAIC,EAAe,GACfC,EAA6BF,GAAkBD,EAAgBtiB,eAAiBsiB,EAAgBrrB,MAAQqrB,EAAgBhoB,OAASgoB,EAAgBpoB,KAWrJ,OAVIuoB,EACAD,EAAa9hB,MAAK,SAAU3J,GACxB,OAAOA,EAAKe,aAAef,EAAKgB,kBAAoB,IAAM,OAEvDuqB,EAAgBtiB,aACvBwiB,EAAa9hB,KAAK,gBAElB4hB,EAAgB9nB,MAAQ8nB,EAAgB7nB,SAAWgoB,GAA8BH,EAAgB5nB,SACjG8nB,EAAapC,QAAQ3iB,KAAKykB,cAAcI,EAAgB5nB,SAExD4nB,EAAgBrrB,MAAQqrB,EAAgBhoB,OAASgoB,EAAgBpoB,IAC7DqoB,GAAkB,UAAYA,EACvB,gBAEPC,EAAapC,QAAQ,aACd3iB,KAAK2kB,iBAAiBI,IAGjCF,EAAgBrrB,MAAQqrB,EAAgBhoB,MACjC,eAEPgoB,EAAgBrrB,MAAQqrB,EAAgBviB,QACjC,iBAEPuiB,EAAgBrrB,KACT,OAEPqrB,EAAgBviB,QACT,UAEPuiB,EAAgBhoB,OAASgoB,EAAgBpoB,KACrCqoB,EACAC,EAAapC,SAAQ,SAAUrpB,GAC3B,OAAO,OAAiBkF,cAAc,eAAelF,EAAKW,YAAc,IAAM,OAAiBZ,OAAOC,EAAM,UAGhHyrB,EAAapC,QAAQ,eAElB3iB,KAAK2kB,iBAAiBI,IAE7BF,EAAgBhoB,MACT,QAEPgoB,EAAgBpoB,KACZqoB,EACAC,EAAapC,QAAQ,OAErBoC,EAAapC,SAAQ,SAAUrpB,GAC3B,OAAO,OAAiBD,OAAOC,EAAM,aAAe,KAAO,OAAiBD,OAAOC,EAAM,UAG1F0G,KAAK2kB,iBAAiBI,IAE1B/kB,KAAK2kB,iBAAiBI,IAEjCE,qBAAsB,SAASC,GAC3B,IAAIC,EACAC,EACA3pB,EACJ,GAAIypB,EAAMtrB,OAAS,EAEf,IADAurB,EAAU,OAAUE,oBAAoBH,EAAM,GAAIA,EAAM,IACnDzpB,EAAI,EAAGA,EAAIypB,EAAMtrB,OAAS,EAAG6B,IAC9B2pB,EAAc,OAAUC,oBAAoBH,EAAMzpB,GAAIypB,EAAMzpB,EAAI,IAC5D0pB,EAAQ/S,MAAQgT,EAAYhT,QAC5B+S,EAAUC,QAIlBD,EAAU,CACN3rB,MAAM,EACNqD,OAAO,EACPJ,KAAK,EACLM,KAAMmoB,EAAM,GAAG/qB,WAAa,EAC5B6C,OAAQkoB,EAAM,GAAG9qB,aAAe,EAChC6C,OAAQioB,EAAM,GAAG7qB,aAAe,EAChCkI,YAAa2iB,EAAM,GAAG5qB,kBAAoB,GAGlD,IAAIyqB,EAAe/kB,KAAK4kB,2BAA2BO,GACnD,OAAOJ,GAEXO,4BAA6B,SAASC,EAAYC,EAAUC,GACxD,IAAIC,EACAC,EAAyB,SAASd,EAAiBY,EAAc5jB,GACjE,OAAQ4jB,GACJ,IAAK,OACL,IAAK,UACDZ,EAAgBhoB,MAAQgF,EAC5B,IAAK,QACDgjB,EAAgBpoB,IAAMoF,EAC1B,IAAK,OACL,IAAK,MACDgjB,EAAgB9nB,KAAO8E,EAC3B,IAAK,OACDgjB,EAAgB7nB,OAAS6E,EAC7B,IAAK,SACDgjB,EAAgB5nB,OAAS4E,EAC7B,IAAK,SACDgjB,EAAgBtiB,YAAcV,IAG1C4jB,EAAe,eAASA,GAAgBA,EAAa3nB,cAAgB2nB,EACrE,IAAIZ,EAAkB,OAAUQ,oBAAoBE,EAAYC,GAC5DD,IAAeC,GACb,SAASI,EAAaC,EAASC,IACxBA,EAAQxrB,mBAAqBwrB,EAAQzrB,aAClCyrB,EAAQzrB,aAAewrB,EAAQxrB,eAAiB,IAChDurB,EAAYrjB,aAAc,EAC1BqjB,EAAY3oB,QAAS,IAEjB6oB,EAAQzrB,cAAgByrB,EAAQ1rB,aACpC0rB,EAAQ1rB,aAAeyrB,EAAQzrB,eAAiB,IAChDwrB,EAAY3oB,QAAS,EACrB2oB,EAAY5oB,QAAS,IAEjB8oB,EAAQ1rB,cAAgB0rB,EAAQ3rB,WACpC2rB,EAAQ3rB,WAAa0rB,EAAQ1rB,aAAe,IAC5CyrB,EAAY5oB,QAAS,EACrB4oB,EAAY7oB,MAAO,IAEf+oB,EAAQ3rB,YAAc2rB,EAAQ5rB,UAAY,EAC9C4rB,EAAQ5rB,UAAY2rB,EAAQ3rB,YAAc,IAC1C0rB,EAAY7oB,MAAO,EACnB6oB,EAAYnpB,KAAM,GAEf,IAAMqpB,EAAQ5rB,WAAa4rB,EAAQ7rB,WACtC6rB,EAAQ7rB,WAAa4rB,EAAQ5rB,aAAe,IAC5C2rB,EAAYnpB,KAAM,EAClBmpB,EAAY/oB,OAAQ,IAEhBipB,EAAQ7rB,YAAc6rB,EAAQrsB,eAClCqsB,EAAQrsB,cAAgBosB,EAAQpsB,gBAAkB,IAClDmsB,EAAY/oB,OAAQ,EACpB+oB,EAAYpsB,MAAO,GA7B7B,CAgCAqrB,EAAiBU,EAAaC,EAAWA,EAAWD,EAAYA,EAAaC,EAAWD,EAAaC,GAE3GE,EAAmB,OAAUK,oBAAoBlB,GACjDc,EAAuBd,EAAiBa,GAAkB,GAC1DA,EAAmB,OAAUK,oBAAoBN,GAAgB,UACjEE,EAAuBd,EAAiBa,GAAkB,GAC1Db,EAAgB,CACZmB,KAAM,OACPN,IAAqBA,IAAoB,EAC5C,IAAIX,EAAe/kB,KAAK4kB,2BAA2BC,GACnD,OAAOE,M,kCChNf,4BAeIkB,EAAwB,CAAC,OAAQ,QAAS,OAC1CC,EAA4B,CAAC,OAAQ,QAAS,MAAO,OAAQ,UAC7DpR,EAAa,SAASC,GACtB,MAAO,SAAWA,GAAY,aAAeA,GAE7CuG,EAAmB,SAASf,GAC5B,IAAInZ,EACAnC,EAAS,GACTknB,EAAgB,CAAC,OAAQ,QAAS,MAAO,OAAQ,SAAU,UAC3DlR,EAAgBsF,EAAO6L,cAAgB7L,EAAO6L,aAAanR,cAC3DsG,EAAW,YAActG,EAAgB,QAAUA,EACvD,OAAIH,EAAWyF,EAAOxF,WAAa,OAASE,GACxChW,EAAS,aAAesb,EAAOxF,SAAWmR,EAA4BD,EACtE7kB,EAAQ+kB,EAAc7nB,QAAQid,GAC1Bna,GAAS,GACTnC,EAASknB,EAAcnS,MAAM,EAAG5S,GAChCnC,EAAOgE,KAAKgS,GACLhW,GAEJA,GACA,eAAUgW,GACVpW,MAAMuY,QAAQnC,GAAiBA,EAAgB,CAACA,QADpD,GAIK,kBACZ,IAAIoR,EAAoB,SAAS9L,EAAQrE,GACrC,IAAIsB,EAAW+C,EAAOc,WAAad,EAAO/C,SAI1C,MAHI,WAAatB,IACbsB,EAAW+C,EAAOgG,cAAgBhG,EAAOM,uBAAyBrD,GAE/DA,GAEP8O,EAA6B,SAASjP,EAAanB,GACnD,IAAIqQ,EACAC,EACAC,EAcAntB,EAbAke,EAAW6O,EAAkBrmB,KAAMkW,GACvC,GAAIrX,MAAMuY,QAAQC,IAAgB,eAAUA,EAAY,KAAO,eAAUA,EAAY,IAUjF,OATAmP,EAAwB,CAAChP,EAAU,KAAMH,EAAY,IACrDoP,EAAsB,CAACjP,EAAU,KAAMH,EAAY,IAC/CvC,EAAW9U,KAAK+U,YAAczb,EAAO+d,EAAY,GAAI/d,EAAKa,WAAab,EAAKc,aAAed,EAAKe,aAAef,EAAKgB,kBAAoB,KACxIisB,EAAiB,IAAIxsB,KAAKsd,EAAY,GAAGtT,WACrC,SAAW/D,KAAK+U,UAChBwR,EAAeG,QAAQrP,EAAY,GAAGnd,UAAY,GAEtDusB,EAAsB,CAACjP,EAAU,IAAK+O,IAEnC,CAACC,EAAuB,MAAOC,IAI1CE,EAA6B,SAAStP,EAAauP,EAAyB1Q,GAC5E,IAAI2Q,EACAC,EACAC,EACAC,EAAS,SAASC,GAClB,OAAI,eAAOA,GACA,CAACA,EAAUxtB,cAAewtB,EAAUhtB,WAAYgtB,EAAU/sB,UAAW+sB,EAAU9sB,WAAY8sB,EAAU7sB,aAAc6sB,EAAU5sB,cAEjI,gBAAK,GAAK4sB,GAAWprB,MAAM,MAAM,SAAUgG,EAAOT,GACrD,OAAO,IAAMA,EAAQ8T,OAAOrT,GAAS,EAAIqT,OAAOrT,MAL3C,CAOXwV,GACEG,EAAW6O,EAAkBrmB,KAAMkW,GAMvC,OALI,iBAAmBA,EACnB6Q,EAAezL,EAAiBtb,MAAMgnB,EAAOptB,OAAS,GAC/C,aAAeoG,KAAK+U,WAC3BgS,EAAe,UAEXA,GACJ,IAAK,OACDF,EAAY,IAAI9sB,KAAKitB,EAAO,GAAI,EAAG,GACnCF,EAAU,IAAI/sB,KAAKitB,EAAO,GAAK,EAAG,EAAG,GACrC,MACJ,IAAK,QACDH,EAAY,IAAI9sB,KAAKitB,EAAO,GAAIA,EAAO,GAAI,GAC3CF,EAAU,IAAI/sB,KAAKitB,EAAO,GAAIA,EAAO,GAAK,EAAG,GAC7C,MACJ,IAAK,UACDH,EAAY,IAAI9sB,KAAKitB,EAAO,GAAI,EAAIA,EAAO,GAAI,GAC/CF,EAAU,IAAI/sB,KAAKitB,EAAO,GAAI,EAAIA,EAAO,GAAK,EAAG,GACjD,MACJ,IAAK,OACDH,EAAY,IAAI9sB,KAAKitB,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,IAC7DF,EAAU,IAAI/sB,KAAKitB,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAK,GAChE,MACJ,IAAK,SACDH,EAAY,IAAI9sB,KAAKitB,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,IACxEF,EAAU,IAAI/sB,KAAKitB,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAK,GAC3E,MACJ,IAAK,SACDH,EAAY,IAAI9sB,KAAKitB,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,IACnFF,EAAU,IAAI/sB,KAAKitB,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAK,GACtF,MACJ,QACIH,EAAY,IAAI9sB,KAAKitB,EAAO,GAAIA,EAAO,GAAIA,EAAO,IAClDF,EAAU,IAAI/sB,KAAKitB,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAK,GAE7D,OAAQJ,GACJ,IAAK,IACD,MAAO,CAACpP,EAAU,IAAKqP,GAC3B,IAAK,KACD,MAAO,CAACrP,EAAU,IAAKsP,GAC3B,IAAK,IACD,MAAO,CAACtP,EAAU,KAAMsP,GAC5B,IAAK,KACD,MAAO,CAACtP,EAAU,KAAMqP,GAC5B,IAAK,KACD,MAAO,CACH,CAACrP,EAAU,IAAKqP,GAAY,KAAM,CAACrP,EAAU,KAAMsP,IAE3D,QACI,MAAO,CACH,CAACtP,EAAU,KAAMqP,GAAY,MAAO,CAACrP,EAAU,IAAKsP,MAIhEI,EAA+B,SAAS7P,EAAauP,EAAyB1Q,GAC9E,IAAIsB,EAAW6O,EAAkBrmB,KAAMkW,GACnCjB,EAAgBqG,EAAiBtb,MACrC,GAAI,iBAAmBkW,GAAUjB,GAAiB,eAAUoC,GAAc,CACtE,IAAI2P,GAAU,GAAK3P,GAAaxb,MAAM,KAClCgG,EAAQqT,OAAO8R,EAAOA,EAAOptB,OAAS,IACtC2hB,EAAWtG,EAAc+R,EAAOptB,OAAS,GACzCutB,EAAmB,CAAC3P,EAAU,KAAM3V,GACpC0kB,EAAiB,CAAC/O,EAAU,IAAK3V,EAAQ0Z,GACzC6L,EAAY,CAACD,EAAkB,MAAOZ,GAC1C,OAAOa,EAEX,MAAO,CAAC5P,EAAUoP,GAA2B,IAAKvP,IAEtD,MAAO,CACHgQ,iCAAkC,SAAShQ,EAAauP,EAAyB1Q,GAC7E,IAAIqE,EAASva,KACTwX,EAAW6O,EAAkB9L,EAAQrE,GACrCoR,EAAyB/M,EAAOM,uBAAyB,WAAa3E,EACtEnB,EAAWuS,GAA0B/M,EAAOO,QAAUP,EAAOO,OAAO/F,UAAYwF,EAAOxF,SACvF3W,EAAS,KACb,GAAK,iBAAmB8X,GAAU,kBAAoBA,GAAW,OAASmB,EAKnE,GAAI,WAAatC,GAAcwF,EAAOO,SAAUwM,EAEhD,IAAI,YAAcV,EACrB,OAAON,EAA2BxnB,MAAMyb,EAAQ,CAAClD,EAAanB,IAC3D,GAAIpB,EAAWC,IAAa,eAAUsC,GACzC,OAAOsP,EAA2B7nB,MAAMyb,EAAQra,WAC7C,GAAI,WAAa6U,EACpB,OAAOmS,EAA6BpoB,MAAMyb,EAAQra,WAElD9B,EAAS,CAACoZ,EAAUoP,GAA2B,IAAKvP,QARpDjZ,EAAS,CAACoZ,EAAUoP,GAA2B,WAAYvP,QAL3DjZ,EAAS,CAACoZ,EAAUoP,GAA2B,IAAK,MAChD,WAAa7R,IACb3W,EAAS,CAACA,EAAQ,MAAQwoB,EAA0B,KAAO,MAAO,CAACpP,EAAUoP,GAA2B,IAAK,MAarH,OAAOxoB,GAEXkd,iBAAkBA,GApIV,I,kCCvChB,kIAcIxJ,EAAe,CACfC,EAAG,cACHC,EAAG,OACHC,EAAG,UAEHsV,EAAuB,SAASnV,EAAO5R,GACvC,OAAI4R,EAAQ,EACD5U,OAAOgqB,KAAK1V,GAAchW,KAAI,SAAUsW,GAC3C,MAAO,CAAC,SAAU,cAActW,KAAI,SAAU2C,GAC1C,OAAO+B,EAAUhC,cAAcsT,EAAaM,GAAQ3T,GAAMzC,KAAK,QAC/DA,KAAK,QACTA,KAAK,KAEN,IAAMoW,EAAQ,iBAAmB,mBAExCqV,EAAkB,CAClB,IAAK,SAASrV,EAAO5R,GACjB,IAAIknB,EAActV,EAAQ,EAAI,IAAIuV,OAAOvV,EAAO,KAAO,GACnDwV,EAAgB,eAAapnB,EAAUkB,oBAE3C,MADA,MAAQkmB,IAAkBA,EAAgB,GAAGD,OAAOC,EAAe,OAC5D,GAAGD,OAAOC,GAAeD,OAAOD,IAE3CvV,EAAG,SAASC,GACR,OAAO,IAAMA,EAAQ,SAASuV,OAAOvV,EAAO,KAAO,WAEvDE,EAAGiV,EACHhV,EAAGgV,EACH/U,EAAG,SAASJ,EAAO5R,GACf,OAAI4R,EAAQ,EACD5R,EAAU0C,gBAAgB4O,EAAaM,GAAQ,UAAUpW,KAAK,KAElE,WAEXyW,EAAG,SAASL,EAAO5R,GACf,MAAO,QAEXuB,EAAG,SAASqQ,EAAO5R,GACf,OAAOA,EAAUpB,eAAe0S,EAAaM,EAAQ,EAAI,EAAIA,GAAQ,UAAUpW,KAAK,MAExFkV,EAAG,SAASkB,GACR,OAAO,IAAMA,EAAQ,0BAA4B,4BAErDO,EAAG,SAASP,GACR,OAAO,IAAMA,EAAQ,wBAA0B,0BAEnDQ,EAAG,SAASR,GACR,OAAO,IAAMA,EAAQ,iBAAmB,mBAE5CS,EAAG,SAAST,GACR,OAAO,IAAMA,EAAQ,qBAAuB,uBAEhDU,EAAG,SAASV,GACR,OAAO,IAAMA,EAAQ,qBAAuB,uBAEhDW,EAAG,SAASX,GACR,MAAO,WAAWuV,OAAOvV,EAAO,MAEpCyV,EAAG,SAASzV,GACR,OAAO,IAAMA,EAAQ,qBAAuB,wBAGhD0V,EAAc5S,OACd6S,EAAyB,SAASC,EAAOnmB,GACzC,OAAOmmB,EAAMlsB,IAAI+N,GAAQA,EAAK/L,eAAeQ,QAAQuD,EAAM/D,gBAE3DmqB,EAAqB,SAAS1rB,EAAM6V,EAAO5R,GAC3C,OAAI4R,EAAQ,EACD,CAAC,SAAU,cAActW,KAAI,SAAU2C,GAC1C,OAAOjB,OAAOgqB,KAAK1V,GAAchW,KAAI,SAAUsW,GAC3C,IAAI5I,EAAahJ,EAAUhC,cAAcsT,EAAaM,GAAQ3T,GAC9D,OAAOspB,EAAuBve,EAAYjN,SAE9C2rB,QAAO,SAAUnmB,EAAGC,GACpB,OAAOD,EAAE4lB,OAAO3lB,MAChB5D,QAAO,SAAUgD,GACjB,OAAOA,GAAS,KAChB,GAED0mB,EAAYvrB,GAAQ,GAE3B4rB,EAAkB,CAClBhW,EAAG,SAAS5V,EAAM6V,GACd,IAAI5Y,EAAOsuB,EAAYvrB,GACvB,OAAI,IAAM6V,EACC5Y,EAAO,GAAK,IAAMA,EAAO,KAAOA,EAEpCA,GAEX8Y,EAAG2V,EACH1V,EAAG0V,EACHzV,EAAG,SAASjW,EAAM6V,EAAO5R,GACrB,OAAI4R,EAAQ,EACD5R,EAAU0C,gBAAgB4O,EAAaM,GAAQ,UAAU9T,QAAQ/B,GAErEurB,EAAYvrB,GAAQ,GAE/BkW,EAAG,SAASlW,EAAM6V,EAAO5R,GACrB,IAAI4nB,EAAW5nB,EAAUxB,YAAY8S,EAAaM,EAAQ,EAAI,EAAIA,GAAQ,UAC1E,OAAO2V,EAAuBK,EAAU7rB,IAE5CwF,EAAG,SAASxF,EAAM6V,EAAO5R,GACrB,IAAI6nB,EAAc7nB,EAAUpB,eAAe0S,EAAaM,EAAQ,EAAI,EAAIA,GAAQ,UAChF,OAAO2V,EAAuBM,EAAa9rB,IAE/C2U,EAAG4W,EACHnV,EAAGmV,EACHlV,EAAGkV,EACHjV,EAAGiV,EACHhV,EAAGgV,EACH/U,EAAG,SAASxW,EAAM6V,GACdA,EAAQZ,KAAK1I,IAAIsJ,EAAO,GACxB7V,EAAOA,EAAKyX,MAAM,EAAG,GACrB,MAAO5B,EAAQ,EACX7V,GAAQ,IACR6V,IAEJ,OAAO0V,EAAYvrB,KAGvB+rB,EAAmB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAClDC,EAAkB,CAClBpW,EAAG,cACHG,EAAG,WACHC,EAAG,WACHxQ,EAAG,SAASzI,EAAMuI,EAAO2mB,GACrB,IAAIjpB,EAAQjG,EAAKa,WACbsuB,EAAgBD,EAAe5V,OAC/B,IAAW6V,GAAiBA,IAAkBlpB,GAC9CA,IAECsC,GAAS,KAAOtC,EAEVsC,GAAS,KAAOtC,IACvBA,GAAS,IAFTA,EAAQ,EAIZjG,EAAKovB,SAASnpB,IAElB2R,EAAG,UACHyB,EAAG,WACHC,EAAG,WACHC,EAAG,aACHC,EAAG,aACHC,EAAG,mBAEH4V,EAAmB,SAASpsB,EAAM6E,GAClC,IAAIwS,EAAOrX,EAAK6E,GAChB,IAAKwS,EACD,OAAO,EAEX,IAAIxB,EAAQ,EACZ,GACIhR,IACAgR,UACK7V,EAAK6E,KAAWwS,GACzB,OAAOxB,GAEPwW,EAAgB,SAAShV,EAAMxB,GAE/B,IADA,IAAInT,EAAS,GACJxD,EAAI,EAAGA,EAAI2W,EAAO3W,IACvBwD,GAAU2U,EAEd,OAAO3U,GAEA4pB,EAAgB,SAASxvB,EAAQmH,GAYxC,IAXA,IAEIuT,EAFA+U,EAAa,GACbC,EAAW,GAEX7G,EAAW,GACX8G,EAAkB,WACdD,IACA7G,EAASjf,KAAK,IAAI0kB,OAAOoB,EAAU,MACnCD,GAAc,GAAGnB,OAAO,eAAaoB,GAAW,KAChDA,EAAW,KAGVttB,EAAI,EAAGA,EAAIpC,EAAOO,OAAQ6B,IAAK,CACpC,IAAImY,EAAOva,EAAOoC,GACdwtB,EAAe,MAAQrV,EACvBsV,EAAazB,EAAgB7T,GACjC,IAAIqV,IACAlV,GAAcA,EACV,MAAQ1a,EAAOoC,EAAI,IAI3B,GAAIytB,IAAenV,EAAY,CAC3B,IAAI3B,EAAQuW,EAAiBtvB,EAAQoC,GACjCoH,EAAU+lB,EAAchV,EAAMxB,GAClC4W,IACA9G,EAASjf,KAAKJ,GACdimB,GAAc,IAAInB,OAAOuB,EAAW9W,EAAO5R,GAAY,KACvD/E,GAAK2W,EAAQ,OAER2W,IACDD,GAAc,KAElBC,GAAYnV,EAOpB,OAJAoV,IACKG,EAA2BjH,IAC5B,OAAOkH,KAAK,mDAAmDzB,OAAOtuB,EAAQ,MAE3E,CACH6oB,SAAUA,EACVmH,OAAQ,IAAIC,OAAO,IAAI3B,OAAOmB,EAAY,KAAM,OAGpDS,EAAoB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACtDJ,EAA6B,SAASjH,GAC7C,IAAIsH,EAAiB3mB,IACjB,IAAKA,EACD,OAAO,EAEX,IAAI+Q,EAAO/Q,EAAQ,GACnB,MAAO,CAAC,IAAK,KAAKG,SAAS4Q,IAAS2V,EAAkBvmB,SAAS4Q,IAAS/Q,EAAQjJ,OAAS,GAEzF6vB,GAAqB,EACrBC,EAA8B,EAClC,OAAOxH,EAASyH,MAAM,CAAC9mB,EAASzB,EAAO8gB,KAC/BsH,EAAe3mB,KACX,CAACA,GAAW,MAAQA,EAAQ,IAAM,IAAMA,EAAQjJ,OAAhD,CAAwDiJ,KACxD4mB,IAAuBC,EAA8B,GAEpDF,EAAetH,EAAS9gB,EAAQ,MACjCsoB,EAA8B,IAG/BD,KAGJG,EAAoB,WAC3B,OAAOrB,GAEPsB,EAAiB,SAASvwB,EAAMuJ,EAAStG,EAAMiE,EAAWgoB,GAC1D,IAAIsB,EAAcjnB,EAAQ,GACtBknB,EAAaxB,EAAgBuB,GAC7BE,EAAa7B,EAAgB2B,GACjC,GAAIC,GAAcC,EAAY,CAC1B,IAAInoB,EAAQmoB,EAAWztB,EAAMsG,EAAQjJ,OAAQ4G,GAC7CgoB,EAAe3lB,GAAWhB,EACtBvI,EAAKywB,GACLzwB,EAAKywB,GAAYloB,GAEjBkoB,EAAWzwB,EAAMuI,EAAO2mB,KAIhCyB,EAAwB,SAAS3wB,EAAMuJ,EAASwO,GAChD,IAAI6Y,EAAa3B,EAAgB1lB,GAC7BsnB,EAAa,IAAMD,EAAWlX,OAAO,GACrCnR,EAAQwP,EAAI8Y,KAChB7wB,EAAK4wB,GAAYroB,IAEjBuoB,EAAmB,SAASC,GAC5B,OAAOA,EAAavuB,KAAI,SAAU+G,GAC9B,MAAI,MAAQA,EAAQ,GACT,GAEA,MAAQA,EAAQ,GAAK,IAAMA,EAAQ,OAIlDynB,EAA4B,SAASpI,GACrC,IAAIW,EAAUX,EAASpmB,KAAI,SAAU+G,GACjC,OAAOylB,EAAiBhqB,QAAQuE,MAEpC,OAAO2O,KAAK1I,IAAIhK,MAAM0S,KAAMqR,IAE5B0H,EAA2B,SAASC,GACpC,IAAIC,EAAgBD,EAAepsB,QAAO,SAAUyE,GAChD,OAAOylB,EAAiBhqB,QAAQuE,GAAW,KAE/C,OAAOylB,EAAiBX,OAAO8C,IAExBC,EAAY,SAASrxB,EAAQmH,GACpC,IAAImqB,EAAa9B,EAAcxvB,EAAQmH,GACvC,OAAO,SAASjE,GACZ,IAAIquB,EAAeD,EAAWtB,OAAOwB,KAAKtuB,GAC1C,GAAIquB,EAAc,CACd,IAAIvZ,EAAM,IAAItX,KACVT,EAAO,IAAIS,KAAKsX,EAAI5X,cAAe,EAAG,GACtC+wB,EAAiBJ,EAAiBO,EAAWzI,UAC7C4I,EAAkBR,EAA0BE,GAC5CO,EAAwBR,EAAyBC,GACjDhC,EAAiB,GAcrB,OAbAuC,EAAsB7pB,SAAQ,SAAU2B,EAASzB,GAC7C,GAAKyB,KAAWzB,EAAQknB,EAAiB1uB,QAAUwH,EAAQ0pB,GAA3D,CAGA,IAAI9H,EAAewH,EAAelsB,QAAQuE,GAC1C,GAAImgB,GAAgB,EAAG,CACnB,IAAIgI,EAAgBL,EAAWzI,SAASc,GACpCiI,EAAaL,EAAa5H,EAAe,GAC7C6G,EAAevwB,EAAM0xB,EAAeC,EAAYzqB,EAAWgoB,QAE3DyB,EAAsB3wB,EAAMuJ,EAASwO,OAGtC/X,EAEX,OAAO,Q,6CC3Tf,uBAYC,SAASsK,GAA2DsnB,EAAOC,QAAQvnB,IAAnF,EAA4Q,WAAW,OAAO,SAASkP,EAAE/Q,EAAEqpB,EAAExY,GAAG,SAASyY,EAAE9Z,EAAE3N,GAAG,IAAIwnB,EAAE7Z,GAAG,CAAC,IAAIxP,EAAEwP,GAAG,CAAC,IAAI+Z,EAAE,mBAAmBC,GAASA,EAAQ,IAAI3nB,GAAG0nB,EAAE,OAAO,EAAE/Z,GAAE,GAAI,GAAGia,EAAE,OAAOA,EAAEja,GAAE,GAAI,IAAIka,EAAE,IAAIC,MAAM,uBAAuBna,EAAE,KAAK,MAAMka,EAAE3J,KAAK,mBAAmB2J,EAAE,IAAIhwB,EAAE2vB,EAAE7Z,GAAG,CAAC4Z,QAAQ,IAAIppB,EAAEwP,GAAG,GAAG6E,KAAK3a,EAAE0vB,SAAQ,SAASvnB,GAAG,IAAI0nB,EAAEvpB,EAAEwP,GAAG,GAAG3N,GAAG,OAAOynB,EAAEC,GAAG1nB,KAAInI,EAAEA,EAAE0vB,QAAQrY,EAAE/Q,EAAEqpB,EAAExY,GAAG,OAAOwY,EAAE7Z,GAAG4Z,QAAQ,IAAI,IAAIK,EAAE,mBAAmBD,GAASA,EAAQ3nB,EAAE,EAAEA,EAAEgP,EAAEhZ,OAAOgK,IAAIynB,EAAEzY,EAAEhP,IAAI,OAAOynB,EAAjb,CAAob,CAACM,EAAE,CAAC,SAAS/nB,EAAE0nB,EAAE/Z,GAAG,aAAa,IAAIL,EAAEtN,EAAE,WAAW0N,EAAE1N,EAAE,aAAagoB,EAAE,oEAAoEra,EAAEsa,OAAO,SAASjoB,GAAG,IAAI,IAAI0nB,EAAE/Z,EAAEka,EAAEhwB,EAAEqX,EAAE/Q,EAAEqpB,EAAExY,EAAE,GAAGyY,EAAE,EAAEG,EAAE5nB,EAAEhK,OAAOkyB,EAAEN,EAAEla,EAAE,WAAWJ,EAAE6a,UAAUnoB,GAAGynB,EAAEznB,EAAEhK,QAAQkyB,EAAEN,EAAEH,EAAEI,EAAEna,GAAGga,EAAE1nB,EAAEynB,KAAK9Z,EAAE8Z,EAAEG,EAAE5nB,EAAEynB,KAAK,EAAEA,EAAEG,EAAE5nB,EAAEynB,KAAK,IAAIC,EAAE1nB,EAAEme,WAAWsJ,KAAK9Z,EAAE8Z,EAAEG,EAAE5nB,EAAEme,WAAWsJ,KAAK,EAAEA,EAAEG,EAAE5nB,EAAEme,WAAWsJ,KAAK,GAAG5vB,EAAE6vB,GAAG,EAAExY,GAAG,EAAEwY,IAAI,EAAE/Z,GAAG,EAAExP,EAAE,EAAE+pB,GAAG,GAAGva,IAAI,EAAEka,GAAG,EAAE,GAAGL,EAAE,EAAEU,EAAE,GAAGL,EAAE,GAAG7Y,EAAE3P,KAAK2oB,EAAEI,OAAOvwB,GAAGmwB,EAAEI,OAAOlZ,GAAG8Y,EAAEI,OAAOjqB,GAAG6pB,EAAEI,OAAOZ,IAAI,OAAOxY,EAAE5W,KAAK,KAAKuV,EAAE0a,OAAO,SAASroB,GAAG,IAAI0nB,EAAE/Z,EAAEka,EAAEhwB,EAAEqX,EAAE/Q,EAAEqpB,EAAE,EAAExY,EAAE,EAAEyY,EAAE,QAAQ,GAAGznB,EAAEoP,OAAO,EAAEqY,EAAEzxB,UAAUyxB,EAAE,MAAM,IAAIK,MAAM,mDAAmD,IAAIF,EAAEM,EAAE,GAAGloB,EAAEA,EAAEzI,QAAQ,mBAAmB,KAAKvB,OAAO,EAAE,GAAGgK,EAAEooB,OAAOpoB,EAAEhK,OAAO,KAAKgyB,EAAEI,OAAO,KAAKF,IAAIloB,EAAEooB,OAAOpoB,EAAEhK,OAAO,KAAKgyB,EAAEI,OAAO,KAAKF,IAAIA,EAAE,GAAG,EAAE,MAAM,IAAIJ,MAAM,6CAA6C,IAAIF,EAAEla,EAAE4a,WAAW,IAAIC,WAAW,EAAEL,GAAG,IAAIjtB,MAAM,EAAEitB,GAAGV,EAAExnB,EAAEhK,QAAQ0xB,EAAEM,EAAEttB,QAAQsF,EAAEooB,OAAOZ,OAAO,GAAG3vB,EAAEmwB,EAAEttB,QAAQsF,EAAEooB,OAAOZ,QAAQ,EAAE7Z,GAAG,GAAG9V,IAAI,GAAGqX,EAAE8Y,EAAEttB,QAAQsF,EAAEooB,OAAOZ,QAAQ,EAAEK,GAAG,EAAE3Y,IAAI,GAAG/Q,EAAE6pB,EAAEttB,QAAQsF,EAAEooB,OAAOZ,OAAOI,EAAE5Y,KAAK0Y,EAAE,KAAKxY,IAAI0Y,EAAE5Y,KAAKrB,GAAG,KAAKxP,IAAIypB,EAAE5Y,KAAK6Y,GAAG,OAAOD,IAAI,CAAC,YAAY,GAAG,UAAU,KAAKY,EAAE,CAAC,SAASxoB,EAAE0nB,EAAE/Z,GAAG,aAAa,IAAIka,EAAE7nB,EAAE,cAAcnI,EAAEmI,EAAE,uBAAuBkP,EAAElP,EAAE,uBAAuB7B,EAAE6B,EAAE,4BAA4B,SAASwnB,EAAExnB,EAAE0nB,EAAE/Z,EAAEka,EAAEhwB,GAAGuE,KAAKqsB,eAAezoB,EAAE5D,KAAKssB,iBAAiBhB,EAAEtrB,KAAKusB,MAAMhb,EAAEvR,KAAKwsB,YAAYf,EAAEzrB,KAAKysB,kBAAkBhxB,EAAE2vB,EAAEsB,UAAU,CAACC,iBAAiB,WAAW,IAAI/oB,EAAE,IAAInI,EAAEgwB,EAAEmB,QAAQjM,QAAQ3gB,KAAKysB,oBAAoBI,KAAK7sB,KAAKwsB,YAAYM,oBAAoBD,KAAK,IAAI9qB,EAAE,gBAAgBupB,EAAEtrB,KAAK,OAAO4D,EAAEkG,GAAG,OAAM,WAAW,GAAG9J,KAAK+sB,WAAWC,cAAc1B,EAAEgB,iBAAiB,MAAM,IAAIZ,MAAM,4CAA2C9nB,GAAGqpB,oBAAoB,WAAW,OAAO,IAAIxxB,EAAEgwB,EAAEmB,QAAQjM,QAAQ3gB,KAAKysB,oBAAoBS,eAAe,iBAAiBltB,KAAKqsB,gBAAgBa,eAAe,mBAAmBltB,KAAKssB,kBAAkBY,eAAe,QAAQltB,KAAKusB,OAAOW,eAAe,cAAcltB,KAAKwsB,eAAepB,EAAE+B,iBAAiB,SAASvpB,EAAE0nB,EAAE/Z,GAAG,OAAO3N,EAAEipB,KAAK,IAAI/Z,GAAG+Z,KAAK,IAAI9qB,EAAE,qBAAqB8qB,KAAKvB,EAAE8B,eAAe7b,IAAIsb,KAAK,IAAI9qB,EAAE,mBAAmBmrB,eAAe,cAAc5B,IAAIA,EAAEH,QAAQC,GAAG,CAAC,aAAa,EAAE,sBAAsB,GAAG,2BAA2B,GAAG,sBAAsB,KAAKrZ,EAAE,CAAC,SAASnO,EAAE0nB,EAAE/Z,GAAG,aAAa,IAAIka,EAAE7nB,EAAE,0BAA0B2N,EAAE8b,MAAM,CAACC,MAAM,OAAOF,eAAe,WAAW,OAAO,IAAI3B,EAAE,sBAAsBqB,iBAAiB,WAAW,OAAO,IAAIrB,EAAE,yBAAyBla,EAAEgc,QAAQ3pB,EAAE,YAAY,CAAC,UAAU,EAAE,yBAAyB,KAAKoO,EAAE,CAAC,SAASpO,EAAE0nB,EAAE/Z,GAAG,aAAa,IAAIka,EAAE7nB,EAAE,WAAewnB,EAAE,WAAW,IAAI,IAAIxnB,EAAE0nB,EAAE,GAAG/Z,EAAE,EAAEA,EAAE,IAAIA,IAAI,CAAC3N,EAAE2N,EAAE,IAAI,IAAIka,EAAE,EAAEA,EAAE,EAAEA,IAAI7nB,EAAE,EAAEA,EAAE,WAAWA,IAAI,EAAEA,IAAI,EAAE0nB,EAAE/Z,GAAG3N,EAAE,OAAO0nB,EAA5G,GAAiHA,EAAEH,QAAQ,SAASvnB,EAAE0nB,GAAG,YAAO,IAAS1nB,GAAGA,EAAEhK,OAAO,WAAW6xB,EAAEM,UAAUnoB,GAAG,SAASA,EAAE0nB,EAAE/Z,EAAEka,GAAG,IAAIhwB,EAAE2vB,EAAEtY,EAAE2Y,EAAEla,EAAE3N,IAAI,EAAE,IAAI,IAAI7B,EAAE0pB,EAAE1pB,EAAE+Q,EAAE/Q,IAAI6B,EAAEA,IAAI,EAAEnI,EAAE,KAAKmI,EAAE0nB,EAAEvpB,KAAK,OAAO,EAAE6B,EAA3F,CAA8F,EAAE0nB,EAAE1nB,EAAEA,EAAEhK,OAAO,GAAG,SAASgK,EAAE0nB,EAAE/Z,EAAEka,GAAG,IAAIhwB,EAAE2vB,EAAEtY,EAAE2Y,EAAEla,EAAE3N,IAAI,EAAE,IAAI,IAAI7B,EAAE0pB,EAAE1pB,EAAE+Q,EAAE/Q,IAAI6B,EAAEA,IAAI,EAAEnI,EAAE,KAAKmI,EAAE0nB,EAAEvJ,WAAWhgB,KAAK,OAAO,EAAE6B,EAAtG,CAAyG,EAAE0nB,EAAE1nB,EAAEA,EAAEhK,OAAO,GAAG,IAAI,CAAC,UAAU,KAAKqY,EAAE,CAAC,SAASrO,EAAE0nB,EAAE/Z,GAAG,aAAaA,EAAEic,QAAO,EAAGjc,EAAEkc,QAAO,EAAGlc,EAAEmc,KAAI,EAAGnc,EAAEoc,eAAc,EAAGpc,EAAEjY,KAAK,KAAKiY,EAAEib,YAAY,KAAKjb,EAAEqc,mBAAmB,KAAKrc,EAAEsc,QAAQ,KAAKtc,EAAEuc,gBAAgB,KAAKvc,EAAEwc,eAAe,MAAM,IAAIC,EAAE,CAAC,SAASpqB,EAAE0nB,EAAE/Z,GAAG,aAAa,IAAIka,EAAE,KAAKA,EAAE,oBAAoBmB,QAAQA,QAAQhpB,EAAE,OAAO0nB,EAAEH,QAAQ,CAACyB,QAAQnB,IAAI,CAACwC,IAAI,KAAKC,EAAE,CAAC,SAAStqB,EAAE0nB,EAAE/Z,GAAG,aAAa,IAAIka,EAAE,oBAAoBU,YAAY,oBAAoBgC,aAAa,oBAAoBC,YAAY3yB,EAAEmI,EAAE,QAAQkP,EAAElP,EAAE,WAAW7B,EAAE6B,EAAE,0BAA0BwnB,EAAEK,EAAE,aAAa,QAAQ,SAAS7Y,EAAEhP,EAAE0nB,GAAGvpB,EAAEqU,KAAKpW,KAAK,eAAe4D,GAAG5D,KAAKquB,MAAM,KAAKruB,KAAKsuB,YAAY1qB,EAAE5D,KAAKuuB,aAAajD,EAAEtrB,KAAKwuB,KAAK,GAAGjd,EAAE+b,MAAM,OAAOxa,EAAE2b,SAAS7b,EAAE7Q,GAAG6Q,EAAE8Z,UAAUgC,aAAa,SAAS9qB,GAAG5D,KAAKwuB,KAAK5qB,EAAE4qB,KAAK,OAAOxuB,KAAKquB,OAAOruB,KAAK2uB,cAAc3uB,KAAKquB,MAAMprB,KAAK6P,EAAE8b,YAAYxD,EAAExnB,EAAEQ,OAAM,IAAKwO,EAAE8Z,UAAUmC,MAAM,WAAW9sB,EAAE2qB,UAAUmC,MAAMzY,KAAKpW,MAAM,OAAOA,KAAKquB,OAAOruB,KAAK2uB,cAAc3uB,KAAKquB,MAAMprB,KAAK,IAAG,IAAK2P,EAAE8Z,UAAUoC,QAAQ,WAAW/sB,EAAE2qB,UAAUoC,QAAQ1Y,KAAKpW,MAAMA,KAAKquB,MAAM,MAAMzb,EAAE8Z,UAAUiC,YAAY,WAAW3uB,KAAKquB,MAAM,IAAI5yB,EAAEuE,KAAKsuB,aAAa,CAACS,KAAI,EAAGC,MAAMhvB,KAAKuuB,aAAaS,QAAQ,IAAI,IAAI1D,EAAEtrB,KAAKA,KAAKquB,MAAMY,OAAO,SAASrrB,GAAG0nB,EAAEroB,KAAK,CAACmB,KAAKR,EAAE4qB,KAAKlD,EAAEkD,SAASjd,EAAE6b,eAAe,SAASxpB,GAAG,OAAO,IAAIgP,EAAE,UAAUhP,IAAI2N,EAAEub,iBAAiB,WAAW,OAAO,IAAIla,EAAE,UAAU,MAAM,CAAC,yBAAyB,GAAG,UAAU,GAAGsc,KAAK,KAAKC,EAAE,CAAC,SAASvrB,EAAE0nB,EAAE/Z,GAAG,aAAa,SAAS6d,EAAExrB,EAAE0nB,GAAG,IAAI/Z,EAAEka,EAAE,GAAG,IAAIla,EAAE,EAAEA,EAAE+Z,EAAE/Z,IAAIka,GAAG9xB,OAAO01B,aAAa,IAAIzrB,GAAGA,KAAK,EAAE,OAAO6nB,EAAE,SAASA,EAAE7nB,EAAE0nB,EAAE/Z,EAAEka,EAAEhwB,EAAEqX,GAAG,IAAI/Q,EAAEqpB,EAAExY,EAAEhP,EAAE0rB,KAAKjE,EAAEznB,EAAE4oB,YAAYhB,EAAE1Y,IAAIyc,EAAEC,WAAW1D,EAAE2D,EAAEb,YAAY,SAAS9b,EAAEF,EAAEhR,OAAO0P,EAAEme,EAAEb,YAAY,SAASW,EAAEC,WAAW5c,EAAEhR,OAAOsP,EAAE0B,EAAEib,QAAQjC,EAAE6D,EAAEb,YAAY,SAAS9b,EAAE5B,IAAI2B,EAAE4c,EAAEb,YAAY,SAASW,EAAEC,WAAWte,IAAInS,EAAEuS,EAAE1X,SAASgZ,EAAEhR,KAAKhI,OAAO81B,EAAE7c,EAAEjZ,SAASsX,EAAEtX,OAAOoI,EAAE,GAAG2tB,EAAE,GAAGxd,EAAE,GAAG0V,EAAEjV,EAAE8a,IAAIkC,EAAEhd,EAAEtZ,KAAK2Z,EAAE,CAACsZ,MAAM,EAAEF,eAAe,EAAEC,iBAAiB,GAAGhB,IAAI/Z,IAAI0B,EAAEsZ,MAAM3oB,EAAE2oB,MAAMtZ,EAAEoZ,eAAezoB,EAAEyoB,eAAepZ,EAAEqZ,iBAAiB1oB,EAAE0oB,kBAAkB,IAAIvZ,EAAE,EAAEuY,IAAIvY,GAAG,GAAGyY,IAAIzsB,IAAI2wB,IAAI3c,GAAG,MAAM,IAAI8c,EAAE,EAAEC,EAAE,EAAEjI,IAAIgI,GAAG,IAAI,SAASp0B,GAAGq0B,EAAE,IAAID,GAAG,SAASjsB,EAAE0nB,GAAG,IAAI/Z,EAAE3N,EAAE,OAAOA,IAAI2N,EAAE+Z,EAAE,MAAM,QAAQ,MAAM/Z,IAAI,GAA7D,CAAiEqB,EAAEkb,gBAAgBjG,KAAKiI,EAAE,GAAGD,GAAG,SAASjsB,GAAG,OAAO,IAAIA,GAAG,GAA1B,CAA8BgP,EAAEmb,iBAAiBhsB,EAAE6tB,EAAEG,cAAchuB,IAAI,EAAEA,GAAG6tB,EAAEI,gBAAgBjuB,IAAI,EAAEA,GAAG6tB,EAAEK,gBAAgB,EAAE7E,EAAEwE,EAAEM,iBAAiB,KAAK9E,IAAI,EAAEA,GAAGwE,EAAEO,cAAc,EAAE/E,IAAI,EAAEA,GAAGwE,EAAEQ,aAAarxB,IAAI4wB,EAAEP,EAAE,EAAE,GAAGA,EAAEiB,EAAEvE,GAAG,GAAGxa,EAAEtP,GAAG,KAAKotB,EAAEO,EAAE/1B,OAAO,GAAG+1B,GAAGD,IAAIvd,EAAEid,EAAE,EAAE,GAAGA,EAAEiB,EAAEzE,GAAG,GAAG/Y,EAAE7Q,GAAG,KAAKotB,EAAEjd,EAAEvY,OAAO,GAAGuY,GAAG,IAAIM,EAAE,GAAG,OAAOA,GAAG,OAAOA,GAAG2c,EAAErc,EAAE,GAAGN,GAAG4Y,EAAEiC,MAAM7a,GAAG2c,EAAErtB,EAAE,GAAG0Q,GAAG2c,EAAEhE,EAAE,GAAG3Y,GAAG2c,EAAEnc,EAAEsZ,MAAM,GAAG9Z,GAAG2c,EAAEnc,EAAEoZ,eAAe,GAAG5Z,GAAG2c,EAAEnc,EAAEqZ,iBAAiB,GAAG7Z,GAAG2c,EAAEtD,EAAElyB,OAAO,GAAG6Y,GAAG2c,EAAEptB,EAAEpI,OAAO,GAAG,CAAC02B,WAAWC,EAAEC,kBAAkB/d,EAAEqZ,EAAE9pB,EAAEyuB,UAAUF,EAAEG,oBAAoBtB,EAAEU,EAAE,GAAGrd,EAAE2c,EAAExD,EAAEhyB,OAAO,GAAG,WAAWw1B,EAAES,EAAE,GAAGT,EAAE3D,EAAE,GAAGK,EAAE9pB,EAAE4pB,GAAG,IAAI6D,EAAE7rB,EAAE,YAAYnI,EAAEmI,EAAE,2BAA2B2rB,EAAE3rB,EAAE,WAAWysB,EAAEzsB,EAAE,YAAY2sB,EAAE3sB,EAAE,gBAAgB,SAASkP,EAAElP,EAAE0nB,EAAE/Z,EAAEka,GAAGhwB,EAAE2a,KAAKpW,KAAK,iBAAiBA,KAAK2wB,aAAa,EAAE3wB,KAAK4wB,WAAWtF,EAAEtrB,KAAK6wB,YAAYtf,EAAEvR,KAAK8wB,eAAerF,EAAEzrB,KAAK+wB,YAAYntB,EAAE5D,KAAKgxB,YAAW,EAAGhxB,KAAKixB,cAAc,GAAGjxB,KAAKkxB,WAAW,GAAGlxB,KAAKmxB,oBAAoB,EAAEnxB,KAAKoxB,aAAa,EAAEpxB,KAAKqxB,YAAY,KAAKrxB,KAAKsxB,SAAS,GAAG7B,EAAEhB,SAAS3b,EAAErX,GAAGqX,EAAE4Z,UAAUzpB,KAAK,SAASW,GAAG,IAAI0nB,EAAE1nB,EAAE4qB,KAAK+C,SAAS,EAAEhgB,EAAEvR,KAAKoxB,aAAa3F,EAAEzrB,KAAKsxB,SAAS13B,OAAOoG,KAAKgxB,WAAWhxB,KAAKixB,cAAchuB,KAAKW,IAAI5D,KAAK2wB,cAAc/sB,EAAEQ,KAAKxK,OAAO6B,EAAEixB,UAAUzpB,KAAKmT,KAAKpW,KAAK,CAACoE,KAAKR,EAAEQ,KAAKoqB,KAAK,CAAC6C,YAAYrxB,KAAKqxB,YAAYE,QAAQhgB,GAAG+Z,EAAE,KAAK/Z,EAAEka,EAAE,IAAIla,EAAE,SAASuB,EAAE4Z,UAAU8E,aAAa,SAAS5tB,GAAG5D,KAAKmxB,oBAAoBnxB,KAAK2wB,aAAa3wB,KAAKqxB,YAAYztB,EAAE0rB,KAAK1tB,KAAK,IAAI0pB,EAAEtrB,KAAK+wB,cAAcntB,EAAE0rB,KAAK5B,IAAI,GAAGpC,EAAE,CAAC,IAAI/Z,EAAEka,EAAE7nB,EAAE0nB,GAAE,EAAGtrB,KAAKmxB,oBAAoBnxB,KAAK6wB,YAAY7wB,KAAK8wB,gBAAgB9wB,KAAKiD,KAAK,CAACmB,KAAKmN,EAAE+e,WAAW9B,KAAK,CAAC+C,QAAQ,UAAUvxB,KAAKgxB,YAAW,GAAIle,EAAE4Z,UAAU+E,aAAa,SAAS7tB,GAAG5D,KAAKgxB,YAAW,EAAG,IAAI1F,EAAEtrB,KAAK+wB,cAAcntB,EAAE0rB,KAAK5B,IAAInc,EAAEka,EAAE7nB,EAAE0nB,GAAE,EAAGtrB,KAAKmxB,oBAAoBnxB,KAAK6wB,YAAY7wB,KAAK8wB,gBAAgB,GAAG9wB,KAAKkxB,WAAWjuB,KAAKsO,EAAEkf,WAAWnF,EAAEtrB,KAAKiD,KAAK,CAACmB,KAAK,SAASR,GAAG,OAAO2sB,EAAEmB,gBAAgBtC,EAAExrB,EAAE2oB,MAAM,GAAG6C,EAAExrB,EAAEyoB,eAAe,GAAG+C,EAAExrB,EAAE0oB,iBAAiB,GAA7F,CAAiG1oB,GAAG4qB,KAAK,CAAC+C,QAAQ,YAAY,IAAIvxB,KAAKiD,KAAK,CAACmB,KAAKmN,EAAE+e,WAAW9B,KAAK,CAAC+C,QAAQ,KAAKvxB,KAAKixB,cAAcr3B,QAAQoG,KAAKiD,KAAKjD,KAAKixB,cAAcU,SAAS3xB,KAAKqxB,YAAY,MAAMve,EAAE4Z,UAAUmC,MAAM,WAAW,IAAI,IAAIjrB,EAAE5D,KAAK2wB,aAAarF,EAAE,EAAEA,EAAEtrB,KAAKkxB,WAAWt3B,OAAO0xB,IAAItrB,KAAKiD,KAAK,CAACmB,KAAKpE,KAAKkxB,WAAW5F,GAAGkD,KAAK,CAAC+C,QAAQ,OAAO,IAAIhgB,EAAEvR,KAAK2wB,aAAa/sB,EAAE6nB,EAAE,SAAS7nB,EAAE0nB,EAAE/Z,EAAEka,EAAEhwB,GAAG,IAAIqX,EAAE2c,EAAEb,YAAY,SAASnzB,EAAEgwB,IAAI,OAAO8E,EAAEqB,sBAAsB,WAAWxC,EAAExrB,EAAE,GAAGwrB,EAAExrB,EAAE,GAAGwrB,EAAE9D,EAAE,GAAG8D,EAAE7d,EAAE,GAAG6d,EAAEtc,EAAElZ,OAAO,GAAGkZ,EAA3I,CAA8I9S,KAAKkxB,WAAWt3B,OAAO2X,EAAE3N,EAAE5D,KAAK4wB,WAAW5wB,KAAK8wB,gBAAgB9wB,KAAKiD,KAAK,CAACmB,KAAKqnB,EAAE+C,KAAK,CAAC+C,QAAQ,QAAQze,EAAE4Z,UAAUmF,kBAAkB,WAAW7xB,KAAK8xB,SAAS9xB,KAAKsxB,SAASK,QAAQ3xB,KAAKwxB,aAAaxxB,KAAK8xB,SAAS/E,YAAY/sB,KAAK+xB,SAAS/xB,KAAK8xB,SAASE,QAAQhyB,KAAK8xB,SAASG,UAAUnf,EAAE4Z,UAAUwF,iBAAiB,SAAStuB,GAAG5D,KAAKsxB,SAASruB,KAAKW,GAAG,IAAI0nB,EAAEtrB,KAAK,OAAO4D,EAAEkG,GAAG,QAAO,SAASlG,GAAG0nB,EAAEoD,aAAa9qB,MAAKA,EAAEkG,GAAG,OAAM,WAAWwhB,EAAEmG,aAAanG,EAAEwG,SAAS/E,YAAYzB,EAAEgG,SAAS13B,OAAO0xB,EAAEuG,oBAAoBvG,EAAE6G,SAAQvuB,EAAEkG,GAAG,SAAQ,SAASlG,GAAG0nB,EAAE8G,MAAMxuB,MAAK5D,MAAM8S,EAAE4Z,UAAUuF,OAAO,WAAW,QAAQx2B,EAAEixB,UAAUuF,OAAO7b,KAAKpW,SAASA,KAAK8xB,UAAU9xB,KAAKsxB,SAAS13B,QAAQoG,KAAK6xB,qBAAoB,GAAI7xB,KAAK8xB,UAAU9xB,KAAKsxB,SAAS13B,QAAQoG,KAAKqyB,oBAAe,GAAQryB,KAAKmyB,OAAM,KAAMrf,EAAE4Z,UAAU0F,MAAM,SAASxuB,GAAG,IAAI0nB,EAAEtrB,KAAKsxB,SAAS,IAAI71B,EAAEixB,UAAU0F,MAAMhc,KAAKpW,KAAK4D,GAAG,OAAM,EAAG,IAAI,IAAI2N,EAAE,EAAEA,EAAE+Z,EAAE1xB,OAAO2X,IAAI,IAAI+Z,EAAE/Z,GAAG6gB,MAAMxuB,GAAG,MAAMA,IAAI,OAAM,GAAIkP,EAAE4Z,UAAU4F,KAAK,WAAW72B,EAAEixB,UAAU4F,KAAKlc,KAAKpW,MAAM,IAAI,IAAI4D,EAAE5D,KAAKsxB,SAAShG,EAAE,EAAEA,EAAE1nB,EAAEhK,OAAO0xB,IAAI1nB,EAAE0nB,GAAGgH,QAAQhH,EAAEH,QAAQrY,GAAG,CAAC,WAAW,EAAE,eAAe,GAAG,0BAA0B,GAAG,UAAU,GAAG,WAAW,KAAKyf,EAAE,CAAC,SAAS3uB,EAAE0nB,EAAE/Z,GAAG,aAAa,IAAI8Z,EAAEznB,EAAE,mBAAmB6nB,EAAE7nB,EAAE,mBAAmB2N,EAAEihB,eAAe,SAAS5uB,EAAE7B,EAAEupB,GAAG,IAAIF,EAAE,IAAIK,EAAE1pB,EAAEgvB,YAAYzF,EAAEvpB,EAAE0wB,SAAS1wB,EAAE+uB,gBAAgBle,EAAE,EAAE,IAAIhP,EAAE1C,SAAQ,SAAS0C,EAAE0nB,GAAG1Y,IAAI,IAAIrB,EAAE,SAAS3N,EAAE0nB,GAAG,IAAI/Z,EAAE3N,GAAG0nB,EAAEG,EAAEJ,EAAE9Z,GAAG,IAAIka,EAAE,MAAM,IAAIC,MAAMna,EAAE,wCAAwC,OAAOka,EAAvG,CAA0GH,EAAExV,QAAQ0W,YAAYzqB,EAAEyqB,aAAaf,EAAEH,EAAExV,QAAQ8X,oBAAoB7rB,EAAE6rB,oBAAoB,GAAGnyB,EAAE6vB,EAAEoC,IAAI5a,EAAEwY,EAAEhyB,KAAKgyB,EAAEoH,gBAAgBnhB,EAAEka,GAAGyB,eAAe,OAAO,CAACtrB,KAAKgC,EAAE8pB,IAAIjyB,EAAEnC,KAAKwZ,EAAE+a,QAAQvC,EAAEuC,SAAS,GAAGC,gBAAgBxC,EAAEwC,gBAAgBC,eAAezC,EAAEyC,iBAAiBlB,KAAKzB,MAAKA,EAAEgG,aAAaxe,EAAE,MAAMhP,GAAGwnB,EAAEgH,MAAMxuB,GAAG,OAAOwnB,IAAI,CAAC,kBAAkB,EAAE,kBAAkB,IAAIuH,GAAG,CAAC,SAAS/uB,EAAE0nB,EAAE/Z,GAAG,aAAa,SAASka,IAAI,KAAKzrB,gBAAgByrB,GAAG,OAAO,IAAIA,EAAE,GAAGvrB,UAAUtG,OAAO,MAAM,IAAI8xB,MAAM,kGAAkG1rB,KAAK4yB,MAAMp1B,OAAOq1B,OAAO,MAAM7yB,KAAK6tB,QAAQ,KAAK7tB,KAAK8yB,KAAK,GAAG9yB,KAAK+yB,MAAM,WAAW,IAAInvB,EAAE,IAAI6nB,EAAE,IAAI,IAAIH,KAAKtrB,KAAK,mBAAmBA,KAAKsrB,KAAK1nB,EAAE0nB,GAAGtrB,KAAKsrB,IAAI,OAAO1nB,IAAI6nB,EAAEiB,UAAU9oB,EAAE,aAAaovB,UAAUpvB,EAAE,UAAU6nB,EAAEwH,QAAQrvB,EAAE,aAAa6nB,EAAEyH,SAAStvB,EAAE,cAAc6nB,EAAE0H,QAAQ,SAAS1H,EAAEuH,UAAU,SAASpvB,EAAE0nB,GAAG,OAAM,IAAKG,GAAGuH,UAAUpvB,EAAE0nB,IAAIG,EAAE2H,SAASxvB,EAAE,cAAc0nB,EAAEH,QAAQM,GAAG,CAAC,aAAa,EAAE,aAAa,EAAE,SAAS,GAAG,WAAW,GAAG,YAAY,KAAK4H,GAAG,CAAC,SAASzvB,EAAE0nB,EAAE/Z,GAAG,aAAa,IAAI8Z,EAAEznB,EAAE,WAAWnI,EAAEmI,EAAE,cAAc6nB,EAAE7nB,EAAE,UAAUkP,EAAElP,EAAE,gBAAgB7B,EAAE6B,EAAE,uBAAuB4nB,EAAE5nB,EAAE,iBAAiB,SAASkoB,EAAEL,GAAG,OAAO,IAAIhwB,EAAEmxB,SAAQ,SAAShpB,EAAE0nB,GAAG,IAAI/Z,EAAEka,EAAE6H,aAAa3G,mBAAmBE,KAAK,IAAI9qB,GAAGwP,EAAEzH,GAAG,SAAQ,SAASlG,GAAG0nB,EAAE1nB,MAAKkG,GAAG,OAAM,WAAWyH,EAAEwb,WAAWR,QAAQd,EAAE6H,aAAa/G,MAAMjB,EAAE,IAAII,MAAM,mCAAmC9nB,OAAMquB,YAAW3G,EAAEH,QAAQ,SAASvnB,EAAEwnB,GAAG,IAAIxY,EAAE5S,KAAK,OAAOorB,EAAEC,EAAE5wB,OAAO2wB,GAAG,GAAG,CAACoC,QAAO,EAAG+F,YAAW,EAAGC,uBAAsB,EAAG7F,eAAc,EAAG8F,eAAehI,EAAEiI,aAAalI,EAAEmI,QAAQnI,EAAEoI,SAAShwB,GAAGnI,EAAEmxB,QAAQiH,OAAO,IAAInI,MAAM,yDAAyDL,EAAEyI,eAAe,sBAAsBlwB,GAAE,EAAGwnB,EAAEoI,sBAAsBpI,EAAEoC,QAAQ9oB,MAAK,SAASd,GAAG,IAAI0nB,EAAE,IAAIxY,EAAEsY,GAAG,OAAOE,EAAE7K,KAAK7c,GAAG0nB,KAAI5mB,MAAK,SAASd,GAAG,IAAI0nB,EAAE,CAAC7vB,EAAEmxB,QAAQjM,QAAQ/c,IAAI2N,EAAE3N,EAAEgvB,MAAM,GAAGxH,EAAEmI,WAAW,IAAI,IAAI9H,EAAE,EAAEA,EAAEla,EAAE3X,OAAO6xB,IAAIH,EAAEroB,KAAK6oB,EAAEva,EAAEka,KAAK,OAAOhwB,EAAEmxB,QAAQmH,IAAIzI,MAAK5mB,MAAK,SAASd,GAAG,IAAI,IAAI0nB,EAAE1nB,EAAE+tB,QAAQpgB,EAAE+Z,EAAEsH,MAAMnH,EAAE,EAAEA,EAAEla,EAAE3X,OAAO6xB,IAAI,CAAC,IAAIhwB,EAAE8V,EAAEka,GAAG3Y,EAAErX,EAAEu4B,YAAYjyB,EAAEspB,EAAE1K,QAAQllB,EAAEu4B,aAAaphB,EAAE0c,KAAKvtB,EAAEtG,EAAE63B,aAAa,CAAC7F,QAAO,EAAG+F,uBAAsB,EAAGl6B,KAAKmC,EAAEnC,KAAKo0B,IAAIjyB,EAAEiyB,IAAIG,QAAQpyB,EAAEw4B,eAAer6B,OAAO6B,EAAEw4B,eAAe,KAAKnG,gBAAgBryB,EAAEqyB,gBAAgBC,eAAetyB,EAAEsyB,eAAeJ,cAAcvC,EAAEuC,gBAAgBlyB,EAAEiyB,MAAM9a,EAAE0c,KAAKvtB,GAAGmyB,mBAAmBphB,GAAG,OAAOwY,EAAEsF,WAAWh3B,SAASgZ,EAAEib,QAAQvC,EAAEsF,YAAYhe,OAAM,CAAC,aAAa,EAAE,gBAAgB,GAAG,sBAAsB,GAAG,SAAS,GAAG,UAAU,GAAG,eAAe,KAAKuhB,GAAG,CAAC,SAASvwB,EAAE0nB,EAAE/Z,GAAG,aAAa,IAAIka,EAAE7nB,EAAE,YAAYnI,EAAEmI,EAAE,2BAA2B,SAASkP,EAAElP,EAAE0nB,GAAG7vB,EAAE2a,KAAKpW,KAAK,mCAAmC4D,GAAG5D,KAAKo0B,gBAAe,EAAGp0B,KAAKq0B,YAAY/I,GAAGG,EAAEgD,SAAS3b,EAAErX,GAAGqX,EAAE4Z,UAAU2H,YAAY,SAASzwB,GAAG,IAAI0nB,EAAEtrB,MAAMA,KAAKs0B,QAAQ1wB,GAAGouB,QAAQpuB,EAAEkG,GAAG,QAAO,SAASlG,GAAG0nB,EAAEroB,KAAK,CAACmB,KAAKR,EAAE4qB,KAAK,CAAC+C,QAAQ,QAAOznB,GAAG,SAAQ,SAASlG,GAAG0nB,EAAEyG,SAAS/xB,KAAKqyB,eAAezuB,EAAE0nB,EAAE8G,MAAMxuB,MAAKkG,GAAG,OAAM,WAAWwhB,EAAEyG,SAASzG,EAAE8I,gBAAe,EAAG9I,EAAE6G,UAASrf,EAAE4Z,UAAUsF,MAAM,WAAW,QAAQv2B,EAAEixB,UAAUsF,MAAM5b,KAAKpW,QAAQA,KAAKs0B,QAAQtC,SAAQ,IAAKlf,EAAE4Z,UAAUuF,OAAO,WAAW,QAAQx2B,EAAEixB,UAAUuF,OAAO7b,KAAKpW,QAAQA,KAAKo0B,eAAep0B,KAAKmyB,MAAMnyB,KAAKs0B,QAAQrC,UAAS,IAAK3G,EAAEH,QAAQrY,GAAG,CAAC,0BAA0B,GAAG,WAAW,KAAKyhB,GAAG,CAAC,SAAS3wB,EAAE0nB,EAAE/Z,GAAG,aAAa,IAAI9V,EAAEmI,EAAE,mBAAmB4wB,SAAS,SAAS/I,EAAE7nB,EAAE0nB,EAAE/Z,GAAG9V,EAAE2a,KAAKpW,KAAKsrB,GAAGtrB,KAAKy0B,QAAQ7wB,EAAE,IAAI6nB,EAAEzrB,KAAK4D,EAAEkG,GAAG,QAAO,SAASlG,EAAE0nB,GAAGG,EAAExoB,KAAKW,IAAI6nB,EAAEgJ,QAAQzC,QAAQzgB,GAAGA,EAAE+Z,MAAKxhB,GAAG,SAAQ,SAASlG,GAAG6nB,EAAEiJ,KAAK,QAAQ9wB,MAAKkG,GAAG,OAAM,WAAW2hB,EAAExoB,KAAK,SAAQW,EAAE,YAAY6qB,SAAShD,EAAEhwB,GAAGgwB,EAAEiB,UAAUiI,MAAM,WAAW30B,KAAKy0B,QAAQxC,UAAU3G,EAAEH,QAAQM,GAAG,CAAC,WAAW,GAAG,kBAAkB,KAAKmJ,GAAG,CAAC,SAAShxB,EAAE0nB,EAAE/Z,GAAG,aAAa+Z,EAAEH,QAAQ,CAACwI,OAAO,oBAAoBkB,EAAOC,cAAc,SAASlxB,EAAE0nB,GAAG,GAAGuJ,EAAOE,MAAMF,EAAOE,OAAO5I,WAAW4I,KAAK,OAAOF,EAAOE,KAAKnxB,EAAE0nB,GAAG,GAAG,iBAAiB1nB,EAAE,MAAM,IAAI8nB,MAAM,4CAA4C,OAAO,IAAImJ,EAAOjxB,EAAE0nB,IAAI0J,YAAY,SAASpxB,GAAG,GAAGixB,EAAOI,MAAM,OAAOJ,EAAOI,MAAMrxB,GAAG,IAAI0nB,EAAE,IAAIuJ,EAAOjxB,GAAG,OAAO0nB,EAAE4J,KAAK,GAAG5J,GAAG6J,SAAS,SAASvxB,GAAG,OAAOixB,EAAOM,SAASvxB,IAAIgwB,SAAS,SAAShwB,GAAG,OAAOA,GAAG,mBAAmBA,EAAEkG,IAAI,mBAAmBlG,EAAEouB,OAAO,mBAAmBpuB,EAAEquB,UAAU,IAAImD,GAAG,CAAC,SAASxxB,EAAE0nB,EAAE/Z,GAAG,aAAa,SAASuB,EAAElP,EAAE0nB,EAAE/Z,GAAG,IAAIka,EAAEhwB,EAAE4vB,EAAEU,UAAUT,GAAGxY,EAAEuY,EAAE5wB,OAAO8W,GAAG,GAAGua,GAAGhZ,EAAExZ,KAAKwZ,EAAExZ,MAAM,IAAIS,KAAK,OAAO+Y,EAAE0Z,cAAc1Z,EAAE0Z,YAAY1Z,EAAE0Z,YAAY6I,eAAe,iBAAiBviB,EAAEgb,kBAAkBhb,EAAEgb,gBAAgBvsB,SAASuR,EAAEgb,gBAAgB,IAAIhb,EAAEgb,iBAAiB,MAAMhb,EAAEgb,kBAAkBhb,EAAE4a,KAAI,GAAI5a,EAAEib,gBAAgB,GAAGjb,EAAEib,iBAAiBjb,EAAE4a,KAAI,GAAI5a,EAAE4a,MAAM9pB,EAAE8rB,EAAE9rB,IAAIkP,EAAE6a,gBAAgBlC,EAAE1sB,EAAE6E,KAAK5B,EAAEoU,KAAKpW,KAAKyrB,GAAE,GAAI,IAAI1pB,EAAE,WAAWtG,IAAG,IAAKqX,EAAE2a,SAAQ,IAAK3a,EAAE0a,OAAOjc,QAAG,IAASA,EAAEkc,SAAS3a,EAAE2a,QAAQ1rB,IAAIupB,aAAaha,GAAG,IAAIga,EAAEgB,kBAAkBxZ,EAAE4a,MAAMpC,GAAG,IAAIA,EAAE1xB,UAAUkZ,EAAE0a,QAAO,EAAG1a,EAAE2a,QAAO,EAAGnC,EAAE,GAAGxY,EAAE0Z,YAAY,QAAQ/wB,EAAE,UAAU,IAAI2vB,EAAE,KAAKA,EAAEE,aAAaha,GAAGga,aAAaE,EAAEF,EAAEM,EAAE+H,QAAQ/H,EAAEgI,SAAStI,GAAG,IAAIzY,EAAEjP,EAAE0nB,GAAGD,EAAEyI,eAAelwB,EAAE0nB,EAAExY,EAAE2a,OAAO3a,EAAE0gB,sBAAsB1gB,EAAE0a,QAAQ,IAAI5a,EAAE,IAAI1B,EAAEtN,EAAEwnB,EAAEtY,GAAG9S,KAAK4yB,MAAMhvB,GAAGgP,EAAE,IAAInX,EAAEmI,EAAE,UAAUynB,EAAEznB,EAAE,WAAW4nB,EAAE5nB,EAAE,0BAA0B7B,EAAE6B,EAAE,yBAAyBkoB,EAAEloB,EAAE,cAAc0N,EAAE1N,EAAE,sBAAsBsN,EAAEtN,EAAE,eAAewnB,EAAExnB,EAAE,cAAcgoB,EAAEhoB,EAAE,iBAAiBiP,EAAEjP,EAAE,qCAAqC7E,EAAE,SAAS6E,GAAG,MAAMA,EAAEoQ,OAAO,KAAKpQ,EAAEA,EAAE0xB,UAAU,EAAE1xB,EAAEhK,OAAO,IAAI,IAAI0xB,EAAE1nB,EAAE2xB,YAAY,KAAK,OAAO,EAAEjK,EAAE1nB,EAAE0xB,UAAU,EAAEhK,GAAG,IAAIoE,EAAE,SAAS9rB,GAAG,MAAM,MAAMA,EAAEoQ,OAAO,KAAKpQ,GAAG,KAAKA,GAAG5B,EAAE,SAAS4B,EAAE0nB,GAAG,OAAOA,OAAE,IAASA,EAAEA,EAAEQ,EAAE6B,cAAc/pB,EAAE8rB,EAAE9rB,GAAG5D,KAAK4yB,MAAMhvB,IAAIkP,EAAEsD,KAAKpW,KAAK4D,EAAE,KAAK,CAAC8pB,KAAI,EAAGC,cAAcrC,IAAItrB,KAAK4yB,MAAMhvB,IAAI,SAASgP,EAAEhP,GAAG,MAAM,oBAAoBpG,OAAOkvB,UAAU/a,SAASyE,KAAKxS,GAAG,IAAI6nB,EAAE,CAAChL,KAAK,WAAW,MAAM,IAAIiL,MAAM,+EAA+ExqB,QAAQ,SAAS0C,GAAG,IAAI0nB,EAAE/Z,EAAEka,EAAE,IAAIH,KAAKtrB,KAAK4yB,MAAMnH,EAAEzrB,KAAK4yB,MAAMtH,IAAI/Z,EAAE+Z,EAAEtX,MAAMhU,KAAK8yB,KAAKl5B,OAAO0xB,EAAE1xB,UAAU0xB,EAAEtX,MAAM,EAAEhU,KAAK8yB,KAAKl5B,UAAUoG,KAAK8yB,MAAMlvB,EAAE2N,EAAEka,IAAIrtB,OAAO,SAASmT,GAAG,IAAIka,EAAE,GAAG,OAAOzrB,KAAKkB,SAAQ,SAAS0C,EAAE0nB,GAAG/Z,EAAE3N,EAAE0nB,IAAIG,EAAExoB,KAAKqoB,MAAKG,GAAG6D,KAAK,SAAS1rB,EAAE0nB,EAAE/Z,GAAG,GAAG,IAAIrR,UAAUtG,OAAO,OAAOgK,EAAE5D,KAAK8yB,KAAKlvB,EAAEkP,EAAEsD,KAAKpW,KAAK4D,EAAE0nB,EAAE/Z,GAAGvR,KAAK,GAAG4S,EAAEhP,GAAG,CAAC,IAAI6nB,EAAE7nB,EAAE,OAAO5D,KAAK5B,QAAO,SAASwF,EAAE0nB,GAAG,OAAOA,EAAEoC,KAAKjC,EAAE3H,KAAKlgB,MAAK,IAAInI,EAAEuE,KAAK4yB,MAAM5yB,KAAK8yB,KAAKlvB,GAAG,OAAOnI,IAAIA,EAAEiyB,IAAIjyB,EAAE,MAAM+5B,OAAO,SAASjkB,GAAG,IAAIA,EAAE,OAAOvR,KAAK,GAAG4S,EAAErB,GAAG,OAAOvR,KAAK5B,QAAO,SAASwF,EAAE0nB,GAAG,OAAOA,EAAEoC,KAAKnc,EAAEuS,KAAKlgB,MAAK,IAAIA,EAAE5D,KAAK8yB,KAAKvhB,EAAE+Z,EAAEtpB,EAAEoU,KAAKpW,KAAK4D,GAAG6nB,EAAEzrB,KAAK+yB,QAAQ,OAAOtH,EAAEqH,KAAKxH,EAAE1pB,KAAK6pB,GAAG9S,OAAO,SAASpH,GAAGA,EAAEvR,KAAK8yB,KAAKvhB,EAAE,IAAI3N,EAAE5D,KAAK4yB,MAAMrhB,GAAG,GAAG3N,IAAI,MAAM2N,EAAEyC,OAAO,KAAKzC,GAAG,KAAK3N,EAAE5D,KAAK4yB,MAAMrhB,IAAI3N,IAAIA,EAAE8pB,WAAW1tB,KAAK4yB,MAAMrhB,QAAQ,IAAI,IAAI+Z,EAAEtrB,KAAK5B,QAAO,SAASwF,EAAE0nB,GAAG,OAAOA,EAAE1pB,KAAKoS,MAAM,EAAEzC,EAAE3X,UAAU2X,KAAIka,EAAE,EAAEA,EAAEH,EAAE1xB,OAAO6xB,WAAWzrB,KAAK4yB,MAAMtH,EAAEG,GAAG7pB,MAAM,OAAO5B,MAAMy1B,SAAS,WAAW,MAAM,IAAI/J,MAAM,+EAA+EgK,uBAAuB,SAAS9xB,GAAG,IAAI0nB,EAAE/Z,EAAE,GAAG,IAAI,IAAIA,EAAE8Z,EAAE5wB,OAAOmJ,GAAG,GAAG,CAACmtB,aAAY,EAAGvE,YAAY,QAAQoB,mBAAmB,KAAKnvB,KAAK,GAAGg0B,SAAS,MAAM5E,QAAQ,KAAK8H,SAAS,kBAAkB7E,eAAer1B,EAAE+zB,cAAc/wB,KAAK8S,EAAE9S,KAAKX,cAAcyT,EAAEib,YAAYjb,EAAEib,YAAY6I,cAAc,iBAAiB9jB,EAAE9S,OAAO8S,EAAE9S,KAAK,WAAW8S,EAAE9S,KAAK,MAAM,IAAIitB,MAAM,6BAA6BL,EAAEuK,aAAarkB,EAAE9S,MAAM,WAAW8S,EAAEkhB,UAAU,YAAYlhB,EAAEkhB,UAAU,UAAUlhB,EAAEkhB,UAAU,UAAUlhB,EAAEkhB,WAAWlhB,EAAEkhB,SAAS,QAAQ,UAAUlhB,EAAEkhB,WAAWlhB,EAAEkhB,SAAS,OAAO,IAAIhH,EAAEla,EAAEsc,SAAS7tB,KAAK6tB,SAAS,GAAGvC,EAAEF,EAAEoH,eAAexyB,KAAKuR,EAAEka,GAAG,MAAM7nB,IAAI0nB,EAAE,IAAIE,EAAE,UAAU4G,MAAMxuB,GAAG,OAAO,IAAI7B,EAAEupB,EAAE/Z,EAAE9S,MAAM,SAAS8S,EAAEokB,WAAWE,cAAc,SAASjyB,EAAE0nB,GAAG,OAAOtrB,KAAK01B,uBAAuB9xB,GAAGotB,WAAW1F,IAAIwK,mBAAmB,SAASlyB,EAAE0nB,GAAG,OAAO1nB,EAAEA,GAAG,IAAInF,OAAOmF,EAAEnF,KAAK,cAAcuB,KAAK01B,uBAAuB9xB,GAAGmyB,eAAezK,KAAKA,EAAEH,QAAQM,GAAG,CAAC,qBAAqB,EAAE,aAAa,EAAE,aAAa,EAAE,oCAAoC,GAAG,gBAAgB,GAAG,yBAAyB,GAAG,wBAAwB,GAAG,SAAS,GAAG,UAAU,GAAG,cAAc,KAAKuK,GAAG,CAAC,SAASpyB,EAAE0nB,EAAE/Z,GAAG,aAAa+Z,EAAEH,QAAQvnB,EAAE,WAAW,CAACqyB,YAAO,IAASC,GAAG,CAAC,SAAStyB,EAAE0nB,EAAE/Z,GAAG,aAAa,IAAIka,EAAE7nB,EAAE,gBAAgB,SAASnI,EAAEmI,GAAG6nB,EAAErV,KAAKpW,KAAK4D,GAAG,IAAI,IAAI0nB,EAAE,EAAEA,EAAEtrB,KAAKoE,KAAKxK,OAAO0xB,IAAI1nB,EAAE0nB,GAAG,IAAI1nB,EAAE0nB,GAAG1nB,EAAE,YAAY6qB,SAAShzB,EAAEgwB,GAAGhwB,EAAEixB,UAAUyJ,OAAO,SAASvyB,GAAG,OAAO5D,KAAKoE,KAAKpE,KAAKo2B,KAAKxyB,IAAInI,EAAEixB,UAAU2J,qBAAqB,SAASzyB,GAAG,IAAI,IAAI0nB,EAAE1nB,EAAEme,WAAW,GAAGxQ,EAAE3N,EAAEme,WAAW,GAAG0J,EAAE7nB,EAAEme,WAAW,GAAGtmB,EAAEmI,EAAEme,WAAW,GAAGjP,EAAE9S,KAAKpG,OAAO,EAAE,GAAGkZ,IAAIA,EAAE,GAAG9S,KAAKoE,KAAK0O,KAAKwY,GAAGtrB,KAAKoE,KAAK0O,EAAE,KAAKvB,GAAGvR,KAAKoE,KAAK0O,EAAE,KAAK2Y,GAAGzrB,KAAKoE,KAAK0O,EAAE,KAAKrX,EAAE,OAAOqX,EAAE9S,KAAKo2B,KAAK,OAAO,GAAG36B,EAAEixB,UAAU4J,sBAAsB,SAAS1yB,GAAG,IAAI0nB,EAAE1nB,EAAEme,WAAW,GAAGxQ,EAAE3N,EAAEme,WAAW,GAAG0J,EAAE7nB,EAAEme,WAAW,GAAGtmB,EAAEmI,EAAEme,WAAW,GAAGjP,EAAE9S,KAAKu2B,SAAS,GAAG,OAAOjL,IAAIxY,EAAE,IAAIvB,IAAIuB,EAAE,IAAI2Y,IAAI3Y,EAAE,IAAIrX,IAAIqX,EAAE,IAAIrX,EAAEixB,UAAU6J,SAAS,SAAS3yB,GAAG,GAAG5D,KAAKw2B,YAAY5yB,GAAG,IAAIA,EAAE,MAAM,GAAG,IAAI0nB,EAAEtrB,KAAKoE,KAAK4P,MAAMhU,KAAKo2B,KAAKp2B,KAAKoB,MAAMpB,KAAKo2B,KAAKp2B,KAAKoB,MAAMwC,GAAG,OAAO5D,KAAKoB,OAAOwC,EAAE0nB,GAAGA,EAAEH,QAAQ1vB,GAAG,CAAC,WAAW,GAAG,eAAe,KAAKg7B,GAAG,CAAC,SAAS7yB,EAAE0nB,EAAE/Z,GAAG,aAAa,IAAIka,EAAE7nB,EAAE,YAAY,SAASnI,EAAEmI,GAAG5D,KAAKoE,KAAKR,EAAE5D,KAAKpG,OAAOgK,EAAEhK,OAAOoG,KAAKoB,MAAM,EAAEpB,KAAKo2B,KAAK,EAAE36B,EAAEixB,UAAU,CAAC8J,YAAY,SAAS5yB,GAAG5D,KAAK02B,WAAW12B,KAAKoB,MAAMwC,IAAI8yB,WAAW,SAAS9yB,GAAG,GAAG5D,KAAKpG,OAAOoG,KAAKo2B,KAAKxyB,GAAGA,EAAE,EAAE,MAAM,IAAI8nB,MAAM,sCAAsC1rB,KAAKpG,OAAO,mBAAmBgK,EAAE,uBAAuB+yB,SAAS,SAAS/yB,GAAG5D,KAAK02B,WAAW9yB,GAAG5D,KAAKoB,MAAMwC,GAAGid,KAAK,SAASjd,GAAG5D,KAAK22B,SAAS32B,KAAKoB,MAAMwC,IAAIuyB,OAAO,aAAaS,QAAQ,SAAShzB,GAAG,IAAI0nB,EAAE/Z,EAAE,EAAE,IAAIvR,KAAKw2B,YAAY5yB,GAAG0nB,EAAEtrB,KAAKoB,MAAMwC,EAAE,EAAE0nB,GAAGtrB,KAAKoB,MAAMkqB,IAAI/Z,GAAGA,GAAG,GAAGvR,KAAKm2B,OAAO7K,GAAG,OAAOtrB,KAAKoB,OAAOwC,EAAE2N,GAAGslB,WAAW,SAASjzB,GAAG,OAAO6nB,EAAEmD,YAAY,SAAS5uB,KAAKu2B,SAAS3yB,KAAK2yB,SAAS,aAAaF,qBAAqB,aAAaC,sBAAsB,aAAaQ,SAAS,WAAW,IAAIlzB,EAAE5D,KAAK42B,QAAQ,GAAG,OAAO,IAAI78B,KAAKA,KAAKC,IAAI,MAAM4J,GAAG,GAAG,MAAMA,GAAG,GAAG,IAAI,EAAEA,GAAG,GAAG,GAAGA,GAAG,GAAG,GAAGA,GAAG,EAAE,IAAI,GAAGA,IAAI,MAAM0nB,EAAEH,QAAQ1vB,GAAG,CAAC,WAAW,KAAKs7B,GAAG,CAAC,SAASnzB,EAAE0nB,EAAE/Z,GAAG,aAAa,IAAIka,EAAE7nB,EAAE,sBAAsB,SAASnI,EAAEmI,GAAG6nB,EAAErV,KAAKpW,KAAK4D,GAAGA,EAAE,YAAY6qB,SAAShzB,EAAEgwB,GAAGhwB,EAAEixB,UAAU6J,SAAS,SAAS3yB,GAAG5D,KAAKw2B,YAAY5yB,GAAG,IAAI0nB,EAAEtrB,KAAKoE,KAAK4P,MAAMhU,KAAKo2B,KAAKp2B,KAAKoB,MAAMpB,KAAKo2B,KAAKp2B,KAAKoB,MAAMwC,GAAG,OAAO5D,KAAKoB,OAAOwC,EAAE0nB,GAAGA,EAAEH,QAAQ1vB,GAAG,CAAC,WAAW,GAAG,qBAAqB,KAAKu7B,GAAG,CAAC,SAASpzB,EAAE0nB,EAAE/Z,GAAG,aAAa,IAAIka,EAAE7nB,EAAE,gBAAgB,SAASnI,EAAEmI,GAAG6nB,EAAErV,KAAKpW,KAAK4D,GAAGA,EAAE,YAAY6qB,SAAShzB,EAAEgwB,GAAGhwB,EAAEixB,UAAUyJ,OAAO,SAASvyB,GAAG,OAAO5D,KAAKoE,KAAK2d,WAAW/hB,KAAKo2B,KAAKxyB,IAAInI,EAAEixB,UAAU2J,qBAAqB,SAASzyB,GAAG,OAAO5D,KAAKoE,KAAKmxB,YAAY3xB,GAAG5D,KAAKo2B,MAAM36B,EAAEixB,UAAU4J,sBAAsB,SAAS1yB,GAAG,OAAOA,IAAI5D,KAAKu2B,SAAS,IAAI96B,EAAEixB,UAAU6J,SAAS,SAAS3yB,GAAG5D,KAAKw2B,YAAY5yB,GAAG,IAAI0nB,EAAEtrB,KAAKoE,KAAK4P,MAAMhU,KAAKo2B,KAAKp2B,KAAKoB,MAAMpB,KAAKo2B,KAAKp2B,KAAKoB,MAAMwC,GAAG,OAAO5D,KAAKoB,OAAOwC,EAAE0nB,GAAGA,EAAEH,QAAQ1vB,GAAG,CAAC,WAAW,GAAG,eAAe,KAAKw7B,GAAG,CAAC,SAASrzB,EAAE0nB,EAAE/Z,GAAG,aAAa,IAAIka,EAAE7nB,EAAE,iBAAiB,SAASnI,EAAEmI,GAAG6nB,EAAErV,KAAKpW,KAAK4D,GAAGA,EAAE,YAAY6qB,SAAShzB,EAAEgwB,GAAGhwB,EAAEixB,UAAU6J,SAAS,SAAS3yB,GAAG,GAAG5D,KAAKw2B,YAAY5yB,GAAG,IAAIA,EAAE,OAAO,IAAIuoB,WAAW,GAAG,IAAIb,EAAEtrB,KAAKoE,KAAK8yB,SAASl3B,KAAKo2B,KAAKp2B,KAAKoB,MAAMpB,KAAKo2B,KAAKp2B,KAAKoB,MAAMwC,GAAG,OAAO5D,KAAKoB,OAAOwC,EAAE0nB,GAAGA,EAAEH,QAAQ1vB,GAAG,CAAC,WAAW,GAAG,gBAAgB,KAAK07B,GAAG,CAAC,SAASvzB,EAAE0nB,EAAE/Z,GAAG,aAAa,IAAIka,EAAE7nB,EAAE,YAAYnI,EAAEmI,EAAE,cAAckP,EAAElP,EAAE,iBAAiB7B,EAAE6B,EAAE,kBAAkBwnB,EAAExnB,EAAE,sBAAsBgP,EAAEhP,EAAE,sBAAsB0nB,EAAEH,QAAQ,SAASvnB,GAAG,IAAI0nB,EAAEG,EAAEM,UAAUnoB,GAAG,OAAO6nB,EAAEmK,aAAatK,GAAG,WAAWA,GAAG7vB,EAAEywB,WAAW,eAAeZ,EAAE,IAAIF,EAAExnB,GAAGnI,EAAEywB,WAAW,IAAItZ,EAAE6Y,EAAEmD,YAAY,aAAahrB,IAAI,IAAIkP,EAAE2Y,EAAEmD,YAAY,QAAQhrB,IAAI,IAAI7B,EAAE6B,KAAK,CAAC,aAAa,GAAG,WAAW,GAAG,gBAAgB,GAAG,qBAAqB,GAAG,iBAAiB,GAAG,qBAAqB,KAAKwzB,GAAG,CAAC,SAASxzB,EAAE0nB,EAAE/Z,GAAG,aAAaA,EAAEif,kBAAkB,OAAOjf,EAAEmf,oBAAoB,OAAOnf,EAAEqgB,sBAAsB,OAAOrgB,EAAE8lB,gCAAgC,OAAO9lB,EAAE+lB,4BAA4B,OAAO/lB,EAAEmgB,gBAAgB,SAAS,IAAI6F,GAAG,CAAC,SAAS3zB,EAAE0nB,EAAE/Z,GAAG,aAAa,IAAIka,EAAE7nB,EAAE,mBAAmBnI,EAAEmI,EAAE,YAAY,SAASkP,EAAElP,GAAG6nB,EAAErV,KAAKpW,KAAK,oBAAoB4D,GAAG5D,KAAKw3B,SAAS5zB,EAAEnI,EAAEgzB,SAAS3b,EAAE2Y,GAAG3Y,EAAE4Z,UAAUgC,aAAa,SAAS9qB,GAAG5D,KAAKiD,KAAK,CAACmB,KAAK3I,EAAEmzB,YAAY5uB,KAAKw3B,SAAS5zB,EAAEQ,MAAMoqB,KAAK5qB,EAAE4qB,QAAQlD,EAAEH,QAAQrY,GAAG,CAAC,WAAW,GAAG,kBAAkB,KAAK2kB,GAAG,CAAC,SAAS7zB,EAAE0nB,EAAE/Z,GAAG,aAAa,IAAIka,EAAE7nB,EAAE,mBAAmBnI,EAAEmI,EAAE,YAAY,SAASkP,IAAI2Y,EAAErV,KAAKpW,KAAK,cAAcA,KAAKktB,eAAe,QAAQ,GAAGtpB,EAAE,YAAY6qB,SAAS3b,EAAE2Y,GAAG3Y,EAAE4Z,UAAUgC,aAAa,SAAS9qB,GAAG5D,KAAK+sB,WAAWR,MAAM9wB,EAAEmI,EAAEQ,KAAKpE,KAAK+sB,WAAWR,OAAO,GAAGvsB,KAAKiD,KAAKW,IAAI0nB,EAAEH,QAAQrY,GAAG,CAAC,WAAW,EAAE,WAAW,GAAG,kBAAkB,KAAK4kB,GAAG,CAAC,SAAS9zB,EAAE0nB,EAAE/Z,GAAG,aAAa,IAAIka,EAAE7nB,EAAE,YAAYnI,EAAEmI,EAAE,mBAAmB,SAASkP,EAAElP,GAAGnI,EAAE2a,KAAKpW,KAAK,uBAAuB4D,GAAG5D,KAAK23B,SAAS/zB,EAAE5D,KAAKktB,eAAetpB,EAAE,GAAG6nB,EAAEgD,SAAS3b,EAAErX,GAAGqX,EAAE4Z,UAAUgC,aAAa,SAAS9qB,GAAG,GAAGA,EAAE,CAAC,IAAI0nB,EAAEtrB,KAAK+sB,WAAW/sB,KAAK23B,WAAW,EAAE33B,KAAK+sB,WAAW/sB,KAAK23B,UAAUrM,EAAE1nB,EAAEQ,KAAKxK,OAAO6B,EAAEixB,UAAUgC,aAAatY,KAAKpW,KAAK4D,IAAI0nB,EAAEH,QAAQrY,GAAG,CAAC,WAAW,GAAG,kBAAkB,KAAK8kB,GAAG,CAAC,SAASh0B,EAAE0nB,EAAE/Z,GAAG,aAAa,IAAIka,EAAE7nB,EAAE,YAAYnI,EAAEmI,EAAE,mBAAmB,SAASkP,EAAElP,GAAGnI,EAAE2a,KAAKpW,KAAK,cAAc,IAAIsrB,EAAEtrB,KAAKA,KAAK63B,aAAY,EAAG73B,KAAKoB,MAAM,EAAEpB,KAAK8I,IAAI,EAAE9I,KAAKoE,KAAK,KAAKpE,KAAKvB,KAAK,GAAGuB,KAAK83B,gBAAe,EAAGl0B,EAAEc,MAAK,SAASd,GAAG0nB,EAAEuM,aAAY,EAAGvM,EAAElnB,KAAKR,EAAE0nB,EAAExiB,IAAIlF,GAAGA,EAAEhK,QAAQ,EAAE0xB,EAAE7sB,KAAKgtB,EAAEM,UAAUnoB,GAAG0nB,EAAEyG,UAAUzG,EAAEyM,oBAAkB,SAASn0B,GAAG0nB,EAAE8G,MAAMxuB,MAAK6nB,EAAEgD,SAAS3b,EAAErX,GAAGqX,EAAE4Z,UAAUoC,QAAQ,WAAWrzB,EAAEixB,UAAUoC,QAAQ1Y,KAAKpW,MAAMA,KAAKoE,KAAK,MAAM0O,EAAE4Z,UAAUuF,OAAO,WAAW,QAAQx2B,EAAEixB,UAAUuF,OAAO7b,KAAKpW,SAASA,KAAK83B,gBAAgB93B,KAAK63B,cAAc73B,KAAK83B,gBAAe,EAAGrM,EAAEuM,MAAMh4B,KAAK+3B,eAAe,GAAG/3B,QAAO,IAAK8S,EAAE4Z,UAAUqL,eAAe,WAAW/3B,KAAK83B,gBAAe,EAAG93B,KAAK+xB,UAAU/xB,KAAKi4B,aAAaj4B,KAAKk4B,QAAQl4B,KAAKi4B,aAAaxM,EAAEuM,MAAMh4B,KAAK+3B,eAAe,GAAG/3B,MAAMA,KAAK83B,gBAAe,KAAMhlB,EAAE4Z,UAAUwL,MAAM,WAAW,GAAGl4B,KAAK+xB,UAAU/xB,KAAKi4B,WAAW,OAAM,EAAG,IAAIr0B,EAAE,KAAK0nB,EAAE9Z,KAAK3I,IAAI7I,KAAK8I,IAAI9I,KAAKoB,MAAM,OAAO,GAAGpB,KAAKoB,OAAOpB,KAAK8I,IAAI,OAAO9I,KAAKmyB,MAAM,OAAOnyB,KAAKvB,MAAM,IAAI,SAASmF,EAAE5D,KAAKoE,KAAKkxB,UAAUt1B,KAAKoB,MAAMkqB,GAAG,MAAM,IAAI,aAAa1nB,EAAE5D,KAAKoE,KAAK8yB,SAASl3B,KAAKoB,MAAMkqB,GAAG,MAAM,IAAI,QAAQ,IAAI,aAAa1nB,EAAE5D,KAAKoE,KAAK4P,MAAMhU,KAAKoB,MAAMkqB,GAAG,OAAOtrB,KAAKoB,MAAMkqB,EAAEtrB,KAAKiD,KAAK,CAACmB,KAAKR,EAAE4qB,KAAK,CAAC+C,QAAQvxB,KAAK8I,IAAI9I,KAAKoB,MAAMpB,KAAK8I,IAAI,IAAI,MAAMwiB,EAAEH,QAAQrY,GAAG,CAAC,WAAW,GAAG,kBAAkB,KAAKqlB,GAAG,CAAC,SAASv0B,EAAE0nB,EAAE/Z,GAAG,aAAa,SAASka,EAAE7nB,GAAG5D,KAAK4B,KAAKgC,GAAG,UAAU5D,KAAK+sB,WAAW,GAAG/sB,KAAKqyB,eAAe,KAAKryB,KAAKo4B,gBAAgB,GAAGp4B,KAAK+xB,UAAS,EAAG/xB,KAAKi4B,YAAW,EAAGj4B,KAAKq4B,UAAS,EAAGr4B,KAAKs4B,WAAW,CAACl0B,KAAK,GAAG+tB,IAAI,GAAGC,MAAM,IAAIpyB,KAAK8xB,SAAS,KAAKrG,EAAEiB,UAAU,CAACzpB,KAAK,SAASW,GAAG5D,KAAK00B,KAAK,OAAO9wB,IAAIuuB,IAAI,WAAW,GAAGnyB,KAAKi4B,WAAW,OAAM,EAAGj4B,KAAK6uB,QAAQ,IAAI7uB,KAAK00B,KAAK,OAAO10B,KAAK8uB,UAAU9uB,KAAKi4B,YAAW,EAAG,MAAMr0B,GAAG5D,KAAK00B,KAAK,QAAQ9wB,GAAG,OAAM,GAAIwuB,MAAM,SAASxuB,GAAG,OAAO5D,KAAKi4B,aAAaj4B,KAAK+xB,SAAS/xB,KAAKqyB,eAAezuB,GAAG5D,KAAKi4B,YAAW,EAAGj4B,KAAK00B,KAAK,QAAQ9wB,GAAG5D,KAAK8xB,UAAU9xB,KAAK8xB,SAASM,MAAMxuB,GAAG5D,KAAK8uB,YAAW,IAAKhlB,GAAG,SAASlG,EAAE0nB,GAAG,OAAOtrB,KAAKs4B,WAAW10B,GAAGX,KAAKqoB,GAAGtrB,MAAM8uB,QAAQ,WAAW9uB,KAAK+sB,WAAW/sB,KAAKqyB,eAAeryB,KAAKo4B,gBAAgB,KAAKp4B,KAAKs4B,WAAW,IAAI5D,KAAK,SAAS9wB,EAAE0nB,GAAG,GAAGtrB,KAAKs4B,WAAW10B,GAAG,IAAI,IAAI2N,EAAE,EAAEA,EAAEvR,KAAKs4B,WAAW10B,GAAGhK,OAAO2X,IAAIvR,KAAKs4B,WAAW10B,GAAG2N,GAAG6E,KAAKpW,KAAKsrB,IAAIuB,KAAK,SAASjpB,GAAG,OAAOA,EAAEsuB,iBAAiBlyB,OAAOkyB,iBAAiB,SAAStuB,GAAG,GAAG5D,KAAKq4B,SAAS,MAAM,IAAI3M,MAAM,eAAe1rB,KAAK,4BAA4BA,KAAK+sB,WAAWnpB,EAAEmpB,WAAW/sB,KAAKu4B,kBAAkBv4B,KAAK8xB,SAASluB,EAAE,IAAI0nB,EAAEtrB,KAAK,OAAO4D,EAAEkG,GAAG,QAAO,SAASlG,GAAG0nB,EAAEoD,aAAa9qB,MAAKA,EAAEkG,GAAG,OAAM,WAAWwhB,EAAE6G,SAAQvuB,EAAEkG,GAAG,SAAQ,SAASlG,GAAG0nB,EAAE8G,MAAMxuB,MAAK5D,MAAMgyB,MAAM,WAAW,OAAOhyB,KAAK+xB,WAAW/xB,KAAKi4B,aAAaj4B,KAAK+xB,UAAS,EAAG/xB,KAAK8xB,UAAU9xB,KAAK8xB,SAASE,SAAQ,IAAKC,OAAO,WAAW,IAAIjyB,KAAK+xB,UAAU/xB,KAAKi4B,WAAW,OAAM,EAAG,IAAIr0B,EAAE5D,KAAK+xB,UAAS,EAAG,OAAO/xB,KAAKqyB,iBAAiBryB,KAAKoyB,MAAMpyB,KAAKqyB,gBAAgBzuB,GAAE,GAAI5D,KAAK8xB,UAAU9xB,KAAK8xB,SAASG,UAAUruB,GAAGirB,MAAM,aAAaH,aAAa,SAAS9qB,GAAG5D,KAAKiD,KAAKW,IAAIspB,eAAe,SAAStpB,EAAE0nB,GAAG,OAAOtrB,KAAKo4B,gBAAgBx0B,GAAG0nB,EAAEtrB,KAAKu4B,kBAAkBv4B,MAAMu4B,gBAAgB,WAAW,IAAI,IAAI30B,KAAK5D,KAAKo4B,gBAAgB56B,OAAOkvB,UAAU8L,eAAepiB,KAAKpW,KAAKo4B,gBAAgBx0B,KAAK5D,KAAK+sB,WAAWnpB,GAAG5D,KAAKo4B,gBAAgBx0B,KAAK0uB,KAAK,WAAW,GAAGtyB,KAAKq4B,SAAS,MAAM,IAAI3M,MAAM,eAAe1rB,KAAK,4BAA4BA,KAAKq4B,UAAS,EAAGr4B,KAAK8xB,UAAU9xB,KAAK8xB,SAASQ,QAAQ3gB,SAAS,WAAW,IAAI/N,EAAE,UAAU5D,KAAK4B,KAAK,OAAO5B,KAAK8xB,SAAS9xB,KAAK8xB,SAAS,OAAOluB,EAAEA,IAAI0nB,EAAEH,QAAQM,GAAG,IAAIgN,GAAG,CAAC,SAAS70B,EAAE0nB,EAAE/Z,GAAG,aAAa,IAAIqB,EAAEhP,EAAE,YAAYnI,EAAEmI,EAAE,mBAAmBkP,EAAElP,EAAE,mBAAmBynB,EAAEznB,EAAE,aAAa6nB,EAAE7nB,EAAE,cAAc7B,EAAE6B,EAAE,eAAewnB,EAAE,KAAK,GAAGK,EAAEiN,WAAW,IAAItN,EAAExnB,EAAE,uCAAuC,MAAMA,IAAI,SAAS4nB,EAAE5nB,EAAEwnB,GAAG,OAAO,IAAIrpB,EAAE6qB,SAAQ,SAAStB,EAAE/Z,GAAG,IAAIka,EAAE,GAAGhwB,EAAEmI,EAAE+0B,cAAc7lB,EAAElP,EAAEg1B,YAAY72B,EAAE6B,EAAEi1B,UAAUj1B,EAAEkG,GAAG,QAAO,SAASlG,EAAE0nB,GAAGG,EAAExoB,KAAKW,GAAGwnB,GAAGA,EAAEE,MAAKxhB,GAAG,SAAQ,SAASlG,GAAG6nB,EAAE,GAAGla,EAAE3N,MAAKkG,GAAG,OAAM,WAAW,IAAI,IAAIlG,EAAE,SAASA,EAAE0nB,EAAE/Z,GAAG,OAAO3N,GAAG,IAAI,OAAO,OAAOgP,EAAEkmB,QAAQlmB,EAAEgc,YAAY,cAActD,GAAG/Z,GAAG,IAAI,SAAS,OAAO8Z,EAAEQ,OAAOP,GAAG,QAAQ,OAAO1Y,EAAEgc,YAAYhrB,EAAE0nB,IAAvJ,CAA4JxY,EAAE,SAASlP,EAAE0nB,GAAG,IAAI/Z,EAAEka,EAAE,EAAEhwB,EAAE,KAAKqX,EAAE,EAAE,IAAIvB,EAAE,EAAEA,EAAE+Z,EAAE1xB,OAAO2X,IAAIuB,GAAGwY,EAAE/Z,GAAG3X,OAAO,OAAOgK,GAAG,IAAI,SAAS,OAAO0nB,EAAEtvB,KAAK,IAAI,IAAI,QAAQ,OAAO6C,MAAM6tB,UAAU/E,OAAO7oB,MAAM,GAAGwsB,GAAG,IAAI,aAAa,IAAI7vB,EAAE,IAAI0wB,WAAWrZ,GAAGvB,EAAE,EAAEA,EAAE+Z,EAAE1xB,OAAO2X,IAAI9V,EAAEs9B,IAAIzN,EAAE/Z,GAAGka,GAAGA,GAAGH,EAAE/Z,GAAG3X,OAAO,OAAO6B,EAAE,IAAI,aAAa,OAAOo5B,EAAOlN,OAAO2D,GAAG,QAAQ,MAAM,IAAII,MAAM,8BAA8B9nB,EAAE,MAA3W,CAAkXnI,EAAEgwB,GAAG1pB,GAAGupB,EAAE1nB,GAAG,MAAMA,GAAG2N,EAAE3N,GAAG6nB,EAAE,MAAKwG,YAAW,SAASnG,EAAEloB,EAAE0nB,EAAE/Z,GAAG,IAAIka,EAAEH,EAAE,OAAOA,GAAG,IAAI,OAAO,IAAI,cAAcG,EAAE,aAAa,MAAM,IAAI,SAASA,EAAE,SAAS,IAAIzrB,KAAK24B,cAAclN,EAAEzrB,KAAK44B,YAAYtN,EAAEtrB,KAAK64B,UAAUtnB,EAAEqB,EAAEgjB,aAAanK,GAAGzrB,KAAKg5B,QAAQp1B,EAAEipB,KAAK,IAAIpxB,EAAEgwB,IAAI7nB,EAAE0uB,OAAO,MAAM1uB,GAAG5D,KAAKg5B,QAAQ,IAAIlmB,EAAE,SAAS9S,KAAKg5B,QAAQ5G,MAAMxuB,IAAIkoB,EAAEY,UAAU,CAACsE,WAAW,SAASptB,GAAG,OAAO4nB,EAAExrB,KAAK4D,IAAIkG,GAAG,SAASlG,EAAE0nB,GAAG,IAAI/Z,EAAEvR,KAAK,MAAM,SAAS4D,EAAE5D,KAAKg5B,QAAQlvB,GAAGlG,GAAE,SAASA,GAAG0nB,EAAElV,KAAK7E,EAAE3N,EAAEQ,KAAKR,EAAE4qB,SAAQxuB,KAAKg5B,QAAQlvB,GAAGlG,GAAE,WAAWgP,EAAEolB,MAAM1M,EAAEprB,UAAUqR,MAAKvR,MAAMiyB,OAAO,WAAW,OAAOrf,EAAEolB,MAAMh4B,KAAKg5B,QAAQ/G,OAAO,GAAGjyB,KAAKg5B,SAASh5B,MAAMgyB,MAAM,WAAW,OAAOhyB,KAAKg5B,QAAQhH,QAAQhyB,MAAM+1B,eAAe,SAASnyB,GAAG,GAAGgP,EAAEgjB,aAAa,cAAc,eAAe51B,KAAK44B,YAAY,MAAM,IAAIlN,MAAM1rB,KAAK44B,YAAY,oCAAoC,OAAO,IAAIxN,EAAEprB,KAAK,CAACi5B,WAAW,eAAej5B,KAAK44B,aAAah1B,KAAK0nB,EAAEH,QAAQW,GAAG,CAAC,YAAY,EAAE,cAAc,EAAE,sCAAsC,GAAG,aAAa,GAAG,WAAW,GAAG,kBAAkB,GAAG,kBAAkB,KAAKoN,GAAG,CAAC,SAASt1B,EAAE0nB,EAAE/Z,GAAG,aAAa,GAAGA,EAAEic,QAAO,EAAGjc,EAAEyW,OAAM,EAAGzW,EAAE4nB,QAAO,EAAG5nB,EAAE6nB,YAAY,oBAAoBC,aAAa,oBAAoBlN,WAAW5a,EAAE+nB,WAAW,oBAAoBzE,EAAOtjB,EAAE2a,WAAW,oBAAoBC,WAAW,oBAAoBkN,YAAY9nB,EAAEgoB,MAAK,MAAO,CAAC,IAAI9N,EAAE,IAAI4N,YAAY,GAAG,IAAI9nB,EAAEgoB,KAAK,IAAI,IAAIC,KAAK,CAAC/N,GAAG,CAAChtB,KAAK,oBAAoBg7B,KAAK,MAAM71B,GAAG,IAAI,IAAInI,EAAE,IAAIi+B,KAAKC,aAAaD,KAAKE,mBAAmBF,KAAKG,gBAAgBH,KAAKI,eAAer+B,EAAEs+B,OAAOtO,GAAGla,EAAEgoB,KAAK,IAAI99B,EAAEu+B,QAAQ,mBAAmBP,KAAK,MAAM71B,GAAG2N,EAAEgoB,MAAK,IAAK,IAAIhoB,EAAEmnB,aAAa90B,EAAE,mBAAmB4wB,SAAS,MAAM5wB,GAAG2N,EAAEmnB,YAAW,IAAK,CAAC,kBAAkB,KAAKuB,GAAG,CAAC,SAASr2B,EAAE0nB,EAAExY,GAAG,aAAa,IAAI,IAAIsY,EAAExnB,EAAE,WAAWgP,EAAEhP,EAAE,aAAa2N,EAAE3N,EAAE,iBAAiB6nB,EAAE7nB,EAAE,0BAA0BynB,EAAE,IAAIxsB,MAAM,KAAKpD,EAAE,EAAEA,EAAE,IAAIA,IAAI4vB,EAAE5vB,GAAG,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,EAAkB,SAASsG,IAAI0pB,EAAErV,KAAKpW,KAAK,gBAAgBA,KAAKk6B,SAAS,KAAK,SAAS1O,IAAIC,EAAErV,KAAKpW,KAAK,gBAArGqrB,EAAE,KAAKA,EAAE,KAAK,EAAuGvY,EAAE0c,WAAW,SAAS5rB,GAAG,OAAOgP,EAAE0mB,WAAW/nB,EAAEujB,cAAclxB,EAAE,SAAS,SAASA,GAAG,IAAI0nB,EAAE/Z,EAAEka,EAAEhwB,EAAEqX,EAAE/Q,EAAE6B,EAAEhK,OAAOwxB,EAAE,EAAE,IAAI3vB,EAAE,EAAEA,EAAEsG,EAAEtG,IAAI,QAAQ,OAAO8V,EAAE3N,EAAEme,WAAWtmB,MAAMA,EAAE,EAAEsG,GAAG,QAAQ,OAAO0pB,EAAE7nB,EAAEme,WAAWtmB,EAAE,OAAO8V,EAAE,OAAOA,EAAE,OAAO,KAAKka,EAAE,OAAOhwB,KAAK2vB,GAAG7Z,EAAE,IAAI,EAAEA,EAAE,KAAK,EAAEA,EAAE,MAAM,EAAE,EAAE,IAAI+Z,EAAE1Y,EAAEsZ,WAAW,IAAIC,WAAWf,GAAG,IAAIvsB,MAAMusB,GAAG3vB,EAAEqX,EAAE,EAAEA,EAAEsY,EAAE3vB,IAAI,QAAQ,OAAO8V,EAAE3N,EAAEme,WAAWtmB,MAAMA,EAAE,EAAEsG,GAAG,QAAQ,OAAO0pB,EAAE7nB,EAAEme,WAAWtmB,EAAE,OAAO8V,EAAE,OAAOA,EAAE,OAAO,KAAKka,EAAE,OAAOhwB,KAAK8V,EAAE,IAAI+Z,EAAExY,KAAKvB,GAAGA,EAAE,KAAK+Z,EAAExY,KAAK,IAAIvB,IAAI,GAAGA,EAAE,MAAM+Z,EAAExY,KAAK,IAAIvB,IAAI,IAAI+Z,EAAExY,KAAK,IAAIvB,IAAI,GAAG+Z,EAAExY,KAAK,IAAIvB,IAAI,GAAG,IAAI+Z,EAAExY,KAAK,IAAIvB,IAAI,EAAE,IAAI+Z,EAAExY,KAAK,IAAI,GAAGvB,GAAG,OAAO+Z,EAAhiB,CAAmiB1nB,IAAIkP,EAAE4gB,WAAW,SAAS9vB,GAAG,OAAOgP,EAAE0mB,WAAWlO,EAAEwD,YAAY,aAAahrB,GAAG+N,SAAS,SAAS,SAAS/N,GAAG,IAAI0nB,EAAE/Z,EAAEka,EAAEhwB,EAAEqX,EAAElP,EAAEhK,OAAOmI,EAAE,IAAIlD,MAAM,EAAEiU,GAAG,IAAIwY,EAAE/Z,EAAE,EAAE+Z,EAAExY,GAAG,IAAI2Y,EAAE7nB,EAAE0nB,MAAM,IAAIvpB,EAAEwP,KAAKka,OAAO,GAAG,GAAGhwB,EAAE4vB,EAAEI,IAAI1pB,EAAEwP,KAAK,MAAM+Z,GAAG7vB,EAAE,MAAM,CAAC,IAAIgwB,GAAG,IAAIhwB,EAAE,GAAG,IAAIA,EAAE,GAAG,EAAE,EAAEA,GAAG6vB,EAAExY,GAAG2Y,EAAEA,GAAG,EAAE,GAAG7nB,EAAE0nB,KAAK7vB,IAAI,EAAEA,EAAEsG,EAAEwP,KAAK,MAAMka,EAAE,MAAM1pB,EAAEwP,KAAKka,GAAGA,GAAG,MAAM1pB,EAAEwP,KAAK,MAAMka,GAAG,GAAG,KAAK1pB,EAAEwP,KAAK,MAAM,KAAKka,GAAG,OAAO1pB,EAAEnI,SAAS2X,IAAIxP,EAAEm1B,SAASn1B,EAAEA,EAAEm1B,SAAS,EAAE3lB,GAAGxP,EAAEnI,OAAO2X,GAAG6Z,EAAE+O,kBAAkBp4B,GAAhX,CAAoX6B,EAAEwnB,EAAEwD,YAAYhc,EAAEsZ,WAAW,aAAa,QAAQtoB,KAAKwnB,EAAEqD,SAAS1sB,EAAE0pB,GAAG1pB,EAAE2qB,UAAUgC,aAAa,SAAS9qB,GAAG,IAAI0nB,EAAEF,EAAEwD,YAAYhc,EAAEsZ,WAAW,aAAa,QAAQtoB,EAAEQ,MAAM,GAAGpE,KAAKk6B,UAAUl6B,KAAKk6B,SAAStgC,OAAO,CAAC,GAAGgZ,EAAEsZ,WAAW,CAAC,IAAI3a,EAAE+Z,GAAGA,EAAE,IAAIa,WAAW5a,EAAE3X,OAAOoG,KAAKk6B,SAAStgC,SAASm/B,IAAI/4B,KAAKk6B,SAAS,GAAG5O,EAAEyN,IAAIxnB,EAAEvR,KAAKk6B,SAAStgC,aAAa0xB,EAAEtrB,KAAKk6B,SAASvS,OAAO2D,GAAGtrB,KAAKk6B,SAAS,KAAK,IAAIzO,EAAE,SAAS7nB,EAAE0nB,GAAG,IAAI/Z,EAAE,KAAK+Z,EAAEA,GAAG1nB,EAAEhK,QAAQgK,EAAEhK,SAAS0xB,EAAE1nB,EAAEhK,QAAQ2X,EAAE+Z,EAAE,EAAE,GAAG/Z,GAAG,MAAM,IAAI3N,EAAE2N,KAAKA,IAAI,OAAOA,EAAE,GAAI,IAAIA,EAAN+Z,EAAU/Z,EAAE8Z,EAAEznB,EAAE2N,IAAI+Z,EAAE/Z,EAAE+Z,EAAnI,CAAsIA,GAAG7vB,EAAE6vB,EAAEG,IAAIH,EAAE1xB,SAASgZ,EAAEsZ,YAAYzwB,EAAE6vB,EAAE4L,SAAS,EAAEzL,GAAGzrB,KAAKk6B,SAAS5O,EAAE4L,SAASzL,EAAEH,EAAE1xB,UAAU6B,EAAE6vB,EAAEtX,MAAM,EAAEyX,GAAGzrB,KAAKk6B,SAAS5O,EAAEtX,MAAMyX,EAAEH,EAAE1xB,UAAUoG,KAAKiD,KAAK,CAACmB,KAAK0O,EAAE4gB,WAAWj4B,GAAG+yB,KAAK5qB,EAAE4qB,QAAQzsB,EAAE2qB,UAAUmC,MAAM,WAAW7uB,KAAKk6B,UAAUl6B,KAAKk6B,SAAStgC,SAASoG,KAAKiD,KAAK,CAACmB,KAAK0O,EAAE4gB,WAAW1zB,KAAKk6B,UAAU1L,KAAK,KAAKxuB,KAAKk6B,SAAS,OAAOpnB,EAAEsnB,iBAAiBr4B,EAAEqpB,EAAEqD,SAASjD,EAAEC,GAAGD,EAAEkB,UAAUgC,aAAa,SAAS9qB,GAAG5D,KAAKiD,KAAK,CAACmB,KAAK0O,EAAE0c,WAAW5rB,EAAEQ,MAAMoqB,KAAK5qB,EAAE4qB,QAAQ1b,EAAEunB,iBAAiB7O,GAAG,CAAC,gBAAgB,GAAG,yBAAyB,GAAG,YAAY,GAAG,UAAU,KAAK8O,GAAG,CAAC,SAAS12B,EAAE0nB,EAAEvpB,GAAG,aAAa,IAAIqpB,EAAExnB,EAAE,aAAagP,EAAEhP,EAAE,YAAY2N,EAAE3N,EAAE,iBAAiBynB,EAAEznB,EAAE,cAAc,SAAS6nB,EAAE7nB,GAAG,OAAOA,EAAE,SAAS4nB,EAAE5nB,EAAE0nB,GAAG,IAAI,IAAI/Z,EAAE,EAAEA,EAAE3N,EAAEhK,SAAS2X,EAAE+Z,EAAE/Z,GAAG,IAAI3N,EAAEme,WAAWxQ,GAAG,OAAO+Z,EAAE1nB,EAAE,gBAAgB7B,EAAE+2B,QAAQ,SAASxN,EAAE/Z,GAAGxP,EAAE6zB,aAAa,QAAQ,IAAI,OAAO,IAAI4D,KAAK,CAAClO,GAAG,CAAC7sB,KAAK8S,IAAI,MAAM3N,GAAG,IAAI,IAAI6nB,EAAE,IAAIiO,KAAKC,aAAaD,KAAKE,mBAAmBF,KAAKG,gBAAgBH,KAAKI,eAAe,OAAOrO,EAAEsO,OAAOzO,GAAGG,EAAEuO,QAAQzoB,GAAG,MAAM3N,GAAG,MAAM,IAAI8nB,MAAM,sCAAsC,IAAIjwB,EAAE,CAAC8+B,iBAAiB,SAAS32B,EAAE0nB,EAAE/Z,GAAG,IAAIka,EAAE,GAAGhwB,EAAE,EAAEqX,EAAElP,EAAEhK,OAAO,GAAGkZ,GAAGvB,EAAE,OAAO5X,OAAO01B,aAAavwB,MAAM,KAAK8E,GAAG,KAAKnI,EAAEqX,GAAG,UAAUwY,GAAG,eAAeA,EAAEG,EAAExoB,KAAKtJ,OAAO01B,aAAavwB,MAAM,KAAK8E,EAAEoQ,MAAMvY,EAAE+V,KAAK3I,IAAIpN,EAAE8V,EAAEuB,MAAM2Y,EAAExoB,KAAKtJ,OAAO01B,aAAavwB,MAAM,KAAK8E,EAAEszB,SAASz7B,EAAE+V,KAAK3I,IAAIpN,EAAE8V,EAAEuB,MAAMrX,GAAG8V,EAAE,OAAOka,EAAEzvB,KAAK,KAAKw+B,gBAAgB,SAAS52B,GAAG,IAAI,IAAI0nB,EAAE,GAAG/Z,EAAE,EAAEA,EAAE3N,EAAEhK,OAAO2X,IAAI+Z,GAAG3xB,OAAO01B,aAAazrB,EAAE2N,IAAI,OAAO+Z,GAAGmP,eAAe,CAACvO,WAAW,WAAW,IAAI,OAAOd,EAAEc,YAAY,IAAIvyB,OAAO01B,aAAavwB,MAAM,KAAK,IAAIqtB,WAAW,IAAIvyB,OAAO,MAAMgK,GAAG,OAAM,GAAhH,GAAuH01B,WAAW,WAAW,IAAI,OAAOlO,EAAEkO,YAAY,IAAI3/B,OAAO01B,aAAavwB,MAAM,KAAKyS,EAAEyjB,YAAY,IAAIp7B,OAAO,MAAMgK,GAAG,OAAM,GAA/G,KAAwH,SAASkP,EAAElP,GAAG,IAAI0nB,EAAE,MAAM/Z,EAAExP,EAAEgqB,UAAUnoB,GAAG6nB,GAAE,EAAG,GAAG,eAAela,EAAEka,EAAEhwB,EAAEg/B,eAAevO,WAAW,eAAe3a,IAAIka,EAAEhwB,EAAEg/B,eAAenB,YAAY7N,EAAE,KAAK,EAAEH,GAAG,IAAI,OAAO7vB,EAAE8+B,iBAAiB32B,EAAE2N,EAAE+Z,GAAG,MAAM1nB,GAAG0nB,EAAE9Z,KAAKE,MAAM4Z,EAAE,GAAG,OAAO7vB,EAAE++B,gBAAgB52B,GAAG,SAASkoB,EAAEloB,EAAE0nB,GAAG,IAAI,IAAI/Z,EAAE,EAAEA,EAAE3N,EAAEhK,OAAO2X,IAAI+Z,EAAE/Z,GAAG3N,EAAE2N,GAAG,OAAO+Z,EAAEvpB,EAAEo4B,kBAAkBrnB,EAAE,IAAIxB,EAAE,GAAGA,EAAE6nB,OAAO,CAACA,OAAO1N,EAAEzD,MAAM,SAASpkB,GAAG,OAAO4nB,EAAE5nB,EAAE,IAAI/E,MAAM+E,EAAEhK,UAAUw/B,YAAY,SAASx1B,GAAG,OAAO0N,EAAE6nB,OAAOjN,WAAWtoB,GAAG82B,QAAQxO,WAAW,SAAStoB,GAAG,OAAO4nB,EAAE5nB,EAAE,IAAIuoB,WAAWvoB,EAAEhK,UAAU0/B,WAAW,SAAS11B,GAAG,OAAO4nB,EAAE5nB,EAAE2N,EAAEyjB,YAAYpxB,EAAEhK,WAAW0X,EAAE0W,MAAM,CAACmR,OAAOrmB,EAAEkV,MAAMyD,EAAE2N,YAAY,SAASx1B,GAAG,OAAO,IAAIuoB,WAAWvoB,GAAG82B,QAAQxO,WAAW,SAAStoB,GAAG,OAAO,IAAIuoB,WAAWvoB,IAAI01B,WAAW,SAAS11B,GAAG,OAAO2N,EAAEujB,cAAclxB,KAAK0N,EAAE8nB,YAAY,CAACD,OAAO,SAASv1B,GAAG,OAAOkP,EAAE,IAAIqZ,WAAWvoB,KAAKokB,MAAM,SAASpkB,GAAG,OAAOkoB,EAAE,IAAIK,WAAWvoB,GAAG,IAAI/E,MAAM+E,EAAE+2B,cAAcvB,YAAY3N,EAAES,WAAW,SAAStoB,GAAG,OAAO,IAAIuoB,WAAWvoB,IAAI01B,WAAW,SAAS11B,GAAG,OAAO2N,EAAEujB,cAAc,IAAI3I,WAAWvoB,MAAM0N,EAAE4a,WAAW,CAACiN,OAAOrmB,EAAEkV,MAAM,SAASpkB,GAAG,OAAOkoB,EAAEloB,EAAE,IAAI/E,MAAM+E,EAAEhK,UAAUw/B,YAAY,SAASx1B,GAAG,OAAOA,EAAE82B,QAAQxO,WAAWT,EAAE6N,WAAW,SAAS11B,GAAG,OAAO2N,EAAEujB,cAAclxB,KAAK0N,EAAEgoB,WAAW,CAACH,OAAOrmB,EAAEkV,MAAM,SAASpkB,GAAG,OAAOkoB,EAAEloB,EAAE,IAAI/E,MAAM+E,EAAEhK,UAAUw/B,YAAY,SAASx1B,GAAG,OAAO0N,EAAEgoB,WAAWpN,WAAWtoB,GAAG82B,QAAQxO,WAAW,SAAStoB,GAAG,OAAOkoB,EAAEloB,EAAE,IAAIuoB,WAAWvoB,EAAEhK,UAAU0/B,WAAW7N,GAAG1pB,EAAE6sB,YAAY,SAAShrB,EAAE0nB,GAAG,GAAGA,EAAEA,GAAG,IAAI1nB,EAAE,OAAO0nB,EAAEvpB,EAAE6zB,aAAahyB,GAAG,IAAI2N,EAAExP,EAAEgqB,UAAUT,GAAG,OAAOha,EAAEC,GAAG3N,GAAG0nB,IAAIvpB,EAAE4e,QAAQ,SAAS/c,GAAG,IAAI,IAAI0nB,EAAE1nB,EAAE/H,MAAM,KAAK0V,EAAE,GAAGka,EAAE,EAAEA,EAAEH,EAAE1xB,OAAO6xB,IAAI,CAAC,IAAIhwB,EAAE6vB,EAAEG,GAAG,MAAMhwB,GAAG,KAAKA,GAAG,IAAIgwB,GAAGA,IAAIH,EAAE1xB,OAAO,IAAI,OAAO6B,EAAE8V,EAAE4R,MAAM5R,EAAEtO,KAAKxH,IAAI,OAAO8V,EAAEvV,KAAK,MAAM+F,EAAEgqB,UAAU,SAASnoB,GAAG,MAAM,iBAAiBA,EAAE,SAAS,mBAAmBpG,OAAOkvB,UAAU/a,SAASyE,KAAKxS,GAAG,QAAQwnB,EAAEkO,YAAY/nB,EAAE4jB,SAASvxB,GAAG,aAAawnB,EAAEc,YAAYtoB,aAAauoB,WAAW,aAAaf,EAAEgO,aAAax1B,aAAay1B,YAAY,mBAAc,GAAQt3B,EAAE6zB,aAAa,SAAShyB,GAAG,IAAIwnB,EAAExnB,EAAE9F,eAAe,MAAM,IAAI4tB,MAAM9nB,EAAE,uCAAuC7B,EAAE64B,iBAAiB,MAAM74B,EAAE84B,kBAAkB,EAAE94B,EAAE+4B,OAAO,SAASl3B,GAAG,IAAI0nB,EAAE/Z,EAAEka,EAAE,GAAG,IAAIla,EAAE,EAAEA,GAAG3N,GAAG,IAAIhK,OAAO2X,IAAIka,GAAG,QAAQH,EAAE1nB,EAAEme,WAAWxQ,IAAI,GAAG,IAAI,IAAI+Z,EAAE3Z,SAAS,IAAI0jB,cAAc,OAAO5J,GAAG1pB,EAAEi2B,MAAM,SAASp0B,EAAE0nB,EAAE/Z,GAAGwpB,cAAa,WAAWn3B,EAAE9E,MAAMyS,GAAG,KAAK+Z,GAAG,QAAOvpB,EAAE0sB,SAAS,SAAS7qB,EAAE0nB,GAAG,SAAS/Z,KAAKA,EAAEmb,UAAUpB,EAAEoB,UAAU9oB,EAAE8oB,UAAU,IAAInb,GAAGxP,EAAEtH,OAAO,WAAW,IAAImJ,EAAE0nB,EAAE/Z,EAAE,GAAG,IAAI3N,EAAE,EAAEA,EAAE1D,UAAUtG,OAAOgK,IAAI,IAAI0nB,KAAKprB,UAAU0D,GAAGpG,OAAOkvB,UAAU8L,eAAepiB,KAAKlW,UAAU0D,GAAG0nB,SAAI,IAAS/Z,EAAE+Z,KAAK/Z,EAAE+Z,GAAGprB,UAAU0D,GAAG0nB,IAAI,OAAO/Z,GAAGxP,EAAE+xB,eAAe,SAASviB,EAAE3N,EAAE6nB,EAAEhwB,EAAEqX,GAAG,OAAOuY,EAAEuB,QAAQjM,QAAQ/c,GAAGc,MAAK,SAAS+mB,GAAG,OAAOL,EAAEmO,OAAO9N,aAAa+N,OAAO,IAAI,CAAC,gBAAgB,iBAAiBl7B,QAAQd,OAAOkvB,UAAU/a,SAASyE,KAAKqV,MAAM,oBAAoBuP,WAAW,IAAI3P,EAAEuB,SAAQ,SAAStB,EAAE/Z,GAAG,IAAI3N,EAAE,IAAIo3B,WAAWp3B,EAAEq3B,OAAO,SAASr3B,GAAG0nB,EAAE1nB,EAAEsS,OAAOjX,SAAS2E,EAAEs3B,QAAQ,SAASt3B,GAAG2N,EAAE3N,EAAEsS,OAAOkc,QAAQxuB,EAAEu3B,kBAAkB1P,MAAKA,KAAI/mB,MAAK,SAASd,GAAG,IAAI0nB,EAAEvpB,EAAEgqB,UAAUnoB,GAAG,OAAO0nB,GAAG,gBAAgBA,EAAE1nB,EAAE7B,EAAE6sB,YAAY,aAAahrB,GAAG,WAAW0nB,IAAIxY,EAAElP,EAAEgP,EAAEqZ,OAAOroB,GAAG6nB,IAAG,IAAKhwB,IAAImI,EAAE,SAASA,GAAG,OAAO4nB,EAAE5nB,EAAEwnB,EAAEc,WAAW,IAAIC,WAAWvoB,EAAEhK,QAAQ,IAAIiF,MAAM+E,EAAEhK,SAAzE,CAAmFgK,KAAKA,GAAGynB,EAAEuB,QAAQiH,OAAO,IAAInI,MAAM,2BAA2Bna,EAAE,oFAAmF,CAAC,WAAW,EAAE,aAAa,EAAE,gBAAgB,GAAG,YAAY,GAAG6pB,aAAa,KAAKC,GAAG,CAAC,SAASz3B,EAAE0nB,EAAE/Z,GAAG,aAAa,IAAIka,EAAE7nB,EAAE,sBAAsBnI,EAAEmI,EAAE,WAAWkP,EAAElP,EAAE,eAAe7B,EAAE6B,EAAE,cAAcwnB,EAAExnB,EAAE,aAAa,SAASgP,EAAEhP,GAAG5D,KAAK4yB,MAAM,GAAG5yB,KAAK0gB,YAAY9c,EAAEgP,EAAE8Z,UAAU,CAAC4O,eAAe,SAAS13B,GAAG,IAAI5D,KAAKu7B,OAAOjF,sBAAsB1yB,GAAG,CAAC5D,KAAKu7B,OAAOn6B,OAAO,EAAE,IAAIkqB,EAAEtrB,KAAKu7B,OAAO1E,WAAW,GAAG,MAAM,IAAInL,MAAM,+CAA+CjwB,EAAEq/B,OAAOxP,GAAG,cAAc7vB,EAAEq/B,OAAOl3B,GAAG,OAAO43B,YAAY,SAAS53B,EAAE0nB,GAAG,IAAI/Z,EAAEvR,KAAKu7B,OAAOn6B,MAAMpB,KAAKu7B,OAAO5E,SAAS/yB,GAAG,IAAI6nB,EAAEzrB,KAAKu7B,OAAO1E,WAAW,KAAKvL,EAAE,OAAOtrB,KAAKu7B,OAAO5E,SAASplB,GAAGka,GAAGgQ,sBAAsB,WAAWz7B,KAAK07B,WAAW17B,KAAKu7B,OAAO3E,QAAQ,GAAG52B,KAAK27B,wBAAwB37B,KAAKu7B,OAAO3E,QAAQ,GAAG52B,KAAK47B,4BAA4B57B,KAAKu7B,OAAO3E,QAAQ,GAAG52B,KAAK67B,kBAAkB77B,KAAKu7B,OAAO3E,QAAQ,GAAG52B,KAAK87B,eAAe97B,KAAKu7B,OAAO3E,QAAQ,GAAG52B,KAAK+7B,iBAAiB/7B,KAAKu7B,OAAO3E,QAAQ,GAAG52B,KAAKg8B,iBAAiBh8B,KAAKu7B,OAAO3E,QAAQ,GAAG,IAAIhzB,EAAE5D,KAAKu7B,OAAOhF,SAASv2B,KAAKg8B,kBAAkB1Q,EAAEF,EAAEc,WAAW,aAAa,QAAQ3a,EAAE9V,EAAEmzB,YAAYtD,EAAE1nB,GAAG5D,KAAK4wB,WAAW5wB,KAAK0gB,YAAY+S,eAAeliB,IAAI0qB,2BAA2B,WAAWj8B,KAAKk8B,sBAAsBl8B,KAAKu7B,OAAO3E,QAAQ,GAAG52B,KAAKu7B,OAAO1a,KAAK,GAAG7gB,KAAK07B,WAAW17B,KAAKu7B,OAAO3E,QAAQ,GAAG52B,KAAK27B,wBAAwB37B,KAAKu7B,OAAO3E,QAAQ,GAAG52B,KAAK47B,4BAA4B57B,KAAKu7B,OAAO3E,QAAQ,GAAG52B,KAAK67B,kBAAkB77B,KAAKu7B,OAAO3E,QAAQ,GAAG52B,KAAK87B,eAAe97B,KAAKu7B,OAAO3E,QAAQ,GAAG52B,KAAK+7B,iBAAiB/7B,KAAKu7B,OAAO3E,QAAQ,GAAG52B,KAAKm8B,oBAAoB,GAAG,IAAI,IAAIv4B,EAAE0nB,EAAE/Z,EAAEka,EAAEzrB,KAAKk8B,sBAAsB,GAAG,EAAEzQ,GAAG7nB,EAAE5D,KAAKu7B,OAAO3E,QAAQ,GAAGtL,EAAEtrB,KAAKu7B,OAAO3E,QAAQ,GAAGrlB,EAAEvR,KAAKu7B,OAAOhF,SAASjL,GAAGtrB,KAAKm8B,oBAAoBv4B,GAAG,CAAC9U,GAAG8U,EAAEhK,OAAO0xB,EAAEzpB,MAAM0P,IAAI6qB,kCAAkC,WAAW,GAAGp8B,KAAKq8B,6BAA6Br8B,KAAKu7B,OAAO3E,QAAQ,GAAG52B,KAAKs8B,mCAAmCt8B,KAAKu7B,OAAO3E,QAAQ,GAAG52B,KAAKu8B,WAAWv8B,KAAKu7B,OAAO3E,QAAQ,GAAG,EAAE52B,KAAKu8B,WAAW,MAAM,IAAI7Q,MAAM,wCAAwC8Q,eAAe,WAAW,IAAI54B,EAAE0nB,EAAE,IAAI1nB,EAAE,EAAEA,EAAE5D,KAAK4yB,MAAMh5B,OAAOgK,IAAI0nB,EAAEtrB,KAAK4yB,MAAMhvB,GAAG5D,KAAKu7B,OAAO5E,SAASrL,EAAEmR,mBAAmBz8B,KAAKs7B,eAAexoB,EAAE0d,mBAAmBlF,EAAEoR,cAAc18B,KAAKu7B,QAAQjQ,EAAEqR,aAAarR,EAAEsR,qBAAqBC,eAAe,WAAW,IAAIj5B,EAAE,IAAI5D,KAAKu7B,OAAO5E,SAAS32B,KAAK+7B,kBAAkB/7B,KAAKu7B,OAAOjF,sBAAsBxjB,EAAE4d,uBAAuB9sB,EAAE,IAAI7B,EAAE,CAAC+6B,MAAM98B,KAAK88B,OAAO98B,KAAK0gB,cAAcqc,gBAAgB/8B,KAAKu7B,QAAQv7B,KAAK4yB,MAAM3vB,KAAKW,GAAG,GAAG5D,KAAK67B,oBAAoB77B,KAAK4yB,MAAMh5B,QAAQ,IAAIoG,KAAK67B,mBAAmB,IAAI77B,KAAK4yB,MAAMh5B,OAAO,MAAM,IAAI8xB,MAAM,kCAAkC1rB,KAAK67B,kBAAkB,gCAAgC77B,KAAK4yB,MAAMh5B,SAASojC,iBAAiB,WAAW,IAAIp5B,EAAE5D,KAAKu7B,OAAOlF,qBAAqBvjB,EAAE8e,uBAAuB,GAAGhuB,EAAE,EAAE,MAAM5D,KAAKw7B,YAAY,EAAE1oB,EAAE0d,mBAAwK,IAAI9E,MAAM,sDAA/J,IAAIA,MAAM,2IAA2M1rB,KAAKu7B,OAAO5E,SAAS/yB,GAAG,IAAI0nB,EAAE1nB,EAAE,GAAG5D,KAAKs7B,eAAexoB,EAAE8e,uBAAuB5xB,KAAKy7B,wBAAwBz7B,KAAK07B,aAAajgC,EAAEm/B,kBAAkB56B,KAAK27B,0BAA0BlgC,EAAEm/B,kBAAkB56B,KAAK47B,8BAA8BngC,EAAEm/B,kBAAkB56B,KAAK67B,oBAAoBpgC,EAAEm/B,kBAAkB56B,KAAK87B,iBAAiBrgC,EAAEo/B,kBAAkB76B,KAAK+7B,mBAAmBtgC,EAAEo/B,iBAAiB,CAAC,GAAG76B,KAAK88B,OAAM,GAAIl5B,EAAE5D,KAAKu7B,OAAOlF,qBAAqBvjB,EAAEukB,kCAAkC,EAAE,MAAM,IAAI3L,MAAM,wEAAwE,GAAG1rB,KAAKu7B,OAAO5E,SAAS/yB,GAAG5D,KAAKs7B,eAAexoB,EAAEukB,iCAAiCr3B,KAAKo8B,qCAAqCp8B,KAAKw7B,YAAYx7B,KAAKs8B,mCAAmCxpB,EAAEwkB,+BAA+Bt3B,KAAKs8B,mCAAmCt8B,KAAKu7B,OAAOlF,qBAAqBvjB,EAAEwkB,6BAA6Bt3B,KAAKs8B,mCAAmC,GAAG,MAAM,IAAI5Q,MAAM,gEAAgE1rB,KAAKu7B,OAAO5E,SAAS32B,KAAKs8B,oCAAoCt8B,KAAKs7B,eAAexoB,EAAEwkB,6BAA6Bt3B,KAAKi8B,6BAA6B,IAAI1qB,EAAEvR,KAAK+7B,iBAAiB/7B,KAAK87B,eAAe97B,KAAK88B,QAAQvrB,GAAG,GAAGA,GAAG,GAAGvR,KAAKk8B,uBAAuB,IAAIzQ,EAAEH,EAAE/Z,EAAE,GAAG,EAAEka,EAAEzrB,KAAKw7B,YAAYlQ,EAAExY,EAAE4d,uBAAuB1wB,KAAKu7B,OAAOnF,KAAK3K,QAAQ,GAAGA,EAAE,EAAE,MAAM,IAAIC,MAAM,0BAA0Bla,KAAK8B,IAAImY,GAAG,YAAYwR,cAAc,SAASr5B,GAAG5D,KAAKu7B,OAAO9P,EAAE7nB,IAAI6c,KAAK,SAAS7c,GAAG5D,KAAKi9B,cAAcr5B,GAAG5D,KAAKg9B,mBAAmBh9B,KAAK68B,iBAAiB78B,KAAKw8B,mBAAmBlR,EAAEH,QAAQvY,GAAG,CAAC,qBAAqB,GAAG,cAAc,GAAG,YAAY,GAAG,UAAU,GAAG,aAAa,KAAKsqB,GAAG,CAAC,SAASt5B,EAAE0nB,EAAE/Z,GAAG,aAAa,IAAIka,EAAE7nB,EAAE,sBAAsBkP,EAAElP,EAAE,WAAWnI,EAAEmI,EAAE,sBAAsB7B,EAAE6B,EAAE,WAAWwnB,EAAExnB,EAAE,UAAUgP,EAAEhP,EAAE,kBAAkBynB,EAAEznB,EAAE,aAAa,SAAS4nB,EAAE5nB,EAAE0nB,GAAGtrB,KAAK8V,QAAQlS,EAAE5D,KAAK0gB,YAAY4K,EAAEE,EAAEkB,UAAU,CAACyQ,YAAY,WAAW,OAAO,IAAI,EAAEn9B,KAAKo9B,UAAUC,QAAQ,WAAW,OAAO,OAAO,KAAKr9B,KAAKo9B,UAAUV,cAAc,SAAS94B,GAAG,IAAI0nB,EAAE/Z,EAAE,GAAG3N,EAAEid,KAAK,IAAI7gB,KAAKs9B,eAAe15B,EAAEgzB,QAAQ,GAAGrlB,EAAE3N,EAAEgzB,QAAQ,GAAG52B,KAAKu9B,SAAS35B,EAAE2yB,SAASv2B,KAAKs9B,gBAAgB15B,EAAEid,KAAKtP,IAAI,IAAIvR,KAAKqsB,iBAAiB,IAAIrsB,KAAKssB,iBAAiB,MAAM,IAAIZ,MAAM,sIAAsI,GAAG,QAAQJ,EAAE,SAAS1nB,GAAG,IAAI,IAAI0nB,KAAK1Y,EAAE,GAAGpV,OAAOkvB,UAAU8L,eAAepiB,KAAKxD,EAAE0Y,IAAI1Y,EAAE0Y,GAAGgC,QAAQ1pB,EAAE,OAAOgP,EAAE0Y,GAAG,OAAO,KAA3G,CAAiHtrB,KAAKw9B,oBAAoB,MAAM,IAAI9R,MAAM,+BAA+B5Y,EAAEgoB,OAAO96B,KAAKw9B,mBAAmB,0BAA0B1qB,EAAE8b,YAAY,SAAS5uB,KAAKu9B,UAAU,KAAKv9B,KAAKszB,aAAa,IAAI73B,EAAEuE,KAAKqsB,eAAersB,KAAKssB,iBAAiBtsB,KAAKusB,MAAMjB,EAAE1nB,EAAE2yB,SAASv2B,KAAKqsB,kBAAkB0Q,gBAAgB,SAASn5B,GAAG5D,KAAKy9B,cAAc75B,EAAEgzB,QAAQ,GAAGhzB,EAAEid,KAAK,GAAG7gB,KAAKo9B,QAAQx5B,EAAEgzB,QAAQ,GAAG52B,KAAKw9B,kBAAkB55B,EAAEizB,WAAW,GAAG72B,KAAK1G,KAAKsK,EAAEkzB,WAAW92B,KAAKusB,MAAM3oB,EAAEgzB,QAAQ,GAAG52B,KAAKqsB,eAAezoB,EAAEgzB,QAAQ,GAAG52B,KAAKssB,iBAAiB1oB,EAAEgzB,QAAQ,GAAG,IAAItL,EAAE1nB,EAAEgzB,QAAQ,GAAG,GAAG52B,KAAK09B,kBAAkB95B,EAAEgzB,QAAQ,GAAG52B,KAAK29B,kBAAkB/5B,EAAEgzB,QAAQ,GAAG52B,KAAK49B,gBAAgBh6B,EAAEgzB,QAAQ,GAAG52B,KAAK69B,uBAAuBj6B,EAAEgzB,QAAQ,GAAG52B,KAAK89B,uBAAuBl6B,EAAEgzB,QAAQ,GAAG52B,KAAKy8B,kBAAkB74B,EAAEgzB,QAAQ,GAAG52B,KAAKm9B,cAAc,MAAM,IAAIzR,MAAM,mCAAmC9nB,EAAEid,KAAKyK,GAAGtrB,KAAK+9B,gBAAgBn6B,GAAG5D,KAAKg+B,qBAAqBp6B,GAAG5D,KAAKi+B,YAAYr6B,EAAE2yB,SAASv2B,KAAK29B,oBAAoBf,kBAAkB,WAAW58B,KAAK8tB,gBAAgB,KAAK9tB,KAAK+tB,eAAe,KAAK,IAAInqB,EAAE5D,KAAKy9B,eAAe,EAAEz9B,KAAK0tB,OAAO,GAAG1tB,KAAK89B,wBAAwB,GAAGl6B,IAAI5D,KAAK+tB,eAAe,GAAG/tB,KAAK89B,wBAAwB,GAAGl6B,IAAI5D,KAAK8tB,gBAAgB9tB,KAAK89B,wBAAwB,GAAG,OAAO99B,KAAK0tB,KAAK,MAAM1tB,KAAKg0B,YAAYhgB,OAAO,KAAKhU,KAAK0tB,KAAI,IAAKsQ,qBAAqB,WAAW,GAAGh+B,KAAKk+B,YAAY,GAAG,CAAC,IAAIt6B,EAAE6nB,EAAEzrB,KAAKk+B,YAAY,GAAGr8B,OAAO7B,KAAKssB,mBAAmBxZ,EAAE+nB,mBAAmB76B,KAAKssB,iBAAiB1oB,EAAEgzB,QAAQ,IAAI52B,KAAKqsB,iBAAiBvZ,EAAE+nB,mBAAmB76B,KAAKqsB,eAAezoB,EAAEgzB,QAAQ,IAAI52B,KAAKy8B,oBAAoB3pB,EAAE+nB,mBAAmB76B,KAAKy8B,kBAAkB74B,EAAEgzB,QAAQ,IAAI52B,KAAK49B,kBAAkB9qB,EAAE+nB,mBAAmB76B,KAAK49B,gBAAgBh6B,EAAEgzB,QAAQ,MAAMmH,gBAAgB,SAASn6B,GAAG,IAAI0nB,EAAE/Z,EAAEka,EAAEhwB,EAAEmI,EAAExC,MAAMpB,KAAK09B,kBAAkB,IAAI19B,KAAKk+B,cAAcl+B,KAAKk+B,YAAY,IAAIt6B,EAAExC,MAAM,EAAE3F,GAAG6vB,EAAE1nB,EAAEgzB,QAAQ,GAAGrlB,EAAE3N,EAAEgzB,QAAQ,GAAGnL,EAAE7nB,EAAE2yB,SAAShlB,GAAGvR,KAAKk+B,YAAY5S,GAAG,CAACx8B,GAAGw8B,EAAE1xB,OAAO2X,EAAE1P,MAAM4pB,GAAG7nB,EAAE+yB,SAASl7B,IAAIkhC,WAAW,WAAW,IAAI/4B,EAAEynB,EAAEa,WAAW,aAAa,QAAQ,GAAGlsB,KAAKq9B,UAAUr9B,KAAKg0B,YAAY5I,EAAEsI,WAAW1zB,KAAKu9B,UAAUv9B,KAAKi0B,eAAe7I,EAAEsI,WAAW1zB,KAAKi+B,iBAAiB,CAAC,IAAI3S,EAAEtrB,KAAKm+B,4BAA4B,GAAG,OAAO7S,EAAEtrB,KAAKg0B,YAAY1I,MAAM,CAAC,IAAI/Z,EAAEuB,EAAE8b,YAAYhrB,EAAE5D,KAAKu9B,UAAUv9B,KAAKg0B,YAAYh0B,KAAK0gB,YAAY+S,eAAeliB,GAAG,IAAIka,EAAEzrB,KAAKo+B,+BAA+B,GAAG,OAAO3S,EAAEzrB,KAAKi0B,eAAexI,MAAM,CAAC,IAAIhwB,EAAEqX,EAAE8b,YAAYhrB,EAAE5D,KAAKi+B,aAAaj+B,KAAKi0B,eAAej0B,KAAK0gB,YAAY+S,eAAeh4B,MAAM0iC,0BAA0B,WAAW,IAAIv6B,EAAE5D,KAAKk+B,YAAY,OAAO,GAAGt6B,EAAE,CAAC,IAAI0nB,EAAEG,EAAE7nB,EAAE/B,OAAO,OAAO,IAAIypB,EAAEsL,QAAQ,IAAQ70B,EAAE/B,KAAKu9B,YAAYjS,EAAEsL,QAAQ,GAAlC,KAA0CxL,EAAEsI,WAAWpI,EAAEiL,SAAS3yB,EAAEhK,OAAO,IAAI,OAAO,MAAMwkC,6BAA6B,WAAW,IAAIx6B,EAAE5D,KAAKk+B,YAAY,OAAO,GAAGt6B,EAAE,CAAC,IAAI0nB,EAAEG,EAAE7nB,EAAE/B,OAAO,OAAO,IAAIypB,EAAEsL,QAAQ,IAAQ70B,EAAE/B,KAAKi+B,eAAe3S,EAAEsL,QAAQ,GAArC,KAA6CxL,EAAEsI,WAAWpI,EAAEiL,SAAS3yB,EAAEhK,OAAO,IAAI,OAAO,OAAO0xB,EAAEH,QAAQK,GAAG,CAAC,qBAAqB,EAAE,iBAAiB,EAAE,UAAU,EAAE,qBAAqB,GAAG,YAAY,GAAG,SAAS,GAAG,UAAU,KAAK6S,GAAG,CAAC,SAASz6B,EAAE0nB,EAAE/Z,GAAG,aAAa,SAASka,EAAE7nB,EAAE0nB,EAAE/Z,GAAGvR,KAAK4B,KAAKgC,EAAE5D,KAAK0tB,IAAInc,EAAEmc,IAAI1tB,KAAK1G,KAAKiY,EAAEjY,KAAK0G,KAAK6tB,QAAQtc,EAAEsc,QAAQ7tB,KAAK8tB,gBAAgBvc,EAAEuc,gBAAgB9tB,KAAK+tB,eAAexc,EAAEwc,eAAe/tB,KAAKs+B,MAAMhT,EAAEtrB,KAAKu+B,YAAYhtB,EAAEkc,OAAOztB,KAAK8V,QAAQ,CAAC0W,YAAYjb,EAAEib,YAAYoB,mBAAmBrc,EAAEqc,oBAAoB,IAAI9a,EAAElP,EAAE,yBAAyBnI,EAAEmI,EAAE,uBAAuB7B,EAAE6B,EAAE,UAAUwnB,EAAExnB,EAAE,sBAAsBgP,EAAEhP,EAAE,0BAA0B6nB,EAAEiB,UAAU,CAAC8R,eAAe,SAAS56B,GAAG,IAAI0nB,EAAE,KAAK/Z,EAAE,SAAS,IAAI,IAAI3N,EAAE,MAAM,IAAI8nB,MAAM,6BAA6B,IAAID,EAAE,YAAYla,EAAE3N,EAAE9F,gBAAgB,SAASyT,EAAE,iBAAiBA,GAAG,SAASA,IAAIA,EAAE,UAAU+Z,EAAEtrB,KAAKy+B,oBAAoB,IAAIhjC,GAAGuE,KAAKu+B,YAAY9iC,IAAIgwB,IAAIH,EAAEA,EAAEuB,KAAK,IAAI9qB,EAAEs4B,oBAAoB5+B,GAAGgwB,IAAIH,EAAEA,EAAEuB,KAAK,IAAI9qB,EAAEq4B,mBAAmB,MAAMx2B,IAAI0nB,EAAE,IAAI1Y,EAAE,UAAUwf,MAAMxuB,GAAG,OAAO,IAAIkP,EAAEwY,EAAE/Z,EAAE,KAAKmtB,MAAM,SAAS96B,EAAE0nB,GAAG,OAAOtrB,KAAKw+B,eAAe56B,GAAGotB,WAAW1F,IAAIqT,WAAW,SAAS/6B,EAAE0nB,GAAG,OAAOtrB,KAAKw+B,eAAe56B,GAAG,cAAcmyB,eAAezK,IAAIoH,gBAAgB,SAAS9uB,EAAE0nB,GAAG,GAAGtrB,KAAKs+B,iBAAiBlT,GAAGprB,KAAKs+B,MAAM9R,YAAYc,QAAQ1pB,EAAE0pB,MAAM,OAAOttB,KAAKs+B,MAAMrR,sBAAsB,IAAI1b,EAAEvR,KAAKy+B,oBAAoB,OAAOz+B,KAAKu+B,cAAchtB,EAAEA,EAAEsb,KAAK,IAAI9qB,EAAEs4B,mBAAmBjP,EAAE+B,iBAAiB5b,EAAE3N,EAAE0nB,IAAImT,kBAAkB,WAAW,OAAOz+B,KAAKs+B,iBAAiBlT,EAAEprB,KAAKs+B,MAAM3R,mBAAmB3sB,KAAKs+B,iBAAiB1rB,EAAE5S,KAAKs+B,MAAM,IAAI7iC,EAAEuE,KAAKs+B,SAAS,IAAI,IAAIjT,EAAE,CAAC,SAAS,WAAW,eAAe,eAAe,iBAAiBG,EAAE,WAAW,MAAM,IAAIE,MAAM,+EAA+EI,EAAE,EAAEA,EAAET,EAAEzxB,OAAOkyB,IAAIL,EAAEiB,UAAUrB,EAAES,IAAIN,EAAEF,EAAEH,QAAQM,GAAG,CAAC,qBAAqB,EAAE,sBAAsB,GAAG,yBAAyB,GAAG,wBAAwB,GAAG,SAAS,KAAKmT,GAAG,CAAC,SAASh7B,EAAE4nB,EAAEF,IAAG,SAAUA,GAAG,aAAa,IAAI/Z,EAAEka,EAAE7nB,EAAE0nB,EAAEuT,kBAAkBvT,EAAEwT,uBAAuB,GAAGl7B,EAAE,CAAC,IAAInI,EAAE,EAAEqX,EAAE,IAAIlP,EAAEynB,GAAGtpB,EAAEupB,EAAEyT,SAASC,eAAe,IAAIlsB,EAAEmsB,QAAQl9B,EAAE,CAACm9B,eAAc,IAAK3tB,EAAE,WAAWxP,EAAEqC,KAAK3I,IAAIA,EAAE,QAAQ,GAAG6vB,EAAEyP,mBAAc,IAASzP,EAAE6T,eAAe5tB,EAAE,aAAa+Z,GAAG,uBAAuBA,EAAEyT,SAASK,cAAc,UAAU,WAAW,IAAIx7B,EAAE0nB,EAAEyT,SAASK,cAAc,UAAUx7B,EAAEy7B,mBAAmB,WAAWhU,IAAIznB,EAAEy7B,mBAAmB,KAAKz7B,EAAE07B,WAAWC,YAAY37B,GAAGA,EAAE,MAAM0nB,EAAEyT,SAASS,gBAAgBC,YAAY77B,IAAI,WAAW87B,WAAWrU,EAAE,QAAQ,CAAC,IAAID,EAAE,IAAIE,EAAE6T,eAAe/T,EAAEuU,MAAMC,UAAUvU,EAAE9Z,EAAE,WAAW6Z,EAAEyU,MAAMC,YAAY,IAAI,IAAIltB,EAAE,GAAG,SAASyY,IAAI,IAAIznB,EAAE0nB,EAAEG,GAAE,EAAG,IAAI,IAAIla,EAAEqB,EAAEhZ,OAAO2X,GAAG,CAAC,IAAI+Z,EAAE1Y,EAAEA,EAAE,GAAGhP,GAAG,IAAIA,EAAE2N,GAAG+Z,EAAE1nB,KAAK2N,EAAEqB,EAAEhZ,OAAO6xB,GAAE,EAAGD,EAAEL,QAAQ,SAASvnB,GAAG,IAAIgP,EAAE3P,KAAKW,IAAI6nB,GAAGla,OAAO6E,KAAKpW,KAAK,oBAAoB+/B,EAAOA,EAAO,oBAAoBrG,KAAKA,KAAK,oBAAoBha,OAAOA,OAAO,KAAK,IAAIsgB,GAAG,CAAC,SAASp8B,EAAE0nB,EAAE/Z,GAAG,aAAa,IAAI9V,EAAEmI,EAAE,aAAa,SAASynB,KAAK,IAAIG,EAAE,GAAG1Y,EAAE,CAAC,YAAY/Q,EAAE,CAAC,aAAa0pB,EAAE,CAAC,WAAW,SAASL,EAAExnB,GAAG,GAAG,mBAAmBA,EAAE,MAAM,IAAIq8B,UAAU,+BAA+BjgC,KAAKkgC,MAAMzU,EAAEzrB,KAAKmgC,MAAM,GAAGngC,KAAKogC,aAAQ,EAAOx8B,IAAIynB,GAAGna,EAAElR,KAAK4D,GAAG,SAASgP,EAAEhP,EAAE0nB,EAAE/Z,GAAGvR,KAAKyhB,QAAQ7d,EAAE,mBAAmB0nB,IAAItrB,KAAKqgC,YAAY/U,EAAEtrB,KAAKsgC,cAActgC,KAAKugC,oBAAoB,mBAAmBhvB,IAAIvR,KAAKwgC,WAAWjvB,EAAEvR,KAAKygC,aAAazgC,KAAK0gC,mBAAmB,SAAS5U,EAAER,EAAE/Z,EAAEka,GAAGhwB,GAAE,WAAW,IAAImI,EAAE,IAAIA,EAAE2N,EAAEka,GAAG,MAAM7nB,GAAG,OAAO4nB,EAAEqI,OAAOvI,EAAE1nB,GAAGA,IAAI0nB,EAAEE,EAAEqI,OAAOvI,EAAE,IAAI2U,UAAU,uCAAuCzU,EAAE7K,QAAQ2K,EAAE1nB,MAAK,SAAS0N,EAAE1N,GAAG,IAAI0nB,EAAE1nB,GAAGA,EAAEc,KAAK,GAAGd,IAAI,iBAAiBA,GAAG,mBAAmBA,IAAI,mBAAmB0nB,EAAE,OAAO,WAAWA,EAAExsB,MAAM8E,EAAE1D,YAAY,SAASgR,EAAEoa,EAAE1nB,GAAG,IAAI2N,GAAE,EAAG,SAASka,EAAE7nB,GAAG2N,IAAIA,GAAE,EAAGia,EAAEqI,OAAOvI,EAAE1nB,IAAI,SAASnI,EAAEmI,GAAG2N,IAAIA,GAAE,EAAGia,EAAE7K,QAAQ2K,EAAE1nB,IAAI,IAAIkP,EAAE8Y,GAAE,WAAWhoB,EAAEnI,EAAEgwB,MAAK,UAAU3Y,EAAE6tB,QAAQlV,EAAE3Y,EAAEjR,OAAO,SAAS+pB,EAAEhoB,EAAE0nB,GAAG,IAAI/Z,EAAE,GAAG,IAAIA,EAAE1P,MAAM+B,EAAE0nB,GAAG/Z,EAAEovB,OAAO,UAAU,MAAM/8B,GAAG2N,EAAEovB,OAAO,QAAQpvB,EAAE1P,MAAM+B,EAAE,OAAO2N,GAAG+Z,EAAEH,QAAQC,GAAGsB,UAAUkU,QAAQ,SAAStV,GAAG,GAAG,mBAAmBA,EAAE,OAAOtrB,KAAK,IAAIuR,EAAEvR,KAAK6gC,YAAY,OAAO7gC,KAAK0E,MAAK,SAASd,GAAG,OAAO2N,EAAEoP,QAAQ2K,KAAK5mB,MAAK,WAAW,OAAOd,QAAK,SAASA,GAAG,OAAO2N,EAAEoP,QAAQ2K,KAAK5mB,MAAK,WAAW,MAAMd,SAAOwnB,EAAEsB,UAAUoU,MAAM,SAASl9B,GAAG,OAAO5D,KAAK0E,KAAK,KAAKd,IAAIwnB,EAAEsB,UAAUhoB,KAAK,SAASd,EAAE0nB,GAAG,GAAG,mBAAmB1nB,GAAG5D,KAAKkgC,QAAQn+B,GAAG,mBAAmBupB,GAAGtrB,KAAKkgC,QAAQptB,EAAE,OAAO9S,KAAK,IAAIuR,EAAE,IAAIvR,KAAK6gC,YAAYxV,GAAqF,OAAlFrrB,KAAKkgC,QAAQzU,EAAEK,EAAEva,EAAEvR,KAAKkgC,QAAQn+B,EAAE6B,EAAE0nB,EAAEtrB,KAAKogC,SAASpgC,KAAKmgC,MAAMl9B,KAAK,IAAI2P,EAAErB,EAAE3N,EAAE0nB,IAAW/Z,GAAGqB,EAAE8Z,UAAU4T,cAAc,SAAS18B,GAAG4nB,EAAE7K,QAAQ3gB,KAAKyhB,QAAQ7d,IAAIgP,EAAE8Z,UAAU6T,mBAAmB,SAAS38B,GAAGkoB,EAAE9rB,KAAKyhB,QAAQzhB,KAAKqgC,YAAYz8B,IAAIgP,EAAE8Z,UAAU+T,aAAa,SAAS78B,GAAG4nB,EAAEqI,OAAO7zB,KAAKyhB,QAAQ7d,IAAIgP,EAAE8Z,UAAUgU,kBAAkB,SAAS98B,GAAGkoB,EAAE9rB,KAAKyhB,QAAQzhB,KAAKwgC,WAAW58B,IAAI4nB,EAAE7K,QAAQ,SAAS/c,EAAE0nB,GAAG,IAAI/Z,EAAEqa,EAAEta,EAAEga,GAAG,GAAG,UAAU/Z,EAAEovB,OAAO,OAAOnV,EAAEqI,OAAOjwB,EAAE2N,EAAE1P,OAAO,IAAI4pB,EAAEla,EAAE1P,MAAM,GAAG4pB,EAAEva,EAAEtN,EAAE6nB,OAAO,CAAC7nB,EAAEs8B,MAAMn+B,EAAE6B,EAAEw8B,QAAQ9U,EAAE,IAAI,IAAI7vB,GAAG,EAAEqX,EAAElP,EAAEu8B,MAAMvmC,SAAS6B,EAAEqX,GAAGlP,EAAEu8B,MAAM1kC,GAAG6kC,cAAchV,GAAG,OAAO1nB,GAAG4nB,EAAEqI,OAAO,SAASjwB,EAAE0nB,GAAG1nB,EAAEs8B,MAAMptB,EAAElP,EAAEw8B,QAAQ9U,EAAE,IAAI,IAAI/Z,GAAG,EAAEka,EAAE7nB,EAAEu8B,MAAMvmC,SAAS2X,EAAEka,GAAG7nB,EAAEu8B,MAAM5uB,GAAGkvB,aAAanV,GAAG,OAAO1nB,GAAGwnB,EAAEzK,QAAQ,SAAS/c,GAAG,OAAGA,aAAa5D,KAAY4D,EAAS4nB,EAAE7K,QAAQ,IAAI3gB,KAAKqrB,GAAGznB,IAAIwnB,EAAEyI,OAAO,SAASjwB,GAAG,IAAI0nB,EAAE,IAAItrB,KAAKqrB,GAAG,OAAOG,EAAEqI,OAAOvI,EAAE1nB,IAAIwnB,EAAE2I,IAAI,SAASnwB,GAAG,IAAI2N,EAAEvR,KAAK,GAAG,mBAAmBxC,OAAOkvB,UAAU/a,SAASyE,KAAKxS,GAAG,OAAO5D,KAAK6zB,OAAO,IAAIoM,UAAU,qBAAqB,IAAIxU,EAAE7nB,EAAEhK,OAAO6B,GAAE,EAAG,IAAIgwB,EAAE,OAAOzrB,KAAK2gB,QAAQ,IAA8C,IAA1C,IAAI7N,EAAE,IAAIjU,MAAM4sB,GAAG1pB,EAAE,EAAEupB,GAAG,EAAEF,EAAE,IAAIprB,KAAKqrB,KAAUC,EAAEG,GAAG7Y,EAAEhP,EAAE0nB,GAAGA,GAAG,OAAOF,EAAE,SAASxY,EAAEhP,EAAE0nB,GAAG/Z,EAAEoP,QAAQ/c,GAAGc,MAAK,SAASd,GAAGkP,EAAEwY,GAAG1nB,IAAI7B,IAAI0pB,GAAGhwB,IAAIA,GAAE,EAAG+vB,EAAE7K,QAAQyK,EAAEtY,OAAK,SAASlP,GAAGnI,IAAIA,GAAE,EAAG+vB,EAAEqI,OAAOzI,EAAExnB,SAAQwnB,EAAE2V,KAAK,SAASn9B,GAAG,IAAI0nB,EAAEtrB,KAAK,GAAG,mBAAmBxC,OAAOkvB,UAAU/a,SAASyE,KAAKxS,GAAG,OAAO5D,KAAK6zB,OAAO,IAAIoM,UAAU,qBAAqB,IAAI1uB,EAAE3N,EAAEhK,OAAO6xB,GAAE,EAAG,IAAIla,EAAE,OAAOvR,KAAK2gB,QAAQ,IAA2B,IAAvB,IAA4I5e,EAAxItG,GAAG,EAAEqX,EAAE,IAAI9S,KAAKqrB,KAAU5vB,EAAE8V,GAAGxP,EAAE6B,EAAEnI,GAAG6vB,EAAE3K,QAAQ5e,GAAG2C,MAAK,SAASd,GAAG6nB,IAAIA,GAAE,EAAGD,EAAE7K,QAAQ7N,EAAElP,OAAK,SAASA,GAAG6nB,IAAIA,GAAE,EAAGD,EAAEqI,OAAO/gB,EAAElP,OAAY,OAAOkP,IAAI,CAACkuB,UAAU,KAAKC,GAAG,CAAC,SAASr9B,EAAE0nB,EAAE/Z,GAAG,aAAa,IAAIka,EAAE,IAAG,EAAG7nB,EAAE,sBAAsBs9B,QAAQzV,EAAE7nB,EAAE,iBAAiBA,EAAE,iBAAiBA,EAAE,yBAAyB0nB,EAAEH,QAAQM,GAAG,CAAC,gBAAgB,GAAG,gBAAgB,GAAG,qBAAqB,GAAG,uBAAuB,KAAK0V,GAAG,CAAC,SAASv9B,EAAE0nB,EAAE/Z,GAAG,aAAa,IAAIxP,EAAE6B,EAAE,kBAAkBwnB,EAAExnB,EAAE,kBAAkBgP,EAAEhP,EAAE,mBAAmBnI,EAAEmI,EAAE,mBAAmBkP,EAAElP,EAAE,kBAAkBynB,EAAE7tB,OAAOkvB,UAAU/a,SAAS6Z,EAAE,EAAEM,GAAG,EAAExa,EAAE,EAAEJ,EAAE,EAAE,SAAS0a,EAAEhoB,GAAG,KAAK5D,gBAAgB4rB,GAAG,OAAO,IAAIA,EAAEhoB,GAAG5D,KAAK8V,QAAQsV,EAAE8V,OAAO,CAAClS,MAAMlD,EAAEsV,OAAOlwB,EAAEmwB,UAAU,MAAMC,WAAW,GAAGC,SAAS,EAAEC,SAASlwB,EAAE5Y,GAAG,IAAIkL,GAAG,IAAI,IAAI0nB,EAAEtrB,KAAK8V,QAAQwV,EAAEyD,KAAK,EAAEzD,EAAEgW,WAAWhW,EAAEgW,YAAYhW,EAAEgW,WAAWhW,EAAEmW,MAAM,EAAEnW,EAAEgW,YAAYhW,EAAEgW,WAAW,KAAKhW,EAAEgW,YAAY,IAAIthC,KAAK0hC,IAAI,EAAE1hC,KAAK2hC,IAAI,GAAG3hC,KAAK4hC,OAAM,EAAG5hC,KAAK6hC,OAAO,GAAG7hC,KAAK8hC,KAAK,IAAIhvB,EAAE9S,KAAK8hC,KAAKC,UAAU,EAAE,IAAIxwB,EAAExP,EAAEigC,aAAahiC,KAAK8hC,KAAKxW,EAAE0D,MAAM1D,EAAE8V,OAAO9V,EAAEgW,WAAWhW,EAAEiW,SAASjW,EAAEkW,UAAU,GAAGjwB,IAAIia,EAAE,MAAM,IAAIE,MAAMjwB,EAAE8V,IAAI,GAAG+Z,EAAE2W,QAAQlgC,EAAEmgC,iBAAiBliC,KAAK8hC,KAAKxW,EAAE2W,QAAQ3W,EAAE6W,WAAW,CAAC,IAAI1W,EAAE,GAAGA,EAAE,iBAAiBH,EAAE6W,WAAWvvB,EAAEwvB,WAAW9W,EAAE6W,YAAY,yBAAyB9W,EAAEjV,KAAKkV,EAAE6W,YAAY,IAAIhW,WAAWb,EAAE6W,YAAY7W,EAAE6W,YAAY5wB,EAAExP,EAAEsgC,qBAAqBriC,KAAK8hC,KAAKrW,MAAMD,EAAE,MAAM,IAAIE,MAAMjwB,EAAE8V,IAAIvR,KAAKsiC,WAAU,GAAI,SAAS7W,EAAE7nB,EAAE0nB,GAAG,IAAI/Z,EAAE,IAAIqa,EAAEN,GAAG,GAAG/Z,EAAEtO,KAAKW,GAAE,GAAI2N,EAAEmwB,IAAI,MAAMnwB,EAAEowB,KAAKlmC,EAAE8V,EAAEmwB,KAAK,OAAOnwB,EAAEtS,OAAO2sB,EAAEc,UAAUzpB,KAAK,SAASW,EAAE0nB,GAAG,IAAI/Z,EAAEka,EAAEhwB,EAAEuE,KAAK8hC,KAAKhvB,EAAE9S,KAAK8V,QAAQurB,UAAU,GAAGrhC,KAAK4hC,MAAM,OAAM,EAAGnW,EAAEH,MAAMA,EAAEA,GAAE,IAAKA,EAAE,EAAE,EAAE,iBAAiB1nB,EAAEnI,EAAE8mC,MAAM3vB,EAAEwvB,WAAWx+B,GAAG,yBAAyBynB,EAAEjV,KAAKxS,GAAGnI,EAAE8mC,MAAM,IAAIpW,WAAWvoB,GAAGnI,EAAE8mC,MAAM3+B,EAAEnI,EAAE+mC,QAAQ,EAAE/mC,EAAEgnC,SAAShnC,EAAE8mC,MAAM3oC,OAAO,EAAE,CAAC,GAAG,IAAI6B,EAAEsmC,YAAYtmC,EAAEinC,OAAO,IAAItX,EAAEuX,KAAK7vB,GAAGrX,EAAEmnC,SAAS,EAAEnnC,EAAEsmC,UAAUjvB,GAAG,KAAKvB,EAAExP,EAAE8gC,QAAQpnC,EAAEgwB,KAAKla,IAAIia,EAAE,OAAOxrB,KAAK8iC,MAAMvxB,KAAKvR,KAAK4hC,OAAM,GAAI,IAAInmC,EAAEsmC,YAAY,IAAItmC,EAAEgnC,UAAU,IAAIhX,GAAG,IAAIA,KAAK,WAAWzrB,KAAK8V,QAAQpd,GAAGsH,KAAKivB,OAAOrc,EAAEmwB,cAAc3X,EAAE4X,UAAUvnC,EAAEinC,OAAOjnC,EAAEmnC,YAAY5iC,KAAKivB,OAAO7D,EAAE4X,UAAUvnC,EAAEinC,OAAOjnC,EAAEmnC,mBAAmB,EAAEnnC,EAAEgnC,UAAU,IAAIhnC,EAAEsmC,YAAY,IAAIxwB,GAAG,OAAO,IAAIka,GAAGla,EAAExP,EAAEkhC,WAAWjjC,KAAK8hC,MAAM9hC,KAAK8iC,MAAMvxB,GAAGvR,KAAK4hC,OAAM,EAAGrwB,IAAIia,GAAG,IAAIC,IAAIzrB,KAAK8iC,MAAMtX,KAAK/vB,EAAEsmC,UAAU,KAAKnW,EAAEc,UAAUuC,OAAO,SAASrrB,GAAG5D,KAAK6hC,OAAO5+B,KAAKW,IAAIgoB,EAAEc,UAAUoW,MAAM,SAASl/B,GAAGA,IAAI4nB,IAAI,WAAWxrB,KAAK8V,QAAQpd,GAAGsH,KAAKf,OAAOe,KAAK6hC,OAAO7lC,KAAK,IAAIgE,KAAKf,OAAOmsB,EAAE8X,cAAcljC,KAAK6hC,SAAS7hC,KAAK6hC,OAAO,GAAG7hC,KAAK0hC,IAAI99B,EAAE5D,KAAK2hC,IAAI3hC,KAAK8hC,KAAKH,KAAKpwB,EAAE4xB,QAAQvX,EAAEra,EAAEsxB,QAAQpX,EAAEla,EAAE6xB,WAAW,SAASx/B,EAAE0nB,GAAG,OAAOA,EAAEA,GAAG,IAAIyD,KAAI,EAAGtD,EAAE7nB,EAAE0nB,IAAI/Z,EAAEkwB,KAAK,SAAS79B,EAAE0nB,GAAG,OAAOA,EAAEA,GAAG,IAAImW,MAAK,EAAGhW,EAAE7nB,EAAE0nB,KAAK,CAAC,iBAAiB,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,iBAAiB,KAAK+X,GAAG,CAAC,SAASz/B,EAAE0nB,EAAE/Z,GAAG,aAAa,IAAID,EAAE1N,EAAE,kBAAkBsN,EAAEtN,EAAE,kBAAkBgoB,EAAEhoB,EAAE,mBAAmBiP,EAAEjP,EAAE,oBAAoB6nB,EAAE7nB,EAAE,mBAAmBnI,EAAEmI,EAAE,kBAAkBkP,EAAElP,EAAE,mBAAmB7E,EAAEvB,OAAOkvB,UAAU/a,SAAS,SAAS5P,EAAE6B,GAAG,KAAK5D,gBAAgB+B,GAAG,OAAO,IAAIA,EAAE6B,GAAG5D,KAAK8V,QAAQ5E,EAAEgwB,OAAO,CAACG,UAAU,MAAMC,WAAW,EAAE5oC,GAAG,IAAIkL,GAAG,IAAI,IAAI0nB,EAAEtrB,KAAK8V,QAAQwV,EAAEyD,KAAK,GAAGzD,EAAEgW,YAAYhW,EAAEgW,WAAW,KAAKhW,EAAEgW,YAAYhW,EAAEgW,WAAW,IAAIhW,EAAEgW,aAAahW,EAAEgW,YAAY,OAAO,GAAGhW,EAAEgW,YAAYhW,EAAEgW,WAAW,KAAK19B,GAAGA,EAAE09B,aAAahW,EAAEgW,YAAY,IAAI,GAAGhW,EAAEgW,YAAYhW,EAAEgW,WAAW,IAAI,IAAI,GAAGhW,EAAEgW,cAAchW,EAAEgW,YAAY,IAAIthC,KAAK0hC,IAAI,EAAE1hC,KAAK2hC,IAAI,GAAG3hC,KAAK4hC,OAAM,EAAG5hC,KAAK6hC,OAAO,GAAG7hC,KAAK8hC,KAAK,IAAIrmC,EAAEuE,KAAK8hC,KAAKC,UAAU,EAAE,IAAIxwB,EAAED,EAAEgyB,aAAatjC,KAAK8hC,KAAKxW,EAAEgW,YAAY,GAAG/vB,IAAIsB,EAAE0wB,KAAK,MAAM,IAAI7X,MAAMD,EAAEla,IAAIvR,KAAKiiC,OAAO,IAAInvB,EAAExB,EAAEkyB,iBAAiBxjC,KAAK8hC,KAAK9hC,KAAKiiC,QAAQ,SAAS7W,EAAExnB,EAAE0nB,GAAG,IAAI/Z,EAAE,IAAIxP,EAAEupB,GAAG,GAAG/Z,EAAEtO,KAAKW,GAAE,GAAI2N,EAAEmwB,IAAI,MAAMnwB,EAAEowB,KAAKlW,EAAEla,EAAEmwB,KAAK,OAAOnwB,EAAEtS,OAAO8C,EAAE2qB,UAAUzpB,KAAK,SAASW,EAAE0nB,GAAG,IAAI/Z,EAAEka,EAAEhwB,EAAEqX,EAAE/Q,EAAEqpB,EAAExY,EAAE5S,KAAK8hC,KAAKzW,EAAErrB,KAAK8V,QAAQurB,UAAU7V,EAAExrB,KAAK8V,QAAQqsB,WAAWrW,GAAE,EAAG,GAAG9rB,KAAK4hC,MAAM,OAAM,EAAGnW,EAAEH,MAAMA,EAAEA,GAAE,IAAKA,EAAEzY,EAAE4wB,SAAS5wB,EAAE6wB,WAAW,iBAAiB9/B,EAAEgP,EAAE2vB,MAAM3W,EAAE+X,cAAc//B,GAAG,yBAAyB7E,EAAEqX,KAAKxS,GAAGgP,EAAE2vB,MAAM,IAAIpW,WAAWvoB,GAAGgP,EAAE2vB,MAAM3+B,EAAEgP,EAAE4vB,QAAQ,EAAE5vB,EAAE6vB,SAAS7vB,EAAE2vB,MAAM3oC,OAAO,EAAE,CAAC,GAAG,IAAIgZ,EAAEmvB,YAAYnvB,EAAE8vB,OAAO,IAAIxxB,EAAEyxB,KAAKtX,GAAGzY,EAAEgwB,SAAS,EAAEhwB,EAAEmvB,UAAU1W,IAAI9Z,EAAED,EAAEsyB,QAAQhxB,EAAEC,EAAE6wB,eAAe7wB,EAAEgxB,aAAarY,IAAIJ,EAAE,iBAAiBI,EAAEI,EAAEwW,WAAW5W,GAAG,yBAAyBzsB,EAAEqX,KAAKoV,GAAG,IAAIW,WAAWX,GAAGA,EAAEja,EAAED,EAAEwyB,qBAAqB9jC,KAAK8hC,KAAK1W,IAAI7Z,IAAIsB,EAAEkxB,cAAa,IAAKjY,IAAIva,EAAEsB,EAAE0wB,KAAKzX,GAAE,GAAIva,IAAIsB,EAAEmxB,cAAczyB,IAAIsB,EAAE0wB,KAAK,OAAOvjC,KAAK8iC,MAAMvxB,KAAKvR,KAAK4hC,OAAM,GAAIhvB,EAAEgwB,WAAW,IAAIhwB,EAAEmvB,WAAWxwB,IAAIsB,EAAEmxB,eAAe,IAAIpxB,EAAE6vB,UAAUhX,IAAI5Y,EAAE4wB,UAAUhY,IAAI5Y,EAAEoxB,gBAAgB,WAAWjkC,KAAK8V,QAAQpd,IAAI+C,EAAEmwB,EAAEsY,WAAWtxB,EAAE8vB,OAAO9vB,EAAEgwB,UAAU9vB,EAAEF,EAAEgwB,SAASnnC,EAAEsG,EAAE6pB,EAAEuY,WAAWvxB,EAAE8vB,OAAOjnC,GAAGmX,EAAEgwB,SAAS9vB,EAAEF,EAAEmvB,UAAU1W,EAAEvY,EAAEA,GAAG5B,EAAEkzB,SAASxxB,EAAE8vB,OAAO9vB,EAAE8vB,OAAOjnC,EAAEqX,EAAE,GAAG9S,KAAKivB,OAAOltB,IAAI/B,KAAKivB,OAAO/d,EAAE8xB,UAAUpwB,EAAE8vB,OAAO9vB,EAAEgwB,aAAa,IAAIhwB,EAAE6vB,UAAU,IAAI7vB,EAAEmvB,YAAYjW,GAAE,UAAW,EAAElZ,EAAE6vB,UAAU,IAAI7vB,EAAEmvB,YAAYxwB,IAAIsB,EAAEmxB,cAAc,OAAOzyB,IAAIsB,EAAEmxB,eAAevY,EAAE5Y,EAAE4wB,UAAUhY,IAAI5Y,EAAE4wB,UAAUlyB,EAAED,EAAE+yB,WAAWrkC,KAAK8hC,MAAM9hC,KAAK8iC,MAAMvxB,GAAGvR,KAAK4hC,OAAM,EAAGrwB,IAAIsB,EAAE0wB,MAAM9X,IAAI5Y,EAAEoxB,eAAejkC,KAAK8iC,MAAMjwB,EAAE0wB,QAAQ3wB,EAAEmvB,UAAU,KAAKhgC,EAAE2qB,UAAUuC,OAAO,SAASrrB,GAAG5D,KAAK6hC,OAAO5+B,KAAKW,IAAI7B,EAAE2qB,UAAUoW,MAAM,SAASl/B,GAAGA,IAAIiP,EAAE0wB,OAAO,WAAWvjC,KAAK8V,QAAQpd,GAAGsH,KAAKf,OAAOe,KAAK6hC,OAAO7lC,KAAK,IAAIgE,KAAKf,OAAOiS,EAAEgyB,cAAcljC,KAAK6hC,SAAS7hC,KAAK6hC,OAAO,GAAG7hC,KAAK0hC,IAAI99B,EAAE5D,KAAK2hC,IAAI3hC,KAAK8hC,KAAKH,KAAKpwB,EAAE+yB,QAAQviC,EAAEwP,EAAEqyB,QAAQxY,EAAE7Z,EAAEgzB,WAAW,SAAS3gC,EAAE0nB,GAAG,OAAOA,EAAEA,GAAG,IAAIyD,KAAI,EAAG3D,EAAExnB,EAAE0nB,IAAI/Z,EAAEizB,OAAOpZ,GAAG,CAAC,iBAAiB,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,iBAAiB,KAAKqZ,GAAG,CAAC,SAAS7gC,EAAE0nB,EAAE/Z,GAAG,aAAa,IAAIka,EAAE,oBAAoBU,YAAY,oBAAoBgC,aAAa,oBAAoBuW,WAAWnzB,EAAE2vB,OAAO,SAASt9B,GAAG,IAAI,IAAI0nB,EAAEzsB,MAAM6tB,UAAU1Y,MAAMoC,KAAKlW,UAAU,GAAGorB,EAAE1xB,QAAQ,CAAC,IAAI2X,EAAE+Z,EAAEqG,QAAQ,GAAGpgB,EAAE,CAAC,GAAG,iBAAiBA,EAAE,MAAM,IAAI0uB,UAAU1uB,EAAE,sBAAsB,IAAI,IAAIka,KAAKla,EAAEA,EAAEinB,eAAe/M,KAAK7nB,EAAE6nB,GAAGla,EAAEka,KAAK,OAAO7nB,GAAG2N,EAAEyxB,UAAU,SAASp/B,EAAE0nB,GAAG,OAAO1nB,EAAEhK,SAAS0xB,EAAE1nB,EAAEA,EAAEszB,SAAStzB,EAAEszB,SAAS,EAAE5L,IAAI1nB,EAAEhK,OAAO0xB,EAAE1nB,IAAI,IAAInI,EAAE,CAAC2oC,SAAS,SAASxgC,EAAE0nB,EAAE/Z,EAAEka,EAAEhwB,GAAG,GAAG6vB,EAAE4L,UAAUtzB,EAAEszB,SAAStzB,EAAEm1B,IAAIzN,EAAE4L,SAAS3lB,EAAEA,EAAEka,GAAGhwB,QAAQ,IAAI,IAAIqX,EAAE,EAAEA,EAAE2Y,EAAE3Y,IAAIlP,EAAEnI,EAAEqX,GAAGwY,EAAE/Z,EAAEuB,IAAIowB,cAAc,SAASt/B,GAAG,IAAI0nB,EAAE/Z,EAAEka,EAAEhwB,EAAEqX,EAAE/Q,EAAE,IAAIupB,EAAEG,EAAE,EAAEla,EAAE3N,EAAEhK,OAAO0xB,EAAE/Z,EAAE+Z,IAAIG,GAAG7nB,EAAE0nB,GAAG1xB,OAAO,IAAImI,EAAE,IAAIoqB,WAAWV,GAAGH,EAAE7vB,EAAE,EAAE8V,EAAE3N,EAAEhK,OAAO0xB,EAAE/Z,EAAE+Z,IAAIxY,EAAElP,EAAE0nB,GAAGvpB,EAAEg3B,IAAIjmB,EAAErX,GAAGA,GAAGqX,EAAElZ,OAAO,OAAOmI,IAAI+Q,EAAE,CAACsxB,SAAS,SAASxgC,EAAE0nB,EAAE/Z,EAAEka,EAAEhwB,GAAG,IAAI,IAAIqX,EAAE,EAAEA,EAAE2Y,EAAE3Y,IAAIlP,EAAEnI,EAAEqX,GAAGwY,EAAE/Z,EAAEuB,IAAIowB,cAAc,SAASt/B,GAAG,MAAM,GAAG+jB,OAAO7oB,MAAM,GAAG8E,KAAK2N,EAAEozB,SAAS,SAAS/gC,GAAGA,GAAG2N,EAAEoxB,KAAKxW,WAAW5a,EAAEqzB,MAAMzW,YAAY5c,EAAEszB,MAAMH,WAAWnzB,EAAE2vB,OAAO3vB,EAAE9V,KAAK8V,EAAEoxB,KAAK9jC,MAAM0S,EAAEqzB,MAAM/lC,MAAM0S,EAAEszB,MAAMhmC,MAAM0S,EAAE2vB,OAAO3vB,EAAEuB,KAAKvB,EAAEozB,SAASlZ,IAAI,IAAIqZ,GAAG,CAAC,SAASlhC,EAAE0nB,EAAE/Z,GAAG,aAAa,IAAIqB,EAAEhP,EAAE,YAAYnI,GAAE,EAAGqX,GAAE,EAAG,IAAInZ,OAAO01B,aAAavwB,MAAM,KAAK,CAAC,IAAI,MAAM8E,GAAGnI,GAAE,EAAG,IAAI9B,OAAO01B,aAAavwB,MAAM,KAAK,IAAIqtB,WAAW,IAAI,MAAMvoB,GAAGkP,GAAE,EAAG,IAAI,IAAIuY,EAAE,IAAIzY,EAAE+vB,KAAK,KAAKlX,EAAE,EAAEA,EAAE,IAAIA,IAAIJ,EAAEI,GAAG,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,EAAE,SAASD,EAAE5nB,EAAE0nB,GAAG,GAAGA,EAAE,QAAQ1nB,EAAEszB,UAAUpkB,IAAIlP,EAAEszB,UAAUz7B,GAAG,OAAO9B,OAAO01B,aAAavwB,MAAM,KAAK8T,EAAEowB,UAAUp/B,EAAE0nB,IAAI,IAAI,IAAI/Z,EAAE,GAAGka,EAAE,EAAEA,EAAEH,EAAEG,IAAIla,GAAG5X,OAAO01B,aAAazrB,EAAE6nB,IAAI,OAAOla,EAAE8Z,EAAE,KAAKA,EAAE,KAAK,EAAE9Z,EAAE6wB,WAAW,SAASx+B,GAAG,IAAI0nB,EAAE/Z,EAAEka,EAAEhwB,EAAEqX,EAAE/Q,EAAE6B,EAAEhK,OAAOwxB,EAAE,EAAE,IAAI3vB,EAAE,EAAEA,EAAEsG,EAAEtG,IAAI,QAAQ,OAAO8V,EAAE3N,EAAEme,WAAWtmB,MAAMA,EAAE,EAAEsG,GAAG,QAAQ,OAAO0pB,EAAE7nB,EAAEme,WAAWtmB,EAAE,OAAO8V,EAAE,OAAOA,EAAE,OAAO,KAAKka,EAAE,OAAOhwB,KAAK2vB,GAAG7Z,EAAE,IAAI,EAAEA,EAAE,KAAK,EAAEA,EAAE,MAAM,EAAE,EAAE,IAAI+Z,EAAE,IAAI1Y,EAAE+vB,KAAKvX,GAAG3vB,EAAEqX,EAAE,EAAEA,EAAEsY,EAAE3vB,IAAI,QAAQ,OAAO8V,EAAE3N,EAAEme,WAAWtmB,MAAMA,EAAE,EAAEsG,GAAG,QAAQ,OAAO0pB,EAAE7nB,EAAEme,WAAWtmB,EAAE,OAAO8V,EAAE,OAAOA,EAAE,OAAO,KAAKka,EAAE,OAAOhwB,KAAK8V,EAAE,IAAI+Z,EAAExY,KAAKvB,GAAGA,EAAE,KAAK+Z,EAAExY,KAAK,IAAIvB,IAAI,GAAGA,EAAE,MAAM+Z,EAAExY,KAAK,IAAIvB,IAAI,IAAI+Z,EAAExY,KAAK,IAAIvB,IAAI,GAAG+Z,EAAExY,KAAK,IAAIvB,IAAI,GAAG,IAAI+Z,EAAExY,KAAK,IAAIvB,IAAI,EAAE,IAAI+Z,EAAExY,KAAK,IAAI,GAAGvB,GAAG,OAAO+Z,GAAG/Z,EAAEwxB,cAAc,SAASn/B,GAAG,OAAO4nB,EAAE5nB,EAAEA,EAAEhK,SAAS2X,EAAEoyB,cAAc,SAAS//B,GAAG,IAAI,IAAI0nB,EAAE,IAAI1Y,EAAE+vB,KAAK/+B,EAAEhK,QAAQ2X,EAAE,EAAEka,EAAEH,EAAE1xB,OAAO2X,EAAEka,EAAEla,IAAI+Z,EAAE/Z,GAAG3N,EAAEme,WAAWxQ,GAAG,OAAO+Z,GAAG/Z,EAAE4yB,WAAW,SAASvgC,EAAE0nB,GAAG,IAAI/Z,EAAEka,EAAEhwB,EAAEqX,EAAE/Q,EAAEupB,GAAG1nB,EAAEhK,OAAOwxB,EAAE,IAAIvsB,MAAM,EAAEkD,GAAG,IAAIwP,EAAEka,EAAE,EAAEla,EAAExP,GAAG,IAAItG,EAAEmI,EAAE2N,MAAM,IAAI6Z,EAAEK,KAAKhwB,OAAO,GAAG,GAAGqX,EAAEuY,EAAE5vB,IAAI2vB,EAAEK,KAAK,MAAMla,GAAGuB,EAAE,MAAM,CAAC,IAAIrX,GAAG,IAAIqX,EAAE,GAAG,IAAIA,EAAE,GAAG,EAAE,EAAEA,GAAGvB,EAAExP,GAAGtG,EAAEA,GAAG,EAAE,GAAGmI,EAAE2N,KAAKuB,IAAI,EAAEA,EAAEsY,EAAEK,KAAK,MAAMhwB,EAAE,MAAM2vB,EAAEK,KAAKhwB,GAAGA,GAAG,MAAM2vB,EAAEK,KAAK,MAAMhwB,GAAG,GAAG,KAAK2vB,EAAEK,KAAK,MAAM,KAAKhwB,GAAG,OAAO+vB,EAAEJ,EAAEK,IAAIla,EAAE2yB,WAAW,SAAStgC,EAAE0nB,GAAG,IAAI/Z,EAAE,KAAK+Z,EAAEA,GAAG1nB,EAAEhK,QAAQgK,EAAEhK,SAAS0xB,EAAE1nB,EAAEhK,QAAQ2X,EAAE+Z,EAAE,EAAE,GAAG/Z,GAAG,MAAM,IAAI3N,EAAE2N,KAAKA,IAAI,OAAOA,EAAE,GAAI,IAAIA,EAAN+Z,EAAU/Z,EAAE8Z,EAAEznB,EAAE2N,IAAI+Z,EAAE/Z,EAAE+Z,IAAI,CAAC,WAAW,KAAKyZ,GAAG,CAAC,SAASnhC,EAAE0nB,EAAE/Z,GAAG,aAAa+Z,EAAEH,QAAQ,SAASvnB,EAAE0nB,EAAE/Z,EAAEka,GAAG,IAAI,IAAIhwB,EAAE,MAAMmI,EAAE,EAAEkP,EAAElP,IAAI,GAAG,MAAM,EAAE7B,EAAE,EAAE,IAAIwP,GAAG,CAAC,IAAIA,GAAGxP,EAAE,IAAIwP,EAAE,IAAIA,EAAEuB,EAAEA,GAAGrX,EAAEA,EAAE6vB,EAAEG,KAAK,GAAG,IAAI1pB,IAAItG,GAAG,MAAMqX,GAAG,MAAM,OAAOrX,EAAEqX,GAAG,GAAG,IAAI,IAAIkyB,GAAG,CAAC,SAASphC,EAAE0nB,EAAE/Z,GAAG,aAAa+Z,EAAEH,QAAQ,CAACuY,WAAW,EAAEuB,gBAAgB,EAAEhB,aAAa,EAAEiB,aAAa,EAAEzB,SAAS,EAAE0B,QAAQ,EAAEC,QAAQ,EAAE7B,KAAK,EAAES,aAAa,EAAEH,YAAY,EAAEwB,SAAS,EAAEC,gBAAgB,EAAEC,cAAc,EAAExB,aAAa,EAAEyB,iBAAiB,EAAEC,aAAa,EAAEC,mBAAmB,EAAEC,uBAAuB,EAAEC,WAAW,EAAEC,eAAe,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,mBAAmB,EAAEC,SAAS,EAAEC,OAAO,EAAEC,UAAU,EAAEC,WAAW,IAAI,IAAIC,GAAG,CAAC,SAASziC,EAAE0nB,EAAE/Z,GAAG,aAAa,IAAI6Z,EAAE,WAAW,IAAI,IAAIxnB,EAAE0nB,EAAE,GAAG/Z,EAAE,EAAEA,EAAE,IAAIA,IAAI,CAAC3N,EAAE2N,EAAE,IAAI,IAAIka,EAAE,EAAEA,EAAE,EAAEA,IAAI7nB,EAAE,EAAEA,EAAE,WAAWA,IAAI,EAAEA,IAAI,EAAE0nB,EAAE/Z,GAAG3N,EAAE,OAAO0nB,EAA5G,GAAiHA,EAAEH,QAAQ,SAASvnB,EAAE0nB,EAAE/Z,EAAEka,GAAG,IAAIhwB,EAAE2vB,EAAEtY,EAAE2Y,EAAEla,EAAE3N,IAAI,EAAE,IAAI,IAAI7B,EAAE0pB,EAAE1pB,EAAE+Q,EAAE/Q,IAAI6B,EAAEA,IAAI,EAAEnI,EAAE,KAAKmI,EAAE0nB,EAAEvpB,KAAK,OAAO,EAAE6B,IAAI,IAAI0iC,GAAG,CAAC,SAAS1iC,EAAE0nB,EAAE/Z,GAAG,aAAa,IAAIqB,EAAEtB,EAAE1N,EAAE,mBAAmBynB,EAAEznB,EAAE,WAAWsN,EAAEtN,EAAE,aAAagoB,EAAEhoB,EAAE,WAAW6nB,EAAE7nB,EAAE,cAAc4nB,EAAE,EAAEM,EAAE,EAAEjZ,EAAE,EAAE9T,GAAG,EAAE2wB,GAAG,EAAE1tB,EAAE,EAAEvG,EAAE,EAAEk0B,EAAE,EAAExd,EAAE,EAAEW,EAAE,IAAI/Q,EAAE,GAAGqpB,EAAE,GAAGvD,EAAE,EAAE/U,EAAE,EAAE8c,EAAE,GAAG3c,EAAE,EAAEF,EAAE,IAAI8c,EAAE9c,EAAEE,EAAE,EAAE6c,EAAE,GAAGrd,EAAE,IAAI2c,EAAE,EAAEK,EAAE,EAAEF,EAAE,EAAEc,EAAE,EAAE,SAASE,EAAE3sB,EAAE0nB,GAAG,OAAO1nB,EAAE+9B,IAAIlW,EAAEH,GAAGA,EAAE,SAASib,EAAE3iC,GAAG,OAAOA,GAAG,IAAI,EAAEA,EAAE,EAAE,GAAG,SAAS4iC,EAAE5iC,GAAG,IAAI,IAAI0nB,EAAE1nB,EAAEhK,OAAO,KAAK0xB,GAAG1nB,EAAE0nB,GAAG,EAAE,SAASmb,EAAE7iC,GAAG,IAAI0nB,EAAE1nB,EAAEs8B,MAAM3uB,EAAE+Z,EAAEob,QAAQn1B,EAAE3N,EAAEm+B,YAAYxwB,EAAE3N,EAAEm+B,WAAW,IAAIxwB,IAAID,EAAE8yB,SAASxgC,EAAE8+B,OAAOpX,EAAEqb,YAAYrb,EAAEsb,YAAYr1B,EAAE3N,EAAEg/B,UAAUh/B,EAAEg/B,UAAUrxB,EAAE+Z,EAAEsb,aAAar1B,EAAE3N,EAAEijC,WAAWt1B,EAAE3N,EAAEm+B,WAAWxwB,EAAE+Z,EAAEob,SAASn1B,EAAE,IAAI+Z,EAAEob,UAAUpb,EAAEsb,YAAY,IAAI,SAASE,EAAEljC,EAAE0nB,GAAGD,EAAE0b,gBAAgBnjC,EAAE,GAAGA,EAAEojC,YAAYpjC,EAAEojC,aAAa,EAAEpjC,EAAEqjC,SAASrjC,EAAEojC,YAAY1b,GAAG1nB,EAAEojC,YAAYpjC,EAAEqjC,SAASR,EAAE7iC,EAAEk+B,MAAM,SAASoF,EAAEtjC,EAAE0nB,GAAG1nB,EAAE+iC,YAAY/iC,EAAE8iC,WAAWpb,EAAE,SAAS6b,EAAEvjC,EAAE0nB,GAAG1nB,EAAE+iC,YAAY/iC,EAAE8iC,WAAWpb,IAAI,EAAE,IAAI1nB,EAAE+iC,YAAY/iC,EAAE8iC,WAAW,IAAIpb,EAAE,SAAS/Y,EAAE3O,EAAE0nB,GAAG,IAAI/Z,EAAEka,EAAEhwB,EAAEmI,EAAEwjC,iBAAiBt0B,EAAElP,EAAEqjC,SAASllC,EAAE6B,EAAEyjC,YAAYjc,EAAExnB,EAAE0jC,WAAW10B,EAAEhP,EAAEqjC,SAASrjC,EAAE2jC,OAAO1X,EAAEjsB,EAAEqjC,UAAUrjC,EAAE2jC,OAAO1X,GAAG,EAAExE,EAAEznB,EAAE8b,OAAO8L,EAAE5nB,EAAE4jC,OAAO1b,EAAEloB,EAAEiL,KAAKyC,EAAE1N,EAAEqjC,SAASl0B,EAAE7B,EAAEma,EAAEvY,EAAE/Q,EAAE,GAAG6pB,EAAEP,EAAEvY,EAAE/Q,GAAG6B,EAAEyjC,aAAazjC,EAAE6jC,aAAahsC,IAAI,GAAG2vB,EAAExnB,EAAE8jC,YAAYtc,EAAExnB,EAAE8jC,WAAW,GAAG,GAAGrc,GAAG9Z,EAAE+Z,GAAGvpB,KAAK6pB,GAAGP,EAAE9Z,EAAExP,EAAE,KAAKmP,GAAGma,EAAE9Z,KAAK8Z,EAAEvY,IAAIuY,IAAI9Z,KAAK8Z,EAAEvY,EAAE,GAAG,CAACA,GAAG,EAAEvB,IAAI,UAAU8Z,IAAIvY,KAAKuY,IAAI9Z,IAAI8Z,IAAIvY,KAAKuY,IAAI9Z,IAAI8Z,IAAIvY,KAAKuY,IAAI9Z,IAAI8Z,IAAIvY,KAAKuY,IAAI9Z,IAAI8Z,IAAIvY,KAAKuY,IAAI9Z,IAAI8Z,IAAIvY,KAAKuY,IAAI9Z,IAAI8Z,IAAIvY,KAAKuY,IAAI9Z,IAAI8Z,IAAIvY,KAAKuY,IAAI9Z,IAAIuB,EAAExB,GAAG,GAAGma,EAAE1Y,GAAGzB,EAAEwB,GAAGA,EAAExB,EAAEyB,EAAEhR,EAAE0pB,EAAE,CAAC,GAAG7nB,EAAE+jC,YAAYrc,EAAEF,IAAIrpB,EAAE0pB,GAAG,MAAMva,EAAEma,EAAEvY,EAAE/Q,EAAE,GAAG6pB,EAAEP,EAAEvY,EAAE/Q,YAAYupB,EAAEQ,EAAER,EAAEE,IAAI5Y,GAAG,KAAKnX,GAAG,OAAOsG,GAAG6B,EAAE8jC,UAAU3lC,EAAE6B,EAAE8jC,UAAU,SAASh8B,EAAE9H,GAAG,IAAI0nB,EAAE/Z,EAAEka,EAAEhwB,EAAEqX,EAAE/Q,EAAEqpB,EAAExY,EAAEyY,EAAEG,EAAEM,EAAEloB,EAAE2jC,OAAO,EAAE,CAAC,GAAG9rC,EAAEmI,EAAEgkC,YAAYhkC,EAAE8jC,UAAU9jC,EAAEqjC,SAASrjC,EAAEqjC,UAAUnb,GAAGA,EAAE+D,GAAG,CAAC,IAAIve,EAAE8yB,SAASxgC,EAAE8b,OAAO9b,EAAE8b,OAAOoM,EAAEA,EAAE,GAAGloB,EAAE+jC,aAAa7b,EAAEloB,EAAEqjC,UAAUnb,EAAEloB,EAAEojC,aAAalb,EAAER,EAAE/Z,EAAE3N,EAAEikC,UAAUpc,EAAE7nB,EAAEkkC,OAAOxc,GAAG1nB,EAAEkkC,KAAKxc,GAAGQ,GAAGL,EAAEA,EAAEK,EAAE,IAAIva,IAAI,IAAI+Z,EAAE/Z,EAAEua,EAAEL,EAAE7nB,EAAEiL,OAAOyc,GAAG1nB,EAAEiL,KAAKyc,GAAGQ,GAAGL,EAAEA,EAAEK,EAAE,IAAIva,IAAI9V,GAAGqwB,EAAE,GAAG,IAAIloB,EAAEk+B,KAAKW,SAAS,MAAM,GAAG1gC,EAAE6B,EAAEk+B,KAAK1W,EAAExnB,EAAE8b,OAAO9M,EAAEhP,EAAEqjC,SAASrjC,EAAE8jC,UAAUrc,EAAE5vB,EAAE+vB,OAAE,EAAOA,EAAEzpB,EAAE0gC,SAASpX,EAAEG,IAAIA,EAAEH,GAAG9Z,EAAE,IAAIia,EAAE,GAAGzpB,EAAE0gC,UAAUjX,EAAEla,EAAE8yB,SAAShZ,EAAErpB,EAAEwgC,MAAMxgC,EAAEygC,QAAQhX,EAAE5Y,GAAG,IAAI7Q,EAAEm+B,MAAMvxB,KAAK5M,EAAEgmC,MAAM72B,EAAEnP,EAAEgmC,MAAM3c,EAAEI,EAAE5Y,GAAG,IAAI7Q,EAAEm+B,MAAMvxB,OAAO5M,EAAEgmC,MAAMnc,EAAE7pB,EAAEgmC,MAAM3c,EAAEI,EAAE5Y,IAAI7Q,EAAEygC,SAAShX,EAAEzpB,EAAEimC,UAAUxc,EAAEA,GAAG5nB,EAAE8jC,WAAWn2B,EAAE3N,EAAE8jC,UAAU9jC,EAAEqkC,QAAQh1B,EAAE,IAAIH,EAAElP,EAAEqjC,SAASrjC,EAAEqkC,OAAOrkC,EAAEskC,MAAMtkC,EAAE8b,OAAO5M,GAAGlP,EAAEskC,OAAOtkC,EAAEskC,OAAOtkC,EAAEukC,WAAWvkC,EAAE8b,OAAO5M,EAAE,IAAIlP,EAAEwkC,UAAUxkC,EAAEqkC,SAASrkC,EAAEskC,OAAOtkC,EAAEskC,OAAOtkC,EAAEukC,WAAWvkC,EAAE8b,OAAO5M,EAAEG,EAAE,IAAIrP,EAAEwkC,UAAUxkC,EAAEiL,KAAKiE,EAAElP,EAAE4jC,QAAQ5jC,EAAEkkC,KAAKlkC,EAAEskC,OAAOtkC,EAAEkkC,KAAKlkC,EAAEskC,OAAOp1B,EAAEA,IAAIlP,EAAEqkC,WAAWrkC,EAAE8jC,UAAU9jC,EAAEqkC,OAAOh1B,aAAarP,EAAE8jC,UAAU7X,GAAG,IAAIjsB,EAAEk+B,KAAKW,UAAU,SAAS/uB,EAAE9P,EAAE0nB,GAAG,IAAI,IAAI/Z,EAAEka,IAAI,CAAC,GAAG7nB,EAAE8jC,UAAU7X,EAAE,CAAC,GAAGnkB,EAAE9H,GAAGA,EAAE8jC,UAAU7X,GAAGvE,IAAIE,EAAE,OAAO4D,EAAE,GAAG,IAAIxrB,EAAE8jC,UAAU,MAAM,GAAGn2B,EAAE,EAAE3N,EAAE8jC,WAAWz0B,IAAIrP,EAAEskC,OAAOtkC,EAAEskC,OAAOtkC,EAAEukC,WAAWvkC,EAAE8b,OAAO9b,EAAEqjC,SAASh0B,EAAE,IAAIrP,EAAEwkC,UAAU72B,EAAE3N,EAAEiL,KAAKjL,EAAEqjC,SAASrjC,EAAE4jC,QAAQ5jC,EAAEkkC,KAAKlkC,EAAEskC,OAAOtkC,EAAEkkC,KAAKlkC,EAAEskC,OAAOtkC,EAAEqjC,UAAU,IAAI11B,GAAG3N,EAAEqjC,SAAS11B,GAAG3N,EAAE2jC,OAAO1X,IAAIjsB,EAAEykC,aAAa91B,EAAE3O,EAAE2N,IAAI3N,EAAEykC,cAAcp1B,EAAE,GAAGwY,EAAEJ,EAAEid,UAAU1kC,EAAEA,EAAEqjC,SAASrjC,EAAE+jC,YAAY/jC,EAAEykC,aAAap1B,GAAGrP,EAAE8jC,WAAW9jC,EAAEykC,aAAazkC,EAAEykC,cAAczkC,EAAE2kC,gBAAgB3kC,EAAE8jC,WAAWz0B,EAAE,CAAC,IAAIrP,EAAEykC,eAAezkC,EAAEqjC,WAAWrjC,EAAEskC,OAAOtkC,EAAEskC,OAAOtkC,EAAEukC,WAAWvkC,EAAE8b,OAAO9b,EAAEqjC,SAASh0B,EAAE,IAAIrP,EAAEwkC,UAAU72B,EAAE3N,EAAEiL,KAAKjL,EAAEqjC,SAASrjC,EAAE4jC,QAAQ5jC,EAAEkkC,KAAKlkC,EAAEskC,OAAOtkC,EAAEkkC,KAAKlkC,EAAEskC,OAAOtkC,EAAEqjC,SAAS,KAAKrjC,EAAEykC,eAAezkC,EAAEqjC,gBAAgBrjC,EAAEqjC,UAAUrjC,EAAEykC,aAAazkC,EAAEykC,aAAa,EAAEzkC,EAAEskC,MAAMtkC,EAAE8b,OAAO9b,EAAEqjC,UAAUrjC,EAAEskC,OAAOtkC,EAAEskC,OAAOtkC,EAAEukC,WAAWvkC,EAAE8b,OAAO9b,EAAEqjC,SAAS,IAAIrjC,EAAEwkC,eAAe3c,EAAEJ,EAAEid,UAAU1kC,EAAE,EAAEA,EAAE8b,OAAO9b,EAAEqjC,WAAWrjC,EAAE8jC,YAAY9jC,EAAEqjC,WAAW,GAAGxb,IAAIqb,EAAEljC,GAAE,GAAI,IAAIA,EAAEk+B,KAAKC,WAAW,OAAO3S,EAAE,OAAOxrB,EAAEqkC,OAAOrkC,EAAEqjC,SAASh0B,EAAE,EAAErP,EAAEqjC,SAASh0B,EAAE,EAAEqY,IAAIQ,GAAGgb,EAAEljC,GAAE,GAAI,IAAIA,EAAEk+B,KAAKC,UAAUxS,EAAEc,GAAGzsB,EAAE4kC,WAAW1B,EAAEljC,GAAE,GAAI,IAAIA,EAAEk+B,KAAKC,WAAW3S,EAAEK,EAAE,SAASgZ,EAAE7kC,EAAE0nB,GAAG,IAAI,IAAI/Z,EAAEka,EAAEhwB,IAAI,CAAC,GAAGmI,EAAE8jC,UAAU7X,EAAE,CAAC,GAAGnkB,EAAE9H,GAAGA,EAAE8jC,UAAU7X,GAAGvE,IAAIE,EAAE,OAAO4D,EAAE,GAAG,IAAIxrB,EAAE8jC,UAAU,MAAM,GAAGn2B,EAAE,EAAE3N,EAAE8jC,WAAWz0B,IAAIrP,EAAEskC,OAAOtkC,EAAEskC,OAAOtkC,EAAEukC,WAAWvkC,EAAE8b,OAAO9b,EAAEqjC,SAASh0B,EAAE,IAAIrP,EAAEwkC,UAAU72B,EAAE3N,EAAEiL,KAAKjL,EAAEqjC,SAASrjC,EAAE4jC,QAAQ5jC,EAAEkkC,KAAKlkC,EAAEskC,OAAOtkC,EAAEkkC,KAAKlkC,EAAEskC,OAAOtkC,EAAEqjC,UAAUrjC,EAAEyjC,YAAYzjC,EAAEykC,aAAazkC,EAAE8kC,WAAW9kC,EAAE+jC,YAAY/jC,EAAEykC,aAAap1B,EAAE,EAAE,IAAI1B,GAAG3N,EAAEyjC,YAAYzjC,EAAE2kC,gBAAgB3kC,EAAEqjC,SAAS11B,GAAG3N,EAAE2jC,OAAO1X,IAAIjsB,EAAEykC,aAAa91B,EAAE3O,EAAE2N,GAAG3N,EAAEykC,cAAc,IAAI,IAAIzkC,EAAE49B,UAAU59B,EAAEykC,eAAep1B,GAAG,KAAKrP,EAAEqjC,SAASrjC,EAAE+jC,eAAe/jC,EAAEykC,aAAap1B,EAAE,IAAIrP,EAAEyjC,aAAap0B,GAAGrP,EAAEykC,cAAczkC,EAAEyjC,YAAY,CAAC,IAAI5rC,EAAEmI,EAAEqjC,SAASrjC,EAAE8jC,UAAUz0B,EAAEwY,EAAEJ,EAAEid,UAAU1kC,EAAEA,EAAEqjC,SAAS,EAAErjC,EAAE8kC,WAAW9kC,EAAEyjC,YAAYp0B,GAAGrP,EAAE8jC,WAAW9jC,EAAEyjC,YAAY,EAAEzjC,EAAEyjC,aAAa,IAAIzjC,EAAEqjC,UAAUxrC,IAAImI,EAAEskC,OAAOtkC,EAAEskC,OAAOtkC,EAAEukC,WAAWvkC,EAAE8b,OAAO9b,EAAEqjC,SAASh0B,EAAE,IAAIrP,EAAEwkC,UAAU72B,EAAE3N,EAAEiL,KAAKjL,EAAEqjC,SAASrjC,EAAE4jC,QAAQ5jC,EAAEkkC,KAAKlkC,EAAEskC,OAAOtkC,EAAEkkC,KAAKlkC,EAAEskC,OAAOtkC,EAAEqjC,UAAU,KAAKrjC,EAAEyjC,cAAc,GAAGzjC,EAAE+kC,gBAAgB,EAAE/kC,EAAEykC,aAAap1B,EAAE,EAAErP,EAAEqjC,WAAWxb,IAAIqb,EAAEljC,GAAE,GAAI,IAAIA,EAAEk+B,KAAKC,WAAW,OAAO3S,OAAO,GAAGxrB,EAAE+kC,iBAAiB,IAAIld,EAAEJ,EAAEid,UAAU1kC,EAAE,EAAEA,EAAE8b,OAAO9b,EAAEqjC,SAAS,MAAMH,EAAEljC,GAAE,GAAIA,EAAEqjC,WAAWrjC,EAAE8jC,YAAY,IAAI9jC,EAAEk+B,KAAKC,UAAU,OAAO3S,OAAOxrB,EAAE+kC,gBAAgB,EAAE/kC,EAAEqjC,WAAWrjC,EAAE8jC,YAAY,OAAO9jC,EAAE+kC,kBAAkBld,EAAEJ,EAAEid,UAAU1kC,EAAE,EAAEA,EAAE8b,OAAO9b,EAAEqjC,SAAS,IAAIrjC,EAAE+kC,gBAAgB,GAAG/kC,EAAEqkC,OAAOrkC,EAAEqjC,SAASh0B,EAAE,EAAErP,EAAEqjC,SAASh0B,EAAE,EAAEqY,IAAIQ,GAAGgb,EAAEljC,GAAE,GAAI,IAAIA,EAAEk+B,KAAKC,UAAUxS,EAAEc,GAAGzsB,EAAE4kC,WAAW1B,EAAEljC,GAAE,GAAI,IAAIA,EAAEk+B,KAAKC,WAAW3S,EAAEK,EAAE,SAASnd,EAAE1O,EAAE0nB,EAAE/Z,EAAEka,EAAEhwB,GAAGuE,KAAK4oC,YAAYhlC,EAAE5D,KAAK6oC,SAASvd,EAAEtrB,KAAK8oC,YAAYv3B,EAAEvR,KAAK+oC,UAAUtd,EAAEzrB,KAAKgpC,KAAKvtC,EAAE,SAASkX,IAAI3S,KAAK8hC,KAAK,KAAK9hC,KAAK2gC,OAAO,EAAE3gC,KAAK2mC,YAAY,KAAK3mC,KAAKipC,iBAAiB,EAAEjpC,KAAK4mC,YAAY,EAAE5mC,KAAK0mC,QAAQ,EAAE1mC,KAAK2O,KAAK,EAAE3O,KAAKkpC,OAAO,KAAKlpC,KAAKmpC,QAAQ,EAAEnpC,KAAKohC,OAAOzR,EAAE3vB,KAAKopC,YAAY,EAAEppC,KAAKunC,OAAO,EAAEvnC,KAAKqpC,OAAO,EAAErpC,KAAKwnC,OAAO,EAAExnC,KAAK0f,OAAO,KAAK1f,KAAK4nC,YAAY,EAAE5nC,KAAK6O,KAAK,KAAK7O,KAAK8nC,KAAK,KAAK9nC,KAAKkoC,MAAM,EAAEloC,KAAK6nC,UAAU,EAAE7nC,KAAKspC,UAAU,EAAEtpC,KAAKooC,UAAU,EAAEpoC,KAAKmoC,WAAW,EAAEnoC,KAAKgnC,YAAY,EAAEhnC,KAAKqoC,aAAa,EAAEroC,KAAK0oC,WAAW,EAAE1oC,KAAK2oC,gBAAgB,EAAE3oC,KAAKinC,SAAS,EAAEjnC,KAAK2nC,YAAY,EAAE3nC,KAAK0nC,UAAU,EAAE1nC,KAAKqnC,YAAY,EAAErnC,KAAKonC,iBAAiB,EAAEpnC,KAAKuoC,eAAe,EAAEvoC,KAAKgvB,MAAM,EAAEhvB,KAAKwhC,SAAS,EAAExhC,KAAKynC,WAAW,EAAEznC,KAAKsnC,WAAW,EAAEtnC,KAAKupC,UAAU,IAAIj4B,EAAEszB,MAAM,EAAE/c,GAAG7nB,KAAKwpC,UAAU,IAAIl4B,EAAEszB,MAAM,GAAG,EAAE7iC,EAAE,IAAI/B,KAAKypC,QAAQ,IAAIn4B,EAAEszB,MAAM,GAAG,EAAExZ,EAAE,IAAIob,EAAExmC,KAAKupC,WAAW/C,EAAExmC,KAAKwpC,WAAWhD,EAAExmC,KAAKypC,SAASzpC,KAAK0pC,OAAO,KAAK1pC,KAAK2pC,OAAO,KAAK3pC,KAAK4pC,QAAQ,KAAK5pC,KAAK6pC,SAAS,IAAIv4B,EAAEszB,MAAMhV,EAAE,GAAG5vB,KAAK8pC,KAAK,IAAIx4B,EAAEszB,MAAM,EAAE9xB,EAAE,GAAG0zB,EAAExmC,KAAK8pC,MAAM9pC,KAAK+pC,SAAS,EAAE/pC,KAAKgqC,SAAS,EAAEhqC,KAAKiqC,MAAM,IAAI34B,EAAEszB,MAAM,EAAE9xB,EAAE,GAAG0zB,EAAExmC,KAAKiqC,OAAOjqC,KAAKkqC,MAAM,EAAElqC,KAAKmqC,YAAY,EAAEnqC,KAAKwoC,SAAS,EAAExoC,KAAKoqC,MAAM,EAAEpqC,KAAKqqC,QAAQ,EAAErqC,KAAKsqC,WAAW,EAAEtqC,KAAKuqC,QAAQ,EAAEvqC,KAAKioC,OAAO,EAAEjoC,KAAKwqC,OAAO,EAAExqC,KAAKyqC,SAAS,EAAE,SAASC,EAAE9mC,GAAG,IAAI0nB,EAAE,OAAO1nB,GAAGA,EAAEs8B,OAAOt8B,EAAEokC,SAASpkC,EAAEijC,UAAU,EAAEjjC,EAAE+mC,UAAUlvC,GAAG6vB,EAAE1nB,EAAEs8B,OAAOwG,QAAQ,EAAEpb,EAAEsb,YAAY,EAAEtb,EAAE3c,KAAK,IAAI2c,EAAE3c,MAAM2c,EAAE3c,MAAM2c,EAAEqV,OAAOrV,EAAE3c,KAAKmhB,EAAErd,EAAE7O,EAAEmkC,MAAM,IAAIzc,EAAE3c,KAAK,EAAE,EAAE2c,EAAE8d,WAAW5d,EAAEH,EAAEuf,SAAStf,GAAGzY,GAAG0d,EAAE3sB,EAAE7E,GAAG,SAAS8rC,EAAEjnC,GAAG,IAAI0nB,EAAEof,EAAE9mC,GAAG,OAAO0nB,IAAIzY,GAAG,SAASjP,GAAGA,EAAEgkC,YAAY,EAAEhkC,EAAE2jC,OAAOf,EAAE5iC,EAAEkkC,MAAMlkC,EAAE2kC,eAAe31B,EAAEhP,EAAEorB,OAAO6Z,SAASjlC,EAAE6jC,WAAW70B,EAAEhP,EAAEorB,OAAO4Z,YAAYhlC,EAAE0jC,WAAW10B,EAAEhP,EAAEorB,OAAO8Z,YAAYllC,EAAEwjC,iBAAiBx0B,EAAEhP,EAAEorB,OAAO+Z,UAAUnlC,EAAEqjC,SAAS,EAAErjC,EAAEojC,YAAY,EAAEpjC,EAAE8jC,UAAU,EAAE9jC,EAAEqkC,OAAO,EAAErkC,EAAEykC,aAAazkC,EAAEyjC,YAAYp0B,EAAE,EAAErP,EAAE+kC,gBAAgB,EAAE/kC,EAAEskC,MAAM,EAAvT,CAA0TtkC,EAAEs8B,OAAO5U,EAAE,SAASwf,EAAElnC,EAAE0nB,EAAE/Z,EAAEka,EAAEhwB,EAAEqX,GAAG,IAAIlP,EAAE,OAAO7E,EAAE,IAAIgD,EAAE,EAAE,GAAGupB,IAAIoE,IAAIpE,EAAE,GAAGG,EAAE,GAAG1pB,EAAE,EAAE0pB,GAAGA,GAAG,GAAGA,IAAI1pB,EAAE,EAAE0pB,GAAG,IAAIhwB,EAAE,GAAG0W,EAAE1W,GAAG8V,IAAIoe,GAAGlE,EAAE,GAAG,GAAGA,GAAGH,EAAE,GAAG,EAAEA,GAAGxY,EAAE,GAAG9Q,EAAE8Q,EAAE,OAAOyd,EAAE3sB,EAAE7E,GAAG,IAAI0sB,IAAIA,EAAE,GAAG,IAAIL,EAAE,IAAIzY,EAAE,OAAO/O,EAAEs8B,MAAM9U,GAAG0W,KAAKl+B,EAAEwnB,EAAEzc,KAAK5M,EAAEqpB,EAAE8d,OAAO,KAAK9d,EAAEie,OAAO5d,EAAEL,EAAEmc,OAAO,GAAGnc,EAAEie,OAAOje,EAAEoc,OAAOpc,EAAEmc,OAAO,EAAEnc,EAAEke,UAAU7tC,EAAE,EAAE2vB,EAAEyc,UAAU,GAAGzc,EAAEke,UAAUle,EAAEgd,UAAUhd,EAAEyc,UAAU,EAAEzc,EAAE+c,eAAe/c,EAAEke,UAAUr2B,EAAE,GAAGA,GAAGmY,EAAE1L,OAAO,IAAIpO,EAAEqxB,KAAK,EAAEvX,EAAEmc,QAAQnc,EAAE0c,KAAK,IAAIx2B,EAAEszB,MAAMxZ,EAAEyc,WAAWzc,EAAEvc,KAAK,IAAIyC,EAAEszB,MAAMxZ,EAAEmc,QAAQnc,EAAE+e,YAAY,GAAG1uC,EAAE,EAAE2vB,EAAE6d,iBAAiB,EAAE7d,EAAE+e,YAAY/e,EAAEub,YAAY,IAAIr1B,EAAEqxB,KAAKvX,EAAE6d,kBAAkB7d,EAAEgf,MAAM,EAAEhf,EAAE+e,YAAY/e,EAAE8e,MAAM,EAAE9e,EAAE+e,YAAY/e,EAAE4D,MAAM1D,EAAEF,EAAEoW,SAAS1uB,EAAEsY,EAAEgW,OAAO7vB,EAAEs5B,EAAEjnC,GAAGgP,EAAE,CAAC,IAAIN,EAAE,EAAE,EAAE,EAAE,GAAE,SAAS1O,EAAE0nB,GAAG,IAAI/Z,EAAE,MAAM,IAAIA,EAAE3N,EAAEqlC,iBAAiB,IAAI13B,EAAE3N,EAAEqlC,iBAAiB,KAAK,CAAC,GAAGrlC,EAAE8jC,WAAW,EAAE,CAAC,GAAGh8B,EAAE9H,GAAG,IAAIA,EAAE8jC,WAAWpc,IAAIE,EAAE,OAAO4D,EAAE,GAAG,IAAIxrB,EAAE8jC,UAAU,MAAM9jC,EAAEqjC,UAAUrjC,EAAE8jC,UAAU9jC,EAAE8jC,UAAU,EAAE,IAAIjc,EAAE7nB,EAAEojC,YAAYz1B,EAAE,IAAI,IAAI3N,EAAEqjC,UAAUrjC,EAAEqjC,UAAUxb,KAAK7nB,EAAE8jC,UAAU9jC,EAAEqjC,SAASxb,EAAE7nB,EAAEqjC,SAASxb,EAAEqb,EAAEljC,GAAE,GAAI,IAAIA,EAAEk+B,KAAKC,WAAW,OAAO3S,EAAE,GAAGxrB,EAAEqjC,SAASrjC,EAAEojC,aAAapjC,EAAE2jC,OAAO1X,IAAIiX,EAAEljC,GAAE,GAAI,IAAIA,EAAEk+B,KAAKC,WAAW,OAAO3S,EAAE,OAAOxrB,EAAEqkC,OAAO,EAAE3c,IAAIQ,GAAGgb,EAAEljC,GAAE,GAAI,IAAIA,EAAEk+B,KAAKC,UAAUxS,EAAEc,IAAIzsB,EAAEqjC,SAASrjC,EAAEojC,cAAcF,EAAEljC,GAAE,GAAIA,EAAEk+B,KAAKC,WAAW3S,MAAK,IAAI9c,EAAE,EAAE,EAAE,EAAE,EAAEoB,GAAG,IAAIpB,EAAE,EAAE,EAAE,GAAG,EAAEoB,GAAG,IAAIpB,EAAE,EAAE,EAAE,GAAG,GAAGoB,GAAG,IAAIpB,EAAE,EAAE,EAAE,GAAG,GAAGm2B,GAAG,IAAIn2B,EAAE,EAAE,GAAG,GAAG,GAAGm2B,GAAG,IAAIn2B,EAAE,EAAE,GAAG,IAAI,IAAIm2B,GAAG,IAAIn2B,EAAE,EAAE,GAAG,IAAI,IAAIm2B,GAAG,IAAIn2B,EAAE,GAAG,IAAI,IAAI,KAAKm2B,GAAG,IAAIn2B,EAAE,GAAG,IAAI,IAAI,KAAKm2B,IAAIl3B,EAAEw5B,YAAY,SAASnnC,EAAE0nB,GAAG,OAAOwf,EAAElnC,EAAE0nB,EAAEqE,EAAE,GAAG,EAAE,IAAIpe,EAAEywB,aAAa8I,EAAEv5B,EAAEy5B,aAAaH,EAAEt5B,EAAE05B,iBAAiBP,EAAEn5B,EAAE2wB,iBAAiB,SAASt+B,EAAE0nB,GAAG,OAAO1nB,GAAGA,EAAEs8B,MAAM,IAAIt8B,EAAEs8B,MAAMvxB,KAAK5P,GAAG6E,EAAEs8B,MAAMgJ,OAAO5d,EAAEzY,GAAG9T,GAAGwS,EAAEsxB,QAAQ,SAASj/B,EAAE0nB,GAAG,IAAI/Z,EAAEka,EAAEhwB,EAAEqX,EAAE,IAAIlP,IAAIA,EAAEs8B,OAAO,EAAE5U,GAAGA,EAAE,EAAE,OAAO1nB,EAAE2sB,EAAE3sB,EAAE7E,GAAGA,EAAE,GAAG0sB,EAAE7nB,EAAEs8B,OAAOt8B,EAAE8+B,SAAS9+B,EAAE2+B,OAAO,IAAI3+B,EAAE6+B,UAAU,MAAMhX,EAAEkV,QAAQrV,IAAIQ,EAAE,OAAOyE,EAAE3sB,EAAE,IAAIA,EAAEm+B,WAAW,EAAEhjC,GAAG,GAAG0sB,EAAEqW,KAAKl+B,EAAE2N,EAAEka,EAAE2d,WAAW3d,EAAE2d,WAAW9d,EAAEG,EAAEkV,SAAS7Q,EAAE,GAAG,IAAIrE,EAAE9c,KAAK/K,EAAEmkC,MAAM,EAAEb,EAAEzb,EAAE,IAAIyb,EAAEzb,EAAE,KAAKyb,EAAEzb,EAAE,GAAGA,EAAEyd,QAAQhC,EAAEzb,GAAGA,EAAEyd,OAAO3sC,KAAK,EAAE,IAAIkvB,EAAEyd,OAAOgC,KAAK,EAAE,IAAIzf,EAAEyd,OAAOiC,MAAM,EAAE,IAAI1f,EAAEyd,OAAOtnC,KAAK,EAAE,IAAI6pB,EAAEyd,OAAOrb,QAAQ,GAAG,IAAIqZ,EAAEzb,EAAE,IAAIA,EAAEyd,OAAOkC,MAAMlE,EAAEzb,EAAEA,EAAEyd,OAAOkC,MAAM,EAAE,KAAKlE,EAAEzb,EAAEA,EAAEyd,OAAOkC,MAAM,GAAG,KAAKlE,EAAEzb,EAAEA,EAAEyd,OAAOkC,MAAM,GAAG,KAAKlE,EAAEzb,EAAE,IAAIA,EAAEuD,MAAM,EAAE,GAAGvD,EAAE+V,UAAU/V,EAAEuD,MAAM,EAAE,EAAE,GAAGkY,EAAEzb,EAAE,IAAIA,EAAEyd,OAAOpxC,IAAI2zB,EAAEyd,OAAOiC,OAAO1f,EAAEyd,OAAOiC,MAAMvxC,SAASstC,EAAEzb,EAAE,IAAIA,EAAEyd,OAAOiC,MAAMvxC,QAAQstC,EAAEzb,EAAEA,EAAEyd,OAAOiC,MAAMvxC,QAAQ,EAAE,MAAM6xB,EAAEyd,OAAOgC,OAAOtnC,EAAEmkC,MAAMnc,EAAEhoB,EAAEmkC,MAAMtc,EAAEkb,YAAYlb,EAAEib,QAAQ,IAAIjb,EAAE0d,QAAQ,EAAE1d,EAAEkV,OAAO,KAAKuG,EAAEzb,EAAE,GAAGyb,EAAEzb,EAAE,GAAGyb,EAAEzb,EAAE,GAAGyb,EAAEzb,EAAE,GAAGyb,EAAEzb,EAAE,GAAGyb,EAAEzb,EAAE,IAAIA,EAAEuD,MAAM,EAAE,GAAGvD,EAAE+V,UAAU/V,EAAEuD,MAAM,EAAE,EAAE,GAAGkY,EAAEzb,EAAE,GAAGA,EAAEkV,OAAOluB,OAAO,CAAC,IAAI1Q,EAAE4tB,GAAGlE,EAAE4d,OAAO,GAAG,IAAI,EAAEtnC,IAAI,GAAG0pB,EAAE+V,UAAU/V,EAAEuD,MAAM,EAAE,EAAEvD,EAAEuD,MAAM,EAAE,EAAE,IAAIvD,EAAEuD,MAAM,EAAE,IAAI,EAAE,IAAIvD,EAAEwb,WAAWllC,GAAG,IAAIA,GAAG,GAAGA,EAAE,GAAG0pB,EAAEkV,OAAOluB,EAAE00B,EAAE1b,EAAE1pB,GAAG,IAAI0pB,EAAEwb,WAAWE,EAAE1b,EAAE7nB,EAAEmkC,QAAQ,IAAIZ,EAAE1b,EAAE,MAAM7nB,EAAEmkC,QAAQnkC,EAAEmkC,MAAM,EAAE,GAAG,KAAKtc,EAAEkV,OAAO,GAAGlV,EAAEyd,OAAOiC,MAAM,CAAC,IAAI1vC,EAAEgwB,EAAEib,QAAQjb,EAAE0d,SAAS,MAAM1d,EAAEyd,OAAOiC,MAAMvxC,UAAU6xB,EAAEib,UAAUjb,EAAEwd,mBAAmBxd,EAAEyd,OAAOgC,MAAMzf,EAAEib,QAAQjrC,IAAImI,EAAEmkC,MAAMnc,EAAEhoB,EAAEmkC,MAAMtc,EAAEkb,YAAYlb,EAAEib,QAAQjrC,EAAEA,IAAIgrC,EAAE7iC,GAAGnI,EAAEgwB,EAAEib,QAAQjb,EAAEib,UAAUjb,EAAEwd,oBAAoB/B,EAAEzb,EAAE,IAAIA,EAAEyd,OAAOiC,MAAM1f,EAAE0d,UAAU1d,EAAE0d,UAAU1d,EAAEyd,OAAOgC,MAAMzf,EAAEib,QAAQjrC,IAAImI,EAAEmkC,MAAMnc,EAAEhoB,EAAEmkC,MAAMtc,EAAEkb,YAAYlb,EAAEib,QAAQjrC,EAAEA,IAAIgwB,EAAE0d,UAAU1d,EAAEyd,OAAOiC,MAAMvxC,SAAS6xB,EAAE0d,QAAQ,EAAE1d,EAAEkV,OAAO,SAASlV,EAAEkV,OAAO,GAAG,GAAG,KAAKlV,EAAEkV,OAAO,GAAGlV,EAAEyd,OAAOtnC,KAAK,CAACnG,EAAEgwB,EAAEib,QAAQ,EAAE,CAAC,GAAGjb,EAAEib,UAAUjb,EAAEwd,mBAAmBxd,EAAEyd,OAAOgC,MAAMzf,EAAEib,QAAQjrC,IAAImI,EAAEmkC,MAAMnc,EAAEhoB,EAAEmkC,MAAMtc,EAAEkb,YAAYlb,EAAEib,QAAQjrC,EAAEA,IAAIgrC,EAAE7iC,GAAGnI,EAAEgwB,EAAEib,QAAQjb,EAAEib,UAAUjb,EAAEwd,kBAAkB,CAACn2B,EAAE,EAAE,MAAMA,EAAE2Y,EAAE0d,QAAQ1d,EAAEyd,OAAOtnC,KAAKhI,OAAO,IAAI6xB,EAAEyd,OAAOtnC,KAAKmgB,WAAW0J,EAAE0d,WAAW,EAAEjC,EAAEzb,EAAE3Y,SAAS,IAAIA,GAAG2Y,EAAEyd,OAAOgC,MAAMzf,EAAEib,QAAQjrC,IAAImI,EAAEmkC,MAAMnc,EAAEhoB,EAAEmkC,MAAMtc,EAAEkb,YAAYlb,EAAEib,QAAQjrC,EAAEA,IAAI,IAAIqX,IAAI2Y,EAAE0d,QAAQ,EAAE1d,EAAEkV,OAAO,SAASlV,EAAEkV,OAAO,GAAG,GAAG,KAAKlV,EAAEkV,OAAO,GAAGlV,EAAEyd,OAAOrb,QAAQ,CAACpyB,EAAEgwB,EAAEib,QAAQ,EAAE,CAAC,GAAGjb,EAAEib,UAAUjb,EAAEwd,mBAAmBxd,EAAEyd,OAAOgC,MAAMzf,EAAEib,QAAQjrC,IAAImI,EAAEmkC,MAAMnc,EAAEhoB,EAAEmkC,MAAMtc,EAAEkb,YAAYlb,EAAEib,QAAQjrC,EAAEA,IAAIgrC,EAAE7iC,GAAGnI,EAAEgwB,EAAEib,QAAQjb,EAAEib,UAAUjb,EAAEwd,kBAAkB,CAACn2B,EAAE,EAAE,MAAMA,EAAE2Y,EAAE0d,QAAQ1d,EAAEyd,OAAOrb,QAAQj0B,OAAO,IAAI6xB,EAAEyd,OAAOrb,QAAQ9L,WAAW0J,EAAE0d,WAAW,EAAEjC,EAAEzb,EAAE3Y,SAAS,IAAIA,GAAG2Y,EAAEyd,OAAOgC,MAAMzf,EAAEib,QAAQjrC,IAAImI,EAAEmkC,MAAMnc,EAAEhoB,EAAEmkC,MAAMtc,EAAEkb,YAAYlb,EAAEib,QAAQjrC,EAAEA,IAAI,IAAIqX,IAAI2Y,EAAEkV,OAAO,UAAUlV,EAAEkV,OAAO,IAAI,GAAG,MAAMlV,EAAEkV,SAASlV,EAAEyd,OAAOgC,MAAMzf,EAAEib,QAAQ,EAAEjb,EAAEwd,kBAAkBxC,EAAE7iC,GAAG6nB,EAAEib,QAAQ,GAAGjb,EAAEwd,mBAAmB/B,EAAEzb,EAAE,IAAI7nB,EAAEmkC,OAAOb,EAAEzb,EAAE7nB,EAAEmkC,OAAO,EAAE,KAAKnkC,EAAEmkC,MAAM,EAAEtc,EAAEkV,OAAOluB,IAAIgZ,EAAEkV,OAAOluB,GAAG,IAAIgZ,EAAEib,SAAS,GAAGD,EAAE7iC,GAAG,IAAIA,EAAEm+B,UAAU,OAAOtW,EAAE2d,YAAY,EAAEv2B,OAAO,GAAG,IAAIjP,EAAE6+B,UAAU8D,EAAEjb,IAAIib,EAAEh1B,IAAI+Z,IAAIQ,EAAE,OAAOyE,EAAE3sB,GAAG,GAAG,GAAG,MAAM6nB,EAAEkV,QAAQ,IAAI/8B,EAAE6+B,SAAS,OAAOlS,EAAE3sB,GAAG,GAAG,GAAG,IAAIA,EAAE6+B,UAAU,IAAIhX,EAAEic,WAAWpc,IAAIE,GAAG,MAAMC,EAAEkV,OAAO,CAAC,IAAIvV,EAAE,IAAIK,EAAE+V,SAAS,SAAS59B,EAAE0nB,GAAG,IAAI,IAAI/Z,IAAI,CAAC,GAAG,IAAI3N,EAAE8jC,YAAYh8B,EAAE9H,GAAG,IAAIA,EAAE8jC,WAAW,CAAC,GAAGpc,IAAIE,EAAE,OAAO4D,EAAE,MAAM,GAAGxrB,EAAEykC,aAAa,EAAE92B,EAAE8Z,EAAEid,UAAU1kC,EAAE,EAAEA,EAAE8b,OAAO9b,EAAEqjC,WAAWrjC,EAAE8jC,YAAY9jC,EAAEqjC,WAAW11B,IAAIu1B,EAAEljC,GAAE,GAAI,IAAIA,EAAEk+B,KAAKC,WAAW,OAAO3S,EAAE,OAAOxrB,EAAEqkC,OAAO,EAAE3c,IAAIQ,GAAGgb,EAAEljC,GAAE,GAAI,IAAIA,EAAEk+B,KAAKC,UAAUxS,EAAEc,GAAGzsB,EAAE4kC,WAAW1B,EAAEljC,GAAE,GAAI,IAAIA,EAAEk+B,KAAKC,WAAW3S,EAAEK,EAAzU,CAA4UhE,EAAEH,GAAG,IAAIG,EAAE+V,SAAS,SAAS59B,EAAE0nB,GAAG,IAAI,IAAI/Z,EAAEka,EAAEhwB,EAAEqX,EAAE/Q,EAAE6B,EAAE8b,SAAS,CAAC,GAAG9b,EAAE8jC,WAAW30B,EAAE,CAAC,GAAGrH,EAAE9H,GAAGA,EAAE8jC,WAAW30B,GAAGuY,IAAIE,EAAE,OAAO4D,EAAE,GAAG,IAAIxrB,EAAE8jC,UAAU,MAAM,GAAG9jC,EAAEykC,aAAa,EAAEzkC,EAAE8jC,WAAWz0B,GAAG,EAAErP,EAAEqjC,WAAWxb,EAAE1pB,EAAEtG,EAAEmI,EAAEqjC,SAAS,MAAMllC,IAAItG,IAAIgwB,IAAI1pB,IAAItG,IAAIgwB,IAAI1pB,IAAItG,GAAG,CAACqX,EAAElP,EAAEqjC,SAASl0B,EAAE,UAAU0Y,IAAI1pB,IAAItG,IAAIgwB,IAAI1pB,IAAItG,IAAIgwB,IAAI1pB,IAAItG,IAAIgwB,IAAI1pB,IAAItG,IAAIgwB,IAAI1pB,IAAItG,IAAIgwB,IAAI1pB,IAAItG,IAAIgwB,IAAI1pB,IAAItG,IAAIgwB,IAAI1pB,IAAItG,IAAIA,EAAEqX,GAAGlP,EAAEykC,aAAat1B,GAAGD,EAAErX,GAAGmI,EAAEykC,aAAazkC,EAAE8jC,YAAY9jC,EAAEykC,aAAazkC,EAAE8jC,WAAW,GAAG9jC,EAAEykC,cAAcp1B,GAAG1B,EAAE8Z,EAAEid,UAAU1kC,EAAE,EAAEA,EAAEykC,aAAap1B,GAAGrP,EAAE8jC,WAAW9jC,EAAEykC,aAAazkC,EAAEqjC,UAAUrjC,EAAEykC,aAAazkC,EAAEykC,aAAa,IAAI92B,EAAE8Z,EAAEid,UAAU1kC,EAAE,EAAEA,EAAE8b,OAAO9b,EAAEqjC,WAAWrjC,EAAE8jC,YAAY9jC,EAAEqjC,YAAY11B,IAAIu1B,EAAEljC,GAAE,GAAI,IAAIA,EAAEk+B,KAAKC,WAAW,OAAO3S,EAAE,OAAOxrB,EAAEqkC,OAAO,EAAE3c,IAAIQ,GAAGgb,EAAEljC,GAAE,GAAI,IAAIA,EAAEk+B,KAAKC,UAAUxS,EAAEc,GAAGzsB,EAAE4kC,WAAW1B,EAAEljC,GAAE,GAAI,IAAIA,EAAEk+B,KAAKC,WAAW3S,EAAEK,EAAlxB,CAAqxBhE,EAAEH,GAAG1Y,EAAE6Y,EAAEuD,OAAOga,KAAKvd,EAAEH,GAAG,GAAGF,IAAImE,GAAGnE,IAAIiF,IAAI5E,EAAEkV,OAAO,KAAKvV,IAAIgE,GAAGhE,IAAImE,EAAE,OAAO,IAAI3rB,EAAEm+B,YAAYtW,EAAE2d,YAAY,GAAGv2B,EAAE,GAAGuY,IAAIqE,IAAI,IAAInE,EAAED,EAAEggB,UAAU5f,GAAG,IAAIH,IAAID,EAAEigB,iBAAiB7f,EAAE,EAAE,GAAE,GAAI,IAAIH,IAAIkb,EAAE/a,EAAEqc,MAAM,IAAIrc,EAAEic,YAAYjc,EAAEwb,SAAS,EAAExb,EAAEub,YAAY,EAAEvb,EAAEwc,OAAO,KAAKxB,EAAE7iC,GAAG,IAAIA,EAAEm+B,WAAW,OAAOtW,EAAE2d,YAAY,EAAEv2B,EAAE,OAAOyY,IAAIQ,EAAEjZ,EAAE4Y,EAAE9c,MAAM,EAAE,GAAG,IAAI8c,EAAE9c,MAAMu4B,EAAEzb,EAAE,IAAI7nB,EAAEmkC,OAAOb,EAAEzb,EAAE7nB,EAAEmkC,OAAO,EAAE,KAAKb,EAAEzb,EAAE7nB,EAAEmkC,OAAO,GAAG,KAAKb,EAAEzb,EAAE7nB,EAAEmkC,OAAO,GAAG,KAAKb,EAAEzb,EAAE,IAAI7nB,EAAEokC,UAAUd,EAAEzb,EAAE7nB,EAAEokC,UAAU,EAAE,KAAKd,EAAEzb,EAAE7nB,EAAEokC,UAAU,GAAG,KAAKd,EAAEzb,EAAE7nB,EAAEokC,UAAU,GAAG,OAAOb,EAAE1b,EAAE7nB,EAAEmkC,QAAQ,IAAIZ,EAAE1b,EAAE,MAAM7nB,EAAEmkC,QAAQtB,EAAE7iC,GAAG,EAAE6nB,EAAE9c,OAAO8c,EAAE9c,MAAM8c,EAAE9c,MAAM,IAAI8c,EAAEib,QAAQ7zB,EAAE,IAAItB,EAAE0xB,WAAW,SAASr/B,GAAG,IAAI0nB,EAAE,OAAO1nB,GAAGA,EAAEs8B,OAAO5U,EAAE1nB,EAAEs8B,MAAMS,UAAU7Q,GAAG,KAAKxE,GAAG,KAAKA,GAAG,KAAKA,GAAG,MAAMA,GAAGA,IAAI7Y,GAAG,MAAM6Y,EAAEiF,EAAE3sB,EAAE7E,IAAI6E,EAAEs8B,MAAM,KAAK5U,IAAI7Y,EAAE8d,EAAE3sB,GAAG,GAAGiP,GAAG9T,GAAGwS,EAAE8wB,qBAAqB,SAASz+B,EAAE0nB,GAAG,IAAI/Z,EAAEka,EAAEhwB,EAAEqX,EAAE/Q,EAAEqpB,EAAExY,EAAEyY,EAAEG,EAAEF,EAAE1xB,OAAO,IAAIgK,IAAIA,EAAEs8B,MAAM,OAAOnhC,EAAE,GAAG,KAAK+T,GAAGvB,EAAE3N,EAAEs8B,OAAOvxB,OAAO,IAAImE,GAAGvB,EAAEovB,SAAS7Q,GAAGve,EAAEm2B,UAAU,OAAO3oC,EAAE,IAAI,IAAI+T,IAAIlP,EAAEmkC,MAAM72B,EAAEtN,EAAEmkC,MAAMzc,EAAEE,EAAE,IAAIja,EAAE5C,KAAK,EAAE6c,GAAGja,EAAEg2B,SAAS,IAAIz0B,IAAI0zB,EAAEj1B,EAAEu2B,MAAMv2B,EAAE01B,SAAS,EAAE11B,EAAEy1B,YAAY,EAAEz1B,EAAE02B,OAAO,GAAG5c,EAAE,IAAI/Z,EAAEqxB,KAAKpxB,EAAEg2B,QAAQj2B,EAAE8yB,SAAS/Y,EAAEC,EAAEE,EAAEja,EAAEg2B,OAAOh2B,EAAEg2B,OAAO,GAAGjc,EAAED,EAAEG,EAAEja,EAAEg2B,QAAQxlC,EAAE6B,EAAE6+B,SAASrX,EAAExnB,EAAE4+B,QAAQ5vB,EAAEhP,EAAE2+B,MAAM3+B,EAAE6+B,SAASjX,EAAE5nB,EAAE4+B,QAAQ,EAAE5+B,EAAE2+B,MAAMjX,EAAE5f,EAAE6F,GAAGA,EAAEm2B,WAAWz0B,GAAG,CAAC,IAAIwY,EAAEla,EAAE01B,SAASxrC,EAAE8V,EAAEm2B,WAAWz0B,EAAE,GAAG1B,EAAE22B,OAAO32B,EAAE22B,OAAO32B,EAAE42B,WAAW52B,EAAEmO,OAAO+L,EAAExY,EAAE,IAAI1B,EAAE62B,UAAU72B,EAAE1C,KAAK4c,EAAEla,EAAEi2B,QAAQj2B,EAAEu2B,KAAKv2B,EAAE22B,OAAO32B,EAAEu2B,KAAKv2B,EAAE22B,OAAOzc,EAAEA,MAAMhwB,IAAI8V,EAAE01B,SAASxb,EAAEla,EAAEm2B,UAAUz0B,EAAE,EAAEvH,EAAE6F,GAAG,OAAOA,EAAE01B,UAAU11B,EAAEm2B,UAAUn2B,EAAEy1B,YAAYz1B,EAAE01B,SAAS11B,EAAE02B,OAAO12B,EAAEm2B,UAAUn2B,EAAEm2B,UAAU,EAAEn2B,EAAE82B,aAAa92B,EAAE81B,YAAYp0B,EAAE,EAAE1B,EAAEo3B,gBAAgB,EAAE/kC,EAAE4+B,QAAQpX,EAAExnB,EAAE2+B,MAAM3vB,EAAEhP,EAAE6+B,SAAS1gC,EAAEwP,EAAE5C,KAAKmE,EAAED,GAAGtB,EAAEg6B,YAAY,sCAAsC,CAAC,kBAAkB,GAAG,YAAY,GAAG,UAAU,GAAG,aAAa,GAAG,UAAU,KAAKC,GAAG,CAAC,SAAS5nC,EAAE0nB,EAAE/Z,GAAG,aAAa+Z,EAAEH,QAAQ,WAAWnrB,KAAKzD,KAAK,EAAEyD,KAAKorC,KAAK,EAAEprC,KAAKyrC,OAAO,EAAEzrC,KAAKlI,GAAG,EAAEkI,KAAKmrC,MAAM,KAAKnrC,KAAK0rC,UAAU,EAAE1rC,KAAK4B,KAAK,GAAG5B,KAAK6tB,QAAQ,GAAG7tB,KAAKkrC,KAAK,EAAElrC,KAAKqe,MAAK,IAAK,IAAIstB,GAAG,CAAC,SAAS/nC,EAAE0nB,EAAE/Z,GAAG,aAAa+Z,EAAEH,QAAQ,SAASvnB,EAAE0nB,GAAG,IAAI/Z,EAAEka,EAAEhwB,EAAEqX,EAAE/Q,EAAEqpB,EAAExY,EAAEyY,EAAEG,EAAEM,EAAExa,EAAEJ,EAAE0a,EAAE/Y,EAAE9T,EAAE2wB,EAAE1tB,EAAE2tB,EAAExd,EAAE0V,EAAE+H,EAAE3c,EAAEF,EAAE8c,EAAEC,EAAEve,EAAE3N,EAAEs8B,MAAMzU,EAAE7nB,EAAE4+B,QAAQ3S,EAAEjsB,EAAE2+B,MAAM9mC,EAAEgwB,GAAG7nB,EAAE6+B,SAAS,GAAG3vB,EAAElP,EAAEg/B,SAAS9S,EAAElsB,EAAE8+B,OAAO3gC,EAAE+Q,GAAGwY,EAAE1nB,EAAEm+B,WAAW3W,EAAEtY,GAAGlP,EAAEm+B,UAAU,KAAKnvB,EAAErB,EAAEq6B,KAAKvgB,EAAE9Z,EAAEs6B,MAAMrgB,EAAEja,EAAEu6B,MAAMhgB,EAAEva,EAAEw6B,MAAMz6B,EAAEC,EAAEmO,OAAOxO,EAAEK,EAAEy6B,KAAKpgB,EAAEra,EAAE06B,KAAKp5B,EAAEtB,EAAE26B,QAAQntC,EAAEwS,EAAE46B,SAASzc,GAAG,GAAGne,EAAE66B,SAAS,EAAEpqC,GAAG,GAAGuP,EAAE86B,UAAU,EAAEzoC,EAAE,EAAE,CAACgoB,EAAE,KAAK1a,GAAG2e,EAAEpE,MAAMG,EAAEA,GAAG,EAAE1a,GAAG2e,EAAEpE,MAAMG,EAAEA,GAAG,GAAG+D,EAAE9c,EAAE3B,EAAEwe,GAAGpE,EAAE,OAAO,CAAC,GAAGpa,KAAKiB,EAAEwd,IAAI,GAAG/D,GAAGzZ,EAAE,KAAKA,EAAEwd,IAAI,GAAG,KAAKG,EAAEhd,KAAK,MAAM6c,MAAM,CAAC,KAAK,GAAGxd,GAAG,CAAC,GAAG,IAAI,GAAGA,GAAG,CAACwd,EAAE9c,GAAG,MAAM8c,IAAIze,GAAG,GAAGiB,GAAG,IAAI,SAASmZ,EAAE,GAAG,GAAGnZ,EAAE,CAACZ,EAAE+6B,KAAK,GAAG,MAAM1oC,EAAEA,EAAE+9B,IAAI,8BAA8BpwB,EAAE+6B,KAAK,GAAG,MAAM1oC,EAAEikB,EAAE,MAAM8H,GAAGxd,GAAG,MAAMyZ,EAAEzZ,IAAIjB,GAAG2e,EAAEpE,MAAMG,EAAEA,GAAG,GAAG/D,GAAG3W,GAAG,GAAGiB,GAAG,EAAEjB,KAAKiB,EAAEyZ,GAAGzZ,GAAGyZ,EAAE,KAAK1a,GAAG2e,EAAEpE,MAAMG,EAAEA,GAAG,EAAE1a,GAAG2e,EAAEpE,MAAMG,EAAEA,GAAG,GAAG+D,EAAE5wB,EAAEmS,EAAElP,GAAGuP,EAAE,OAAO,CAAC,GAAGL,KAAKiB,EAAEwd,IAAI,GAAG/D,GAAGzZ,IAAI,IAAIA,EAAEwd,IAAI,GAAG,MAAM,CAAC,GAAG,IAAI,GAAGxd,GAAG,CAACwd,EAAE5wB,GAAG,MAAM4wB,IAAIze,GAAG,GAAGiB,GAAG,IAAI,SAASZ,EAAE3N,EAAE+9B,IAAI,wBAAwBpwB,EAAE+6B,KAAK,GAAG,MAAM1oC,EAAE,GAAGgsB,EAAE,MAAMD,EAAE/D,GAAGzZ,GAAG,MAAMjB,GAAG2e,EAAEpE,MAAMG,GAAGA,GAAG,GAAGzZ,IAAIjB,GAAG2e,EAAEpE,MAAMG,EAAEA,GAAG,IAAIhZ,GAAGgd,GAAG1e,GAAG,GAAGiB,GAAG,GAAG,CAACvO,EAAE+9B,IAAI,gCAAgCpwB,EAAE+6B,KAAK,GAAG,MAAM1oC,EAAE,GAAGsN,KAAKiB,EAAEyZ,GAAGzZ,GAAGA,EAAEW,EAAE/Q,GAAG6tB,EAAE,CAAC,GAAGpE,GAAGrZ,EAAEyd,EAAEzd,IAAIZ,EAAEg7B,KAAK,CAAC3oC,EAAE+9B,IAAI,gCAAgCpwB,EAAE+6B,KAAK,GAAG,MAAM1oC,EAAE,GAAGmP,EAAEzB,GAAG2B,EAAE,KAAK6Y,GAAG,GAAG7Y,GAAGoY,EAAElZ,EAAEA,EAAE0V,EAAE,CAAC,IAAIA,GAAG1V,EAAE2d,EAAEhd,KAAKxB,EAAE2B,OAAOd,IAAIc,EAAEH,EAAE8c,EAAE7c,EAAE+c,QAAQ,GAAGhE,EAAE3Z,GAAG,GAAGc,GAAGoY,EAAES,EAAE3Z,GAAGA,GAAG2Z,GAAGjE,EAAE,CAAC,IAAIA,GAAG1V,EAAE2d,EAAEhd,KAAKxB,EAAE2B,OAAOd,IAAI,GAAGc,EAAE,EAAE6Y,EAAEjE,EAAE,CAAC,IAAIA,GAAG1V,EAAE2Z,EAAEgE,EAAEhd,KAAKxB,EAAE2B,OAAOd,IAAIc,EAAEH,EAAE8c,EAAE7c,EAAE+c,SAAS,GAAG7c,GAAG6Y,EAAE3Z,EAAEA,EAAE0V,EAAE,CAAC,IAAIA,GAAG1V,EAAE2d,EAAEhd,KAAKxB,EAAE2B,OAAOd,IAAIc,EAAEH,EAAE8c,EAAE7c,EAAE+c,EAAE,KAAK,EAAEjI,GAAGiI,EAAEhd,KAAKC,EAAEE,KAAK6c,EAAEhd,KAAKC,EAAEE,KAAK6c,EAAEhd,KAAKC,EAAEE,KAAK4U,GAAG,EAAEA,IAAIiI,EAAEhd,KAAKC,EAAEE,KAAK,EAAE4U,IAAIiI,EAAEhd,KAAKC,EAAEE,WAAW,CAAC,IAAIA,EAAEH,EAAE8c,EAAEE,EAAEhd,KAAKgd,EAAE7c,KAAK6c,EAAEhd,KAAKgd,EAAE7c,KAAK6c,EAAEhd,KAAKgd,EAAE7c,KAAK,GAAG4U,GAAG,KAAKA,IAAIiI,EAAEhd,KAAKgd,EAAE7c,KAAK,EAAE4U,IAAIiI,EAAEhd,KAAKgd,EAAE7c,OAAO,OAAO,aAAawY,EAAEhwB,GAAGqX,EAAEsY,GAAGK,GAAG5D,EAAE+D,GAAG,EAAE1a,IAAI,IAAI0a,GAAG/D,GAAG,IAAI,EAAEjkB,EAAE4+B,QAAQ/W,EAAE7nB,EAAEg/B,SAAS9vB,EAAElP,EAAE6+B,SAAShX,EAAEhwB,EAAEA,EAAEgwB,EAAE,EAAE,GAAGA,EAAEhwB,GAAGmI,EAAEm+B,UAAUjvB,EAAEsY,EAAEA,EAAEtY,EAAE,IAAI,KAAKA,EAAEsY,GAAG7Z,EAAEy6B,KAAK96B,EAAEK,EAAE06B,KAAKrgB,IAAI,IAAI4gB,GAAG,CAAC,SAAS5oC,EAAE0nB,EAAE/Z,GAAG,aAAa,IAAIke,EAAE7rB,EAAE,mBAAmB2rB,EAAE3rB,EAAE,aAAaysB,EAAEzsB,EAAE,WAAW2sB,EAAE3sB,EAAE,aAAa2iC,EAAE3iC,EAAE,cAAc4iC,EAAE,EAAEC,EAAE,EAAEK,EAAE,EAAEI,GAAG,EAAEC,EAAE,EAAE1b,EAAE,IAAIhwB,EAAE,IAAI,SAAS8W,EAAE3O,GAAG,OAAOA,IAAI,GAAG,MAAMA,IAAI,EAAE,SAAS,MAAMA,IAAI,KAAK,IAAIA,IAAI,IAAI,SAASkP,IAAI9S,KAAKssC,KAAK,EAAEtsC,KAAK+X,MAAK,EAAG/X,KAAK2O,KAAK,EAAE3O,KAAKysC,UAAS,EAAGzsC,KAAK0sC,MAAM,EAAE1sC,KAAK4rC,KAAK,EAAE5rC,KAAKkJ,MAAM,EAAElJ,KAAK2sC,MAAM,EAAE3sC,KAAK8nC,KAAK,KAAK9nC,KAAK4sC,MAAM,EAAE5sC,KAAK6rC,MAAM,EAAE7rC,KAAK8rC,MAAM,EAAE9rC,KAAK+rC,MAAM,EAAE/rC,KAAK0f,OAAO,KAAK1f,KAAKgsC,KAAK,EAAEhsC,KAAKisC,KAAK,EAAEjsC,KAAKpG,OAAO,EAAEoG,KAAKoc,OAAO,EAAEpc,KAAKmrC,MAAM,EAAEnrC,KAAKksC,QAAQ,KAAKlsC,KAAKmsC,SAAS,KAAKnsC,KAAKosC,QAAQ,EAAEpsC,KAAKqsC,SAAS,EAAErsC,KAAK6sC,MAAM,EAAE7sC,KAAK8sC,KAAK,EAAE9sC,KAAK+sC,MAAM,EAAE/sC,KAAKgtC,KAAK,EAAEhtC,KAAK8O,KAAK,KAAK9O,KAAKitC,KAAK,IAAIxd,EAAEmV,MAAM,KAAK5kC,KAAKktC,KAAK,IAAIzd,EAAEmV,MAAM,KAAK5kC,KAAKmtC,OAAO,KAAKntC,KAAKotC,QAAQ,KAAKptC,KAAKusC,KAAK,EAAEvsC,KAAKqtC,KAAK,EAAErtC,KAAKstC,IAAI,EAAE,SAASvrC,EAAE6B,GAAG,IAAI0nB,EAAE,OAAO1nB,GAAGA,EAAEs8B,OAAO5U,EAAE1nB,EAAEs8B,MAAMt8B,EAAEokC,SAASpkC,EAAEijC,UAAUvb,EAAEqhB,MAAM,EAAE/oC,EAAE+9B,IAAI,GAAGrW,EAAE3c,OAAO/K,EAAEmkC,MAAM,EAAEzc,EAAE3c,MAAM2c,EAAEghB,KAAKnF,EAAE7b,EAAEvT,KAAK,EAAEuT,EAAEmhB,SAAS,EAAEnhB,EAAEsgB,KAAK,MAAMtgB,EAAEwc,KAAK,KAAKxc,EAAE0gB,KAAK,EAAE1gB,EAAE2gB,KAAK,EAAE3gB,EAAE4gB,QAAQ5gB,EAAE6hB,OAAO,IAAI1d,EAAEoV,MAAMpZ,GAAGH,EAAE6gB,SAAS7gB,EAAE8hB,QAAQ,IAAI3d,EAAEoV,MAAMppC,GAAG6vB,EAAEihB,KAAK,EAAEjhB,EAAE+hB,MAAM,EAAEvG,GAAGI,EAAE,SAAS9b,EAAExnB,GAAG,IAAI0nB,EAAE,OAAO1nB,GAAGA,EAAEs8B,QAAQ5U,EAAE1nB,EAAEs8B,OAAO2L,MAAM,EAAEvgB,EAAEwgB,MAAM,EAAExgB,EAAEygB,MAAM,EAAEhqC,EAAE6B,IAAIsjC,EAAE,SAASt0B,EAAEhP,EAAE0nB,GAAG,IAAI/Z,EAAEka,EAAE,OAAO7nB,GAAGA,EAAEs8B,OAAOzU,EAAE7nB,EAAEs8B,MAAM5U,EAAE,GAAG/Z,EAAE,EAAE+Z,GAAGA,IAAI/Z,EAAE,GAAG+Z,GAAG,GAAGA,EAAE,KAAKA,GAAG,KAAKA,IAAIA,EAAE,GAAG,GAAGA,GAAG4b,GAAG,OAAOzb,EAAE/L,QAAQ+L,EAAEmhB,QAAQthB,IAAIG,EAAE/L,OAAO,MAAM+L,EAAE9c,KAAK4C,EAAEka,EAAEmhB,MAAMthB,EAAEF,EAAExnB,KAAKsjC,EAAE,SAAS7b,EAAEznB,EAAE0nB,GAAG,IAAI/Z,EAAEka,EAAE,OAAO7nB,GAAG6nB,EAAE,IAAI3Y,GAAGlP,EAAEs8B,MAAMzU,GAAG/L,OAAO,MAAMnO,EAAEqB,EAAEhP,EAAE0nB,MAAMwb,IAAIljC,EAAEs8B,MAAM,MAAM3uB,GAAG21B,EAAE,IAAI1b,EAAEM,EAAExa,GAAE,EAAG,SAAS5F,EAAE9H,GAAG,GAAG0N,EAAE,CAAC,IAAIga,EAAE,IAAIE,EAAE,IAAIiE,EAAEoV,MAAM,KAAK/Y,EAAE,IAAI2D,EAAEoV,MAAM,IAAIvZ,EAAE,EAAEA,EAAE,KAAK1nB,EAAEqpC,KAAK3hB,KAAK,EAAE,KAAKA,EAAE,KAAK1nB,EAAEqpC,KAAK3hB,KAAK,EAAE,KAAKA,EAAE,KAAK1nB,EAAEqpC,KAAK3hB,KAAK,EAAE,KAAKA,EAAE,KAAK1nB,EAAEqpC,KAAK3hB,KAAK,EAAE,IAAIib,EAAEC,EAAE5iC,EAAEqpC,KAAK,EAAE,IAAIzhB,EAAE,EAAE5nB,EAAEspC,KAAK,CAACjB,KAAK,IAAI3gB,EAAE,EAAEA,EAAE,IAAI1nB,EAAEqpC,KAAK3hB,KAAK,EAAEib,EAAEE,EAAE7iC,EAAEqpC,KAAK,EAAE,GAAGnhB,EAAE,EAAEloB,EAAEspC,KAAK,CAACjB,KAAK,IAAI36B,GAAE,EAAG1N,EAAEsoC,QAAQ1gB,EAAE5nB,EAAEwoC,QAAQ,EAAExoC,EAAEuoC,SAASrgB,EAAEloB,EAAEyoC,SAAS,EAAE,SAAS34B,EAAE9P,EAAE0nB,EAAE/Z,EAAEka,GAAG,IAAIhwB,EAAEqX,EAAElP,EAAEs8B,MAAM,OAAO,OAAOptB,EAAE4M,SAAS5M,EAAE+4B,MAAM,GAAG/4B,EAAE85B,MAAM95B,EAAEi5B,MAAM,EAAEj5B,EAAEg5B,MAAM,EAAEh5B,EAAE4M,OAAO,IAAI+P,EAAEkT,KAAK7vB,EAAE+4B,QAAQpgB,GAAG3Y,EAAE+4B,OAAOpc,EAAE2U,SAAStxB,EAAE4M,OAAO4L,EAAE/Z,EAAEuB,EAAE+4B,MAAM/4B,EAAE+4B,MAAM,GAAG/4B,EAAEi5B,MAAM,EAAEj5B,EAAEg5B,MAAMh5B,EAAE+4B,QAAQpgB,GAAGhwB,EAAEqX,EAAE+4B,MAAM/4B,EAAEi5B,SAAStwC,EAAEgwB,GAAGgE,EAAE2U,SAAStxB,EAAE4M,OAAO4L,EAAE/Z,EAAEka,EAAEhwB,EAAEqX,EAAEi5B,QAAQtgB,GAAGhwB,IAAIg0B,EAAE2U,SAAStxB,EAAE4M,OAAO4L,EAAE/Z,EAAEka,EAAEA,EAAE,GAAG3Y,EAAEi5B,MAAMtgB,EAAE3Y,EAAEg5B,MAAMh5B,EAAE+4B,QAAQ/4B,EAAEi5B,OAAOtwC,EAAEqX,EAAEi5B,QAAQj5B,EAAE+4B,QAAQ/4B,EAAEi5B,MAAM,GAAGj5B,EAAEg5B,MAAMh5B,EAAE+4B,QAAQ/4B,EAAEg5B,OAAOrwC,KAAK,EAAE8V,EAAEg8B,aAAaniB,EAAE7Z,EAAEi8B,cAAc56B,EAAErB,EAAEk8B,iBAAiB1rC,EAAEwP,EAAEm8B,YAAY,SAAS9pC,GAAG,OAAOynB,EAAEznB,EAAE,KAAK2N,EAAE+xB,aAAajY,EAAE9Z,EAAEqyB,QAAQ,SAAShgC,EAAE0nB,GAAG,IAAI/Z,EAAEka,EAAEhwB,EAAEqX,EAAE/Q,EAAEqpB,EAAExY,EAAEyY,EAAEG,EAAEM,EAAExa,EAAEJ,EAAE0a,EAAE/Y,EAAE9T,EAAE2wB,EAAE1tB,EAAE2tB,EAAExd,EAAE0V,EAAE+H,EAAE3c,EAAEF,EAAE8c,EAAEC,EAAE,EAAErd,EAAE,IAAIgd,EAAEkT,KAAK,GAAGvT,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,IAAIxrB,IAAIA,EAAEs8B,QAAQt8B,EAAE8+B,SAAS9+B,EAAE2+B,OAAO,IAAI3+B,EAAE6+B,SAAS,OAAOyE,EAAE,MAAM31B,EAAE3N,EAAEs8B,OAAOoM,OAAO/6B,EAAE+6B,KAAK,IAAIvqC,EAAE6B,EAAEg/B,SAASnnC,EAAEmI,EAAE8+B,OAAO9vB,EAAEhP,EAAEm+B,UAAUjvB,EAAElP,EAAE4+B,QAAQ/W,EAAE7nB,EAAE2+B,MAAMnX,EAAExnB,EAAE6+B,SAASpX,EAAE9Z,EAAEy6B,KAAKxgB,EAAEja,EAAE06B,KAAKngB,EAAEV,EAAE9Z,EAAEsB,EAAEK,EAAE6zB,EAAEljC,EAAE,OAAO,OAAO2N,EAAE+6B,MAAM,KAAKnF,EAAE,GAAG,IAAI51B,EAAE5C,KAAK,CAAC4C,EAAE+6B,KAAK,GAAG,MAAM,KAAK9gB,EAAE,IAAI,CAAC,GAAG,IAAIJ,EAAE,MAAMxnB,EAAEwnB,IAAIC,GAAGI,EAAE3Y,MAAM0Y,EAAEA,GAAG,EAAE,GAAG,EAAEja,EAAE5C,MAAM,QAAQ0c,EAAE,CAAC5Y,EAAElB,EAAErI,MAAM,GAAG,IAAImiB,EAAE5Y,EAAE,GAAG4Y,IAAI,EAAE,IAAI9Z,EAAErI,MAAMmnB,EAAE9e,EAAErI,MAAMuJ,EAAE,EAAE,GAAG+Y,EAAEH,EAAE,EAAE9Z,EAAE+6B,KAAK,EAAE,MAAM,GAAG/6B,EAAEm7B,MAAM,EAAEn7B,EAAEu2B,OAAOv2B,EAAEu2B,KAAKzpB,MAAK,KAAM,EAAE9M,EAAE5C,UAAU,IAAI0c,IAAI,IAAIA,GAAG,IAAI,GAAG,CAACznB,EAAE+9B,IAAI,yBAAyBpwB,EAAE+6B,KAAK,GAAG,MAAM,GAAG,IAAI,GAAGjhB,GAAG,CAACznB,EAAE+9B,IAAI,6BAA6BpwB,EAAE+6B,KAAK,GAAG,MAAM,GAAG9gB,GAAG,EAAEoE,EAAE,GAAG,IAAIvE,KAAK,IAAI,IAAI9Z,EAAEq7B,MAAMr7B,EAAEq7B,MAAMhd,OAAO,GAAGA,EAAEre,EAAEq7B,MAAM,CAAChpC,EAAE+9B,IAAI,sBAAsBpwB,EAAE+6B,KAAK,GAAG,MAAM/6B,EAAEq6B,KAAK,GAAGhc,EAAEhsB,EAAEmkC,MAAMx2B,EAAErI,MAAM,EAAEqI,EAAE+6B,KAAK,IAAIjhB,EAAE,GAAG,GAAGG,EAAEH,EAAE,EAAE,MAAM,KAAK,EAAE,KAAKG,EAAE,IAAI,CAAC,GAAG,IAAIJ,EAAE,MAAMxnB,EAAEwnB,IAAIC,GAAGI,EAAE3Y,MAAM0Y,EAAEA,GAAG,EAAE,GAAGja,EAAEm7B,MAAMrhB,EAAE,IAAI,IAAI9Z,EAAEm7B,OAAO,CAAC9oC,EAAE+9B,IAAI,6BAA6BpwB,EAAE+6B,KAAK,GAAG,MAAM,GAAG,MAAM/6B,EAAEm7B,MAAM,CAAC9oC,EAAE+9B,IAAI,2BAA2BpwB,EAAE+6B,KAAK,GAAG,MAAM/6B,EAAEu2B,OAAOv2B,EAAEu2B,KAAKvrC,KAAK8uB,GAAG,EAAE,GAAG,IAAI9Z,EAAEm7B,QAAQj6B,EAAE,GAAG,IAAI4Y,EAAE5Y,EAAE,GAAG4Y,IAAI,EAAE,IAAI9Z,EAAErI,MAAMmnB,EAAE9e,EAAErI,MAAMuJ,EAAE,EAAE,IAAI+Y,EAAEH,EAAE,EAAE9Z,EAAE+6B,KAAK,EAAE,KAAK,EAAE,KAAK9gB,EAAE,IAAI,CAAC,GAAG,IAAIJ,EAAE,MAAMxnB,EAAEwnB,IAAIC,GAAGI,EAAE3Y,MAAM0Y,EAAEA,GAAG,EAAEja,EAAEu2B,OAAOv2B,EAAEu2B,KAAKsD,KAAK/f,GAAG,IAAI9Z,EAAEm7B,QAAQj6B,EAAE,GAAG,IAAI4Y,EAAE5Y,EAAE,GAAG4Y,IAAI,EAAE,IAAI5Y,EAAE,GAAG4Y,IAAI,GAAG,IAAI5Y,EAAE,GAAG4Y,IAAI,GAAG,IAAI9Z,EAAErI,MAAMmnB,EAAE9e,EAAErI,MAAMuJ,EAAE,EAAE,IAAI+Y,EAAEH,EAAE,EAAE9Z,EAAE+6B,KAAK,EAAE,KAAK,EAAE,KAAK9gB,EAAE,IAAI,CAAC,GAAG,IAAIJ,EAAE,MAAMxnB,EAAEwnB,IAAIC,GAAGI,EAAE3Y,MAAM0Y,EAAEA,GAAG,EAAEja,EAAEu2B,OAAOv2B,EAAEu2B,KAAK2D,OAAO,IAAIpgB,EAAE9Z,EAAEu2B,KAAKhwC,GAAGuzB,GAAG,GAAG,IAAI9Z,EAAEm7B,QAAQj6B,EAAE,GAAG,IAAI4Y,EAAE5Y,EAAE,GAAG4Y,IAAI,EAAE,IAAI9Z,EAAErI,MAAMmnB,EAAE9e,EAAErI,MAAMuJ,EAAE,EAAE,IAAI+Y,EAAEH,EAAE,EAAE9Z,EAAE+6B,KAAK,EAAE,KAAK,EAAE,GAAG,KAAK/6B,EAAEm7B,MAAM,CAAC,KAAKlhB,EAAE,IAAI,CAAC,GAAG,IAAIJ,EAAE,MAAMxnB,EAAEwnB,IAAIC,GAAGI,EAAE3Y,MAAM0Y,EAAEA,GAAG,EAAEja,EAAE3X,OAAOyxB,EAAE9Z,EAAEu2B,OAAOv2B,EAAEu2B,KAAK4D,UAAUrgB,GAAG,IAAI9Z,EAAEm7B,QAAQj6B,EAAE,GAAG,IAAI4Y,EAAE5Y,EAAE,GAAG4Y,IAAI,EAAE,IAAI9Z,EAAErI,MAAMmnB,EAAE9e,EAAErI,MAAMuJ,EAAE,EAAE,IAAI+Y,EAAEH,EAAE,OAAO9Z,EAAEu2B,OAAOv2B,EAAEu2B,KAAKqD,MAAM,MAAM55B,EAAE+6B,KAAK,EAAE,KAAK,EAAE,GAAG,KAAK/6B,EAAEm7B,QAAQthB,GAAGla,EAAEK,EAAE3X,UAAUsX,EAAEka,GAAGla,IAAIK,EAAEu2B,OAAOlY,EAAEre,EAAEu2B,KAAK4D,UAAUn6B,EAAE3X,OAAO2X,EAAEu2B,KAAKqD,QAAQ55B,EAAEu2B,KAAKqD,MAAM,IAAItsC,MAAM0S,EAAEu2B,KAAK4D,YAAYjc,EAAE2U,SAAS7yB,EAAEu2B,KAAKqD,MAAM1f,EAAE3Y,EAAE5B,EAAE0e,IAAI,IAAIre,EAAEm7B,QAAQn7B,EAAErI,MAAMmnB,EAAE9e,EAAErI,MAAMuiB,EAAEva,EAAE4B,IAAIsY,GAAGla,EAAE4B,GAAG5B,EAAEK,EAAE3X,QAAQsX,GAAGK,EAAE3X,QAAQ,MAAMgK,EAAE2N,EAAE3X,OAAO,EAAE2X,EAAE+6B,KAAK,EAAE,KAAK,EAAE,GAAG,KAAK/6B,EAAEm7B,MAAM,CAAC,GAAG,IAAIthB,EAAE,MAAMxnB,EAAE,IAAIsN,EAAE,EAAE0e,EAAEnE,EAAE3Y,EAAE5B,KAAKK,EAAEu2B,MAAMlY,GAAGre,EAAE3X,OAAO,QAAQ2X,EAAEu2B,KAAKlmC,MAAMjI,OAAO01B,aAAaO,IAAIA,GAAG1e,EAAEka,IAAI,GAAG,IAAI7Z,EAAEm7B,QAAQn7B,EAAErI,MAAMmnB,EAAE9e,EAAErI,MAAMuiB,EAAEva,EAAE4B,IAAIsY,GAAGla,EAAE4B,GAAG5B,EAAE0e,EAAE,MAAMhsB,OAAO2N,EAAEu2B,OAAOv2B,EAAEu2B,KAAKlmC,KAAK,MAAM2P,EAAE3X,OAAO,EAAE2X,EAAE+6B,KAAK,EAAE,KAAK,EAAE,GAAG,KAAK/6B,EAAEm7B,MAAM,CAAC,GAAG,IAAIthB,EAAE,MAAMxnB,EAAE,IAAIsN,EAAE,EAAE0e,EAAEnE,EAAE3Y,EAAE5B,KAAKK,EAAEu2B,MAAMlY,GAAGre,EAAE3X,OAAO,QAAQ2X,EAAEu2B,KAAKja,SAASl0B,OAAO01B,aAAaO,IAAIA,GAAG1e,EAAEka,IAAI,GAAG,IAAI7Z,EAAEm7B,QAAQn7B,EAAErI,MAAMmnB,EAAE9e,EAAErI,MAAMuiB,EAAEva,EAAE4B,IAAIsY,GAAGla,EAAE4B,GAAG5B,EAAE0e,EAAE,MAAMhsB,OAAO2N,EAAEu2B,OAAOv2B,EAAEu2B,KAAKja,QAAQ,MAAMtc,EAAE+6B,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI/6B,EAAEm7B,MAAM,CAAC,KAAKlhB,EAAE,IAAI,CAAC,GAAG,IAAIJ,EAAE,MAAMxnB,EAAEwnB,IAAIC,GAAGI,EAAE3Y,MAAM0Y,EAAEA,GAAG,EAAE,GAAGH,KAAK,MAAM9Z,EAAErI,OAAO,CAACtF,EAAE+9B,IAAI,sBAAsBpwB,EAAE+6B,KAAK,GAAG,MAAM9gB,EAAEH,EAAE,EAAE9Z,EAAEu2B,OAAOv2B,EAAEu2B,KAAKoD,KAAK35B,EAAEm7B,OAAO,EAAE,EAAEn7B,EAAEu2B,KAAKzpB,MAAK,GAAIza,EAAEmkC,MAAMx2B,EAAErI,MAAM,EAAEqI,EAAE+6B,KAAK,GAAG,MAAM,KAAK,GAAG,KAAK9gB,EAAE,IAAI,CAAC,GAAG,IAAIJ,EAAE,MAAMxnB,EAAEwnB,IAAIC,GAAGI,EAAE3Y,MAAM0Y,EAAEA,GAAG,EAAE5nB,EAAEmkC,MAAMx2B,EAAErI,MAAMqJ,EAAE8Y,GAAGG,EAAEH,EAAE,EAAE9Z,EAAE+6B,KAAK,GAAG,KAAK,GAAG,GAAG,IAAI/6B,EAAEk7B,SAAS,OAAO7oC,EAAEg/B,SAAS7gC,EAAE6B,EAAEm+B,UAAUnvB,EAAEhP,EAAE4+B,QAAQ1vB,EAAElP,EAAE6+B,SAASrX,EAAE7Z,EAAEy6B,KAAK3gB,EAAE9Z,EAAE06B,KAAKzgB,EAAE,EAAE5nB,EAAEmkC,MAAMx2B,EAAErI,MAAM,EAAEqI,EAAE+6B,KAAK,GAAG,KAAK,GAAG,GAAG,IAAIhhB,GAAG,IAAIA,EAAE,MAAM1nB,EAAE,KAAK,GAAG,GAAG2N,EAAEwG,KAAK,CAACsT,KAAK,EAAEG,EAAEA,GAAG,EAAEA,EAAEja,EAAE+6B,KAAK,GAAG,MAAM,KAAK9gB,EAAE,GAAG,CAAC,GAAG,IAAIJ,EAAE,MAAMxnB,EAAEwnB,IAAIC,GAAGI,EAAE3Y,MAAM0Y,EAAEA,GAAG,EAAE,OAAOja,EAAEwG,KAAK,EAAEsT,EAAEG,GAAG,EAAE,GAAGH,KAAK,IAAI,KAAK,EAAE9Z,EAAE+6B,KAAK,GAAG,MAAM,KAAK,EAAE,GAAG5gC,EAAE6F,GAAGA,EAAE+6B,KAAK,GAAG,IAAIhhB,EAAE,MAAMD,KAAK,EAAEG,GAAG,EAAE,MAAM5nB,EAAE,KAAK,EAAE2N,EAAE+6B,KAAK,GAAG,MAAM,KAAK,EAAE1oC,EAAE+9B,IAAI,qBAAqBpwB,EAAE+6B,KAAK,GAAGjhB,KAAK,EAAEG,GAAG,EAAE,MAAM,KAAK,GAAG,IAAIH,KAAK,EAAEG,EAAEA,GAAG,EAAEA,EAAEA,EAAE,IAAI,CAAC,GAAG,IAAIJ,EAAE,MAAMxnB,EAAEwnB,IAAIC,GAAGI,EAAE3Y,MAAM0Y,EAAEA,GAAG,EAAE,IAAI,MAAMH,KAAKA,IAAI,GAAG,OAAO,CAACznB,EAAE+9B,IAAI,+BAA+BpwB,EAAE+6B,KAAK,GAAG,MAAM,GAAG/6B,EAAE3X,OAAO,MAAMyxB,EAAEG,EAAEH,EAAE,EAAE9Z,EAAE+6B,KAAK,GAAG,IAAIhhB,EAAE,MAAM1nB,EAAE,KAAK,GAAG2N,EAAE+6B,KAAK,GAAG,KAAK,GAAG,GAAGp7B,EAAEK,EAAE3X,OAAO,CAAC,GAAGwxB,EAAEla,IAAIA,EAAEka,GAAGxY,EAAE1B,IAAIA,EAAE0B,GAAG,IAAI1B,EAAE,MAAMtN,EAAE6rB,EAAE2U,SAAS3oC,EAAEgwB,EAAE3Y,EAAE5B,EAAEnP,GAAGqpB,GAAGla,EAAE4B,GAAG5B,EAAE0B,GAAG1B,EAAEnP,GAAGmP,EAAEK,EAAE3X,QAAQsX,EAAE,MAAMK,EAAE+6B,KAAK,GAAG,MAAM,KAAK,GAAG,KAAK9gB,EAAE,IAAI,CAAC,GAAG,IAAIJ,EAAE,MAAMxnB,EAAEwnB,IAAIC,GAAGI,EAAE3Y,MAAM0Y,EAAEA,GAAG,EAAE,GAAGja,EAAEu7B,KAAK,KAAK,GAAGzhB,GAAGA,KAAK,EAAEG,GAAG,EAAEja,EAAEw7B,MAAM,GAAG,GAAG1hB,GAAGA,KAAK,EAAEG,GAAG,EAAEja,EAAEs7B,MAAM,GAAG,GAAGxhB,GAAGA,KAAK,EAAEG,GAAG,EAAE,IAAIja,EAAEu7B,MAAM,GAAGv7B,EAAEw7B,MAAM,CAACnpC,EAAE+9B,IAAI,sCAAsCpwB,EAAE+6B,KAAK,GAAG,MAAM/6B,EAAEy7B,KAAK,EAAEz7B,EAAE+6B,KAAK,GAAG,KAAK,GAAG,KAAK/6B,EAAEy7B,KAAKz7B,EAAEs7B,OAAO,CAAC,KAAKrhB,EAAE,GAAG,CAAC,GAAG,IAAIJ,EAAE,MAAMxnB,EAAEwnB,IAAIC,GAAGI,EAAE3Y,MAAM0Y,EAAEA,GAAG,EAAEja,EAAE07B,KAAK7d,EAAE7d,EAAEy7B,SAAS,EAAE3hB,EAAEA,KAAK,EAAEG,GAAG,EAAE,KAAKja,EAAEy7B,KAAK,IAAIz7B,EAAE07B,KAAK7d,EAAE7d,EAAEy7B,SAAS,EAAE,GAAGz7B,EAAE26B,QAAQ36B,EAAE47B,OAAO57B,EAAE66B,QAAQ,EAAEr5B,EAAE,CAACk5B,KAAK16B,EAAE66B,SAASn5B,EAAEszB,EAAE,EAAEh1B,EAAE07B,KAAK,EAAE,GAAG17B,EAAE26B,QAAQ,EAAE36B,EAAE27B,KAAKn6B,GAAGxB,EAAE66B,QAAQr5B,EAAEk5B,KAAKh5B,EAAE,CAACrP,EAAE+9B,IAAI,2BAA2BpwB,EAAE+6B,KAAK,GAAG,MAAM/6B,EAAEy7B,KAAK,EAAEz7B,EAAE+6B,KAAK,GAAG,KAAK,GAAG,KAAK/6B,EAAEy7B,KAAKz7B,EAAEu7B,KAAKv7B,EAAEw7B,OAAO,CAAC,KAAKrd,GAAGI,EAAEve,EAAE26B,QAAQ7gB,GAAG,GAAG9Z,EAAE66B,SAAS,MAAM,GAAG,IAAIpqC,EAAE,MAAM8tB,KAAK/wB,EAAE+wB,IAAI,KAAKtE,IAAI,CAAC,GAAG,IAAIJ,EAAE,MAAMxnB,EAAEwnB,IAAIC,GAAGI,EAAE3Y,MAAM0Y,EAAEA,GAAG,EAAE,GAAGxpB,EAAE,GAAGqpB,KAAKtsB,EAAEysB,GAAGzsB,EAAEwS,EAAE07B,KAAK17B,EAAEy7B,QAAQhrC,MAAM,CAAC,GAAG,KAAKA,EAAE,CAAC,IAAI6tB,EAAE9wB,EAAE,EAAEysB,EAAEqE,GAAG,CAAC,GAAG,IAAIzE,EAAE,MAAMxnB,EAAEwnB,IAAIC,GAAGI,EAAE3Y,MAAM0Y,EAAEA,GAAG,EAAE,GAAGH,KAAKtsB,EAAEysB,GAAGzsB,EAAE,IAAIwS,EAAEy7B,KAAK,CAACppC,EAAE+9B,IAAI,4BAA4BpwB,EAAE+6B,KAAK,GAAG,MAAM1c,EAAEre,EAAE07B,KAAK17B,EAAEy7B,KAAK,GAAG97B,EAAE,GAAG,EAAEma,GAAGA,KAAK,EAAEG,GAAG,OAAO,GAAG,KAAKxpB,EAAE,CAAC,IAAI6tB,EAAE9wB,EAAE,EAAEysB,EAAEqE,GAAG,CAAC,GAAG,IAAIzE,EAAE,MAAMxnB,EAAEwnB,IAAIC,GAAGI,EAAE3Y,MAAM0Y,EAAEA,GAAG,EAAEA,GAAGzsB,EAAE6wB,EAAE,EAAE1e,EAAE,GAAG,GAAGma,KAAKtsB,IAAIssB,KAAK,EAAEG,GAAG,MAAM,CAAC,IAAIqE,EAAE9wB,EAAE,EAAEysB,EAAEqE,GAAG,CAAC,GAAG,IAAIzE,EAAE,MAAMxnB,EAAEwnB,IAAIC,GAAGI,EAAE3Y,MAAM0Y,EAAEA,GAAG,EAAEA,GAAGzsB,EAAE6wB,EAAE,EAAE1e,EAAE,IAAI,KAAKma,KAAKtsB,IAAIssB,KAAK,EAAEG,GAAG,EAAE,GAAGja,EAAEy7B,KAAK97B,EAAEK,EAAEu7B,KAAKv7B,EAAEw7B,MAAM,CAACnpC,EAAE+9B,IAAI,4BAA4BpwB,EAAE+6B,KAAK,GAAG,MAAM,KAAKp7B,KAAKK,EAAE07B,KAAK17B,EAAEy7B,QAAQpd,GAAG,GAAG,KAAKre,EAAE+6B,KAAK,MAAM,GAAG,IAAI/6B,EAAE07B,KAAK,KAAK,CAACrpC,EAAE+9B,IAAI,uCAAuCpwB,EAAE+6B,KAAK,GAAG,MAAM,GAAG/6B,EAAE66B,QAAQ,EAAEr5B,EAAE,CAACk5B,KAAK16B,EAAE66B,SAASn5B,EAAEszB,EAAEC,EAAEj1B,EAAE07B,KAAK,EAAE17B,EAAEu7B,KAAKv7B,EAAE26B,QAAQ,EAAE36B,EAAE27B,KAAKn6B,GAAGxB,EAAE66B,QAAQr5B,EAAEk5B,KAAKh5B,EAAE,CAACrP,EAAE+9B,IAAI,8BAA8BpwB,EAAE+6B,KAAK,GAAG,MAAM,GAAG/6B,EAAE86B,SAAS,EAAE96B,EAAE46B,SAAS56B,EAAE67B,QAAQr6B,EAAE,CAACk5B,KAAK16B,EAAE86B,UAAUp5B,EAAEszB,EAAEE,EAAEl1B,EAAE07B,KAAK17B,EAAEu7B,KAAKv7B,EAAEw7B,MAAMx7B,EAAE46B,SAAS,EAAE56B,EAAE27B,KAAKn6B,GAAGxB,EAAE86B,SAASt5B,EAAEk5B,KAAKh5B,EAAE,CAACrP,EAAE+9B,IAAI,wBAAwBpwB,EAAE+6B,KAAK,GAAG,MAAM,GAAG/6B,EAAE+6B,KAAK,GAAG,IAAIhhB,EAAE,MAAM1nB,EAAE,KAAK,GAAG2N,EAAE+6B,KAAK,GAAG,KAAK,GAAG,GAAG,GAAGlhB,GAAG,KAAKxY,EAAE,CAAChP,EAAEg/B,SAAS7gC,EAAE6B,EAAEm+B,UAAUnvB,EAAEhP,EAAE4+B,QAAQ1vB,EAAElP,EAAE6+B,SAASrX,EAAE7Z,EAAEy6B,KAAK3gB,EAAE9Z,EAAE06B,KAAKzgB,EAAE+E,EAAE3sB,EAAE0N,GAAGvP,EAAE6B,EAAEg/B,SAASnnC,EAAEmI,EAAE8+B,OAAO9vB,EAAEhP,EAAEm+B,UAAUjvB,EAAElP,EAAE4+B,QAAQ/W,EAAE7nB,EAAE2+B,MAAMnX,EAAExnB,EAAE6+B,SAASpX,EAAE9Z,EAAEy6B,KAAKxgB,EAAEja,EAAE06B,KAAK,KAAK16B,EAAE+6B,OAAO/6B,EAAE87B,MAAM,GAAG,MAAM,IAAI97B,EAAE87B,KAAK,EAAE3d,GAAGI,EAAEve,EAAE26B,QAAQ7gB,GAAG,GAAG9Z,EAAE66B,SAAS,MAAM,GAAG,IAAIpqC,EAAE,MAAM8tB,KAAK/wB,EAAE+wB,IAAI,KAAKtE,IAAI,CAAC,GAAG,IAAIJ,EAAE,MAAMxnB,EAAEwnB,IAAIC,GAAGI,EAAE3Y,MAAM0Y,EAAEA,GAAG,EAAE,GAAGkE,GAAG,IAAI,IAAIA,GAAG,CAAC,IAAIC,EAAE5wB,EAAEoT,EAAEud,EAAE7H,EAAE7lB,EAAE0tB,GAAGI,EAAEve,EAAE26B,QAAQrkB,IAAIwD,GAAG,GAAGsE,EAAExd,GAAG,IAAIwd,OAAO,GAAG,IAAI3tB,EAAE,MAAM8tB,IAAIH,GAAG5wB,EAAE+wB,IAAI,KAAKtE,IAAI,CAAC,GAAG,IAAIJ,EAAE,MAAMxnB,EAAEwnB,IAAIC,GAAGI,EAAE3Y,MAAM0Y,EAAEA,GAAG,EAAEH,KAAKsE,EAAEnE,GAAGmE,EAAEpe,EAAE87B,MAAM1d,EAAE,GAAGtE,KAAKtsB,EAAEysB,GAAGzsB,EAAEwS,EAAE87B,MAAMtuC,EAAEwS,EAAE3X,OAAOoI,EAAE,IAAI0tB,EAAE,CAACne,EAAE+6B,KAAK,GAAG,MAAM,GAAG,GAAG5c,EAAE,CAACne,EAAE87B,MAAM,EAAE97B,EAAE+6B,KAAK,GAAG,MAAM,GAAG,GAAG5c,EAAE,CAAC9rB,EAAE+9B,IAAI,8BAA8BpwB,EAAE+6B,KAAK,GAAG,MAAM/6B,EAAE45B,MAAM,GAAGzb,EAAEne,EAAE+6B,KAAK,GAAG,KAAK,GAAG,GAAG/6B,EAAE45B,MAAM,CAAC,IAAItb,EAAEte,EAAE45B,MAAM3f,EAAEqE,GAAG,CAAC,GAAG,IAAIzE,EAAE,MAAMxnB,EAAEwnB,IAAIC,GAAGI,EAAE3Y,MAAM0Y,EAAEA,GAAG,EAAEja,EAAE3X,QAAQyxB,GAAG,GAAG9Z,EAAE45B,OAAO,EAAE9f,KAAK9Z,EAAE45B,MAAM3f,GAAGja,EAAE45B,MAAM55B,EAAE87B,MAAM97B,EAAE45B,MAAM55B,EAAE+7B,IAAI/7B,EAAE3X,OAAO2X,EAAE+6B,KAAK,GAAG,KAAK,GAAG,KAAK5c,GAAGI,EAAEve,EAAE46B,SAAS9gB,GAAG,GAAG9Z,EAAE86B,UAAU,MAAM,GAAG,IAAIrqC,EAAE,MAAM8tB,KAAK/wB,EAAE+wB,IAAI,KAAKtE,IAAI,CAAC,GAAG,IAAIJ,EAAE,MAAMxnB,EAAEwnB,IAAIC,GAAGI,EAAE3Y,MAAM0Y,EAAEA,GAAG,EAAE,GAAG,IAAI,IAAIkE,GAAG,CAAC,IAAIC,EAAE5wB,EAAEoT,EAAEud,EAAE7H,EAAE7lB,EAAE0tB,GAAGI,EAAEve,EAAE46B,SAAStkB,IAAIwD,GAAG,GAAGsE,EAAExd,GAAG,IAAIwd,OAAO,GAAG,IAAI3tB,EAAE,MAAM8tB,IAAIH,GAAG5wB,EAAE+wB,IAAI,KAAKtE,IAAI,CAAC,GAAG,IAAIJ,EAAE,MAAMxnB,EAAEwnB,IAAIC,GAAGI,EAAE3Y,MAAM0Y,EAAEA,GAAG,EAAEH,KAAKsE,EAAEnE,GAAGmE,EAAEpe,EAAE87B,MAAM1d,EAAE,GAAGtE,KAAKtsB,EAAEysB,GAAGzsB,EAAEwS,EAAE87B,MAAMtuC,EAAE,GAAG2wB,EAAE,CAAC9rB,EAAE+9B,IAAI,wBAAwBpwB,EAAE+6B,KAAK,GAAG,MAAM/6B,EAAE6K,OAAOpa,EAAEuP,EAAE45B,MAAM,GAAGzb,EAAEne,EAAE+6B,KAAK,GAAG,KAAK,GAAG,GAAG/6B,EAAE45B,MAAM,CAAC,IAAItb,EAAEte,EAAE45B,MAAM3f,EAAEqE,GAAG,CAAC,GAAG,IAAIzE,EAAE,MAAMxnB,EAAEwnB,IAAIC,GAAGI,EAAE3Y,MAAM0Y,EAAEA,GAAG,EAAEja,EAAE6K,QAAQiP,GAAG,GAAG9Z,EAAE45B,OAAO,EAAE9f,KAAK9Z,EAAE45B,MAAM3f,GAAGja,EAAE45B,MAAM55B,EAAE87B,MAAM97B,EAAE45B,MAAM,GAAG55B,EAAE6K,OAAO7K,EAAEq6B,KAAK,CAAChoC,EAAE+9B,IAAI,gCAAgCpwB,EAAE+6B,KAAK,GAAG,MAAM/6B,EAAE+6B,KAAK,GAAG,KAAK,GAAG,GAAG,IAAI15B,EAAE,MAAMhP,EAAE,GAAGsN,EAAEI,EAAEsB,EAAErB,EAAE6K,OAAOlL,EAAE,CAAC,IAAIA,EAAEK,EAAE6K,OAAOlL,GAAGK,EAAEu6B,OAAOv6B,EAAEg7B,KAAK,CAAC3oC,EAAE+9B,IAAI,gCAAgCpwB,EAAE+6B,KAAK,GAAG,MAAM1gB,EAAE1a,EAAEK,EAAEw6B,OAAO76B,GAAGK,EAAEw6B,MAAMx6B,EAAEs6B,MAAM36B,GAAGK,EAAEw6B,MAAM76B,EAAEA,EAAEK,EAAE3X,SAASsX,EAAEK,EAAE3X,QAAQiZ,EAAEtB,EAAEmO,YAAY7M,EAAEpX,EAAEmwB,EAAE7pB,EAAEwP,EAAE6K,OAAOlL,EAAEK,EAAE3X,OAAO,IAAIgZ,EAAE1B,IAAIA,EAAE0B,GAAGA,GAAG1B,EAAEK,EAAE3X,QAAQsX,EAAEzV,EAAEsG,KAAK8Q,EAAE+Y,OAAO1a,IAAI,IAAIK,EAAE3X,SAAS2X,EAAE+6B,KAAK,IAAI,MAAM,KAAK,GAAG,GAAG,IAAI15B,EAAE,MAAMhP,EAAEnI,EAAEsG,KAAKwP,EAAE3X,OAAOgZ,IAAIrB,EAAE+6B,KAAK,GAAG,MAAM,KAAK,GAAG,GAAG/6B,EAAE5C,KAAK,CAAC,KAAK6c,EAAE,IAAI,CAAC,GAAG,IAAIJ,EAAE,MAAMxnB,EAAEwnB,IAAIC,GAAGI,EAAE3Y,MAAM0Y,EAAEA,GAAG,EAAE,GAAGla,GAAGsB,EAAEhP,EAAEijC,WAAWv1B,EAAEC,EAAEo7B,OAAOr7B,EAAEA,IAAI1N,EAAEmkC,MAAMx2B,EAAErI,MAAMqI,EAAEm7B,MAAMrc,EAAE9e,EAAErI,MAAMzN,EAAE6V,EAAEvP,EAAEuP,GAAGie,EAAEhe,EAAErI,MAAMzN,EAAE6V,EAAEvP,EAAEuP,IAAIA,EAAEsB,GAAGrB,EAAEm7B,MAAMrhB,EAAE9Y,EAAE8Y,MAAM9Z,EAAErI,MAAM,CAACtF,EAAE+9B,IAAI,uBAAuBpwB,EAAE+6B,KAAK,GAAG,MAAM9gB,EAAEH,EAAE,EAAE9Z,EAAE+6B,KAAK,GAAG,KAAK,GAAG,GAAG/6B,EAAE5C,MAAM4C,EAAEm7B,MAAM,CAAC,KAAKlhB,EAAE,IAAI,CAAC,GAAG,IAAIJ,EAAE,MAAMxnB,EAAEwnB,IAAIC,GAAGI,EAAE3Y,MAAM0Y,EAAEA,GAAG,EAAE,GAAGH,KAAK,WAAW9Z,EAAEo7B,OAAO,CAAC/oC,EAAE+9B,IAAI,yBAAyBpwB,EAAE+6B,KAAK,GAAG,MAAM9gB,EAAEH,EAAE,EAAE9Z,EAAE+6B,KAAK,GAAG,KAAK,GAAGr5B,EAAE,EAAE,MAAMrP,EAAE,KAAK,GAAGqP,GAAG,EAAE,MAAMrP,EAAE,KAAK,GAAG,OAAO,EAAE,KAAK,GAAG,QAAQ,OAAOsjC,EAAE,OAAOtjC,EAAEg/B,SAAS7gC,EAAE6B,EAAEm+B,UAAUnvB,EAAEhP,EAAE4+B,QAAQ1vB,EAAElP,EAAE6+B,SAASrX,EAAE7Z,EAAEy6B,KAAK3gB,EAAE9Z,EAAE06B,KAAKzgB,GAAGja,EAAEs6B,OAAOv6B,IAAI1N,EAAEm+B,WAAWxwB,EAAE+6B,KAAK,KAAK/6B,EAAE+6B,KAAK,IAAI,IAAIhhB,KAAK5X,EAAE9P,EAAEA,EAAE8+B,OAAO9+B,EAAEg/B,SAAStxB,EAAE1N,EAAEm+B,YAAYxwB,EAAE+6B,KAAK,IAAI,IAAIxgB,GAAGloB,EAAE6+B,SAASnxB,GAAG1N,EAAEm+B,UAAUn+B,EAAEokC,UAAUlc,EAAEloB,EAAEijC,WAAWv1B,EAAEC,EAAEo7B,OAAOr7B,EAAEC,EAAE5C,MAAM2C,IAAI1N,EAAEmkC,MAAMx2B,EAAErI,MAAMqI,EAAEm7B,MAAMrc,EAAE9e,EAAErI,MAAMzN,EAAE6V,EAAE1N,EAAEg/B,SAAStxB,GAAGie,EAAEhe,EAAErI,MAAMzN,EAAE6V,EAAE1N,EAAEg/B,SAAStxB,IAAI1N,EAAE+mC,UAAUp5B,EAAE06B,MAAM16B,EAAEwG,KAAK,GAAG,IAAI,KAAKxG,EAAE+6B,KAAK,IAAI,IAAI,KAAK/6B,EAAE+6B,MAAM,KAAK/6B,EAAE+6B,KAAK,IAAI,IAAI,GAAGxgB,GAAG,IAAIxa,GAAG,IAAIga,IAAIrY,IAAI6zB,IAAI7zB,GAAG,GAAGA,IAAI1B,EAAE8yB,WAAW,SAASzgC,GAAG,IAAIA,IAAIA,EAAEs8B,MAAM,OAAOgH,EAAE,IAAI5b,EAAE1nB,EAAEs8B,MAAM,OAAO5U,EAAE5L,SAAS4L,EAAE5L,OAAO,MAAM9b,EAAEs8B,MAAM,KAAK4G,GAAGv1B,EAAEiyB,iBAAiB,SAAS5/B,EAAE0nB,GAAG,IAAI/Z,EAAE,OAAO3N,GAAGA,EAAEs8B,MAAM,IAAI,GAAG3uB,EAAE3N,EAAEs8B,OAAOvxB,MAAMu4B,IAAI31B,EAAEu2B,KAAKxc,GAAGjN,MAAK,EAAGyoB,GAAGI,GAAG31B,EAAEuyB,qBAAqB,SAASlgC,EAAE0nB,GAAG,IAAI/Z,EAAEka,EAAEH,EAAE1xB,OAAO,OAAOgK,GAAGA,EAAEs8B,MAAM,KAAK3uB,EAAE3N,EAAEs8B,OAAOvxB,MAAM,KAAK4C,EAAE+6B,KAAKpF,EAAE,KAAK31B,EAAE+6B,MAAM/c,EAAE,EAAEjE,EAAEG,EAAE,KAAKla,EAAErI,OAAO,EAAEwK,EAAE9P,EAAE0nB,EAAEG,EAAEA,IAAIla,EAAE+6B,KAAK,IAAI,IAAI/6B,EAAEk7B,SAAS,EAAE3F,GAAGI,GAAG31B,EAAEo8B,YAAY,sCAAsC,CAAC,kBAAkB,GAAG,YAAY,GAAG,UAAU,GAAG,YAAY,GAAG,aAAa,KAAKC,GAAG,CAAC,SAAShqC,EAAE0nB,EAAE/Z,GAAG,aAAa,IAAIi1B,EAAE5iC,EAAE,mBAAmB6iC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,GAAGK,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAII,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,EAAE,GAAGC,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI7b,EAAEH,QAAQ,SAASvnB,EAAE0nB,EAAE/Z,EAAEka,EAAEhwB,EAAEqX,EAAE/Q,EAAEqpB,GAAG,IAAIxY,EAAEyY,EAAEG,EAAEM,EAAExa,EAAEJ,EAAE0a,EAAE/Y,EAAE9T,EAAE2wB,EAAEtE,EAAE6gB,KAAKjqC,EAAE,EAAE2tB,EAAE,EAAExd,EAAE,EAAE0V,EAAE,EAAE+H,EAAE,EAAE3c,EAAE,EAAEF,EAAE,EAAE8c,EAAE,EAAEC,EAAE,EAAErd,EAAE,EAAE2c,EAAE,KAAKK,EAAE,EAAEF,EAAE,IAAIiX,EAAE5B,MAAM,IAAIvU,EAAE,IAAImW,EAAE5B,MAAM,IAAIrU,EAAE,KAAKgW,EAAE,EAAE,IAAIvkC,EAAE,EAAEA,GAAG,GAAGA,IAAIutB,EAAEvtB,GAAG,EAAE,IAAI2tB,EAAE,EAAEA,EAAElE,EAAEkE,IAAIJ,EAAEjE,EAAE/Z,EAAEoe,MAAM,IAAIC,EAAEF,EAAE7H,EAAE,GAAG,GAAGA,GAAG,IAAI0H,EAAE1H,GAAGA,KAAK,GAAGA,EAAE+H,IAAIA,EAAE/H,GAAG,IAAIA,EAAE,OAAOpsB,EAAEqX,KAAK,SAASrX,EAAEqX,KAAK,SAASsY,EAAE6gB,KAAK,EAAE,EAAE,IAAI95B,EAAE,EAAEA,EAAE0V,GAAG,IAAI0H,EAAEpd,GAAGA,KAAK,IAAIyd,EAAEzd,IAAIyd,EAAEzd,GAAGnQ,EAAE6tB,EAAE,EAAE7tB,GAAG,GAAGA,IAAI,GAAG6tB,IAAI,GAAGA,GAAGN,EAAEvtB,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE6tB,IAAI,IAAIjsB,GAAG,IAAIikB,GAAG,OAAO,EAAE,IAAIwI,EAAE,GAAG,EAAEruB,EAAE,EAAEA,EAAE,GAAGA,IAAIquB,EAAEruB,EAAE,GAAGquB,EAAEruB,GAAGutB,EAAEvtB,GAAG,IAAI2tB,EAAE,EAAEA,EAAElE,EAAEkE,IAAI,IAAIrE,EAAE/Z,EAAEoe,KAAK5tB,EAAEsuB,EAAE/E,EAAE/Z,EAAEoe,OAAOA,GAAG,GAAGze,EAAE,IAAItN,GAAGwrB,EAAEmB,EAAExuB,EAAE,IAAI,IAAI6B,GAAGwrB,EAAEqX,EAAEhX,GAAG,IAAIc,EAAEuW,EAAEP,GAAG,IAAI,MAAMnX,EAAE8X,EAAE3W,EAAE4W,GAAG,GAAGnlC,EAAEmQ,EAAEb,EAAEwB,EAAEC,EAAE4c,EAAEld,EAAE,EAAE+Y,GAAG,EAAEM,GAAGgE,EAAE,IAAI7c,EAAE2c,IAAI,EAAE,IAAIhsB,GAAG,IAAIksB,GAAG,IAAIlsB,GAAG,IAAIksB,EAAE,OAAO,EAAE,OAAO,CAAC,IAAIlE,EAAE5pB,EAAE+Q,EAAEhU,EAAEgD,EAAE4tB,GAAGze,GAAG2B,EAAE,EAAE9Q,EAAE4tB,IAAI5tB,EAAE4tB,GAAGze,GAAG2B,EAAE0d,EAAEgW,EAAExkC,EAAE4tB,IAAIP,EAAEK,EAAE1tB,EAAE4tB,MAAM9c,EAAE,GAAG,GAAGD,EAAE,GAAG5Q,EAAE+Q,EAAEZ,EAAEkZ,EAAE,GAAGpY,EAAExX,EAAE6V,GAAGmB,GAAGM,IAAIsY,GAAGzY,IAAIgZ,GAAG,GAAG/Y,GAAG,GAAG9T,EAAE,EAAE,IAAIssB,IAAI,IAAIzY,EAAE,GAAG5Q,EAAE,EAAEyQ,EAAEG,GAAGA,IAAI,EAAE,GAAG,IAAIA,GAAGH,GAAGG,EAAE,EAAEH,GAAGG,GAAGH,EAAE,EAAEkd,IAAI,KAAKJ,EAAEvtB,GAAG,CAAC,GAAGA,IAAI6lB,EAAE,MAAM7lB,EAAEspB,EAAE/Z,EAAExP,EAAE4tB,IAAI,GAAGC,EAAE5tB,IAAIyQ,EAAEqZ,KAAKN,EAAE,CAAC,IAAI,IAAIzY,IAAIA,EAAE6c,GAAGte,GAAGa,EAAE0d,EAAE,IAAI5c,EAAEjR,EAAE+Q,GAAGE,EAAEF,EAAE8U,MAAMgI,GAAGN,EAAEtc,EAAEF,KAAK,IAAIE,IAAI4c,IAAI,EAAE,GAAGC,GAAG,GAAG7c,EAAE,IAAIrP,GAAG,IAAIksB,GAAG,IAAIlsB,GAAG,IAAIksB,EAAE,OAAO,EAAEr0B,EAAE+vB,EAAE/Y,EAAEqZ,GAAG8D,GAAG,GAAG3c,GAAG,GAAG3B,EAAEwB,EAAE,GAAG,OAAO,IAAIL,IAAIhX,EAAE6V,EAAEmB,GAAGzQ,EAAE+Q,GAAG,GAAG,IAAI,GAAG,GAAGqY,EAAE6gB,KAAKrc,EAAE,IAAI,CAAC,kBAAkB,KAAKie,GAAG,CAAC,SAASjqC,EAAE0nB,EAAE/Z,GAAG,aAAa+Z,EAAEH,QAAQ,CAACiB,EAAE,kBAAkBT,EAAE,aAAamiB,EAAE,GAAG,KAAK,aAAa,KAAK,eAAe,KAAK,aAAa,KAAK,sBAAsB,KAAK,eAAe,KAAK,yBAAyB,IAAIC,GAAG,CAAC,SAASnqC,EAAE0nB,EAAE/Z,GAAG,aAAa,IAAI9V,EAAEmI,EAAE,mBAAmBwnB,EAAE,EAAExY,EAAE,EAAE,SAAS6Y,EAAE7nB,GAAG,IAAI,IAAI0nB,EAAE1nB,EAAEhK,OAAO,KAAK0xB,GAAG1nB,EAAE0nB,GAAG,EAAE,IAAIxY,EAAE,EAAE/Q,EAAE,GAAGspB,EAAE,IAAIG,EAAEH,EAAE,EAAEtpB,EAAE+pB,EAAE,GAAGxa,EAAE,GAAGvS,EAAE,EAAEysB,EAAE,EAAEkE,EAAE,GAAGxe,EAAE,GAAG0a,EAAE,EAAE/Y,EAAE,IAAI7Q,EAAE,GAAG2tB,EAAE,GAAGxd,EAAE,GAAG0V,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG+H,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI3c,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAGF,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI8c,EAAE,IAAIhxB,MAAM,GAAG2sB,EAAE,IAAIC,EAAEoE,GAAG,IAAIC,EAAE,IAAIjxB,MAAM,EAAEitB,GAAGL,EAAEqE,GAAG,IAAIrd,EAAE,IAAI5T,MAAM,KAAK4sB,EAAEhZ,GAAG,IAAI2c,EAAE,IAAIvwB,MAAM,KAAK4sB,EAAE2D,GAAG,IAAIK,EAAE,IAAI5wB,MAAMkD,GAAG0pB,EAAEgE,GAAG,IAAIF,EAAEc,EAAEE,EAAEgW,EAAE,IAAI1nC,MAAMitB,GAAG,SAAS0a,EAAE5iC,EAAE0nB,EAAE/Z,EAAEka,EAAEhwB,GAAGuE,KAAKguC,YAAYpqC,EAAE5D,KAAKiuC,WAAW3iB,EAAEtrB,KAAKkuC,WAAW38B,EAAEvR,KAAKmuC,MAAM1iB,EAAEzrB,KAAKouC,WAAW3yC,EAAEuE,KAAKquC,UAAUzqC,GAAGA,EAAEhK,OAAO,SAAS6sC,EAAE7iC,EAAE0nB,GAAGtrB,KAAKsuC,SAAS1qC,EAAE5D,KAAKuuC,SAAS,EAAEvuC,KAAKwuC,UAAUljB,EAAE,SAASwb,EAAEljC,GAAG,OAAOA,EAAE,IAAI6O,EAAE7O,GAAG6O,EAAE,KAAK7O,IAAI,IAAI,SAASsjC,EAAEtjC,EAAE0nB,GAAG1nB,EAAE+iC,YAAY/iC,EAAE8iC,WAAW,IAAIpb,EAAE1nB,EAAE+iC,YAAY/iC,EAAE8iC,WAAWpb,IAAI,EAAE,IAAI,SAAS6b,EAAEvjC,EAAE0nB,EAAE/Z,GAAG3N,EAAE6mC,SAASv5B,EAAEK,GAAG3N,EAAE4mC,QAAQlf,GAAG1nB,EAAE6mC,SAAS,MAAMvD,EAAEtjC,EAAEA,EAAE4mC,QAAQ5mC,EAAE4mC,OAAOlf,GAAGpa,EAAEtN,EAAE6mC,SAAS7mC,EAAE6mC,UAAUl5B,EAAEL,IAAItN,EAAE4mC,QAAQlf,GAAG1nB,EAAE6mC,SAAS,MAAM7mC,EAAE6mC,UAAUl5B,GAAG,SAASgB,EAAE3O,EAAE0nB,EAAE/Z,GAAG41B,EAAEvjC,EAAE2N,EAAE,EAAE+Z,GAAG/Z,EAAE,EAAE+Z,EAAE,IAAI,SAAS5f,EAAE9H,EAAE0nB,GAAG,IAAI,IAAI/Z,EAAE,EAAEA,GAAG,EAAE3N,EAAEA,KAAK,EAAE2N,IAAI,EAAE,IAAI+Z,IAAI,OAAO/Z,IAAI,EAAE,SAASmC,EAAE9P,EAAE0nB,EAAE/Z,GAAG,IAAIka,EAAEhwB,EAAEqX,EAAE,IAAIjU,MAAM6wB,EAAE,GAAG3tB,EAAE,EAAE,IAAI0pB,EAAE,EAAEA,GAAGiE,EAAEjE,IAAI3Y,EAAE2Y,GAAG1pB,EAAEA,EAAEwP,EAAEka,EAAE,IAAI,EAAE,IAAIhwB,EAAE,EAAEA,GAAG6vB,EAAE7vB,IAAI,CAAC,IAAI2vB,EAAExnB,EAAE,EAAEnI,EAAE,GAAG,IAAI2vB,IAAIxnB,EAAE,EAAEnI,GAAGiQ,EAAEoH,EAAEsY,KAAKA,KAAK,SAASqd,EAAE7kC,GAAG,IAAI0nB,EAAE,IAAIA,EAAE,EAAEA,EAAEE,EAAEF,IAAI1nB,EAAE2lC,UAAU,EAAEje,GAAG,EAAE,IAAIA,EAAE,EAAEA,EAAEQ,EAAER,IAAI1nB,EAAE4lC,UAAU,EAAEle,GAAG,EAAE,IAAIA,EAAE,EAAEA,EAAEha,EAAEga,IAAI1nB,EAAE6lC,QAAQ,EAAEne,GAAG,EAAE1nB,EAAE2lC,UAAU,EAAE12B,GAAG,EAAEjP,EAAEymC,QAAQzmC,EAAE0mC,WAAW,EAAE1mC,EAAE4kC,SAAS5kC,EAAE2mC,QAAQ,EAAE,SAASj4B,EAAE1O,GAAG,EAAEA,EAAE6mC,SAASvD,EAAEtjC,EAAEA,EAAE4mC,QAAQ,EAAE5mC,EAAE6mC,WAAW7mC,EAAE+iC,YAAY/iC,EAAE8iC,WAAW9iC,EAAE4mC,QAAQ5mC,EAAE4mC,OAAO,EAAE5mC,EAAE6mC,SAAS,EAAE,SAAS93B,EAAE/O,EAAE0nB,EAAE/Z,EAAEka,GAAG,IAAIhwB,EAAE,EAAE6vB,EAAExY,EAAE,EAAEvB,EAAE,OAAO3N,EAAEnI,GAAGmI,EAAEkP,IAAIlP,EAAEnI,KAAKmI,EAAEkP,IAAI2Y,EAAEH,IAAIG,EAAEla,GAAG,SAASm5B,EAAE9mC,EAAE0nB,EAAE/Z,GAAG,IAAI,IAAIka,EAAE7nB,EAAEkmC,KAAKv4B,GAAG9V,EAAE8V,GAAG,EAAE9V,GAAGmI,EAAEmmC,WAAWtuC,EAAEmI,EAAEmmC,UAAUp3B,EAAE2Y,EAAE1nB,EAAEkmC,KAAKruC,EAAE,GAAGmI,EAAEkmC,KAAKruC,GAAGmI,EAAEqmC,QAAQxuC,KAAKkX,EAAE2Y,EAAEG,EAAE7nB,EAAEkmC,KAAKruC,GAAGmI,EAAEqmC,SAASrmC,EAAEkmC,KAAKv4B,GAAG3N,EAAEkmC,KAAKruC,GAAG8V,EAAE9V,EAAEA,IAAI,EAAEmI,EAAEkmC,KAAKv4B,GAAGka,EAAE,SAASof,EAAEjnC,EAAE0nB,EAAE/Z,GAAG,IAAIka,EAAEhwB,EAAEqX,EAAE/Q,EAAEqpB,EAAE,EAAE,GAAG,IAAIxnB,EAAE4kC,SAAS,KAAK/c,EAAE7nB,EAAE+iC,YAAY/iC,EAAEwmC,MAAM,EAAEhf,IAAI,EAAExnB,EAAE+iC,YAAY/iC,EAAEwmC,MAAM,EAAEhf,EAAE,GAAG3vB,EAAEmI,EAAE+iC,YAAY/iC,EAAEsmC,MAAM9e,GAAGA,IAAI,IAAIK,EAAElZ,EAAE3O,EAAEnI,EAAE6vB,IAAI/Y,EAAE3O,GAAGkP,EAAEsc,EAAE3zB,IAAI4vB,EAAE,EAAEC,GAAG,KAAKvpB,EAAE8lB,EAAE/U,KAAKq0B,EAAEvjC,EAAEnI,GAAGg0B,EAAE3c,GAAG/Q,GAAGwQ,EAAE3O,EAAEkP,EAAEg0B,IAAIrb,GAAGla,GAAG,KAAKxP,EAAE6tB,EAAE9c,KAAKq0B,EAAEvjC,EAAE6nB,GAAG8a,EAAEzzB,GAAG/Q,IAAIqpB,EAAExnB,EAAE4kC,WAAWj2B,EAAE3O,EAAEiP,EAAEyY,GAAG,SAASwf,EAAElnC,EAAE0nB,GAAG,IAAI/Z,EAAEka,EAAEhwB,EAAEqX,EAAEwY,EAAEgjB,SAASvsC,EAAEupB,EAAEkjB,UAAUR,YAAY5iB,EAAEE,EAAEkjB,UAAUH,UAAUz7B,EAAE0Y,EAAEkjB,UAAUL,MAAM9iB,GAAG,EAAE,IAAIznB,EAAEmmC,SAAS,EAAEnmC,EAAEomC,SAASjrC,EAAEwS,EAAE,EAAEA,EAAEqB,EAAErB,IAAI,IAAIuB,EAAE,EAAEvB,IAAI3N,EAAEkmC,OAAOlmC,EAAEmmC,UAAU1e,EAAE9Z,EAAE3N,EAAEqmC,MAAM14B,GAAG,GAAGuB,EAAE,EAAEvB,EAAE,GAAG,EAAE,KAAK3N,EAAEmmC,SAAS,GAAGj3B,EAAE,GAAGrX,EAAEmI,EAAEkmC,OAAOlmC,EAAEmmC,UAAU1e,EAAE,IAAIA,EAAE,IAAI,EAAEznB,EAAEqmC,MAAMxuC,GAAG,EAAEmI,EAAEymC,UAAUjf,IAAIxnB,EAAE0mC,YAAYvoC,EAAE,EAAEtG,EAAE,IAAI,IAAI6vB,EAAEijB,SAASljB,EAAE9Z,EAAE3N,EAAEmmC,UAAU,EAAE,GAAGx4B,EAAEA,IAAIm5B,EAAE9mC,EAAEkP,EAAEvB,GAAG,IAAI9V,EAAEmX,EAAErB,EAAE3N,EAAEkmC,KAAK,GAAGlmC,EAAEkmC,KAAK,GAAGlmC,EAAEkmC,KAAKlmC,EAAEmmC,YAAYW,EAAE9mC,EAAEkP,EAAE,GAAG2Y,EAAE7nB,EAAEkmC,KAAK,GAAGlmC,EAAEkmC,OAAOlmC,EAAEomC,UAAUz4B,EAAE3N,EAAEkmC,OAAOlmC,EAAEomC,UAAUve,EAAE3Y,EAAE,EAAErX,GAAGqX,EAAE,EAAEvB,GAAGuB,EAAE,EAAE2Y,GAAG7nB,EAAEqmC,MAAMxuC,IAAImI,EAAEqmC,MAAM14B,IAAI3N,EAAEqmC,MAAMxe,GAAG7nB,EAAEqmC,MAAM14B,GAAG3N,EAAEqmC,MAAMxe,IAAI,EAAE3Y,EAAE,EAAEvB,EAAE,GAAGuB,EAAE,EAAE2Y,EAAE,GAAGhwB,EAAEmI,EAAEkmC,KAAK,GAAGruC,IAAIivC,EAAE9mC,EAAEkP,EAAE,GAAG,GAAGlP,EAAEmmC,WAAWnmC,EAAEkmC,OAAOlmC,EAAEomC,UAAUpmC,EAAEkmC,KAAK,GAAG,SAASlmC,EAAE0nB,GAAG,IAAI/Z,EAAEka,EAAEhwB,EAAEqX,EAAE/Q,EAAEqpB,EAAExY,EAAE0Y,EAAEgjB,SAASjjB,EAAEC,EAAEijB,SAAS/iB,EAAEF,EAAEkjB,UAAUR,YAAYliB,EAAER,EAAEkjB,UAAUH,UAAU/8B,EAAEga,EAAEkjB,UAAUP,WAAW/8B,EAAEoa,EAAEkjB,UAAUN,WAAWtiB,EAAEN,EAAEkjB,UAAUJ,WAAWv7B,EAAE,EAAE,IAAIC,EAAE,EAAEA,GAAG4c,EAAE5c,IAAIlP,EAAEimC,SAAS/2B,GAAG,EAAE,IAAIF,EAAE,EAAEhP,EAAEkmC,KAAKlmC,EAAEomC,UAAU,GAAG,EAAEz4B,EAAE3N,EAAEomC,SAAS,EAAEz4B,EAAExS,EAAEwS,IAAIqa,GAAG9Y,EAAEF,EAAE,EAAEA,EAAE,GAAG6Y,EAAE7nB,EAAEkmC,KAAKv4B,IAAI,GAAG,GAAG,KAAKuB,EAAE8Y,EAAE/Y,KAAKD,EAAE,EAAE6Y,EAAE,GAAG3Y,EAAEuY,EAAEI,IAAI7nB,EAAEimC,SAAS/2B,KAAK/Q,EAAE,EAAEmP,GAAGua,IAAI1pB,EAAEuP,EAAEma,EAAEva,IAAIka,EAAExY,EAAE,EAAE6Y,GAAG7nB,EAAEymC,SAASjf,GAAGtY,EAAE/Q,GAAG+pB,IAAIloB,EAAE0mC,YAAYlf,GAAGI,EAAE,EAAEC,EAAE,GAAG1pB,KAAK,GAAG,IAAI8Q,EAAE,CAAC,EAAE,CAAC,IAAIC,EAAE8Y,EAAE,EAAE,IAAIhoB,EAAEimC,SAAS/2B,IAAIA,IAAIlP,EAAEimC,SAAS/2B,KAAKlP,EAAEimC,SAAS/2B,EAAE,IAAI,EAAElP,EAAEimC,SAASje,KAAK/Y,GAAG,QAAQ,EAAEA,GAAG,IAAIC,EAAE8Y,EAAE,IAAI9Y,EAAEA,IAAI,IAAI2Y,EAAE7nB,EAAEimC,SAAS/2B,GAAG,IAAI2Y,GAAGJ,GAAG5vB,EAAEmI,EAAEkmC,OAAOv4B,MAAMqB,EAAE,EAAEnX,EAAE,KAAKqX,IAAIlP,EAAEymC,UAAUv3B,EAAEF,EAAE,EAAEnX,EAAE,IAAImX,EAAE,EAAEnX,GAAGmX,EAAE,EAAEnX,EAAE,GAAGqX,GAAG2Y,MAAjqB,CAAwqB7nB,EAAE0nB,GAAG5X,EAAEZ,EAAEuY,EAAEznB,EAAEimC,UAAU,SAASp2B,EAAE7P,EAAE0nB,EAAE/Z,GAAG,IAAIka,EAAEhwB,EAAEqX,GAAG,EAAE/Q,EAAEupB,EAAE,GAAGF,EAAE,EAAExY,EAAE,EAAEyY,EAAE,EAAE,IAAI,IAAItpB,IAAI6Q,EAAE,IAAIyY,EAAE,GAAGC,EAAE,GAAG/Z,EAAE,GAAG,GAAG,MAAMka,EAAE,EAAEA,GAAGla,EAAEka,IAAIhwB,EAAEsG,EAAEA,EAAEupB,EAAE,GAAGG,EAAE,GAAG,KAAKL,EAAExY,GAAGnX,IAAIsG,IAAIqpB,EAAEC,EAAEznB,EAAE6lC,QAAQ,EAAEhuC,IAAI2vB,EAAE,IAAI3vB,GAAGA,IAAIqX,GAAGlP,EAAE6lC,QAAQ,EAAEhuC,KAAKmI,EAAE6lC,QAAQ,EAAEznC,MAAMopB,GAAG,GAAGxnB,EAAE6lC,QAAQ,EAAE9Z,KAAK/rB,EAAE6lC,QAAQ,EAAEt3B,KAAKW,EAAErX,EAAE4vB,GAAGD,EAAE,KAAKrpB,GAAG6Q,EAAE,IAAI,GAAGnX,IAAIsG,GAAG6Q,EAAE,EAAE,IAAIA,EAAE,EAAE,IAAI,SAAS67B,EAAE7qC,EAAE0nB,EAAE/Z,GAAG,IAAIka,EAAEhwB,EAAEqX,GAAG,EAAE/Q,EAAEupB,EAAE,GAAGF,EAAE,EAAExY,EAAE,EAAEyY,EAAE,EAAE,IAAI,IAAItpB,IAAI6Q,EAAE,IAAIyY,EAAE,GAAGI,EAAE,EAAEA,GAAGla,EAAEka,IAAI,GAAGhwB,EAAEsG,EAAEA,EAAEupB,EAAE,GAAGG,EAAE,GAAG,OAAOL,EAAExY,GAAGnX,IAAIsG,GAAG,CAAC,GAAGqpB,EAAEC,EAAE,KAAK9Y,EAAE3O,EAAEnI,EAAEmI,EAAE6lC,SAAS,KAAKre,SAAS,IAAI3vB,GAAGA,IAAIqX,IAAIP,EAAE3O,EAAEnI,EAAEmI,EAAE6lC,SAASre,KAAK7Y,EAAE3O,EAAE5B,EAAE4B,EAAE6lC,SAAStC,EAAEvjC,EAAEwnB,EAAE,EAAE,IAAIA,GAAG,IAAI7Y,EAAE3O,EAAE+rB,EAAE/rB,EAAE6lC,SAAStC,EAAEvjC,EAAEwnB,EAAE,EAAE,KAAK7Y,EAAE3O,EAAEuO,EAAEvO,EAAE6lC,SAAStC,EAAEvjC,EAAEwnB,EAAE,GAAG,IAAItY,EAAErX,EAAE4vB,GAAGD,EAAE,KAAKrpB,GAAG6Q,EAAE,IAAI,GAAGnX,IAAIsG,GAAG6Q,EAAE,EAAE,IAAIA,EAAE,EAAE,IAAI6Y,EAAE8a,GAAG,IAAImI,GAAE,EAAG,SAASC,EAAE/qC,EAAE0nB,EAAE/Z,EAAEka,GAAG0b,EAAEvjC,GAAGkP,GAAG,IAAI2Y,EAAE,EAAE,GAAG,GAAG,SAAS7nB,EAAE0nB,EAAE/Z,EAAEka,GAAGnZ,EAAE1O,GAAG6nB,IAAIyb,EAAEtjC,EAAE2N,GAAG21B,EAAEtjC,GAAG2N,IAAI9V,EAAE2oC,SAASxgC,EAAE+iC,YAAY/iC,EAAE8b,OAAO4L,EAAE/Z,EAAE3N,EAAE8iC,SAAS9iC,EAAE8iC,SAASn1B,EAAvG,CAA0G3N,EAAE0nB,EAAE/Z,GAAE,GAAIA,EAAEq5B,SAAS,SAAShnC,GAAG8qC,IAAI,WAAW,IAAI9qC,EAAE0nB,EAAE/Z,EAAEka,EAAEhwB,EAAEqX,EAAE,IAAIjU,MAAM6wB,EAAE,GAAG,IAAIjE,EAAEla,EAAE,EAAEka,EAAE1pB,EAAE,EAAE0pB,IAAI,IAAIgE,EAAEhE,GAAGla,EAAE3N,EAAE,EAAEA,EAAE,GAAGikB,EAAE4D,GAAG7nB,IAAIwrB,EAAE7d,KAAKka,EAAE,IAAI2D,EAAE7d,EAAE,GAAGka,EAAEA,EAAEhwB,EAAE,EAAEgwB,EAAE,GAAGA,IAAI,IAAI8a,EAAE9a,GAAGhwB,EAAEmI,EAAE,EAAEA,EAAE,GAAGgsB,EAAEnE,GAAG7nB,IAAI6O,EAAEhX,KAAKgwB,EAAE,IAAIhwB,IAAI,EAAEgwB,EAAEK,EAAEL,IAAI,IAAI8a,EAAE9a,GAAGhwB,GAAG,EAAEmI,EAAE,EAAEA,EAAE,GAAGgsB,EAAEnE,GAAG,EAAE7nB,IAAI6O,EAAE,IAAIhX,KAAKgwB,EAAE,IAAIH,EAAE,EAAEA,GAAGoE,EAAEpE,IAAIxY,EAAEwY,GAAG,EAAE,IAAI1nB,EAAE,EAAEA,GAAG,KAAKisB,EAAE,EAAEjsB,EAAE,GAAG,EAAEA,IAAIkP,EAAE,KAAK,KAAKlP,GAAG,KAAKisB,EAAE,EAAEjsB,EAAE,GAAG,EAAEA,IAAIkP,EAAE,KAAK,KAAKlP,GAAG,KAAKisB,EAAE,EAAEjsB,EAAE,GAAG,EAAEA,IAAIkP,EAAE,KAAK,KAAKlP,GAAG,KAAKisB,EAAE,EAAEjsB,EAAE,GAAG,EAAEA,IAAIkP,EAAE,KAAK,IAAIY,EAAEmc,EAAErE,EAAE,EAAE1Y,GAAGlP,EAAE,EAAEA,EAAEkoB,EAAEloB,IAAIksB,EAAE,EAAElsB,EAAE,GAAG,EAAEksB,EAAE,EAAElsB,GAAG8H,EAAE9H,EAAE,GAAG2rB,EAAE,IAAIiX,EAAE3W,EAAEhI,EAAEwD,EAAE,EAAEG,EAAEkE,GAAGW,EAAE,IAAImW,EAAE1W,EAAEF,EAAE,EAAE9D,EAAE4D,GAAGa,EAAE,IAAIiW,EAAE,IAAI3nC,MAAM,GAAGoU,EAAE,EAAE3B,EAAEsa,GAArgB,GAA2gB8iB,GAAE,GAAI9qC,EAAE8lC,OAAO,IAAIjD,EAAE7iC,EAAE2lC,UAAUha,GAAG3rB,EAAE+lC,OAAO,IAAIlD,EAAE7iC,EAAE4lC,UAAUnZ,GAAGzsB,EAAEgmC,QAAQ,IAAInD,EAAE7iC,EAAE6lC,QAAQlZ,GAAG3sB,EAAE4mC,OAAO,EAAE5mC,EAAE6mC,SAAS,EAAEhC,EAAE7kC,IAAI2N,EAAE+5B,iBAAiBqD,EAAEp9B,EAAEw1B,gBAAgB,SAASnjC,EAAE0nB,EAAE/Z,EAAEka,GAAG,IAAIhwB,EAAEqX,EAAE/Q,EAAE,EAAE,EAAE6B,EAAEorB,OAAO,IAAIprB,EAAEk+B,KAAK6I,YAAY/mC,EAAEk+B,KAAK6I,UAAU,SAAS/mC,GAAG,IAAI0nB,EAAE/Z,EAAE,WAAW,IAAI+Z,EAAE,EAAEA,GAAG,GAAGA,IAAI/Z,KAAK,EAAE,GAAG,EAAEA,GAAG,IAAI3N,EAAE2lC,UAAU,EAAEje,GAAG,OAAOF,EAAE,GAAG,IAAIxnB,EAAE2lC,UAAU,KAAK,IAAI3lC,EAAE2lC,UAAU,KAAK,IAAI3lC,EAAE2lC,UAAU,IAAI,OAAO32B,EAAE,IAAI0Y,EAAE,GAAGA,EAAED,EAAEC,IAAI,GAAG,IAAI1nB,EAAE2lC,UAAU,EAAEje,GAAG,OAAO1Y,EAAE,OAAOwY,EAAjO,CAAoOxnB,IAAIknC,EAAElnC,EAAEA,EAAE8lC,QAAQoB,EAAElnC,EAAEA,EAAE+lC,QAAQ5nC,EAAE,SAAS6B,GAAG,IAAI0nB,EAAE,IAAI7X,EAAE7P,EAAEA,EAAE2lC,UAAU3lC,EAAE8lC,OAAO6E,UAAU96B,EAAE7P,EAAEA,EAAE4lC,UAAU5lC,EAAE+lC,OAAO4E,UAAUzD,EAAElnC,EAAEA,EAAEgmC,SAASte,EAAEha,EAAE,EAAE,GAAGga,GAAG,IAAI1nB,EAAE6lC,QAAQ,EAAE12B,EAAEuY,GAAG,GAAGA,KAAK,OAAO1nB,EAAEymC,SAAS,GAAG/e,EAAE,GAAG,EAAE,EAAE,EAAEA,EAApL,CAAuL1nB,GAAGnI,EAAEmI,EAAEymC,QAAQ,EAAE,IAAI,GAAGv3B,EAAElP,EAAE0mC,WAAW,EAAE,IAAI,IAAI7uC,IAAIA,EAAEqX,IAAIrX,EAAEqX,EAAEvB,EAAE,EAAEA,EAAE,GAAG9V,IAAI,IAAI6vB,EAAEqjB,EAAE/qC,EAAE0nB,EAAE/Z,EAAEka,GAAG,IAAI7nB,EAAE49B,UAAU1uB,IAAIrX,GAAG0rC,EAAEvjC,EAAE,GAAG6nB,EAAE,EAAE,GAAG,GAAGof,EAAEjnC,EAAEisB,EAAEC,KAAKqX,EAAEvjC,EAAE,GAAG6nB,EAAE,EAAE,GAAG,GAAG,SAAS7nB,EAAE0nB,EAAE/Z,EAAEka,GAAG,IAAIhwB,EAAE,IAAI0rC,EAAEvjC,EAAE0nB,EAAE,IAAI,GAAG6b,EAAEvjC,EAAE2N,EAAE,EAAE,GAAG41B,EAAEvjC,EAAE6nB,EAAE,EAAE,GAAGhwB,EAAE,EAAEA,EAAEgwB,EAAEhwB,IAAI0rC,EAAEvjC,EAAEA,EAAE6lC,QAAQ,EAAE12B,EAAEtX,GAAG,GAAG,GAAGgzC,EAAE7qC,EAAEA,EAAE2lC,UAAUje,EAAE,GAAGmjB,EAAE7qC,EAAEA,EAAE4lC,UAAUj4B,EAAE,GAA7I,CAAiJ3N,EAAEA,EAAE8lC,OAAO6E,SAAS,EAAE3qC,EAAE+lC,OAAO4E,SAAS,EAAExsC,EAAE,GAAG8oC,EAAEjnC,EAAEA,EAAE2lC,UAAU3lC,EAAE4lC,YAAYf,EAAE7kC,GAAG6nB,GAAGnZ,EAAE1O,IAAI2N,EAAE+2B,UAAU,SAAS1kC,EAAE0nB,EAAE/Z,GAAG,OAAO3N,EAAE+iC,YAAY/iC,EAAEwmC,MAAM,EAAExmC,EAAE4kC,UAAUld,IAAI,EAAE,IAAI1nB,EAAE+iC,YAAY/iC,EAAEwmC,MAAM,EAAExmC,EAAE4kC,SAAS,GAAG,IAAIld,EAAE1nB,EAAE+iC,YAAY/iC,EAAEsmC,MAAMtmC,EAAE4kC,UAAU,IAAIj3B,EAAE3N,EAAE4kC,WAAW,IAAIld,EAAE1nB,EAAE2lC,UAAU,EAAEh4B,MAAM3N,EAAE2mC,UAAUjf,IAAI1nB,EAAE2lC,UAAU,GAAGna,EAAE7d,GAAG8Z,EAAE,MAAMznB,EAAE4lC,UAAU,EAAE1C,EAAExb,OAAO1nB,EAAE4kC,WAAW5kC,EAAEumC,YAAY,GAAG54B,EAAE85B,UAAU,SAASznC,GAAGujC,EAAEvjC,EAAE,EAAE,GAAG2O,EAAE3O,EAAEiP,EAAEgd,GAAG,SAASjsB,GAAG,KAAKA,EAAE6mC,UAAUvD,EAAEtjC,EAAEA,EAAE4mC,QAAQ5mC,EAAE4mC,OAAO,EAAE5mC,EAAE6mC,SAAS,GAAG,GAAG7mC,EAAE6mC,WAAW7mC,EAAE+iC,YAAY/iC,EAAE8iC,WAAW,IAAI9iC,EAAE4mC,OAAO5mC,EAAE4mC,SAAS,EAAE5mC,EAAE6mC,UAAU,GAArJ,CAAyJ7mC,KAAK,CAAC,kBAAkB,KAAKgrC,GAAG,CAAC,SAAShrC,EAAE0nB,EAAE/Z,GAAG,aAAa+Z,EAAEH,QAAQ,WAAWnrB,KAAKuiC,MAAM,KAAKviC,KAAKwiC,QAAQ,EAAExiC,KAAKyiC,SAAS,EAAEziC,KAAKgoC,SAAS,EAAEhoC,KAAK0iC,OAAO,KAAK1iC,KAAK4iC,SAAS,EAAE5iC,KAAK+hC,UAAU,EAAE/hC,KAAK6mC,UAAU,EAAE7mC,KAAK2hC,IAAI,GAAG3hC,KAAKkgC,MAAM,KAAKlgC,KAAK2qC,UAAU,EAAE3qC,KAAK+nC,MAAM,IAAI,IAAI8G,GAAG,CAAC,SAASjrC,EAAE0nB,EAAE/Z,IAAG,SAAU3N,IAAI,SAAS2N,EAAEka,GAAG,aAAa,IAAIla,EAAEwpB,aAAa,CAAC,IAAIt/B,EAAEqX,EAAEwY,EAAEvpB,EAAEqpB,EAAE,EAAExY,EAAE,GAAGyY,GAAE,EAAGG,EAAEja,EAAEwtB,SAASn7B,EAAEpG,OAAOsxC,gBAAgBtxC,OAAOsxC,eAAev9B,GAAG3N,EAAEA,GAAGA,EAAE87B,WAAW97B,EAAE2N,EAAE9V,EAAE,qBAAqB,GAAGkW,SAASyE,KAAK7E,EAAEw9B,SAAS,SAASnrC,GAAGmrC,EAAQC,UAAS,WAAW19B,EAAE1N,OAAM,WAAW,GAAG2N,EAAEuuB,cAAcvuB,EAAE09B,cAAc,CAAC,IAAIrrC,GAAE,EAAG0nB,EAAE/Z,EAAEquB,UAAU,OAAOruB,EAAEquB,UAAU,WAAWh8B,GAAE,GAAI2N,EAAEuuB,YAAY,GAAG,KAAKvuB,EAAEquB,UAAUtU,EAAE1nB,GAA9I,IAAqJ7B,EAAE,gBAAgByP,KAAKC,SAAS,IAAIF,EAAE29B,iBAAiB39B,EAAE29B,iBAAiB,UAAUh+B,GAAE,GAAIK,EAAE49B,YAAY,YAAYj+B,GAAG,SAAStN,GAAG2N,EAAEuuB,YAAY/9B,EAAE6B,EAAE,OAAO2N,EAAE4tB,iBAAiB7T,EAAE,IAAI6T,gBAAgBQ,MAAMC,UAAU,SAASh8B,GAAG0N,EAAE1N,EAAEQ,OAAO,SAASR,GAAG0nB,EAAEuU,MAAMC,YAAYl8B,KAAK4nB,GAAG,uBAAuBA,EAAE4T,cAAc,WAAWtsB,EAAE0Y,EAAEgU,gBAAgB,SAAS57B,GAAG,IAAI0nB,EAAEE,EAAE4T,cAAc,UAAU9T,EAAE+T,mBAAmB,WAAW/tB,EAAE1N,GAAG0nB,EAAE+T,mBAAmB,KAAKvsB,EAAEysB,YAAYjU,GAAGA,EAAE,MAAMxY,EAAE2sB,YAAYnU,KAAK,SAAS1nB,GAAG87B,WAAWpuB,EAAE,EAAE1N,IAAIA,EAAEm3B,aAAa,SAASn3B,GAAG,mBAAmBA,IAAIA,EAAE,IAAIwrC,SAAS,GAAGxrC,IAAI,IAAI,IAAI0nB,EAAE,IAAIzsB,MAAMqB,UAAUtG,OAAO,GAAG2X,EAAE,EAAEA,EAAE+Z,EAAE1xB,OAAO2X,IAAI+Z,EAAE/Z,GAAGrR,UAAUqR,EAAE,GAAG,IAAIka,EAAE,CAACziB,SAASpF,EAAEyrC,KAAK/jB,GAAG,OAAO1Y,EAAEwY,GAAGK,EAAEhwB,EAAE2vB,GAAGA,KAAKxnB,EAAE0rC,eAAexjB,EAAE,SAASA,EAAEloB,UAAUgP,EAAEhP,GAAG,SAAS0N,EAAE1N,GAAG,GAAGynB,EAAEqU,WAAWpuB,EAAE,EAAE1N,OAAO,CAAC,IAAI0nB,EAAE1Y,EAAEhP,GAAG,GAAG0nB,EAAE,CAACD,GAAE,EAAG,KAAK,SAASznB,GAAG,IAAI0nB,EAAE1nB,EAAEoF,SAASuI,EAAE3N,EAAEyrC,KAAK,OAAO99B,EAAE3X,QAAQ,KAAK,EAAE0xB,IAAI,MAAM,KAAK,EAAEA,EAAE/Z,EAAE,IAAI,MAAM,KAAK,EAAE+Z,EAAE/Z,EAAE,GAAGA,EAAE,IAAI,MAAM,KAAK,EAAE+Z,EAAE/Z,EAAE,GAAGA,EAAE,GAAGA,EAAE,IAAI,MAAM,QAAQ+Z,EAAExsB,MAAM2sB,EAAEla,IAAxK,CAA6K+Z,GAAG,QAAQQ,EAAEloB,GAAGynB,GAAE,KAAM,SAASna,EAAEtN,GAAGA,EAAE2rC,SAASh+B,GAAG,iBAAiB3N,EAAEQ,MAAM,IAAIR,EAAEQ,KAAK9F,QAAQyD,IAAIuP,GAAG1N,EAAEQ,KAAK4P,MAAMjS,EAAEnI,UAApgD,CAA+gD,oBAAoB8/B,UAAK,IAAS91B,EAAE5D,KAAK4D,EAAE81B,QAAQtjB,KAAKpW,KAAK,oBAAoB+/B,EAAOA,EAAO,oBAAoBrG,KAAKA,KAAK,oBAAoBha,OAAOA,OAAO,KAAK,KAAK,GAAG,CAAC,IAApr9F,CAAyr9F,S;;;;;;;;;;;;GCEx99F,IAAI8vB,EAAmBxvC,MAAQA,KAAKwvC,iBAAoB,SAAUC,GAC9D,OAAQA,GAAOA,EAAIC,WAAcD,EAAM,CAAE,QAAWA,IAExDjyC,OAAOC,eAAe0tB,EAAS,aAAc,CAAEtpB,OAAO,IACtDspB,EAAQte,SAAWse,EAAQwkB,YAAcxkB,EAAQykB,QAAUzkB,EAAQ0kB,qBAAuB1kB,EAAQ2kB,OAAS3kB,EAAQ4kB,OAAS5kB,EAAQ7e,eAAiB6e,EAAQ5e,aAAe4e,EAAQ6kB,6BAA+B7kB,EAAQpe,YAAcoe,EAAQ8kB,gBAAkB9kB,EAAQ3e,WAAa2e,EAAQ+kB,OAAS/kB,EAAQglB,WAAahlB,EAAQilB,SAAWjlB,EAAQklB,OAASllB,EAAQ9e,YAAc8e,EAAQmlB,mBAAqBnlB,EAAQolB,cAAgBplB,EAAQqlB,8BAAgCrlB,EAAQslB,qBAAuBtlB,EAAQulB,gBAAkBvlB,EAAQwlB,cAAgBxlB,EAAQylB,QAAUzlB,EAAQ0lB,cAAgB1lB,EAAQ3d,SAAW2d,EAAQ2lB,YAAc3lB,EAAQ4lB,eAAiB5lB,EAAQ/e,UAAY+e,EAAQ6lB,4BAA8B7lB,EAAQ8lB,uBAAyB9lB,EAAQ+lB,aAAe/lB,EAAQgmB,kBAAoBhmB,EAAQimB,eAAiBjmB,EAAQkmB,cAAgBlmB,EAAQmmB,eAAiBnmB,EAAQomB,qBAAuBpmB,EAAQqmB,oBAAsBrmB,EAAQ7d,eAAiB6d,EAAQ9d,gBAAkB8d,EAAQhf,SAAWgf,EAAQsmB,YAActmB,EAAQumB,mBAAqBvmB,EAAQwmB,SAAWxmB,EAAQymB,SAAWzmB,EAAQ0mB,iBAAmB1mB,EAAQ2mB,KAAO3mB,EAAQ4mB,YAAc5mB,EAAQ6mB,YAAc7mB,EAAQjf,gBAAa,EACjrCif,EAAQ/d,cAAgB+d,EAAQ8mB,iBAAmB9mB,EAAQre,YAAcqe,EAAQ+mB,cAAgB/mB,EAAQgnB,UAAYhnB,EAAQinB,KAAOjnB,EAAQlf,QAAUkf,EAAQknB,eAAiBlnB,EAAQve,UAAYue,EAAQle,mBAAqBke,EAAQmnB,eAAiBnnB,EAAQonB,UAAYpnB,EAAQqnB,yBAA2BrnB,EAAQsnB,OAAStnB,EAAQ5d,YAAc4d,EAAQunB,cAAgBvnB,EAAQ1e,YAAc0e,EAAQwnB,cAAgBxnB,EAAQhe,eAAiBge,EAAQynB,mBAAqBznB,EAAQje,YAAcie,EAAQ0nB,WAAa1nB,EAAQ2nB,QAAU3nB,EAAQ4nB,cAAgB5nB,EAAQze,SAAWye,EAAQxe,QAAUwe,EAAQ6nB,wBAA0B7nB,EAAQ8nB,SAAW9nB,EAAQ+nB,cAAgB/nB,EAAQgoB,KAAOhoB,EAAQne,oBAAiB,EAClsB,IAAIomC,EAAc5D,EAAgB,EAAQ,SACtC6D,EAAU,EAAQ,QAClBC,EAAU,EAAQ,QAClBpnC,EAAamnC,EAAQE,gBAAgB,CACrCC,MAAO,CACHC,UAAW95C,OACX+5C,mBAAoB33B,QACpB43B,sBAAuB53B,QACvB63B,oBAAqB73B,QACrB83B,yBAA0B93B,QAC1B+3B,aAAc/3B,QACdg4B,gBAAiBh4B,QACjBi4B,gBAAiBj4B,QACjBk4B,cAAez2C,OACf02C,aAAc12C,OACd22C,oBAAqBp4B,QACrBq4B,eAAgBl/B,OAChBm/B,mBAAoB16C,OACpB6kB,QAAS3f,MACTy1C,YAAa,CAACp/B,OAAQvb,QACtB46C,iBAAkBnF,SAClBoF,oBAAqBpF,SACrBqF,gBAAiB,GACjBr6B,WAAY,GACZs6B,wBAAyB/6C,OACzBg7C,SAAU54B,QACV64B,QAASp3C,OACTq3C,YAAar3C,OACbs3C,gBAAiB/4B,QACjBg5B,OAAQv3C,OACRw3C,cAAex3C,OACfy3C,mBAAoBz3C,OACpB03C,YAAa13C,OACb23C,UAAW33C,OACX43C,kBAAmB,CAACr5B,QAASpiB,QAC7B0d,YAAa,CAACxY,MAAOuwC,SAAUz1C,QAC/B07C,mBAAoBngC,OACpBogC,kBAAmBv5B,QACnBw5B,gBAAiBrgC,OACjBsgC,cAAe,GACfC,kBAAmB15B,QACnB25B,SAAUl4C,OACVm4C,WAAYn4C,OACZ4oB,aAAc5oB,OACdqf,OAAQ,CAACuyB,SAAUl6B,OAAQvb,QAC3Bi8C,iBAAkB75B,QAClB85B,KAAMl8C,OACNm8C,kBAAmB/5B,QACnBg6B,mBAAoBv4C,OACpBw4C,QAAS,CAACn3C,MAAOlF,QACjBs8C,UAAWz4C,OACX04C,aAAc14C,OACd24C,WAAYx8C,OACZy8C,6BAA8BhH,SAC9BiH,YAAajH,SACbkH,eAAgBlH,SAChBmH,mBAAoBnH,SACpBoH,eAAgBpH,SAChBqH,eAAgBrH,SAChBsH,uBAAwBtH,SACxBuH,oBAAqBvH,SACrBwH,YAAaxH,SACbyH,eAAgBzH,SAChB0H,gBAAiB1H,SACjB2H,eAAgB3H,SAChB4H,iBAAkB5H,SAClB6H,kBAAmB7H,SACnB8H,WAAY9H,SACZ+H,YAAa/H,SACbgI,aAAchI,SACdiI,qBAAsBjI,SACtBkI,sBAAuBlI,SACvBmI,oBAAqBnI,SACrBoI,qBAAsBpI,SACtBqI,cAAerI,SACfsI,aAActI,SACduI,UAAWvI,SACXwI,gBAAiBxI,SACjByI,WAAYzI,SACZ0I,eAAgB1I,SAChB2I,gBAAiB3I,SACjB4I,cAAe5I,SACf6I,cAAe7I,SACf8I,eAAgB9I,SAChB+I,cAAe/I,SACfgJ,eAAgBhJ,SAChBiJ,cAAejJ,SACfkJ,aAAclJ,SACdmJ,cAAenJ,SACfoJ,aAAcpJ,SACdqJ,cAAerJ,SACfsJ,gBAAiBtJ,SACjBuJ,QAASvJ,SACTwJ,SAAUxJ,SACVyJ,mBAAoBzJ,SACpB0J,mBAAoB1J,SACpB2J,MAAOv7C,OACPw7C,OAAQx7C,OACR4iB,iBAAkB,CAACrE,QAASve,OAAQ7D,QACpCs/C,YAAal9B,QACbm9B,mBAAoBn9B,QACpBo9B,sBAAuBp9B,QACvBq9B,YAAa57C,OACb67C,YAAa,GACbh9B,WAAYN,QACZu9B,UAAW97C,OACX+7C,YAAa/7C,OACbg8C,gBAAiB36C,MACjB46C,UAAWj8C,OACXk8C,gBAAiB,CAAC76C,MAAOuwC,SAAUz1C,QACnCggD,YAAa59B,QACb69B,kBAAmB79B,QACnB89B,gBAAiB99B,QACjB+9B,aAAc/9B,QACdg+B,uBAAwBl7C,MACxBm7C,QAASx8C,OACTy8C,aAAcz8C,OACd08C,QAAS18C,OACT28C,uBAAwBp+B,QACxBq+B,SAAUllC,OACVmlC,QAAS78C,OACT88C,qBAAsBv+B,QACtBw+B,QAASx+B,QACT1Q,MAAO,CAAC+jC,SAAUl6B,OAAQvb,QAC1B6gD,gBAAiBz+B,SAErB0+B,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,mBAAoB,KACpB,4BAA6B,KAC7B,+BAAgC,KAChC,6BAA8B,KAC9B,kCAAmC,KACnC,sBAAuB,KACvB,yBAA0B,KAC1B,yBAA0B,KAC1B,uBAAwB,KACxB,sBAAuB,KACvB,6BAA8B,KAC9B,wBAAyB,KACzB,4BAA6B,KAC7B,iBAAkB,KAClB,qBAAsB,KACtB,0BAA2B,KAC3B,6BAA8B,KAC9B,yBAA0B,KAC1B,oBAAqB,KACrB,iCAAkC,KAClC,kBAAmB,KACnB,iBAAkB,KAClB,qBAAsB,KACtB,yBAA0B,KAC1B,gBAAiB,KACjB,uBAAwB,KACxB,4BAA6B,KAC7B,qBAAsB,KACtB,mBAAoB,KACpB,2BAA4B,KAC5B,qBAAsB,KACtB,4BAA6B,KAC7B,2BAA4B,KAC5B,yBAA0B,KAC1B,uBAAwB,KACxB,2BAA4B,KAC5B,kBAAmB,KACnB,oBAAqB,KACrB,sBAAuB,KACvB,gBAAiB,KACjB,0BAA2B,KAC3B,cAAe,KACf,2BAA4B,KAC5B,4BAA6B,KAC7B,iBAAkB,KAClB,mBAAoB,KACpB,sBAAuB,KACvB,oBAAqB,KACrB,sCAAuC,KACvC,qBAAsB,KACtB,wBAAyB,KACzB,4BAA6B,KAC7B,wBAAyB,KACzB,wBAAyB,KACzB,gCAAiC,KACjC,6BAA8B,KAC9B,qBAAsB,KACtB,wBAAyB,KACzB,yBAA0B,KAC1B,wBAAyB,KACzB,0BAA2B,KAC3B,2BAA4B,KAC5B,oBAAqB,KACrB,qBAAsB,KACtB,sBAAuB,KACvB,8BAA+B,KAC/B,+BAAgC,KAChC,6BAA8B,KAC9B,8BAA+B,KAC/B,uBAAwB,KACxB,sBAAuB,KACvB,mBAAoB,KACpB,yBAA0B,KAC1B,oBAAqB,KACrB,wBAAyB,KACzB,yBAA0B,KAC1B,uBAAwB,KACxB,uBAAwB,KACxB,wBAAyB,KACzB,uBAAwB,KACxB,wBAAyB,KACzB,uBAAwB,KACxB,sBAAuB,KACvB,uBAAwB,KACxB,sBAAuB,KACvB,uBAAwB,KACxB,yBAA0B,KAC1B,iBAAkB,KAClB,kBAAmB,KACnB,4BAA6B,KAC7B,4BAA6B,KAC7B,eAAgB,KAChB,gBAAiB,KACjB,0BAA2B,KAC3B,qBAAsB,KACtB,4BAA6B,KAC7B,+BAAgC,KAChC,qBAAsB,KACtB,qBAAsB,KACtB,oBAAqB,KACrB,mBAAoB,KACpB,qBAAsB,KACtB,yBAA0B,KAC1B,mBAAoB,KACpB,yBAA0B,KAC1B,qBAAsB,KACtB,2BAA4B,KAC5B,yBAA0B,KAC1B,sBAAuB,KACvB,gCAAiC,KACjC,iBAAkB,KAClB,sBAAuB,KACvB,iBAAkB,KAClB,gCAAiC,KACjC,kBAAmB,KACnB,iBAAkB,KAClB,8BAA+B,KAC/B,iBAAkB,KAClB,eAAgB,KAChB,yBAA0B,MAE9BxsC,SAAU,CACNG,SAAU,WACN,OAAOpO,KAAK06C,aAGpBC,aAAc,WACV36C,KAAK46C,cAAgBxH,EAAYyH,QACjC76C,KAAK86C,oBAAqB,EAC1B96C,KAAK+6C,mBAAqB,CACtBxgC,OAAQ,CAAEygC,kBAAkB,EAAMC,WAAY,WAC9ChH,cAAe,CAAE+G,kBAAkB,EAAOC,WAAY,iBACtD/G,aAAc,CAAE8G,kBAAkB,EAAOC,WAAY,gBACrDC,qBAAsB,CAAEF,kBAAkB,EAAOC,WAAY,gBAC7DrG,QAAS,CAAEoG,kBAAkB,EAAOC,WAAY,WAChDlG,OAAQ,CAAEiG,kBAAkB,EAAOC,WAAY,UAC/CjG,cAAe,CAAEgG,kBAAkB,EAAOC,WAAY,iBACtDhG,mBAAoB,CAAE+F,kBAAkB,EAAOC,WAAY,sBAC3D/F,YAAa,CAAE8F,kBAAkB,EAAOC,WAAY,eACpD9F,UAAW,CAAE6F,kBAAkB,EAAOC,WAAY,aAClDvF,SAAU,CAAEsF,kBAAkB,EAAOC,WAAY,YACjDtF,WAAY,CAAEqF,kBAAkB,EAAOC,WAAY,cACnD70B,aAAc,CAAE40B,kBAAkB,EAAOC,WAAY,gBACrDlF,mBAAoB,CAAEiF,kBAAkB,EAAOC,WAAY,sBAC3DhF,UAAW,CAAE+E,kBAAkB,EAAOC,WAAY,aAClD/E,aAAc,CAAE8E,kBAAkB,EAAOC,WAAY,gBACrDlC,MAAO,CAAEiC,kBAAkB,EAAOC,WAAY,SAC9CjC,OAAQ,CAAEgC,kBAAkB,EAAOC,WAAY,UAC/C76B,iBAAkB,CAAE46B,kBAAkB,EAAOC,WAAY,oBACzD7B,YAAa,CAAE4B,kBAAkB,EAAOC,WAAY,eACpD3B,UAAW,CAAE0B,kBAAkB,EAAOC,WAAY,aAClD1B,YAAa,CAAEyB,kBAAkB,EAAOC,WAAY,eACpDxB,UAAW,CAAEuB,kBAAkB,EAAOC,WAAY,aAClDlB,uBAAwB,CAAEiB,kBAAkB,EAAMC,WAAY,0BAC9DjB,QAAS,CAAEgB,kBAAkB,EAAOC,WAAY,WAChDhB,aAAc,CAAEe,kBAAkB,EAAOC,WAAY,gBACrDf,QAAS,CAAEc,kBAAkB,EAAOC,WAAY,WAChDZ,QAAS,CAAEW,kBAAkB,EAAOC,WAAY,eAI5D9vB,EAAQjf,WAAaA,EACrB,IAAI8lC,EAAcsB,EAAQ6H,6BAA6B,CACnDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,cAAe,KACf,cAAe,MAEnBjH,MAAO,CACH4H,KAAM,CAAC59C,OAAQ0X,OAAQvb,QACvB0hD,KAAM,CAAC79C,OAAQ0X,OAAQvb,WAG/BwxB,EAAQ6mB,YAAcA,EACtBA,EAAYsJ,aAAe,YAC3BtJ,EAAY+I,mBAAqB,CAC7BK,KAAM,CAAEJ,kBAAkB,EAAOC,WAAY,QAC7CI,KAAM,CAAEL,kBAAkB,EAAOC,WAAY,SAEjD,IAAIlJ,EAAcuB,EAAQ6H,6BAA6B,CACnDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,0BAA2B,KAC3B,iBAAkB,KAClB,oBAAqB,KACrB,cAAe,KACf,4BAA6B,MAEjCjH,MAAO,CACH+H,iBAAkBx/B,QAClBhD,QAASpf,OACT6hD,WAAYz/B,QACZtd,KAAM9E,OACN8hD,mBAAoBrM,YAG5BjkB,EAAQ4mB,YAAcA,EACtBA,EAAYuJ,aAAe,kBAC3BvJ,EAAY2J,oBAAqB,EACjC3J,EAAY4J,kBAAoB,CAC5Bl9C,KAAM,SAEV,IAAIqzC,EAAOwB,EAAQ6H,6BAA6B,CAC5CV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,WAAY,KACZ,WAAY,MAEhBjH,MAAO,CACHvgC,EAAGtZ,OACHwY,EAAGxY,UAGXwxB,EAAQ2mB,KAAOA,EACfA,EAAKwJ,aAAe,KACpB,IAAIzJ,EAAmByB,EAAQ6H,6BAA6B,CACxDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,WAAY,KACZ,WAAY,MAEhBjH,MAAO,CACHvgC,EAAGiC,OACH/C,EAAG+C,UAGXiW,EAAQ0mB,iBAAmBA,EAC3BA,EAAiByJ,aAAe,iBAChC,IAAI1J,EAAW0B,EAAQ6H,6BAA6B,CAChDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,kBAAmB,KACnB,kBAAmB,KACnB,cAAe,KACf,cAAe,KACf,cAAe,KACf,iBAAkB,KAClB,kBAAmB,KACnB,cAAe,KACf,iBAAkB,MAEtBjH,MAAO,CACHoI,SAAUjiD,OACVg7C,SAAU,CAAC54B,QAASqzB,UACpByG,KAAMl8C,OACNkiD,KAAMliD,OACNiI,KAAMjI,OACNmiD,QAAS1M,SACT2M,SAAU,GACVx/C,KAAM5C,OACN4gD,QAAS,CAACx+B,QAASqzB,aAG3BjkB,EAAQymB,SAAWA,EACnBA,EAAS0J,aAAe,UACxB1J,EAAS8J,oBAAqB,EAC9B,IAAI/J,EAAW2B,EAAQ6H,6BAA6B,CAChDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,cAAe,KACf,wBAAyB,KACzB,yBAA0B,KAC1B,cAAe,MAEnBjH,MAAO,CACHpvC,KAAM,GACN43C,eAAgB,GAChBC,gBAAiB,GACjBx9C,KAAM9E,UAGdwxB,EAAQwmB,SAAWA,EACnBA,EAAS2J,aAAe,UACxB3J,EAAS+J,oBAAqB,EAC9B,IAAIhK,EAAqB4B,EAAQ6H,6BAA6B,CAC1DV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,YAAa,KACb,YAAa,KACb,YAAa,KACb,YAAa,MAEjBjH,MAAO,CACHz8C,GAAIme,OACJgnC,GAAIhnC,OACJinC,GAAIjnC,OACJknC,GAAIlnC,UAGZiW,EAAQumB,mBAAqBA,EAC7BA,EAAmB4J,aAAe,mBAClC,IAAI7J,EAAc6B,EAAQ6H,6BAA6B,CACnDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,WAAY,KACZ,WAAY,MAEhBjH,MAAO,CACHvgC,EAAGtZ,OACHwY,EAAGxY,UAGXwxB,EAAQsmB,YAAcA,EACtBA,EAAY6J,aAAe,YAC3B,IAAInvC,EAAWmnC,EAAQ6H,6BAA6B,CAChDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,mBAAoB,KACpB,sBAAuB,KACvB,wBAAyB,KACzB,wBAAyB,KACzB,qBAAsB,KACtB,uBAAwB,KACxB,8BAA+B,KAC/B,qBAAsB,KACtB,yBAA0B,KAC1B,uBAAwB,KACxB,qBAAsB,KACtB,sBAAuB,KACvB,yBAA0B,KAC1B,iBAAkB,KAClB,4BAA6B,KAC7B,+BAAgC,KAChC,mCAAoC,KACpC,6BAA8B,KAC9B,4BAA6B,KAC7B,iBAAkB,KAClB,sBAAuB,KACvB,iBAAkB,KAClB,kBAAmB,KACnB,uBAAwB,KACxB,mBAAoB,KACpB,kBAAmB,KACnB,0BAA2B,KAC3B,uBAAwB,KACxB,oBAAqB,KACrB,mBAAoB,KACpB,0BAA2B,KAC3B,oBAAqB,KACrB,qBAAsB,KACtB,sBAAuB,KACvB,eAAgB,KAChB,uBAAwB,KACxB,gBAAiB,KACjB,kBAAmB,KACnB,2BAA4B,KAC5B,iBAAkB,KAClB,oBAAqB,KACrB,4BAA6B,KAC7B,sBAAuB,KACvB,wBAAyB,KACzB,gBAAiB,KACjB,gBAAiB,KACjB,kBAAmB,KACnB,cAAe,KACf,mBAAoB,KACpB,qBAAsB,KACtB,iBAAkB,KAClB,iCAAkC,KAClC,sBAAuB,KACvB,0BAA2B,KAC3B,6BAA8B,KAC9B,yBAA0B,KAC1B,mBAAoB,KACpB,uBAAwB,KACxB,mBAAoB,KACpB,kBAAmB,KACnB,cAAe,KACf,yBAA0B,KAC1B,iBAAkB,KAClB,sBAAuB,KACvB,eAAgB,MAEpBjH,MAAO,CACHpoC,UAAWzR,OACX2R,aAAcyQ,QACdsgC,eAAgBtgC,QAChBugC,eAAgBvgC,QAChBwgC,YAAaxgC,QACbygC,cAAezgC,QACf0gC,qBAAsB1gC,QACtB2gC,YAAa3gC,QACb4gC,gBAAiB5gC,QACjBgD,cAAehD,QACf6gC,YAAa7gC,QACb8gC,aAAc9gC,QACd+gC,gBAAiB/gC,QACjBghC,QAASl+C,MACTgW,mBAAoBu6B,SACpBv0B,sBAAuB,CAACu0B,SAAUz1C,QAClCqjD,0BAA2B5N,SAC3Br0B,oBAAqB,CAACq0B,SAAUz1C,QAChCsjD,mBAAoB,CAAC7N,SAAUz1C,QAC/BuR,QAASvR,OACTwR,aAAc,GACdqT,QAAS3f,MACT+8C,SAAUjiD,OACVwc,cAAei5B,SACf/zB,UAAW1hB,OACXob,SAAUpb,OACV4R,iBAAkB,GAClBC,cAAe,GACf0xC,WAAYnhC,QACZtB,UAAW9gB,OACXwjD,iBAAkBt+C,MAClBu+C,WAAYzjD,OACZ0d,YAAa,GACbgmC,aAAcx+C,MACdigB,MAAO/C,QACPuhC,cAAe3jD,OACfN,OAAQ,CAACmE,OAAQ4xC,SAAUz1C,QAC3B4jD,SAAU//C,OACVggD,kBAAmB,GACnBC,QAAS1hC,QACT2hC,WAAYxoC,OACZyoC,mBAAoB,GACpBv3B,aAAc5oB,OACdogD,eAAgB1oC,OAChB2oC,OAAQ9hC,QACRjB,OAAQtd,OACRsgD,SAAU5oC,OACVtT,KAAMjI,OACNokD,UAAW7oC,OACX+jC,YAAal9B,QACbiiC,QAAS5O,SACTxoB,wBAAyBjtB,OACzBskD,aAAc7O,SACd8O,iBAAkBniC,QAClBoiC,oBAAqBpiC,QACrBqiC,gBAAiBriC,QACjBsiC,UAAWnpC,OACXuG,cAAe2zB,SACfkP,UAAW3kD,OACX6gB,SAAU7gB,OACV8E,KAAM9E,OACN4kD,gBAAiB1/C,MACjB07C,QAASx+B,QACTyiC,aAActpC,OACd7J,MAAO,CAAC6J,OAAQvb,WAGxBwxB,EAAQhf,SAAWA,EACnBA,EAASmvC,aAAe,UACxBnvC,EAASuvC,oBAAqB,EAC9BvvC,EAAS4uC,mBAAqB,CAC1B0D,UAAW,CAAEzD,kBAAkB,EAAMC,WAAY,mBACjDyD,OAAQ,CAAE1D,kBAAkB,EAAMC,WAAY,WAC9C0D,mBAAoB,CAAE3D,kBAAkB,EAAOC,WAAY,gBAC3D2D,aAAc,CAAE5D,kBAAkB,EAAOC,WAAY,UACrD4D,YAAa,CAAE7D,kBAAkB,EAAMC,WAAY,mBACnD6D,WAAY,CAAE9D,kBAAkB,EAAMC,WAAY,mBAClD8D,UAAW,CAAE/D,kBAAkB,EAAMC,WAAY,mBACjD5hD,OAAQ,CAAE2hD,kBAAkB,EAAOC,WAAY,UAC/CsC,SAAU,CAAEvC,kBAAkB,EAAOC,WAAY,YACjD70B,aAAc,CAAE40B,kBAAkB,EAAOC,WAAY,gBACrDngC,OAAQ,CAAEkgC,kBAAkB,EAAOC,WAAY,UAC/C+D,YAAa,CAAEhE,kBAAkB,EAAMC,WAAY,mBACnDgE,YAAa,CAAEjE,kBAAkB,EAAMC,WAAY,mBACnDiE,UAAW,CAAElE,kBAAkB,EAAMC,WAAY,mBACjDkE,aAAc,CAAEnE,kBAAkB,EAAMC,WAAY,mBACpDmE,iBAAkB,CAAEpE,kBAAkB,EAAMC,WAAY,mBACxDoE,eAAgB,CAAErE,kBAAkB,EAAMC,WAAY,oBAE1D,IAAI5tC,EAAkBimC,EAAQ6H,6BAA6B,CACvDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,qBAAsB,KACtB,wBAAyB,KACzB,iBAAkB,KAClB,gBAAiB,KACjB,cAAe,KACf,uBAAwB,KACxB,mBAAoB,KACpB,eAAgB,KAChB,eAAgB,MAEpBjH,MAAO,CACHoJ,YAAa7gC,QACbujC,eAAgB3lD,OAChBkf,QAASkD,QACTc,OAAQ3H,OACRo3B,KAAM3yC,OACN4lD,cAAerqC,OACfopC,UAAW3kD,OACX6lD,MAAO7lD,OACP0R,MAAO6J,UAGfiW,EAAQ9d,gBAAkBA,EAC1BA,EAAgBiuC,aAAe,gBAC/B,IAAIhuC,EAAiBgmC,EAAQ6H,6BAA6B,CACtDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,iBAAkB,KAClB,eAAgB,MAEpBjH,MAAO,CACH36B,QAASkD,QACT0jC,MAAOjiD,UAGf2tB,EAAQ7d,eAAiBA,EACzBA,EAAeguC,aAAe,eAC9BhuC,EAAeytC,mBAAqB,CAChC2E,kBAAmB,CAAE1E,kBAAkB,EAAOC,WAAY,SAC1DwE,MAAO,CAAEzE,kBAAkB,EAAOC,WAAY,UAElD,IAAIzJ,EAAsB8B,EAAQ6H,6BAA6B,CAC3DV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,aAAc,KACd,sBAAuB,KACvB,uBAAwB,KACxB,eAAgB,MAEpBjH,MAAO,CACHmM,IAAKhmD,OACLimD,aAAcjmD,OACdkmD,cAAelmD,OACfmmD,MAAOnmD,UAGfwxB,EAAQqmB,oBAAsBA,EAC9BA,EAAoB8J,aAAe,QACnC,IAAI/J,EAAuB+B,EAAQ6H,6BAA6B,CAC5DV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,qBAAsB,KACtB,oBAAqB,KACrB,uBAAwB,KACxB,gBAAiB,KACjB,oBAAqB,KACrB,eAAgB,MAEpBjH,MAAO,CACHoJ,YAAa7gC,QACb3B,WAAY,GACZnF,cAAe,CAACC,OAAQvb,QACxBkjB,OAAQ3H,OACR6qC,WAAYpmD,OACZ0R,MAAO6J,UAGfiW,EAAQomB,qBAAuBA,EAC/BA,EAAqB+J,aAAe,eACpC,IAAIhK,EAAiBgC,EAAQ6H,6BAA6B,CACtDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,uBAAwB,KACxB,4BAA6B,KAC7B,oBAAqB,KACrB,qBAAsB,KACtB,mBAAoB,MAExBjH,MAAO,CACHwM,cAAejkC,QACflH,mBAAoBu6B,SACpBh1B,WAAY,GACZ+G,YAAa,CAACiuB,SAAUz1C,QACxBunB,UAAWvnB,UAGnBwxB,EAAQmmB,eAAiBA,EACzBA,EAAegK,aAAe,SAC9B,IAAIjK,EAAgBiC,EAAQ6H,6BAA6B,CACrDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,0BAA2B,KAC3B,wBAAyB,KACzB,0BAA2B,KAC3B,iBAAkB,KAClB,cAAe,MAEnBjH,MAAO,CACHyM,iBAAkB7Q,SAClB8Q,eAAgBvmD,OAChB4hD,iBAAkBx/B,QAClBhD,QAASpf,OACT8E,KAAM9E,UAGdwxB,EAAQkmB,cAAgBA,EACxBA,EAAciK,aAAe,kBAC7BjK,EAAcqK,oBAAqB,EACnCrK,EAAcsK,kBAAoB,CAC9Bl9C,KAAM,WAEV,IAAI2yC,EAAiBkC,EAAQ6H,6BAA6B,CACtDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,WAAY,KACZ,WAAY,MAEhBjH,MAAO,CACHvgC,EAAGiC,OACH/C,EAAG+C,UAGXiW,EAAQimB,eAAiBA,EACzBA,EAAekK,aAAe,eAC9B,IAAInK,EAAoBmC,EAAQ6H,6BAA6B,CACzDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,mCAAoC,KACpC,iBAAkB,KAClB,uBAAwB,KACxB,mBAAoB,KACpB,wBAAyB,KACzB,kBAAmB,KACnB,cAAe,KACf,cAAe,MAEnBjH,MAAO,CACHwJ,0BAA2B5N,SAC3BlkC,QAASvR,OACTwc,cAAei5B,SACf+Q,UAAWthD,MACXuhD,eAAgB,GAChBC,SAAUtkC,QACV8/B,KAAMliD,OACNiI,KAAMjI,UAGdwxB,EAAQgmB,kBAAoBA,EAC5BA,EAAkBmK,aAAe,mBACjCnK,EAAkBuK,oBAAqB,EACvC,IAAIxK,EAAeoC,EAAQ6H,6BAA6B,CACpDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,0BAA2B,KAC3B,iBAAkB,KAClB,oBAAqB,KACrB,cAAe,KACf,4BAA6B,MAEjCjH,MAAO,CACH+H,iBAAkBx/B,QAClBhD,QAASpf,OACT6hD,WAAYz/B,QACZtd,KAAM9E,OACN8hD,mBAAoBrM,YAG5BjkB,EAAQ+lB,aAAeA,EACvBA,EAAaoK,aAAe,kBAC5BpK,EAAawK,oBAAqB,EAClCxK,EAAayK,kBAAoB,CAC7Bl9C,KAAM,UAEV,IAAIwyC,EAAyBqC,EAAQ6H,6BAA6B,CAC9DV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,qBAAsB,KACtB,gBAAiB,KACjB,uBAAwB,KACxB,eAAgB,KAChB,iBAAkB,KAClB,eAAgB,MAEpBjH,MAAO,CACHoJ,YAAa7gC,QACbc,OAAQ3H,OACRqqC,cAAerqC,OACfuqC,MAAOjiD,OACP+8C,QAASx+B,QACT1Q,MAAO6J,UAGfiW,EAAQ8lB,uBAAyBA,EACjCA,EAAuBqK,aAAe,eACtCrK,EAAuB8J,mBAAqB,CACxCuF,0BAA2B,CAAEtF,kBAAkB,EAAOC,WAAY,SAClEwE,MAAO,CAAEzE,kBAAkB,EAAOC,WAAY,UAElD,IAAIjK,EAA8BsC,EAAQ6H,6BAA6B,CACnEV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,gBAAiB,KACjB,oBAAqB,KACrB,YAAa,MAEjBjH,MAAO,CACH+M,OAAQ5mD,OACR6mD,WAAY7mD,OACZ8mD,GAAI9mD,UAGZwxB,EAAQ6lB,4BAA8BA,EACtCA,EAA4BsK,aAAe,QAC3C,IAAIlvC,EAAYknC,EAAQ6H,6BAA6B,CACjDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,qBAAsB,KACtB,uBAAwB,KACxB,uBAAwB,KACxB,iBAAkB,KAClB,uBAAwB,KACxB,wBAAyB,KACzB,oBAAqB,KACrB,cAAe,KACf,cAAe,KACf,wBAAyB,KACzB,eAAgB,KAChB,qBAAsB,KACtB,+BAAgC,KAChC,yBAA0B,KAC1B,eAAgB,KAChB,kBAAmB,MAEvBjH,MAAO,CACHkN,YAAa3kC,QACb4kC,cAAe,CAAC5kC,QAASqzB,UACzBwR,cAAe,CAAC7kC,QAASqzB,UACzBt1B,QAASjb,MACTgiD,cAAe9kC,QACf+kC,eAAgBnnD,OAChBonD,WAAY,GACZC,KAAMxjD,OACN8uC,KAAM3yC,OACNsnD,eAAgBtnD,OAChBunD,MAAO1jD,OACP2jD,YAAaxnD,OACbynD,sBAAuBrlC,QACvBslC,gBAAiB1nD,OACjB8lD,MAAO,GACP6B,SAAUvlC,WAGlBoP,EAAQ/e,UAAYA,EACpBA,EAAUkvC,aAAe,UACzBlvC,EAAU2uC,mBAAqB,CAC3BwG,OAAQ,CAAEvG,kBAAkB,EAAMC,WAAY,WAC9CuG,aAAc,CAAExG,kBAAkB,EAAOC,WAAY,SACrD+F,KAAM,CAAEhG,kBAAkB,EAAOC,WAAY,QAC7CiG,MAAO,CAAElG,kBAAkB,EAAOC,WAAY,SAC9CwE,MAAO,CAAEzE,kBAAkB,EAAOC,WAAY,UAElD,IAAIlK,EAAiBuC,EAAQ6H,6BAA6B,CACtDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,gBAAiB,KACjB,0BAA2B,KAC3B,0BAA2B,KAC3B,8BAA+B,KAC/B,4BAA6B,KAC7B,mBAAoB,KACpB,iBAAkB,KAClB,wBAAyB,KACzB,wBAAyB,KACzB,qBAAsB,KACtB,iCAAkC,MAEtCjH,MAAO,CACHiO,OAAQ9nD,OACR+nD,iBAAkB/nD,OAClBgoD,iBAAkBhoD,OAClBioD,qBAAsBjoD,OACtBkoD,mBAAoBloD,OACpBmoD,UAAWnoD,OACXooD,QAASpoD,OACTqoD,eAAgBroD,OAChBsoD,eAAgBtoD,OAChBuoD,YAAavoD,OACbwoD,wBAAyBxoD,UAGjCwxB,EAAQ4lB,eAAiBA,EACzBA,EAAeuK,aAAe,QAC9B,IAAIxK,EAAcwC,EAAQ6H,6BAA6B,CACnDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,0BAA2B,KAC3B,iBAAkB,KAClB,cAAe,MAEnBjH,MAAO,CACH+H,iBAAkBx/B,QAClBhD,QAASpf,OACT8E,KAAM9E,UAGdwxB,EAAQ2lB,YAAcA,EACtBA,EAAYwK,aAAe,kBAC3BxK,EAAY4K,oBAAqB,EACjC5K,EAAY6K,kBAAoB,CAC5Bl9C,KAAM,SAEV,IAAI+O,EAAW8lC,EAAQ6H,6BAA6B,CAChDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,iCAAkC,KAClC,4BAA6B,KAC7B,iBAAkB,KAClB,4BAA6B,KAC7B,8BAA+B,KAC/B,kBAAmB,KACnB,iBAAkB,KAClB,2BAA4B,KAC5B,kBAAmB,KACnB,eAAgB,MAEpBjH,MAAO,CACH4O,wBAAyBrmC,QACzBsmC,mBAAoBjT,SACpBv2B,QAASkD,QACTumC,mBAAoBvmC,QACpBwmC,qBAAsBxmC,QACtBwhB,SAAU5jC,OACV6oD,QAAS3jD,MACT4jD,kBAAmB1mC,QACnB2mC,SAAU/oD,OACV8lD,MAAOjiD,UAGf2tB,EAAQ3d,SAAWA,EACnBA,EAAS8tC,aAAe,SACxB9tC,EAASutC,mBAAqB,CAC1B4H,YAAa,CAAE3H,kBAAkB,EAAOC,WAAY,SACpDwE,MAAO,CAAEzE,kBAAkB,EAAOC,WAAY,UAElD,IAAIpK,EAAgByC,EAAQ6H,6BAA6B,CACrDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,mBAAoB,KACpB,4BAA6B,KAC7B,kBAAmB,MAEvBjH,MAAO,CACHoP,UAAWjpD,OACXkpD,mBAAoBlpD,OACpBmpD,SAAUnpD,UAGlBwxB,EAAQ0lB,cAAgBA,EACxBA,EAAcyK,aAAe,QAC7B,IAAI1K,EAAU0C,EAAQ6H,6BAA6B,CAC/CV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,mCAAoC,KACpC,iBAAkB,KAClB,uBAAwB,KACxB,mBAAoB,KACpB,kBAAmB,KACnB,gCAAiC,KACjC,uBAAwB,KACxB,wBAAyB,KACzB,mBAAoB,KACpB,0BAA2B,KAC3B,gBAAiB,KACjB,gBAAiB,KACjB,cAAe,KACf,kBAAmB,MAEvBjH,MAAO,CACHwJ,0BAA2B5N,SAC3BlkC,QAASvR,OACTwc,cAAei5B,SACf/zB,UAAW1hB,OACXob,SAAUpb,OACVopD,uBAAwBppD,OACxB6R,cAAe,GACf40C,eAAgB,GAChB3lC,UAAW9gB,OACXwjD,iBAAkBt+C,MAClBxF,OAAQ,CAACmE,OAAQ4xC,SAAUz1C,QAC3BmhB,OAAQtd,OACRoE,KAAMjI,OACN6gB,SAAU7gB,UAGlBwxB,EAAQylB,QAAUA,EAClBA,EAAQ0K,aAAe,SACvB1K,EAAQ8K,oBAAqB,EAC7B9K,EAAQmK,mBAAqB,CACzBiI,YAAa,CAAEhI,kBAAkB,EAAOC,WAAY,UACpD5hD,OAAQ,CAAE2hD,kBAAkB,EAAOC,WAAY,UAC/CngC,OAAQ,CAAEkgC,kBAAkB,EAAOC,WAAY,WAEnD,IAAItK,EAAgB2C,EAAQ6H,6BAA6B,CACrDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,uBAAwB,KACxB,oBAAqB,KACrB,qBAAsB,KACtB,mBAAoB,MAExBjH,MAAO,CACHwM,cAAejkC,QACf3B,WAAY,CAACvb,MAAOrB,QACpB2jB,YAAa,CAACiuB,SAAUz1C,QACxBunB,UAAW,CAACkuB,SAAUz1C,WAG9BwxB,EAAQwlB,cAAgBA,EACxBA,EAAc2K,aAAe,SAC7B,IAAI5K,EAAkB4C,EAAQ6H,6BAA6B,CACvDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,mBAAoB,KACpB,4BAA6B,KAC7B,iCAAkC,KAClC,wBAAyB,KACzB,0BAA2B,KAC3B,kBAAmB,KACnB,qBAAsB,KACtB,gBAAiB,KACjB,qCAAsC,KACtC,2BAA4B,KAC5B,oCAAqC,KACrC,yBAA0B,KAC1B,gBAAiB,KACjB,cAAe,KACf,2BAA4B,KAC5B,uBAAwB,KACxB,wBAAyB,KACzB,qBAAsB,KACtB,0BAA2B,KAC3B,2BAA4B,KAC5B,mBAAoB,KACpB,oBAAqB,KACrB,uBAAwB,KACxB,yBAA0B,KAC1B,wBAAyB,KACzB,oBAAqB,KACrB,kBAAmB,KACnB,eAAgB,KAChB,iBAAkB,KAClB,eAAgB,MAEpBjH,MAAO,CACHC,UAAW95C,OACX+5C,mBAAoB33B,QACpBknC,wBAAyBlnC,QACzBmnC,eAAgB1lD,OAChB2lD,iBAAkBtkD,MAClB81C,SAAU54B,QACV84B,YAAar3C,OACb4lD,OAAQvkD,MACRwkD,4BAA6B7lD,OAC7Bi4C,kBAAmB15B,QACnBunC,2BAA4B9lD,OAC5B+lD,gBAAiB1kD,MACjBge,OAAQ,CAACuyB,SAAUl6B,OAAQvb,QAC3Bk8C,KAAMl8C,OACNm8C,kBAAmB/5B,QACnBynC,cAAetuC,OACfuhC,eAAgBrH,SAChBwH,YAAaxH,SACb4H,iBAAkB5H,SAClB6H,kBAAmB7H,SACnBqU,UAAWrU,SACXsU,WAAYtU,SACZqI,cAAerI,SACfwI,gBAAiBxI,SACjBuU,eAAgBvU,SAChB/yB,WAAYN,QACZq+B,SAAUllC,OACVrT,MAAO,CAAChD,MAAOuwC,SAAUz1C,QACzB4gD,QAASx+B,QACT1Q,MAAO,CAAC+jC,SAAUl6B,OAAQvb,WAGlCwxB,EAAQulB,gBAAkBA,EAC1BA,EAAgB4K,aAAe,gBAC/B5K,EAAgBqK,mBAAqB,CACjC6I,gBAAiB,CAAE5I,kBAAkB,EAAMC,WAAY,oBACvDjwC,MAAO,CAAEgwC,kBAAkB,EAAMC,WAAY,UAC7CoI,4BAA6B,CAAErI,kBAAkB,EAAOC,WAAY,+BACpEqI,2BAA4B,CAAEtI,kBAAkB,EAAOC,WAAY,+BAEvE,IAAIxK,EAAuB6C,EAAQ6H,6BAA6B,CAC5DV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,mBAAoB,KACpB,4BAA6B,KAC7B,mBAAoB,KACpB,wBAAyB,KACzB,6BAA8B,KAC9B,mBAAoB,KACpB,yBAA0B,KAC1B,kCAAmC,KACnC,wBAAyB,KACzB,kBAAmB,KACnB,2BAA4B,KAC5B,qBAAsB,KACtB,6BAA8B,KAC9B,qBAAsB,KACtB,2BAA4B,KAC5B,oBAAqB,KACrB,gBAAiB,KACjB,4BAA6B,KAC7B,4BAA6B,KAC7B,cAAe,KACf,2BAA4B,KAC5B,mBAAoB,KACpB,kBAAmB,KACnB,mBAAoB,KACpB,kBAAmB,KACnB,wBAAyB,KACzB,qBAAsB,KACtB,mBAAoB,KACpB,oBAAqB,KACrB,kBAAmB,KACnB,kBAAmB,KACnB,uBAAwB,KACxB,yBAA0B,KAC1B,kBAAmB,KACnB,qBAAsB,KACtB,uBAAwB,KACxB,mBAAoB,KACpB,iBAAkB,KAClB,yBAA0B,KAC1B,kBAAmB,KACnB,uBAAwB,KACxB,yBAA0B,KAC1B,oBAAqB,KACrB,iBAAkB,KAClB,sBAAuB,KACvB,yBAA0B,KAC1B,mBAAoB,KACpB,kBAAmB,KACnB,eAAgB,KAChB,uBAAwB,KACxB,sBAAuB,KACvB,iBAAkB,KAClB,eAAgB,KAChB,qBAAsB,MAE1BjH,MAAO,CACHC,UAAW95C,OACX+5C,mBAAoB33B,QACpB8nC,UAAWrmD,OACX0lD,eAAgB1lD,OAChBsmD,oBAAqB,CAAC/nC,QAASqzB,UAC/Bp2B,UAAW,GACX+qC,gBAAiB,GACjBC,yBAA0BjoC,QAC1BkoC,eAAgBloC,QAChB44B,SAAU54B,QACVmoC,kBAAmB,GACnBC,YAAapoC,QACbqoC,oBAAqBroC,QACrB84B,YAAa,GACbY,kBAAmB15B,QACnBsoC,WAAYtoC,QACZc,OAAQ,CAACuyB,SAAUl6B,OAAQvb,QAC3B2qD,mBAAoB,CAACvoC,QAASqzB,UAC9BmV,mBAAoBxoC,QACpB85B,KAAMl8C,OACNm8C,kBAAmB/5B,QACnByoC,UAAW,CAACpV,SAAUl6B,OAAQvb,QAC9B8qD,SAAU,CAACrV,SAAUl6B,OAAQvb,QAC7B+qD,UAAW,CAACtV,SAAUl6B,OAAQvb,QAC9BmkD,SAAU,CAAC1O,SAAUl6B,OAAQvb,QAC7B88C,eAAgBrH,SAChBwH,YAAaxH,SACbqU,UAAWrU,SACXsU,WAAYtU,SACZuV,SAAUvV,SACVwV,SAAUxV,SACVqI,cAAerI,SACfwI,gBAAiBxI,SACjByV,SAAUzV,SACV0V,YAAa1V,SACb2V,cAAe3V,SACf4V,UAAW5V,SACX6V,QAAS7V,SACT8V,gBAAiB9V,SACjB+V,SAAU,CAAC/V,SAAU5xC,OAAQ7D,QAC7ByrD,cAAerpC,QACfspC,gBAAiBtpC,QACjBM,WAAYN,QACZjD,QAASiD,QACTupC,aAAc3rD,OACd4rD,gBAAiBxpC,QACjBypC,UAAWzpC,QACXq+B,SAAUllC,OACVsqC,MAAO7lD,OACP8rD,cAAe,GACfC,aAAc7mD,MACd07C,QAASx+B,QACT1Q,MAAO,CAAC+jC,SAAUl6B,OAAQvb,QAC1BgsD,YAAa,MAGrBx6B,EAAQslB,qBAAuBA,EAC/BA,EAAqB6K,aAAe,qBACpC,IAAI9K,EAAgC8C,EAAQ6H,6BAA6B,CACrEV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,iBAAkB,KAClB,kBAAmB,KACnB,kBAAmB,KACnB,eAAgB,KAChB,qBAAsB,KACtB,4BAA6B,KAC7B,iBAAkB,KAClB,oBAAqB,KACrB,kBAAmB,KACnB,yBAA0B,KAC1B,qBAAsB,KACtB,kBAAmB,KACnB,oBAAqB,MAEzBjH,MAAO,CACHoS,QAASjsD,OACTksD,SAAUlsD,OACVmsD,SAAUnsD,OACVosD,MAAOpsD,OACPqsD,YAAarsD,OACbssD,mBAAoBtsD,OACpBusD,QAASvsD,OACTwsD,WAAYxsD,OACZysD,SAAUzsD,OACV0sD,gBAAiB1sD,OACjB2sD,YAAa3sD,OACb4sD,SAAU5sD,OACV6sD,WAAY7sD,UAGpBwxB,EAAQqlB,8BAAgCA,EACxCA,EAA8B8K,aAAe,8BAC7C,IAAI/K,EAAgB+C,EAAQ6H,6BAA6B,CACrDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,uBAAwB,KACxB,uBAAwB,KACxB,eAAgB,KAChB,iBAAkB,MAEtBjH,MAAO,CACHr9B,cAAei5B,SACfqX,cAAe1qC,QACf0jC,MAAOjiD,OACP+8C,QAASx+B,WAGjBoP,EAAQolB,cAAgBA,EACxBA,EAAc+K,aAAe,cAC7B/K,EAAcwK,mBAAqB,CAC/B2L,iBAAkB,CAAE1L,kBAAkB,EAAOC,WAAY,SACzDwE,MAAO,CAAEzE,kBAAkB,EAAOC,WAAY,UAElD,IAAI3K,EAAqBgD,EAAQ6H,6BAA6B,CAC1DV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,qBAAsB,KACtB,sBAAuB,KACvB,2BAA4B,MAEhCjH,MAAO,CACHmT,YAAahtD,OACbitD,aAAcjtD,OACdktD,kBAAmBltD,UAG3BwxB,EAAQmlB,mBAAqBA,EAC7BA,EAAmBgL,aAAe,QAClC,IAAIjvC,EAAcinC,EAAQ6H,6BAA6B,CACnDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,qBAAsB,KACtB,yBAA0B,KAC1B,wBAAyB,KACzB,0BAA2B,KAC3B,+BAAgC,KAChC,4BAA6B,KAC7B,qBAAsB,KACtB,8BAA+B,KAC/B,iBAAkB,MAEtBjH,MAAO,CACHsT,YAAantD,OACbotD,gBAAiBptD,OACjBqtD,eAAgBrtD,OAChBstD,iBAAkBttD,OAClButD,sBAAuB1pD,OACvB2pD,mBAAoBxtD,OACpBytD,YAAaztD,OACb0tD,qBAAsBtrC,QACtBw+B,QAASx+B,WAGjBoP,EAAQ9e,YAAcA,EACtBA,EAAYivC,aAAe,YAC3BjvC,EAAY0uC,mBAAqB,CAC7BmM,sBAAuB,CAAElM,kBAAkB,EAAOC,WAAY,0BAElE,IAAI5K,EAASiD,EAAQ6H,6BAA6B,CAC9CV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,mBAAoB,KACpB,4BAA6B,KAC7B,yBAA0B,KAC1B,oCAAqC,KACrC,wBAAyB,KACzB,kBAAmB,KACnB,0BAA2B,KAC3B,uBAAwB,KACxB,kBAAmB,KACnB,qBAAsB,KACtB,2BAA4B,KAC5B,kBAAmB,KACnB,gBAAiB,KACjB,cAAe,KACf,2BAA4B,KAC5B,eAAgB,KAChB,uBAAwB,KACxB,mBAAoB,KACpB,qBAAsB,KACtB,wBAAyB,KACzB,qBAAsB,KACtB,0BAA2B,KAC3B,4BAA6B,KAC7B,mBAAoB,KACpB,oBAAqB,KACrB,uBAAwB,KACxB,yBAA0B,KAC1B,sBAAuB,KACvB,kBAAmB,KACnB,sBAAuB,KACvB,yBAA0B,KAC1B,oBAAqB,KACrB,uBAAwB,KACxB,0BAA2B,KAC3B,6BAA8B,KAC9B,0BAA2B,KAC3B,0BAA2B,KAC3B,+BAAgC,KAChC,kBAAmB,KACnB,yBAA0B,KAC1B,iBAAkB,KAClB,eAAgB,MAEpBjH,MAAO,CACHC,UAAW95C,OACX+5C,mBAAoB33B,QACpBurC,gBAAiBvrC,QACjBwrC,2BAA4BxrC,QAC5BmnC,eAAgB1lD,OAChBgqD,SAAU,CAACtyC,OAAQvb,QACnB8tD,iBAAkBjqD,OAClBkqD,cAAetY,SACfuF,SAAU54B,QACV84B,YAAar3C,OACbi4C,kBAAmB15B,QACnB4rC,SAAU,GACV9qC,OAAQ,CAACuyB,SAAUl6B,OAAQvb,QAC3Bk8C,KAAMl8C,OACNm8C,kBAAmB/5B,QACnBxR,MAAO1L,MACP+oD,cAAejuD,OACfkuD,UAAWluD,OACXmuD,YAAa5yC,OACbuhC,eAAgBrH,SAChBwH,YAAaxH,SACb2Y,iBAAkB3Y,SAClB4Y,mBAAoB5Y,SACpBqU,UAAWrU,SACXsU,WAAYtU,SACZqI,cAAerI,SACfwI,gBAAiBxI,SACjB6Y,aAActuD,OACduuD,SAAUnsC,QACVosC,aAAcxuD,OACdyuD,gBAAiBzuD,OACjB0iB,WAAYN,QACZssC,cAAejZ,SACfkZ,iBAAkBvsC,QAClBwsC,oBAAqBxsC,QACrBysC,iBAAkBzsC,QAClB0sC,iBAAkB1sC,QAClB2sC,sBAAuB3sC,QACvBq+B,SAAUllC,OACVyzC,gBAAiBhvD,OACjB4gD,QAASx+B,QACT1Q,MAAO,CAAC+jC,SAAUl6B,OAAQvb,WAGlCwxB,EAAQklB,OAASA,EACjBA,EAAOiL,aAAe,OACtBjL,EAAO0K,mBAAqB,CACxB0M,iBAAkB,CAAEzM,kBAAkB,EAAOC,WAAY,qBAE7D,IAAI7K,EAAWkD,EAAQ6H,6BAA6B,CAChDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,kBAAmB,KACnB,mBAAoB,KACpB,gBAAiB,KACjB,mBAAoB,KACpB,cAAe,KACf,oCAAqC,MAEzCjH,MAAO,CACHoV,SAAUjvD,OACVkG,UAAWuvC,SACXhvC,OAAQgvC,SACRyZ,UAAW3zC,OACXzW,KAAM9E,OACNmvD,2BAA4B/sC,WAGpCoP,EAAQilB,SAAWA,EACnBA,EAASkL,aAAe,SACxB,IAAInL,EAAamD,EAAQ6H,6BAA6B,CAClDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,iBAAkB,KAClB,kBAAmB,KACnB,mBAAoB,KACpB,uBAAwB,KACxB,oBAAqB,KACrB,kBAAmB,KACnB,oBAAqB,KACrB,kBAAmB,KACnB,eAAgB,KAChB,cAAe,KACf,kBAAmB,KACnB,yBAA0B,KAC1B,iBAAkB,KAClB,sBAAuB,MAE3BjH,MAAO,CACHuV,QAAS7zC,OACT0mC,SAAUjiD,OACV0hB,UAAW1hB,OACX6R,cAAe,GACfw9C,WAAYrvD,OACZsvD,SAAUtvD,OACVuvD,WAAYntC,QACZotC,SAAUxvD,OACViU,MAAOpQ,OACPoE,KAAMjI,OACNoiD,SAAU,GACVwC,gBAAiB1/C,MACjB07C,QAASx+B,QACTyiC,aAActpC,UAGtBiW,EAAQglB,WAAaA,EACrBA,EAAWmL,aAAe,WAC1BnL,EAAW4K,mBAAqB,CAC5B0D,UAAW,CAAEzD,kBAAkB,EAAMC,WAAY,mBACjD4D,YAAa,CAAE7D,kBAAkB,EAAMC,WAAY,mBACnD6D,WAAY,CAAE9D,kBAAkB,EAAMC,WAAY,mBAClD8D,UAAW,CAAE/D,kBAAkB,EAAMC,WAAY,mBACjDrtC,MAAO,CAAEotC,kBAAkB,EAAOC,WAAY,SAC9C+D,YAAa,CAAEhE,kBAAkB,EAAMC,WAAY,mBACnDgE,YAAa,CAAEjE,kBAAkB,EAAMC,WAAY,mBACnDiE,UAAW,CAAElE,kBAAkB,EAAMC,WAAY,mBACjDkE,aAAc,CAAEnE,kBAAkB,EAAMC,WAAY,mBACpDmE,iBAAkB,CAAEpE,kBAAkB,EAAMC,WAAY,mBACxDoE,eAAgB,CAAErE,kBAAkB,EAAMC,WAAY,oBAE1D,IAAI/K,EAASoD,EAAQ6H,6BAA6B,CAC9CV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,cAAe,KACf,iBAAkB,KAClB,kBAAmB,KACnB,eAAgB,KAChB,aAAc,MAElBjH,MAAO,CACH72B,KAAMzH,OACNk0C,QAASl0C,OACTiwC,SAAU3nD,OACV6rD,MAAOn0C,OACP0H,IAAK1H,UAGbiW,EAAQ+kB,OAASA,EACjBA,EAAOoL,aAAe,OACtBpL,EAAO6K,mBAAqB,CACxBoK,SAAU,CAAEnK,kBAAkB,EAAOC,WAAY,aAErD,IAAIzuC,EAAa8mC,EAAQ6H,6BAA6B,CAClDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,yBAA0B,KAC1B,uBAAwB,KACxB,4BAA6B,KAC7B,oBAAqB,KACrB,eAAgB,MAEpBjH,MAAO,CACH8V,gBAAiBvtC,QACjBwtC,cAAextC,QACfytC,mBAAoBztC,QACpB0tC,WAAY9vD,OACZ8lD,MAAOjiD,UAGf2tB,EAAQ3e,WAAaA,EACrBA,EAAW8uC,aAAe,WAC1B9uC,EAAWuuC,mBAAqB,CAC5B2O,cAAe,CAAE1O,kBAAkB,EAAOC,WAAY,SACtDwE,MAAO,CAAEzE,kBAAkB,EAAOC,WAAY,UAElD,IAAIhL,EAAkBqD,EAAQ6H,6BAA6B,CACvDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,2BAA4B,KAC5B,+BAAgC,KAChC,+BAAgC,KAChC,iBAAkB,KAClB,oBAAqB,MAEzBjH,MAAO,CACHmW,kBAAmBhwD,OACnBiwD,sBAAuBjwD,OACvBkwD,sBAAuBlwD,OACvBmwD,QAASnwD,OACTowD,WAAYpwD,UAGpBwxB,EAAQ8kB,gBAAkBA,EAC1BA,EAAgBqL,aAAe,QAC/B,IAAIvuC,EAAcumC,EAAQ6H,6BAA6B,CACnDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,uBAAwB,KACxB,gBAAiB,KACjB,uBAAwB,KACxB,uBAAwB,KACxB,cAAe,KACf,sBAAuB,KACvB,2BAA4B,KAC5B,yBAA0B,KAC1B,qBAAsB,KACtB,qBAAsB,MAE1BjH,MAAO,CACHwW,cAAejuC,QACfxB,OAAQ5gB,OACRwc,cAAei5B,SACf54B,cAAe7c,OACfiI,KAAMjI,OACNswD,aAActwD,OACduwD,kBAAmBnuC,QACnBouC,gBAAiBpuC,QACjBrF,YAAa/c,OACbgd,YAAa,CAACnZ,OAAQ4xC,SAAUz1C,WAGxCwxB,EAAQpe,YAAcA,EACtBA,EAAYuuC,aAAe,aAC3BvuC,EAAY2uC,oBAAqB,EACjC3uC,EAAYguC,mBAAqB,CAC7BpkC,YAAa,CAAEqkC,kBAAkB,EAAOC,WAAY,gBAExD,IAAIjL,EAA+BsD,EAAQ6H,6BAA6B,CACpEV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,aAAc,KACd,gBAAiB,KACjB,eAAgB,KAChB,YAAa,MAEjBjH,MAAO,CACH4W,IAAKzwD,OACL0wD,OAAQ1wD,OACR2wD,MAAO3wD,OACP1I,GAAI0I,UAGZwxB,EAAQ6kB,6BAA+BA,EACvCA,EAA6BsL,aAAe,6BAC5C,IAAI/uC,EAAe+mC,EAAQ6H,6BAA6B,CACpDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,6BAA8B,KAC9B,wBAAyB,KACzB,iBAAkB,MAEtBjH,MAAO,CACH+W,oBAAqBxuC,QACrBujC,eAAgB3lD,OAChB4gD,QAAS,CAACx+B,QAASpiB,WAG3BwxB,EAAQ5e,aAAeA,EACvBA,EAAa+uC,aAAe,aAC5B,IAAIhvC,EAAiBgnC,EAAQ6H,6BAA6B,CACtDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,qBAAsB,KACtB,oBAAqB,KACrB,uBAAwB,KACxB,gBAAiB,KACjB,oBAAqB,KACrB,uBAAwB,KACxB,eAAgB,KAChB,iBAAkB,KAClB,eAAgB,MAEpBjH,MAAO,CACHoJ,YAAa7gC,QACb3B,WAAY,GACZnF,cAAe,CAACC,OAAQvb,QACxBkjB,OAAQ3H,OACR6qC,WAAYpmD,OACZ4lD,cAAerqC,OACfuqC,MAAOjiD,OACP+8C,QAASx+B,QACT1Q,MAAO6J,UAGfiW,EAAQ7e,eAAiBA,EACzBA,EAAegvC,aAAe,eAC9B,IAAIvL,EAASuD,EAAQ6H,6BAA6B,CAC9CV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,kBAAmB,KACnB,eAAgB,KAChB,mBAAoB,KACpB,kBAAmB,KACnB,gBAAiB,KACjB,cAAe,KACf,sBAAuB,KACvB,eAAgB,KAChB,YAAa,KACb,cAAe,MAEnBjH,MAAO,CACHgX,SAAUpb,SACVpX,MAAO9iB,OACPu1C,UAAW9wD,OACX+wD,SAAUx1C,OACVy1C,OAAQhxD,OACRo7B,KAAMv3B,OACNotD,aAAc11C,OACd21C,MAAOzb,SACP12C,GAAI8E,OACJiB,KAAM9E,UAGdwxB,EAAQ4kB,OAASA,EACjBA,EAAOuL,aAAe,OACtBvL,EAAOgL,mBAAqB,CACxBhmB,KAAM,CAAEimB,kBAAkB,EAAOC,WAAY,QAC7CviD,GAAI,CAAEsiD,kBAAkB,EAAOC,WAAY,OAE/C,IAAInL,EAASwD,EAAQ6H,6BAA6B,CAC9CV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,kBAAmB,KACnB,kBAAmB,KACnB,cAAe,KACf,sBAAuB,KACvB,kBAAmB,KACnB,0BAA2B,KAC3B,cAAe,KACf,iBAAkB,KAClB,kBAAmB,KACnB,kBAAmB,KACnB,cAAe,KACf,iBAAkB,KAClB,gBAAiB,MAErBjH,MAAO,CACHoI,SAAUjiD,OACVg7C,SAAU54B,QACV+uC,KAAMnxD,OACNoxD,aAAcpxD,OACdqxD,SAAUrxD,OACVsxD,iBAAkB,GAClBrpD,KAAMjI,OACNmc,QAAS,GACTo1C,SAAUvxD,OACVoiD,SAAU,GACVx/C,KAAM5C,OACN4gD,QAASx+B,QACTovC,OAAQxxD,UAGhBwxB,EAAQ2kB,OAASA,EACjBA,EAAOwL,aAAe,QACtBxL,EAAO4L,oBAAqB,EAC5B,IAAI7L,EAAuByD,EAAQ6H,6BAA6B,CAC5DV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,wBAAyB,KACzB,iBAAkB,KAClB,wBAAyB,KACzB,2BAA4B,MAEhCjH,MAAO,CACH4X,eAAgBrvC,QAChBlD,QAASkD,QACTsvC,eAAgB1xD,OAChB2xD,kBAAmB3xD,UAG3BwxB,EAAQ0kB,qBAAuBA,EAC/BA,EAAqByL,aAAe,qBACpC,IAAI1L,GAAU0D,EAAQ6H,6BAA6B,CAC/CV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,mBAAoB,KACpB,kBAAmB,KACnB,mBAAoB,KACpB,cAAe,KACf,iBAAkB,MAEtBjH,MAAO,CACHpoC,UAAWzR,OACXqxD,SAAUrxD,OACV4xD,UAAWxvC,QACXxf,KAAM5C,OACN4gD,QAASx+B,WAGjBoP,EAAQykB,QAAUA,GAClBA,GAAQ0L,aAAe,QACvB,IAAI3L,GAAc2D,EAAQ6H,6BAA6B,CACnDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,iBAAkB,KAClB,gBAAiB,KACjB,sBAAuB,KACvB,iBAAkB,KAClB,sBAAuB,KACvB,uBAAwB,KACxB,kBAAmB,KACnB,cAAe,KACf,eAAgB,MAEpBjH,MAAO,CACH36B,QAAS,CAACkD,QAASpiB,QACnBkjB,OAAQ3H,OACRs2C,aAAc7xD,OACdmf,QAASiD,QACTupC,aAAc3rD,OACd8xD,cAAe1vC,QACf2vC,SAAU3vC,QACVxf,KAAM5C,OACN0R,MAAO6J,UAGfiW,EAAQwkB,YAAcA,GACtBA,GAAY2L,aAAe,YAC3B,IAAIzuC,GAAWymC,EAAQ6H,6BAA6B,CAChDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,uBAAwB,KACxB,4BAA6B,KAC7B,oBAAqB,KACrB,qBAAsB,KACtB,mBAAoB,MAExBjH,MAAO,CACHwM,cAAejkC,QACflH,mBAAoBu6B,SACpBh1B,WAAY,GACZ+G,YAAa,CAACiuB,SAAUz1C,QACxBunB,UAAWvnB,UAGnBwxB,EAAQte,SAAWA,GACnBA,GAASyuC,aAAe,SACxB,IAAItuC,GAAiBsmC,EAAQ6H,6BAA6B,CACtDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,uBAAwB,KACxB,iBAAkB,KAClB,kBAAmB,MAEvBjH,MAAO,CACH+V,cAAextC,QACflD,QAASkD,QACTggC,SAAU,MAGlB5wB,EAAQne,eAAiBA,GACzBA,GAAesuC,aAAe,eAC9B,IAAInI,GAAOG,EAAQ6H,6BAA6B,CAC5CV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,WAAY,KACZ,WAAY,MAEhBjH,MAAO,CACHvgC,EAAGtZ,OACHwY,EAAGxY,UAGXwxB,EAAQgoB,KAAOA,GACfA,GAAKmI,aAAe,KACpB,IAAIpI,GAAgBI,EAAQ6H,6BAA6B,CACrDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,0BAA2B,KAC3B,iBAAkB,KAClB,cAAe,MAEnBjH,MAAO,CACH+H,iBAAkBx/B,QAClBhD,QAASpf,OACT8E,KAAM9E,UAGdwxB,EAAQ+nB,cAAgBA,GACxBA,GAAcoI,aAAe,kBAC7BpI,GAAcwI,oBAAqB,EACnCxI,GAAcyI,kBAAoB,CAC9Bl9C,KAAM,WAEV,IAAIw0C,GAAWK,EAAQ6H,6BAA6B,CAChDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,WAAY,KACZ,WAAY,MAEhBjH,MAAO,CACHvgC,EAAGiC,OACH/C,EAAG+C,UAGXiW,EAAQ8nB,SAAWA,GACnBA,GAASqI,aAAe,SACxB,IAAItI,GAA0BM,EAAQ6H,6BAA6B,CAC/DV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,iBAAkB,KAClB,kBAAmB,KACnB,kBAAmB,KACnB,eAAgB,KAChB,qBAAsB,KACtB,4BAA6B,KAC7B,kBAAmB,KACnB,yBAA0B,KAC1B,qBAAsB,KACtB,kBAAmB,KACnB,oBAAqB,MAEzBjH,MAAO,CACHoS,QAASjsD,OACTksD,SAAUlsD,OACVmsD,SAAUnsD,OACVosD,MAAOpsD,OACPqsD,YAAarsD,OACbssD,mBAAoBtsD,OACpBysD,SAAUzsD,OACV0sD,gBAAiB1sD,OACjB2sD,YAAa3sD,OACb4sD,SAAU5sD,OACV6sD,WAAY7sD,UAGpBwxB,EAAQ6nB,wBAA0BA,GAClCA,GAAwBsI,aAAe,wBACvC,IAAI3uC,GAAU2mC,EAAQ6H,6BAA6B,CAC/CV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,0BAA2B,KAC3B,qBAAsB,KACtB,kBAAmB,KACnB,eAAgB,KAChB,kBAAmB,KACnB,+BAAgC,KAChC,8BAA+B,KAC/B,iBAAkB,MAEtBjH,MAAO,CACHmY,iBAAkB,CAAC9sD,MAAOlF,QAC1BiyD,YAAajyD,OACbkyD,SAAUlyD,OACViU,MAAOjU,OACPmyD,SAAU/vC,QACVgwC,sBAAuBhwC,QACvBiwC,qBAAsBjwC,QACtBw+B,QAAS,CAACx+B,QAASpiB,WAG3BwxB,EAAQxe,QAAUA,GAClBA,GAAQ2uC,aAAe,QACvB,IAAI5uC,GAAW4mC,EAAQ6H,6BAA6B,CAChDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,iBAAkB,KAClB,mBAAoB,KACpB,kBAAmB,MAEvBjH,MAAO,CACH36B,QAASkD,QACTkwC,UAAW/2C,OACXg3C,SAAUh3C,UAGlBiW,EAAQze,SAAWA,GACnBA,GAAS4uC,aAAe,SACxB,IAAIvI,GAAgBO,EAAQ6H,6BAA6B,CACrDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,0BAA2B,KAC3B,iBAAkB,KAClB,iBAAkB,KAClB,cAAe,MAEnBjH,MAAO,CACH+H,iBAAkBx/B,QAClBhD,QAASpf,OACTkJ,QAAS,GACTpE,KAAM9E,UAGdwxB,EAAQ4nB,cAAgBA,GACxBA,GAAcuI,aAAe,kBAC7BvI,GAAc2I,oBAAqB,EACnC3I,GAAc4I,kBAAoB,CAC9Bl9C,KAAM,WAEV,IAAIq0C,GAAUQ,EAAQ6H,6BAA6B,CAC/CV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,mBAAoB,KACpB,4BAA6B,KAC7B,mBAAoB,KACpB,wBAAyB,KACzB,6BAA8B,KAC9B,mBAAoB,KACpB,yBAA0B,KAC1B,kCAAmC,KACnC,wBAAyB,KACzB,kBAAmB,KACnB,2BAA4B,KAC5B,qBAAsB,KACtB,6BAA8B,KAC9B,qBAAsB,KACtB,2BAA4B,KAC5B,oBAAqB,KACrB,gBAAiB,KACjB,4BAA6B,KAC7B,4BAA6B,KAC7B,cAAe,KACf,2BAA4B,KAC5B,mBAAoB,KACpB,kBAAmB,KACnB,mBAAoB,KACpB,kBAAmB,KACnB,wBAAyB,KACzB,qBAAsB,KACtB,mBAAoB,KACpB,oBAAqB,KACrB,kBAAmB,KACnB,kBAAmB,KACnB,uBAAwB,KACxB,yBAA0B,KAC1B,kBAAmB,KACnB,qBAAsB,KACtB,uBAAwB,KACxB,mBAAoB,KACpB,iBAAkB,KAClB,yBAA0B,KAC1B,kBAAmB,KACnB,uBAAwB,KACxB,yBAA0B,KAC1B,oBAAqB,KACrB,iBAAkB,KAClB,sBAAuB,KACvB,yBAA0B,KAC1B,mBAAoB,KACpB,kBAAmB,KACnB,eAAgB,KAChB,uBAAwB,KACxB,sBAAuB,KACvB,iBAAkB,KAClB,eAAgB,KAChB,qBAAsB,MAE1BjH,MAAO,CACHC,UAAW95C,OACX+5C,mBAAoB33B,QACpB8nC,UAAWrmD,OACX0lD,eAAgB1lD,OAChBsmD,oBAAqB,CAAC/nC,QAASqzB,UAC/Bp2B,UAAW,GACX+qC,gBAAiB,GACjBC,yBAA0BjoC,QAC1BkoC,eAAgBloC,QAChB44B,SAAU54B,QACVmoC,kBAAmB,GACnBC,YAAapoC,QACbqoC,oBAAqBroC,QACrB84B,YAAa,GACbY,kBAAmB15B,QACnBsoC,WAAYtoC,QACZc,OAAQ,CAACuyB,SAAUl6B,OAAQvb,QAC3B2qD,mBAAoB,CAACvoC,QAASqzB,UAC9BmV,mBAAoBxoC,QACpB85B,KAAMl8C,OACNm8C,kBAAmB/5B,QACnByoC,UAAW,CAACpV,SAAUl6B,OAAQvb,QAC9B8qD,SAAU,CAACrV,SAAUl6B,OAAQvb,QAC7B+qD,UAAW,CAACtV,SAAUl6B,OAAQvb,QAC9BmkD,SAAU,CAAC1O,SAAUl6B,OAAQvb,QAC7B88C,eAAgBrH,SAChBwH,YAAaxH,SACbqU,UAAWrU,SACXsU,WAAYtU,SACZuV,SAAUvV,SACVwV,SAAUxV,SACVqI,cAAerI,SACfwI,gBAAiBxI,SACjByV,SAAUzV,SACV0V,YAAa1V,SACb2V,cAAe3V,SACf4V,UAAW5V,SACX6V,QAAS7V,SACT8V,gBAAiB9V,SACjB+V,SAAU,CAAC/V,SAAU5xC,OAAQ7D,QAC7ByrD,cAAerpC,QACfspC,gBAAiBtpC,QACjBM,WAAYN,QACZjD,QAASiD,QACTupC,aAAc3rD,OACd4rD,gBAAiBxpC,QACjBypC,UAAWzpC,QACXq+B,SAAUllC,OACVsqC,MAAO7lD,OACP8rD,cAAe,GACfC,aAAc7mD,MACd07C,QAASx+B,QACT1Q,MAAO,CAAC+jC,SAAUl6B,OAAQvb,QAC1BgsD,YAAa,MAGrBx6B,EAAQ2nB,QAAUA,GAClBA,GAAQwI,aAAe,QACvBxI,GAAQiI,mBAAqB,CACzB8I,UAAW,CAAE7I,kBAAkB,EAAOC,WAAY,aAClDkK,SAAU,CAAEnK,kBAAkB,EAAOC,WAAY,YACjDkR,YAAa,CAAEnR,kBAAkB,EAAMC,WAAY,iBAEvD,IAAIpI,GAAaS,EAAQ6H,6BAA6B,CAClDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,YAAa,KACb,kBAAmB,KACnB,wBAAyB,KACzB,mBAAoB,KACpB,YAAa,KACb,YAAa,KACb,gBAAiB,MAErBjH,MAAO,CACH4Y,GAAI,CAAC5uD,OAAQ7D,QACbyf,SAAU,GACVizC,eAAgB,CAAC7uD,OAAQ7D,QACzB0f,UAAW,CAAC7b,OAAQ7D,QACpB2yD,GAAI,CAAC9uD,OAAQ7D,QACbwf,GAAI,GACJiD,OAAQ,CAAC5e,OAAQ7D,WAGzBwxB,EAAQ0nB,WAAaA,GACrBA,GAAWyI,aAAe,WAC1B,IAAIpuC,GAAcomC,EAAQ6H,6BAA6B,CACnDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,0BAA2B,KAC3B,aAAc,KACd,iBAAkB,KAClB,aAAc,KACd,oBAAqB,KACrB,cAAe,MAEnBjH,MAAO,CACH+H,iBAAkBx/B,QAClBjT,IAAK,GACLiQ,QAASpf,OACTkP,IAAK,GACL2yC,WAAYz/B,QACZtd,KAAM9E,UAGdwxB,EAAQje,YAAcA,GACtBA,GAAYouC,aAAe,kBAC3BpuC,GAAYwuC,oBAAqB,EACjCxuC,GAAYyuC,kBAAoB,CAC5Bl9C,KAAM,SAEV,IAAIm0C,GAAqBU,EAAQ6H,6BAA6B,CAC1DV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,mBAAoB,KACpB,kBAAmB,KACnB,qBAAsB,KACtB,gBAAiB,KACjB,iBAAkB,KAClB,iBAAkB,MAEtBjH,MAAO,CACH+Y,UAAWxwC,QACX25B,SAAU35B,QACVsE,YAAatE,QACbi9B,OAAQj9B,QACRi+B,QAASj+B,QACTm+B,QAASn+B,WAGjBoP,EAAQynB,mBAAqBA,GAC7BA,GAAmB0I,aAAe,mBAClC,IAAInuC,GAAiBmmC,EAAQ6H,6BAA6B,CACtDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,iBAAkB,KAClB,cAAe,KACf,cAAe,MAEnBjH,MAAO,CACHz6B,QAASpf,OACTgG,KAAMoc,QACNtd,KAAM9E,UAGdwxB,EAAQhe,eAAiBA,GACzBA,GAAemuC,aAAe,kBAC9BnuC,GAAeuuC,oBAAqB,EACpCvuC,GAAewuC,kBAAoB,CAC/Bl9C,KAAM,YAEV,IAAIk0C,GAAgBW,EAAQ6H,6BAA6B,CACrDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,6BAA8B,KAC9B,yBAA0B,KAC1B,oBAAqB,KACrB,kBAAmB,KACnB,mBAAoB,KACpB,sBAAuB,KACvB,cAAe,KACf,uBAAwB,KACxB,sBAAuB,KACvB,0BAA2B,KAC3B,gBAAiB,KACjB,eAAgB,KAChB,gBAAiB,KACjB,eAAgB,KAChB,sBAAuB,KACvB,mBAAoB,KACpB,oBAAqB,KACrB,qBAAsB,KACtB,kBAAmB,KACnB,mBAAoB,KACpB,2BAA4B,KAC5B,qBAAsB,KACtB,uBAAwB,MAE5BjH,MAAO,CACHgZ,oBAAqBzwC,QACrB4gC,gBAAiB5gC,QACjB0wC,WAAY1wC,QACZ3C,SAAU,GACVJ,UAAW,GACX0zC,aAAc,CAAClvD,OAAQ7D,QACvByK,KAAM,GACNuoD,cAAehzD,OACfizD,aAAc,GACdC,iBAAkBlzD,OAClByE,OAAQzE,OACR4d,MAAO5d,OACPmzD,OAAQnzD,OACRozD,MAAO3d,SACP4d,aAAc5d,SACd6d,UAAW7d,SACX8d,WAAY9d,SACZ+d,YAAa/d,SACbge,SAAUhe,SACVie,UAAWje,SACXke,kBAAmBp4C,OACnBq4C,YAAar4C,OACbs4C,cAAezxC,WAGvBoP,EAAQwnB,cAAgBA,GACxBA,GAAc2I,aAAe,cAC7B3I,GAAcoI,mBAAqB,CAC/B2R,aAAc,CAAE1R,kBAAkB,EAAOC,WAAY,iBAEzD,IAAIxuC,GAAc6mC,EAAQ6H,6BAA6B,CACnDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,6BAA8B,KAC9B,cAAe,KACf,wBAAyB,KACzB,qBAAsB,KACtB,0BAA2B,KAC3B,yBAA0B,KAC1B,uBAAwB,KACxB,uBAAwB,KACxB,mBAAoB,MAExBjH,MAAO,CACHia,oBAAqB9zD,OACrB2yC,KAAM3yC,OACN+zD,eAAgB3xC,QAChBk9B,YAAal9B,QACbuD,iBAAkB3lB,OAClBg0D,gBAAiB5xC,QACjB6xC,cAAe7xC,QACf8xC,cAAel0D,OACfm0D,UAAW,CAAC/xC,QAASpiB,WAG7BwxB,EAAQ1e,YAAcA,GACtBA,GAAY6uC,aAAe,YAC3B,IAAI5I,GAAgBY,EAAQ6H,6BAA6B,CACrDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,gCAAiC,KACjC,6BAA8B,KAC9B,qBAAsB,KACtB,kCAAmC,KACnC,cAAe,KACf,iBAAkB,KAClB,eAAgB,MAEpBjH,MAAO,CACHua,uBAAwBhyC,QACxBiyC,oBAAqBjyC,QACrBkyC,YAAat0D,OACbu0D,yBAA0BnyC,QAC1Bxf,KAAM5C,OACN4gD,QAASx+B,QACT1Q,MAAO6J,UAGfiW,EAAQunB,cAAgBA,GACxBA,GAAc4I,aAAe,cAC7B,IAAI/tC,GAAc+lC,EAAQ6H,6BAA6B,CACnDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,wBAAyB,KACzB,kBAAmB,KACnB,kCAAmC,KACnC,cAAe,KACf,uBAAwB,KACxB,4BAA6B,MAEjCjH,MAAO,CACH2a,eAAgBpyC,QAChBqyC,SAAUryC,QACVsyC,yBAA0Bn5C,OAC1Bo3B,KAAM3yC,OACN20D,cAAe30D,OACf40D,mBAAoB50D,UAG5BwxB,EAAQ5d,YAAcA,GACtBA,GAAY+tC,aAAe,YAC3B,IAAI7I,GAASa,EAAQ6H,6BAA6B,CAC9CV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,kBAAmB,KACnB,eAAgB,KAChB,mBAAoB,KACpB,kBAAmB,KACnB,gBAAiB,KACjB,cAAe,KACf,sBAAuB,KACvB,eAAgB,KAChB,YAAa,KACb,cAAe,MAEnBjH,MAAO,CACHgX,SAAUpb,SACVpX,MAAO9iB,OACPu1C,UAAW9wD,OACX+wD,SAAUx1C,OACVy1C,OAAQhxD,OACRo7B,KAAMv3B,OACNotD,aAAc11C,OACd21C,MAAOzb,SACP12C,GAAI8E,OACJiB,KAAM9E,UAGdwxB,EAAQsnB,OAASA,GACjBA,GAAO6I,aAAe,OACtB,IAAI9I,GAA2Bc,EAAQ6H,6BAA6B,CAChEV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,qBAAsB,KACtB,mBAAoB,KACpB,qBAAsB,MAE1BjH,MAAO,CACHgb,YAAa70D,OACb2kD,UAAW3kD,OACX2c,YAAa,CAACpB,OAAQvb,WAG9BwxB,EAAQqnB,yBAA2BA,GACnCA,GAAyB8I,aAAe,yBACxC9I,GAAyBkJ,oBAAqB,EAC9C,IAAInJ,GAAYe,EAAQ6H,6BAA6B,CACjDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,uBAAwB,KACxB,mBAAoB,KACpB,wBAAyB,KACzB,cAAe,KACf,yBAA0B,MAE9BjH,MAAO,CACHib,cAAe90D,OACf+0D,UAAW/0D,OACXg1D,eAAgBh1D,OAChB2yC,KAAM3yC,OACNi1D,gBAAiB7yC,WAGzBoP,EAAQonB,UAAYA,GACpBA,GAAU+I,aAAe,UACzB,IAAIhJ,GAAiBgB,EAAQ6H,6BAA6B,CACtDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,oBAAqB,KACrB,oBAAqB,KACrB,iBAAkB,KAClB,uBAAwB,KACxB,oBAAqB,KACrB,cAAe,MAEnBjH,MAAO,CACHqb,WAAYzf,SACZ0f,WAAY1f,SACZv2B,QAASkD,QACTgzC,cAAe75C,OACf85C,WAAYr1D,OACZ8E,KAAM9E,UAGdwxB,EAAQmnB,eAAiBA,GACzBA,GAAegJ,aAAe,eAC9B,IAAIruC,GAAqBqmC,EAAQ6H,6BAA6B,CAC1DV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,0BAA2B,KAC3B,aAAc,KACd,iBAAkB,KAClB,aAAc,KACd,cAAe,KACf,cAAe,MAEnBjH,MAAO,CACH+H,iBAAkBx/B,QAClBjT,IAAKoM,OACL6D,QAASpf,OACTkP,IAAKqM,OACLvV,KAAMoc,QACNtd,KAAM9E,UAGdwxB,EAAQle,mBAAqBA,GAC7BA,GAAmBquC,aAAe,kBAClCruC,GAAmByuC,oBAAqB,EACxCzuC,GAAmB0uC,kBAAoB,CACnCl9C,KAAM,gBAEV,IAAImO,GAAY0mC,EAAQ6H,6BAA6B,CACjDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,gCAAiC,KACjC,oBAAqB,KACrB,iCAAkC,KAClC,yBAA0B,KAC1B,eAAgB,KAChB,oBAAqB,MAEzBjH,MAAO,CACHyb,uBAAwB7f,SACxB8f,WAAYrwD,MACZswD,wBAAyBpzC,QACzBouC,gBAAiBpuC,QACjB0jC,MAAOjiD,OACP4xD,WAAYvwD,SAGpBssB,EAAQve,UAAYA,GACpBA,GAAU0uC,aAAe,UACzB1uC,GAAUmuC,mBAAqB,CAC3BsU,UAAW,CAAErU,kBAAkB,EAAMC,WAAY,cACjD1kC,aAAc,CAAEykC,kBAAkB,EAAOC,WAAY,SACrDwE,MAAO,CAAEzE,kBAAkB,EAAOC,WAAY,SAC9CqU,UAAW,CAAEtU,kBAAkB,EAAMC,WAAY,eAErD,IAAI5I,GAAiBiB,EAAQ6H,6BAA6B,CACtDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,aAAc,KACd,wBAAyB,KACzB,eAAgB,KAChB,aAAc,KACd,wBAAyB,KACzB,aAAc,KACd,wBAAyB,KACzB,aAAc,KACd,wBAAyB,MAE7BjH,MAAO,CACH+b,IAAK51D,OACL61D,eAAgB71D,OAChByY,MAAOzY,OACPmP,IAAKnP,OACL81D,eAAgB91D,OAChBkP,IAAKlP,OACL+1D,eAAgB/1D,OAChBg2D,IAAKh2D,OACLi2D,eAAgBj2D,UAGxBwxB,EAAQknB,eAAiBA,GACzBA,GAAeiJ,aAAe,QAC9B,IAAIrvC,GAAUqnC,EAAQ6H,6BAA6B,CAC/CV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,gBAAiB,KACjB,aAAc,KACd,wBAAyB,KACzB,gBAAiB,KACjB,0BAA2B,KAC3B,0BAA2B,KAC3B,qBAAsB,KACtB,8BAA+B,KAC/B,4BAA6B,KAC7B,eAAgB,KAChB,sBAAuB,KACvB,mBAAoB,KACpB,iBAAkB,KAClB,oBAAqB,KACrB,mBAAoB,KACpB,4BAA6B,KAC7B,kBAAmB,KACnB,2BAA4B,KAC5B,aAAc,KACd,2BAA4B,KAC5B,+BAAgC,KAChC,+BAAgC,KAChC,sBAAuB,KACvB,aAAc,KACd,wBAAyB,KACzB,aAAc,KACd,wBAAyB,KACzB,YAAa,KACb,uBAAwB,KACxB,wBAAyB,KACzB,wBAAyB,KACzB,aAAc,KACd,wBAAyB,KACzB,qBAAsB,KACtB,eAAgB,KAChB,iBAAkB,KAClB,oBAAqB,KACrB,iCAAkC,MAEtCjH,MAAO,CACHiO,OAAQ9nD,OACR41D,IAAK51D,OACL61D,eAAgB71D,OAChB4mD,OAAQ5mD,OACR+nD,iBAAkB/nD,OAClBgoD,iBAAkBhoD,OAClBgtD,YAAahtD,OACbioD,qBAAsBjoD,OACtBkoD,mBAAoBloD,OACpByY,MAAOzY,OACPitD,aAAcjtD,OACdmoD,UAAWnoD,OACXooD,QAASpoD,OACT6mD,WAAY7mD,OACZipD,UAAWjpD,OACXkpD,mBAAoBlpD,OACpBmpD,SAAUnpD,OACVktD,kBAAmBltD,OACnBgmD,IAAKhmD,OACLgwD,kBAAmBhwD,OACnBiwD,sBAAuBjwD,OACvBkwD,sBAAuBlwD,OACvBimD,aAAcjmD,OACdmP,IAAKnP,OACL81D,eAAgB91D,OAChBkP,IAAKlP,OACL+1D,eAAgB/1D,OAChB8mD,GAAI9mD,OACJkmD,cAAelmD,OACfqoD,eAAgBroD,OAChBsoD,eAAgBtoD,OAChBg2D,IAAKh2D,OACLi2D,eAAgBj2D,OAChBuoD,YAAavoD,OACbmmD,MAAOnmD,OACPmwD,QAASnwD,OACTowD,WAAYpwD,OACZwoD,wBAAyBxoD,UAGjCwxB,EAAQlf,QAAUA,GAClBA,GAAQqvC,aAAe,QACvB,IAAIlJ,GAAOkB,EAAQ6H,6BAA6B,CAC5CV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,cAAe,KACf,iBAAkB,KAClB,kBAAmB,KACnB,eAAgB,KAChB,aAAc,MAElBjH,MAAO,CACH72B,KAAMzH,OACNk0C,QAASl0C,OACTiwC,SAAU3nD,OACV6rD,MAAOn0C,OACP0H,IAAK1H,UAGbiW,EAAQinB,KAAOA,GACfA,GAAKkJ,aAAe,KACpB,IAAInJ,GAAYmB,EAAQ6H,6BAA6B,CACjDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,kBAAmB,KACnB,eAAgB,KAChB,iBAAkB,MAEtBjH,MAAO,CACHmB,SAAU54B,QACVxR,MAAO1L,MACP07C,QAASx+B,WAGjBoP,EAAQgnB,UAAYA,GACpBA,GAAUmJ,aAAe,UACzBnJ,GAAU4I,mBAAqB,CAC3BlxC,KAAM,CAAEmxC,kBAAkB,EAAMC,WAAY,UAEhD,IAAI/I,GAAgBoB,EAAQ6H,6BAA6B,CACrDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,kBAAmB,KACnB,cAAe,KACf,kBAAmB,KACnB,iBAAkB,KAClB,kBAAmB,KACnB,cAAe,KACf,iBAAkB,KAClB,iBAAkB,KAClB,gBAAiB,MAErBjH,MAAO,CACHmB,SAAU54B,QACV+uC,KAAMnxD,OACNqxD,SAAUrxD,OACVmc,QAAS,GACTimC,SAAU,GACVx/C,KAAM5C,OACN0gD,QAAS1gD,OACT4gD,QAASx+B,QACTovC,OAAQxxD,UAGhBwxB,EAAQ+mB,cAAgBA,GACxBA,GAAcoJ,aAAe,eAC7BpJ,GAAcwJ,oBAAqB,EACnC,IAAI5uC,GAAcwmC,EAAQ6H,6BAA6B,CACnDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,mBAAoB,KACpB,gBAAiB,KACjB,kBAAmB,KACnB,uBAAwB,KACxB,uBAAwB,KACxB,cAAe,KACf,sBAAuB,KACvB,yBAA0B,KAC1B,qBAAsB,KACtB,qBAAsB,MAE1BjH,MAAO,CACHpoC,UAAWzR,OACX4gB,OAAQ5gB,OACRiiD,SAAUjiD,OACVwc,cAAei5B,SACf54B,cAAe7c,OACfiI,KAAMjI,OACNswD,aAActwD,OACdwwD,gBAAiBpuC,QACjBrF,YAAa/c,OACbgd,YAAa,CAACnZ,OAAQ4xC,SAAUz1C,WAGxCwxB,EAAQre,YAAcA,GACtBA,GAAYwuC,aAAe,aAC3BxuC,GAAY4uC,oBAAqB,EACjC5uC,GAAYiuC,mBAAqB,CAC7BpkC,YAAa,CAAEqkC,kBAAkB,EAAOC,WAAY,gBAExD,IAAIhJ,GAAmBqB,EAAQ6H,6BAA6B,CACxDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,0BAA2B,KAC3B,wBAAyB,KACzB,0BAA2B,KAC3B,aAAc,KACd,iBAAkB,KAClB,aAAc,KACd,iBAAkB,KAClB,oBAAqB,KACrB,cAAe,KACf,cAAe,KACf,4BAA6B,MAEjCjH,MAAO,CACHyM,iBAAkB7Q,SAClB8Q,eAAgBvmD,OAChB4hD,iBAAkBx/B,QAClBjT,IAAK,GACLiQ,QAASpf,OACTkP,IAAK,GACLhG,QAAS,GACT24C,WAAYz/B,QACZpc,KAAMoc,QACNtd,KAAM9E,OACN8hD,mBAAoBrM,YAG5BjkB,EAAQ8mB,iBAAmBA,GAC3BA,GAAiBqJ,aAAe,kBAChCrJ,GAAiByJ,oBAAqB,EACtCzJ,GAAiB0J,kBAAoB,CACjCl9C,KAAM,YAEV,IAAI2O,GAAgBkmC,EAAQ6H,6BAA6B,CACrDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,kBAAmB,KACnB,mBAAoB,KACpB,gBAAiB,KACjB,mBAAoB,KACpB,cAAe,KACf,oCAAqC,MAEzCjH,MAAO,CACHoV,SAAUjvD,OACVkG,UAAWuvC,SACXhvC,OAAQgvC,SACRyZ,UAAW3zC,OACXzW,KAAM9E,OACNmvD,2BAA4B/sC,WAGpCoP,EAAQ/d,cAAgBA,GACxBA,GAAckuC,aAAe,cAC7BnwB,EAAQ0vB,QAAU3uC,G,6OCxsFd2jD,EAAoC,aACpCC,EAAa,OAAMC,QAAQ,CAC3BC,eAAgB,aAChBC,KAAM,SAASr+C,GACX,IAAIjO,EAAO3D,KACX2D,EAAKusD,iBAAmB,EACxBvsD,EAAKiO,UAAYA,EACjBjO,EAAKwsD,SAAW,GAChBxsD,EAAKysD,eAAiB,GACtB,eAAKpwD,KAAKqwD,iBAAmB,IAAI,SAAUjvD,EAAOQ,GAC9C,IAAI8qC,EAAQ/oC,EAAK2sD,cAAc1uD,IAAS,GACxC8qC,EAAM6jB,QAAS,EAAM7jB,EAAM8jB,cAAe,EAC1C7sD,EAAK3D,MAAQ,qBAAU0sC,OAG/B+jB,KAAM,aACNJ,cAAe,aACfC,cAAe,aACfI,cAAe,aACfC,YAAa,WACT3wD,KAAKkwD,oBAETU,UAAW,WACH5wD,KAAKkwD,iBAAmB,IACxBlwD,KAAKkwD,mBACAlwD,KAAKkwD,kBACNlwD,KAAKgwD,mBAIjBp3C,OAAQ,SAAShX,GACb,IAAIgQ,EAAY5R,KAAK4R,UACjBi/C,EAAcj/C,EAAUk/C,aAC5B,OAAI,IAAM5wD,UAAUtG,QAAUi3D,GACpBjvD,KAAQivD,IACVA,EAAYjvD,GAAQgQ,EAAUgH,OAAOhX,IAElCivD,EAAYjvD,IAEhBgQ,EAAUgH,OAAO9Z,MAAM8S,EAAW1R,YAE7C6wD,cAAe,SAASnvD,EAAMC,GAC1B,IAAI+P,EAAY5R,KAAK4R,UACjBi/C,EAAcj/C,EAAUk/C,aAI5B,OAHID,IACAA,EAAYjvD,GAAQC,GAEjB+P,EAAUo/C,8BAA8BpvD,EAAMC,IAEzD0b,SAAU,SAAS3b,GACf,IAAIivD,EAAc7wD,KAAK4R,UAAUk/C,aACjC,OAAID,GACMjvD,KAAQivD,IACVA,EAAYjvD,GAAQ,OAAoBvI,OAAOuI,IAE5CivD,EAAYjvD,IAEhB,OAAoBvI,OAAOuI,IAEtCkI,GAAI,WACA,OAAO9J,KAAK4R,UAAU9H,GAAGhL,MAAMkB,KAAK4R,UAAW1R,YAEnD+wD,IAAK,WACD,OAAOjxD,KAAK4R,UAAUq/C,IAAInyD,MAAMkB,KAAK4R,UAAW1R,YAEpDgxD,cAAe,SAAS7hB,GAChBA,EAAKztC,QAAQ5B,KAAKmwD,WAClBnwD,KAAKmxD,aAAa9hB,EAAKztC,KAAM5B,KAAKowD,eAAe/gB,EAAKztC,OACtDytC,EAAK+hB,SAAU,IAGvBC,UAAW,SAASC,GAChB,OAAOtxD,KAAKmwD,SAASmB,IAEzBh0C,QAAS,SAAS1b,EAAMC,EAAO0vD,GAC3B,IAAIr7C,EAASq7C,EAAQ7zD,IAAI,GACrB8zD,EAAS,SAAW5vD,GAAQ,OAASA,EAAO,QAAU,GACtDsU,EAAOu7C,aACPv7C,EAAOu7C,aAAaD,EAAS5vD,EAAMC,GAEnC0vD,EAAQG,KAAKF,EAAS5vD,EAAMC,IAGpCoX,iBAAkB,WACd,OAAOjZ,KAAK4R,UAAUqH,iBAAiBna,MAAMkB,KAAK4R,UAAW1R,YAEjEyxD,cAAe,SAAS/vD,GACpB,OAAO5B,KAAK4R,UAAUggD,aAAahwD,IAEvCuvD,aAAc,SAASG,EAAYO,GAC/B,GAAI,eAAWP,GAAa,CACxB,IAAIQ,EAAS9xD,KAAK4R,UAAUmgD,cAAcT,EAAW91C,KAAKxb,MAAO6xD,GACjE,OAAO,SAASjuD,GACZkuD,EAAO,CACHE,MAAOpuD,KAIf5D,KAAKmwD,SAASmB,GAActxD,KAAK4R,UAAUqgD,sBAAsBX,EAAYO,GAC7E7xD,KAAKowD,eAAekB,GAAcO,GAG1CK,cAAe,SAASZ,EAAYx7C,GAChC,IAAIg8C,EAAS9xD,KAAKmwD,SAASmB,GAC3B,OAAOQ,GAAUA,EAAOh8C,IAE5Bq8C,QAAS,WACL,IAAIxuD,EAAO3D,KACX,eAAK2D,EAAK0sD,iBAAmB,IAAI,WAC7B1sD,EAAK3D,MAAMoyD,YAGnBx6C,gBAAiB,SAASy6C,GACtB,IAAIC,EAAgBtyD,KAAK4R,UAAU2gD,KACnC,MAAO,MAAQD,EAAct+C,MAAM,GAAGlW,eAAiBu0D,EAAY,IAAMA,EAAY,KAEzFlzC,wBAAyB,WACrB,IAAIqzC,EAAgBxyD,KAAK4R,UAAU2gD,OAAS1C,EAAoC,KAAO,YACvF,OAAO7vD,KAAK4X,gBAAgB46C,IAEhCC,oBAAqB,SAAS57C,GAC1B,IAAI67C,EAAe77C,EAASsH,QAAQ,IAAMne,KAAKmf,2BAA2BC,SAC1E,OAAOszC,EAAa9kE,GAAGoS,KAAK4R,UAAUiF,eAG1C87C,EAAa7C,EACb8C,EAAiBD,EAAW5C,QAAQ,CACpC1yC,QAAS,SAASzb,GACd,OAAO5B,KAAK4R,UAAUihD,OAAOjxD,IAEjCkxD,SAAU,WACN,OAAO9yD,KAAK4R,UAAUihD,UAG1BE,EAAOjD,EAAWC,QAAQ,CAC1BiD,SAAU,WACN,OAAOhzD,KAAK4R,UAAUqhD,WAE1BjD,eAAgB,WACZhwD,KAAKC,YACAD,KAAKgzD,YAAchzD,KAAKkzD,gBACzBlzD,KAAKmzD,gBAAiB,EACtBnzD,KAAK4R,UAAUwhD,gBAAiB,GAEhCpzD,KAAKmzD,iBACLnzD,KAAKmzD,gBAAiB,EACtBnzD,KAAK+H,OAAO/H,KAAKqzD,YAGzBC,YAAa,SAASC,EAAeC,GACjCxzD,KAAKmzD,gBAAiB,EACtBnzD,KAAK4R,UAAUwhD,eAAiB,mBAAgBpzD,KAAK4R,UAAUwhD,gBAAkBG,GACjFvzD,KAAKkzD,cAAgBlzD,KAAKkzD,eAAiBM,GAE/CC,YAAa,aACbC,YAAa,aACbC,eAAgB,WACZ,OAAO3zD,KAAKqzD,UAEhBpD,KAAM,SAASr+C,GACX5R,KAAKC,SAAS2R,GACd5R,KAAK4zD,gBAAkB,uBACvB5zD,KAAK6zD,gBAAkB,wBAE3Bn8C,QAAS,WACL,OAAO1X,KAAK8zD,WAEhBC,iBAAkB,WACd,IAAIl9C,EAAW7W,KAAK0X,UACpB,IAAKb,EACD,OAAO,EAEX,IAAIm9C,EAAYC,WAAWp9C,EAAS4F,IAAI,eAAiB,EACrDy3C,EAAeD,WAAWp9C,EAAS4F,IAAI,kBAAoB,EAC3D03C,EAAet9C,EAASnZ,IAAI,GAAGy2D,aACnC,OAAOA,EAAeH,EAAYE,GAEtCl8C,UAAW,WACP,OAAO,GAEXo8C,YAAa,SAASxyD,GAClB,OAAO5B,KAAK4R,UAAUyiD,aAAazyD,IAEvCmG,OAAQ,SAASusD,EAASx+C,GACtB,IAAIe,EAAW7W,KAAK8zD,UAChB97C,EAAYhY,KAAKgY,aAChBnB,GAAay9C,KAGlBt0D,KAAKkzD,eAAgB,EAChBr8C,IACDA,EAAW7W,KAAK8zD,UAAY,eAAE,SAAS17C,SAASk8C,GAChDt0D,KAAKqzD,SAAWiB,GAEpBz9C,EAAS09C,YAAY,aAAcv8C,GAC/BA,IACAhY,KAAK4R,UAAUk/C,aAAe,GAC9B9wD,KAAKyzD,YAAY39C,GACjB9V,KAAK4R,UAAUk/C,kBAAe,EAC9B9wD,KAAK4zD,gBAAgBY,KAAK1+C,MAGlC2+C,OAAQ,WACJz0D,KAAK00D,YAAa,EAClB10D,KAAK0zD,cACL1zD,KAAK6zD,gBAAgBW,OACrBx0D,KAAK00D,YAAa,GAEtBC,MAAO,SAASC,GACZ50D,KAAK0X,UAAUha,IAAI,GAAGi3D,MAAM,CACxBC,cAAeA,OAIvBC,EAA0B,IAC1BC,EAAiB,SAASnxD,EAAMoxD,GAChC,IAAIC,EAAUD,EAAeC,QACzBC,EAAeF,EAAeE,aAC9BC,EAAkBH,EAAeG,iBAAmB,GACpDC,EAAYJ,EAAeI,WAAa,GACvCJ,EAAeG,kBACZD,GACAD,EAAQlzD,MAAK,SAAUszD,EAASC,GAC5B,IAAIC,EAAcL,EAAa32D,QAAQ82D,EAAQxzD,MAC3C2zD,EAAcN,EAAa32D,QAAQ+2D,EAAQzzD,MAO/C,OANI0zD,EAAc,IACdA,EAAcT,GAEdU,EAAc,IACdA,EAAcV,GAEXS,EAAcC,KAG7B,eAAKP,GAAS,WACV,IAAIQ,EAAcx1D,KAAKw1D,YACnBC,EAAaz1D,KAAK4B,KAClB8zD,EAAQ11D,KAAK01D,MACjBF,GAAe,eAAKA,GAAa,SAAU5zD,EAAMnD,GAC7C,GAAIy2D,EAAgBtzD,GAChB,MAAM,OAAO8pB,MAAM,QAAS+pC,EAAY7zD,GACrC,KAAMnD,GAAQA,EAAKk3D,YAAcl3D,EAAKk3D,WAAWhD,IAEpD,MADAl0D,EAAKk3D,WAAWhD,GACV,OAAOjnC,MAAM,QAAS+pC,EAAY7zD,GAE5CszD,EAAgBtzD,GAAQnD,KAE5Bi3D,GAAS,eAAKA,GAAO,SAAU9zD,EAAMnD,GACjC,GAAI02D,EAAUvzD,GACV,MAAM,OAAO8pB,MAAM,QAAS+pC,EAAY7zD,GACrC,KAAMnD,GAAQA,EAAKk3D,YAAcl3D,EAAKk3D,WAAW5C,IACpD,MAAM,OAAOrnC,MAAM,QAAS+pC,EAAY7zD,GAE5CuzD,EAAUvzD,GAAQnD,QAG1B,eAAKu2D,GAAS,WACV,IAAIY,EAAY51D,KAAK41D,UACjBA,IACAA,EAAUJ,aAAe,eAAKI,EAAUJ,aAAa,SAAU5zD,EAAMi0D,GAC7DX,EAAgBtzD,KAChBszD,EAAgBtzD,GAAQszD,EAAgBtzD,GAAMmuD,QAAQ8F,OAG9DD,EAAUF,OAAS,eAAKE,EAAUF,OAAO,SAAU9zD,EAAMi0D,GACjDV,EAAUvzD,KACVuzD,EAAUvzD,GAAQuzD,EAAUvzD,GAAMmuD,QAAQ8F,WAK1Dd,EAAeG,gBAAkBA,EACjCH,EAAeI,UAAYA,GAE/B,IAAIW,EAAoB,SAASC,GAC7B,IAAIC,EAAc,GAwBlB,OAvBA,eAAKD,GAAa,SAAUn0D,EAAMq0D,GAC9B,IAAIC,EAAa,IAAID,EAAWtyD,GAChCuyD,EAAWt0D,KAAOA,EAChB,SAAS+B,EAAM/B,EAAMs0D,GACnB,IAAIxF,EAAgBwF,EAAWxF,gBAC3BA,GACA,eAAKA,GAAe,SAAUtvD,EAAO8Y,GACjC,IAAIg8C,EAAWh8C,GASX,MAAM,OAAOwR,MAAM,QAAS9pB,EAAMsY,GARlC,GAAKvW,EAAKuW,GAKN,MAAM,OAAOwR,MAAM,QAASxR,GAJ5BvW,EAAKuW,GAAc,WACf,OAAOg8C,EAAWh8C,GAAYpb,MAAMo3D,EAAYh2D,eAPtE,CAiBAyD,EAAM/B,EAAMs0D,GACdF,EAAYp0D,GAAQs0D,KAEjBF,GAEXryD,EAAKiuD,aAAekE,EAAkBZ,GACtCvxD,EAAKkvD,OAASiD,EAAkBX,IAEhCgB,EAAwB,SAASxyD,EAAMuW,EAAYm1B,GACnDA,EAAOA,GAAQ,GACX1rC,EAAKiuD,cACL,eAAKjuD,EAAKiuD,cAAc,WACpB5xD,KAAKka,IAAela,KAAKka,GAAYpb,MAAMkB,KAAMqvC,MAGrD1rC,EAAKkvD,QACL,eAAKlvD,EAAKkvD,QAAQ,WACd7yD,KAAKka,IAAela,KAAKka,GAAYpb,MAAMkB,KAAMqvC,OAI9C,GACX2lB,QAAS,GACTjC,KAAMA,EACNH,eAAgBA,EAChBD,WAAYA,EACZyD,eAAgB,SAASx0D,EAAMspB,GAE3B,IADA,IAAI8pC,EAAUh1D,KAAKg1D,QACVv5D,EAAI,EAAGA,EAAIu5D,EAAQp7D,OAAQ6B,IAChC,GAAIu5D,EAAQv5D,GAAGmG,OAASA,EACpB,OAGRspB,EAAOtpB,KAAOA,EACdozD,EAAQ/xD,KAAKioB,UACNlrB,KAAKk1D,uBACLl1D,KAAKm1D,WAEhBkB,qBAAsB,SAASC,GAC3Bt2D,KAAKi1D,aAAeqB,GAExBC,iBAAkB,SAAS30D,GACvB5B,KAAKg1D,QAAU,eAAKh1D,KAAKg1D,SAAS,SAAU9pC,GACxC,OAAOA,EAAOtpB,OAASA,YAEpB5B,KAAKk1D,uBACLl1D,KAAKm1D,WAEhBL,eAAgBA,EAChBqB,sBAAuBA,GCvWZ,iBAAS,GAAI,EAAS,OAAe,CAChDnB,QAAS,K,oICMTwB,EAA0B,uBAC1BC,EAAyB,sBACd,GACXC,kBAAmB,SAAS5gD,GACxB,IAAI6gD,EACAt6C,EAAarc,KAAK4Y,OAAO,cACzBg+C,EAAkB52D,KAAK62D,oBAAoB/gD,EAAQyE,OAAOnP,UAAWiR,GACrEy6C,EAAa,OAAAr8D,EAAA,YAAO,EAAM,CAC1Bm8D,gBAAiBA,GAClB9gD,GACCihD,EAAmBD,EAAWE,YAAYC,SAASR,GACnDS,EAAuBl3D,KAAKm3D,0BAA0BL,EAAYC,GAClEK,EAAQ,eAAE,UAAUj/C,SAASnY,KAAKq3D,uBAAuBvhD,EAAQlU,OACjE01D,EAAoB,QAAUX,EAAkB32D,KAAK4R,iBAAc,IAAW+kD,OAAkB,EAASA,EAAgBhF,cAAc,WACvI4F,GAAsB,OAASD,QAAqB,IAAWA,OAAoB,EAASA,EAAkBE,0BAA0BZ,KAAqBA,EAKjK,OAJAE,EAAW99C,UAAYk+C,EACvBJ,EAAWW,UAAYL,EACvBp3D,KAAK03D,iBAAiBZ,GACtBI,GAAsBH,GAAqBjhD,EAAQ+jC,iBAAoB,SAAW0d,EAAkC,YAAb,YAA0BzhD,EAAQkhD,aAClII,GAEXC,uBAAwB,OACxBR,oBAAqB,SAASzrD,EAAWiR,GAErC,OADAA,EAAaA,GAAcrc,KAAK4Y,OAAO,cAChCxN,GAAa,WAAaA,EAAYA,EAAY,eAAoBiR,IAEjF86C,0BAA2B,SAASrhD,EAAS6hD,GACzC,IAAIT,EAAuBl3D,KAAK43D,uBAAuB9hD,EAAQkhD,aAC3DO,EAAqB,SAAWzhD,EAAQ8gD,gBAAkB,QAAU,OAKxE,OAJKM,EAAqBt9D,SACtBs9D,EAAuB,eAAE,SAAS/+C,SAASq+C,IAE/Cx2D,KAAKsd,QAAQ,OAAQ,eAAgB45C,GAC9BA,EAAqBz6C,IAAI,QAAS3G,EAAQ+jC,kBAAoB8d,EAA2BJ,EAAqB,OAEzHK,uBAAwB,SAASC,GAC7B,OAAOA,GAASA,EAAM//C,KAAK,IAAM0+C,IAErCsB,sBAAuB,SAASD,GAC5B,IAAIE,EAAsB/3D,KAAK43D,uBAAuBC,GACtD,OAAOE,GAAuBA,EAAoBC,YAEtDN,iBAAkB,SAAS5hD,GACvB,IAAIL,EAAaK,EAAQkD,UACrBi/C,EAAaniD,EAAQ2hD,UACzBhiD,GAAcwiD,GAAcxiD,EAAWskB,OAAOk+B,IAElDC,kBAAmB,SAASC,GACxB,IAEIN,EAFAr5C,EAAUxe,KAAKo4D,aACfC,EAASr4D,KAAKs4D,oBAElB,GAAKD,GAAU75C,EAAQ5kB,SAAWy+D,EAAOz+D,OAGzC,IAAK,IAAI6B,EAAI,EAAGA,EAAI+iB,EAAQ5kB,OAAQ6B,IAAK,CACrCo8D,EAAQQ,EAAO77C,GAAG/gB,GAClBuE,KAAKu4D,iBAAiBV,EAAOr5C,EAAQ/iB,GAAI08D,GACzC,IAAIK,EAAaX,EAAMz4C,SAAShb,KAAK,WACjCo0D,GAAcA,EAAWC,QACzBD,EAAWC,MAAMZ,EAAMz2D,SAASmZ,OAASiE,EAAQ/iB,MAI7D88D,iBAAkB,SAASV,EAAOt9C,EAAQ49C,GACtC,IAAK59C,EAAOsE,QACR,OAAO7e,KAAK02D,kBAAkB,CAC1B90D,KAAMu2D,EACNnB,YAAaa,EACbt9C,OAAQA,EACRs/B,gBAAiB75C,KAAK4Y,OAAO,uB,wBCtBzC8/C,EAAyB,mBACzBC,EAA6B,uBAC7BC,EAAoB,cACpBC,EAAgB,UAChBC,EAAc,QACdC,EAAoB,cACpBC,EAAsB,gBACtBC,EAAY,SACZC,EAAkB,eAClBC,GAAmB,gBACnBC,GAAmB,uBACnBC,GAAmB,aACnBC,GAAkB,eAClBC,GAA+B,yBAC/BC,GAAuB,WACvBC,GAAoB,oBACpBC,GAAgC,wBAChCC,GAAwB,CACxB5xD,OAAQ,SAAS+N,GACbA,EAAQkD,UAAU+gB,OAAOjkB,EAAQ8jD,WAGrCC,GAAuB,SAASl2D,EAAMm2D,GACtC,IAAIC,EACAC,EACAC,EAEJ,SAASC,EAAkBC,GACvB,OAAOz6B,YAAW,WACdq6B,EAAcC,EAAqB,OACnCG,GAER,OAAarwD,GAAGgwD,EAAQ,sBAAuB,WAAW,SAAUl2D,GAChEw2D,aAAaH,GACT,eAAiBr2D,EAAEnF,MACnBs7D,EAAcn2D,EAAEsS,OAChB8jD,EAAqBp2D,EAAEy2D,cACvBJ,EAAYC,EAAkB,MAE9BD,EAAYC,OAGpB,OAAapwD,GAAGgwD,EAAQ,CAAC,OAAgB,OAAeQ,EAAA,KAAcC,MAAMv+D,KAAK,KAAM,UAAW2H,EAAKwtD,cAAa,SAAUvtD,GAC1H,IAAIouD,EAAQpuD,EAAEouD,MACV+H,IACA/H,EAAM97C,OAAS6jD,EACf/H,EAAMqI,cAAgBL,GAErB,eAAEhI,EAAM97C,QAAQiI,QAAQ,KAAKvkB,SAC9BgK,EAAE42D,SAAW72D,EAAK82D,YAAYzI,EAAMqI,eAChCz2D,EAAE42D,UAAY,IACd52D,EAAE82D,WAAa,eAAiB,eAAE1I,EAAMqI,gBACxCz2D,EAAE4a,QAAU7a,EAAKy0D,aACbpG,EAAMvzD,OAAS67D,EAAA,KAAcC,KAC7B52D,EAAKg3D,gBAAgB/2D,GACdouD,EAAMvzD,OAAS,OACtBkF,EAAKi3D,UAAUh3D,GAEfD,EAAKk3D,aAAaj3D,UAMlCk3D,GAAgB,SAASzvD,GACzB,MAAI,SAAWA,EACJ,GAEJ,eAAUA,GAASA,EAAQ,KAAOA,GAEzC0vD,GAAe,SAASC,EAAMzgD,EAAQlP,GACtC2vD,EAAKC,MAAM5vD,MAAQ2vD,EAAKC,MAAMxW,SAAW,SAAWlqC,EAAOlP,MAAQ,GAAKA,GAExE6vD,GAAiB,SAASxjD,EAASyjD,GACnC,GAAKzjD,GAAYyjD,EAAjB,CAGA,IAEI1/D,EAFA2/D,EAAgB1jD,EAAQ2jD,WACxBC,EAAgBH,EAAWE,WAE/B,IAAK5/D,EAAI,EAAGA,EAAI2/D,EAAcxhE,OAAQ6B,IAAK,CACvC,IAAImG,EAAOw5D,EAAc3/D,GAAG8/D,SACvBJ,EAAWK,aAAa55D,IACzB8V,EAAQ+jD,gBAAgB75D,GAGhC,IAAKnG,EAAI,EAAGA,EAAI6/D,EAAc1hE,OAAQ6B,IAClCic,EAAQ+5C,aAAa6J,EAAc7/D,GAAG8/D,SAAUD,EAAc7/D,GAAGigE,aAG9DC,GAAc,EAAQ5I,KAAKhD,QAAQ,GAAkBA,QAAQ,CACpE6L,yBAA0B,WACtB,IAAIC,EAAmB77D,KAAK4Y,OAAO,aAC/BkjD,EAAqB97D,KAAK4Y,OAAO,uBACjC9C,EAAU,OAAArb,EAAA,WAAO,GAAIohE,EAAkB,CACvCpR,UAAW,OACXsR,eAAe,EACfC,aAAa,IAYjB,YAVI,IAAWF,IACXA,GAAqB,GAErB,SAAWA,UACJhmD,EAAQg4C,iBACRh4C,EAAQmmD,wBAEfnmD,EAAQg4C,YAAcgO,EACtBhmD,EAAQmmD,uBAAyBH,GAE9BhmD,GAEXomD,YAAa,SAASrE,EAAOf,GACrBA,EAAWn8C,SACX3a,KAAKm8D,cAActE,EAAOf,IAGlCsF,YAAa,SAAStmD,GAClB,IAAIyE,EAASzE,EAAQyE,OACjBnP,EAAYmP,EAAOnP,WAAa,eAAoBpL,KAAK4Y,OAAO,eAChEoiD,EAAO,aAAW57B,cAAc,MACpC47B,EAAKC,MAAMoB,UAAYjxD,EACvB,IAAIysD,EAAQ,eAAEmD,GAuBd,MAtBI,SAAWllD,EAAQ6E,SAAWJ,EAAO+hD,WAAa/hD,EAAO9b,MACrDuB,KAAK4R,UAAUgH,OAAO,sBACtB5Y,KAAKsd,QAAQ,cAAe/C,EAAO+hD,SAAUzE,GAGjDt9C,EAAOqhC,UACPic,EAAM1/C,SAASoC,EAAOqhC,UAEtB,WAAarhC,EAAOsE,UACpBg5C,EAAM1/C,SAASoC,EAAOqhC,UACtBic,EAAM1/C,SAASnY,KAAK4X,gBAAgBghD,KAEpCr+C,EAAOgiD,QAAU,EACjB1E,EAAMnG,KAAK,UAAWn3C,EAAOgiD,UACrBhiD,EAAOsjC,QAAU,SAAWtjC,EAAOiiD,cAAgBx8D,KAAK4Y,OAAO,sBACnE2B,EAAOlP,OAASkP,EAAOujC,YACvBkd,EAAKC,MAAMnd,SAAWgd,GAAcvgD,EAAOujC,UAAYvjC,EAAOlP,QAE9DkP,EAAOlP,OACP0vD,GAAaC,EAAMzgD,EAAQugD,GAAcvgD,EAAOlP,SAGjDwsD,GAEX4E,WAAY,SAASC,EAAWC,GAC5BA,EAAUA,GAAW,KACrB,IAAI9lD,EAAW,eAAE,IAAI8Q,OAAOg1C,EAAS,MAAMxkD,SAAS8gD,GAEpD,OADAj5D,KAAKsd,QAAQ,OAAQ,MAAOzG,GACrBA,GAEX+lD,UAAW,SAAS1/C,GAChB,OAAOA,GAAOA,EAAI2/C,UAAY,IAAM,GAExCC,aAAc,SAASt+C,EAASu+C,GAC5B,IAAIp5D,EAAO3D,KACP85D,EAAS,eAAE,WAAW3hD,SAASxU,EAAKiU,gBAAgBkhD,IAAc3gD,SAASxU,EAAKiU,gBAAgBmhD,IAWpG,GAVIv6C,IAAYu+C,GACZjD,EAAO//B,OAAOp2B,EAAKq5D,gBAAgBx+C,IAC/BoB,EAAA,KAAQq9C,QACRnD,EAAO//B,OAAO,eAAE,WAAWA,OAAO,SAEtCp2B,EAAK2Z,QAAQ,OAAQ,eAAgBw8C,IAErCn2D,EAAK2Z,QAAQ,UAAU,EAAMw8C,GAEjC95D,KAAKsd,QAAQ,OAAQ,eAAgB,eAAE,WAAWlF,SAAS0hD,IACvDiD,EACA,OAAOjD,EAEPl6C,EAAA,KAAQC,SACR,OAAa/V,GAAGgwD,EAAQ,YAAa,MAAM,SAAUl2D,GAC7CA,EAAEs5D,SACFt5D,EAAEu5D,oBAIVx5D,EAAKiV,OAAO,oBACZ,OAAa9O,GAAGgwD,EAAQ,YAAa,eAAgB95D,KAAKmxD,cAAa,SAAU9hB,GAC7E,IAAIzrC,EAAIyrC,EAAK2iB,MACTn7C,EAAW,eAAEjT,EAAEsS,QACf2hD,EAAQ,eAAEj0D,EAAEy2D,eACZ+C,EAAOvF,EAAMz4C,SACbi+C,EAAiB15D,EAAK25D,mBAAmBC,oBACzC/E,EAAa4E,EAAKh5D,KAAK,WACvBmR,EAAcsiD,EAAMz2D,QACpBo8D,EAAchF,GAAcA,EAAWC,OAASD,EAAWC,MAAMljD,GACjEgF,EAASijD,EAAcA,EAAYjjD,OAAS8iD,EAAe9nD,GAC3DkoD,EAAcL,EAAKnG,SAAS,iBAC5ByG,EAAYN,EAAKnG,SAAS,eAC1B0G,EAAoBP,EAAKnG,SAASmC,IAClCwE,EAAaR,EAAKnG,SAASiC,GAC3B2E,EAAcT,EAAKnG,SAAStzD,EAAKiU,gBAAgByhD,KACjDyE,EAAwBJ,KAAenjD,GAAUA,EAAOpP,cACxD4yD,EAAgBL,GAAaF,IAAgBhF,EAAWwF,WAAaR,EAAYQ,YAAc,OAASzjD,QAAU,IAAWA,OAAS,EAASA,EAAO2jC,mBACtJ+f,EAA0BR,KAAiBljD,GAAUA,EAAOojC,oBAC5DugB,EAA0BN,KAAgBrjD,GAAUA,EAAOmjC,YAAcnjC,EAAOijC,mBAChF2gB,GAAkBR,IAAsBE,IAAgBE,IAAkBD,IAA0BG,IAA4BC,EACpI,GAAIC,EAAgB,CACZtnD,EAASzS,KAAKq1D,MACd5iD,EAASunD,WAAW,SACpBvnD,EAASzS,KAAKq1D,IAAmB,IAErC,IAAI4E,EAAaxnD,EAAS,GAAGynD,YAAcznD,EAAS,GAAG0nD,YACnDF,EAAa,IAAM,eAAUxnD,EAAS66C,KAAK,YAC3C76C,EAAS66C,KAAK,QAAS76C,EAASta,QAChCsa,EAASzS,KAAKq1D,IAAmB,SAKjD,IAAI+E,EAAa,SAASxM,GACtB,IAAI6F,EAAQ,eAAE7F,EAAMqI,eAChBoE,EAAoB,eAAEzM,EAAM97C,QAAQiI,QAAQ,IAAMu7C,IAClD0D,EAAOvF,EAAMz4C,SACbo5C,EAAa4E,EAAKh5D,KAAK,WACvB0R,EAAU0iD,GAAcA,EAAWC,OAASD,EAAWC,MAAMZ,EAAMz2D,SACvE,GAAKy2D,EAAM15C,QAAQ,SAASvwB,GAAGokE,EAAM0M,gBAArC,CAGA,IAAIC,EAAgB,OAAAlkE,EAAA,WAAO,GAAIqb,EAAS,CACpC8oD,YAAa,eAAiB/G,GAC9B7F,MAAOA,EACP6M,UAAW7M,EAAMvzD,OAGrB,GADAkgE,EAAcnE,SAAW72D,EAAK82D,YAAY2C,GACtCqB,EAAkB7kE,OAAQ,CAC1B,IAAIklE,EAAkBL,EAAkBr6D,KAAK,gBACzC06D,EAAgBvkD,SAChBokD,EAAcpkD,OAASukD,EAAgBvkD,OACvCokD,EAAcppD,YAAc5R,EAAK25D,mBAAmByB,gBAAgBJ,EAAcpkD,OAAOnZ,QAGjG,OAAOu9D,IAmBX,OAjBA,OAAa70D,GAAGgwD,EAAQ,YAAa,gBAAgB,SAAUl2D,GAC3D,IAAIkS,EAAU0oD,EAAW56D,GACzBkS,GAAWnS,EAAKuuD,cAAc,qBAAsBp8C,MAExD,OAAahM,GAAGgwD,EAAQ,WAAY,gBAAgB,SAAUl2D,GAC1D,IAAIkS,EAAU0oD,EAAW56D,GACzBkS,GAAWnS,EAAKuuD,cAAc,qBAAsBp8C,MAExD,OAAahM,GAAGgwD,EAAQ,OAAgB,gBAAgB,SAAUl2D,GAC9D,IAAIkS,EAAU0oD,EAAW56D,GACzBkS,GAAWnS,EAAKuuD,cAAc,cAAep8C,MAEjD,OAAahM,GAAGgwD,EAAQ,OAAe,gBAAgB,SAAUl2D,GAC7D,IAAIkS,EAAU0oD,EAAW56D,GACzBkS,GAAWnS,EAAKuuD,cAAc,iBAAkBp8C,MAEpD+jD,GAAqBl2D,EAAMm2D,GACpBA,GAEXa,gBAAiB,OACjBC,UAAW,OACXC,aAAc,OACdmC,gBAAiB,SAASx+C,GAEtB,IADA,IAAIwgD,EAAkB,eAAE,cACfvjE,EAAI,EAAGA,EAAI+iB,EAAQ5kB,OAAQ6B,IAEhC,IADA,IAAI8gE,EAAU/9C,EAAQ/iB,GAAG8gE,SAAW,EAC3B7wD,EAAI,EAAGA,EAAI6wD,EAAS7wD,IACzBszD,EAAgBjlC,OAAO/5B,KAAKi/D,WAAWzgD,EAAQ/iB,KAGvD,OAAOujE,GAEXC,WAAY,SAAS1kD,GACjB,IAAIlP,EAAQkP,EAAOiiD,cAAgBjiD,EAAOlP,MACtC,mBAAqBA,IACrBA,EAAQmuD,IAEZ,IAAI0F,EAAM,eAAE,SAEZ,OADA,eAASA,EAAK7zD,GACP6zD,GAEXC,uBAAwB,SAAS5d,GAC7B,IAAI6d,EAAmBp/D,KAAKq/D,kBACxBC,EAAgBF,EAAiBhhE,OAAO29C,IAAaA,EAASrd,OAC9D6gC,EAAiBH,EAAiBhhE,OAAO29C,GAAYA,EAASrd,OAClE1+B,KAAKq/D,kBAAoB,GACzBr/D,KAAKw/D,4BAA4BF,GAAe,EAAO/d,GACvDvhD,KAAKy/D,iCAAiCF,IAE1CE,iCAAkC,SAASC,GACvC,IAAI/7D,EAAO3D,KACP0/D,EAAU9lE,QACV,iBAAY8lC,YAAW,WACnB/7B,EAAK67D,4BAA4BE,GAAW,OAIxDF,4BAA6B,SAASE,EAAWC,EAASpe,GACtD,IAAIjoD,EAAO,IAAIS,KACf,MAAO2lE,EAAU9lE,OAAQ,CACrB,IAAIgmE,EAAqBF,EAAU/tC,QAC/B7b,EAAU8pD,EAAmB9pD,QAC7B+pD,EAAM,aAAWC,cAOrB,GANKH,IAAW,eAAE7pD,EAAQkD,WAAWmF,QAAQ0hD,GAAKjmE,SAC1C2nD,IACAzrC,EAAQyrC,OAASA,GAErBqe,EAAmB7jB,SAASh0C,OAAO+N,IAEnC6pD,GAAW,IAAI5lE,KAAOT,EAAO,GAAI,CACjC0G,KAAKy/D,iCAAiCC,GACtC,QAGHA,EAAU9lE,QAAUoG,KAAKq/D,kBAAkBzlE,QAC5CoG,KAAKm/D,0BAGbY,iBAAkB,SAAShkB,GACvB,IAAIikB,EACJ,GAAIjkB,GAAYA,EAASh0C,SAAW,eAAWg0C,GAC3CikB,EAAoB,CAChBhjD,+BAAgC++B,EAAS/+B,+BACzCjV,OAAQ,SAAS+N,GACbimC,EAASh0C,OAAO+N,EAAQkD,UAAWlD,EAAQ/M,MAAO+M,EAAQyrC,QAC1DzrC,EAAQs4C,UAAYt4C,EAAQs4C,SAASztC,iBAG1C,GAAI,eAAWo7B,GAClBikB,EAAoB,CAChBj4D,OAAQ,SAAS+N,GACb,IAAImqD,EAAmBlkB,EAAS,eAAiBjmC,EAAQkD,WAAYlD,EAAQ/M,MAAO+M,EAAQyrC,QACxF0e,IAAqBA,EAAiBC,UAAY,eAAWD,KAC7DnqD,EAAQkD,UAAU+gB,OAAOkmC,GAE7BnqD,EAAQs4C,UAAYt4C,EAAQs4C,SAASztC,gBAG1C,CACH,IAAIw/C,EAAa,eAASpkB,GAAYA,EAAW,eAAEA,GAAU2V,KAAK,MAC7DyO,GAGIngE,KAAKogE,gBAAgBD,KACtBngE,KAAKogE,gBAAgBD,GAAcngE,KAAKo0D,YAAYrY,IAExDikB,EAAoBhgE,KAAKogE,gBAAgBD,IALzCH,EAAoBhgE,KAAKo0D,YAAYrY,GAQ7C,OAAOikB,GAEXK,eAAgB,SAASrnD,EAAW+iC,EAAUjmC,EAASkH,EAAgCukC,GACnF,IAAIye,EAAoBhgE,KAAK+/D,iBAAiBhkB,EAAUjmC,GACpDyE,EAASzE,EAAQyE,OACjBmjD,EAAY,SAAW5nD,EAAQ6E,QAC/B2lD,EAAmB,IAAI,cACvBC,EAAkB,CAClBvnD,UAAWA,EACXjQ,MAAO+M,EACPs4C,SAAUkS,EACVE,WAAY,KACRF,EAAiB3/C,YAGzB,GAAIq/C,EAAmB,CACnBlqD,EAAQlE,UAAY5R,KAAK4R,UACzB,IAAI8sB,EAAQnkB,IAAWA,EAAO0+B,aAAeykB,GAAa19D,KAAK4Y,OAAO,kBAAmB,IAAU2B,EAAO0+B,cAAgB1+B,EAAOsE,SAAWtE,EAAO2jC,mBAAqBwf,GAAa,WAAa5nD,EAAQ6E,WACrMqlD,EAAkBhjD,iCAAkCA,GAAoC0hB,EAGzF1+B,KAAKq/D,kBAAkBp8D,KAAK,CACxB84C,SAAUikB,EACVlqD,QAASyqD,EACT7hC,MAAOA,IALXshC,EAAkBj4D,OAAOw4D,GAQzBhf,IACAA,EAAOkf,kBAAoBlf,EAAOkf,mBAAqB,GACvDlf,EAAOkf,kBAAkBx9D,KAAKq9D,SAGlCA,EAAiBzsC,SAErB,OAAOysC,EAAiB7+C,WAE5Bi/C,WAAY,SAASC,GACjB,OAAO,eAAEA,GAAc3I,SAAS,SAAS4I,IAAI,cAAcA,IAAI,eAEnEC,aAAc,SAASC,GACnB,IAAIC,EACAC,IAAmBhhE,KAAK4Y,SAASygC,YACrC,OAAO2nB,KAAqB,QAAUD,EAAmB/gE,KAAK0gE,WAAWI,UAAmB,IAAWC,IAAoBA,EAAiB3iE,OAAO,IAAM66D,GAAWr/D,SAExKqnE,eAAgB,SAASnH,EAAQsD,EAAM8D,GACnC,IAAIJ,EAAgBI,EAAepH,GAAU95D,KAAKmhE,cAAgBnhE,KAAKmhE,eAAiBrH,EACpFsH,EAAcphE,KAAK6gE,aAAaC,GACpC,GAAIM,EAAa,CACb,IAAIC,EAAS,eAAE,WAAWlpD,SAASilD,EAAK1L,KAAK,UAE7C,OADA1xD,KAAKsd,QAAQ,OAAQ,eAAgB+jD,GAC9BA,EAAOtnC,OAAOqjC,GAEzB,OAAOA,GAEXkE,WAAY,SAASxH,EAAQsD,EAAMmE,GAC/BA,EAAiBA,GAAkB5H,GACnC4H,EAAex5D,OAAO,CAClB6xD,QAASwD,EACTpkD,UAAW8gD,KAGnBpG,YAAa,WACT,IAAI8N,EAAaxhE,KAAKyhE,YAClBD,GAAc,IACdxhE,KAAKyhE,YAAc,EACnBzhE,KAAK0hE,SAAS,CACV/kD,KAAM6kD,MAIlB/N,YAAa,SAAS7vD,GAClB,IAAI+9D,EAAQ3hE,KAAK0X,UAAU0H,SACtBuiD,IAASA,EAAMviD,SAASxlB,QACzBoG,KAAKm/D,uBAAuBv7D,IAGpCg+D,aAAc,SAAS9rD,GACnBA,EAAUA,GAAW,GACrBA,EAAQ0I,QAAUxe,KAAKs9D,mBAAmBC,oBAC1C,IAAIsE,EAAa/rD,EAAQyrC,QAAUzrC,EAAQyrC,OAAOsgB,WAC9C/H,EAAS95D,KAAK88D,aAAahnD,EAAQ0I,QAAS,WAAaqjD,GAAc,YAAcA,GAAc,WAAaA,GAEpH,OADA7hE,KAAK8hE,YAAYhI,EAAQhkD,GAClBgkD,GAEXgI,YAAa,SAAShI,EAAQhkD,GAI1B,IAHA,IAAIisD,EAAO/hE,KAAKgiE,SAASlsD,EAAQyrC,QAC7B0gB,EAAgBnsD,EAAQyrC,QAAUzrC,EAAQyrC,OAAO0gB,eAAiB,GAClEC,EAAcpsD,EAAQyrC,QAAUzrC,EAAQyrC,OAAO2gB,aAAe,GACzDzmE,EAAI,EAAGA,EAAIsmE,EAAKnoE,OAAQ6B,IAC7BuE,KAAKmiE,WAAWrI,EAAQ,OAAAr/D,EAAA,WAAO,CAC3ByiB,IAAK6kD,EAAKtmE,GACVwmE,cAAeA,EAAcxmE,GAC7BomE,WAAYK,EAAYzmE,IACzBqa,KAGXqsD,WAAY,SAASrI,EAAQhkD,GACpBA,EAAQmsD,gBACTnsD,EAAQoH,IAAIu7C,MAAQ,IAExB,IAAI2E,EAAOp9D,KAAKy8D,WAAW3mD,EAAQoH,KAC/BklD,EAAcpiE,KAAKihE,eAAenH,EAAQsD,GAC1C,WAAatnD,EAAQ+rD,YACrB7hE,KAAKqiE,aAAajF,EAAMtnD,GAE5B9V,KAAKshE,WAAWxH,EAAQsI,GACxB,IAAI5J,EAAa,OAAA/9D,EAAA,WAAO,CACpB+jB,QAAS1I,EAAQ0I,SAClB1I,EAAQoH,KACXld,KAAKsiE,gBAAgB9J,EAAY1iD,EAAQoH,KACzCld,KAAKuiE,aAAaH,EAAa5J,EAAY1iD,EAAQoH,MAEvDslD,gBAAiB,SAASjtD,EAAa0sD,GACnC,OAAQA,GAAiBA,EAAc3jE,QAAQiX,IAAgB,GAEnE8sD,aAAc,SAASjF,EAAMtnD,GAIzB,IAHA,IAAIP,EAAc,EACd2H,EAAMpH,EAAQoH,IACdsB,EAAU1I,EAAQ0I,QACb/iB,EAAI,EAAGA,EAAI+iB,EAAQ5kB,OAAQ6B,IAC5BuE,KAAKwiE,gBAAgB/mE,EAAGqa,EAAQmsD,gBAChCjiE,KAAKyiE,YAAYrF,EAAM,OAAA3iE,EAAA,WAAO,CAC1B8f,OAAQiE,EAAQ/iB,GAChB8Z,YAAaA,EACb1T,MAAOqb,EAAI8J,QAAU9J,EAAI8J,OAAOzR,GAChCmtD,SAAUxlD,EAAIylD,WAAazlD,EAAIylD,UAAUptD,IAC1CO,IAEH0I,EAAQ/iB,GAAG8gE,QAAU,EACrBhnD,GAAeiJ,EAAQ/iB,GAAG8gE,QAE1BhnD,KAIZqtD,aAAc,SAASC,EAAaC,EAAgBb,GAChD,IAAI5J,EAASwK,EAAY7K,WACrB+K,EAAYD,EAAe9K,WAC3BpiB,EAAmB51C,KAAK4Y,OAAO,oBAC/BoqD,EAAmBhjE,KAAK4X,gBAAgB2hD,IAC5C0I,EAAc/gE,SAAQ,SAAUqU,EAAanU,GACzC,IAAIy2D,EAAQQ,EAAO77C,GAAGjH,GAClB0tD,EAAWF,EAAUvmD,GAAGpb,GAC5By2D,EAAMqL,YAAYD,GACdrtB,IAAqBqtB,EAAShM,SAAS,sBACvCgM,EAAS9qD,SAAS6qD,MAG1B9H,GAAe2H,EAAYnlE,IAAI,GAAIolE,EAAeplE,IAAI,KAE1DylE,uBAAwB,SAAStL,EAAO2F,GACpC,GAAI,cAAgBA,EAAY7iD,QAAS,CACrC3a,KAAKsd,QAAQ,OAAQ,WAAYu6C,GACjC,IAAIuL,EAAoBpjE,KAAKs9D,mBAAmB+F,uBAC5CC,EAAe9F,EAAYjoD,YAAc6tD,EAAoB,EACjEpjE,KAAKsd,QAAQ,WAAYgmD,EAAczL,KAG/C4K,YAAa,SAASrF,EAAMtnD,GACxB,IAAI0nD,EAAcx9D,KAAKujE,gBAAgBztD,GACvC,GAAIA,EAAQmsD,eACR,GAAInsD,EAAQoH,IAAIu7C,MAAO,CACnB,IAAI+K,EAAY1tD,EAAQoH,IAAIu7C,MAAMgL,UAAUzI,GAAQA,EAAKzlD,cAAgBioD,EAAYjoD,aACrFO,EAAQoH,IAAIu7C,MAAM+K,GAAahG,QAGnC1nD,EAAQoH,IAAIu7C,MAAMx1D,KAAKu6D,GAE3B,IAAI3F,EAAQ73D,KAAKo8D,YAAYoB,GAI7B,OAHAx9D,KAAKmjE,uBAAuBtL,EAAO2F,GACnCx9D,KAAK0jE,mBAAmB7L,EAAO2F,EAAa1nD,GAC5CsnD,EAAK1/D,IAAI,GAAG+hC,YAAYo4B,EAAMn6D,IAAI,IAC3Bm6D,GAEX6L,mBAAoB,SAAS7L,EAAO/hD,EAAS6tD,GACzC,IAAI5nB,EAAW/7C,KAAK4jE,iBAAiB9tD,GACrC,mBAAMimC,GAAY/7C,KAAKqgE,eAAexI,EAAO9b,EAAUjmC,OAAS,EAAQ6tD,EAAcpiB,SAASljC,KAAK,KAChGre,KAAKk8D,YAAYrE,EAAO/hD,MAGhC8tD,iBAAkB,aAClB5B,SAAU,WACN,MAAO,IAEXuB,gBAAiB,SAASztD,GACtB,IAAI0nD,EAAc,CACdjjD,OAAQzE,EAAQyE,OAChBhF,YAAaO,EAAQP,YACrBoF,QAAS7E,EAAQoH,IAAIvC,QACrBkpD,SAAU7jE,KAAK48D,UAAU9mD,EAAQoH,MAGrC,OADAld,KAAKsiE,gBAAgB9E,GACdA,GAEX8E,gBAAiB,SAASxsD,EAASy5B,GAC/B,GAAKvvC,KAAK4Y,OAAO,sBAAjB,CAGA,IAAIkrD,EAAW,GAyCf,OAxCAv0B,EAASA,GAAUz5B,EACnBy5B,EAAOw0B,MAAQx0B,EAAOw0B,OAAS,SAASC,EAAQC,EAAiBC,GAC7D,IAAIxB,EAAWsB,EAAOz0B,EAAOnrC,MACzB+/D,EAAU,SAASjnD,GACfA,GAAOgnD,GACPA,EAAchnD,GAElB,IAAIknD,EAAWJ,EAAOz0B,EAAOnrC,MACzBrJ,KAAKC,UAAU0nE,KAAc3nE,KAAKC,UAAUopE,KACxClnD,GACA+mD,EAAgBG,GAEpB1B,EAAW0B,IAInB,OADAN,EAAS7gE,KAAKkhE,GACP,WACH,IAAI/iE,EAAQ0iE,EAASxlE,QAAQ6lE,GACzB/iE,GAAS,GACT0iE,EAASO,OAAOjjE,EAAO,KAInCmuC,EAAO+0B,OAAS/0B,EAAO+0B,QAAU,SAASpnD,EAAKqnD,GACvCrnD,IACAld,KAAKoE,KAAO0R,EAAQ1R,KAAO8Y,EAAI9Y,KAC/BpE,KAAKw6D,SAAW1kD,EAAQ0kD,SAAWt9C,EAAIs9C,SACvCx6D,KAAK68D,UAAY/mD,EAAQ+mD,UAAY3/C,EAAI2/C,UACzC78D,KAAK4V,WAAaE,EAAQF,WAAasH,EAAItH,WACvCE,EAAQoH,MAAQqnD,IAChBzuD,EAAQoH,IAAMA,IAGtB4mD,EAAS5iE,SAAQ,SAAUijE,GACvBA,EAAQjnD,OAGZqyB,IAAWz5B,IACXA,EAAQiuD,MAAQx0B,EAAOw0B,MAAMvoD,KAAK+zB,IAE/Bz5B,IAEXqmD,cAAe,SAASnB,EAAMllD,GAC1BA,EAAQ8oD,YAAc,eAAiB,eAAE5D,IACzCh7D,KAAKkyD,cAAc,iBAAkBp8C,IAEzCysD,aAAc,SAASnF,EAAMtnD,GACzB,eAAYsnD,EAAK1/D,IAAI,GAAI,UAAWoY,GACpCA,EAAQ4kD,WAAa,eAAiB0C,GACtCp9D,KAAKkyD,cAAc,gBAAiBp8C,IAExC0uD,qBAAsB,SAAS5gE,GAC3B,IAAI6gE,EAAc7gE,EAAE6gE,YACpB,GAAI,OAAc5qD,aAAa4qD,EAAa,CAAC,QAAS,iBAAtD,CACI,IAAIpH,EAAiBr9D,KAAKs9D,mBAAmBC,oBACzCmH,EAASC,EAAA,KAAkBtH,GAAgB,SAAU9iD,GACrD,IAAIlP,EAAQkP,EAAOiiD,cAAgBjiD,EAAOlP,MAC1C,OAAO,eAAUA,GAASA,EAAQ,UAEtCrL,KAAK4kE,gBAAgB,CACjBF,OAAQA,EACRD,YAAaA,SAIhBzkE,KAAKkzD,eACNlzD,KAAK+H,UAGb88D,aAAc,SAAShN,GACnB,IAAI2L,EAAY3L,EAAMj+D,OAASi+D,EAAM,GAAG2L,WAAa,EACrD,OAAOA,GAEXsB,iBAAkB,WACd,OAAO9kE,KAAKmhE,eAAiB,kBAEjC4D,gBAAiB,WACb,OAAO/kE,KAAKmhE,eAEhB6D,gBAAiB,SAASrE,GACtB3gE,KAAKmhE,cAAgBR,GAEzBzP,cAAe,SAAS7hB,GAEpB,OADArvC,KAAKC,SAASovC,GACNA,EAAKztC,MACT,IAAK,kBACL,IAAK,iBACL,IAAK,gBACL,IAAK,qBACD5B,KAAKszD,aAAY,GAAM,GACvBjkB,EAAK+hB,SAAU,IAG3BX,KAAM,WACF,IAAI9sD,EAAO3D,KACX2D,EAAK89D,aAAe,EACpB99D,EAAK25D,mBAAqB35D,EAAKguD,cAAc,WAC7ChuD,EAAKsU,gBAAkBtU,EAAKguD,cAAc,QAC1ChuD,EAAK07D,kBAAoB,GACzB17D,EAAKy8D,gBAAkB,GACvBz8D,EAAKwtD,aAAa,eAClBxtD,EAAKwtD,aAAa,cAClBxtD,EAAKwtD,aAAa,kBAClBxtD,EAAKwtD,aAAa,iBAClBxtD,EAAKwtD,aAAa,qBAAsB,CACpC8T,kBAAmB,CAAC,WAAY,cAEpCthE,EAAKwtD,aAAa,iBAAkB,CAChC8T,kBAAmB,CAAC,WAAY,YAChCC,SAAU,cAEdvhE,EAAKwtD,aAAa,gBAAiB,CAC/B8T,kBAAmB,CAAC,WAAY,YAChCC,SAAU,YACVC,aAAc,SAASvhE,GACnBD,EAAKyhE,kBAAkBxhE,MAG/BD,EAAK25D,mBAAmB+H,eAAev1D,IAAInM,EAAK6gE,qBAAqBhpD,KAAK7X,IAC1EA,EAAKsU,iBAAmBtU,EAAKsU,gBAAgBqtD,QAAQx1D,IAAInM,EAAK4hE,mBAAmB/pD,KAAK7X,KAE1FyhE,kBAAmB,OACnBG,mBAAoB,aACpBlV,cAAe,WACX,MAAO,CAAC,kBAEZmV,0BAA2B,WACvB,IAAIhE,EAAaxhE,KAAKyhE,YAClBD,GAAc,IACdxhE,KAAKyhE,YAAc,EACnBzhE,KAAK0hE,SAAS,CACV/kD,KAAM6kD,MAIlBE,SAAU,SAAS+D,GACf,IAAI5uD,EAAW7W,KAAK0X,UAChBguD,EAAmB7uD,GAAYA,EAASmhD,SAAS,IAAMh4D,KAAK4X,gBAAgB8gD,IAAyBkI,IAAI,IAAM5gE,KAAK4X,gBAAgBohD,IACpI,eAAUyM,IAAQ,eAAUA,EAAI9oD,OAAS3c,KAAKyhE,cAAgBgE,EAAI9oD,OAClE3c,KAAKyhE,YAAcgE,EAAI9oD,KACvB+oD,GAAoBA,EAAiBlE,WAAWiE,EAAI9oD,QAG5DgpD,4BAA6B,SAAS7L,GAClC,IAAI4L,EAAmB,eAAE,SACrB5X,EAAY9tD,KAAK4Y,OAAO,uBAc5B,QAbI,IAAUk1C,GAAa,SAAWA,IAAc,uBAChD4X,EAAiBvtD,SAASnY,KAAK4X,gBAAgB+gD,IAEnD,OAAa7uD,GAAG47D,EAAkB,SAAU,KACxC,IAAIlE,EAAakE,EAAiBlE,aAC9BA,IAAexhE,KAAKyhE,aACpBzhE,KAAK4lE,cAAcpR,KAAK,CACpB73C,KAAM6kD,GACPxhE,KAAK4B,QAGhB8jE,EAAiBvtD,SAASnY,KAAK4X,gBAAgBihD,IAAgB1gD,SAASnY,KAAK4X,gBAAgB8gD,IAAyB3+B,OAAO+/B,GAAQ1hD,SAASpY,KAAK0X,WACnJ1X,KAAKsd,QAAQ,OAAQ,eAAgBooD,GAC9BA,GAEXG,eAAgB,SAASC,GACrB9lE,KAAKglE,gBAAgBc,GACrB9lE,KAAK2lE,4BAA4BG,IAErCC,oBAAqB,OACrBC,WAAY,SAASC,GACjB,IACI56D,EADApM,EAAS,GAcb,OAZIgnE,GACAtB,EAAA,KAAmBsB,GAAe,SAAU7kE,EAAOyI,GAE/C,GADAwB,EAAQxB,EAAKq8D,YACTr8D,EAAKs8D,sBAAuB,CAC5B,IAAIC,EAAa,eAAgBv8D,GAC7Bu8D,EAAW/6D,MAAQA,EAAQ,IAC3BA,EAAQ+6D,EAAW/6D,OAG3BpM,EAAOgE,KAAKoI,MAGbpM,GAEXonE,gBAAiB,SAASvF,GACtB,IACIwF,EACAjO,EAFAp5D,EAAS,GAKb,IAFCe,KAAK4Y,OAAO,uBAAyB,UACtCkoD,EAAgBA,GAAiB9gE,KAAK+kE,kBAClCjE,EAAe,CACfwF,EAAQxF,EAAc9I,SAAS,yBAAyBA,WACxD,IAAK,IAAIv8D,EAAI,EAAGA,EAAI6qE,EAAM1sE,OAAQ6B,IAAK,CACnC,IAAI2hE,EAAOkJ,EAAM9pD,GAAG/gB,GAChB8qE,EAAe,SAAWnJ,EAAK1/D,IAAI,GAAGu9D,MAAMuL,UAAYpJ,EAAKnG,SAAS,sBAC1E,IAAKmG,EAAKxvE,GAAG,IAAMsrE,KAAqBkE,EAAKxvE,GAAG,IAAMwrE,MAAsBgE,EAAKxvE,GAAG,IAAM0rE,KAAoBiN,EAAc,CACxHlO,EAAS+E,EAAKpF,SAAS,MACvB,OAGR/4D,EAASe,KAAKgmE,WAAW3N,GAE7B,OAAOp5D,GAEXwnE,sBAAuB,SAASlxD,EAAailD,GACzC,OAAOjlD,GAEXqvD,gBAAiB,SAASz0D,GACtB,IAMIu2D,EACAr7D,EACAyyC,EACAvoC,GARAmvD,OAAQA,EACR5D,cAAeA,EACftiD,QAASA,EACTM,MAAOA,GACP3O,EAKA6jC,EAAkBh0C,KAAK4Y,OAAO,mBAElC,GADAkoD,EAAgBA,GAAiB9gE,KAAK+kE,kBAClCjE,GAAiBA,EAAclnE,QAAU8qE,EAAQ,CACjDnvD,EAAc,EACdmxD,EAAQ5F,EAAc9I,SAAS,YAAYA,SAAS,OACpD,eAAS0O,EAAO,QAChBloD,EAAUA,GAAWxe,KAAKo4D,WAAW,KAAM0I,GAC3C,IAAK,IAAIrlE,EAAI,EAAGA,EAAI+iB,EAAQ5kB,OAAQ6B,IAAK,CACrC,GAAIu4C,IAAoBl1B,IACpBzT,EAAQmT,EAAQ/iB,GAAG4P,MACfA,IAAUmT,EAAQ/iB,GAAGojB,SAAS,CAC9BxT,EAAQmT,EAAQ/iB,GAAG+gE,cAAgBnxD,EACnCA,EAAQyvD,GAAczvD,GACtByyC,EAAWgd,GAAct8C,EAAQ/iB,GAAGqiD,UAAYzyC,GAEhD,IADA,IAAIi7D,EAAQA,GAASxF,EAAc9I,WAAWA,SAAS,WAAW4I,IAAI,IAAMxH,IACnEoB,EAAW,EAAGA,EAAW8L,EAAM1sE,OAAQ4gE,IAAY,CACxD,IAAIt9C,EAAMopD,EAAM9L,GACZQ,OAAO,EACPxc,EAAex+C,KAAKymE,sBAAsBhrE,EAAG++D,GAE7CQ,EADA99C,EAAIypD,UAAU9gB,SAASqT,GAChBh8C,EAAI0pD,cAAc,qBAAqBj/C,OAAO62B,EAAe,EAAG,YAAY72B,OAAOwxC,GAAkB,MAErGj8C,EAAIu7C,MAAMja,GAEjBwc,IACAD,GAAaC,EAAMx8C,EAAQ/iB,GAAI4P,GAC/B2vD,EAAKC,MAAMnd,SAAWA,IAKlCt/B,EAAQ/iB,GAAG8gE,QACXhnD,GAAeiJ,EAAQ/iB,GAAG8gE,SAG9BlxD,EAAQq5D,EAAOnvD,GACX,mBAAqBlK,IACrBA,EAAQmuD,IAER,kBAAoBnuD,IACpBA,EAAQA,EAAMw7D,QAAQ,GAAK,MAE/B,eAASH,EAAMlqD,GAAGjH,GAAc,eAAUlK,GAASA,EAAQ,QAC3DkK,QAIZuxD,gBAAiB,SAAStM,GACtB,OAAOx6D,KAAK+mE,qBAAqBvM,IAErCuM,qBAAsB,SAASvM,GAC3B,IAAI4C,EAAOp9D,KAAKgnE,kBAAkBxqD,GAAGg+C,GACrC,OAAO4C,EAAKpF,YAEhBiP,gBAAiB,SAASzM,EAAU0M,GAChC,IAAIrP,EACAQ,EAASr4D,KAAK8mE,gBAAgBtM,GAC9B2M,EAAqBnnE,KAAKonE,uBAAuB/O,EAAQmC,EAAU0M,GAIvE,GAHI7O,EAAOz+D,QAAUutE,GAAsB,IACvCtP,EAAQQ,EAAO77C,GAAG2qD,IAElBtP,GAASA,EAAMj+D,OACf,OAAOi+D,GAGfwP,eAAgB,SAAS7M,GACrB,IAAI72D,EAAO3D,KACP6iE,EAAc,iBACdyE,EAAiB3jE,EAAKmhE,mBAI1B,GAHAH,EAAA,KAAmB2C,GAAgB,SAAUvoE,EAAG4hE,GAC5CkC,EAAcA,EAAY/yD,IAAInM,EAAKqjE,gBAAgB,eAAErG,IAAenkD,GAAGg+C,OAEvEqI,EAAYjpE,OACZ,OAAOipE,GAGf0E,eAAgB,SAAS/M,EAAU0M,GAC/B,OAAO,eAAiBlnE,KAAKinE,gBAAgBzM,EAAU0M,KAE3DM,cAAe,SAAShN,GACpB,IAAI8L,EAAQtmE,KAAKqnE,eAAe7M,GAC5BiN,EAAW,GACf,GAAInB,IAAU,eAAiBA,GAAO5oE,IAClC,IAAK,IAAIjC,EAAI,EAAGA,EAAI6qE,EAAM1sE,OAAQ6B,IAC9BgsE,EAASxkE,KAAKqjE,EAAM7qE,SAGxBgsE,EAAWnB,EAEf,OAAOmB,GAEXL,uBAAwB,SAAS/O,EAAQmC,EAAU0M,GAC/C,GAAI,eAASA,GAAmB,CAC5B,IAAI3xD,EAAcvV,KAAKs9D,mBAAmBoK,aAAaR,EAAkB,SACzE,OAAOlnE,KAAKs9D,mBAAmByB,gBAAgBxpD,GAEnD,OAAO2xD,GAEX5O,kBAAmB,aACnBF,WAAY,SAASoC,GACjB,OAAOx6D,KAAKs9D,mBAAmBC,kBAAkB/C,IAErDmN,QAAS,SAASC,EAAc7F,GAC5B,IACI1J,EADAiO,EAAQvE,GAAQ/hE,KAAKgnE,kBAEzB,GAAIV,EAAM1sE,OAAS,GAAKguE,EAAapN,UAAY,IACzC,YAAcx6D,KAAK4Y,OAAO,mBAAqB,YAAc5Y,KAAK4Y,OAAO,gCACzEgvD,EAAapN,SAAWoN,EAAapN,SAAW8L,EAAM1sE,OAASguE,EAAapN,SAAW8L,EAAM1sE,OAAS,GAE1Gy+D,EAASr4D,KAAK8mE,gBAAgBc,EAAapN,UACvCnC,GAAUA,EAAOz+D,OAAS,GAC1B,OAAOy+D,EAAO77C,GAAG67C,EAAOz+D,OAASguE,EAAaryD,YAAcqyD,EAAaryD,YAAc8iD,EAAOz+D,OAAS,IAInHiuE,aAAc,WACV,IAAIlH,EAAe3gE,KAAK+kE,kBACxB,OAAIpE,GAAgB,IAAMA,EAAa/mE,OAC5B+mE,EAAa,GAAGoB,KAAKnoE,OAEzB,GAEXkuE,oBAAqB,SAASnH,GAE1B,GADAA,EAAeA,GAAgB3gE,KAAK+kE,kBAChCpE,EAAc,CACd,IAAIK,EAAiBhhE,KAAK4Y,SAASygC,aAAer5C,KAAK4Y,OAAO,mBAC1DmvD,EAAU/G,GAAkBL,EAAa7oD,KAAK,WAAamhD,GAC/D,OAAO8O,GAAWA,EAAQnuE,OAASmuE,EAAUpH,EAAa7oD,KAAK,cAAgBmhD,EAAY,QAAUA,GAEzG,OAAO,kBAEX+N,gBAAiB,SAASrG,GACtB,OAAO3gE,KAAK8nE,oBAAoBnH,IAEpClG,YAAa,SAAS2C,GAClB,OAAOp9D,KAAKgnE,kBAAkB5lE,MAAMg8D,IAExC4K,gBAAiB,aACjBC,QAAS,aACTC,mBAAoB,SAAS78D,GACzB,IAAIwL,EAAW7W,KAAK0X,UAChB2E,EAAarc,KAAK4Y,OAAO,cAC7B/B,GAAYA,EAAS4F,IAAI,CACrB0rD,YAAa9rD,EAAahR,EAAQ,GAClC+8D,aAAe/rD,EAAqB,GAARhR,KAGpCg9D,mBAAoB,SAASC,GACzB,IAAIzxD,EAAW7W,KAAK0X,UAChBopD,EAAgB9gE,KAAKmhE,cACzB,SAAItqD,IAAYiqD,KACLwH,EAAe,eAAcxH,GAAiB,eAASjqD,GAAY,EAAI,eAAeiqD,GAAiB,eAAUjqD,GAAY,M,aC77B5I0xD,GAAoB,mBACpBC,GAAuB,yBACvBC,GAAuB,kBACvBC,GAAoB,gCACpBC,GAAqB,GAAGhhD,OAAO+gD,GAAmB,SAClDE,GAAwB,gCACxBC,GAAyB,GAAGlhD,OAAOihD,GAAuB,SAC1DE,GAAsB,CACtBnzB,WAAY,CAAC,2DACbozB,cAAe,CAAC,8DAA+D,+DAC/E5zB,UAAW,CAAC,oFAAqF,qFACjG/3B,SAAU,CAAC,GAAGuK,OAAO8gD,IAAuB,GAAG9gD,OAAO+gD,GAAmB,cAAe,GAAG/gD,OAAOghD,GAAoB,cAAe,GAAGhhD,OAAOghD,IAAqB,GAAGhhD,OAAOihD,GAAuB,cAAe,GAAGjhD,OAAOkhD,GAAwB,cAAe,GAAGlhD,OAAOkhD,KAC/QG,OAAQ,CAAC,sDAAuD,uDAChE9zB,YAAa,CAAC,4CAA6C,6CAC3D6D,MAAO,CAAC,gCAAiC,kCAEzCkwB,IAAc,EACdC,IAAmB,EACnBC,GAAqB,KAEzB,SAASC,GAAeC,EAAUj7D,EAAU4jD,EAAOF,EAAQwX,EAAcC,GACrE,IAAIC,EAAYC,GAAiBr7D,EAAU4jD,EAAM0X,cAAeH,GAChE,IAAIC,EAAJ,CAGA,IAAIjwD,EAAU,gBAAiBy4C,GAC3B,UAAYz4C,GAAW,UAAYA,GACnCowD,GAAuB3X,EAAM97C,OAAQ9H,GACrC0jD,GAAUA,EAAO,CACbE,MAAOA,KAEJ,QAAUz4C,EACjB+vD,EAAanxD,SAASowD,IAEtBqB,GAAWP,EAAUj7D,EAAU4jD,IAIvC,SAAS2X,GAAuBzzD,EAAQ9H,GACpC,IAAImjD,EAAU,eAAEr7C,GACZ2zD,EAAYtY,EAAQG,KAAK,cACzBoY,EAAkBC,GAA4BF,EAAWz7D,EAASsJ,WAClEsyD,EAAcF,EAAgB1oE,MAAMmwD,GACxC4X,GAAqB,OAAA1uE,EAAA,WAAO,GAAI,CAC5BovE,UAAWA,EACXzoE,MAAO4oE,GACR,CACCC,aAAc77D,IAItB,SAAS27D,GAA4BF,EAAWK,GAC5C,IACIJ,EADAK,EAAe,eAAED,GAOrB,OAJIJ,EADAD,EACkBM,EAAaryD,KAAK,gBAAgB6P,OAAOkiD,EAAW,iBAEpDM,EAAaryD,KAAK,cAEjCgyD,EAGX,SAASM,GAAuBC,GAC5B,IAAK,IAAIjpE,KAASipE,EAAe,CAC7B,IAAI7yD,EAAW6yD,EAAcjpE,GACzBkpE,EAAoB,eAAE9yD,GAAU+yD,QACpC,GAAID,EAAkB1wE,OAClB,OAAO0wE,GAKnB,SAASb,GAAiBr7D,EAAU4jD,EAAOE,GACvC,IAAI7iB,EAAO,CACP2iB,MAAOA,EACPZ,SAAS,GAOb,OALIc,EACAA,EAAc7iB,GAEdjhC,EAAS6jD,sBAAsB,YAA/B7jD,CAA4CihC,GAEzCA,EAAK+hB,QAGhB,SAASoZ,KACLtB,GAAmB,YAAc,aAAWpJ,cAAc2K,gBAEvD,SAASC,KACZ,OAAa5gE,GAAG,aAAWg2D,cAAe,mBAAoB0K,IAE3D,SAASG,KACZ,OAAa1Z,IAAI,aAAW6O,cAAe,mBAAoB0K,IAE5D,SAASI,GAAYlzD,GACxBwxD,IAAmB,EACnBxxD,EAAQi9C,QACRuU,IAAmB,EAEhB,SAAS2B,GAAuBxB,EAAUj7D,EAAUyI,EAAUW,EAAUs6C,EAAQyX,GACnF,GAAIn7D,EAASwK,OAAO,+BAChB,OAAO,OAEX,IAAIkyD,EAAiB,IAAM,eAAE18D,EAASsJ,WAClCqzD,EAAiBnnE,GAAKwlE,GAAeC,EAAUj7D,EAAUxK,EAAGkuD,EAAQgZ,IAAkBvB,GACtFyB,EAAmB,KACnB/B,IAAc,EACd6B,IAAiBzyD,YAAYkwD,KAE7B0C,EAAiB,KACjB,IAAIC,GAAmBjC,KAAgBC,GACnCgC,GACAJ,IAAiB3yD,SAASowD,IAE9BU,IAAc,GAKlB,OAHA,OAAan/D,GAAG+M,EAAU,UAAWW,EAAUuzD,GAC/C,OAAajhE,GAAG+M,EAAU,YAAaW,EAAUwzD,GACjD,OAAalhE,GAAG+M,EAAU,UAAWW,EAAUyzD,GACxC,KACH,OAAaha,IAAIp6C,EAAU,UAAWW,EAAUuzD,GAChD,OAAa9Z,IAAIp6C,EAAU,YAAaW,EAAUwzD,GAClD,OAAa/Z,IAAIp6C,EAAU,UAAWW,EAAUyzD,IAGjD,SAAS,GAAa78D,GACzB,IAAKA,EAASwK,OAAO,gCAAkCuwD,GAAoB,CACvE,IAAIc,EAAed,GAAmBc,aACtC,GAAIA,EAAc,CACd,IAAIH,EAAkBC,GAA4BZ,GAAmBU,UAAWI,EAAavyD,WACzFyzD,EAAiBrB,EAAgBttD,GAAG2sD,GAAmB/nE,OAC3D+nE,GAAqB,KACrB,OAAanrD,QAAQmtD,EAAgB,WAI1C,SAASvB,GAAWP,EAAUj7D,EAAU4jD,GAC3C,IAAIz4C,EAAU,gBAAiBy4C,GAC/B,GAAIA,EAAMkL,UAAY,YAAc3jD,GAAW,cAAgBA,GAAU,CACrE,IAAI6xD,EAAY5tE,OAAOgqB,KAAKshD,IACxBuC,EAAgBD,EAAU9sE,QAAQ+qE,GACtC,MAAOgC,GAAiB,GAAKA,EAAgBD,EAAUxxE,OAAQ,CAC3DyxE,EAAgB,YAAc9xD,IAAY8xD,IAAkBA,EAC5D,IAAIC,EAAYF,EAAUC,GACtBhB,EAAgBvB,GAAoBwC,GACpChB,EAAoBF,GAAuBC,GAC/C,GAAIC,GAAqBA,EAAkB1wE,OAAQ,CAC/C0wE,EAAkB5Y,KAAK,WAAYtjD,EAASwK,OAAO,aAAe,GAClE,OAAaoF,QAAQssD,EAAmB,SACxCA,EAAkBjyD,YAAYmwD,IAC9B,SAKT,SAAS+C,GAAYn9D,EAAUyI,GAC7BzI,EAASwK,OAAO,gCACjB/B,EAAS66C,KAAK,WAAYtjD,EAASwK,OAAO,aAAe,GCxK1D,IAAI,GAAyB,SAASywD,EAAUj7D,EAAUyI,EAAUW,EAAUs6C,GACjF,IAAI0Z,EAAqBp9D,EAASujD,cAAc,sBAC5CvjD,EAASwK,OAAO,gCAAkC4yD,IAAuBA,EAAmBC,sBAGhGr9D,EAAS+iD,aAAa,aACtB,GAAqCkY,EAAUj7D,EAAUyI,EAAUW,EAAUs6C,EAAQziB,IACjFjhC,EAAS8jD,cAAc,YAAa7iB,OCaxCq8B,GAAqB,eACrBC,GAAgB,UAChBC,GAAe,SACfC,GAAqB,UACrBC,GAAmB,gBACnBC,GAAqB,kBACrBC,GAA6B,wBAC7BC,GAA8B,yBAC9BC,GAA8B,yBAC9BC,GAA4B,yBAC5BC,GAA0B,uBAC1BC,GAAsC,6BACtCC,GAAuB,oBACvBC,GAA6B,0BAC7BC,GAA+B,oBAC/BC,GAAgC,6BAChCC,GAAyB,sBAClBC,GAAsB,CAC7BhvE,eAAgB,WACZ,MAAO,CACHi8C,mBAAmB,EACnB7F,iBAAiB,IAGzB2hB,MAAO,CACHkX,kBAAmBjR,GAAY5L,QAAQ,WACnC,IAAI8c,EAAoB,SAASlpE,EAAMk0D,EAAO/hD,GAC1C,IAAIg3D,EAAe,eAAE,SAAS30D,SAASxU,EAAKiU,gBAAgB8zD,KAC5D/nE,EAAK2Z,QAAQ,OAAQ,eAAgBwvD,GACrCC,EAA2BppE,EAAMk0D,EAAO/hD,EAAQyE,OAAQuyD,GACxD,IAAIjzB,EAAkBl2C,EAAKiV,OAAO,mBAC9Bo0D,EAAmBrpE,EAAKguD,cAAc,WAAW6F,0BAA0B1hD,EAAQyE,OAAOnP,WAC9F,OAAO0hE,EAAajzB,GAAmB,UAAYmzB,EAAmB,WAAa,aAAanV,IAGpG,SAASkV,EAA2BppE,EAAMk0D,EAAOt9C,EAAQuyD,GACrD,IAAIG,EAAqBtpE,EAAKm0D,sBAAsBD,GAAO,GACvDqV,EAA4BvpE,EAAKm0D,sBAAsBD,GACvDsV,EAAiBF,GAAsBA,EAAmBrzE,OAC1Dg9D,EAAkBjzD,EAAKkzD,oBAAoBt8C,EAAOnP,WAClDgiE,EAAyB,IAAIzlD,OAAOhkB,EAAK0zD,uBAAuB,SAChEgW,EAA8B,IAAI1lD,OAAOhkB,EAAK0zD,uBAAuB,cACrEiW,EAAiBJ,EAA0B9uE,OAAOgvE,GAClDG,EAAsBL,EAA0BlV,WAAW55D,OAAOivE,GACtEP,EAAeA,GAAgBjV,EAAMG,SAAS,IAAMr0D,EAAKiU,gBAAgB8zD,KACzEoB,EAAavY,YAAY8X,GAAsCzV,EAAiBuW,EAAiB,GAAG5Y,YAAY8X,IAAuC,SAAWzV,EAAkB,QAAU,QAASuW,EAAiB,GAAK,WAAa5yD,EAAOnP,WAAWmpD,YAAY+X,KAAwBgB,EAAe1zE,QAAQ26D,YAAYgY,KAA8BgB,EAAoB3zE,QAAQ26D,YAAYkY,KAAiCS,EAA0B9uE,OAAO,IAAMuF,EAAK0zD,uBAAuB,iBAAiBz9D,QAElgB,MAAO,CACHkjE,aAAc,WACV,IAAIhD,EAAS95D,KAAKC,SAASnB,MAAMkB,KAAME,WAOvC,OANA,OAAa4J,GAAGgwD,EAAQ,wBAAyB95D,KAAKmxD,cAAa,SAAUvtD,GACzE,IAAIouD,EAAQpuD,EAAEouD,MACVA,EAAMwb,UACNxb,EAAMmL,qBAGPrD,GAEX,8BACI,OAAO95D,KAAK4Y,OAAO,gCAEvB60D,oBAAqB,SAASlzD,GAC1B,IAAI5W,EAAO3D,KACX,OAAO,SAASyV,EAAYK,GACxB,IAAI43D,EAAWnzD,EAAOsE,QAAUpJ,EAAao3D,EAAkBlpE,EAAM8R,EAAYK,GAC7E5K,EAAU,WAAaqP,EAAOsE,SAAWtE,EAAOrP,QAChDA,EACAwiE,EAASnxE,KAAK2O,GACPqP,EAAOsE,SACdpJ,EAAWq1C,KAAK,YAI5B6iB,mBAAoB,SAASpzD,GACzB,OAAOA,EAAOojC,oBAAsB,CAChC3gC,gCAAgC,EAChCjV,OAAQ/H,KAAKytE,oBAAoBlzD,KAGzCwlD,iBAAkB,SAAShkB,EAAUjmC,GACjC,IACI83D,EADAjqE,EAAO3D,KAEPua,EAASzE,EAAQyE,OACjBylD,EAAoBr8D,EAAK1D,SAAS87C,GAatC,OAXI6xB,EADA,WAAa93D,EAAQ6E,SAAWqlD,GAAqBzlD,EAAOojC,qBAAuBpjC,EAAOsE,QACzE,CACb9W,OAAQ,SAAS+N,GACb,IAAI43D,EAAWb,EAAkBlpE,EAAMmS,EAAQkD,UAAWlD,EAAQ/M,OAClEi3D,EAAkBj4D,OAAO,OAAAtN,EAAA,WAAO,GAAIqb,EAAS,CACzCkD,UAAW00D,OAKN1N,EAEd4N,GAEXrI,mBAAoB,SAAS3hE,GACrB,YAAcA,EAAEi+D,aAGhB7hE,KAAK6tE,oBAAsB7tE,KAAKkzD,iBAChClzD,KAAK6tE,oBAAqB,EAC1B7tE,KAAK+H,WAGb06D,YAAa,SAASrF,EAAMtnD,GACxB,IAAI+hD,EAAQ73D,KAAKC,SAASm9D,EAAMtnD,GAShC,MARI,WAAaA,EAAQoH,IAAIvC,UACzBk9C,EAAM1/C,SAASg0D,IACVnsE,KAAK8tE,+BACFh4D,EAAQyE,SAAWzE,EAAQyE,OAAO9b,MAClCo5D,EAAMnG,KAAK,WAAY1xD,KAAK4Y,OAAO,aAAe,IAIvDi/C,GAEXsL,uBAAwB,SAAStL,EAAO2F,GACpCx9D,KAAKC,SAAS43D,EAAO2F,GACjB,WAAaA,EAAY7iD,UACzB3a,KAAKsd,QAAQ,OAAQ,eAAgBu6C,IACjC2F,EAAYjjD,QAAWijD,EAAYjjD,OAAOsE,SAAY2+C,EAAYjjD,OAAOsjC,SACzEga,EAAMnG,KAAK,KAAM8L,EAAYjjD,OAAO+hD,UACpCt8D,KAAKsd,QAAQ,QAAS,OAAoBjkB,OAAO,yBAA2B,IAAMmkE,EAAYjjD,OAAOrP,QAAS2sD,MAI1H4E,WAAY,SAASv/C,GACjB,IAAIkgD,EAAOp9D,KAAKC,SAASnB,MAAMkB,KAAME,WAQrC,OAPAk9D,EAAK7I,YAAYwX,GAAoB/rE,KAAK4Y,OAAO,oBAC7C,WAAasE,EAAIvC,UACjByiD,EAAKjlD,SAAS2zD,IACT9rE,KAAK8tE,+BACN,GAAuB,gBAAiB9tE,KAAMo9D,EAAM,KAAMp9D,KAAK+tE,qBAAqBvyD,KAAKxb,QAG1Fo9D,GAEX2Q,qBAAsB,SAAS1+B,GAC3B,IAAI2iB,EAAQ3iB,EAAK2iB,MACbT,EAAU,eAAES,EAAM97C,QAEtB,GADAlW,KAAKguE,mBAAqBhc,EAAM97C,OAC5Bq7C,EAAQ3jE,GAAG4+E,IAA+B,CAC1C,IAAIyB,EAAyBjuE,KAAK2xD,cAAc,gBAC5Cuc,EAAU3c,EAAQpzC,QAAQ,MAC1B5I,EAAcvV,KAAKmuE,wBAAwBD,GAC3C34D,GAAe,GACf04D,EAAuBG,qBAAqB74D,GAAa,OAE1D,CACH,IAAI6nD,EAAO7L,EAAQpzC,QAAQ0tD,IAC3B7rE,KAAKquE,qBAAqBrc,EAAOoL,GAErCpL,EAAMmL,kBAEV1J,YAAa,WACT,IAAI9vD,EAAO3D,KACPyV,EAAa9R,EAAK+T,YAClB/T,EAAKw9D,eAAkBx9D,EAAKsU,gBAAgBq2D,YAAe3qE,EAAK4qE,mBAGpE94D,EAAW0C,SAASxU,EAAKiU,gBAAgB+zD,KAAgBpX,YAAY5wD,EAAKiU,gBAAgBg0D,KAAgBjoE,EAAKiV,OAAO,oBAAoBw5C,QAC1IzuD,EAAK2Z,QAAQ,OAAQ,eAAgB7H,GACrC9R,EAAKkiE,eAAeliE,EAAKi+D,gBACrBj+D,EAAK6qE,cAAgB,GACrB/4D,EAAW0C,SAASu0D,IAExB/oE,EAAK1D,SAASnB,MAAM6E,EAAMzD,aAE9B4hE,YAAa,WACT,IAAIn+D,EAAO3D,MACP2D,EAAKsU,gBAAgBq2D,YAAc3qE,EAAK4qE,mBACxC5qE,EAAK1D,SAASnB,MAAM6E,EAAMzD,WAC1ByD,EAAK4qE,iBAAkB,IAG/BE,sBAAuB,SAASjU,GAC5B,OAAOx6D,KAAKs9D,mBAAmBC,kBAAkB/C,IAErD2H,WAAY,SAASrI,EAAQhkD,GACzBA,EAAQ0I,QAAUxe,KAAKyuE,sBAAsB34D,EAAQoH,IAAIs9C,UACzDx6D,KAAKC,SAAS65D,EAAQhkD,IAE1BsmD,YAAa,SAAStmD,GAClB,IAAIyE,EAASzE,EAAQyE,OACjBm0D,EAAe1uE,KAAKC,SAASnB,MAAMkB,KAAME,WAE7C,OADAqa,EAAOo0D,QAAU,GAAK,WAAa74D,EAAQ6E,SAAW+zD,EAAahd,KAAK,UAAWn3C,EAAOo0D,SACnFD,GAEX1M,SAAU,WACN,IAAI/iE,EAAS,GACT2vE,EAAW5uE,KAAKwuE,cACpB,GAAIxuE,KAAK4Y,OAAO,qBACZ,IAAK,IAAInd,EAAI,EAAGA,EAAImzE,EAAUnzE,IAC1BwD,EAAOgE,KAAK,CACR0X,QAAS,SACT6/C,SAAU/+D,IAItB,OAAOwD,GAEX2kE,iBAAkB,SAAS9tD,GACvB,GAAI,WAAaA,EAAQ6E,QACrB,OAAO3a,KAAK2tE,mBAAmB73D,EAAQyE,SAG/CiqD,qBAAsB,SAAS5gE,GAC3B,IAAIs+D,EAAct+D,EAAEs+D,YAChBuC,EAAc7gE,EAAE6gE,YAChBvC,EAAYxsB,UAAYwsB,EAAY2M,eAChC3M,EAAYxsB,WACZ11C,KAAK6tE,oBAAqB,IAIlC7tE,KAAKC,SAAS2D,IACV6gE,EAAYp5D,OAASo5D,EAAYlqB,UACjCv6C,KAAK6zD,gBAAgBW,SAG7Bsa,kBAAmB,SAASC,GACxB,OAAOA,GAAkBA,EAAex0B,SAE5Cy0B,sBAAuB,SAASnX,GAC5B,IAAIX,EAAuBl3D,KAAK43D,uBAAuBC,GAAO,GAC1DX,GAAwBA,EAAqBt9D,SAC7Cs9D,EAAqB94D,OAAO,IAAMguE,IAAyBzzD,SAC3Du+C,EAAuBl3D,KAAK43D,uBAAuBC,GACnDX,EAAqBnkC,QAAQ5a,SAASi0D,IAAyB3vD,IAAI,QAAS,IAAIwyD,aAAapX,EAAMG,SAAS,IAAMh4D,KAAK4X,gBAAgB8zD,QAG/IxP,YAAa,SAASrE,EAAO/hD,GACrB,WAAaA,EAAQ6E,SAAW,WAAa7E,EAAQyE,OAAOnP,WAC5DpL,KAAKgvE,sBAAsBnX,GAE/B73D,KAAKC,SAASnB,MAAMkB,KAAME,YAE9Bq4D,iBAAkB,SAASV,EAAOt9C,EAAQ49C,GACtC,IAAI+W,EAAoBlvE,KAAKC,SAASnB,MAAMkB,KAAME,WAKlD,MAJI,WAAaqa,EAAOnP,WACpBpL,KAAKgvE,sBAAsBnX,GAE/BkV,EAA2B/sE,KAAM63D,EAAOt9C,GACjC20D,GAEXtX,uBAAwB,SAASC,EAAOsX,GACpC,IAAIjY,EAAuBl3D,KAAKC,SAAS43D,GACzC,OAAOsX,EAAYjY,EAAuBA,EAAqB94D,OAAO,SAAWguE,GAA0B,MAE/GgD,mBAAoB,WAChB,OAAO,GAEXC,oBAAqB,WACjB,IAAIvO,EAAgB9gE,KAAK+kE,kBACrBuK,EAAcxO,GAAiBA,EAAchpD,KAAK,IAAMg0D,IAC5D,OAAOwD,GAAeA,EAAYC,UAAUrnD,QAAO,SAAUynC,EAAK6f,GAC9D,OAAO7f,EAAM,eAAU6f,KACvB,IAAM,GAEdC,iBAAkB,SAASruE,GACvB,IAAIsuE,EAAiB1vE,KAAKs4D,oBAC1B,OAAOoX,GAAkBA,EAAelzD,GAAGpb,IAE/Ck3D,kBAAmB,SAASl3D,EAAOuuE,GAC/B,IACIjB,EADA/qE,EAAO3D,KAEPs3D,EAAoB3zD,EAAK25D,mBACzBsR,EAAWjrE,EAAK6qE,cACpB,GAAI7qE,EAAKiV,OAAO,qBAAsB,CAClC,GAAIg2D,EAAW,KAAO,eAAUxtE,IAAU,eAAUuuE,IAAmB,CACnE,IAAI1wE,EAAS,GACTo+D,EAAiB,eAAUsS,GAAmBrY,EAAkBsY,wBAAwBD,GAAiB,GAAQrY,EAAkBiG,oBAMvI,OALA,eAAKF,GAAgB,SAAUt+D,EAAGwb,GAC9B,IAAIigD,EAAW,eAAUp5D,GAASA,EAAQk2D,EAAkBmD,YAAYlgD,EAAOnZ,OAC/EstE,EAAe/qE,EAAKsjE,gBAAgBzM,EAAUlD,EAAkByH,gBAAgBxkD,EAAOnZ,MAAOo5D,IAC9FkU,GAAgBzvE,EAAOgE,KAAKyrE,EAAahxE,IAAI,OAE1C,eAAEuB,GACN,IAAKmC,GAASA,EAAQwtE,EACzB,OAAOjrE,EAAKmjE,gBAAgB1lE,GAAS,KAIjD+sE,wBAAyB,SAAStW,GAC9B,IAAI2L,EAAYxjE,KAAK6kE,aAAahN,GAC9BuF,EAAOvF,EAAM15C,QAAQ,WACrBq8C,EAAW4C,EAAK,GAAG5C,SACnBjgD,EAASva,KAAKo4D,WAAWoC,GAAUgJ,GACvC,OAAOjpD,EAASA,EAAOnZ,OAAS,GAEpCqlE,sBAAuB,SAASlxD,EAAailD,GACzC,IAAIjgD,EAASva,KAAKo4D,aAAa7iD,GAC/B,OAAOgF,EAASva,KAAKs9D,mBAAmByB,gBAAgBxkD,EAAOnZ,MAAOo5D,IAAa,GAEvF6L,gBAAiB,WACb,IAAIwJ,EAAkB7vE,KAAKs4D,oBAC3B,OAAIuX,GAAmBA,EAAgBj2E,OAC5BoG,KAAKgmE,WAAW6J,GAEpB7vE,KAAKC,SAASnB,MAAMkB,KAAME,YAErC4vE,cAAe,SAASv1D,EAAQw1D,EAAgBC,GAC5C,IAAIv0E,EACAw0E,EAAuB,EACvBzV,EAAWjgD,GAAUva,KAAKs9D,mBAAmB7C,YAAYlgD,EAAOnZ,OAChEod,EAAUxe,KAAKo4D,WAAW,IAAMoC,EAAW,EAAI,MAC/C0V,GAAiB,OAAS31D,QAAU,IAAWA,OAAS,EAASA,EAAOmiC,cAAgBl+B,EAAQ5kB,OAAS,EACzGu2E,EAAY,SAAS51D,GACrB,OAAOA,EAAOoiC,iBAAmBpiC,EAAOiiC,eAAiBjiC,EAAOmiC,aAEpE,IAAKjhD,EAAI,EAAGA,EAAI+iB,EAAQ5kB,OAAQ6B,IACxB00E,EAAU3xD,EAAQ/iB,KAClBw0E,IAGR,GAAIA,GAAwB,IAAMC,EAC9B,OAAO,EACJ,IAAKF,EACR,OAAQhwE,KAAK4Y,OAAO,0BAA4B5Y,KAAKs9D,mBAAmB8S,mBAAmB,qBAAuB71D,GAAUA,EAAOoiC,gBAEvI,IAAKlhD,EAAI,EAAGA,EAAIu0E,EAAep2E,OAAQ6B,IAAK,CACxC,IAAI40E,EAAgBL,EAAev0E,GACnC,GAAI40E,GAAiBA,EAAcP,cAAcv1D,EAAQw1D,GACrD,OAAO,EAGf,OAAO,GAEX/H,gBAAiB,WACb,IAAI6H,EAAkB7vE,KAAKs4D,oBAC3B,GAAIuX,GAAmBA,EAAgBj2E,OAAQ,CAC3C,IAAIwiB,EAASpc,KAAK+kE,kBAAkB3oD,SACpC,MAAO,CACHQ,IAAKR,EAAOQ,KAGpB,OAAO,MAEXqrD,QAAS,WACL,MAAO,WAEXqI,eAAgB,WACZ,IAAIT,EAAkB7vE,KAAKs4D,oBAC3B,OAAOuX,EAAkBA,EAAgBj2E,OAAS,GAEtDoe,UAAW,WACP,OAAOhY,KAAK4Y,OAAO,sBAEvBs4C,cAAe,SAAS7hB,GACpB,OAAQA,EAAKztC,MACT,IAAK,oBACL,IAAK,kBACL,IAAK,kBACD5B,KAAKszD,aAAY,GAAM,GACvBjkB,EAAK+hB,SAAU,EACf,MACJ,QACIpxD,KAAKC,SAASovC,KAG1BkhC,UAAW,WACP,OAAOvwE,KAAK+zD,oBAEhByc,oBAAqB,SAAS16D,GAC1B,IAAInS,EAAO3D,KACPua,EAASzE,EAAQyE,OACrB,GAAIzE,EAAQoH,MAAQ,WAAapH,EAAQoH,IAAIvC,SAAW,mBAAqB7E,EAAQoH,IAAIvC,SAAU,CAC/F,IAAI81D,EAAiB9sE,EAAKiV,OAAO,WACjC,GAAI63D,GAAkB,SAAWA,EAAenkC,MAAQ/xB,GAAUA,EAAOsiC,aAAc,CACnF,IAAI6zB,EAAc,SAASC,GACvBjxC,YAAW,WACP/7B,EAAK25D,mBAAmBsT,gBAAgBr2D,EAAOnZ,MAAOuvE,EAAOE,SAAShvE,WAG9E,MAAO,CAAC,CACJtF,KAAMk0E,EAAehiB,cACrB5sD,MAAO,MACP8yC,SAAU,QAAUp6B,EAAO+jC,UAC3BzC,KAAMmwB,GACN0E,YAAaA,GACd,CACCn0E,KAAMk0E,EAAe9hB,eACrB9sD,MAAO,OACP8yC,SAAU,SAAWp6B,EAAO+jC,UAC5BzC,KAAMowB,GACNyE,YAAaA,GACd,CACCn0E,KAAMk0E,EAAe/hB,UACrB7sD,MAAO,OACP8yC,UAAWp6B,EAAO+jC,UAClBzC,KAAMqwB,GACNwE,YAAaA,OAK7BlC,YAAa,WACT,OAAOxuE,KAAKs9D,oBAAsBt9D,KAAKs9D,mBAAmBkR,eAE9DsC,eAAgB,SAASv7D,EAAa1T,EAAO24D,GACzC,IACI/+D,EACAi0E,EAFA/rE,EAAO3D,KAGP4uE,EAAWjrE,EAAK6qE,cAChBhwD,EAAU7a,EAAK25D,mBAAmBlF,aAClC79C,EAASiE,GAAWA,EAAQjJ,GAC5Bw7D,EAAWx2D,GAAUA,EAAOsjC,QAAUtjC,EAAOnZ,MAC7C4vE,EAAmB,SAAS5vE,EAAOmZ,GAC/BA,EAAOwjC,YAAcgzB,IACrBrB,EAAelzD,GAAGpb,GAAOqb,IAAI,CACzB2sC,QAASvnD,IAET0Y,EAAOsjC,QACPl6C,EAAKmtE,eAAev2D,EAAOnZ,MAAOS,EAAOpG,EAAI,KAIzD,GAAI,eAAUs1E,GAEV,IADAvW,EAAWA,GAAY,EAClB/+D,EAAI++D,EAAU/+D,EAAImzE,EAAUnzE,IAC7Bi0E,EAAiB/rE,EAAKmjE,gBAAgBrrE,GACtC,eAAKkI,EAAKy0D,WAAW38D,GAAIu1E,KA/YN,MC1ChBrE,GAAoBjX,MAAMkX,kBACzD,EAASxW,eAAe,gBAAiBuW,I,4GCKrCsE,GAA8B,SAC9BC,GAA4B,aAC5BC,GAAgC,sBAChCC,GAAkB,yHAClBC,GAAuB,+BACvBC,GAAwB,CAAC,GAAI,OAAQ,GAAI,KAAM,GAAI,KAAM,MAAO,GAAI,KAAM,GAAI,KAAM,QACpFC,GAA6B,8BAC7BC,GAAqB,EACrBC,GAAa,SAASl1E,EAAMm1E,GAC5B,IAAIzyE,EAIJ,OAHI,eAAS1C,KAAUm1E,IACnBzyE,EAAS0yE,GAAmBp1E,IAEzB0C,GAAU2yE,GAAUr1E,IAG/B,SAASs1E,GAAYxzE,GACjB,OAAQA,GAAQ,EAGpB,SAASuzE,GAAUr1E,GACf,IAAIu1E,EAA+BC,GAA2Bx1E,KAAU20E,GACpEc,GAAe,eAAOz1E,IAASxC,KAAKoG,MAAM5D,GAC9C,IAAKy1E,GAAeF,EAA8B,CAC9C,IAAI3zE,EAAQ5B,EAAKgnB,MAAMguD,IACvB,GAAIpzE,EAAO,CACP,IAAI8zE,EAAU,IAAIl4E,KAAK83E,GAAY1zE,EAAM,IAAK0zE,GAAY1zE,EAAM,IAAK0zE,GAAY1zE,EAAM,KAIvF,OAHA8zE,EAAQ13E,YAAYs3E,GAAY1zE,EAAM,KACtC8zE,EAAQC,SAASL,GAAY1zE,EAAM,IAAM,GACzC8zE,EAAQvrD,QAAQmrD,GAAY1zE,EAAM,KAC3B8zE,GAGf,OAAO,eAASD,GAAe,IAAIj4E,KAAKi4E,GAAez1E,EAG3D,SAASo1E,GAAmBp1E,GACxB,IAAI4B,EAAQ5B,EAAKgnB,MAAM6tD,IACvB,IAAKjzE,EAED,OADAA,EAAQ5B,EAAKgnB,MAAM8tD,IACflzE,EACO,IAAIpE,KAAK,EAAG,EAAG,EAAG83E,GAAY1zE,EAAM,IAAK0zE,GAAY1zE,EAAM,IAAK0zE,GAAY1zE,EAAM,UAE7F,EAEJ,IAAI3E,EAAOq4E,GAAY1zE,EAAM,IACzBtB,IAAUsB,EAAM,GAChB1B,EAAM0B,EAAM,GACZg0E,EAAe,EACfC,EAAiB,EACjBC,EAAcnhE,IACd1X,EAAO,KAAO0X,EAAE3W,YAAYf,GACrB0X,GAEXihE,EAAeN,GAAY1zE,EAAM,KACjCi0E,EAAiBP,GAAY1zE,EAAM,KAC/B,MAAQA,EAAM,MACdg0E,GAAgBA,EAChBC,GAAkBA,GAEtB,IAAIr1E,EAAO80E,GAAY1zE,EAAM,IAAMg0E,EAC/Bn1E,EAAS60E,GAAY1zE,EAAM,IAAMi0E,EACjCn1E,EAAS40E,GAAY1zE,EAAM,KAC3BoE,EAAc,SAASlE,GAEvB,OADAA,EAAOA,GAAQ,GACRwzE,GAAYxzE,GAAQmT,KAAK8gE,IAAI,GAAId,GAAqBnzE,EAAKzE,QAFpD,CAGhBuE,EAAM,KACR,OAAIA,EAAM,IACCk0E,EAAY,IAAIt4E,KAAKA,KAAKC,IAAIR,EAAMqD,EAAOJ,EAAKM,EAAMC,EAAQC,EAAQsF,KAE1E8vE,EAAY,IAAIt4E,KAAKP,EAAMqD,EAAOJ,EAAKM,EAAMC,EAAQC,EAAQsF,IAExE,IAAIgwE,GAAmB,SAASh2E,EAAM8V,GAClC,IAAIlU,EAAQ5B,EAAKgnB,MAAM6tD,IACnBnyE,EAAS,GACb,IAAKd,EAED,OADAA,EAAQ5B,EAAKgnB,MAAM8tD,IACflzE,EACOA,EAAM,GAAK,WAAa,aAEnC,EAEJ,IAAK,IAAI1C,EAAI,EAAGA,EAAI61E,GAAsB13E,OAAQ6B,IAC1C0C,EAAM1C,KACNwD,GAAUqyE,GAAsB71E,IAAM0C,EAAM1C,IAepD,MAZI,MAAQ0C,EAAM,MACdc,GAAU,OAEVd,EAAM,MACFA,EAAM,IACNc,GAAU,MACHd,EAAM,IACbc,GAAU,KAEVA,GAAU,KAGXA,GAEPuzE,GAAkB,SAAS3wE,GAC3B,MAAI,kBAAoBA,EACb,IAAI9H,KAAK8H,GAEb4vE,GAAW5vE,GAAQ,kBAAS4wE,sBAEnCC,GAAgB,SAAS7wE,EAAO8wE,GAChC,OAAKA,EAGA,eAAO9wE,GAGR8wE,IAAwB1B,GACjBpvE,GAASA,EAAM+wE,QAAU/wE,EAAM+wE,UAAY,KAE/C,gBAAiBD,EAAqB,QAAtC,CAAwD9wE,GALpD,KAHAA,GAUXkwE,GAA6B,SAASlwE,GACtC,MAAI,kBAAoBA,EACbovE,GACA,eAASpvE,IAEZ,kBAAS4wE,sBACTp5E,EAASk5E,GAAiB1wE,IAE1BxI,IAEOwI,EAAMvD,QAAQ,MAAQ,EACtB6yE,GAEAD,KAEJrvE,EACA,UADJ,EAXH,IAAIxI,GAeG,IACXo4E,WAAYA,GACZe,gBAAiBA,GACjBE,cAAeA,GACfX,2BAA4BA,I,8EC5F5Bc,GAA8B,CAAC,eAAgB,aAAc,QAAS,iBACtEC,GAAyB,CAAC,eAAgB,YAAa,OAAQ,WAAY,QAAS,UAAW,YAAa,gBAAiB,YAAa,aAAc,cAAe,sBAAuB,0BAA2B,kCAAmC,SAASnrD,OAAOkrD,IAC5QE,GAA6B,CAC7BvW,cAAc,EACdwW,cAAc,EACdC,qBAAqB,GAErBC,GAAuB,oBACvBC,GAAmBj+D,OAAOi+D,kBAAoB,iBAC9CC,GAA4B,cAC5B,GAAS,wBACTC,GAAiB,EACVC,GAA0B,CACjC31E,eAAgB,WACZ,MAAO,CACH41E,qBAAsB,CAClBj3B,gBAAgB,EAChBI,aAAa,EACbG,cAAc,EACdvxC,cAAc,EACd4xC,YAAY,EACZ1iC,SAAU,OAAoBnhB,OAAO,uBACrCohB,UAAW,OAAoBphB,OAAO,yBAE1Cs6C,uBAAuB,EACvBC,qBAAqB,EACrBS,mBAAoB,aACpBD,oBAAgB,EAChBE,iBAAa,EACbk/B,yBAAyB,EACzBh1D,aAAS,EACTi1D,iCAAiC,EACjCl/B,iBAAkB,KAClBG,6BAAyB,IAGjC8gB,YAAa,CACTh3C,QAAS,EAAQm0C,WAAW5C,QAAQ,WAChC,IAAI2jB,EAAyB,CACzBn5B,SAAS,EACT4D,qBAAqB,GAErBw1B,EAAsB,CACtBt4E,OAAQ,CAAC,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,WAC1C89B,OAAQ,CAAC,WAAY,cAAe,aAAc,WAAY,IAAK,MACnE7/B,KAAM,CAAC,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,WACxCs6E,SAAU,CAAC,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,YAE5CC,EAAuB,CACvBr1B,cAAc,EACdd,YAAY,EACZD,SAAS,EACTY,WAAW,EACXC,WAAW,GAEXw1B,EAAqC,SAASv5D,GAC9CA,EAAO4iC,iBAAmB5iC,EAAOw5D,yBAEjCC,EAAe,SAASrwE,EAAMswE,EAAeC,EAAwBC,GACrE,IAAIC,EAAsB,GAC1B,GAAIH,EAAe,CACX,eAASA,KACTA,EAAgB,CACZ54D,UAAW44D,IAGnBtwE,EAAK0wE,QAAQJ,GACb,IAAIh1E,EAAS,GACb,GAAIg1E,EAAcp1D,QACd5f,EAAS,gBAAoBm1E,EAAqBH,OAC/C,CACHG,EAAsBzwE,EAAK2wE,kBAAkBL,GACzCC,GAA0BA,EAAuBtyE,MAAQsyE,EAAuB74D,YAChF44D,EAAgB,OAAAx5E,EAAA,WAAO,GAAIw5E,EAAe,CACtC54D,UAAW64D,EAAuB74D,aAG1C,IAAIk5D,EAA0B5wE,EAAK6wE,+BAA+BP,EAAeE,GAC5EF,EAAcx1E,OACfQ,EAAS,CACLq9D,SAAU,UAAU30C,OAAO0rD,QAGnCp0E,EAAS,gBAAoBA,EAAQy0E,GACrC,gBAAoBz0E,EAAQm1E,GAC5B,gBAAoBn1E,EAAQs1E,GAC5B,gBAAoBt1E,EAAQg1E,GAC5B,gBAAoBh1E,EAAQ,CACxBuY,SAAU,OAMlB,OAHIy8D,EAAc92B,mBAAqB82B,EAAcF,yBACjDD,EAAmC70E,GAEhCA,IAGXw1E,EAA2B,SAASA,EAAyB9wE,EAAM+wE,EAAgBP,GACnF,IAAIl1E,EAAS,GAkBb,OAjBIy1E,GACA,eAAKA,GAAgB,SAAUtzE,EAAO6yE,GAClC,IAAIC,EAAyBvwE,EAAKgxE,mBAAqBC,EAAqBX,EAAetwE,EAAKgxE,kBAAkBvzE,KAAWuC,EAAKgxE,kBAAkBvzE,GAChJmZ,EAASy5D,EAAarwE,EAAMswE,EAAeC,EAAwBC,GACnE55D,IACI45D,IACA55D,EAAOwjC,UAAYo2B,GAEvBl1E,EAAOgE,KAAKsX,GACRA,EAAOiE,UACPvf,EAASA,EAAO0oB,OAAO8sD,EAAyB9wE,EAAM4W,EAAOiE,QAASjE,WAC/DA,EAAOiE,QACdjE,EAAOs6D,YAAa,OAK7B51E,GAEP61E,EAAuB,SAASv/D,EAAaw/D,GAC7C,IAAI91E,EAAS,GACTmgB,EAAS21D,EAAoBx/D,GACjC,MAAO6J,EACHngB,EAAO0jB,QAAQvD,GACf7J,EAAc6J,EAAOhe,MACrBge,EAAS21D,EAAoBx/D,GAEjC,OAAOtW,GAEP+1E,EAA2B,SAASz/D,EAAa0/D,EAAuBC,GACxE,IAAIj2E,EAAS,GACT+4D,EAAWid,EAAsB1/D,GACrC,GAAIyiD,EACA,IAAK,IAAIv8D,EAAI,EAAGA,EAAIu8D,EAASp+D,OAAQ6B,IAAK,CACtC,IAAI8e,EAASy9C,EAASv8D,GACjB,eAAU8e,EAAOmjC,cAAenjC,EAAO6jC,kBACxCn/C,EAAOgE,KAAKsX,GACR26D,GAAa36D,EAAOsjC,SACpB5+C,EAASA,EAAO0oB,OAAOqtD,EAAyBz6D,EAAOnZ,MAAO6zE,EAAuBC,MAKrG,OAAOj2E,GAEPk2E,EAAoB,SAASxxE,EAAM4W,GACnC,IACIiE,EADAvf,EAAS,GAETm2E,EAAmBzxE,EAAK0xE,sBACxBC,EAAiB,SAASzrE,GAC1B,OAAOA,EAAKk0C,YAAcxjC,EAAOwjC,WAErC,GAAIq3B,EAAiBG,QAAS,CAC1B,IAAIhgE,EAAc5R,EAAK6xE,SAASl3E,QAAQic,GACpChF,GAAe,IACftW,EAAS,CAAC,WAAW0oB,OAAOpS,EAAa,WAE1C,CACHiJ,EAAU7a,EAAK6xE,SAASp3E,OAAOk3E,GAC/B,MAAO92D,EAAQ5kB,SAAW,IAAM4kB,EAAQlgB,QAAQic,GAC5Ctb,EAAO0jB,QAAQ,WAAWgF,OAAOnJ,EAAQlgB,QAAQic,GAAS,MAC1DA,EAAS66D,EAAiBL,oBAAoBx6D,EAAOnZ,OACrDod,EAAUjE,EAAS5W,EAAK6xE,SAASp3E,OAAOk3E,GAAkB,GAGlE,OAAOr2E,EAAOjD,KAAK,MAEnBy5E,EAAmB,SAASA,EAAiB9xE,EAAMotE,GACnD,IAAIxU,EAAU,EACV/9C,EAAU7a,EAAKisE,wBAAwBmB,GAAU,GASrD,OARA,eAAKvyD,GAAS,SAAUzf,EAAGwb,GACnBA,EAAOsjC,QACPtjC,EAAOgiD,QAAUhiD,EAAOgiD,SAAWkZ,EAAiB9xE,EAAM4W,EAAOnZ,OACjEm7D,GAAWhiD,EAAOgiD,SAAW,GAE7BA,GAAW,KAGZA,GAEPmZ,EAAmB,SAAS7zE,GAC5B,IAAIkT,EAAW,eAAKlT,GAIpB,MAHI,WAAakT,GAAY,YAAcA,GAAY,WAAaA,GAAY,SAAWA,GAAY,WAAaA,IAChHA,OAAW,GAERA,GAEP4gE,EAAyB,SAAS5gE,EAAUlT,GAC5C,OAAQkT,GACJ,IAAK,OACL,IAAK,WACD,OAAO,GAAkBg9D,2BAA2BlwE,GACxD,IAAK,SACD,GAAI,eAASA,GACT,MAAO,SAEX,GAAI,eAAUA,GACV,OAAO,OAInB+zE,EAAoB,SAAS9/D,EAASf,GACjCe,EAAQ+/D,mBACL,OAAc/gE,WAAWC,KACzBe,EAAQ+/D,iBAAmB,SAASh0E,GAChC,OAAO,GAAkB2wE,gBAAgB3wE,IAE7CiU,EAAQggE,eAAiB,SAASj0E,GAC9B,OAAO,eAASA,GAASA,EAAQ,GAAkB6wE,cAAc7wE,EAAO7B,KAAK2yE,uBAGjF,WAAa59D,IACbe,EAAQ+/D,iBAAmB,SAASh0E,GAChC,IAAImwE,EAAc/d,WAAWpyD,GAC7B,OAAO2B,MAAMwuE,GAAenwE,EAAQmwE,GAExCl8D,EAAQggE,eAAiB,SAASj0E,EAAOqU,GACrC,MAAI,WAAaA,EACNrU,EAEJ,eAAUA,IAAU,WAAa7B,KAAK2yE,oBAAsB9wE,EAAM8P,WAAa9P,MAKlGk0E,EAAkC,SAASnyE,GAC3C,OAAI,IAASA,EAAE/B,MACJ7B,KAAKwa,UAAY,QACjB,IAAU5W,EAAE/B,MACZ7B,KAAKya,WAAa,QAElB7W,EAAEmS,WAAa,IAG1BigE,EAA6B,SAASjhE,GACtC,GAAI,YAAcA,EACd,OAAOghE,GAGXE,EAAsB,SAAStyE,GAC/B,eAAKA,EAAK6xE,UAAU,SAAUp0E,EAAOmZ,GACjCA,EAAOnZ,MAAQA,KAEnB,eAAKuC,EAAK6xE,UAAU,SAAUp0E,EAAOmZ,GAC7B,eAASA,EAAOwjC,aAChBxjC,EAAOwjC,UAAYxjC,EAAOwjC,UAAU38C,UAG5C,eAAKuC,EAAKuyE,iBAAiB,SAAU90E,EAAOmZ,GACxCA,EAAOnZ,QAAUA,EAAQ,OAG7B+0E,EAA2B,SAASxyE,EAAMyyE,GAC1C,gBAAiBzyE,EAAK6xE,SAAU,aAAcY,GAAe,SAAU77D,GACnE,IAAIkjC,EAAUljC,EAAOkjC,QAErB,cADOljC,EAAOkjC,QACPA,MAGX44B,EAA+B,SAAS1yE,EAAM66C,EAAcwM,GAC5D,IAEIzwC,EAFAigD,EAAW,eAAShc,GAAgBA,EAAagc,SAAW,KAC5Dh8C,EAAU,UAAYwsC,EAAWrnD,EAAK2yE,kBAAoB,kBAAoBtrB,EAAWrnD,EAAK4yE,oBAAsB5yE,EAAK45D,kBAAkB/C,GAO/I,OALAhc,EAAe,eAASA,GAAgBA,EAAajpC,YAAcipC,EACnEjkC,EAASiE,EAAQggC,GACbjkC,GAAUA,EAAO9b,OAAS20E,KAC1B74D,EAAS5W,EAAK6xE,SAASp3E,OAAO8gE,GAAO3kD,EAAO9b,OAASygE,EAAIzgE,MAAM,IAAM8b,GAElEA,GAAU,eAAUA,EAAOnZ,OAASmZ,EAAOnZ,OAAS,GAG/D,SAASwzE,EAAqBr6D,EAAQi8D,GAClC,OAAOj8D,GAAUi8D,GAAmBA,EAAgB50E,QAAU2Y,EAAO3Y,MAAQ2Y,EAAOc,aAAem7D,EAAgBn7D,YAAcd,EAAOc,WAAad,EAAO3Y,MAEhK,IAAI60E,EAAiB,SAAS9yE,GAC1B,IAOI4W,EACAm8D,EACAj7E,EATAk7E,EAAmBhzE,EAAKgxE,kBACxBiC,EAA0BjzE,EAAKkzE,0BAA4B,GAC3Dr4D,EAAU7a,EAAK6xE,SACfsB,EAAkB,GAClBC,EAAgB,GAChBC,GAAsB,EACtBC,EAAyB,GAK7B,SAASC,EAAiB38D,EAAQi8D,GAC9B,GAAKA,EAGL,IAAK,IAAIp1E,EAAQ,EAAGA,EAAQ0xE,GAAuBl5E,OAAQwH,IAAS,CAChE,IAAI+1E,EAAYrE,GAAuB1xE,GACnCw1E,EAAwB5zE,SAASm0E,KAGjC,aAAeA,EACf58D,EAAO48D,GAAa58D,EAAO48D,IAAcX,EAAgBW,GAClDtE,GAA4B7vE,SAASm0E,GACxCA,KAAaX,IACbj8D,EAAO48D,GAAaX,EAAgBW,KAGpC,4BAA8BA,GAAaX,EAAgBW,KAC3D58D,EAAO68D,+BAAiC78D,EAAO48D,IAAc,MAEjE58D,EAAO48D,GAAaX,EAAgBW,MAKhD,SAASE,EAAoBV,EAAkBp8D,GAG3C,IAFA,IAAIzrB,EAAKyrB,EAAO3Y,MAAQ2Y,EAAOc,UAC3BjJ,EAAQ0kE,EAAgBhoF,IAAO,EAC1B4c,EAAI,EAAGA,EAAIirE,EAAiB/8E,OAAQ8R,IACzC,GAAIkpE,EAAqBr6D,EAAQo8D,EAAiBjrE,IAAK,CACnD,IAAI0G,EAKA,OAFA0kE,EAAgBhoF,GAAMgoF,EAAgBhoF,IAAO,EAC7CgoF,EAAgBhoF,KACT4c,EAJP0G,IAQZ,OAAQ,EAEZ,GAAIukE,EAAkB,CAClB,IAAKl7E,EAAI,EAAGA,EAAI+iB,EAAQ5kB,OAAQ6B,IAC5Bi7E,EAAuBW,EAAoBV,EAAkBn4D,EAAQ/iB,IACrEu7E,EAAsBA,GAAuBN,GAAwB,EACrEO,EAAuBh0E,KAAKyzE,GAEhC,IAAKj7E,EAAI,EAAGA,EAAI+iB,EAAQ5kB,OAAQ6B,IAC5B8e,EAASiE,EAAQ/iB,GACjBi7E,EAAuBO,EAAuBx7E,IAC1CkI,EAAK2zE,eAAiBN,IACtBE,EAAiB38D,EAAQo8D,EAAiBD,IAE1CA,GAAwB,GAAK,eAAUC,EAAiBD,GAAsBa,cAC9ER,EAAcL,GAAwBn8D,EAEtCw8D,EAAc9zE,KAAKsX,GAG3B,IAAIi9D,GAAgB,EACpB,IAAK/7E,EAAI,EAAGA,EAAIk7E,EAAiB/8E,OAAQ6B,IAAK,CAC1C,IAAIg8E,EAAkBd,EAAiBl7E,GACnCg8E,EAAgBC,OAASL,EAAoB74D,EAASi5D,GAAmB,IACzEl9D,EAASy5D,EAAarwE,EAAM8zE,EAAgBC,OAC5CR,EAAiB38D,EAAQk9D,GACzBV,EAAc9zE,KAAKsX,GACfk9D,EAAgBC,MAAMl5D,UACtBg5D,GAAgB,IAIxBA,IACAvB,EAAoBtyE,GACpBozE,EAAgBtC,EAAyB9wE,EAAMozE,IAEnDY,EAAch0E,EAAMozE,KAGxBa,EAAgB,SAASj0E,EAAM4W,GAC/B07D,EAAoBtyE,GACpBwyE,EAAyBxyE,EAAM4W,GAC7B,SAAS5W,EAAMyyE,GACb,eAAKzyE,EAAK6xE,UAAU,SAAUp0E,EAAOmZ,GAC7B,eAAUA,EAAO8jC,aAAew5B,EAAiBt9D,EAAO+jC,mBACjD/jC,EAAO8jC,aAGtB,gBAAiB16C,EAAK6xE,SAAU,YAAaY,GAAe,SAAU77D,GAClE,OAAQ,eAAUA,EAAOmjC,aAAem6B,EAAiBt9D,EAAO+jC,cAPtE,CASA36C,EAAM4W,GACRu9D,EAAsBn0E,GACpB,SAASA,EAAMyyE,GAMb,IALA,IAAI77D,EACAtb,EAAS,GACTm2E,EAAmBzxE,EAAK0xE,sBACxB0C,EAAgB,GAChBv5D,EAAU7a,EAAK6xE,SAASp3E,OAAOmc,IAAWA,EAAOsE,SAC5CpjB,EAAI,EAAGA,EAAI+iB,EAAQ5kB,OAAQ6B,IAAK,CACrC8e,EAASiE,EAAQ/iB,GACjB,IAAIu8E,EAAoBlD,EAAqBr5E,EAAG25E,EAAiBL,qBAC7DiD,EAAkBp+E,OAClBm+E,EAAc90E,KAAKsX,GAEnBtb,EAAOgE,KAAKsX,GAGpB,gBAAiBw9D,EAAe,eAAgB3B,GAChD,gBAAiBn3E,EAAQ,eAAgBm3E,GAhB3C,CAiBAzyE,EAAM4W,IAER09D,EAAoB,SAASt0E,GAC7BA,EAAKs0E,qBAGT,SAASN,EAAch0E,EAAM6a,GACzB7a,EAAK6xE,SAAWh3D,EAChBy5D,EAAkBt0E,GAClBA,EAAKu0E,wBAET,IAAIC,EAAsB,SAASx0E,EAAMk+D,EAAY5mB,EAAY1lC,GAC7D,IAAI6iE,EAAgBz0E,EAAK00E,gBAAkB,CACvC5T,YAAa,CACT7qE,OAAQ,GAEZsoE,YAAa,CACTtoE,OAAQ,GAEZ2b,YAAaA,GAEjB0lC,EAAaA,GAAc,MAC3BA,EAAaA,EAAWp/C,MAAM,KAAK,GACnC,IAAIqmE,EAAckW,EAAclW,YAC5BL,IAAeK,EAAYL,KAC3BK,EAAYL,IAAc,EAC1BK,EAAYtoE,UAEhB,IAAI6qE,EAAc2T,EAAc3T,YAC5BxpB,IAAewpB,EAAYxpB,KAC3BwpB,EAAYxpB,IAAc,EAC1BwpB,EAAY7qE,eAEZ,IAAW2b,GAAeA,IAAgB6iE,EAAc7iE,oBACjD6iE,EAAc7iE,YAEzB5R,EAAK00E,eAAiBD,EACtBH,EAAkBt0E,IAElB20E,EAAqB,SAAS30E,GAC9B,IAkBImS,EAlBAyiE,EAAoB50E,EAAKiV,OAAO,qBAChCw/D,EAAgBz0E,EAAK00E,eACrBG,EAAoB,CAAC,YAAa,SAAU,WAAY,WACxD70E,EAAK80E,kBAAoB90E,EAAKusD,kBAAoBkoB,IAC9CG,IACA50E,EAAKusD,mBACLqoB,EAAkB,OAAA99E,EAAA,WAAO,CACrBmX,UAAWjO,EAAKiO,WACjBwmE,IACHz0E,EAAKusD,oBAETvsD,EAAK00E,oBAAiB,EAClBviE,EAAUsiE,EAAc3T,YAAa3uD,GAAW0iE,EAAkB55D,KAAKhd,GAAQkU,EAAQlU,IACvF+B,EAAK+0E,SAEL/0E,EAAK0hE,eAAe7Q,KAAK4jB,KAKjCO,EAA8B,SAASh1E,EAAM4W,EAAQmjC,EAAYk7B,GACjE,IAAIC,EAAmBD,GAAkB,EACzC,GAAIl7B,GAAc,EACTm7B,IACDt+D,EAAOu+D,cAAgBv+D,EAAO+jC,eAE/B,CACH,IAAIy6B,EAAWp1E,EAAKiV,OAAO,gBACvB0lC,EAAY/jC,EAAOu+D,cACvB,GAAI,WAAaC,EAAU,CACvB,IAAIC,EAAwBr1E,EAAK6xE,SAAS52D,KAAKsgD,GAAOA,IAAQ3kD,GAAU,eAAU2kD,EAAI7gB,YAClF26B,IACA16B,OAAY,GAGpB/jC,EAAO+jC,UAAYA,IAGvB26B,EAAoB,SAASt1E,EAAMmS,GACnC,IAAIjU,EAAQiU,EAAQjU,MAChBo5C,EAAanlC,EAAQmlC,WACrBi+B,EAAYpjE,EAAQojE,UACpBC,EAAiBrjE,EAAQqjE,eACzBC,EAAiB,GAAGzxD,OAAOwxD,EAAgB,KAAKxxD,OAAOszB,GACtD83B,GAA2B93B,IAAet3C,EAAK01E,+BAAiCD,IACjFz1E,EAAK01E,6BAA+BD,EACpCz1E,EAAKiO,UAAU0nE,qBAAqBF,EAAgBv3E,EAAOq3E,GAC3Dv1E,EAAK01E,8BAA+B,IAGxCE,EAAmB,SAAS51E,EAAM4W,EAAQ0gC,EAAYp5C,EAAO23E,GAC7D,IAEIh7D,EACAqjD,EACA4X,EAJAC,EAAe,gBAAcz+B,GAC7B1lC,EAAcgF,EAAOnZ,MAIzB,GAAI,IAAMlB,UAAUtG,OAChB,OAAO8/E,EAAan/D,EAAQ,CACxBo/D,eAAe,IAGvB,IAAIT,EAAYQ,EAAan/D,EAAQ,CACjCo/D,eAAe,IAEnB,IAAK,eAAaT,EAAWr3E,GAAQ,CAC7B,eAAiBo5C,GAAc,wBAA0BA,GACzD4mB,EAAa,WACb8W,EAA4Bh1E,EAAM4W,EAAQ1Y,EAAOq3E,IAEjDrX,EADO,cAAgB5mB,GAAc,cAAgBA,GAAc,uBAAyBA,EAC/E,UAEA,UAEjB,IAAI2+B,EAAe,gBAAc3+B,GACjC2+B,EAAar/D,EAAQ1Y,EAAO,CACxB83E,eAAe,IAEnB,IAAIR,EAAiBhE,EAAkBxxE,EAAM4W,GACzCs5D,EAAqB54B,KACrB28B,EAAcj0E,EAAM4W,GACpB1Y,EAAQ63E,EAAan/D,IAErB,SAAW0gC,GAAc,iBAAmBA,GAC5Ct3C,EAAKk2E,gBAEJ,eAAUX,IAAe,eAAUr3E,IAAU,IAAMo5C,EAAW38C,QAAQ,YACvEk7E,GAAe,GAEdA,EAiBDvB,EAAkBt0E,IAhBbmvE,GAAuB9vE,SAASi4C,IAAe,iBAAmBA,IACnEz8B,EAAU7a,EAAKiV,OAAO,WACtB6gE,EAAgB91E,EAAKm2E,gBAAgBX,EAAgB36D,GACjD,eAASi7D,KACTA,EAAgBj7D,EAAQjJ,GAAe,CACnC8F,UAAWo+D,IAGfA,GAAiB7E,EAAqB6E,EAAel/D,IACrDq/D,EAAaH,EAAe53E,EAAO,CAC/B83E,eAAe,KAI3BxB,EAAoBx0E,EAAMk+D,EAAY5mB,EAAY1lC,IAItD4jE,GAAkBF,EAAkBt1E,EAAM,CACtCw1E,eAAgBA,EAChBl+B,WAAYA,EACZp5C,MAAOA,EACPq3E,UAAWA,MAKvB,SAASrB,EAAiBv5B,GACtB,MAAO,QAAUA,GAAa,SAAWA,EAE7C,IAAIy7B,EAAsB,SAAS31E,EAAMvC,GACrC,IAAIm4E,EAAOh6E,KAAKqb,UAAUxf,MAAM,KAC5Bo+E,EAAWD,EAAKpgF,OAAS,EACzBoG,KAAK81E,iBACLj0E,EAAQ7B,KAAK81E,eAAej0E,IAEhC,IAAK,IAAIpG,EAAI,EAAGA,EAAIw+E,EAAUx+E,IAAK,CAC/B,IAAImG,EAAOo4E,EAAKv+E,GAChB2I,EAAOA,EAAKxC,GAAQwC,EAAKxC,IAAS,GAEtCwC,EAAK41E,EAAKC,IAAap4E,GAEvBq4E,EAAwB,CAACv2E,EAAMw2E,MAAoBx2E,EAAK6xE,SAASp3E,OAAOmc,GAAUA,EAAO9b,OAAS07E,EAAc17E,MAAM7E,OACtHwgF,EAAmB,SAASz2E,EAAM4W,GAClC,IAAI8B,EAAa1Y,EAAKiV,OAAO,cAC7B,OAAI2B,EAAOsE,UAAYq7D,EAAsBv2E,EAAM4W,KAAYA,EAAO+iC,cAC3DjhC,EAAa,QAAU,OAE3B9B,EAAO+iC,eAEd+8B,EAAuB,SAAS77D,EAAS87D,EAAe77E,EAAM8W,GAC9D,IAAIglE,EACA3L,EAAW5uE,KAAKwuE,cAChBG,EAAUnwD,EAAQjJ,IAAgBiJ,EAAQjJ,GAAao5D,QACvD6L,EAAsBF,EAAcl8E,OAAOmc,GAAUA,EAAO9b,OAASA,GAgBzE,OAfA+f,EAAQtd,QAAQ,CAACqZ,EAAQnZ,KACjBmZ,EAAO9b,OAASA,IAChB87E,EAAoBn5E,EACpButE,EAAUnwD,EAAQpd,EAAQ,GAAKod,EAAQpd,EAAQ,GAAGutE,QAAUC,KAGhED,EAAU,IACV6L,EAAsB,eAAIA,GAAqB,SAAUC,GACrD,OAAO,OAAAhgF,EAAA,WAAO,GAAIggF,EAAc,CAC5B9L,QAASA,QAIrB6L,EAAoB73D,QAAQ7jB,MAAM07E,EAAqB,eAAUD,GAAqB,CAACA,EAAmB,GAAK,CAAChlE,EAAa,IAC7HiJ,EAAQ6lD,OAAOvlE,MAAM0f,EAASg8D,GACvB7L,GAAW,GAElB+L,EAAiB,SAASr/E,EAAQs/E,GAClC,IAAIz+E,EAAMb,EAASA,EAAOsW,WAAa,IACvC,MAAOzV,EAAItC,OAAS+gF,EAChBz+E,EAAM,IAAMA,EAEhB,OAAOA,GAEP0+E,EAAe,CAACj3E,EAAM6a,EAASq8D,EAAgBC,KAa/C,IAZA,IAAIvgE,EACAwgE,EACA97E,EAASuf,EAAQxK,QAAQlY,IAAIye,GAAU,OAAA9f,EAAA,WAAO,GAAI8f,IAClDygE,EAAiBr3E,EAAKs3E,kBACtBC,EAAwBL,EAAe7mE,QAAQlY,IAAIye,GAAU,OAAA9f,EAAA,WAAO,CACpEqkB,MAAOk8D,GACRzgE,IACC4gE,EAAwB5gE,GAAUsgE,EAAe3yD,OAAO,CAACjpB,EAAQk7E,EAAe/4E,KAChF,IAAIg6E,EAAaN,GAAgBvgE,EAAO9b,OAAS20E,GAA4B,SAAW74D,EAAO9b,KAC/F,OAAO07E,EAAc17E,OAAS28E,GAAcjB,EAAct7D,UAAYtE,EAAOsE,QAAUzd,EAAQnC,IAC/F,GACAq2E,EAAiB6E,GAAiBA,EAAct7D,UAAYg8D,EAAeE,GAAoBl8D,QAC1FpjB,EAAI,EAAGA,EAAI+iB,EAAQ5kB,OAAQ6B,IAGhC,GAFA8e,EAASiE,EAAQ/iB,GACjBs/E,EAAqBxgE,IAAWA,EAAO9b,MAAQ8b,EAAOsE,SAAWs8D,EAAsB5gE,IAAW,EAC9FwgE,GAAsB,EACtB,GAAID,EACA77E,EAAOxD,GAAK,OAAAhB,EAAA,WAAO,CACfqkB,MAAOk8D,GACRH,EAAeE,GAAqBxgE,GACnCA,EAAO9b,OAAS20E,KAChB8H,EAAwBA,EAAsB98E,OAAOk3E,QAEtD,CACH,IAAIrB,EAAgB,CAChBz1B,aAAcjkC,EAAOikC,aACrBp9C,MAAOmZ,EAAOnZ,MACdk7D,SAAU/hD,EAAO+hD,SACjB/f,YAAa,IAAMhiC,EAAOmjC,WAC1Bf,gBAAiB,IAAMpiC,EAAOmjC,WAC9BA,WAAYnjC,EAAOmjC,YAEvBz+C,EAAOxD,GAAK,OAAAhB,EAAA,WAAO,GAAI8f,EAAQsgE,EAAeE,GAAqBxgE,EAAO9b,OAAS20E,IAA6Ba,GAO5H,OAHIz1D,EAAQ5kB,QAAUkhF,GAAgBI,EAAsBthF,SACxDqF,EAASA,EAAO0oB,OAAOuzD,IAEpBj8E,GAEPo8E,EAAgB,CAAC13E,EAAM4W,IAAW,eAAUA,EAAOuE,SAAWvE,EAAO9b,KAAO8b,EAAOuE,MAAQnb,EAAKs3E,kBAChGnD,EAAwBn0E,IACxBA,EAAK23E,uBAAoB,GAEzBC,EAAa,CAAC/8D,EAASg9D,KACvB,IACIjhE,EADAkhE,EAAuB,eAASD,IAAeA,EAAWxoE,OAAO,EAAGwoE,EAAWl9E,QAAQ,MAE3F,QAAI,IAAWk9E,EAcf,OAXIC,IACAD,EAAaA,EAAWxoE,OAAOyoE,EAAqB7hF,OAAS,IAE7D6hF,EACAlhE,EAASiE,EAAQpgB,OAAOmc,GAAU,GAAKA,EAAOkhE,KAA0BD,GAAY,GAEpF,CAAC,QAAS,OAAQ,YAAa,WAAW58D,KAAKq8B,IAC3C1gC,EAASiE,EAAQpgB,OAAOmc,GAAUA,EAAO0gC,KAAgBugC,GAAY,KAC5DjhE,IAGVA,GAEX,MAAO,CACHmhE,wBAAyB,WACrB,MAAO,CACHj9E,KAAM,SACNogB,QAAS,SACTxT,MAAO,OACPuwC,SAAUs3B,GACV5nE,cAAc,EACdkxC,eAAe,EACfK,cAAc,EACd99B,eAAe,EACf49B,iBAAiB,EACjBD,aAAa,IAGrBi/B,eAAgB,SAASvhE,GACrB,IAAIwhE,EACArxE,EAAQ,GAeZ,OAdI6P,GAAcA,EAAW7P,QAAQ3Q,OAAS,IAC1CgiF,EAAc,OAAcjmE,qBAAqByE,EAAW7C,SAAS3d,OACrE2Q,EAAQ,SAASsxE,EAAkBtxE,EAAOqxE,GACtC,IAAKrxE,IAAUqxE,EACX,OAAOrxE,EAEX,IAAK,IAAI9O,EAAI,EAAGA,EAAI8O,EAAM3Q,OAAQ6B,IAAK,CACnC,IAAIqgF,EAAaD,EAAkBtxE,EAAM9O,GAAG8O,OAASA,EAAM9O,GAAGsgF,eAAgBH,EAAc,GAC5F,GAAIE,GAAcA,EAAWliF,OACzB,OAAOkiF,GAPX,CAUN1hE,EAAW7P,QAASqxE,IAAgB,IAEnCrxE,GAEXylD,eAAgB,YACXhwD,KAAKq5E,8BAAgCf,EAAmBt4E,OAE7DywD,KAAM,SAASurB,GACX,IAAIx9D,EAAUxe,KAAK4Y,OAAO,WAC1B5Y,KAAKk2E,gBAAkBl2E,KAAKk2E,iBAAmB,GAC/Cl2E,KAAKw1E,SAAWx1E,KAAKw1E,UAAY,GACjCx1E,KAAKi8E,wBAA0Bz9D,EAC3Bxe,KAAKi8E,uBACLtE,EAAc33E,KAAMwe,EAAUi2D,EAAyBz0E,KAAMwe,GAAW,IACxEi4D,EAAez2E,OAEf23E,EAAc33E,KAAMA,KAAK20E,kBAAoBF,EAAyBz0E,KAAMA,KAAK20E,mBAAqB30E,KAAKw1E,UAC5G,SAAS7xE,GACR,IAAImS,EAAUnS,EAAK+3E,0BACnB/3E,EAAKu4E,iBAAiBpmE,GAFvB,CAGD9V,MACEA,KAAKm8E,mBACLn8E,KAAKo8E,gBAAgBp8E,KAAKqa,aAAa,EAAM2hE,GAE7CpE,EAAc53E,MAElBA,KAAK65E,iBAETxpB,cAAe,WACX,MAAO,CAAC,mBAEZypB,gBAAiB,SAASE,EAAMx7D,GAC5B,IAAIjE,EACA8hE,EAAgB,GAoCpB,OAnCArC,EAAK7+E,QAAQ,IAAQ,SAAU4D,EAAGwW,GAE9B,OADA8mE,EAAcp5E,KAAK1B,SAASgU,IACrB,MAEP8mE,EAAcziF,SAEV2gB,EADAiE,EACS69D,EAAcn0D,QAAO,SAAU3N,EAAQnZ,GAC5C,OAAOmZ,GAAUA,EAAOiE,SAAWjE,EAAOiE,QAAQpd,KAClD,CACAod,QAASA,IAGJ,SAAS7a,EAAM04E,GACpB,IAAIp9E,EACAuf,EACA42D,EAAmBzxE,EAAK0xE,sBACxBC,EAAiB,SAAS/6D,GAC1B,IAAIwjC,EAAY9+C,EAASA,EAAOmC,WAAQ,EACxC,OAAOmZ,EAAOwjC,YAAcA,GAEhC,GAAIq3B,EAAiBG,QACjBt2E,EAAS0E,EAAK6xE,SAAS6G,EAAc,QAClC,CACH79D,EAAU7a,EAAK6xE,SAASp3E,OAAOk3E,GAC/B,IAAK,IAAI75E,EAAI,EAAGA,EAAI4gF,EAAcziF,OAAQ6B,IACtCwD,EAASuf,EAAQ69D,EAAc5gF,IAC3BwD,IACAuf,EAAU7a,EAAK6xE,SAASp3E,OAAOk3E,IAI3C,OAAOr2E,EAnBF,CAoBPe,KAAMq8E,IAGT9hE,GAEX22C,cAAe,SAAS7hB,GACpB,IAAIitC,EACJ,OAAQjtC,EAAKztC,MACT,IAAK,0BACDytC,EAAK+hB,SAAU,EACf,MACJ,IAAK,aACG/hB,EAAKxtC,QAAUwtC,EAAKktC,eAAkBv8E,KAAK4Y,OAAO,YAAgB/Z,MAAMuY,QAAQi4B,EAAKxtC,QAAWhD,MAAMuY,QAAQi4B,EAAKktC,iBACnHv8E,KAAKw1E,SAAW,IAEpB,MACJ,IAAK,UACD8G,EAA0Bt8E,KAAKq5E,6BAC/BhqC,EAAK+hB,SAAU,EACVpxD,KAAKq5E,+BACFhqC,EAAKztC,OAASytC,EAAKmtC,UACnBx8E,KAAK20E,kBAAoB,KACzB30E,KAAK62E,yBAA2B,KAChC72E,KAAKywD,SAELzwD,KAAKwkE,qBAAqBn1B,GAC1BitC,GAA0B,IAG9BA,GACAt8E,KAAKy8E,qBAAqBptC,GAE9B,MACJ,IAAK,uBACL,IAAK,kBACL,IAAK,sBACL,IAAK,wBACL,IAAK,eACL,IAAK,WACL,IAAK,aACL,IAAK,kCACL,IAAK,mBACL,IAAK,sBACL,IAAK,0BACL,IAAK,qBACL,IAAK,iBACL,IAAK,cACDA,EAAK+hB,SAAU,EACf,IAAIwlB,EAA0B,gBAAkBvnC,EAAKmtC,UAAY,CAAC,SAClEx8E,KAAK04E,OAAO9B,GACZ,MACJ,IAAK,aACD52E,KAAK04E,SACL,MACJ,QACI14E,KAAKC,SAASovC,KAG1Bm1B,qBAAsB,SAASn1B,GAC3B,IAAIqtC,EAAoB,GACpBniE,EAASva,KAAK85E,gBAAgBzqC,EAAKmtC,UACnCG,EAAmBttC,EAAKmtC,SAASrhF,QAAQ,GAAQ,IACjDof,IACIoiE,EACAD,EAAkBC,GAAoBttC,EAAKxtC,MAE3C66E,EAAoBrtC,EAAKxtC,MAE7B7B,KAAKq5E,6BAA+BhqC,EAAKmtC,SACzCx8E,KAAK0nE,aAAantD,EAAOnZ,MAAOs7E,GAChC18E,KAAKq5E,8BAA+B,IAG5CoD,qBAAsB,SAASptC,GAC3B,IAAIz9B,EAAY5R,KAAK4R,UACjB,UAAYy9B,EAAKmtC,SAASrhF,QAAQ,GAAQ,KAAOyW,EAAUs+C,mBAC3Dt+C,EAAUwhD,gBAAiB,IAGnC1C,cAAe,WACX,MAAO,CAAC,YAAa,eAAgB,eAAgB,cAAe,eAAgB,gBAAiB,oBAAqB,0BAE9H0rB,gBAAiB,SAAShiE,EAAYwiE,EAAeZ,GACjD,IAAIa,EAAqBziE,GAAcA,EAAWk0D,WAElD,GADAtuE,KAAKqa,YAAcD,GACdpa,KAAKm8E,oBAAsB,IAAMn8E,KAAK88E,yBAA2BF,GAAiB58E,KAAK4Y,OAAO,mCAAoC,CACnI,GAAIikE,EAAoB,CACpB,IAAK78E,KAAKi8E,sBAAuB,CAC7B,IAAIc,EAAwB,SAASp5E,EAAMyW,GAKvC,IAJA,IACI+8D,EADA6F,EAAar5E,EAAKg4E,eAAevhE,GAEjC6iE,EAAkB,GAClBh+E,EAAS,GACJxD,EAAI,EAAGA,EAAIuhF,EAAWpjF,OAAQ6B,IACnC,GAAIuhF,EAAWvhF,GACX,IAAK07E,KAAa6F,EAAWvhF,GACpB,eAAWuhF,EAAWvhF,GAAG07E,MAAe,QAAgBp3D,UAAUi9D,EAAWvhF,GAAG07E,MACjF8F,EAAgB9F,IAAa,GAK7C,IAAKA,KAAa8F,EACd,GAAI,IAAM9F,EAAU74E,QAAQ,MAAO,CAC/B,IAAIic,EAASy5D,EAAarwE,EAAMwzE,GAChCl4E,EAAOgE,KAAKsX,GAGpB,OAAOtb,EApBiB,CAqB1Be,KAAMoa,GACJ2iE,EAAsBnjF,SACtB+9E,EAAc33E,KAAM+8E,GACpB/8E,KAAK88E,wBAA0B98E,KAAKw1E,SAAS57E,OAC7C68E,EAAez2E,OAGvB,OAAOA,KAAKk9E,cAAc9iE,EAAYwiE,EAAeZ,GAErDh8E,KAAKm8E,oBAAqB,EAC1BvE,EAAc53E,WAEf,GAAI68E,IAAuB78E,KAAKm9E,uBAAsB,IAASn9E,KAAKk4E,sBAAsB99D,GAG7F,OAFA+9D,EAAoBn4E,KAAM,WAC1Bs4E,EAAmBt4E,OACZ,IAAK,eAAU6zB,SAASpS,WAGvC27D,MAAO,WACHp9E,KAAKqa,YAAc,KACnBra,KAAKm8E,oBAAqB,EAC1Bn8E,KAAK88E,6BAA0B,EAC/B98E,KAAK04E,UAETT,kBAAmB,WACfj4E,KAAKq9E,qBAAkB,EACvBr9E,KAAKs9E,mBAAgB,EACrBt9E,KAAKu9E,eAAY,EACjBzF,EAAsB93E,OAE1B04E,OAAQ,SAAS9B,GACb52E,KAAK20E,kBAAoB30E,KAAKw9E,eAC9Bx9E,KAAK62E,yBAA2BD,GAA2B,KAC3D52E,KAAKywD,OACDmmB,IACA52E,KAAK62E,yBAA2B,OAGxC4B,cAAe,WACX,QAASz4E,KAAKw1E,SAAS57E,UAAYoG,KAAK4Y,OAAO,YAEnD6kE,oBAAqB,WACjB,OAAOz9E,KAAKm8E,oBAEhB7H,kBAAmB,SAAS/5D,GACxB,IAAIg5D,IAAyBh5D,IAAWA,EAAO9b,OAASuB,KAAK4Y,OAAO,yBAA2B,GAC3F8kE,EAAkB19E,KAAK4Y,OAAO,aAAe,GAC7C+kE,EAAoB39E,KAAK4Y,OAAO,eAAiB,GACrD,OAAO,OAAAne,EAAA,WAAO,CACV8hD,YAAav8C,KAAK4Y,OAAO,wBACzBmG,cAAe/e,KAAK4Y,OAAO,6BAA0B,EACrD+jC,gBAAiB38C,KAAK4Y,OAAO,yBAC7BklC,SAAU99C,KAAK4Y,OAAO,kBACtBvN,MAAOrL,KAAK4Y,OAAO,eACnBkkC,gBAAiB4gC,EAAgBn0B,cACjCD,gBAAiBo0B,EAAgBp0B,gBACjC9M,cAAemhC,EAAkBpzB,qBAAuBozB,EAAkBpjC,SAAWmjC,EAAgBl0B,oBACtG+pB,IAEPnD,mBAAoB,SAASn1B,GACzB,IAAK,IAAIx/C,EAAI,EAAGA,EAAIuE,KAAKw1E,SAAS57E,OAAQ6B,IACtC,GAAIuE,KAAKw1E,SAAS/5E,GAAGw/C,GACjB,OAAO,GAInBkiC,sBAAuB,SAASS,GAC5B,IAAIp/D,EAAUxe,KAAKw1E,SACnB,IAAKh3D,EAAQ5kB,OACT,OAAO,EAEX,IAAK,IAAI6B,EAAI,EAAGA,EAAI+iB,EAAQ5kB,OAAQ6B,IAChC,IAAK+iB,EAAQ/iB,GAAG4f,WAAamD,EAAQ/iB,GAAGoZ,qBAAuB2J,EAAQ/iB,GAAGwkB,8BAGrEzB,EAAQ/iB,GAAGsZ,UAAY6oE,GAAoBp/D,EAAQ/iB,GAAGo6E,uBAAoB,IAAWr3D,EAAQ/iB,GAAGk3E,qBACjG,OAAO,EAGf,OAAO,GAEXva,WAAY,WACR,OAAOp4D,KAAKw1E,UAEhBqI,kBAAmB,WACf,OAAO79E,KAAKo4D,aAAax5C,MAAK,SAAUrE,GACpC,OAAOA,EAAOsjC,WAGtBy4B,gBAAiB,WACb,IAAIr3E,EAAS,GAMb,OALA,eAAKe,KAAKw1E,UAAU,WACZ,eAAUx1E,KAAK09C,cACfz+C,EAAOe,KAAK09C,YAAc19C,SAG3Bf,GAEX6+E,4BAA6B,WACzB,OAAO,GAEXC,uBAAwB,SAASvjB,GAG7B,OAFAx6D,KAAKq9E,gBAAkBr9E,KAAKq9E,iBAAmBr9E,KAAKg+E,6BACpDxjB,EAAW,eAAUA,GAAYA,EAAWx6D,KAAKq9E,gBAAgBzjF,OAAS,EACnEoG,KAAKq9E,gBAAgB7iB,IAAa,IAE7C+C,kBAAmB,SAAS/C,GACxB,OAAKx6D,KAAK89E,8BAGH99E,KAAK+9E,uBAAuBj/E,MAAMkB,KAAME,WAFpC,IAIf+9E,gBAAiB,SAASzjB,GAGtB,OAFAx6D,KAAKs9E,cAAgBt9E,KAAKs9E,eAAiBt9E,KAAKk+E,uBAChD1jB,EAAW,eAAUA,GAAYA,EAAWx6D,KAAKs9E,cAAc1jF,OAAS,EACjEoG,KAAKs9E,cAAc9iB,IAAa,IAE3C2jB,oBAAqB,WACjB,OAAOn+E,KAAKo4D,aAAah6D,OAAOyL,IAASA,EAAKwR,WAAaxR,EAAKjI,QAAUiI,EAAKyyC,gBAAkBzyC,EAAK4yC,uBAAuB3gD,IAAI+N,IAC7H,IAAImB,EAAQ,OAAAvQ,EAAA,YAAO,EAAM,GAAIoP,GAK7B,OAJK,eAAUmB,EAAMqQ,aACjBrQ,EAAMqQ,UAAYrQ,EAAMpJ,MAE5BoJ,EAAMmyC,iBAAmBtzC,EAAKszC,mBAAqBtzC,EAAKkqE,wBAA0B/oE,EAAMmyC,iBAAmB,KACpGnyC,KAGfq4D,qBAAsB,WAClB,OAAO,GAEX6a,qBAAsB,WAClB,IAOIE,EACAC,EACAC,EATAr/E,EAAS,GACT2vE,EAAW5uE,KAAKwuE,cAChBwM,EAAiBh7E,KAAKi7E,kBACtBsD,EAAoB,CACpB1/D,QAAS,eAET2/D,EAAqB,EAIzB,GAAIxD,EACA,IAAK,IAAIv/E,EAAI,EAAGA,GAAKmzE,EAAUnzE,IAAK,CAChC2iF,EAAsB,EACtBE,EAAoB,KACpBD,EAAyB,KAEzB,IADA,IAAIhhB,EAAiBr9D,KAAKu9D,kBAAkB9hE,GAAG,GACtCiQ,EAAI,EAAGA,EAAI2xD,EAAezjE,OAAQ8R,IAAK,CAC5C,IAAI+yE,EAAaphB,EAAe3xD,EAAI,GAChC6O,EAAS8iD,EAAe3xD,GACvB6O,EAAOuE,MAYD2/D,GAAcA,EAAW3/D,OAASs7D,EAAiBp6E,KAAMy+E,KAAgBrE,EAAiBp6E,KAAMua,GAClG,eAAU8jE,KACXA,EAAyB3yE,GAG7B4yE,EAAoB/jE,EAAO+iC,eAhBvB,IAAM7hD,IACF8e,EAAOsjC,QAAUtjC,EAAOgiD,QACxBiiB,GAAsBjkE,EAAOgiD,QAE7BiiB,KAGRJ,IACK,eAAUC,KACXA,EAAyB3yE,IAUrC,GAAI,IAAMjQ,IAAM,IAAM2iF,GAAuBA,GAAuB/gB,EAAezjE,QAC/E,MAAO,GAEN,eAAUykF,KACXA,EAAyB,UAAYC,EAAoB,EAAIjhB,EAAezjE,QAEhFqF,EAAOxD,GAAK4hE,EAAerpD,MAAM,GAC5BuqE,EAAkBhiB,UACnBgiB,EAAkBhiB,QAAUiiB,GAEhCv/E,EAAOxD,GAAG4oE,OAAOga,EAAwBD,EAAqBG,GAGtE,OAAOt/E,EAAOnD,IAAI0iB,GAAWA,EAAQ1iB,IAAIye,IACrC,IAAImkE,EAAY,eAAS,GAAInkE,GAI7B,OAHImkE,EAAUpiB,WACVoiB,EAAUpiB,UAAY,UAEnBoiB,MAGfzD,gBAAiB,WACb,IAAID,EAAiBh7E,KAAK4Y,OAAO,wBAOjC,OANCoiE,GAAkB,eAAKh7E,KAAKw1E,UAAU,SAAUz2E,EAAGwb,GAChD,GAAIA,EAAOuE,MAEP,OADAk8D,GAAiB,GACV,KAGRA,GAEX2D,sBAAuB,WACnB,OAAO3+E,KAAKs2E,mBAEhBsI,iBAAkB,WACd,IACInE,EADAH,EAAgBt6E,KAAK2+E,wBAErBE,EAAmBvE,EAAcl8E,OAAOmc,GAAU,IAAMA,EAAOmjC,YAAY,GAC3EohC,EAA0BD,GAAoBA,EAAiB//D,MAC/Dk8D,EAAiBh7E,KAAKi7E,kBACtB5+D,EAAarc,KAAK4Y,OAAO,cAe7B,OAdI0hE,EAAc1gF,SACd6gF,EAAez6E,KAAK0nE,aAAa,mBAErC4S,EAAgB,eAAIA,EAAe//D,GAAU,OAAA9f,EAAA,WAAO,GAAI8f,EAAQ,CAC5DiiD,aAAc,KACd1e,SAAU,KACV3yC,aAAe,eAAUoP,EAAOmjC,YAAoC,KAAtBnjC,EAAOpP,aACrDwyC,mBAAoB,KACpB7+B,SAAQ,eAAUvE,EAAOmjC,cAAgBohC,IAA0B9D,EACnE19B,cAAejhC,EAAa,QAAU,QACvCo+D,EAAc,CACbr5E,MAAOmZ,EAAOnZ,MACd3C,KAAM8b,EAAO9b,MAAQ20E,MAElBkH,GAEXjF,oBAAqB,WACjB,IAAKr1E,KAAKs7E,kBAAmB,CACzB,IAAI98D,EAAUxe,KAAKw1E,SACfP,EAAwB,GACxBF,EAAsB,GACtBQ,GAAU,EACd/2D,EAAQtd,SAAQ,SAAUqZ,GACtB,IAAIwjC,EAAYxjC,EAAOwjC,UACnBghC,EAAc,eAAShhC,GAAaA,EAAU38C,MAAQ28C,EACtD3+B,EAASZ,EAAQugE,GACjBxkE,EAAOs6D,aACPU,GAAU,GAEVh7D,EAAOgiD,UACPhiD,EAAOgiD,aAAU,GAEjBhiD,EAAOo0D,UACPp0D,EAAOo0D,aAAU,GAEjBvvD,EACA21D,EAAoBx6D,EAAOnZ,OAASge,EAEpC2/D,GAAe,EAEnB9J,EAAsB8J,GAAe9J,EAAsB8J,IAAgB,GAC3E9J,EAAsB8J,GAAa97E,KAAKsX,MAE5Cva,KAAKs7E,kBAAoB,CACrB/F,QAASA,EACTN,sBAAuBA,EACvBF,oBAAqBA,GAG7B,OAAO/0E,KAAKs7E,mBAEhB0D,iBAAkB,SAASzkE,GACvB,OAAOA,EAAOggC,SAAWv6C,KAAKi/E,sBAAsB1kE,EAAOnZ,QAE/D48E,2BAA4B,WACxB,IACIviF,EAQAyjF,EATAv7E,EAAO3D,KAEPf,EAAS,GACTkgF,EAAsB,EACtBC,EAAuB,EACvBxQ,EAAWjrE,EAAK6qE,cAChB6Q,EAAyB,GACzBC,EAAyB,GACzBC,EAAyB,EAEzBljE,EAAa1Y,EAAKiV,OAAO,cACzBw8D,EAAmBzxE,EAAK0xE,sBACxBiF,EAAgBM,EAAaj3E,EAAMA,EAAKi7E,mBAAoBj7E,EAAK6xE,UACjEh3D,EAAUo8D,EAAaj3E,EAAMA,EAAK6xE,SAAU7xE,EAAKuyE,iBAAiB,GAClEsJ,EAAoB,SAASnkF,GAC7B,IAAII,EACJ,IAAKA,EAAI,EAAGJ,EAAS,EAAGI,IACpBJ,GAAU,GAEd,OAAOI,EALa,CAMtB+iB,EAAQ5kB,QAqBV,IApBE,SAAS+J,EAAM6a,EAAS42D,GAEtB,IADA,IAAIzG,EACKlzE,EAAI,EAAGA,EAAI+iB,EAAQ5kB,OAAQ6B,IAAK,CACrC,IAAI8e,EAASiE,EAAQ/iB,IACjB8e,EAAOggC,SAAWhgC,EAAOsE,WACrBtE,EAAOsjC,SACPtjC,EAAOgiD,QAAUhiD,EAAOgiD,SAAWkZ,EAAiB9xE,EAAM4W,EAAOnZ,QAEhEmZ,EAAOsjC,QAAWtjC,EAAOgiD,UAC1BoS,EAAUhrE,EAAK6qE,cACVj0D,EAAOsE,SAAa,eAAUtE,EAAOmjC,cAAenjC,EAAO6jC,kBAC5DuwB,GAAWmG,EAAqBv6D,EAAOnZ,MAAOg0E,EAAiBL,qBAAqBn7E,QAEpF+0E,EAAU,IACVp0D,EAAOo0D,QAAUA,MAdnC,CAmBAhrE,EAAM6a,EAAS42D,GACZ35E,EAAI,EAAGA,EAAImzE,EAAUnzE,IACtBwD,EAAOxD,GAAK,GACZ6jF,EAAuB7jF,GAAK,CAAC,IAC7B4jF,EAAuB5jF,GAAK,CAAC,GAAI,GAAI,IA8EzC,OA5EA,eAAK+iB,GAAS,WACV,IACIihE,EADAjhC,EAAex+C,KAAKw+C,aAEpBw5B,EAAoBlD,EAAqB90E,KAAKoB,MAAOg0E,EAAiBL,qBACtEx6B,EAAU52C,EAAKq7E,iBAAiBh/E,MACpC,GAAIu6C,KAAa,eAAUv6C,KAAK09C,aAAe19C,KAAKo+C,iBAAkB,CAClE,IAAIoc,EAAWwd,EAAkBp+E,OAqBjC,GApBI4kD,EAAe,GACfA,GAAgBA,EAChBihC,EAAiBH,EAAuB9kB,KAExCx6D,KAAK8e,MAAQk5D,EAAkBp+E,OAASo+E,EAAkB,GAAGl5D,MAAQ9e,KAAK8e,MAC1E9e,KAAKs9C,cAAgB06B,EAAkBp+E,OAASo+E,EAAkB,GAAG16B,cAAgBt9C,KAAKs9C,cACtFt9C,KAAK8e,OACLogE,EAAe,UAAYl/E,KAAKs9C,eAC5BjhC,GAAgBrc,KAAK6e,UAAWq7D,EAAsBv2E,EAAM3D,QAC5Dk/E,GAAgBA,GAGhBO,EADAP,EACiBG,EAAuB7kB,GAAU,GAEjC6kB,EAAuB7kB,GAAU,IAGtDilB,EAAiBJ,EAAuB7kB,GAAU,IAGtDwd,EAAkBp+E,OAElB,IADA4kD,EAAek8B,EAAel8B,EAAcghC,GACvC/jF,EAAIu8E,EAAkBp+E,OAAS,EAAG6B,GAAK,EAAGA,IAC3C+iD,EAAek8B,EAAe1C,EAAkBv8E,GAAG+iD,aAAcghC,GAAqBhhC,EAG9FihC,EAAejhC,GAAgBihC,EAAejhC,IAAiB,GAC/DihC,EAAejhC,GAAcv7C,KAAKjD,MAClCu/E,QAGR,eAAKtgF,GAAQ,SAAUu7D,GACnB,gBAAU8kB,EAAuB9kB,IAAW,SAAUz7D,EAAGyf,GACrDvf,EAAOu7D,GAAU73C,QAAQ7jB,MAAMG,EAAOu7D,GAAWh8C,MAErD,IAAIkhE,EAA2BzgF,EAAOu7D,GAAU5gE,OAChD,eAAKylF,EAAuB7kB,IAAW,SAAUp5D,EAAOu+E,GACpD,gBAAUA,GAAiB,SAAU5gF,EAAG6gF,GACpC3gF,EAAOu7D,GAAUv3D,KAAKnE,MAAMG,EAAOu7D,GAAWolB,SAGlDR,EAAuB5kB,EAAW,IAClC4kB,GAAwB/E,EAAqBjkE,KAAKzS,EAAM1E,EAAOu7D,GAAW8f,EAAe,eAAgBoF,IAEzGP,EAAsB3kB,EAAW,IACjC2kB,GAAuB9E,EAAqBjkE,KAAKzS,EAAM1E,EAAOu7D,GAAW8f,EAAelH,GAA2BsM,OAG3HzgF,EAAOgE,KAAK,SAAS48E,EAAerhE,EAASg8C,EAAUslB,GACnD,IAAI7gF,EAAS,GAab,OAZAu7D,EAAWA,GAAY,EACvBh8C,EAAQg8C,IAAa,eAAKh8C,EAAQg8C,IAAW,SAAUz7D,EAAGwb,GAClDA,EAAOwjC,YAAc+hC,GAAgBvlE,EAAO9b,OAAS20E,KAChD74D,EAAOsjC,QAAWtjC,EAAOgiD,QAK1Bt9D,EAAOgE,KAAKnE,MAAMG,EAAQ4gF,EAAerhE,EAASg8C,EAAW,EAAGjgD,EAAOnZ,UAJlEmZ,EAAOsE,SAAW27C,EAAW,IAC9Bv7D,EAAOgE,KAAKsX,OAOrBtb,EAdC,CAeVA,KACGsgF,GAA0B57E,EAAK6xE,SAAS57E,QACzCqF,EAAO2vE,GAAU3rE,KAAK,CAClB4b,QAAS,UAGV5f,GAEX8gF,oBAAqB,SAASvhE,EAASmxD,GACnC,IAEIqQ,EAFAr8E,EAAO3D,KACPf,EAAS,GAuBb,OArBAuf,EAAUA,GAAW7a,EAAK6xE,SAC1B,eAAKh3D,GAAS,SAAUzf,EAAGwb,GACvB,GAAIA,EAAOwjC,YAAc4xB,EAGzB,OAAIp1D,EAAOsjC,QAIHmiC,EAHCzlE,EAAOggC,QAGc52C,EAAKo8E,oBAAoBp8E,EAAKisE,wBAAwBr1D,EAAOnZ,OAAQmZ,EAAOnZ,OAF5EuC,EAAKisE,wBAAwBr1D,EAAOnZ,YAI1D4+E,EAAoBpmF,SACpBqF,EAAOgE,KAAKsX,GACZtb,EAASA,EAAO0oB,OAAOq4D,WAI1BzlE,EAAOggC,SACRt7C,EAAOgE,KAAKsX,OAGbtb,GAEXs3E,kBAAmB,SAAS0J,GACxB,IAAIzhE,EAAUyhE,EAAgBjgF,KAAKo4D,aAAep4D,KAAK+/E,sBACnDG,EAAuB1hE,EAAQpgB,OAAOmc,GAAUA,EAAO4jC,qBACvDG,EAAYt+C,KAAK4Y,OAAO,2BAC5B,MAAO,EAAE4F,EAAS8/B,KACd,GAAI,QAAUA,GAAa,SAAWA,EAClC,OAAO9/B,EAEX,IAAIziB,EAAO,QAAUuiD,EAAY,GAAK,EAMtC,OALA9/B,EAAQ1c,MAAK,SAAUq+E,EAASC,GAC5B,IAAIC,EAAWF,EAAQj1E,SAAW,GAC9Bo1E,EAAWF,EAAQl1E,SAAW,GAClC,OAAOnP,EAAOskF,EAASE,cAAcD,MAElC9hE,GAVJ,CAWJ0hE,EAAsB5hC,IAE7BkiC,gBAAiB,SAASC,EAAkBC,EAAgB3Q,EAAgB4Q,GACxE,IAAIprE,EAAc8gE,EAA6Br2E,KAAMygF,EAAkB1Q,GACnE6Q,EAAe5gF,KAAKw1E,SAASjgE,GACjC,SAAIqrE,KAAiBA,EAAajkC,iBAAmBikC,EAAapkC,eAAiBokC,EAAalkC,gBACxFqzB,IAAmB4Q,EACf,kBAAoB5Q,IAGxB0Q,EAAmB,eAASA,GAAoBA,EAAiBlrE,YAAckrE,EAC/EC,EAAiB,eAASA,GAAkBA,EAAenrE,YAAcmrE,EAClED,IAAqBC,GAAkBD,EAAmB,IAAMC,GAChE,UAAY3Q,GAAkB,kBAAoB4Q,GAAkB,UAAYA,EAChFC,GAAgBA,EAAapkC,cAC7B,kBAAoBuzB,GAAkB,kBAAoB4Q,GAC1DC,GAAgBA,EAAalkC,cAMhDmkC,WAAY,SAASJ,EAAkBC,EAAgB3Q,EAAgB4Q,GACnE,IACI/H,EAGAkI,EAJAhrE,EAAU,GAEVirE,EAAY1K,EAA6Br2E,KAAMygF,EAAkB1Q,GACjEiR,EAAU3K,EAA6Br2E,KAAM0gF,EAAgBC,GAEjE,GAAII,GAAa,EAAG,CAChB,IAAIxmE,EAASva,KAAKw1E,SAASuL,GAe3B,GAdAL,EAAiB,eAASA,GAAkBA,EAAenrE,YAAcmrE,EACzEI,EAAmBE,GAAW,EAAIhhF,KAAKw1E,SAASwL,GAAStjC,YAAc,EACnE,eAAUnjC,EAAOmjC,aAAe,UAAYqyB,IACxC+Q,EAAmBvmE,EAAOmjC,YAC1BojC,IAEA,UAAYH,EACZ7qE,EAAQ4nC,gBAAa,GAErBk7B,EAAiBr+D,EAAOmjC,kBACjBnjC,EAAOmjC,WACdy4B,EAAyBn2E,QAG7B,UAAY2gF,EACZ7qE,EAAQ4nC,WAAa,SAAS/5C,EAAM4W,EAAQmjC,GACxC,IACIjiD,EADAwlF,EAAet9E,EAAK2yE,kBAExB,GAAI54B,GAAc,EACd,IAAKjiD,EAAI,EAAGA,EAAIwlF,EAAarnF,OAAQ6B,IAC7BwlF,EAAaxlF,GAAGiiD,YAAcA,GAC9BujC,EAAaxlF,GAAGiiD,kBAKxB,IADAA,EAAa,EACRjiD,EAAI,EAAGA,EAAIwlF,EAAarnF,OAAQ6B,IACjCiiD,EAAalsC,KAAK1I,IAAI40C,EAAYujC,EAAaxlF,GAAGiiD,WAAa,GAGvE,OAAOA,EAfU,CAgBnB19C,KAAM,EAAG8gF,GACXvmE,EAAOmjC,WAAak7B,OACjB,GAAI8H,GAAkB,EAAG,CAC5B,IAAIQ,EAAelhF,KAAKw1E,SAASwL,GAC5BE,GAAgB3mE,EAAOwjC,YAAcmjC,EAAanjC,UAE5Cs9B,EAAcr7E,KAAMua,GAAU8gE,EAAcr7E,KAAMkhF,GACzDprE,EAAQ0oC,aAAe20B,GAEvBr9D,EAAQ0oC,aAAe0iC,EAAa1iC,aAJpC1oC,EAAQ0oC,aAAe20B,GAO/B,IAAIn7D,EAAY,kBAAoB2oE,EAChCpmE,EAAOggC,UAAYviC,IACnBlC,EAAQykC,QAAUviC,GAEtBhY,KAAK0nE,aAAantD,EAAOnZ,MAAO0U,KAGxC86D,gBAAiB,SAASr7D,EAAa+oC,GACnC,IAAIxoC,EAAU,GACV26D,EAAiBzwE,KAAK4Y,OAAO,WAC7BuoE,EAAc1Q,GAAkBA,EAAenkC,KAC/C80C,EAAmB,WAAaD,IAAgB7iC,EAChDzB,EAAe,WAAaskC,GAAe,aAAeA,EAC1D5mE,EAASva,KAAKw1E,SAASjgE,GACvBsnC,GAAgBtiC,GAAUA,EAAOsiC,eAC7BukC,IAAqB,eAAU7mE,EAAOmjC,aACtC,eAAK19C,KAAKw1E,UAAU,SAAUp0E,GACtBA,IAAUmU,GAAevV,KAAKs+C,YACzB,eAAUt+C,KAAK09C,oBACT19C,KAAKs+C,iBAETt+C,KAAKq+C,cAIpBw5B,EAAiBv5B,GACb/jC,EAAO+jC,YAAcA,IACrBxoC,EAAQwoC,UAAYA,GAEjB,SAAWA,EACd/jC,EAAO+jC,YACPxoC,EAAQuoC,eAAY,EACpBvoC,EAAQwoC,eAAY,GAGtB,SAAS/jC,GACP,GAAI,SAAW+jC,EAAW,CACtB,KAAM,cAAe/jC,MAAU,cAAeA,GAC1C,OAAO,EAEXzE,EAAQwoC,eAAY,EACpBxoC,EAAQuoC,eAAY,OACb,eAAU9jC,EAAOmjC,aAAe,eAAUnjC,EAAO8jC,WACxDvoC,EAAQwoC,UAAY,SAAW/jC,EAAO+jC,UAAY,MAAQ,OAE1DxoC,EAAQwoC,UAAY,MAV1B,CAaA/jC,IAGVva,KAAK0nE,aAAantD,EAAOnZ,MAAO0U,IAEpCurE,4BAA6B,SAASC,GAClC,IAAIC,EAAc,GACdz/E,EAAO,GAmBX,OAlBA,eAAK9B,KAAKw1E,UAAU,YACXx1E,KAAKqb,WAAarb,KAAKwX,UAAYxX,KAAK6U,qBAAuB,eAAU7U,KAAKq+C,aAAe,eAAUr+C,KAAK09C,cAC7G6jC,EAAYvhF,KAAKq+C,WAAar+C,SAGtC,eAAKuhF,GAAa,WACd,IAAIjjC,EAAYt+C,MAAQA,KAAKs+C,UAC7B,GAAIu5B,EAAiBv5B,GAAY,CAC7B,IAAIkjC,EAAW,CACXhqE,SAAUxX,KAAKi9C,oBAAsBj9C,KAAKugB,cAAgBvgB,KAAK6a,uBAAyBymE,GAAoBthF,KAAKwX,UAAYxX,KAAKqb,WAAarb,KAAK6U,mBACpJiH,KAAM,SAAW9b,KAAKs+C,WAEtBt+C,KAAKyb,gBACL+lE,EAAS9lE,QAAU1b,KAAKyb,cAAcD,KAAKxb,OAE/C8B,EAAKmB,KAAKu+E,OAGX1/E,EAAKlI,OAAS,EAAIkI,EAAO,MAEpC2/E,6BAA8B,SAASH,GACnC,IAAI/pE,EAAQ,GAeZ,OAdA,eAAKvX,KAAKs2E,mBAAmB,WACzB,IAAI9+D,EAAWxX,KAAK+a,qBAAuB/a,KAAKugB,cAAgBvgB,KAAK6a,uBAAyBymE,GAAoBthF,KAAKwX,UAAYxX,KAAKqb,WAAarb,KAAK6U,mBAC1J,GAAI2C,EAAU,CACV,IAAI63C,EAAY,CACZ73C,SAAUA,EACVsE,KAAM,SAAW9b,KAAKs+C,UACtB1oC,aAAc5V,KAAK88C,iBAEnB98C,KAAKyb,gBACL4zC,EAAU3zC,QAAU1b,KAAKyb,cAAcD,KAAKxb,OAEhDuX,EAAMtU,KAAKosD,OAGZ93C,EAAM3d,OAAS,EAAI2d,EAAQ,MAEtCmqE,QAAS,SAASC,GACd,IAAIC,EAAY,GAYhB,OAXA,eAAK5hF,KAAKw1E,UAAU,WAChB,IAAI16D,EAAS9a,KAAK8a,OAClB,GAAIA,IAAW9a,KAAK6a,sBAAuB,CACvC,GAAI8mE,GAAwB7mE,EAAO+mE,SAC/B,OAEA/mE,EAAOwpD,QACPsd,EAAU3+E,KAAK6X,EAAOwpD,cAI3B,UAAKxlE,MAAM,OAAG8iF,GAAWvjE,KAAK45D,EAAkBz8D,KAAK,KAAMxb,QAEtE8hF,qBAAsB,SAASvnE,EAAQhF,GACnCgF,EAAO/C,SAAW+C,EAAO/C,UAAY,SAASpT,GAC1C,OAAOmW,EAAO1F,mBAAmBzQ,IAErC,eAAK,CAAC,qBAAsB,sBAAuB,0BAA0B,SAAUrF,EAAGgjF,GACtF,IAAIC,EAAoBznE,EAAOwnE,GAC/B,GAAI,eAAWC,GACX,GAAKA,EAAkB1sE,iBAWnBiF,EAAOwnE,GAAuBE,QAAQ1nE,OAASA,MAXV,CACrC,IAAI0nE,EAAU,CACV1nE,OAAQA,GAEZA,EAAOwnE,GAAyB,SAAS39E,GACrC,OAAO49E,EAAkB5rE,KAAK6rE,EAAQ1nE,OAAQnW,IAElDmW,EAAOwnE,GAAuBzsE,iBAAmB0sE,EACjDznE,EAAOwnE,GAAuBxsE,YAAcA,EAC5CgF,EAAOwnE,GAAuBE,QAAUA,MAMhD,eAAS1nE,EAAOM,yBAChBN,EAAOgG,aAAehG,EAAOM,sBAC7BN,EAAOM,sBAAwB,gBAAcN,EAAOgG,eAEpDhG,EAAOM,wBACPN,EAAOK,gBAAkBL,EAAOK,iBAAmB,IAEvDg7D,EAAkBr7D,EAAQA,EAAOxF,UACjC,IAAI+F,EAASP,EAAOO,OAChBA,GACA86D,EAAkB96D,EAAQA,EAAO/F,UAErC,IAAIA,EAAW+F,EAASA,EAAO/F,SAAWwF,EAAOxF,SAC7CA,IACAwF,EAAOnP,UAAYmP,EAAOnP,WAAa,SAAS2J,EAAUmtE,GACtD,OAAQntE,GACJ,IAAK,SACD,MAAO,QACX,IAAK,UACD,MAAO,SACX,QACI,OAAO,eAAoBmtE,IAPA,CASrCntE,EAAU/U,KAAK4Y,OAAO,eACxB2B,EAAOlhB,OAASkhB,EAAOlhB,QAAU,OAAc6hB,oBAAoBnG,GACnEwF,EAAOpE,cAAgBoE,EAAOpE,eAAiB6/D,EAA2BjhE,GAC1EwF,EAAOw5D,wBAA0Bx5D,EAAOw5D,0BAA4Bj5D,GAAU64D,EAAoB5+D,IAAa,GAC1G,eAAUwF,EAAO4iC,mBAClB22B,EAAmCv5D,GAEvCA,EAAOwoC,uBAAyBxoC,EAAO4iC,kBAAoB5iC,EAAO4iC,iBAAiB,IAAM,IACzF5iC,EAAO2jC,iBAAmB,eAAU3jC,EAAO2jC,kBAAoB3jC,EAAO2jC,iBAAmB,YAAcnpC,IAAawF,EAAOpP,eAAiBoP,EAAOO,SAG3Jo9D,sBAAuB,SAAS99D,GAC5B,IAAIzW,EAAO3D,KACP00C,EAA0B/wC,EAAKiV,OAAO,2BACtCokE,EAAar5E,EAAKg4E,eAAevhE,GACjC+nE,GAA2B,EAyD/B,OAxDA,eAAKx+E,EAAK6xE,UAAU,SAAUp0E,EAAOmZ,GACjC,IAAI9e,EACAoG,EACAkT,EACAqtE,EACAC,EACAvnE,EAASP,EAAOO,OAOpB,GANI,OAAchG,WAAWyF,EAAOxF,gBAAa,IAAWwF,EAAOo4D,sBAC/Dp4D,EAAOo4D,oBAAsBj+B,GAE7B55B,GAAU,OAAchG,WAAWgG,EAAO/F,gBAAa,IAAWwF,EAAOo4D,sBACzE73D,EAAO63D,oBAAsBj+B,GAE7Bn6B,EAAO1F,oBAAsBmoE,EAAWpjF,OAAQ,CAChD,IAAK2gB,EAAOxF,UAAY+F,IAAWA,EAAO/F,SAAU,CAChD,IAAKtZ,EAAI,EAAGA,EAAIuhF,EAAWpjF,OAAQ6B,IAC/BoG,EAAQ0Y,EAAO1F,mBAAmBmoE,EAAWvhF,IACxC8e,EAAOxF,WACRstE,EAAgB3M,EAAiB7zE,GACjCkT,EAAWA,GAAYstE,EACnBttE,GAAYstE,GAAiBttE,IAAastE,IAC1CttE,EAAW,WAGf+F,IAAWA,EAAO/F,WAClBstE,EAAgB3M,EAAiB,OAAch7D,gBAAgBH,EAAQ1Y,EAAOm7E,EAAWvhF,KACzF2mF,EAAiBA,GAAkBC,EAC/BD,GAAkBC,GAAiBD,IAAmBC,IACtDD,EAAiB,YAIzBrtE,GAAYqtE,KACRrtE,IACAwF,EAAOxF,SAAWA,GAElB+F,GAAUsnE,IACVtnE,EAAO/F,SAAWqtE,GAEtBD,GAA2B,GAGnC,QAAI,IAAW5nE,EAAOo4D,qBAAuB73D,QAAU,IAAWA,EAAO63D,oBACrE,IAAKl3E,EAAI,EAAGA,EAAIuhF,EAAWpjF,OAAQ6B,IAC/BoG,EAAQ0Y,EAAO1F,mBAAmBmoE,EAAWvhF,IAAI,QAC7C,IAAW8e,EAAOo4D,sBAClBp4D,EAAOo4D,oBAAsBgD,EAAuBp7D,EAAOxF,SAAUlT,IAErEiZ,QAAU,IAAWA,EAAO63D,sBAC5B73D,EAAO63D,oBAAsBgD,EAAuB76D,EAAO/F,SAAU+F,EAAOjG,mBAAmBhT,GAAO,KAKtH8B,EAAKm+E,qBAAqBvnE,EAAQnZ,MAE/B+gF,GAEXG,kBAAmB,SAAS9jE,GACxB,IAAI+1B,EAAmBv0C,KAAK4Y,OAAO,oBACnC,GAAI27B,EAAkB,CAClB,IAAIguC,EAAe/jE,EAAQI,MAAK,SAAUrE,GACtC,OAAO,eAASA,EAAOwjC,cAEvBwkC,GACA3K,EAAc53E,MAElBu0C,EAAiB/1B,GACjBm5D,EAAc33E,KAAMy0E,EAAyBz0E,KAAMwe,MAG3D0+D,cAAe,SAAS9iE,EAAYwiE,EAAeZ,GAI/C,GAHKY,GACD58E,KAAKwiF,sBAAsBpoE,IAE1BA,GAAcA,EAAWk0D,WAAY,CACtC,IAAImU,EAAiBroE,EAAaA,EAAWtY,QAAU,GAAK9B,KAAKqhF,8BAC7DqB,EAAkBtoE,EAAaA,EAAW7C,SAAW,GAAKvX,KAAKyhF,+BAC/DkB,EAAmB,OAASvoE,QAAc,IAAWA,OAAa,EAASA,EAAWwoE,kBAAkBxkF,OACvG49E,GACDh8E,KAAKsiF,kBAAkBtiF,KAAKw1E,UAEhCoC,EAAc53E,MACd,IAAIwe,EAAUxe,KAAKw1E,SACnB,OAAO,kBAAKx1E,KAAK0hF,SAAQ,IAAOmB,OAAO,KAC/B7iF,KAAKw1E,WAAah3D,IAGtBxe,KAAK8iF,eAAe1oE,EAAY,CAC5B4/B,QAASyoC,EACT/sC,SAAUgtC,EACVn2B,UAAWo2B,IAEfrK,EAAmBt4E,WAI/B8iF,eAAgB,SAAS1oE,EAAY08C,GAC7B18C,IACApa,KAAKk4E,sBAAsB99D,GAC3Bpa,KAAKm8E,oBAAqB,GAEzB,OAAc4G,oBAAoBjsB,EAAW9c,QAASh6C,KAAKqhF,gCAC5DlJ,EAAoBn4E,KAAM,WAEzB,OAAc+iF,oBAAoBjsB,EAAWphB,SAAU11C,KAAKyhF,iCAC7DtJ,EAAoBn4E,KAAM,YAE9B,IAAIgjF,EAAiBhjF,KAAK2xD,cAAc,QACpCqxB,IAAmB,OAAc/rE,sBAAsB6/C,EAAWvK,UAAWy2B,EAAeC,sBAC5F9K,EAAoBn4E,KAAM,aAE9Bm4E,EAAoBn4E,KAAM,YAE9BwiF,sBAAuB,SAASpoE,EAAY8oE,GACxC,IACIT,EACAU,EAFAx/E,EAAO3D,KAGPojF,EAAkC,SAAS5kE,EAASikE,EAAgBY,GACpE,eAAK7kE,GAAS,SAAUpd,EAAOmZ,GAE3B,UADOA,EAAO8oE,GACVZ,EACA,IAAK,IAAIhnF,EAAI,EAAGA,EAAIgnF,EAAe7oF,OAAQ6B,IAAK,CAC5C,IAAI+b,EAAWirE,EAAehnF,GAAG+b,SAC7B5B,EAAa6sE,EAAehnF,GAAGma,WACnC,GAAI4B,IAAa+C,EAAOc,WAAa7D,IAAa+C,EAAO3Y,MAAQ4V,IAAa+C,EAAO/C,UAAYA,IAAa+C,EAAO1F,oBAAsB2C,IAAa+C,EAAOQ,qBAAuBvD,IAAa+C,EAAOM,sBAAuB,CAEzNN,EAAO+jC,UADP4kC,EACmB,cAAe3oE,EAASA,EAAO+jC,UAAYmkC,EAAehnF,GAAGqgB,KAAO,OAAS,MAE7EvB,EAAO+jC,YAAcmkC,EAAehnF,GAAGqgB,KAAO,OAAS,YAE1E,IAAWlG,IACX2E,EAAOuiC,gBAAkBlnC,GAE7B2E,EAAO8oE,GAAsB5nF,EAC7B,YAMpB,GAAI2e,EAAY,CACZqoE,EAAiB,OAAc9sE,qBAAqByE,EAAWtY,QAC/D,IAAI4gF,EAAkB,OAAc/sE,qBAAqByE,EAAW7C,SAChE+rE,EAAyB3/E,EAAK89E,+BAC9B8B,EAAwB5/E,EAAK09E,8BAC7BmC,GAAmB,OAAcT,oBAAoBL,EAAiBY,GAAwB,GAC9FG,GAAyBD,IAAoB,OAAcT,oBAAoBL,EAAiBY,GAC/F3/E,EAAK6xE,SAAS57E,SACf,eAAK8oF,GAAiB,SAAUthF,EAAOmW,GACnC5T,EAAK6xE,SAASvyE,KAAKsU,EAAMC,aAE7B,eAAKirE,GAAgB,SAAUrhF,EAAOU,GAC7B,eAAWA,EAAK0V,WACjB7T,EAAK6xE,SAASvyE,KAAKnB,EAAK0V,aAGhCmgE,EAAch0E,EAAM8wE,EAAyB9wE,EAAMA,EAAK6xE,aAEvD0N,IAAmBI,GAA2B3/E,EAAK2zE,iBAAmBkM,IAAmBC,IAC1FL,EAAgCz/E,EAAK6xE,SAAUkN,EAAiB,cAC5DQ,IACAM,GAAmBrL,EAAoBx0E,EAAM,YAC7C8/E,GAAyBtL,EAAoBx0E,EAAM,kBACnDw/E,GAAmB,KAGtBD,IAAmBK,GAA0B5/E,EAAK2zE,gBAAmB,OAAcyL,oBAAoBN,EAAgBc,KACxHH,EAAgCz/E,EAAK6xE,SAAUiN,EAAgB,aAC3DS,IACA/K,EAAoBx0E,EAAM,WAC1Bw/E,GAAmB,IAGvBA,GACA7K,EAAmB30E,KAI/B+/E,aAAc,SAAStlF,EAAQulF,EAAiBpuE,EAAa8B,GACzD,IAAKxY,MAAMuY,QAAQhZ,GACf,OAAOA,EAKX,GAHAA,EAAS,OAAA3D,EAAA,WAAO,GAAI2D,GACpBmX,OAAc,IAAWnX,EAAOmX,YAAcnX,EAAOmX,YAAcA,EACnE8B,OAAc,IAAWjZ,EAAOiZ,YAAcjZ,EAAOiZ,YAAcA,EAC/D,eAASjZ,EAAO,KAAO,MAAQA,EAAO,GAAI,CAC1C,IAAImc,EAASva,KAAK0nE,aAAatpE,EAAO,IAClCulF,EACI,kBAASlR,qBAAuBl4D,GAAUA,EAAOu7D,gBAAkB13E,EAAOxE,OAAS,IACnFwE,EAAOA,EAAOxE,OAAS,GAAK2gB,EAAOu7D,eAAe13E,EAAOA,EAAOxE,OAAS,GAAI,WAE1E2gB,GAAUA,EAAO/C,WACxBpZ,EAAO,GAAKmc,EAAO/C,SACnBpZ,EAAO,GAAGmX,YAAcgF,EAAOnZ,YAE5B,eAAWhD,EAAO,MACzBA,EAAO,GAAGmX,YAAcA,EACxBnX,EAAO,GAAGiZ,YAAcA,GAE5B,IAAK,IAAI5b,EAAI,EAAGA,EAAI2C,EAAOxE,OAAQ6B,IAC/B2C,EAAO3C,GAAKuE,KAAK0jF,aAAatlF,EAAO3C,GAAIkoF,EAAiBpuE,EAAa8B,GAE3E,OAAOjZ,GAEXwlF,YAAa,WACT,OAAO5jF,KAAKw1E,SAAWx1E,KAAKw1E,SAAS57E,OAAS,GAElD8tE,aAAc,SAAS8T,EAAY5iE,EAAQ/W,EAAO23E,GAC9C,IAAI71E,EAAO3D,KACPwe,EAAU7a,EAAK6xE,SAAS7tD,OAAOhkB,EAAKuyE,iBACpC37D,EAASghE,EAAW/8D,EAASg9D,GACjC,GAAIjhE,EAAQ,CACR,GAAI,IAAMra,UAAUtG,OAChB,OAAO,OAAAa,EAAA,WAAO,GAAI8f,GAEtB,GAAI,eAAS3B,GAAS,CAClB,GAAI,IAAM1Y,UAAUtG,OAChB,OAAO2/E,EAAiB51E,EAAM4W,EAAQ3B,GAEtC2gE,EAAiB51E,EAAM4W,EAAQ3B,EAAQ/W,EAAO23E,QAE3C,eAAS5gE,IAChB,eAAKA,GAAQ,SAAUqiC,EAAYp5C,GAC/B03E,EAAiB51E,EAAM4W,EAAQ0gC,EAAYp5C,EAAO23E,MAG1DlB,EAAmB30E,KAG3BkgF,aAAc,WACV,IAAID,EAAc5jF,KAAK4jF,cACvB5jF,KAAK2wD,cACL,IAAK,IAAIl1D,EAAI,EAAGA,EAAImoF,EAAanoF,IAC7BuE,KAAK0nE,aAAajsE,EAAG,iBAAa,GAEtCuE,KAAK4wD,aAETkzB,cAAe,WACX,IAAIF,EAAc5jF,KAAK4jF,cACvB5jF,KAAK2wD,cACL,IAAK,IAAIl1D,EAAI,EAAGA,EAAImoF,EAAanoF,IAC7BuE,KAAK0nE,aAAajsE,EAAG,kBAAc,GAEvCuE,KAAK4wD,aAETmO,gBAAiB,SAAS39D,EAAOo5D,GAE7B,IADA,IAAIh8C,EAAUxe,KAAKu9D,kBAAkB/C,GAC5B/+D,EAAI+iB,EAAQ5kB,OAAS,EAAG6B,GAAK,EAAGA,IACrC,GAAI+iB,EAAQ/iB,GAAG2F,QAAUA,EACrB,OAAO3F,EAGf,OAAQ,GAEZsoF,wBAAyB,SAASxpE,EAAQigD,GACtC,IAAI6C,EAAiBr9D,KAAKu9D,kBAAkB/C,GACxCwpB,EAAgB3mB,EAAej/D,OAAO8gE,GAAOA,EAAI99D,QAAUmZ,EAAOnZ,OAAS89D,EAAIrgD,UAAYtE,EAAOsE,SAAS,GAC/G,OAAOw+C,EAAe/+D,QAAQ0lF,IAElCvd,sBAAuB,SAAS33E,EAAI0rE,GAChC,IAAIp5D,EAAQpB,KAAK0nE,aAAa54E,EAAI,SAClC,OAAOkR,KAAK++D,gBAAgB39D,EAAOo5D,IAEvCypB,UAAW,SAASnuE,GAChB,IAAIyE,EAASy5D,EAAah0E,KAAM8V,GAC5B1U,EAAQpB,KAAKw1E,SAAS57E,OAC1BoG,KAAKw1E,SAASvyE,KAAKsX,GACfA,EAAOsjC,SACP79C,KAAKw1E,SAAWf,EAAyBz0E,KAAMA,KAAKw1E,UACpDj7D,EAASva,KAAKw1E,SAASp0E,IAE3BmZ,EAAOm9D,MAAQ5hE,EACf8hE,EAAc53E,KAAMua,GACpBva,KAAKk9E,cAAcl9E,KAAKqa,aACxBra,KAAK65E,iBAETqK,aAAc,SAASp1F,GACnB,IAeI0vB,EAfAjE,EAASva,KAAK0nE,aAAa54E,GAC/B,GAAIyrB,GAAUA,EAAOnZ,OAAS,EAAG,CAO7B,GANAod,EAAUxe,KAAKw1E,SAAeh3D,EAAQtd,QAAQqZ,IACtC,eAAUA,EAAOwjC,aACjBxjC,EAAOwjC,UAAYv/B,EAAQjE,EAAOwjC,cAG1C/9C,KAAKw1E,SAASnR,OAAO9pD,EAAOnZ,MAAO,GAC/BmZ,EAAOsjC,OAAQ,CACf,IAAIsmC,EAAenkF,KAAK4vE,wBAAwBr1D,EAAOnZ,OAAOtF,IAAIye,GAAUA,EAAOnZ,OACnFpB,KAAKw1E,SAAWx1E,KAAKw1E,SAASp3E,OAAOmc,GAAU4pE,EAAa7lF,QAAQic,EAAOnZ,OAAS,GAExFw2E,EAAc53E,MACdA,KAAKk9E,cAAcl9E,KAAKqa,eAIhC6hE,iBAAkB,SAASpmE,GACvB,IAAIqkE,EAAgBn6E,KAAKk2E,gBAAgB93E,OAAOmc,GAAUA,EAAOsE,UAAY/I,EAAQ+I,SAAS,GACzFs7D,IACDA,EAAgBrkE,EAChB9V,KAAKk2E,gBAAgBjzE,KAAKk3E,KAGlCqD,aAAc,WACV,IAEI/hF,EAFA+iB,EAAUxe,KAAKw1E,SACfv2E,EAAS,GAGb,SAASmlF,EAAiBhjF,EAAOS,QACzB,IAAW2c,EAAQ/iB,GAAGoG,KACtB5C,EAAOxD,GAAGoG,GAAS2c,EAAQ/iB,GAAGoG,IAGtC,IAAKpG,EAAI,EAAGA,EAAI+iB,EAAQ5kB,OAAQ6B,IAC5BwD,EAAOxD,GAAK,GACZ,eAAKq3E,GAAwBsR,GAEjC,OAAOnlF,GAEXo1E,QAAS,SAAS95D,GACdA,EAAO3Y,KAAO2Y,EAAO3Y,MAAQ2Y,EAAOc,WAAad,EAAO9b,MAE5D4lF,aAAc,SAASnkD,GACnB,IAAI9lB,EAAapa,KAAKqa,YAClBu8D,EAA0B52E,KAAK4Y,OAAO,wCAE1C,GADA,OAASsnB,QAAS,IAAWA,GAAiBA,EAAMh/B,QAAQlB,KAAKq0E,UAC5DuC,EAAyB,CAC1BA,EAA0B,GAC1B,IAAIrD,EAAuBvzE,KAAKs0E,oBAC3Bt0E,KAAK4Y,OAAO,0BACbg+D,EAAwB3zE,KAAK,WAE7B,SAAWjD,KAAK4Y,OAAO,iBACvBg+D,EAAwB3zE,KAAK,YAAa,aAEzCswE,EAAqB/2B,eACtBo6B,EAAwB3zE,KAAK,cAE5BswE,EAAqBh3B,aACtBq6B,EAAwB3zE,KAAK,QAAS,iBAErCswE,EAAqBx0D,eACtB63D,EAAwB3zE,KAAK,QAAS,gBAE1C,IAAIqhF,GAAuBtkF,KAAK4Y,OAAO,wBAClC5Y,KAAK4Y,OAAO,sBAAwB0rE,GACrC1N,EAAwB3zE,KAAK,cAAe,4BAE3CjD,KAAK4Y,OAAO,yBAA2B0rE,GACxC1N,EAAwB3zE,KAAK,eAAgB,cAGrDjD,KAAK20E,kBAAoBz0C,EACzBlgC,KAAK62E,yBAA2BD,EAChC52E,KAAKs3E,gBAAkBp3C,EACvBi4C,EAAoBn4E,KAAM,aAC1BA,KAAKywD,MAAK,GACNr2C,IACAA,EAAWtY,KAAK9B,KAAKqhF,+BACrBjnE,EAAW7C,MAAMvX,KAAKyhF,kCAG9B5H,cAAe,WACX,IAAI0K,EAAY,GACZC,GAA+B,EAC/BC,EAAkB,GACtBzkF,KAAKw1E,SAASt0E,QAAQqZ,IAClB,IAAImqE,EACA9iF,EAAO2Y,EAAO3Y,KACdi8C,EAAS,QAAU6mC,EAAkBnqE,EAAOiE,eAAY,IAAWkmE,OAAkB,EAASA,EAAgB9qF,OAC9G+qF,EAAapqE,EAAOjP,eAAiBiP,EAAOc,WAAad,EAAO0jC,gBAAkBJ,EAClFj8C,GACI2iF,EAAU3iF,IACV6iF,EAAgBxhF,KAAK,IAAI0kB,OAAO/lB,EAAM,MAE1C2iF,EAAU3iF,IAAQ,GACX+iF,IACPH,GAA+B,KAGnCC,EAAgB7qF,QAChB,OAAOkK,IAAI,QAAS2gF,EAAgBzoF,KAAK,OAEzCwoF,GACA,OAAO1gF,IAAI,UAGnB0wE,+BAAgC,SAASP,EAAeE,GACpD,IAAII,EAA0B,GAC1Bl5D,EAAY44D,EAAc54D,UAK9B,IAJIxc,MAAMuY,QAAQ68D,EAAcz1D,UAAYy1D,EAAcz1D,QAAQ5kB,QAAUq6E,EAAcp2B,UACtF02B,EAAwB12B,QAAS,EACjCxiC,EAAY,MAEZA,EAAW,CACX,GAAI,eAASA,GAAY,CACrB,IAAI2oD,EAAS,gBAAc3oD,GAC3Bk5D,EAA0B,CACtBrpE,QAAS,gBAAWmQ,GACpBxG,mBAAoB,SAASzQ,EAAMwgF,GAC/B,IAAI/iF,EAAQmiE,EAAO5/D,GACnB,OAAOpE,KAAK61E,mBAAqB+O,EAAsB5kF,KAAK61E,iBAAiBh0E,GAASA,GAE1Fo8C,aAAc87B,EACd8K,WAAY,SAAStoF,GACjB,IAAI0C,EACA+yE,EA8BJ,MA7BI,WAAahyE,KAAK+U,SACd,eAASxY,IAASyD,KAAK3G,OACvB4F,EAAS,SAAS1C,EAAMlD,GACpB,IAAI24E,EAAc,QAAmB7xE,MAAM5D,GAC3C,GAAI,eAAUy1E,GAAc,CACxB,IAAI8S,EAAiB,QAAmBzrF,OAAO24E,EAAa34E,GACxD0rF,EAAkC,QAAmB1rF,OAAO24E,EAAa,WAC7E,GAAI8S,IAAmBvoF,GAAQwoF,IAAoCxoF,EAC/D,OAAOy1E,GANV,CASPz1E,EAAKoD,OAAQK,KAAK3G,QACb,eAAUkD,IAAS,eAAUA,KACpC0C,EAASiW,OAAO3Y,IAEb,YAAcyD,KAAK+U,SACtBxY,IAASyD,KAAKwa,SACdvb,GAAS,EACF1C,IAASyD,KAAKya,YACrBxb,GAAS,GAEN,OAAc6V,WAAW9U,KAAK+U,WACrCi9D,EAAc,QAAiB7xE,MAAM5D,EAAMyD,KAAK3G,QAC5C24E,IACA/yE,EAAS+yE,IAGb/yE,EAAS1C,EAEN0C,IAInBs1E,EAAwBj4B,gBAAiB,OAEzCi4B,EAAwBj4B,iBAAmB23B,EAAcj3B,0BA8F7D,OA5FAu3B,EAAwBv3B,0BAA4B,WAChD,OAAO,QAAY31B,iCAAiCvoB,MAAMkB,KAAME,YAEpEq0E,EAAwByQ,uBAAyB,SAAS3tE,GACtD,IAAIpY,EAWJ,OAVIe,KAAKg9C,4BACL/9C,EAASe,KAAKg9C,0BAA0Bl+C,MAAMkB,KAAME,YAEpD,eAAWjB,KACXA,EAAS,CAACA,EAAQ,KAAK,IAEvBA,IACAA,EAAOsW,YAAcvV,KAAKoB,MAC1BnC,EAAOoY,YAAcA,GAElBpY,GAENoc,GAAc,eAASA,IACxB,OAAA5gB,EAAA,YAAO,EAAM85E,EAAyB,CAClC13B,cAAc,EACdL,eAAe,EACf3nC,mBAAoB,WAChB,OAAO,QAIfs/D,IACAI,EAAwBh4B,aAAc,GAEtC03B,EAAcl/D,WACdw/D,EAAwB0Q,aAAehR,EAAcl/D,UAErDk/D,EAAcrtD,2BAA6B,mCAAoC2tD,KAC/EA,EAAwB6C,+BAAiCnD,EAAcrtD,yBAEvEqtD,EAAcn5D,SACdy5D,EAAwBz5D,OAAS,CAC7BjG,mBAAoB,SAAShT,EAAO+iF,GAIhC,OAHI5kF,KAAKkhB,YACLrf,EAAQ7B,KAAK6hF,UAAY7hF,KAAK6hF,SAAShgF,IAEpC7B,KAAK61E,mBAAqB+O,EAAsB5kF,KAAK61E,iBAAiBh0E,GAASA,GAE1FqjF,eAAgB,WAEZ,GADAllF,KAAK6hF,SAAW,GACZ7hF,KAAKuK,MAGL,IAFA,IAAI46E,EAAiB,gBAAcnlF,KAAKkhB,WACpCrG,EAAwB,gBAAc7a,KAAKmhB,aACtC1lB,EAAI,EAAGA,EAAIuE,KAAKuK,MAAM3Q,OAAQ6B,IAAK,CACxC,IAAIoO,EAAO7J,KAAKuK,MAAM9O,GAClB2pF,EAAevqE,EAAsBhR,GACzC7J,KAAK6hF,SAASsD,EAAet7E,IAASu7E,EACtCplF,KAAK+U,SAAW/U,KAAK+U,UAAY2gE,EAAiB0P,KAI9D9gB,OAAQ,WACJ,IAAI3gE,EAAO3D,KACPoa,EAAazW,EAAKyW,WACtB,GAAIA,EAIA,GAHI,eAAWA,KAAgB,QAAgB2F,UAAU3F,KACrDA,EAAaA,EAAW,KAExB,eAAcA,IAAeA,aAAsB,SAASvb,MAAMuY,QAAQgD,IAC1E,GAAIzW,EAAKud,UAAW,CAChB,IAAImkE,EAAoB,gBAA2BjrE,GAGnD,OAFAirE,EAAkBC,UAAW,EAC7BlrE,EAAa,IAAI,QAAWirE,GACrBjrE,EAAWqG,OAAOpC,MAAK,SAAUja,GACpCT,EAAK4G,MAAQnG,EACbT,EAAKuhF,gBAAkBvhF,EAAKuhF,0BAIpC,OAAOphF,IAAI,cAGfH,EAAKuhF,gBAAkBvhF,EAAKuhF,oBAK5C3Q,EAAwBgR,iBAAmB,uBACvCtR,EAAcj2B,SACdu2B,EAAwBgR,iBAAiBz1E,IAAImkE,EAAcj2B,QAAQxiC,KAAKy4D,IAE5E,eAAKM,GAAyB,SAAUt5B,GACpC,GAAI,eAAWs5B,EAAwBt5B,KAAgB,IAAMA,EAAW38C,QAAQ,WAAY,CACxF,IAAIknF,EAAoB,UAAYvqC,EAAWjvB,OAAO,GAAGqJ,cAAgB4lB,EAAWjoC,OAAO,GAC3FuhE,EAAwBiR,GAAqBjR,EAAwBt5B,OAGtEs5B,GAEX/F,YAAa,WAgBT,OAfAxuE,KAAKu9E,UAAYv9E,KAAKu9E,WAAa,SAAS55E,GACxC,IAAIirE,EAAW,EACXwG,EAAmBzxE,EAAK0xE,sBACxBN,EAAsBK,EAAiBL,oBAU3C,OATApxE,EAAK6xE,SAASt0E,SAAQ,SAAUqZ,GAC5B,IAAIkrE,EAAU3Q,EAAqBv6D,EAAOnZ,MAAO2zE,GAC7C2Q,EAAmBD,EAAQrnF,QAAO,SAAUmc,GAC5C,OAAQA,EAAOggC,WAEfhgC,EAAOggC,UAAYmrC,EAAiB9rF,SACpCg1E,EAAWp9D,KAAK1I,IAAI8lE,EAAU6W,EAAQ7rF,OAAS,OAGhDg1E,EAbwB,CAcjC5uE,MACKA,KAAKu9E,WAEhB9iB,YAAa,SAASllD,EAAaowE,GAC/B,IAAIprE,EAASva,KAAKw1E,SAASjgE,GACvB6/D,EAAmBp1E,KAAKq1E,sBAC5B,OAAO96D,IAAWorE,GAAqBprE,EAAOggC,UAAahgC,EAAOsE,UAAW,eAAUtE,EAAOmjC,aAAgBo3B,EAAqBv/D,EAAa6/D,EAAiBL,qBAAqBn7E,OAAS,GAEnMg2E,wBAAyB,SAASD,EAAiBiW,GAC/C,IAAIxQ,EAAmBp1E,KAAKq1E,sBACxBp2E,EAAS+1E,EAAyBrF,EAAiByF,EAAiBH,uBAAwB2Q,GAChG,OAAIA,EACO3mF,EAAOb,QAAO,SAAUmc,GAC3B,OAAOA,EAAOggC,UAAYhgC,EAAOsE,WACjC/c,MAAK,SAAUq+E,EAASC,GACxB,OAAOD,EAAQ3hC,aAAe4hC,EAAQ5hC,gBAGvCv/C,GAEX4mF,mBAAoB,SAAStwE,EAAao6D,GACtC,IAAI1wE,GAAS,EACTsb,EAASva,KAAKw1E,SAASjgE,GACvB6/D,EAAmBp1E,KAAKq1E,sBACxB2C,EAAoBz9D,GAAUu6D,EAAqBv/D,EAAa6/D,EAAiBL,qBASrF,OARIiD,GACA,eAAKA,GAAmB,SAAUj5E,EAAGo1E,GACjC,GAAIA,EAAW/yE,QAAUuuE,EAErB,OADA1wE,GAAS,GACF,KAIZA,GAEXggF,sBAAuB,SAAS1pE,GAC5B,IAAItW,GAAS,EACTm2E,EAAmBp1E,KAAKq1E,sBACxByQ,EAAcvwE,GAAe,GAAKu/D,EAAqBv/D,EAAa6/D,EAAiBL,qBAKzF,OAJA+Q,GAAe,eAAKA,GAAa,SAAU/mF,EAAGo1E,GAE1C,OADAl1E,EAASA,GAAUk1E,EAAW55B,QACvBt7C,KAEJA,GAEX8mF,YAAa,SAASxrE,GAClB,OAAIA,EAAOsE,SAAWtE,EAAO9b,OAAS20E,GAC9B8G,EAAsBl6E,KAAMua,GACrB,QAAUA,EAAO9b,KAErB,WAAa8b,EAAOsE,QAExBtE,EAAOnZ,OAElB40E,2BAA4BA,EAC5Bxe,0BAA2B,SAASZ,GAChC,IAAIv6C,EAAarc,KAAK4Y,OAAO,cAC7B,OAAIyD,EACO,SAAWu6C,EAAkB,QAAU,OAE3CA,IAzkEiB,MC1F5C,EAASR,eAAe,UAAW,CAC/Bz4D,eAAgB,WACZ,OAAO,OAAAlD,EAAA,YAAO,EAAM,GAAI64E,GAAwB31E,iBAAkB,CAC9D41E,qBAAsB,CAClBl3B,gBAAgB,MAI5BmZ,YAAa8d,GAAwB9d,c,8BCW1B,KAAS7C,WAAW5C,QAAQ,WACvC,SAASi2B,EAAWz7E,EAAO07E,GACvB,GAAI17E,IACAA,EAAQA,EAAMyJ,MAAM,GAChBiyE,GACA,IAAK,IAAIxqF,EAAI,EAAGA,EAAI8O,EAAM3Q,OAAQ6B,IAC9B8O,EAAM9O,GAAK,OAAAhB,EAAA,WAAO,CACdK,IAAKyP,EAAM9O,GAAGX,KACfyP,EAAM9O,IACT8O,EAAM9O,GAAG8O,MAAQy7E,EAAWz7E,EAAM9O,GAAG8O,MAAO07E,EAAa,GAIrE,OAAO17E,EAGX,SAAS27E,EAAwBxlE,EAAakiE,EAAiBuD,GAC3D,IAAIC,EAAiB,CACjBC,QAAQ,EACRC,YAAY,GAiBhB,OAfI1D,IACAwD,EAAiB,CACbpsC,SAAU,EAAS+oC,oBAAoBriE,EAAY5e,KAAM8gF,EAAgB9gF,MACzE4zC,UAAW,EAASqtC,oBAAoBriE,EAAYnJ,MAAOqrE,EAAgBrrE,OAAO,GAClFs3D,gBAAiB,EAASkU,oBAAoBriE,EAAYnJ,MAAOqrE,EAAgBrrE,QAAUqrE,EAAgB2D,YAC3Gh6B,WAAY,EAASt1C,sBAAsByJ,EAAYtiB,OAAQwkF,EAAgBxkF,QAC/E6tD,UAAWvrC,EAAYurC,YAAc22B,EAAgB32B,UACrDprC,KAAMH,EAAYG,OAAS+hE,EAAgB/hE,KAC3CD,KAAMF,EAAYE,OAASgiE,EAAgBhiE,KAC3CsrC,SAAUxrC,EAAYwrC,WAAa02B,EAAgB12B,SACnDo6B,WAAYH,GAEhBC,EAAeC,OAASF,GAAgBC,EAAepsC,SAAWosC,EAAe1wC,UAAY0wC,EAAe75B,UAC5G65B,EAAeptC,OAASotC,EAAen6B,WAAam6B,EAAel6B,UAAYk6B,EAAexlE,MAE3FwlE,EAGX,SAASI,EAAqB1wE,EAAS2wE,GACnC,IAAIR,EAAa,EAAStwE,qBAAqBG,EAAQyB,OAASzB,EAAQyL,iBAAiBhK,OAASzB,EAAQ4K,YAAYnJ,OAAO3d,OACzH2Q,EAAQ,GACZ,GAAIm8E,EAAmBn8E,EAAOuL,EAASmwE,GACnC,OAAO17E,EACAk8E,GACL,SAASE,EAAqB7wE,EAASmwE,GACrC,IAAIW,EAAsBD,EAAoB/sF,QAE1C2nB,iBAAkBA,GAClBzL,EACJ,QAAI,IAAWyL,EAAiBV,MAAQU,EAAiBX,OAASqlE,EAAY,CAC1E,IAAIY,EAAoB,GACxBH,EAAmBG,EAAmB/wE,EAASmwE,GAAY,GAC3D,IAEQa,EAAgBC,EAFpBC,EAAoBH,EAAkBjtF,OAC1C,GAAIgtF,GAAuBI,EAEvBlxE,EAAQ+K,KAAO,QAAUimE,EAAiBhxE,EAAQ+K,YAAS,IAAWimE,EAAiBA,EAAiBvlE,EAAiBV,KACzH/K,EAAQ8K,KAAO,QAAUmmE,EAAiBjxE,EAAQ8K,YAAS,IAAWmmE,EAAiBA,EAAiBxlE,EAAiBX,KAEzHgmE,IACArlE,EAAiBV,MAAQ+lE,EACzBrlE,EAAiBX,MAAQgmE,EACzB9wE,EAAQmxE,oBAAsBN,GAE9BK,IACAzlE,EAAiBX,MAAQomE,EACzBlxE,EAAQoxE,kBAAoBL,EAAkBM,YArBxD,CAwBA58E,EAAOuL,EAASmwE,GAI1B,SAASS,EAAmBn8E,EAAOuL,EAASmwE,EAAYmB,GACpD,IAAIj3E,EAAMk3E,EAAeC,GAErB/lE,iBAAkBA,GAClBzL,EACA8K,EAAO,QAAUzQ,EAAO,QAAUk3E,EAAgBvxE,EAAQ8K,YAAS,IAAWymE,EAAgBA,EAAgB9lE,EAAiBX,YAAS,IAAWzQ,EAAOA,EAAO,EACjKo3E,EAAc,QAAUD,EAAsBxxE,EAAQ0xE,kBAAe,IAAWF,OAAsB,EAASA,EAAoB/8E,MACvI,GAAIqW,GAAQ2mE,EAAa,CAGrB,IAFA,IAAI32E,EAAO62E,EACP5mE,EAAO,QAAUjQ,EAAQ,QAAU62E,EAAgB3xE,EAAQ+K,YAAS,IAAW4mE,EAAgBA,EAAgBlmE,EAAiBV,YAAS,IAAWjQ,EAAQA,EAAQ,EAC/JnV,EAAI,EAAGA,EAAImlB,EAAMnlB,IAAK,CAC3B,IAAIisF,EAAaN,EAAUxmE,EAAO,EAAInlB,EAAIA,EACtCksF,EAAiBD,EAAa7mE,EAC9B+mE,EAAYL,EAAYI,GAC5B,QAAI,IAAWC,GAAaD,KAAkBJ,EAC1C,OAAO,EAEX,IAAI19E,EAAOg+E,EAAiB/xE,EAAS8xE,EAAW3B,EAAYyB,EAAY9mE,GACxE,IAAI/W,EAGA,OAAO,EAFPU,EAAMtH,KAAK4G,GAKnB,OAAO,EAEX,OAAO,EAGX,SAASg+E,EAAiB/xE,EAAS8xE,EAAW3B,EAAY7kF,EAAOwf,GAC7D,GAAIqlE,GAAc2B,EAAW,CACzB,IAAIE,EAAQ,IAAM1mF,GAAS0U,EAAQgyE,OAAS,GACxCC,EAAQ3mF,IAAUwf,EAAO,GAAK9K,EAAQiyE,OAAS,GACnD,OAAO,SAASC,EAAsBJ,EAAW3B,EAAY6B,EAAOC,GAChE,GAAI9B,GAAc2B,EAAW,CACzB,IAAI3oF,EAAS,eAAS,GAAI2oF,GACtB/mE,EAAOinE,EAAM,IAAM,EACnBlnE,EAAOmnE,EAAM,GACbx9E,EAAQq9E,EAAUr9E,MACtB,GAAIA,EAAO,CACP,QAAI,IAAWqW,IAASrW,EAAMsW,GAC1B,OAEJ5hB,EAAOsL,MAAQ,GACXu9E,EAAMluF,SACNqF,EAAOge,gBAAiB,GAExB8qE,EAAMnuF,SACNqF,EAAOgpF,0BAA2B,GAEtC,IAAK,IAAIxsF,EAAI,OAAG,IAAWmlB,EAAOrW,EAAM9O,EAAIolB,GAAQplB,EAAImlB,EAAMnlB,IAAK,CAC/D,IAAIysF,EAAiB39E,EAAM9O,EAAIolB,GAC3BsnE,EAAS1sF,EAAI,IAAMmlB,EACnB/W,EAAOm+E,EAAsBE,EAAgBjC,EAAa,EAAG,IAAMxqF,EAAIqsF,EAAM9zE,MAAM,GAAK,GAAIm0E,EAASJ,EAAM/zE,MAAM,GAAK,IAC1H,QAAI,IAAWnK,EAGX,OAFA5K,EAAOsL,MAAMtH,KAAK4G,IAM9B,OAAO5K,EAEX,OAAO2oF,EA9BJ,CA+BLA,EAAW3B,EAAY6B,EAAOC,GAEhC,OAAOH,EAIf,SAASQ,EAAaR,EAAWS,EAAYpC,EAAY6B,GACrD,GAAI7B,GAAcoC,EAAY,CAC1B,IAAIppF,EAAS,eAAS,GAAIopF,UACnBppF,EAAOge,sBACPhe,EAAOgpF,yBACd,IAAIpnE,EAAOinE,EAAM,IAAM,EASvB,OARIO,EAAW99E,QACXtL,EAAOsL,OAAS,OAASq9E,QAAa,IAAWA,OAAY,EAASA,EAAUr9E,QAAU,GAC1F89E,EAAW99E,MAAMrJ,QAAQ,CAAC2I,EAAMzI,KAC5B,IAAIknF,EAAclnF,EAAQyf,EACtB0nE,EAAa,IAAMnnF,EAAQ0mF,EAAM9zE,MAAM,GAAK,GAChD/U,EAAOsL,MAAM+9E,GAAeF,EAAanpF,EAAOsL,MAAM+9E,GAAcz+E,EAAMo8E,EAAa,EAAGsC,MAG3FtpF,EAEX,OAAOopF,EAEX,MAAO,CACH53B,KAAM,SAASr2C,EAAYgG,GACvB,IAAIzc,EAAO3D,KACX2D,EAAK0W,YAAcD,EACnBzW,EAAK6kF,kBAAoBpoE,GAAoB,GAC7Czc,EAAK8kF,aAAeruE,EAAWsuE,aAC/B/kF,EAAKglF,cAAe,EACpBhlF,EAAKilF,mBAAqB,EAC1BjlF,EAAKklF,YAAc,CACft+E,MAAO,IAEX5G,EAAKmlF,oBAAsB,GAC3BnlF,EAAKolF,gBAAkB3uE,EAAW2uE,gBAClCplF,EAAKqlF,sBAAwB,EAC7BrlF,EAAKslF,eAAgB,EACrBtlF,EAAK2hE,QAAU,uBACf3hE,EAAKulF,eAAiB,uBACtBvlF,EAAKwlF,UAAY,uBACjBxlF,EAAKylF,0BAA4B,uBACjCzlF,EAAK0lF,SAAW,uBAChB1lF,EAAK2lF,OAAS,uBACd3lF,EAAK4lF,oBAAsB5lF,EAAK4hE,mBAAmB/pD,KAAK7X,GACxDA,EAAK6lF,kCAAoC7lF,EAAK8lF,iCAAiCjuE,KAAK7X,GACpFA,EAAK+lF,mBAAqB/lF,EAAKgmF,kBAAkBnuE,KAAK7X,GACtDA,EAAKimF,uBAAyBjmF,EAAKkmF,sBAAsBruE,KAAK7X,GAC9DA,EAAKmmF,kBAAoBnmF,EAAKomF,iBAAiBvuE,KAAK7X,GACpDA,EAAKqmF,aAAermF,EAAKsmF,YAAYzuE,KAAK7X,GAC1CA,EAAKumF,iBAAmBvmF,EAAKwmF,gBAAgB3uE,KAAK7X,GAClDyW,EAAWtQ,GAAG,UAAWnG,EAAK4lF,qBAC9BnvE,EAAWtQ,GAAG,4BAA6BnG,EAAK6lF,mCAChDpvE,EAAWtQ,GAAG,sBAAuBnG,EAAK+lF,oBAC1CtvE,EAAWtQ,GAAG,iBAAkBnG,EAAKimF,wBACrCxvE,EAAWtQ,GAAG,YAAanG,EAAKmmF,mBAChC1vE,EAAWtQ,GAAG,WAAYnG,EAAKumF,kBAC/B9vE,EAAWgH,QAAQtX,GAAG,aAAcnG,EAAKqmF,cACzC,eAAK5vE,GAAY,SAAUgwE,EAAYC,IAC9B1mF,EAAKymF,IAAe,eAAWC,KAChC1mF,EAAKymF,GAAc,WACf,OAAOpqF,KAAKqa,YAAY+vE,GAAYtrF,MAAMkB,KAAKqa,YAAana,iBAK5EkgB,iBAAkB,WACd,OAAOpgB,KAAKwoF,mBAEhBr2B,QAAS,SAASm4B,GACd,IAAIlwE,EAAapa,KAAKqa,YAClB+G,EAAQhH,EAAWgH,QACvBhH,EAAW62C,IAAI,UAAWjxD,KAAKupF,qBAC/BnvE,EAAW62C,IAAI,4BAA6BjxD,KAAKwpF,mCACjDpvE,EAAW62C,IAAI,sBAAuBjxD,KAAK0pF,oBAC3CtvE,EAAW62C,IAAI,iBAAkBjxD,KAAK4pF,wBACtCxvE,EAAW62C,IAAI,YAAajxD,KAAK8pF,mBACjC1vE,EAAW62C,IAAI,WAAYjxD,KAAKkqF,kBAChC9oE,GAASA,EAAM6vC,IAAI,aAAcjxD,KAAKgqF,cACjCM,GACDlwE,EAAW+3C,WAGnBuvB,QAAS,SAAS5rE,EAASswE,GACvB,IAAIhsE,EAAapa,KAAKqa,YAClB+rE,EAAeC,SACfrmF,KAAKuqF,yBACLvqF,KAAKyoF,aAAeruE,EAAWkrE,WAC/BtlF,KAAK2oF,aAAe3oF,KAAKyoF,cAGjC8B,uBAAwB,WACpBvqF,KAAK4oF,mBAAqB,EAC1B5oF,KAAKgpF,sBAAwB,GAEjCwB,WAAY,WACRxqF,KAAKyqF,sBAAmB,EACxBzqF,KAAK0qF,uBAAoB,GAE7BC,gBAAiB,WACb3qF,KAAK6oF,YAAc,CACft+E,MAAO,KAGfqgF,yBAA0B,WACtB,IAAIxqE,EAAmBpgB,KAAKogB,mBACxBgmE,EAAiBF,EAAwBlmF,KAAK6qF,kBAAoB,GAAI,IACtEC,EAAoBttF,OAAOgqB,KAAKpH,GAAkBuJ,MAAMohE,IAAkB3E,EAAe2E,KAAmB3qE,EAAiB2qE,IACjI,OAAQD,GAEZ7nF,KAAM,SAAS6W,EAASkxE,GACpB,IAAI5pE,EAAQphB,KAAKohB,QACbphB,KAAK4qF,6BACL5qF,KAAKyqF,sBAAmB,GAE5BzqF,KAAK0qF,uBAAoB,EACzB1qF,KAAK2qF,iBAAgB,GACjB3qF,KAAKyqF,kBACL,gBAAW,CACPQ,QAAS7pE,EACThd,KAAMpE,KAAKyqF,iBACX3wE,QAASA,IAGZkxE,GACDhrF,KAAKkrF,YAAYpxE,GAErB9Z,KAAKspF,OAAO90B,KAAK16C,IAErBqxE,mBAAoB,WAChB,IAAKnrF,KAAKorF,iBAAkB,CACxB,IAAIC,EACAC,EACAlqE,EAAQphB,KAAKohB,QACjBphB,KAAKorF,iBAAmBhnF,IACpB,IAAImnF,EAAiBD,GAAaA,IAActrF,KAAKyqF,iBACrD,IAAKY,GAAcE,EAAgB,CAC/BD,EAAYtrF,KAAKyqF,kBAAoB,GACrCY,EAAa,GACb,IAAK,IAAI5vF,EAAI,EAAGA,EAAI6vF,EAAU1xF,OAAQ6B,IAClC4vF,EAAW,eAAWjqE,EAAMoqE,MAAMF,EAAU7vF,MAAQA,EAG5D,OAAO4vF,EAAW,eAAWjqE,EAAMoqE,MAAMpnF,MAGjD,OAAOpE,KAAKorF,kBAEhBK,YAAa,WACT,OAAOzrF,KAAKohB,SAEhB8pE,YAAa,SAASpxE,GAClB,IAAImxE,EAAUjrF,KAAKyrF,cACfrxE,EAAapa,KAAKqa,YAClB4rE,EAAa,EAAStwE,qBAAqB3V,KAAKuX,SAAS3d,OACzD8xF,EAAa1rF,KAAK0rF,aAClBC,EAAgB,YAAc3rF,KAAK4Y,OAAO,uBAC1C2G,EAAgB,YAAcvf,KAAK4Y,OAAO,kBAC1CgzE,EAAe5rF,KAAK4Y,OAAO,wBAC/BkB,EAAUA,EAAQ1b,QAAO,SAAUmjD,GAC/B,OAAQnnC,EAAWkrE,YAAc,WAAa/jC,EAAO9iD,WAAQ,IAAW8iD,EAAOngD,SAEnF,IAAIyqF,EAAe,IAAM5F,EAAajmF,KAAK8rF,aAAe9rF,KAAKuK,QAAQ3Q,OACnEmyF,EAAeF,IACnB,gBAAW,CACPZ,QAASA,EACT7mF,KAAMpE,KAAKgsF,OACXlyE,QAASA,EACTmsE,WAAYA,EACZgG,gBAAgB,IAEpB,gBAAW,CACPhB,QAASA,EACT7mF,KAAMgW,EAAW7P,QACjBuP,QAASA,EACTmsE,WAAYA,EACZgG,gBAAgB,IAEpB,IAAIC,EAAiClsF,KAAK4oF,mBAAqB,IAAM+C,GAAiBpsE,KAAmBqsE,GAAgBF,IAAeK,GACpIG,IACAlsF,KAAKgpF,uBAAyB6C,IAAiBE,GAEnDjyE,EAAQuqD,OAAO,EAAGvqD,EAAQlgB,SAE9BqwF,YAAa,SAASkC,GAClB,IACIryE,QAASA,GACTqyE,EACJnsF,KAAKiD,KAAK6W,GAAS,IAEvBqwE,gBAAiB,SAASvmF,GACtB5D,KAAKqpF,SAAS70B,KAAK5wD,GACnB5D,KAAKkrF,YAAYtnF,EAAEkW,UAEvBsyE,2BAA4B,SAASC,EAAejsE,GAChD,IAAIksE,EAAwB,CAAC,YAAa,UAAW,UACjDC,EAAqBD,EAAsBhuF,QAAQ+tF,GACnDG,EAAwBD,GAAsB,EAAID,EAAsBt4E,MAAMu4E,GAAsB,CAACF,GACzG,OAAOG,EAAsB5tE,KAAKytE,GAAiBjsE,EAAiBisE,KAExEI,2BAA4B,SAAS32E,EAASswE,GAC1C,IAAIsG,EAAkB1sF,KAAKyqF,iBACvBkC,EAAmB3sF,KAAK0qF,kBACxBlD,EAAaxnF,KAAK6oF,aAClB/yE,EAAQyL,iBAAiBnjB,SAAW0X,EAAQsK,iBAAiBmsC,WAAaz2C,EAAQyL,iBAAiBzf,OAASgU,EAAQsK,iBAAiB45B,WACrIlkC,EAAQsK,iBAAmB,CACvBmsC,UAAWz2C,EAAQsK,iBAAiBmsC,UACpCrS,QAASpkC,EAAQsK,iBAAiB85B,UAGtCksC,EAAeE,YACfoG,OAAkB,EAClBC,OAAmB,EACnBnF,EAAa,CACTj9E,MAAO,MAGP67E,EAAeC,QACfsG,OAAmB,EACnBnF,EAAa,CACTj9E,MAAO,KAEJ67E,EAAevX,iBACtB2Y,EAAa,CACTj9E,MAAO,KAGf,eAAK67E,EAAgB,CAACiG,EAAexqF,KAC7BA,GAAS7B,KAAKosF,2BAA2BC,EAAev2E,EAAQsK,oBAChEssE,OAAkB,EAClBC,OAAmB,MAI3BA,IACA72E,EAAQsK,iBAAiB44B,QAAS,GAEtCljC,EAAQ42E,gBAAkBA,EAC1B52E,EAAQ62E,iBAAmBA,EAC3B72E,EAAQ0xE,WAAaA,EAChB1xE,EAAQ82E,kBACT5sF,KAAKyqF,iBAAmBiC,EACxB1sF,KAAK0qF,kBAAoBiC,EACzB3sF,KAAK6oF,YAAcrB,IAG3B,iCAAiC1xE,GAC7B,IAAI+2E,EACJ7sF,KAAK8sF,mBAAmBh3E,GAClB,KAAO,QAAU+2E,EAAgB/2E,EAAQ1R,YAAS,IAAWyoF,OAAgB,EAASA,EAAcjzF,UACtGkc,EAAQ1R,KAAOoiF,EAAqB1wE,GAAS,IAASA,EAAQ42E,kBAGtEI,mBAAoB,SAASh3E,GACzB,IAAIsE,EAAapa,KAAKqa,YAClBuoE,EAAkB5iF,KAAK6qF,iBAC3B7qF,KAAKopF,0BAA0B50B,KAAK1+C,GACpCA,EAAQkiB,MAAQh4B,KAAK4Y,OAAO,kBAC5B9C,EAAQi3E,yBAA2Bj3E,EAAQyL,iBAC3CzL,EAAQsK,iBAAmB,OAAA3lB,EAAA,WAAO,GAAIuF,KAAKogB,oBAC3C,IAAI+lE,GAAgBnmF,KAAKsuE,aAAetuE,KAAKgtF,cACzChtF,KAAK4Y,OAAO,yCAA2C5Y,KAAKsuE,aAC5Dx4D,EAAQkiB,WAAQ,GAEpB,IAAItX,EAAc,OAAAjmB,EAAA,WAAO,CACrBwxD,UAAWjsD,KAAKisD,YAChBC,SAAUlsD,KAAKksD,YAChBp2C,EAAQyL,kBACP6kE,EAAiBF,EAAwBxlE,EAAakiE,EAAiBuD,GAE3E,GADAnmF,KAAKysF,2BAA2B32E,EAASswE,IACpCtwE,EAAQ82E,gBAAiB,CAC1B,IAAI1rB,EAAelhE,KAAKgtF,cACxBl3E,EAAQm2C,UAAY7xC,EAAW6xC,YAC/Bn2C,EAAQ8sE,gBAAkBliE,EAC1B5K,EAAQswE,eAAiBA,EACzBpmF,KAAKitF,uBAAyB7G,EAC9BpmF,KAAKgtF,eAAgB,EACrB,kBAAK9rB,GAAgBlhE,KAAKktF,cAAgBltF,KAAK0hF,QAAQ5rE,EAASswE,IAAiB/nE,KAAK,KAC9Ere,KAAKmtF,mBAAqBr3E,EAAQs3E,cAClCptF,KAAKktF,cAAe,EACpBltF,KAAKygB,OAAOoiE,OAAO,KACf7iF,KAAKktF,cAAe,OAG7BpsE,KAAK,KACJ1G,EAAWmmC,OAAOzqC,EAAQs3E,eAC3BvK,OAAO,KACN7iF,KAAKgtF,eAAgB,IAEzB5yE,EAAWmmC,OAAOvgD,KAAKmtF,kBACvBntF,KAAKmtF,iBAAmBr3E,EAAQs3E,YAC5BptF,KAAKgtF,eACL5yE,EAAWmmC,OAAOvgD,KAAKmtF,kBAG/BntF,KAAKqtF,uBAAuBv3E,IAEhCu3E,uBAAwB,SAASv3E,GAC7B,IAAIsK,EAAmBtK,EAAQsK,iBAC/BtK,EAAQ4K,YAAc,GACtB,IAAI4sE,EAAcx3E,EAAQ0xE,WAAWr8C,MACjCoiD,EAAuB,CACvBnvF,QAASgiB,EAAiBmsC,UAC1BzqD,MAAOse,EAAiB45B,QACxBziC,OAAQ6I,EAAiBs1B,SACzBwE,SAAU95B,EAAiB85B,QAC3Br5B,MAAOT,EAAiB44B,OACxBp4B,MAAOR,EAAiB44B,OACxBw0C,kBAAmBF,GAAe,eAAgBA,IAAgBltE,EAAiB44B,QAEvF,eAAKljC,EAAQyL,kBAAkB,SAAU05B,EAAYwyC,GAC7CF,EAAqBtyC,KACrBnlC,EAAQ4K,YAAYu6B,GAAcwyC,SAC3B33E,EAAQyL,iBAAiB05B,OAGpCqyC,IACAx3E,EAAQq1B,MAAQmiD,IAGxB3D,kBAAmB,SAAS7zE,GACxB,IAAI4K,EAAc5K,EAAQ4K,YACtBgtE,EAAc53E,EAAQsK,mBAAqBtK,EAAQsK,iBAAiB44B,OACpEwuC,EAAa1xE,EAAQ0xE,WACrBjmE,EAAmBzL,EAAQyL,iBAC3BosE,GAAY,IAAU3tF,KAAK4Y,OAAO,iBAAmB2I,EACrDqsE,EAAgBD,IAAc73E,EAAQ82E,iBAAmBpF,KAAgBkG,GAAensE,EAAiBhK,OACzGs2E,EAAkBF,GAAaD,EAC/BI,EAAiBD,IAAoB/3E,EAAQ82E,gBACjD,GAAKlsE,EAAL,CAIIgtE,IACA53E,EAAQ+K,KAAOH,EAAYG,KAC3B/K,EAAQ8K,KAAOF,EAAYE,YACpBF,EAAYG,YACZH,EAAYE,MAEnBF,EAAYnJ,QACZmJ,EAAYnJ,MAAQzB,EAAQyB,OAASmJ,EAAYnJ,OAErD,IAAI0uE,EAAa,EAAStwE,qBAAqBG,EAAQyB,OAASgK,EAAiBhK,OAASmJ,EAAYnJ,OAAO3d,OACzGkc,EAAQmxE,sBACRnxE,EAAQ1R,KAAO0R,EAAQmxE,oBAAoBt/D,OAAO7R,EAAQ1R,OAE1D0R,EAAQoxE,oBACRpxE,EAAQ1R,KAAO0R,EAAQ1R,KAAKujB,OAAO7R,EAAQoxE,oBAE1C0G,GAAkBpH,EAAqB1wE,KACpC+3E,GAAmB/3E,EAAQ62E,iBAC3B72E,EAAQ1R,KAAO4hF,EAAWlwE,EAAQ62E,iBAAkB1G,IAEhD6H,IACK9tF,KAAKyqF,iBAEC30E,EAAQi4E,qBACfj4E,EAAQ1R,KAAOpE,KAAKyqF,iBAAmBzqF,KAAKyqF,iBAAiB9iE,OAAO7R,EAAQ1R,OAF5EpE,KAAKyqF,iBAAmBzE,EAAWlwE,EAAQ1R,KAAM,EAASuR,qBAAqB4L,EAAiBhK,OAAO3d,SAK/G,IAAI,QAAWkc,EAAQ1R,MAAMqc,KAAKC,GAAarC,KAAKja,IAChD0R,EAAQ1R,KAAOA,EACX0pF,IACA9tF,KAAK0qF,kBAAoB1E,EAAWlwE,EAAQ1R,KAAM6hF,MAEvDnlE,KAAKsR,IACJtc,EAAQ1R,MAAO,IAAK,eAAUyvB,OAAOzB,MAGzC1R,EAAY8sE,mBAAqBE,IACjC53E,EAAQq1B,MAAQ,eAAcr1B,EAAQq1B,OAASr1B,EAAQq1B,MAAQ,GAC/Dr1B,EAAQq1B,MAAMugD,WAAa51E,EAAQ1R,KAAKxK,QAExCkc,EAAQq1B,OAASr1B,EAAQq1B,MAAMugD,YAAc,KAAM,IAAUnqE,EAAiBisE,oBAAqB,IAAU9sE,EAAY8sE,qBACzH13E,EAAQq1B,MAAMugD,YAAc,GAEhC1rF,KAAKguF,sBAAsBl4E,GACvB83E,IACApG,EAAWr8C,MAAQq8C,EAAWr8C,OAAS,OAAA1wC,EAAA,WAAO,GAAIqb,EAAQq1B,OAC1D,kBAAKr1B,EAAQ1R,MAAMia,KAAKja,KAClB,SAAS0R,EAAS1R,EAAM6hF,GAOtB,IANA,IAAIgI,EAAOC,EAAgBC,EAAOC,GAE9B7sE,iBAAkBA,GAClBzL,EACA+K,EAAO,QAAUotE,EAAQ,QAAUC,EAAiBp4E,EAAQ+K,YAAS,IAAWqtE,EAAiBA,EAAiB3sE,EAAiBV,YAAS,IAAWotE,EAAQA,EAAQ,EACvKrtE,EAAO,QAAUutE,EAAQ,QAAUC,EAAiBt4E,EAAQ8K,YAAS,IAAWwtE,EAAiBA,EAAiB7sE,EAAiBX,YAAS,IAAWutE,EAAQA,EAAQ,EAClK1yF,EAAI,EAAGA,EAAImlB,EAAMnlB,IAAK,CAC3B,IAAI6sF,EAAc7sF,EAAIolB,EAClBwtE,EAAav4E,EAAQ0xE,WAAWj9E,MAChCu9E,EAAQ,IAAMrsF,GAAKqa,EAAQgyE,OAAS,GACxCuG,EAAW/F,GAAeF,EAAaiG,EAAW/F,GAAclkF,EAAK3I,GAAIwqF,EAAY6B,IAX3F,CAaAhyE,EAAS1R,EAAM6hF,OAI7B,kBAAKnwE,EAAQ1R,MAAMia,KAAK,KAChBvI,EAAQ8sE,kBACR5iF,KAAK6qF,iBAAmB/0E,EAAQ8sE,gBAChCplF,OAAOgqB,KAAK1R,EAAQswE,gBAAgBllF,QAAQmrF,IACxCrsF,KAAK8oF,oBAAoBuD,GAAiBrsF,KAAK8oF,oBAAoBuD,IAAkBv2E,EAAQswE,eAAeiG,QAIxHv2E,EAAQyL,iBAAmBzL,EAAQi3E,8BA3E/B/sF,KAAKqa,YAAYkmC,OAAOzqC,EAAQs3E,cA6ExCY,sBAAuB,SAASl4E,GACxBA,EAAQsK,mBAAqBtK,EAAQsK,iBAAiB44B,QAAUn6C,MAAMuY,QAAQtB,EAAQ1R,aAClF,IAAW0R,EAAQ+K,OACnB/K,EAAQ1R,KAAO0R,EAAQ1R,KAAK4P,MAAM8B,EAAQ+K,YAE1C,IAAW/K,EAAQ8K,OACnB9K,EAAQ1R,KAAO0R,EAAQ1R,KAAK4P,MAAM,EAAG8B,EAAQ8K,SAIzDipE,sBAAuB,SAASx/E,GAC5BrK,KAAKkpF,eAAe10B,KAAKnqD,IAE7B0/E,iBAAkB,SAAS33D,GACvBpyB,KAAKmpF,UAAU30B,KAAKpiC,GACpBpyB,KAAKslE,QAAQ9Q,KAAK,CACdqN,WAAY,YACZzvC,MAAOA,KAGfk8D,cAAe,WACX,OAAOtuF,KAAKksD,YAEhBqZ,mBAAoB,SAASl2B,GACzB,IAAIk/C,EACAn0E,EAAapa,KAAKqa,YAClBhQ,GAAY,EACZmkF,GAAiBn/C,GAAQ,eAAUA,EAAKwyB,YACxCiqB,EAAa9rF,KAAK8rF,aAClB0C,IACAxuF,KAAKyoF,aAAeqD,IAAe9rF,KAAKsuF,iBAAmBxC,EAAa9rF,KAAKsuF,gBACzEtuF,KAAKyoF,cACLzoF,KAAK2oF,cAAe,IAGxBvuE,EAAWsxE,cAAgB,EACvBtxE,EAAW6xC,aAAejsD,KAAKyuF,cAC/Br0E,EAAW6xC,UAAUjsD,KAAKyuF,YAAc,GACxCzuF,KAAKisD,UAAU7xC,EAAW6xC,aAC1BjsD,KAAK2qF,kBACLvwE,EAAWqG,OACXpW,GAAY,GAETmkF,IACPD,EAAoBn0E,EAAW6xC,YAAcjsD,KAAKksD,WAAa4/B,EAC3DyC,EAAoBvuF,KAAK4oF,qBACzB5oF,KAAK4oF,mBAAqB2F,EACtB,IAAMn0E,EAAW6xC,aAAgBjsD,KAAK4Y,OAAO,0BAC7C5Y,KAAKgpF,sBAAwB,IAGjC,IAAM8C,GAAc1xE,EAAW6xC,aAAejsD,KAAKyuF,cACnDr0E,EAAW6xC,UAAUjsD,KAAKyuF,YAAc,GACpC,aAAezuF,KAAK4Y,OAAO,oBAC3BwB,EAAWqG,OACXpW,GAAY,KAInBA,IACDrK,KAAK0uF,gBAAkB1uF,KAAK8oF,oBAC5B9oF,KAAK8oF,oBAAsB,GAC3B9oF,KAAK4R,UAAUk/C,aAAe,GAC9B9wD,KAAKslE,QAAQ9Q,KAAKnlB,GAClBrvC,KAAK4R,UAAUk/C,kBAAe,IAGtC69B,6BAA8B,SAASvgC,GACnC,IAAIzqD,EAAO3D,KACX2D,EAAKirF,kBAAmB,EACxBxgC,EAASy0B,QAAO,WACZl/E,EAAKirF,kBAAmB,MAGhCC,sBAAuB,WACnB,OAAO7uF,KAAKitF,wBAEhB7G,eAAgB,WACZ,OAAOpmF,KAAK0uF,iBAEhB9L,gBAAiB,WACb,OAAO5iF,KAAK6qF,kBAAoB,IAEpCnC,WAAY,WACR,OAAO1oF,KAAKyoF,aAEhBqG,sBAAuB,WACnB,OAAO9uF,KAAKqa,YAAYqxE,cAE5BA,WAAY,WACR,OAAOnqF,UAAUvB,KAAK4oF,oBAAsB5oF,KAAK8uF,yBAA2B9uF,KAAKgpF,wBAErF+F,qBAAsB,WAClB,OAAO/uF,KAAKgpF,uBAEhB8C,WAAY,WACR,OAAO9rF,KAAKqa,YAAY9P,QAAQ3Q,QAEpCo1F,gBAAiB,WACb,OAAOhvF,KAAK0rF,cAEhBx/B,SAAU,WACN,IAAI9xC,EAAapa,KAAKqa,YACtB,OAAKna,UAAUtG,QAAWwgB,EAAWkrE,WAG9BlrE,EAAW8xC,SAASptD,MAAMsb,EAAYla,WAFlC,GAIfuuF,UAAW,WACP,IAAIr8E,EAAQpS,KAAKgvF,kBAAoBhvF,KAAKgpF,sBACtC98B,EAAWlsD,KAAKksD,WACpB,OAAIA,GAAY95C,EAAQ,EACbZ,KAAK1I,IAAI,EAAG0I,KAAKy9E,KAAK78E,EAAQ85C,IAElC,GAEXgjC,iBAAkB,WACd,OAAOlvF,KAAK2oF,cAAgB3oF,KAAKqa,YAAYqxE,cAAgB,GAEjEyD,cAAe,SAASzuE,EAAaU,GACjC,IAAIhH,EAAapa,KAAKqa,YAClBnJ,EAAI,IAAI,cACZ,GAAKkJ,EAWL,OARAgH,EAAQA,GAAShH,EAAWgH,QAC5BA,EAAMX,KAAKC,GAAarC,MAAK,SAAUja,EAAM+mC,GACrC/mC,IAASvF,MAAMuY,QAAQhT,IAASvF,MAAMuY,QAAQhT,EAAKA,QACnD+mC,EAAQ/mC,EACRA,EAAOA,EAAKA,MAEhB8M,EAAEyP,QAAQvc,EAAM+mC,MAChBrqB,KAAK5P,EAAE2iB,QACJ3iB,GAEX07E,gBAAiB,WACb,QAAS5sF,KAAK4uF,kBAElBnuE,KAAM,SAAS3K,GACX,IAAInS,EAAO3D,KACPoa,EAAazW,EAAK0W,YAClBnJ,EAAI,IAAI,cACZ,GAAI4E,EAAS,CACT,IAAIsL,EAAQhH,EAAWgH,QACnBguE,EAAwBh1E,EAAWsG,cACnC2uE,EAAa,CACb9tE,iBAAkBzL,EAClB82E,iBAAiB,GAkCrB,OAhCA,eAAKxrE,EAAMkuE,sBAAwB,IAAI,SAAUvwF,EAAGk8C,GAC1CA,KAAco0C,EAAW9tE,mBAC3B8tE,EAAW9tE,iBAAiB05B,GAAcm0C,EAAsBn0C,OAGxEj7C,KAAKipF,cAAgBnzE,EAAQy5E,aAC7B5rF,EAAKgrF,6BAA6Bz9E,GAClCkJ,EAAWo1E,uBAAuBt+E,GAClCvN,EAAK8lF,iCAAiC4F,GACpC,SAASv9B,EAAQqI,GACX,eAAUA,GACV,eAAarI,EAAQqI,GAErBrI,IAJN,EAMA,WACE,IAAK13C,EAAWgH,QACZ,OAAOlQ,EAAE2iB,OAAO,YAEpB,kBAAKw7D,EAAWjrF,MAAQT,EAAKwrF,cAAcE,EAAW9tE,mBAAmBlD,MAAK,SAAUja,EAAM+mC,GAC1FkkD,EAAWjrF,KAAOA,EAClBirF,EAAWlkD,MAAQA,GAAS,GAC5BxnC,EAAKgmF,kBAAkB0F,GACnBv5E,EAAQ03E,wBAAqB,IAAW6B,EAAWlkD,MAAMugD,aACzD2D,EAAWlkD,MAAMugD,WAAatqE,EAAMsqE,WAAW2D,EAAW9tE,mBAE9D,kBAAK8tE,EAAWjrF,KAAMirF,EAAWlkD,MAAMugD,YAAYrtE,MAAK,SAAUja,EAAMsnF,GACpE2D,EAAWlkD,MAAMugD,WAAaA,EAC9Bx6E,EAAEyP,QAAQvc,EAAMirF,EAAWlkD,UAC3BrqB,KAAK5P,EAAE2iB,WACX/S,KAAK5P,EAAE2iB,UACXlwB,EAAKiV,OAAO,mBACT1H,EAAE4P,MAAK,WACVnd,EAAKolF,gBAAgB0G,UAAU,YAAavvF,cAC5C2iF,OAAO,KACP7iF,KAAKipF,eAAgB,IACtBxnE,UAEH,OAAOrH,EAAWqG,QAG1B4lE,OAAQ,SAASqJ,GACb,OAAOA,EAAO1vF,KAAKqa,YAAYgsE,SAAWrmF,KAAKqa,YAAYoG,QAE/DkvE,mBAAoB,WAChB,OAAO3vF,KAAKyqF,mBAnuBmB,ICzBvCmF,GAAwB,GACb,IACXn1F,OAAQ,SAASo7D,GACb+5B,GAAwBA,GAAsB7/B,QAAQ8F,IAE1DhjC,OAAQ,SAASjhB,GACb,OAAO,IAAIg+E,GAAsBh+E,K,uCCqB9Bi+E,GAAuB,CAC9BlyF,eAAgB,WACZ,MAAO,CACHmyF,eAAgB,EAChB11E,WAAY,KACZ05B,cAAc,EACdoF,oBAAoB,EACpBtD,kBAAkB,EAClBe,oBAAqB,KACrBv2B,iBAAkB,OAClB44B,OAAQ,CACJngC,SAAS,EACTqzC,cAAU,EACVD,eAAW,KAIvBuJ,YAAa,CACTpxD,KAAM,EAAQuuD,WAAW5C,QAAQ,IAAIggC,QAAQ,SAAiBhgC,QAAQ,WAClE,IAAIigC,EAAe,SAASrsF,EAAMs3C,EAAYp5C,GAC1C,IAAIuY,EAAazW,EAAK0W,YACtB,GAAID,EAAY,CACZ,QAAI,IAAWvY,EAAO,CAClB,IAAI6gE,EAAW/+D,EAAKssF,sBAAsBh1C,GAC1C,GAAIynB,IAAa7gE,EAAO,CAChB,aAAeo5C,GACf7gC,EAAW6xC,UAAU,GAEzB7xC,EAAW6gC,GAAYp5C,GACvB8B,EAAKusF,6BAA8B,EACnCvsF,EAAKiV,OAAO,UAAYqiC,EAAYp5C,GACpC8B,EAAKusF,6BAA8B,EACnC,IAAIjkC,EAAY7xC,EAAW6xC,YAE3B,OADAtoD,EAAKwsF,UAAY,cAAgBl1C,EAC1B7gC,EAAW,cAAgB6gC,EAAa,OAAS,YAAY58B,KAAK,KACrE1a,EAAKwsF,WAAY,EACjBxsF,EAAKysF,YAAY57B,KAAKvI,KAG9B,OAAO,wBAAWtrC,UAAUc,UAEhC,OAAOrH,EAAW6gC,KAEtB,OAAO,GAEPo1C,EAAU,CACV5/B,KAAM,WACF,IAAI9sD,EAAO3D,KACX2D,EAAKqoF,OAAS,GACdroF,EAAK2sF,sBAAwB,KAC7B3sF,EAAK25D,mBAAqB35D,EAAKguD,cAAc,WAC7ChuD,EAAKwsF,WAAY,EACjBxsF,EAAK4sF,uBAAyB,KAC9B5sF,EAAK4lF,oBAAsB3lF,IACvBD,EAAK4sF,uBAAyBvwF,KAAKqa,YAAY+rE,iBAC/CziF,EAAK4hE,mBAAmB3hE,GACxBD,EAAK4sF,uBAAyB,MAElC5sF,EAAK6sF,uBAAyB7sF,EAAK8sF,sBAAsBj1E,KAAK7X,GAC9DA,EAAKimF,uBAAyBjmF,EAAKkmF,sBAAsBruE,KAAK7X,GAC9DA,EAAKmmF,kBAAoBnmF,EAAKomF,iBAAiBvuE,KAAK7X,GACpDA,EAAK6lF,kCAAoC7lF,EAAK8lF,iCAAiCjuE,KAAK7X,GACpFA,EAAKumF,iBAAmBvmF,EAAKwmF,gBAAgB3uE,KAAK7X,GAClDA,EAAK+sF,mBAAqB/sF,EAAKgtF,kBAAkBn1E,KAAK7X,GACtDA,EAAK25D,mBAAmB+H,eAAev1D,IAAInM,EAAK6sF,wBAChD7sF,EAAKitF,YAAa,EAClBjtF,EAAKirF,kBAAmB,EACxBjrF,EAAKktF,yBAAsB,EAC3BltF,EAAKmtF,SAAW,GAChBntF,EAAKwtD,aAAa,uBAClBxtD,EAAKotF,kBAAkBjhF,KAAI,SAAUsiB,GACjC,OAAOzuB,EAAKuuD,cAAc,sBAAuB,CAC7C9/B,MAAOA,OAGfzuB,EAAKqtF,sBAETf,sBAAuB,SAASh1C,GAC5B,OAAOj7C,KAAKqa,YAAY4gC,MAE5BoV,cAAe,WACX,MAAO,CAAC,UAAW,iBAAkB,oBAAqB,cAAe,oBAAqB,WAElGC,cAAe,SAAS1uD,GACpB,GAAI,sBAAwBA,EACxB,MAAO,CACHqvF,aAAa,IAIzBvgC,cAAe,WACX,MAAO,CAAC,qBAAsB,mBAAoB,UAAW,SAAU,cAAe,oBAAqB,QAAS,QAAS,gBAAiB,YAAa,WAAY,YAAa,aAAc,qBAAsB,mBAAoB,mBAAoB,gBAAiB,iBAAkB,gBAEvS0sB,MAAO,WACHp9E,KAAKs9D,mBAAmB8f,QACxBp9E,KAAKgsF,OAAS,GACdhsF,KAAKgxF,sBAET,wBAAwB3hD,GACpB,GAAIA,EAAKxtC,QAAUwtC,EAAKktC,eAAiBv8E,KAAK4Y,OAAO,YAAc/Z,MAAMuY,QAAQi4B,EAAKxtC,QAAUhD,MAAMuY,QAAQi4B,EAAKktC,eAAgB,CAC/H,IAAI2U,EAAiB7hD,EAAKxtC,QAAUwtC,EAAKktC,cACzC,GAAI2U,EAAgB,CAChB,IAAI9vE,EAAQphB,KAAKohB,QACbA,IACAA,EAAM+vE,OAAS9hD,EAAKxtC,OAM5B,OAHI7B,KAAKoxF,gCAAgC/hD,IACrCrvC,KAAK0hF,QAAQ1hF,KAAK4Y,OAAO,wBAEtB,EAEX,OAAO,GAEXw4E,gCAAiC,SAAS/hD,GACtC,OAAO,GAEX6hB,cAAe,SAAS7hB,GACpB,IACIj1B,EACAi3E,EAFA1tF,EAAO3D,KAIX,SAASoxD,IACL/hB,EAAK+hB,SAAU,EAEnB,GAAI,eAAiB/hB,EAAKztC,MAAQytC,EAAKztC,OAASytC,EAAKmtC,UAAYx8E,KAAKsxF,wBAAwBjiD,GAC1F+hB,SAGJ,OAAQ/hB,EAAKztC,MACT,IAAK,eACL,IAAK,qBACL,IAAK,mBACL,IAAK,iBACDwvD,IACA,MACJ,IAAK,mBACL,IAAK,UACL,IAAK,aACL,IAAK,YACDA,IACAztD,EAAKy5E,QACL,MACJ,IAAK,SAED,GADAhjE,EAAazW,EAAKyW,aACdA,IACAi3E,EAAuB1tF,EAAK4tF,kBAAkBn3E,GAC1Ci3E,GAAsB,CACtB,IAAIplC,EAAY7xC,EAAW6xC,YAC3BjsD,KAAKmwF,UAAYkB,EAAqBG,mBACtCp3E,EAAWqG,OAAOpC,KAAK,KACnBre,KAAKmwF,WAAY,EACjBxsF,EAAKysF,YAAY57B,KAAKvI,KAIlCmF,IACA,MACJ,IAAK,aACDztD,EAAKy5E,QACL,MACJ,IAAK,UACDhjE,EAAazW,EAAKyW,aACdA,GAAcA,EAAW/P,aAAeglC,EAAKztC,OAASytC,EAAKmtC,WAC3Dx8E,KAAKyxF,gCAAiC,EACtCr3E,EAAWqG,QAEf,MACJ,QACI9c,EAAK1D,SAASovC,KAG1B4jB,QAAS,WACL,OAAQjzD,KAAK4wF,YAEjBc,cAAe,WACX,OAAO1xF,KAAKqa,aAAera,KAAKqa,YAAYA,aAEhD4oE,kBAAmB,SAAS0O,GACxB,OAAO3xF,KAAK4xF,oBAAe,EAAQD,IAEvCC,eAAgB,SAASxzF,EAAQuzF,GAC7B,IAAIv3E,EAAapa,KAAKqa,YAClBi9C,EAAoBt3D,KAAKs9D,mBAC7B,GAAIljD,EAAY,MACR,IAAWhc,IACXA,EAASgc,EAAWhc,UAExB,IAAIyzF,EAAmB7xF,KAAK8xF,6BACxBD,IACIv6B,EAAkBmmB,uBAAyBnmB,EAAkB6lB,2BAC7D/+E,EAAS,OAAcob,eAAe,CAACq4E,EAAkBzzF,KAGjEA,EAASk5D,EAAkBosB,aAAatlF,EAAQuzF,GAAmBv3E,EAAWgG,mBAAmBmsC,WAErG,OAAOnuD,GAEX2zF,UAAW,WACP,OAAI/xF,KAAKkwD,kBACLlwD,KAAKgyF,eAAiB,IAAI,cACnBhyF,KAAKgyF,gBAET,qBAEXhiC,eAAgB,WACZ,IAAIl2C,EAAU9Z,KAAK8wF,SACnB,GAAIh3E,EAAQlgB,OAAQ,CAChBoG,KAAK8wF,SAAW,GAChB,IAAI53C,EAAqBp/B,EAAQ6P,MAAM43B,GAAUA,EAAOrI,oBACxDl5C,KAAKiyF,YAAY,IAAMn4E,EAAQlgB,OAASkgB,EAAQ,GAAK,CACjDo/B,mBAAoBA,IAGxBl5C,KAAKgyF,iBACLhyF,KAAKgyF,eAAerxE,UACpB3gB,KAAKgyF,eAAiB,OAG9BvI,iCAAkC,SAAS7lF,GACvC,IAAIsuF,EACA56B,EAAoBt3D,KAAKs9D,mBACzBljD,EAAapa,KAAKqa,YAClBkH,EAAmB3d,EAAE2d,iBACrB3d,EAAEgpF,kBAAoBrrE,EAAiBguE,eAG3ChuE,EAAiBnjB,OAAS4B,KAAK4xF,eAAerwE,EAAiBnjB,QAC3D,KAAO,QAAU8zF,EAAwB3wE,EAAiBnjB,cAAW,IAAW8zF,OAAwB,EAASA,EAAsBt4F,SAAW,MAAQ2nB,EAAiBnjB,OAAO,KAClLwF,EAAEQ,KAAO,GACTR,EAAEunC,MAAQvnC,EAAEunC,OAAS,GACrBvnC,EAAEunC,MAAMugD,WAAa,GAEpBp0B,EAAkBmmB,uBACnBnmB,EAAkB4gB,sBAAsB99D,GAE5Cpa,KAAKmyF,kBAAmB,EACxB76B,EAAkBkrB,sBAAsBpoE,GAAapa,KAAKyxF,gCAC1DzxF,KAAKmyF,kBAAmB,EACxB5wE,EAAiBzf,KAAOw1D,EAAkB+pB,8BAC1C9/D,EAAiBhK,MAAQ+/C,EAAkBmqB,+BAC3CrnE,EAAWtY,KAAKyf,EAAiBzf,MACjCsY,EAAW7C,MAAMgK,EAAiBhK,OAClCgK,EAAiBzf,KAAOw1D,EAAkB+pB,6BAA6BjnE,EAAWgG,mBAAmB45B,SACrGp2C,EAAE2T,MAAQ+/C,EAAkBmqB,8BAA8BrnE,EAAWgG,mBAAmBs1B,YAE5F+6C,sBAAuB,SAAS7sF,GAC5B,IAGIyT,EACAgmC,EACA+0C,EALAzuF,EAAO3D,KACPkiE,EAAct+D,EAAEs+D,YAChBuC,EAAc7gE,EAAE6gE,YAIpB,GAAIvC,EAAYloB,SAAWkoB,EAAYxsB,SAC/B/xC,EAAK0W,cAAgB1W,EAAKwuF,mBAC1BxuF,EAAK0W,YAAY9C,MAAM5T,EAAK25D,mBAAmBmkB,gCAC/C99E,EAAK0W,YAAYvY,KAAK6B,EAAK25D,mBAAmB+jB,+BAC9C19E,EAAK0iF,eAEN,GAAInkB,EAAY1jD,UACnB6+B,EAAe15C,EAAK25D,mBAAmBoK,aAAa9jE,EAAE2R,YAAa,iBAC/DkvD,EAAYpnB,cAAgBonB,EAAYrnB,YAAcv+C,MAAMuY,QAAQimC,IAAiBonB,EAAYptD,aAAeotD,EAAY79C,yBAA2B69C,EAAYnoB,kBACnKjlC,EAAc1T,EAAK25D,mBAAmBoK,aAAa9jE,EAAE2R,YAAa,gBAC9D1W,MAAMuY,QAAQimC,SAAiB,IAAWz5C,EAAE2R,aAAe,eAAU8B,KAAiBotD,EAAY79C,yBAA2B69C,EAAYptD,eACzI1T,EAAK0uF,eACLD,GAAgB,IAGnBzuF,EAAK2uF,kBAAqB,OAAcz4E,aAAa4qD,EAAa,CAAC,QAAS,eAAgB,cAAe,sBAAuB,0BAA2B,eAAgB,gBAC9K9gE,EAAK25D,mBAAmB+H,eAAev1D,KAAI,SAAUyiF,EAAmBhxC,GACpE,IAAIixC,EACJ7uF,EAAK25D,mBAAmB+H,eAAe1sD,OAAO45E,GAC9C5uF,EAAKsuF,YAAY,CACb/4C,oBAAoB,EACpBu5C,wBAAyB,OAASlxC,QAAU,IAAWA,GAAkB,QAAUixC,EAAsBjxC,EAAO2gB,mBAAgB,IAAWswB,OAA3E,EAA0GA,EAAoBC,6BAItM,eAAUhuB,EAAYlqB,UAAU,CAChC,IAAIhgC,EAAS5W,EAAK25D,mBAAmBoK,aAAa9jE,EAAE2R,aAChDgF,IAAW,eAAUA,EAAOlD,cAAgB,eAAUkD,EAAO8iC,iBAC7D15C,EAAK0uF,eACLD,GAAgB,IAIvBA,GAAiBlwB,EAAY3V,WAC9B5oD,EAAK0iF,UAGb9gB,mBAAoB,SAAS3hE,GACzB,IAAID,EAAO3D,KACPoa,EAAazW,EAAK0W,YAClBi9C,EAAoB3zD,EAAK25D,mBACzBo1B,GAA4B,EAChC1yF,KAAKyxF,gCAAiC,EAClCr3E,IAAezW,EAAKgvF,wBACpBhvF,EAAKgvF,uBAAwB,EAC7B,kBAAKhvF,EAAK25D,mBAAmB8e,gBAAgBhiE,IAAaiE,MAAK,WACvD1a,EAAKitF,YACLjtF,EAAKkmF,uBAAsB,GAE3B6I,GAA6B9uF,GAAKA,EAAEgvF,YACpChvF,EAAEgvF,WAAY,GAElBjvF,EAAKgvF,uBAAwB,EAC7B,IAQId,EARAgB,EAAkBlvF,EAAK2uF,iBAC3B3uF,EAAK2uF,kBAAmB,EACpBO,IAAoBlvF,EAAKmvF,yBAA2BjB,EAAmBluF,EAAKmuF,6BAA8BD,GAAoBA,EAAiBj4F,SAC/I,OAAOkK,IAAI,QAASH,EAAKiO,UAAU2gD,MACnC5uD,EAAK0uF,gBAEL1uF,EAAKsuF,YAAYruF,GAAG,MAGxBkd,MAAK,WACLnd,EAAKgvF,uBAAwB,KAE7BhvF,EAAKgvF,wBACLD,GAA4B,EAC5B/uF,EAAKkmF,uBAAsB,IAE/BlmF,EAAK2uF,kBAAoB3uF,EAAK25D,mBAAmBmgB,sBACjD95E,EAAKmvF,uBAAyBx7B,EAAkB6lB,0BAGxD0M,sBAAuB,SAASx/E,GAC5BrK,KAAK4wF,WAAavmF,EAClBrK,KAAK+yF,uBAEThJ,iBAAkB,SAASnmF,GACvB5D,KAAK+wF,kBAAkBv8B,KAAK5wD,IAEhC+sF,kBAAmB,SAAS72E,GACxB9Z,KAAKspF,OAAO90B,KAAK16C,IAErBk5E,UAAW,WACPhzF,KAAK+wF,kBAAkBv8B,KAAK,OAAO9oC,MAAM5sB,MAAM,OAAQoB,aAE3DqxF,kBAAmB,SAASn3E,GACxB,IAAI6xC,EAAYjsD,KAAK4Y,OAAO,oBACxBszC,EAAWlsD,KAAK4Y,OAAO,mBACvBq6E,EAAgBjzF,KAAK4Y,OAAO,kBAC5Bs6E,EAAgBlzF,KAAK4Y,OAAO,kBAC5Bu6E,EAAa,aAAeD,EAC5BE,EAAc,YAAcF,EAC5B5N,EAAW2N,GAAiBG,GAAeD,EAC3CE,GAAoB,EACpBC,GAAoB,EACpB9B,GAAqB,EAczB,OAbAp3E,EAAWozE,mBAAmB2F,QAC1B,IAAWF,GAAiB74E,EAAWkrE,aAAeA,IACtDlrE,EAAWkrE,SAASA,GACpB+N,GAAoB,QAEpB,IAAWnnC,GAAY9xC,EAAW8xC,aAAeA,IACjD9xC,EAAW8xC,SAASA,GACpBonC,GAAoB,QAEpB,IAAWrnC,GAAa7xC,EAAW6xC,cAAgBA,IACnD7xC,EAAW6xC,UAAUA,GACrBulC,GAAqB,MAErB6B,GAAqBC,GAAqB9B,IACnC,CACH6B,kBAAmBA,EACnBC,kBAAmBA,EACnB9B,mBAAoBA,IAKhC+B,6BAA8B,WAC1B,IAAIn5E,EAAapa,KAAK4Y,OAAO,cAC7B,OAAI/Z,MAAMuY,QAAQgD,GACP,CACHgH,MAAO,CACH3iB,KAAM,QACN2F,KAAMgW,EACNtf,IAAKkF,KAAK4Y,OAAO,aAItBwB,GAEXo5E,gBAAiB,WACb,IAAIC,EAAgBzzF,KAAKqa,YACzBra,KAAKC,WACL,IAAIma,EAAapa,KAAKqa,YAGtB,GAFAra,KAAKyxF,gCAAiC,EACtCzxF,KAAKswF,sBAAwB,KACzBl2E,EAAY,CACZ,IAAIi3E,EAAuBrxF,KAAKuxF,kBAAkBn3E,GAClDpa,KAAKmwF,UAAY,OAASkB,QAAwB,IAAWA,OAAuB,EAASA,EAAqBG,mBAClHxxF,KAAK0zF,cAAct5E,QACZq5E,GACPzzF,KAAKiyF,eAGb0B,gBAAiB,WACb,IAAIhwF,EAAO3D,KACPoa,EAAazW,EAAK0W,YAClBpb,EAAS,IAAI,cAWjB,OAVA,kBAAKe,KAAKs9D,mBAAmBokB,SAAQ,IAAOmB,QAAO,WAC3CzoE,EACAA,EAAWqG,OAAOpC,MAAK,WACnB1a,EAAKwsF,WAAY,EACjBlxF,EAAO0hB,QAAQ7hB,MAAMG,EAAQiB,cAC7B4gB,KAAK7hB,EAAO40B,QAEhB50B,EAAO0hB,aAGR1hB,EAAOwiB,WAElBmyE,oBAAqB,SAASrpF,GAC1B,OAAOA,EAAMyJ,MAAM,IAEvB6/E,iBAAkB,WACd,OAAO,GAEXC,cAAe,SAASvpF,EAAOg3C,GAC3B,IAAI59C,EAAO3D,KACP+zF,EAAgBpwF,EAAKkwF,mBACrBhyB,EAAatgB,EAAOsgB,WACpBxE,EAAiB15D,EAAK25D,mBAAmBC,kBAAkB,KAAM,eAAiBsE,GAClFmyB,EAAerwF,EAAKqoF,OACpBiI,EAAkB,WAAapyB,GAAcmyB,EAAap6F,OAAS,EAAIo6F,EAAaA,EAAap6F,OAAS,GAAK,KAC/GijE,EAAY,eAAU,OAASo3B,QAAmB,IAAWA,OAAkB,EAASA,EAAgBp3B,WAAao3B,EAAgBp3B,UAAY,EAAI,EACrJ/mD,EAAU,CACVunD,eAAgBA,EAChBR,UAAWA,GAEX59D,EAAS,GAQb,OAPA,eAAKsL,GAAO,SAAUnJ,EAAOyI,GACrB,eAAUA,KACViM,EAAQ0kD,SAAWp5D,EAAQ2yF,EAC3BlqF,EAAOlG,EAAKuwF,aAAarqF,EAAMiM,GAC/B7W,EAAOgE,KAAK4G,OAGb5K,GAEXi1F,aAAc,SAASrqF,EAAMiM,GAIzB,OAHAjM,EAAO7J,KAAKm0F,kBAAkBtqF,EAAMiM,GACpCjM,EAAO7J,KAAKo0F,iBAAiBvqF,EAAMiM,GACnCjM,EAAKgzD,UAAY/mD,EAAQ+mD,YAClBhzD,GAEXsqF,kBAAmB,SAAS/vF,GACxB,MAAO,CACHuW,QAAS,OACTvW,KAAMA,EACNtJ,IAAKkF,KAAKwrF,MAAMpnF,KAGxBgwF,iBAAkB,SAASC,EAAUv+E,GAEjC,OADAu+E,EAASrtE,OAAShnB,KAAKs0F,mBAAmBD,EAASjwF,KAAM0R,EAAQunD,gBAC1Dg3B,GAEXC,mBAAoB,SAASlwF,EAAMoa,EAAS+1E,GAGxC,IAFA,IACI1yF,EADAmlB,EAAS,GAEJvrB,EAAI,EAAGA,EAAI+iB,EAAQ5kB,OAAQ6B,IAAK,CACrC,IAAI8e,EAASiE,EAAQ/iB,GACrBoG,EAAQ0yF,OAAa,EAAS,KACzBh6E,EAAOsE,UACJtE,EAAO1F,mBACPhT,EAAQ0Y,EAAO1F,mBAAmBzQ,GAC3BmW,EAAOc,YACdxZ,EAAQuC,EAAKmW,EAAOc,aAG5B2L,EAAO/jB,KAAKpB,GAEhB,OAAOmlB,GAEXwtE,aAAc,SAASjzC,GACf,WAAaA,EAAOsgB,WACpB7hE,KAAKy0F,mBAAmBlzC,GACjBvhD,KAAKuK,QAAQ3Q,QAAU2nD,EAAOrI,oBAAsB,YAAcqI,EAAOsgB,WAChF7hE,KAAK00F,kBAAkBnzC,GAChB,YAAcA,EAAOsgB,YAC5B7hE,KAAK20F,iBAAiBpzC,IAG9BozC,iBAAkB,SAASpzC,GACvBvhD,KAAKgsF,OAASzqC,EAAOh3C,MAAMyJ,MAAM,IAErC4gF,eAAgB,SAASrzC,GACrB,IAAIszC,EAAatzC,EAAOszC,WAAW7gF,MAAM,GACrC+/E,EAAgB/zF,KAAK6zF,mBACzBgB,EAAW/yF,MAAK,SAAUC,EAAGC,GACzB,OAAOD,EAAIC,KAEf,IAAK,IAAIvG,EAAI,EAAGA,EAAIo5F,EAAWj7F,OAAQ6B,IAAK,CACxC,IAAIq5F,EAAoBD,EAAWp5F,GAC/B8lD,EAAOwzC,2BACPD,GAAqBf,GAErBe,EAAoB,IACpBD,EAAWxwB,OAAO5oE,EAAG,GACrBA,KAGR,OAAOo5F,GAEXJ,mBAAoB,SAASlzC,GACzB,IAOIsgB,EAPAl+D,EAAO3D,KACPuK,EAAQg3C,EAAOh3C,MACfsqF,EAAalxF,EAAKixF,eAAerzC,GACjCwyC,EAAgBpwF,EAAKkwF,mBACrB36C,EAAqBv1C,EAAKiV,OAAO,sBACjCo8E,GAAa,EACbC,EAAqB,EAEzB1zC,EAAOh3C,MAAQ,GACfg3C,EAAOszC,WAAa,GACpBtzC,EAAO0gB,cAAgB,GACvB1gB,EAAO2gB,YAAc,GACrB,IAAIgzB,EAAa,SAASC,EAAOC,EAAOC,GACpC,IAAIp2F,EAASk2F,GAASC,GAAS,eAAaD,EAAMr6F,IAAKs6F,EAAMt6F,KAI7D,OAHImE,GAAUo2F,IACVp2F,EAASk2F,EAAMx6E,UAAYy6E,EAAMz6E,UAAY,WAAay6E,EAAMz6E,SAAWw6E,EAAMn3B,YAAco3B,EAAMp3B,YAElG/+D,GAEX,eAAK41F,GAAY,SAAUzzF,EAAOo5D,GAC9B,IAAIyH,EAEJ,GADAzH,GAAYy6B,EAAqBlB,EAC7BiB,IAAcx6B,EAAlB,CAGAw6B,EAAYx6B,EACZ,IAAI86B,EAAU3xF,EAAKqoF,OAAOxxB,GACtB+6B,EAAc5xF,EAAKqoF,OAAOxxB,EAAW,GACrCg7B,EAAUjrF,EAAMiwD,GAChBi7B,EAAclrF,EAAMiwD,EAAW,GAC/B66B,EAASH,EAAWI,EAASC,IAAgBL,EAAWM,EAASC,GAKrE,GAJID,IACAA,EAAQh7B,SAAWA,EACnBjZ,EAAOh3C,MAAMtH,KAAKuyF,IAElBF,GAAWE,GAAWN,EAAWI,EAASE,EAASH,GACnDxzB,EAAa,SACbl+D,EAAKqoF,OAAOxxB,GAAYg7B,EACpBF,EAAQ/6C,UAAYi7C,EAAQj7C,QAC5BgH,EAAOh3C,MAAM85D,QAAQ,EAAG,EAAG,CACvB9pB,QAASi7C,EAAQj7C,UAEdrB,IAAuBqI,EAAOm0C,eACrCzzB,EAAgBt+D,EAAKgyF,kBAAkBL,EAASE,EAASh7B,EAAWu5B,SAErE,GAAIyB,IAAYF,GAAWG,GAAeP,EAAWI,EAASG,EAAaJ,GAC9ExzB,EAAa,SACbl+D,EAAKqoF,OAAO3nB,OAAO7J,EAAU,EAAGg7B,GAChCP,SACG,GAAIK,IAAYE,GAAWD,GAAeL,EAAWM,EAASD,EAAaF,GAC9ExzB,EAAa,SACbl+D,EAAKqoF,OAAO3nB,OAAO7J,EAAU,GAC7By6B,IACAD,GAAa,MACV,KAAIQ,EAIP,OAHA3zB,EAAa,SACbl+D,EAAKqoF,OAAOxxB,GAAYg7B,EAI5Bj0C,EAAOszC,WAAW5xF,KAAKu3D,EAAWu5B,GAClCxyC,EAAO2gB,YAAYj/D,KAAK4+D,GACxBtgB,EAAO0gB,cAAch/D,KAAKg/D,QAGlC2zB,eAAgB,SAASC,EAAQC,EAAQC,EAAiBxgF,EAAaygF,GACnE,GAAIj7F,KAAKC,UAAU66F,EAAO7uE,OAAOzR,MAAkBxa,KAAKC,UAAU86F,EAAO9uE,OAAOzR,IAC5E,OAAO,EAGX,SAAS0gF,EAAe/4E,EAAK3H,GACzB,QAAO2H,EAAIg5E,qBAAiB,IAAWh5E,EAAIg5E,eAAe3gF,GAE9D,OAAI0gF,EAAeJ,EAAQtgF,KAAiB0gF,EAAeH,EAAQvgF,IAKvE4gF,yBAA0B,SAASb,EAASE,EAASO,EAAiBC,GAClE,IAAI/zB,EACJ,GAAIqzB,EAAQ36E,UAAY66E,EAAQ76E,QAAS,CACrC,GAAI,UAAY66E,EAAQ76E,SAAW,gBAAkB66E,EAAQ76E,UACzDsnD,EAAgB,GACZ,WAAauzB,EAAQ76E,SACrB,IAAK,IAAIpF,EAAc,EAAGA,EAAc+/E,EAAQtuE,OAAOptB,OAAQ2b,IACvDvV,KAAK41F,eAAeN,EAASE,EAASO,EAAiBxgF,EAAaygF,IACpE/zB,EAAch/D,KAAKsS,GAK/B,UAAYigF,EAAQ76E,SAAW66E,EAAQ5/E,aAAe0/E,EAAQ1/E,YAAc0/E,EAAQ78B,QACpFwJ,EAAgBqzB,EAAQ78B,MAAM38D,IAAI,CAACk/D,EAAM55D,KACrC,IAAIg1F,EACJ,MAAO,iBAAmB,QAAUA,EAAep7B,EAAKzgD,cAAW,IAAW67E,OAAe,EAASA,EAAa33F,MAAQ2C,GAAS,IACrIhD,OAAOgD,GAASA,GAAS,IAGpC,OAAO6gE,GAEX0zB,kBAAmB,SAASL,EAASE,EAASO,EAAiBC,GAC3D,IAAIK,EACAC,EAAuBt2F,KAAKm2F,yBAAyBb,EAASE,EAASO,EAAiBC,GAmB5F,OAlBI,QAAUK,EAAwBC,SAAyB,IAAWD,GAAyBA,EAAsBz8F,QAAUoG,KAAK4Y,OAAO,qBAC3I09E,OAAuB,GAEvBA,IACAhB,EAAQ78B,OAAS68B,EAAQ78B,MAAMv3D,SAAQ,SAAU85D,EAAMzlD,GACnD,IAAIghF,EAAgBD,EAAqBh4F,QAAQiX,IAAgB,GAC5DghF,GAAiBv7B,GAAQA,EAAKsJ,QAC/BtJ,EAAKsJ,OAAOkxB,MAGpBA,EAAQlxB,OAASgxB,EAAQhxB,OACzBkxB,EAAQzxB,MAAQuxB,EAAQvxB,MACxByxB,EAAQ/8B,MAAQ68B,EAAQ78B,MACpBu9B,IACAR,EAAQ7yB,UAAY2yB,EAAQtuE,QAEhCsuE,EAAQhxB,QAAUgxB,EAAQhxB,OAAOkxB,IAE9Bc,GAEXE,cAAe,SAASrB,EAAOC,GAC3B,GAAIr6F,KAAKC,UAAUm6F,EAAMnuE,UAAYjsB,KAAKC,UAAUo6F,EAAMpuE,QACtD,OAAO,EAEX,GAAI,CAAC,WAAY,WAAY,UAAW,aAAapI,KAAK5T,GAASmqF,EAAMnqF,KAAWoqF,EAAMpqF,IACtF,OAAO,EAEX,GAAI,UAAYmqF,EAAMx6E,SAAW,gBAAkBw6E,EAAMx6E,QAAS,CAC9D,IAAI87E,EAAaC,EAAaC,EAAcC,EACxCC,EAAgB1B,EAAMv/E,aAAew/E,EAAMx/E,WAC3CkhF,EAAoB/7F,KAAKC,UAAUm6F,EAAM4B,gBAAkBh8F,KAAKC,UAAUo6F,EAAM2B,cAChFC,GAAqB,QAAUP,EAActB,EAAM/wF,YAAS,IAAWqyF,OAAc,EAASA,EAAYx5E,mBAAqB,QAAUy5E,EAActB,EAAMhxF,YAAS,IAAWsyF,OAAc,EAASA,EAAYz5E,kBAAoB,QAAU05E,EAAexB,EAAM/wF,YAAS,IAAWuyF,OAAe,EAASA,EAAa1O,6BAA+B,QAAU2O,EAAexB,EAAMhxF,YAAS,IAAWwyF,OAAe,EAASA,EAAa3O,0BAC3b,IAAK4O,IAAkBC,IAAsBE,EACzC,OAAO,EAGf,OAAO,GAEXtC,kBAAmB,SAASnzC,GACxB,IAAI01C,EACApC,EAAa,GACb5yB,EAAgB,GAChBC,EAAc,GACd33D,EAAQ,GACR2sF,EAAgB,GAChBlB,EAAe,QAAUiB,EAAuB,OAAS11C,QAAU,IAAWA,OAAS,EAASA,EAAOy0C,oBAAiB,IAAWiB,GAAuBA,EAE9J,SAASE,EAAUj6E,GACf,GAAIA,EACA,OAAOA,EAAIvC,QAAU,IAAM5f,KAAKC,UAAUkiB,EAAIpiB,KAGtD,IAAIs8F,EAAep3F,KAAKgsF,OACpBqL,EAAWD,EAAapjF,QAC5ButC,EAAOh3C,MAAMrJ,SAAQ,SAAU2I,EAAMzI,GACjC,IAAItG,EAAMq8F,EAAUttF,GACpBqtF,EAAcp8F,GAAOsG,EACrByI,EAAK2wD,SAAWp5D,KAEpB,IAAInC,EAAS,gBAAYo4F,EAAU91C,EAAOh3C,MAAO4sF,EAAW,CAAChC,EAAOC,MAC3Dp1F,KAAKw2F,cAAcrB,EAAOC,KAG3BD,EAAM18B,QACN08B,EAAM7wB,QAAU6wB,EAAM7wB,OAAO8wB,GAC7BD,EAAM18B,MAAMv3D,SAAQ,SAAU85D,GACtBA,GAAQA,EAAKsJ,QACbtJ,EAAKsJ,OAAO8wB,GAAO,QAIxB,IAENn2F,GAILA,EAAOiC,QAAQqgD,IACX,OAAQA,EAAO9iD,MACX,IAAK,SACD,IAAI2C,EAAQmgD,EAAOngD,MACfo0F,EAAUj0C,EAAOn9C,KACjBkxF,EAAU/zC,EAAO+zC,QACjBgB,EAAuBt2F,KAAK21F,kBAAkBL,EAASE,EAASp0F,EAAO40F,GAC3EnB,EAAW5xF,KAAK7B,GAChB8gE,EAAYj/D,KAAK,UACjBsH,EAAMtH,KAAKuyF,GACX4B,EAAah2F,GAASo0F,EACtBvzB,EAAch/D,KAAKqzF,GACnB,MACJ,IAAK,SACDzB,EAAW5xF,KAAKs+C,EAAOngD,OACvB8gE,EAAYj/D,KAAK,UACjBsH,EAAMtH,KAAKs+C,EAAOn9C,MAClB69D,EAAch/D,UAAK,GACnBm0F,EAAa/yB,OAAO9iB,EAAOngD,MAAO,EAAGmgD,EAAOn9C,MAC5C,MACJ,IAAK,SACDywF,EAAW5xF,KAAKs+C,EAAOngD,OACvB8gE,EAAYj/D,KAAK,UACjBm0F,EAAa/yB,OAAO9iB,EAAOngD,MAAO,GAClCmJ,EAAMtH,KAAKs+C,EAAO+zC,SAClBrzB,EAAch/D,UAAK,MAG/Bs+C,EAAOrI,oBAAqB,EAC5BqI,EAAOsgB,WAAa,SACpBtgB,EAAOszC,WAAaA,EACpBtzC,EAAO0gB,cAAgBA,EACvB1gB,EAAO2gB,YAAcA,EACrB3gB,EAAOh3C,MAAQA,EACX8sF,EAASz9F,SACT2nD,EAAOy0C,cAAe,GAE1Bh2F,KAAKs3F,mBAAmB98B,IACpB,IAAI+8B,EAAoBv3F,KAAKw3F,iBAAmB,EAC5CC,EAAiBz3F,KAAK03F,oBACtBpC,EAAU+B,EAAS78B,EAAW+8B,GAC9Bz8F,EAAMq8F,EAAU7B,GAChBqC,EAAqBT,EAAcp8F,GACvC,OAAO68F,GAAsB,EAAIA,EAAqBF,EAAiBj9B,EAAW,KA9ClFx6D,KAAK20F,iBAAiBpzC,IAiD9B+1C,mBAAoB,OACpBM,mBAAoB,SAASrtF,GACzB,OAAOA,GAEXstF,iBAAkB,SAASt2C,GACvB,IAAIh3C,EACA6P,EAAapa,KAAKqa,YAClBwnD,EAAatgB,EAAOsgB,YAAc,UAEtC,GADAtgB,EAAOsgB,WAAaA,EAChBznD,EAAY,CACZ,IAAI09E,EAAuB93F,KAAKswF,sBAC5B/uC,EAAOw2C,wBAA0BD,EACjCvtF,EAAQutF,GAERvtF,EAAQg3C,EAAOh3C,OAAS6P,EAAW7P,QACnCA,EAAQvK,KAAK4zF,oBAAoBrpF,GACjCA,EAAQvK,KAAK8zF,cAAcvpF,EAAOg3C,GAClCvhD,KAAKswF,sBAAwB/lF,GAEjCA,EAAQvK,KAAK43F,mBAAmBrtF,EAAOg3C,GACvCA,EAAOh3C,MAAQA,EACf,IAAI8sF,EAAWr3F,KAAKgsF,OAAOpyF,SAAW2Q,EAAM3Q,QAAUoG,KAAKgsF,OAC3DhsF,KAAKw0F,aAAajzC,GAClB,IAAIwyC,EAAgB/zF,KAAK6zF,mBACzB,eAAK7zF,KAAKgsF,OAAQ,CAAC5qF,EAAOyI,KACtBA,EAAK2wD,SAAWp5D,EAAQ2yF,EACpBsD,IACAxtF,EAAK4uD,MAAQ4+B,EAASj2F,GAAOq3D,OAAS,IAE1C,IAAI+8B,EAAUjrF,EAAMnJ,GAChBo0F,IACA3rF,EAAKmuF,UAAYxC,EAAQwC,aAGjCh4F,KAAKw3F,gBAAkBx3F,KAAK03F,yBAE5B13F,KAAKgsF,OAAS,IAGtB7B,gBAAiB,SAASvmF,GACtB,IAAIm+D,EAAO/hE,KAAKi4F,iBACZ79E,EAAapa,KAAKoa,aAClBA,GACAxW,EAAEkW,QAAQ5Y,SAAQ,SAAUqgD,GACxB,GAAI,WAAaA,EAAO9iD,MAAQ8iD,EAAOngD,OAAS,EAAG,CAE/C,IADA,IAAIy7D,EAAY,EACPphE,EAAI,EAAGA,EAAI8lD,EAAOngD,MAAO3F,IAAK,CACnC,IAAIyhB,EAAM6kD,EAAKtmE,IACXyhB,GAAQ,SAAWA,EAAIvC,SAAW,UAAYuC,EAAIvC,SAClDkiD,IAGRtb,EAAOngD,MAAQy7D,OAK/Bo1B,YAAa,SAAS1wC,EAAQ22C,GAGtB,IAAIC,EADR,GADA52C,EAASA,GAAU,QACf,IAAWvhD,KAAK6wF,oBAEhBtvC,EAAOrI,mBAAqB,QAAUi/C,EAAwB52C,EAAOrI,0BAAuB,IAAWi/C,EAAwBA,EAAwBn4F,KAAK6wF,oBAC5JtvC,EAAO62C,qBAAuB72C,EAAO62C,sBAAwBp4F,KAAKq4F,2BAC/D,GAAI92C,EAAOznC,QACdynC,EAAOrI,mBAAqBl5C,KAAK4Y,OAAO,2BACrC,GAAIs/E,EAAe,CACtB,IAAI9R,EAAiBpmF,KAAKoa,aAAagsE,iBACvC7kC,EAAOrI,mBAAqBktC,IAAmBA,EAAe1wC,WAAa0wC,EAAe75B,WAAavsD,KAAK4Y,OAAO,sBACnH2oC,EAAO22C,eAAgB,EACnB9R,IAAmBA,EAAeC,QAAUD,EAAeptC,QAAUotC,EAAevX,kBACpFttB,EAAO62C,sBAAuB,IAGlCp4F,KAAKkwD,kBAAqB3O,EAAOhB,QAIrCvgD,KAAK63F,iBAAiBt2C,GAClBA,EAAOhB,QAGXvgD,KAAKs4F,aAAa/2C,IAPdvhD,KAAK8wF,SAAS7tF,KAAKs+C,IAS3BstC,sBAAuB,WACnB,IAAIz0E,EAAapa,KAAKoa,aACtB,OAAOA,GAAcA,EAAWy0E,yBAA2B,IAE/DyJ,aAAc,SAAS/2C,GACfvhD,KAAKuwF,yBACLhvC,EAAO6kC,eAAiBpmF,KAAKuwF,uBAC7BvwF,KAAKuwF,uBAAyB,MAElC,eAAY,KACRvwF,KAAKslE,QAAQ9Q,KAAKjT,MAG1Bl3C,UAAW,WACP,OAAOrK,KAAK4wF,YAAc5wF,KAAK4uF,kBAEnCmE,oBAAqB,WACjB/yF,KAAKkpF,eAAe10B,KAAKx0D,KAAKqK,YAAarK,KAAKu4F,eAEpDzG,2BAA4B,WACxB,OAAO,MAEXO,aAAc,WACV,IAAIj4E,EAAapa,KAAKqa,YACtB,GAAID,EAGA,OAFAA,EAAW6xC,UAAU,GACrBjsD,KAAKw4F,mBAAoB,EAClBx4F,KAAKqmF,SAAShoE,KAAK,KAClBre,KAAKw4F,mBACLx4F,KAAKowF,YAAY57B,UAKjCikC,oBAAqB,WACjBz4F,KAAKw4F,mBAAoB,GAE7Bp6F,OAAQ,SAASs6F,GACb,IAAIt+E,EAAapa,KAAKqa,YAClBjc,EAASgc,GAAcA,EAAWhc,SACtC,GAAI,IAAM8B,UAAUtG,OAChB,OAAOwE,EAEXs6F,EAAax4F,UAAUtG,OAAS,EAAIiF,MAAM6tB,UAAU1Y,MAAMoC,KAAKlW,UAAW,GAAKw4F,EAC3E,OAAczhF,sBAAsB7Y,EAAQs6F,KAG5Ct+E,GACAA,EAAWhc,OAAOs6F,GAEtB14F,KAAKqyF,iBAET1rC,YAAa,SAASgyC,GAClB,IAAIh1F,EAAO3D,KACPs3D,EAAoB3zD,EAAK25D,mBACzBs7B,EAAoB,SAAS39C,GAE7B,IADA,IAAI2oC,EAActsB,EAAkBssB,cAC3BxiF,EAAQ,EAAGA,EAAQwiF,EAAaxiF,IACrCk2D,EAAkBoQ,aAAatmE,EAAO65C,OAAY,IAI1D,GADAt3C,EAAKiO,UAAU++C,cACXzwD,UAAUtG,OAAS,EACnB,OAAQ++F,GACJ,IAAK,aACDh1F,EAAKvF,OAAO,MACZ,MACJ,IAAK,SACDuF,EAAKk1F,aAAa,IAClB,MACJ,IAAK,SACDD,EAAkB,gBAClB,MACJ,IAAK,MACDA,EAAkB,oBAG1Bj1F,EAAKvF,OAAO,MACZuF,EAAKk1F,aAAa,IAClBD,EAAkB,eAClBA,EAAkB,uBAClBA,EAAkB,gBAEtBj1F,EAAKiO,UAAUg/C,aAEnBkoC,uBAAwB,WACpB,IAAIn1F,EAAO3D,KACX2D,EAAK2hE,QAAQx1D,KAAI,SAAUipF,IACvBp1F,EAAK2hE,QAAQ3sD,OAAOogF,GACpBp1F,EAAKq1F,kBAAkBxkC,WAG/BykC,sBAAuB,OACvBC,6BAA8B,SAAS9+E,EAAYgG,GAC/C,IAAI+4E,EAA4Bn5F,KAAKi5F,wBACjCG,EAAoBD,EAA0BtmE,OAAO7yB,KAAK4R,WAE9D,OADAwnF,EAAkB3oC,KAAKr2C,EAAYgG,GAC5Bg5E,GAEX5gF,aAAc,SAAS4I,GAEnB,OADAA,EAAQA,GAASphB,KAAKohB,QACfA,aAAiB,SAE5Bi4E,cAAe,SAASj4E,GAEpB,OADAA,EAAQA,GAASphB,KAAKohB,QACfA,aAAiB,eAE5Bk4E,yBAA0B,SAASl/E,GAC/B,IAAIgG,EAAmBpgB,KAAK4Y,OAAO,oBAC/BwI,EAAQhH,EAAWgH,QACnBm4E,EAA0B,CAC1BhtC,WAAW,EACXvS,SAAS,EACThB,QAAQ,EACRtD,UAAU,EACVwE,SAAS,GAeb,OAbI95B,GAAoBA,EAAiBC,cACrCD,EAAmB,OAAA3lB,EAAA,WAAO,GAAI8+F,EAAyBn5E,IAEvD,SAAWA,IACXA,EAAmBpgB,KAAKwY,aAAa4I,IAAUphB,KAAKq5F,cAAcj4E,GAAS,GAAK,CAC5EmrC,WAAW,EACXvS,SAAS,EACThB,QAAQ,KAGZ,IAAS54B,IACTA,EAAmBm5E,GAEhBv5F,KAAKk5F,6BAA6B9+E,EAAYgG,IAEzDszE,cAAe,SAASt5E,GACpB,IAAIq5E,EAAgBzzF,KAAKqa,aACpBD,GAAcq5E,IACfA,EAAc+F,YACd/F,EAAcnuB,QAAQ3sD,OAAO3Y,KAAKupF,qBAClCkK,EAAcvK,eAAevwE,OAAO3Y,KAAK4pF,wBACzC6J,EAActK,UAAUxwE,OAAO3Y,KAAK8pF,mBACpC2J,EAAcrK,0BAA0BzwE,OAAO3Y,KAAKwpF,mCACpDiK,EAAcpK,SAAS1wE,OAAO3Y,KAAKkqF,kBACnCuJ,EAAcnK,OAAO3wE,OAAO3Y,KAAK0wF,oBACjC+C,EAActhC,QAAQnyD,KAAKy5F,sBAE3Br/E,IACAA,EAAapa,KAAKs5F,yBAAyBl/E,IAE/Cpa,KAAKqa,YAAcD,EACfA,IACApa,KAAK84F,yBACL94F,KAAK4wF,YAAcx2E,EAAWk0D,WAC9BtuE,KAAKsyF,kBAAmB,EACxBtyF,KAAK8yF,uBAAyB9yF,KAAKs9D,mBAAmB6f,wBACtD/iE,EAAWkrD,QAAQx1D,IAAI9P,KAAKupF,qBAC5BnvE,EAAW8uE,eAAep5E,IAAI9P,KAAK4pF,wBACnCxvE,EAAW+uE,UAAUr5E,IAAI9P,KAAK8pF,mBAC9B1vE,EAAWgvE,0BAA0Bt5E,IAAI9P,KAAKwpF,mCAC9CpvE,EAAWivE,SAASv5E,IAAI9P,KAAKkqF,kBAC7B9vE,EAAWkvE,OAAOx5E,IAAI9P,KAAK0wF,sBAGnCnmF,MAAO,WACH,OAAOvK,KAAKgsF,QAEhB9zE,QAAS,WACL,OAAQlY,KAAKuK,QAAQ3Q,QAEzB60F,UAAW,WACP,OAAOzuF,KAAKqa,YAAcra,KAAKqa,YAAYo0E,YAAc,GAE7Dr0E,WAAY,WACR,OAAOpa,KAAKqa,aAEhB+G,MAAO,WACH,IAAIhH,EAAapa,KAAKqa,YACtB,OAAOD,GAAcA,EAAWgH,SAEpCs4E,QAAS,SAASt1F,GACd,IAAIT,EAAO3D,KACPkR,EAAI,IAAI,cACRkJ,EAAazW,EAAK0W,YACtB,GAAID,EACA,GAAIhW,EAAM,CACN,IAAI0R,EAAU,CACV1R,KAAMA,EACNwoF,iBAAiB,EACjBrrE,iBAAkB,CACdguE,cAAc,GAElB7uE,YAAa,CACTtiB,OAAQuF,EAAKs/E,oBACb1rE,MAAO6C,EAAW7C,QAClBzV,KAAMsY,EAAWtY,SAGzBsY,EAAWuvE,kBAAkB7zE,GAC7B,kBAAKA,EAAQ1R,MAAMia,MAAK,SAAUja,GAC9BA,EAAOT,EAAKiwF,oBAAoBxvF,GAChC8M,EAAEyP,QAAQhd,EAAKmwF,cAAc1vF,EAAM,CAC/By9D,WAAY,eACZ/rD,EAAQq1B,OAASr1B,EAAQq1B,MAAM+O,YACnCp5B,KAAK5P,EAAE2iB,aACR,GAAKzZ,EAAW/P,YAanB6G,EAAE2iB,aAb8B,CAChC,IAAInT,EAAc,OAAAjmB,EAAA,WAAO,GAAI2f,EAAWsG,cAAe,CACnD6uE,cAAc,EACd/B,mBAAmB,IAEvBpzE,EAAWqG,KAAKC,GAAarC,MAAK,SAAU9T,EAAO4gC,GAC/C5gC,EAAQ5G,EAAKiwF,oBAAoBrpF,GACjCA,EAAQ5G,EAAKmwF,cAAcvpF,EAAO,CAC9Bs3D,WAAY,eAEhB3wD,EAAEyP,QAAQpW,EAAO4gC,GAASA,EAAM+O,YAChCp5B,KAAK5P,EAAE2iB,aAKf3iB,EAAEyP,QAAQ,IAEd,OAAOzP,GAEXyoF,iBAAkB,SAASn/B,EAAUo/B,GACjC,IAAI/vF,EAAO7J,KAAKuK,MAAMqvF,GAAUp/B,GAChC,GAAI3wD,EACA,OAAOA,EAAK/O,KAGpB++F,iBAAkB,SAAS/+F,EAAK8+F,GAC5B,OAAO,OAActgF,cAAcxe,EAAKkF,KAAKuK,MAAMqvF,KAEvDpO,MAAO,SAASpnF,GACZ,IAAIgd,EAAQphB,KAAKohB,QACjB,GAAIA,EACA,OAAOA,EAAMoqE,MAAMpnF,IAG3B01F,MAAO,SAASh/F,GACZ,IAEImE,EAFAmiB,EAAQphB,KAAKohB,QACbo5C,EAAWx6D,KAAK65F,iBAAiB/+F,GAErC,GAAKsmB,EAML,OAHIo5C,GAAY,IACZv7D,GAAS,IAAK,eAAU0hB,QAAQ3gB,KAAKuK,QAAQiwD,GAAUp2D,OAEpDnF,GAAUmiB,EAAM04E,MAAMh/F,IAEjCA,IAAK,WACD,IAAIsmB,EAAQphB,KAAKohB,QACjB,GAAIA,EACA,OAAOA,EAAMtmB,OAGrB48F,kBAAmB,WACf,OAAO,GAEXqC,cAAe,SAASC,GACpB,IAAIr2F,EAAO3D,KACPf,EAAS,IAAI,cACb2iF,EAAY,GACZx9E,EAAO,GASX,OARA,eAAK41F,GAAS,SAAU54F,EAAOtG,GAC3B8mF,EAAU3+E,KAAKU,EAAKm2F,MAAMh/F,GAAKujB,MAAK,SAAU47E,GAC1C71F,EAAKhD,GAAS64F,SAGtB,UAAKn7F,MAAM,OAAG8iF,GAAWiB,QAAO,WAC5B5jF,EAAO0hB,QAAQvc,MAEZnF,GAEXgtD,UAAW,SAASpqD,GAChB,OAAOmuF,EAAahwF,KAAM,YAAa6B,IAE3CqqD,SAAU,SAASrqD,GACf,OAAOmuF,EAAahwF,KAAM,WAAY6B,IAE1Cq4F,mBAAoB,SAASC,GACzBn6F,KAAK4uF,kBAAmB,EACxB5uF,KAAKu4F,aAAe4B,GAAe,GACnCn6F,KAAK+yF,uBAETqH,iBAAkB,WACdp6F,KAAK4uF,kBAAmB,EACxB5uF,KAAKu4F,kBAAe,EACpBv4F,KAAK+yF,uBAETrR,QAAS,SAAS5rE,IACV,IAASA,EACTA,EAAU,CACNuwE,QAAQ,EACRgU,aAAa,GAETvkF,IACRA,EAAU,CACNgF,QAAQ,EACR2+B,WAAW,EACX4sC,QAAQ,IAGhB,IAAI1iF,EAAO3D,KACPoa,EAAazW,EAAK+tF,gBAClB2I,EAAcvkF,EAAQukF,YACtBnpF,EAAI,IAAI,cACRopF,EAAsB,WACtB32F,EAAKktF,sBAAwBwJ,GAgBjC,OAdA,mBAAMvkF,EAAQgF,QAAUnX,EAAK25D,mBAAmBokB,WAAWmB,QAAO,WAC1D/sE,EAAQ2K,MAAQ3K,EAAQuwE,QACxBjsE,GAAcA,EAAWtQ,GAAG,sBAAuBwwF,GACnD,kBAAK32F,EAAK0iF,OAAOvwE,EAAQuwE,OAAQgU,IAAcxX,QAAO,WAClDzoE,GAAcA,EAAW62C,IAAI,sBAAuBqpC,GACpD32F,EAAKktF,yBAAsB,KAC3BxyE,KAAKnN,EAAEyP,SAASG,KAAK5P,EAAE2iB,UAE3BlwB,EAAKsuF,YAAY,CACb/4C,mBAAoBpjC,EAAQukF,cAEhCnpF,EAAEyP,cAGHzP,EAAEuQ,WAEbw2E,eAAgB,WACZ,OAAOj4F,KAAKuK,SAEhBgwF,mBAAoB,WAChBv6F,KAAK0zF,cAAc,OAEvBvhC,QAAS,WACLnyD,KAAKu6F,qBACLv6F,KAAKC,SAASnB,MAAMkB,KAAME,YAE9Bs6F,YAAa,SAASC,EAAYJ,GAC9BI,EAAa57F,MAAMuY,QAAQqjF,GAAcA,EAAa,CAACA,IACnDA,EAAW7gG,OAAS,GAAK,eAAU6gG,EAAW,MAC9Cz6F,KAAKiyF,YAAY,CACbpwB,WAAY,SACZgzB,WAAY4F,EACZ/E,cAAe2E,KAI3BK,2BAA4B,SAASle,GACjC,OAAOx8E,KAAKkwF,8BAAgC,qBAAuB1T,GAAY,oBAAsBA,IAEzGgB,aAAc,WACV,MAAO,CACHmd,WAAY36F,KAAK4Y,OAAO,oBACxBqzC,UAAWjsD,KAAKisD,YAChBC,SAAUlsD,KAAKksD,aAGvByjC,mBAAoB,WAChB,OAAO3vF,KAAKqa,aAAera,KAAKqa,YAAYs1E,sBAEhDiL,iBAAkB,WACd,IAAI3uC,EAAYjsD,KAAKisD,YACjBwiC,EAAYzuF,KAAKyuF,YACrB,OAAOxiC,IAAcwiC,EAAY,IAWzC,OARA,OAAcx0E,YAAYo2E,EAAS,QACnC,OAAcp2E,YAAYo2E,EAAS,UACnC,OAAcp2E,YAAYo2E,EAAS,QACnC,OAAcp2E,YAAYo2E,EAAS,aAAc,GACjD,OAAcp2E,YAAYo2E,EAAS,kBAAmB,GACtD,OAAcp2E,YAAYo2E,EAAS,oBAAoB,GACvD,OAAcp2E,YAAYo2E,EAAS,YAAY,GAC/C,OAAcp2E,YAAYo2E,EAAS,aAAc,GAC1CA,EAnpC2D,MCxCnEwK,GAAiBhL,GAAqBr6B,YAAYpxD,KAAK2rD,QAAQ,CACtEkpC,sBAAuB,WACnB,OAAO,IAEX1F,6BAA8B,WAC1B,IAAIn5E,EAAapa,KAAK4Y,OAAO,cAI7B,OAHIwB,IAAevb,MAAMuY,QAAQgD,IAAepa,KAAK4Y,OAAO,YACxD,OAAO9U,IAAI,SAER9D,KAAKC,cAGpB,EAASm2D,eAAe,OAAQ,CAC5Bz4D,eAAgBkyF,GAAqBlyF,eACrC63D,YAAa,CACTpxD,KAAMy2F,MCjBd,IAAIC,GAAa,UACbC,GAAkB,eAClBC,GAAe,aACfC,GAAiB,eACjBC,GAAmB,gBACnBC,GAAwB,qBACxBC,GAAuB,SACZ,IACX1kC,kBAAmB,SAAS5gD,GACxB,IAAIulF,EACA/tB,EACA6T,EAAcnhF,KAAK4Y,OAAO,gBAC1Bo+C,EAAclhD,EAAQkhD,YACtBz8C,EAASzE,EAAQyE,OACjB28C,EAAuBl3D,KAAK43D,uBAAuBZ,GACvD,GAAI,SAAWlhD,EAAQlU,KAAM,CACzBo1D,EAAYl/C,KAAK,IAAMgjF,IAAYniF,UAClCu+C,EAAqBc,WAAWp+D,QAAUs9D,EAAqBv+C,SAChE,IAAI2iF,EAAmB,SAAWna,GAAe5mE,EAAOsiC,aACxD,IAAK,eAAUtiC,EAAOmjC,cAAgB49C,GAAoB,eAAU/gF,EAAO+jC,YAAa,CACpF+8C,EAAgB,QAAU9gF,EAAO+jC,UAAY,YAAc,aAC3DgvB,EAAiBttE,KAAKC,SAAS6V,GAASy+C,YAAYymC,GAAc,QAAUzgF,EAAO+jC,WAAWiW,YAAY0mC,GAAgB,SAAW1gF,EAAO+jC,WAC5I,IAAIi9C,EAAwBv7F,KAAK2xD,iBAAmB3xD,KAAK2xD,cAAc,WAAW+V,aAAa,eAC3F6zB,GAAyBv7F,KAAK4Y,OAAO,4BAA8B2B,EAAO8jC,WAAa,IACvF,eAAE,UAAUlmC,SAASgjF,IAAuB5+F,KAAKge,EAAO8jC,UAAY,GAAGjmC,SAASk1D,GAChFA,EAAen1D,SAAS+iF,KAExBI,GACAxlF,EAAQkhD,YAAY7+C,SAASnY,KAAK4X,gBAAgBwjF,KAQ1D,OALK,eAAU7gF,EAAO+jC,WAGlBt+C,KAAKsd,QAAQ,OAAQ+9E,EAAerkC,GAFpCh3D,KAAKsd,QAAQ,OAAQ,OAAQ05C,GAI1BsW,EAEP,OAAOttE,KAAKC,SAAS6V,IAG7BuhD,uBAAwB,SAASz1D,GAC7B,MAAI,SAAWA,EACJk5F,GACA,cAAgBl5F,EAChBu5F,GAEJn7F,KAAKC,SAAS2B,IAEzB81D,iBAAkB,SAAS5hD,GACvB,IAAIyE,EAASzE,EAAQyE,OACjB9E,EAAaK,EAAQkD,UACrBi/C,EAAaniD,EAAQ2hD,UACzB,GAAI,SAAW3hD,EAAQlU,KAAM,CACzB,IAAIya,EAAarc,KAAK4Y,OAAO,cAI7B,GAHK,eAAU2B,EAAO+jC,YAClB2Z,GAAcA,EAAW9/C,SAAS4iF,IAElCtlF,EAAWuiD,WAAWp+D,UAAYyiB,GAAc,SAAWvG,EAAQ8gD,iBAAmBv6C,GAAc,UAAYvG,EAAQ8gD,iBAExH,YADAnhD,EAAW+lF,QAAQvjC,GAI3Bj4D,KAAKC,SAAS6V,IAElByiD,iBAAkB,SAASV,EAAOt9C,EAAQ49C,GACtC,GAAI,SAAWA,IAAiB,eAAU59C,EAAOmjC,YAGjD,OAAO19C,KAAKC,SAASnB,MAAMkB,KAAME,YAErC43D,sBAAuB,SAASD,EAAOsX,GACnC,IAAIlC,EAAqBjtE,KAAKC,SAAS43D,GACvC,OAAOsX,EAAYlC,EAAqBA,GAAsBA,EAAmBrM,IAAI,IAAMm6B,MC5D/FU,GAAgC,8BAChCC,GAAmC,OAAAjhG,EAAA,WAAO,GAAI,GAAc,CAC5D,WAAWyiB,GACP,IAAIkgD,EAAOp9D,KAAKC,SAASid,GAMzB,MALI,WAAaA,EAAIvC,SACjB,OAAa7Q,GAAGszD,EAAM,gBAAa,OAAgBq+B,IAAgC,KAAMz7F,KAAKmxD,aAAavtD,IACvG5D,KAAKquE,qBAAqBzqE,EAAEouD,MAAOoL,MAGpCA,GAEXiR,qBAAsB,SAASrc,EAAOoL,GAClC,GAAI,eAAEpL,EAAMqI,eAAej7C,SAAS1hB,IAAI,KAAO0/D,EAAK1/D,IAAI,GAAxD,CAGA,IAAIiG,EAAO3D,KACPuZ,EAAU,KACVoiF,EAAwB,eAAE3pC,EAAMqI,eAChCG,EAAWmhC,EAAsBv8E,SAAShe,QAC1CmU,GAAe,EACnB,GAAGvB,MAAMoC,KAAKzS,EAAKmjE,gBAAgBtM,IAAW57C,KAAK,CAAC8vD,EAActtE,KAC9D,GAAIstE,IAAiBitB,EAAsBj+F,IAAI,GAE3C,OADA6X,EAAcnU,GACP,IAGf,IAAIi8D,EAAiB15D,EAAK25D,mBAAmBC,kBAAkB/C,GAC3DjgD,EAAS8iD,EAAe9nD,GACxBqmF,EAAoBj4F,EAAKguD,cAAc,WACvCkqC,EAAcl4F,EAAKiV,OAAO,gBAC1BkjF,EAAgBF,GAAqBA,EAAkB59B,cAAgB,UAAY69B,GAAe,SAAWA,IAC7GC,GAAkBn4F,EAAKyrE,mBAAmB,eAAEpd,EAAM97C,YAGlDqE,GAAW,eAAUA,EAAOmjC,aAAgBnjC,EAAOsE,UAC/CmzC,EAAMwb,SACNj0D,EAAU,QACH,gBAAoBy4C,KAC3Bz4C,EAAU,QAEdmmB,WAAW,KACP/7B,EAAK25D,mBAAmBsT,gBAAgBr2D,EAAOnZ,MAAOmY,SAIlE,mBAAmBs+C,EAAO/hD,GACtB,IAAIyE,EAASzE,EAAQyE,OAChBA,EAAOsE,SAAW,WAAa/I,EAAQ6E,SACxC3a,KAAK02D,kBAAkB,CACnB90D,KAAM,OACNo1D,YAAaa,EACbt9C,OAAQA,EACRs/B,gBAAiB75C,KAAK4Y,OAAO,qBAGrC5Y,KAAKC,SAASnB,MAAMkB,KAAME,YAE9B,qBAAqB0D,GACjB,IAAIs+D,EAAct+D,EAAEs+D,YAChB,IAAMA,EAAYtoE,QAAUsoE,EAAYloB,QACxCh6C,KAAKk4D,kBAAkB,QAG3Bl4D,KAAKC,SAAS2D,IAElB,cAAcyrC,GACV,OAAQA,EAAKztC,MACT,IAAK,UACD5B,KAAKszD,cACLjkB,EAAK+hB,SAAU,EACf,MACJ,QACIpxD,KAAKC,SAASovC,OAI1B0sD,GAA6B,OAAAthG,EAAA,WAAO,GAAI,GAAc,CACtD,sBAAsBuhG,EAAcxtC,GAChC,IAAI7qD,EAAO3D,KACPi8F,EAAQt4F,EAAK1D,YAAYC,WAc7B,OAbA,OAAa4J,GAAGmyF,EAAO,gBAAa,OAAgB,yBAA0Bt4F,EAAKwtD,aAAa,KAC5FxtD,EAAKu4F,wBAAwB1tC,EAAYptD,UAE7CuC,EAAK+yD,kBAAkB,CACnB90D,KAAM,OACNo1D,YAAailC,EACb1hF,OAAQ,CACJnP,UAAWzH,EAAKiV,OAAO,cAAgB,QAAU,OACjDikC,aAAc2R,EAAY3R,aAC1ByB,UAAW,SAAWkQ,EAAYlQ,UAAY,OAAS,OAE3DzE,iBAAiB,IAEdoiD,GAEX,wBAAwBE,GACpBz8D,WAAW,IAAM1/B,KAAK2xD,cAAc,WAAWif,gBAAgBurB,KAEnE,cAAc9sD,GACV,OAAQA,EAAKztC,MACT,IAAK,UACD5B,KAAKszD,cACLjkB,EAAK+hB,SAAU,EACf,MACJ,QACIpxD,KAAKC,SAASovC,OAInB+sD,GAAgB,CACvBz+F,eAAgB,KAAM,CAClBq8C,QAAS,CACL1N,KAAM,SACNmiB,cAAe,OAAoBp1D,OAAO,mCAC1Cs1D,eAAgB,OAAoBt1D,OAAO,oCAC3Cq1D,UAAW,OAAoBr1D,OAAO,+BACtCu1D,iBAAiB,KAGzBgH,UAAW,CACPF,MAAO,CACHkX,kBAAmB8uB,GACnBW,YAAaN,MCvIzB,EAAS3lC,eAAe,UAAWgmC,I,2CC8C/BE,GAAkB,WAClB,GAAgB,UAChB,GAAe,SACf,GAAkB,eAClB,GAAmB,gBACnBC,GAAiB,cACjBC,GAAmB,mBACnBC,GAAkB,eAClB,GAAqB,kBACrBC,GAAwB,aACxBC,GAAkB,qBAClBC,GAAc,WACdC,GAA+B,yBAC/BC,GAAyB,IAE7B,SAASC,GAA6BC,GAClC,OAAOA,EAAaxrF,KAAKyrF,MAAMD,EAAW1+B,cAAgB0+B,EAAWz+B,eAAiB,EAEnF,IAAI2+B,GAAa,CACpBv/F,eAAgB,WACZ,MAAO,CACHm4C,mBAAmB,EACnBwD,UAAW,CACPwU,UAAW,QAEf7X,UAAW,CACPp9B,QAAS,OACTtc,KAAM,OAAoBlD,OAAO,WACjCgS,MAAO,IACPwR,OAAQ,GACR4uC,eAAe,EACfD,aAAc,GACdE,UAAU,GAEdjX,gBAAiB,KACjBT,iBAAiB,EACjBmC,WAAY,OAAoB98C,OAAO,yBACvCmhD,iBAAiB,EACjBX,iBAAiB,EACjBC,cAAc,EACdX,uBAAuB,EACvBzF,oBAAoB,EACpB4G,sBAAsB,IAG9Bob,MAAO,CACHt4C,SAAUu+C,GAAY5L,QAAQ,WAC1B,IAAIotC,EAAsB,SAAS1nF,EAAYK,GAC3C,IAAIsnF,EAAkB,gBAAQtnF,EAAQvZ,OAAS,SAAWuZ,EAAQ6E,QAC9Dpe,EAAOuZ,EAAQvZ,KACfyc,EAAYvD,EAAW/X,IAAI,GAC3B0/F,EACA,OAAc5nF,aAAaC,GACpBK,EAAQyE,OAAO2iC,WACtBlkC,EAAUtD,YAAcnZ,EAExByc,EAAUqkF,UAAY9gG,GAG9B,MAAO,CACHkxE,oBAAqB,SAASlzD,GAC1B,OAAQA,EAAOsE,SACX,IAAK,QACD,OAAO,SAAS7F,GACZA,EAAU8xC,KAAK,WAEvB,QACI,OAAOqyC,IAGnBG,yBAA0B,SAAS/iF,GAC/B,IAAIhE,EAAevW,KAAK4Y,OAAO,iBAC/B,OAAO,SAASnD,EAAYK,GACxB,IAAI1R,EAAO0R,EAAQ1R,KACf7H,EAAOuZ,EAAQyE,OAAOrP,QAAU,KAAO4K,EAAQvZ,KAC/Cyc,EAAYvD,EAAW/X,IAAI,GAC3BoY,EAAQmF,cAAgBnF,EAAQmF,aAAarhB,SAC7C2C,GAAQ,IAAM,OAAcye,uBAAuBlF,EAAQmF,aAAc1E,IAEzEnS,IACI0R,EAAQ8zC,uBAAyB9zC,EAAQ+zC,sBACzCttD,GAAQ,KAAOuZ,EAAQ8zC,sBAAwB,KAAO9zC,EAAQ+zC,sBAAwB,IAC/E/zC,EAAQ+zC,sBACfttD,GAAQ,KAAOuZ,EAAQ+zC,sBAAwB,IACxC/zC,EAAQ8zC,wBACfrtD,GAAQ,KAAOuZ,EAAQ8zC,sBAAwB,MAGvDn0C,EAAW0C,SAAS,IAChBoC,EAAO2iC,WACPlkC,EAAUtD,YAAcnZ,EAExByc,EAAUqkF,UAAY9gG,IAIlCghG,QAAS,aACT35B,iBAAkB,SAAS9tD,GACvB,IACIimC,EADAxhC,EAASzE,EAAQyE,OAerB,OAPIwhC,EANA,UAAYjmC,EAAQ6E,UAAW,eAAUJ,EAAOmjC,aAAgBnjC,EAAO6jC,iBAAoB7jC,EAAOsE,SAK1F,SAAW/I,EAAQ6E,SAAWJ,EAAOsE,UAAYtE,EAAOpP,aACrDoP,EAAOpP,aAEP,CACP6R,gCAAgC,EAChCjV,OAAQ/H,KAAKytE,oBAAoBlzD,IAT1BA,EAAOijC,mBAAqB,CACnCxgC,gCAAgC,EAChCjV,OAAQ/H,KAAKs9F,yBAAyB/iF,IAUvCwhC,GAEX0gB,WAAY,SAASv/C,GACjB,IAAIkgD,EAAOp9D,KAAKC,SAASnB,MAAMkB,KAAME,WACrC,GAAIgd,EAAK,CACL,IAAIsgF,EAAU,UAAYtgF,EAAIvC,QAC1B+iD,EAAY,SAAWxgD,EAAIvC,QAO/B,GANA+iD,GAAaN,EAAKjlD,SAASokF,IAC3B7+B,GAAa19D,KAAK4Y,OAAO,iBAAmBwkD,EAAKjlD,SAASskF,IAC1Dz8F,KAAK4Y,OAAO,oBAAsBwkD,EAAKjlD,SAAS,KAC5C,IAAU+E,EAAIq9B,SACd6iB,EAAKhiB,OAELoiD,EAAS,CACTpgC,EAAKjlD,SAAS,IACd,IAAIslF,EAAgBvgF,EAAItH,WACxB5V,KAAKsd,QAAQ,OAAQ,MAAO8/C,GAC5Bp9D,KAAKsd,QAAQ,WAAY,eAAUmgF,IAAkBA,EAAc9rF,WAAYyrD,IAGvF,OAAOA,GAEXmF,aAAc,SAASnF,EAAM5E,EAAYt7C,GACjC,SAAWs7C,EAAW79C,UAClB3a,KAAK4Y,OAAO,2BACZ5Y,KAAK48D,UAAU1/C,IAAQkgD,EAAKjlD,SAASukF,IACrClkC,EAAWuL,OAASvL,EAAWuL,MAAM,IAAM/jE,KAAK48D,UAAU1/C,GAAMrb,IAC5Du7D,EAAK7I,YAAYmoC,GAAuB76F,MAGhD7B,KAAK09F,iBAAiBllC,EAAY4E,GAClC5E,EAAWuL,OAASvL,EAAWuL,MAAM,IAAMvL,EAAWgC,SAAU,IAAMx6D,KAAK09F,iBAAiBllC,EAAY4E,KAE5Gp9D,KAAKC,SAASnB,MAAMkB,KAAME,YAE9Bw9F,iBAAkB,SAASxgF,EAAKkgD,GAC5B,IAAIxrD,EAAY5R,KAAK4R,UACjB+rF,EAAc,aAAe/rF,EAAUgH,OAAO,oBAAsB,OAAcyG,sBAAsBzN,GACxG4oD,EAAWt9C,EAAIs9C,SAAW,EAC1BmjC,EACAnjC,EAAW5oD,EAAUq6C,YAAcr6C,EAAUs6C,WAAasO,EAE1DA,GAAYx6D,KAAKiY,gBAAgBy/E,oBAErC13F,KAAKsd,QAAQ,WAAYk9C,EAAU4C,IAEvCgI,kBAAmB,SAASxhE,GACxB,IAAIg6F,EAAMh6F,EAAEyrC,KAAK,GACb2zC,EAAiBhjF,KAAKiY,gBACtBiF,EAAM8lE,EAAeiV,iBAAiB2F,EAAIpjC,UAC1CuJ,EAAQ/jE,KAAK4Y,OAAO,kCACxB,GAAKglF,EAAIx5F,MAAQ,SAAWw5F,EAAIjjF,UAAWijF,EAAIzgF,UAAand,KAAK4Y,OAAO,yBAA4BmrD,GAAU7mD,EAA9G,CAGA,IAAIi1C,EAAU4R,EAAM,IAAMif,EAAesR,mBAAmBsJ,EAAIx5F,KAAMw5F,EAAIp/E,SAAU,KAChFwkE,EAAewX,YAAY,CAACt9E,EAAIs9C,UAAWx6D,KAAK4Y,OAAO,wBACxD,CACCilF,MAAM,EACNC,eAAe,IAEnB,OAAah0F,GAAG8zF,EAAIljC,WAAY/hD,GAAA,KAAaw5C,KAEjD4rC,kBAAmB,SAASC,GACxB,IAAInnF,EAAW7W,KAAK0X,UAOpB,GANKb,EAASmhD,WAAWp+D,QACrBid,EAASkjB,OAAO,UAEhBikE,GAAUh+F,KAAK0Y,YACf1Y,KAAKi+F,iBAAiBpnF,EAAUA,EAASuI,SAAUpf,KAAKiY,gBAAgBO,iBAEvEwlF,IAAUh+F,KAAKk+F,kBAAoBl+F,KAAKiY,gBAAgBq2D,WAAY,CAGrE,IAFA,IAAI9vD,EAAUxe,KAAKo4D,aACf+lC,GAAqB,EAChB1iG,EAAI,EAAGA,EAAI+iB,EAAQ5kB,OAAQ6B,IAChC,IAAK+iB,EAAQ/iB,GAAG4P,QAAUmT,EAAQ/iB,GAAGqiD,SAAU,CAC3CqgD,GAAqB,EACrB,OAGJn+F,KAAK4Y,OAAO,oBAAsB5Y,KAAKo+F,YAAcD,GAAsBn+F,KAAKs9D,mBAAmB2d,oBACnGj7E,KAAKq+F,sBAAsBxnF,KAIvCynF,cAAe,SAAS16F,GACpB,IAAIyY,EAAarc,KAAK4Y,OAAO,cACzB2lF,EAAoB36F,EAAEgO,UAAUgH,OAAO,aAC3C5Y,KAAKw+F,WAAa56F,EAAE66F,aAAa7hF,IACjC5c,KAAKyhE,YAAc79D,EAAE66F,aAAa9hF,KAClC,IAAI6kD,EAAa59D,EAAE66F,aAAa9hF,KAC5BN,IACArc,KAAK0+F,aAAe3B,GAA6Bn5F,EAAEgO,WAAa5R,KAAKyhE,YACjE88B,IACA/8B,GAAcxhE,KAAK0+F,cAElB1+F,KAAKqoE,oBAAmB,KACzBroE,KAAKyhE,aAAe,IAG5BzhE,KAAK4lE,cAAcpR,KAAK,eAAS,GAAI5wD,EAAE66F,aAAc,CACjD9hF,KAAM6kD,IACNxhE,KAAK4B,OAEby8F,sBAAuB,SAASxnF,GAC5B,IAAI8nF,EAAsB3+F,KAAK47D,2BAC3BgjC,EAAgB5+F,KAAKs+F,cAAc9iF,KAAKxb,MAC5C2+F,EAAoBE,SAAWD,EAC/B5+F,KAAK8+F,YAAc9+F,KAAKiZ,iBAAiBpC,EAAU,QAAY8nF,GAC/D3+F,KAAK++F,qBAAuB/+F,KAAK8+F,aAAe,eAAE9+F,KAAK8+F,YAAY9lF,cAEvEilF,iBAAkB,OAAc1lF,gBAChCymF,eAAgB,SAASC,EAAgBt+B,GAErC,OADAs+B,EAAe7sC,QAAQr4B,OAAO4mC,GACvB3gE,KAAK+lE,uBAEhBF,eAAgB,SAASq5B,EAAiB39C,GACtC,IAAI59C,EAAO3D,KACP2gE,EAAeh9D,EAAKohE,kBACpBk6B,EAAiBt7F,EAAKoiE,sBACtBlE,EAAatgB,GAAUA,EAAOsgB,WAC9Bs9B,EAAY,GACZvpD,EAAmB51C,KAAK4Y,OAAO,oBAC/BwmF,EAAmBp/F,KAAK4X,gBAAgBilF,IAC5C,OAAQh7B,GACJ,IAAK,SACD,eAAKtgB,EAAOszC,YAAY,SAAUzzF,EAAOo5D,GACrC,IAAIsI,EAAiBn/D,EAAKqjE,gBAAgBk4B,GAAiB1iF,GAAGpb,GAC1DygE,EAAatgB,EAAO2gB,aAAe3gB,EAAO2gB,YAAY9gE,GACtDyI,EAAO03C,EAAOh3C,OAASg3C,EAAOh3C,MAAMnJ,GACxC+9F,EAAUl8F,MAAK,WACX,IAAIo8F,EAAe17F,EAAKqjE,kBACpBnE,EAAcw8B,EAAa7iF,GAAGg+C,GAClC,OAAQqH,GACJ,IAAK,SACD,GAAIh4D,EAAM,CACN,IAAIo4D,EAAgB1gB,EAAO0gB,eAAiB1gB,EAAO0gB,cAAc7gE,GAC7D,eAAUyI,EAAK0wC,UAAY1wC,EAAK0wC,UAAYsoB,EAAYj1E,GAAG,YAC3Di1E,EAAYy8B,OAAOz1F,EAAK0wC,SACjB0nB,EACPt+D,EAAKi/D,aAAaC,EAAaC,EAAgBb,GAE/CY,EAAYK,YAAYJ,GAGhC,MACJ,IAAK,SACD,GAAKu8B,EAAazlG,OAKPipE,EAAYjpE,OACnBkpE,EAAemM,aAAapM,GAE5BC,EAAey8B,YAAYF,EAAatnF,aAPxC,GAAI4oD,EAAc,CACd,IAAIzqD,EAAS4sD,EAAel1E,GAAG,SAAW+yE,EAAeA,EAAa3I,SAAS,SAC/E8K,EAAe08B,UAAUtpF,GAO7B0/B,GAAoB2L,EAAOy0C,cAC3BlzB,EAAe3qD,SAASinF,GAE5B,MACJ,IAAK,SACDv8B,EAAYlqD,gBAI5B,eAAKwmF,GAAW,WACZn/F,UAEJk/F,EAAgBvmF,SAChB,MACJ,QACIhV,EAAKqhE,gBAAgBk6B,GACrBD,EAAe9mF,SAASxU,EAAKiU,gBAAgB,KAC7CjU,EAAKq7F,eAAeC,EAAgBC,KAGhDO,gBAAiB,SAASptC,EAAWqtC,EAAS7iF,GAC1C,IAAIg7C,EACAuF,EAAOp9D,KAAKy8D,aACZj+C,EAAUkhF,EAAU1/F,KAAKi+E,kBAAoBj+E,KAAKo4D,aACtDgF,EAAKjlD,SAASk6C,GAAWkC,YAAY,GAAoBv0D,KAAK4Y,OAAO,oBACrE,IAAK,IAAInd,EAAI,EAAGA,EAAI+iB,EAAQ5kB,OAAQ6B,IAChCo8D,EAAQ73D,KAAKo8D,YAAY,CACrB7hD,OAAQiE,EAAQ/iB,GAChBkf,QAAS,YACTpF,YAAa9Z,EACb+iB,QAASA,IAEb,eAAU3B,IAAWg7C,EAAMp7C,IAAI,SAAUI,GACzCugD,EAAKrjC,OAAO89B,GAGhB,OADA73D,KAAKsd,QAAQ,OAAQ,eAAgB8/C,GAC9BA,GAEXuiC,gBAAiB,SAAS7lC,EAAQ8lC,EAAW50C,GACzC,IAAI60C,EAAW7/F,KAAK0gE,WAAW5G,GAC3BgmC,GAAoBD,EAASjmG,QAAUgmG,EAAUhyG,GAAG,SACpD6nB,EAAaqqF,EAAmBhmC,EAAS+lC,EAC7C,GAAI,QAAU70C,GAEV,GADAv1C,EAAW80D,QAAQixB,QAAQoE,GACvBE,EAAkB,CAClB,IAAIC,EAAYtqF,EAAWuiD,SAAS,YACpCviD,EAAW+lF,QAAQuE,SAGvBtqF,EAAWsC,OAAOgiB,OAAO6lE,IAGjCI,oBAAqB,SAASl/B,EAAevf,GACzC,IAAI0+C,EAAuBjgG,KAAKy/F,gBAAgBjD,IAChDyD,EAAuBjgG,KAAKihE,eAAeH,EAAem/B,EAAsB,aAAe,OAAS1+C,QAAU,IAAWA,OAAS,EAASA,EAAOsgB,aACtJ7hE,KAAK2/F,gBAAgB7+B,EAAem/B,IAExCC,cAAe,SAASpqF,GACpB,IAAInS,EAAO3D,KACP+hE,EAAOp+D,EAAKq+D,SAASlsD,GACrBkgC,EAAUryC,EAAKsU,gBAAgBmJ,SAAWzd,EAAKsU,gBAAgBmJ,QAAQtmB,MAC3Ek7C,GAAW+rB,EAAKnjD,MAAK,SAAU1B,GAC3B,GAAI,SAAWA,EAAIvC,cAAW,IAAWuC,EAAIpiB,IAEzC,OADA6I,EAAKsU,gBAAgB+6E,UAAU,QAASh9C,IACjC,MAInBmqD,qBAAsB,SAASrU,GAC3B,OAAOA,EAAa,IAAM9rF,KAAKogG,YAEnCC,eAAgB,SAASv/B,GACrBA,EAAgBA,GAAiB9gE,KAAKmhE,cACtC,IAAIm/B,EAAex/B,EAAc9I,SAAS,SAASA,WAAW4I,IAAI,mBAAmBA,IAAI,IAAM47B,IAC/F,OAAO8D,EAAa/wB,UAAUrnD,QAAO,SAAUynC,EAAKzyC,GAChD,OAAOyyC,EAAM,eAAgBzyC,GAAKL,SAClC,IAER0jF,iBAAkB,WACd,IAAIz/B,EAAgB9gE,KAAK+kE,kBACrB+mB,EAAa9rF,KAAKiY,gBAAgB1N,QAAQ3Q,OAC9C,GAAIknE,GAAiB9gE,KAAKmgG,qBAAqBrU,GAAa,CACxD,IAAI0U,EAAaxgG,KAAKqgG,eAAev/B,GACrC9gE,KAAKogG,WAAaI,EAAa1U,IAGvC/lB,oBAAqB,WACjB,IAAI2H,EAAW1tE,KAAK0X,UAChBslF,EAAah9F,KAAKk+F,gBACtB,GAAIxwB,EAIA,OAHIsvB,IACAtvB,EAAW,eAAEsvB,EAAWpjC,YAErB8T,EAAS1V,WAAWuS,SAGnCvD,gBAAiB,SAASrG,GACtB,IAAI2F,EAAQtmE,KAAKC,SAAS0gE,GAC1B,OAAO2F,GAASA,EAAM1F,IAAI,IAAM47B,KAEpCiE,yBAA0B,SAAS3mC,GAC/B,IAAI4mC,EAAgB5mC,GAAU95D,KAAK8kE,mBACnC,OAAO47B,GAAiBA,EAAc1oC,SAAS,SAASA,SAAS,IAAMwkC,KAE3ElkF,eAAgB,WACZ,OAAOtY,KAAK4Y,OAAO,eAEvBgiD,UAAW,SAASh3D,GAChB,IAAIiG,EAAO7J,KAAKiY,gBAAgB1N,QAAQ3G,EAAE42D,WAAa,GACvDx6D,KAAKkyD,cAAc,aAAc,OAAAz3D,EAAA,WAAO,CACpCkmG,SAAU,SAASC,GACf,IAAI58B,EAAS,gBAAc48B,GAC3B,OAAO58B,EAAOn6D,EAAKzF,QAExBR,EAAGiG,KAEVgxD,aAAc,SAASj3D,GACnB,IAAIiG,EAAO7J,KAAKiY,gBAAgB1N,QAAQ3G,EAAE42D,WAAa,GACvDx6D,KAAKkyD,cAAc,gBAAiB,OAAAz3D,EAAA,WAAO,GAAImJ,EAAGiG,KAEtDg3F,6BAA8B,SAASriF,GACnC,IAAK,IAAI/iB,EAAI,EAAGA,EAAI+iB,EAAQ5kB,OAAQ6B,IAChC,GAAI,gBAAkB+iB,EAAQ/iB,GAAGgD,KAC7B,OAAOhD,EAGf,OAAO,GAEXqlG,qBAAsB,SAAShrF,GAC3B,IAAIirF,EAA2B/gG,KAAK6gG,6BAA6B/qF,EAAQ0I,SACrEjJ,GAAeO,EAAQoH,IAAIwgC,YAAc,GAAKqjD,EAClD,MAAO,CACHxrF,YAAaA,EACbgnD,QAASzmD,EAAQ0I,QAAQ5kB,OAAS2b,EAAc,IAGxDsrD,aAAc,WACV,OAAO7gE,KAAKC,SAASnB,MAAMkB,KAAME,cAAgBF,KAAK4Y,OAAO,oBAEjEypD,aAAc,SAASjF,EAAMtnD,GACrB,UAAYA,EAAQoH,IAAIvC,QACxB3a,KAAKghG,oBAAoB5jC,EAAMtnD,GACxBA,EAAQoH,IAAI8J,QACnBhnB,KAAKC,SAASm9D,EAAMtnD,IAG5BkrF,oBAAqB,SAAS5jC,EAAMtnD,GAOhC,IANA,IACI2kE,EAGA7kE,EAJAsH,EAAMpH,EAAQoH,IAEdsB,EAAU1I,EAAQ0I,QAClBg8C,EAAWt9C,EAAIs9C,SAEfymC,EAAmBjhG,KAAK8gG,qBAAqBhrF,GACxCra,EAAI,EAAGA,GAAKwlG,EAAiB1rF,YAAa9Z,IAC3CA,IAAMwlG,EAAiB1rF,aAAeiJ,EAAQ/iB,GAAG6tD,iBAAmB,aAAexzC,EAAQo9E,eAC3Ft9E,IAAesH,EAAItH,WACnB6kE,EAAej8D,EAAQ/iB,KAEvBma,EAAa,KACb6kE,EAAe,CACX57D,QAAS,SACT+8B,SAAUp9B,EAAQ/iB,GAAGmgD,WAGzB57C,KAAKwiE,gBAAgB/mE,EAAGqa,EAAQmsD,gBAChCjiE,KAAKyiE,YAAYrF,EAAM,CACnBv7D,MAAO+T,EACPsH,IAAKA,EACLs9C,SAAUA,EACVjgD,OAAQkgE,EACRllE,YAAa9Z,EACbwmE,cAAensD,EAAQmsD,gBAInC,IAAIi/B,EAAuB,eAAoBlhG,KAAK4Y,OAAO,eACvD41C,EAAc,OAAA/zD,EAAA,WAAO,GAAI+jB,EAAQyiF,EAAiB1rF,aAAc,CAChEsJ,QAAS,KACTpgB,KAAM,KACNm9C,SAAU,KACVvwC,MAAO,KACP+yC,iBAAiB,EACjBhzC,UAAW81F,IAEXD,EAAiB1kC,QAAU,IAC3B/N,EAAY+N,QAAU0kC,EAAiB1kC,SAEvCv8D,KAAKwiE,gBAAgBy+B,EAAiB1rF,YAAc,EAAGO,EAAQmsD,gBAC/DjiE,KAAKyiE,YAAYrF,EAAM,CACnBv7D,MAAOqb,EAAI8J,OAAO9J,EAAIwgC,YACtBxgC,IAAKA,EACLs9C,SAAUA,EACVjgD,OAAQi0C,EACRj5C,YAAa0rF,EAAiB1rF,YAAc,EAC5C0sD,cAAensD,EAAQmsD,iBAInCH,YAAa,SAAShI,EAAQhkD,GAC1B,IAAIo9E,EAAgBlzF,KAAK4Y,OAAO,kBAChC5Y,KAAKC,SAAS65D,EAAQ,OAAAr/D,EAAA,WAAO,CACzBy4F,cAAeA,GAChBp9E,IACH9V,KAAKkgG,cAAcpqF,EAAQyrC,QAC3BvhD,KAAKggG,oBAAoBlmC,EAAQhkD,EAAQyrC,QACpCvhD,KAAKo+F,YACNp+F,KAAKmhG,yBAAyBrnC,IAGtC,yBAAyBA,EAAQhkD,EAAS2+B,GACtC,IAAIv3B,EAAMpH,EAAQoH,IACds7C,EAAa,OAAA/9D,EAAA,WAAO,CACpB+jB,QAAS1I,EAAQ0I,SAClBtB,GACCmkD,EAASrhE,KAAKy8D,WAAWv/C,EAAK,SAClCmkD,EAAOjpD,SAAS0hD,GAChB95D,KAAKqgE,eAAegB,EAAQ5sB,EAAiB+jB,GAAY,EAAM1iD,EAAQyrC,QACvEvhD,KAAKuiE,aAAalB,EAAQ7I,EAAY1iD,EAAQoH,MAElDilD,WAAY,SAASrI,EAAQhkD,GACzB,IAAIoH,EAAMpH,EAAQoH,IACdm8B,EAAcr5C,KAAK4Y,SAASygC,YAC5B5E,EAAkBz0C,KAAK4Y,OAAO,mBAC9B,SAAWsE,EAAIvC,SAAW85B,EAC1Bz0C,KAAKohG,yBAAyBtnC,EAAQhkD,EAAS2+B,GACvC,SAAWv3B,EAAIvC,SAAW,UAAYuC,EAAIvC,SAAa,eAAUuC,EAAIwgC,cAAerE,EAK5Fr5C,KAAKC,SAAS65D,EAAQhkD,GAJtB9V,KAAKqgE,eAAevG,EAAQzgB,EAAa,OAAA5+C,EAAA,WAAO,CAC5C+jB,QAAS1I,EAAQ0I,SAClBtB,IAAM,IAKjB0kD,aAAc,SAAS9rD,GACnB,IAAInS,EAAO3D,KACP85D,EAASn2D,EAAK1D,SAAS6V,GAc3B,OAbK,eAAUnS,EAAKohE,mBAWhBphE,EAAKo6F,qBAVLp6F,EAAKqhE,gBAAgBlL,GACrBn2D,EAAKo6F,mBAAkB,GACvBp6F,EAAKkwD,gBAAgB/jD,KAAI,SAAUuxF,IAC/B,IAAIC,EAAqB39F,EAAKu6F,gBAC1BoD,GAAsB39F,EAAK+T,UAAUyG,QAAQ,iBAAY4gB,UAAUnlC,SACnE+J,EAAKkwD,gBAAgBl7C,OAAO0oF,GAC5BC,EAAmBC,oBAAmB,QAM3CznC,GAEXgD,aAAc,WACV,IAAIhD,EAAS95D,KAAKC,SAASnB,MAAMkB,KAAME,WAIvC,OAHIF,KAAK4Y,SAASygC,aAAer5C,KAAK4Y,SAAS67B,kBAC3CqlB,EAAO1hD,SAASpY,KAAK4R,UAAUiF,YAE5BijD,GAEXrG,YAAa,SAASlS,GAClB,IAAI1qC,EAAW7W,KAAK0X,UACpBb,EAASsB,SAASnY,KAAK4X,gBAAgB0kF,KAAkB/nC,YAAYv0D,KAAK4X,gBAAgB,KAAgB5X,KAAK4Y,OAAO,oBACtH/B,EAAS09C,YAAYqoC,GAAa58F,KAAKiY,gBAAgBC,WACvDlY,KAAKsd,QAAQ,OAAQ,eAAgBzG,GACrC,IAAIijD,EAAS95D,KAAK4hE,aAAa,CAC3BrgB,OAAQA,IAEZvhD,KAAK6lE,eAAe/L,EAAQvY,GAC5BvhD,KAAKC,SAASshD,GACdvhD,KAAKwhG,kBAAoB,MAE7Bx/B,SAAU,SAASzgB,GACf,OAAOA,GAAUA,EAAOh3C,OAASvK,KAAKiY,gBAAgB1N,SAE1Dg5D,gBAAiB,SAASztD,GACtB,IAAIyE,EAASzE,EAAQyE,OACjB2C,EAAMpH,EAAQoH,IACd9Y,EAAO8Y,EAAI9Y,KACX2yF,EAAe75E,GAAOA,EAAI65E,aAC1Bl1F,EAAQiU,EAAQjU,MAChBujF,EAAe,OAAc1qE,gBAAgBH,EAAQ1Y,EAAOuC,EAAM8Y,EAAIvC,SACtEm8C,EAAa92D,KAAKC,SAAS6V,GAa/B,GAZAghD,EAAWj1D,MAAQA,EACnBi1D,EAAW4L,SAAW5sD,EAAQ4sD,SAC9B5L,EAAWsuB,aAAeA,EAC1BtuB,EAAW55C,IAAMA,EACjB45C,EAAWh8D,IAAMoiB,EAAIpiB,IACrBg8D,EAAW1yD,KAAOA,EAClB0yD,EAAWn8C,QAAUuC,EAAIvC,QACzBm8C,EAAW9vC,OAAS9J,EAAI8J,OACxB8vC,EAAWv6D,KAAQge,EAAOsE,QAA4D,GAAlD,OAAchJ,YAAYuvE,EAAc7qE,GAC5Eu8C,EAAW0D,SAAWt9C,EAAIs9C,SAC1B1D,EAAW77C,aAAe87E,GAAgBA,EAAajhF,EAAQP,aAC/DuhD,EAAW9Y,QAAUzjC,EAAOgrE,iBACxB,eAAUhrE,EAAOmjC,cAAgBnjC,EAAOsE,QAAS,CACjD,IAAI4iF,EAAuBzhG,KAAK4Y,OAAO,kBACnCs6E,EAAgBlzF,KAAK4Y,OAAO,kBAC5B,YAAcs6E,GAAiB,aAAeA,IAC9Cp8B,EAAWjN,sBAAwBzlD,GAAQA,EAAK6jF,0BAA4BwZ,GAAwBA,EAAqB53C,sBACzHiN,EAAWlN,sBAAwBxlD,GAAQA,EAAK6Y,gBAAkBwkF,GAAwBA,EAAqB73C,uBAGvH,OAAOkN,GAEX4qC,oBAAqB,SAASp7B,EAAOjJ,EAAgB9nD,EAAa1T,GAC9D,IAAIy1D,EAAoBt3D,KAAKs9D,mBACzB9+C,EAAU84C,EAAkBc,aAC5B79C,EAASiE,GAAWA,EAAQjJ,GAC5Bw7D,EAAWx2D,GAAUA,EAAOsjC,QAAUtjC,EAAOnZ,MACjD,eAAKklE,GAAO,SAAU9L,EAAUt9C,GAC5B,IAAK,eAAEA,GAAK+5C,SAAS,IACjB,IAAK,IAAIx7D,EAAI,EAAGA,EAAI4hE,EAAezjE,OAAQ6B,IACvC,IAAI,eAAUs1E,IAAazZ,EAAkBuuB,mBAAmBxoB,EAAe5hE,GAAG2F,MAAO2vE,IAAa1T,EAAe5hE,GAAG2F,QAAUmU,KAC9H+wD,EAAM9pD,GAAGg+C,GAAUxC,WAAWx7C,GAAG/gB,GAAGghB,IAAI,CACpC2sC,QAASvnD,KAER,eAAUkvE,IACX,UAOxB4wB,qBAAsB,WAClB,OAAO,iBAAYhiF,kBAEvBlI,iBAAkB,OAAcA,iBAChCmqF,eAAgB,SAASpnC,EAAU0M,GAC/B,IACI1J,EACAjjD,EAFAi+C,EAAax4D,KAAKiY,gBAAgB1N,QAAQiwD,GAkB9C,OAfIhC,IAEIj+C,EADA,eAAS2sD,GACAlnE,KAAKs9D,mBAAmBoK,aAAaR,GAErClnE,KAAKs9D,mBAAmBC,oBAAoB2J,GAErD3sD,IACAijD,EAAcx9D,KAAKujE,gBAAgB,CAC/B1hE,MAAO0Y,EAAO1F,mBAAmB2jD,EAAWp0D,MAC5Co2D,SAAUhC,EAAWgC,SACrBt9C,IAAKs7C,EACLj+C,OAAQA,MAIbijD,GAEXqkC,OAAQ,SAASzgG,GACb,GAAIA,GAAS,EAAG,CACZ,IAAI2gE,EAAO/hE,KAAKgnE,kBAChB,GAAIjF,EAAKnoE,OAASwH,EACd,OAAO,eAAE2gE,EAAK3gE,MAI1B+/F,yBAA0B,SAASrnC,GAC/B,IAAIkpB,EAAiBhjF,KAAKiY,gBACtB6pF,EAAY9e,EAAez4E,OAAM,GAAM3Q,OACvCqlG,EAAiBj/F,KAAK+lE,sBACtBg8B,EAAuB/hG,KAAKygG,yBAAyB3mC,GACzD,GAAIioC,GAAwB9C,GAAkBjc,EAAe0I,cAAgB,EAAG,CAC5E,IAAIsW,GAAwB,EAC5B,GAAIF,EAAY,EACZ,GAAK9hG,KAAKo+F,WAcN2D,EAAqB3mD,OACrB,eAAY,KACR,IAAI6mD,EAAiBjiG,KAAKkiG,mBAAkB,GACxCC,EAAgC,eAAUniG,KAAK0X,WAAauqF,EAC5DG,EAAgB,eAAenD,GAC/BoD,EAAmBF,EAAgCC,EAAgB,EACnE5B,EAAaxgG,KAAKqgG,eAAepB,EAAejnC,WAAWuS,SAC3DzJ,EAAgBhH,GAAU95D,KAAK8kE,mBAC/Bw9B,EAAiB9wF,KAAKy9E,KAAKh7B,WAAW6M,EAAcrkD,IAAI,oBACxD8lF,EAAmBviG,KAAKwiG,uBACxBC,EAAeN,EAAgC3B,EAAa8B,EAAiBC,EAC7EF,GACA,eAAY,KACRN,EAAqBtlF,IAAI,SAAUgmF,GACnCT,GAAwB,EACxBD,EAAqB1mD,SAG7B,eAAY,IAAMr7C,KAAK0iG,qBAAqBV,UAhC9B,CAClB,IAAIW,EAAoB3f,EAAe92B,WAAa41C,EAChD5O,EAAgBlzF,KAAK4Y,OAAO,kBAC5B+pF,EAAoB,GAAK3f,EAAeyL,YAAc,GAAK,YAAcyE,GAAiB,aAAeA,IACzG,eAAU6O,EAAsBY,EAAoB3iG,KAAKogG,YACzD4B,GAAwB,IAEvBA,GAAyBloC,EAC1B,eAAUioC,EAAsB,GAEhCA,EAAqBzC,OAAO0C,GAEhChiG,KAAK0iG,qBAAqBV,QAwB9BD,EAAqBtlF,IAAI,SAAU,GACnCslF,EAAqB1mD,OACrBr7C,KAAK0iG,sBAAqB,KAItCF,qBAAsB,WAClB,IAAII,EAAiBhjF,EAAA,KAAQijF,QAAU7iG,KAAK2hG,wBAA0B,EAClEmB,EAAiBljF,EAAA,KAAQmjF,QAAUnjF,EAAA,KAAQuT,SAAW,GACtD6vE,EAAoBpjF,EAAA,KAAQC,SAAWD,EAAA,KAAQuT,SAAW,KAAOnzB,KAAK4Y,OAAO,gBACjF,OAAOgqF,GAAkBI,GAAqBF,EAAiB,EAAI,GAEvEt+B,qBAAsB,SAAS5gE,GAC3B,IAAI6gE,EAAc7gE,EAAE6gE,YAChB7gE,EAAEs+D,YAAYxsB,WAGd+uB,EAAYp5D,OAASo5D,EAAYjI,gBACjCx8D,KAAKC,SAAS2D,GACd5D,KAAKijG,gCAGb/E,cAAe,WACX,OAAOl+F,KAAK8+F,aAEhBruC,KAAM,WACF,IAAI9sD,EAAO3D,KACPgjF,EAAiBr/E,EAAKguD,cAAc,QACxChuD,EAAK1D,WACL0D,EAAKu/F,yBAA2Bv/F,EAAKguD,cAAc,iBACnDhuD,EAAKy8F,WAAa,EAClBz8F,EAAK66F,WAAa,EAClB76F,EAAK89D,aAAe,EACpB99D,EAAK+6F,aAAe,EACpB/6F,EAAKy6F,YAAa,EAClBpb,EAAekG,eAAep5E,KAAI,SAAUzF,EAAW8vF,GACnDx2F,EAAKw/F,WAAW94F,EAAW8vF,MAE/BnX,EAAegW,kBAAkBlpF,KAAI,WAC7BnM,EAAK89D,aAAe,GACpB99D,EAAK26F,cAAc,CACf1sF,UAAWjO,EAAKu6F,gBAChBO,aAAc,CACV7hF,IAAKjZ,EAAK66F,WACV7hF,KAAMhZ,EAAK89D,mBAM/B8D,mBAAoB,SAAShkB,GACzB,OAAQA,EAAOsgB,YACX,IAAK,UACL,IAAK,UACL,IAAK,SACL,IAAK,SACD7hE,KAAK+H,OAAO,KAAMw5C,GAClB,MACJ,QACIvhD,KAAKu9F,QAAQh8C,KAGzBmP,cAAe,WACX,MAAO,CAAC,qBAAsB,uBAAwB,oBAAqB,iBAAkB,gBAAiB,kBAElH0yC,aAAc,WACV,OAAO,eAASpjG,KAAK0X,WAAa1X,KAAKkiG,qBAE3CA,kBAAmB,SAAS55B,GACxB,IAUI3kE,EAAMq5F,EAVNqG,EAAsBrjG,KAAK++F,sBAAwB/+F,KAAK++F,qBAAqBrhG,IAAI,GACjFukG,EAAiB,EAUrB,OATIoB,IACK/6B,GAGD25B,EAAiBoB,EAAoBC,aAAeD,EAAoBlvC,aAAekvC,EAAoBC,aAAe,EAC1HrB,IAAmBt+F,EAAO3D,KAAMg9F,EAAar5F,EAAKu6F,gBAAiBlB,EAAaxrF,KAAKy9E,KAAKh7B,WAAW,eAAE+oC,EAAWpjC,WAAWn9C,IAAI,mBAAqB,IAHtJwlF,EAAiBoB,EAAoB9kC,YAAc8kC,EAAoBn9B,YAAcm9B,EAAoB9kC,YAAc,GAOxH0jC,EAAiB,EAAIA,EAAiB,GAEjDgB,4BAA6B,WAIzB,IAHA,IAAIM,EAAmBvjG,KAAKwhG,mBAAqB,GAC7CgC,EAAe,GACfhlF,EAAUxe,KAAKo4D,aACV38D,EAAI,EAAGA,EAAI+iB,EAAQ5kB,OAAQ6B,IAChC+nG,EAAa/nG,GAAK+iB,EAAQ/iB,GAAG+gE,aACzBh+C,EAAQ/iB,GAAG8pF,mBAAqB,eAAU/mE,EAAQ/iB,GAAGiiD,aAAe6lD,EAAiB9nG,KAAO+nG,EAAa/nG,IACzG+iB,EAAQ/iB,GAAG8pF,iBAAiB/wB,KAAKgvC,EAAa/nG,IAGtDuE,KAAKwhG,kBAAoBgC,GAE7Bd,qBAAsB,SAASV,GACvBhiG,KAAK4Y,OAAO,gBAAkB5Y,KAAK4Y,OAAO,kBAAoBopF,EAC9DhiG,KAAK0X,UAAUS,SAASwkF,IAExB38F,KAAK0X,UAAUW,YAAYskF,KAGnC8G,kBAAmB,WACf,IAAIC,EAAe,QAAWC,YAAY3jG,KAAK0X,WAC3CgsF,IACAA,EAAap/B,SACbtkE,KAAK4jG,oCAGbA,gCAAiC,WAC7B,IAAI5G,EAAah9F,KAAKk+F,gBAClB18B,EAAaw7B,GAAcA,EAAWyB,eAAe9hF,KACrDN,EAAarc,KAAK4Y,OAAO,cAC7B,GAAIyD,EAAY,CACZ,IAAIwnF,EAA4B9G,GAA6BC,GACzD8G,EAAcD,EAA4BriC,EAC1CsiC,IAAgB9jG,KAAK0+F,eACrB1+F,KAAKyhE,YAAcoiC,EAA4B7jG,KAAK0+F,cAGxD1+F,KAAKyhE,aAAe,GAAKD,IAAexhE,KAAKyhE,aAC7Cu7B,EAAWt7B,SAAS,CAChBzuD,EAAGjT,KAAKyhE,eAIpB/N,YAAa,WACT,IAAI/vD,EAAO3D,KACX2D,EAAKs/F,8BACLt/F,EAAK48F,mBACL,gBAAY,WACR58F,EAAKo6F,oBACLp6F,EAAK8T,mBACL9T,EAAKw9F,2BACL,gBAAY,WACRx9F,EAAK8/F,2BAIjB/hC,SAAU,SAAS1W,GACf,IAAIn0C,EAAW7W,KAAK0X,UAChBgsF,EAAe7sF,GAAY,QAAW8sF,YAAY9sF,GAClD6sF,GACAA,EAAahiC,SAAS1W,IAG9BnuC,OAAQ,SAASknF,EAASC,GACtB,IAAIrgG,EAAO3D,KACP6W,EAAW7W,KAAK0X,UACpB,GAAI,IAAMxX,UAAUtG,OAChB,OAAOid,EAAW,eAAeA,GAAU,GAAQ,EAEvDlT,EAAKy6F,gBAAa,IAAW4F,EAAY,SAAWD,EAAUC,EAC1D,eAAUD,IAAYltF,GACtB,eAAUA,EAAUktF,IAG5BZ,WAAY,SAAS94F,EAAW8vF,GAC5B,IAAIlkD,EAAYj2C,KAAK0Y,WACjBsqE,EAAiBhjF,KAAKiY,gBACtBQ,EAAmBzY,KAAK4Y,OAAO,cAAgB,GAC/CirC,EAAYm/B,EAAe1U,WAAa71D,EAAiBorC,UAAY,KACrEhtC,EAAW7W,KAAK0X,UACpB,GAAK,oBAGAu+B,QAAa,IAAWkkD,GAAenX,EAAexqE,gBAAkB,SAAWC,EAAiBI,SAAWhC,IAChH7W,KAAKi+F,iBAAiBpnF,EAAUA,EAASuI,UACzC62B,EAAYj2C,KAAK0Y,YAEjBu9B,GAAW,CACX,IAAIguD,EAAoB,CACpBlrF,QAASohF,GAAe1hF,EAAiBlc,KACzCsnD,UAAWA,EACXtJ,QAASlwC,GAETA,IACA45F,EAAkB9+C,SAAW,OAAc++C,2BAA2BrtF,IAE1EujD,aAAap6D,KAAKmkG,uBACdluD,EAAUr9B,OAAO,aAAevO,EAChCrK,KAAKmkG,sBAAwBzkE,YAAW,WACpCuW,EAAUr9B,OAAOqrF,KACjBnH,IAEJ7mD,EAAUr9B,OAAOqrF,KAI7BnzB,eAAgB,SAASv7D,EAAa1T,GAClC,IAAIykE,EAAQtmE,KAAKgnE,kBAAkBpG,IAAI,IAAM,KAAoB,GACjE5gE,KAAK0hG,oBAAoBp7B,EAAOtmE,KAAKo4D,aAAc7iD,EAAa1T,IAEpEklE,qBAAsB,SAASvM,GAC3B,IAAInC,EAASr4D,KAAKC,SAASnB,MAAMkB,KAAME,WACvC,GAAIm4D,EAAQ,CACR,IAAI+rC,EAAiB/rC,EAAOj6D,OAAO,IAAM,IAAkBgD,QAC3D,GAAIgjG,GAAkB,GAAK/rC,EAAOz+D,OAASwqG,EAAiB,EACxD,OAAO/rC,EAAOrkD,MAAM,EAAGowF,EAAiB,GAGhD,OAAO/rC,GAEXgsC,6BAA8B,SAASC,EAAOC,GAC1C,IAAIC,EAAY,EACZC,EAAa,EACbroF,EAAS,EACTsoF,EAAmB1kG,KAAKw+F,WACxBmG,EAAkB3kG,KAAK+lE,sBACvB6+B,EAA0BD,GAAmBA,EAAgBvoF,SAASQ,IACtEomE,EAAiBhjF,KAAK2xD,cAAc,QACpCpnD,EAAQy4E,EAAez4E,QACvBo2D,EAAe3gE,KAAK+kE,kBACxB,GAAIx6D,EAAM3Q,QAAU+mE,EAAc,CAC9B,IAAIkkC,EAAc7kG,KAAKgnE,gBAAgBrG,GAAcviE,OAAO,YAC5D,IAAKkmG,EAAO,CACR,IAAIznF,EAAS,eAAe7c,KAAKo+F,WAAap+F,KAAK0X,UAAY,kBAC/DgtF,GAAoB7nF,EAExB,IAAK2nF,EAAY,EAAGA,EAAYj6F,EAAM3Q,OAAQ4qG,IAAa,CACvDC,EAAaroF,EACb,IAAIymD,EAAc,eAAEgiC,GAAaroF,GAAGgoF,GACpC,GAAI3hC,EAAYjpE,SACZwiB,EAASymD,EAAYzmD,SACrBA,GAAUkoF,EAAQloF,EAAOQ,IAAMR,EAAOQ,IAAM,eAAeimD,IAAgB+hC,EACvExoF,EAASsoF,GAAkB,CACvBF,IACID,GAAW,EAAIG,EAAmBlzF,KAAKyrF,MAAM7gF,EAASqoF,KACtDD,IAGR,OAIRA,GAAaA,IAAcj6F,EAAM3Q,QACjC4qG,IAGR,OAAOA,GAEXM,uBAAwB,SAASP,GAC7B,OAAOvkG,KAAKqkG,8BAA6B,EAAME,IAEnDQ,0BAA2B,SAASR,GAChC,OAAOvkG,KAAKqkG,8BAA6B,EAAOE,IAEpDS,qBAAsB,WAClB,IAAIR,EAAYxkG,KAAK8kG,yBACjBv6F,EAAQvK,KAAKiY,gBAAgB1N,QACjC,GAAIA,EAAMi6F,GACN,OAAOj6F,EAAMi6F,GAAWpgG,MAGhC6gG,iBAAkB,SAASpuF,EAAUuF,GACjC,IAAI4gF,EAAah9F,KAAKk+F,gBACtBlB,GAAcA,EAAWkI,gBAAgBruF,EAAUuF,IAEvD80C,cAAe,SAAS7hB,GAEpB,OADArvC,KAAKC,SAASovC,GACNA,EAAKztC,MACT,IAAK,kBACL,IAAK,kBACL,IAAK,eACL,IAAK,wBACL,IAAK,cACL,IAAK,kBACL,IAAK,uBACD5B,KAAKszD,aAAY,GAAM,GACvBjkB,EAAK+hB,SAAU,EACf,MACJ,IAAK,YACDpxD,KAAKogG,WAAa,KAClBpgG,KAAKmhE,cAAgB,KACrB9xB,EAAK+hB,SAAU,EACf,MACJ,IAAK,aACDpxD,KAAKogG,WAAa,KAClBpgG,KAAKmhE,cAAgB,KACrB,MACJ,IAAK,YACDnhE,KAAKmhE,cAAgB,KACrBnhE,KAAKszD,aAAY,EAAM,sBAAwBjkB,EAAKmtC,UACpDntC,EAAK+hB,SAAU,EACf,MACJ,IAAK,aACDpxD,KAAKyX,mBACL43B,EAAK+hB,SAAU,IAG3Be,QAAS,WACLiI,aAAap6D,KAAKmkG,uBAClBnkG,KAAK8+F,aAAe9+F,KAAK8+F,YAAY3sC,WAEzC+V,mBAAoB,aACpBi9B,iBAAkB,cAr5BI,MC5FhBjI,GAAWxnC,MAAMt4C,SACvC,EAASg5C,eAAe,OAAQ8mC,I,yHCAhC,MAAM,WAA6B,QAC/B,iBACI,OAAO,eAAIl9F,KAAKolG,kBAAkBxsF,OAAO,UAAU,SAAUysF,EAAax7F,GACtE,OAAOA,EAAKU,MAAQ,CAACV,GAAM8d,OAAO,eAAI9d,EAAKU,MAAO86F,IAAiBx7F,KAG3E,eAAeA,GACX,OAAO9O,KAAKC,UAAU6O,EAAM,CAAC/O,EAAK+G,IAC1B,aAAe/G,EACRkF,KAAKslG,mBAAmBzjG,GAE5BA,GAGf,mBAAmBk6C,GACf,IAAI98C,EAMJ,OAJIA,EADA,kBAAoB88C,EACX,eAAEA,GAAUx/C,OAEZw/C,EAASpqC,WAEf1S,GAGA,U,aCNXsmG,GAAgB,UAChBC,GAAyBD,GAAgB,YACzCE,GAAqB,eACrBC,GAAaH,GAAgB,QAC7BI,GAAwBD,GAAa,WACrCE,GAA8BF,GAAa,YAC3CG,GAA6BH,GAAa,WAC1CI,GAAgCP,GAAgB,mBAChDQ,GAA8BL,GAAa,YAC3CM,GAA0BT,GAAgB,aAC1CU,GAA+BV,GAAgB,mBAC/CW,GAAmBR,GAAa,YAChCS,GAAmBT,GAAa,YAChCU,GAAsBV,GAAa,eACnCW,GAA4BX,GAAa,UACzCY,GAAsCD,GAA4B,aAClEE,GAA6Bb,GAAa,QAC1Cc,GAAwB,SACxBC,GAAgB,CAChBprD,KAAM,GACND,KAAM,KAEV,MAAM,WAAiB,QACnB,qBACI,OAAO,OAAA3gD,EAAA,WAAOisG,MAAMC,qBAAsB,CACtCp8F,MAAO,GACPqxC,SAAU,GACVlI,oBAAoB,EACpBkzD,gBAAiB,CACbhlG,KAAM,UACNo2B,MAAO,CACHqjB,KAAM,GACND,KAAM,MAGdyI,UAAW,CACPxI,KAAM,CACF58C,KAAM,OACNs2B,KAAM,EACNr8B,GAAI,EACJgyD,SAAU,KAEdtP,KAAM,CACF38C,KAAM,OACNs2B,KAAM,EACNr8B,GAAI,EACJgyD,SAAU,MAGlBm8C,eAAe,EACfC,qBAAqB,EACrB9wD,QAAS,KACT+wD,gBAAiB,CACbC,KAAM,YAEVC,cAAc,IAGtB,eACI,MAAO,oBAEX,aACI,OAAOvB,GAEX,oBACA,qBACI,OAAOE,GAEX,eACI,OAAOH,GAEX,eACI,OAAOzlG,KAAKknG,iBAEhB,SACIlnG,KAAK4Y,OAAO,iBAAkB,MAC9B8tF,MAAMS,SAEV,iBACI,OAAO,OAAA1sG,EAAA,WAAOisG,MAAMU,iBAAkB,CAClCC,MAAO,KACH,IAAIpL,EAAQ,eAAEj8F,KAAK4Y,OAAO,mBACrBqjF,EAAMriG,QAAWoG,KAAKsnG,uBAG3BtnG,KAAKunG,WAAWtL,EAAM,KAE1BuL,OAAQ,OACRC,SAAU,SAGlB,sBACI,OAAOznG,KAAK4Y,OAAO,mBAAqB4tF,GAE5C,QACIxmG,KAAK0nG,iBAAmB,IAAI//E,OAAO+9E,IACnCgB,MAAMiB,QACN3nG,KAAK4nG,sBACL5nG,KAAK6nG,eAET,kBAAkBh3B,GACd,IAAIi3B,EAAWj3B,EAASt0E,KACpBwrG,EAAiB,eAAE,UAAU5vF,SAASouF,IACtCyB,EAAc,eAAcn3B,GAAYi3B,EAAWnuG,OAAOk3E,GAC9D,OAAOi3B,GAAYC,EAAexrG,KAAKyrG,GAE3C,oBAAoBn3B,GAChB,IACIo3B,EADA19F,EAAQsmE,EAAStmE,MAErB,GAAIA,GAASA,EAAM3Q,OAAQ,CACvB,IAAIsuG,EAAe,eAAE,SAAS/vF,SAASkuF,IACvC4B,EAAmB,eAAE,UAAU9vF,SAASmuF,IAAqCvsE,OAAOmuE,GAExF,OAAOD,EAEX,yBACI,MAAO,CACHE,UAAW,EACXC,mBAAmB,EACnBC,oBAAoB,EACpBC,oBAAoB,EACpBC,YAAa,IAGrB,cAAcC,GACV,GAAKA,EAAL,CAGA,IAAIC,EAAezoG,KAAK0oG,aAAaC,cAAcH,GACnDxoG,KAAK0oG,aAAaE,gBAAgBH,EAAaI,eAAe/tG,KAAK,IAEvE,sBACI,IAAIguG,EAAe9oG,KAAK0oG,aAAaK,uBACjCC,EAAcF,EAAalvG,QAAUkvG,EAAa,GAClDN,EAAexoG,KAAK4Y,OAAO,gBAC/B,GAAKowF,EAAL,CAIA,IAAIC,EAAOjpG,KAAK0oG,aAAaQ,aAAaF,IACtC,IAAUC,EAAKE,aAGdX,EAIDA,IAAiBS,EAAKJ,eAAeh/F,OACrC7J,KAAK0oG,aAAaE,gBAAgBI,GAAa,GAC/ChpG,KAAKopG,cAAcZ,IALnBxoG,KAAK4Y,OAAO,eAAgBqwF,EAAKJ,eAAeh/F,YARhD7J,KAAKopG,cAAcZ,GAgB3B,gBACA,cACI9B,MAAM2C,cACNrpG,KAAK4Y,OAAO,iBAAmB5Y,KAAKspG,mBAExC,mBACItpG,KAAKupG,WAAa,kBAEtB,mBAAmB1yF,EAAUhV,EAAO+B,GAEhC,GADA8iG,MAAM8C,mBAAmB1qG,MAAMkB,KAAME,WAChCF,KAAKupG,WAAV,CAGA,IAAI13C,EAAS,CACTn6C,QAASb,EACTm7C,MAAOpuD,GAEP/B,EACA7B,KAAKupG,WAAWE,SAAS53C,GAEzB7xD,KAAKupG,WAAWG,SAAS73C,IAGjC,sBACI,IAAI47B,EAAcztF,KAAK4Y,OAAO,mBAE9B,OADA60E,EAAc,eAASA,GAAeA,EAAY7rF,KAAO6rF,EAClDztF,KAAK2pG,mBAAqBlc,EAAc,UAEnD,sBACA,mBACI,MAAO,YAAcmc,GAAA,KAAQC,OAAOC,WAExC,oBACI,IAAIC,EAAW,GACf/pG,KAAKgqG,cAAgB,IAAID,EAAS/pG,MAEtC,mBAAmB6W,GACfA,EAASsB,SAASnY,KAAK4Y,OAAO,aAElC,uBACI,MAAO,IAAI+O,OAAOk+E,IAEtB,mBAAmBjiG,GACf,IAAIqmG,EAAejqG,KAAKkqG,2BAA2BtmG,GAC9CqmG,IAAgBjqG,KAAKmqG,gBAAgBF,KAG1CrmG,EAAEwmG,kBACE,YAAcpqG,KAAKqqG,wBACnBjwC,aAAap6D,KAAKsqG,sBAClBtqG,KAAKsqG,qBAAuB5qE,WAAW1/B,KAAKuqG,aAAa/uF,KAAKxb,KAAMiqG,GAAejqG,KAAKwqG,iBAAiB,WAGjH,mBAAmBC,GACf,OAAO/D,MAAMgE,mBAAmBD,GAAersG,QAAO,WAClD,MAAO,WAAa,eAAE4B,MAAMyc,IAAI,iBAGxC,gBAAgBw/E,GACZ,OAAOj8F,KAAK2qG,gBAAgB1O,EAAM73F,KAAKpE,KAAK4qG,iBAEhD,aAAaX,GACTjqG,KAAK6qG,kBAAkBZ,GAE3B,kBAAkBa,GACd,eAAEA,GAAa3yF,SAAS4tF,IAE5B,iBAAiBj0C,GACb,IACI95B,MAAOA,GACPh4B,KAAK4Y,OAAO,mBAChB,OAAK,eAAUof,GAGR,eAASA,GAASA,EAAM85B,GAAU95B,EAF9ByuE,GAAc30C,GAI7B,2BAA2Bi5C,GACvB,IAAIx5C,EAAU,eAAEw5C,EAAU70F,QAC1B,GAAIq7C,EAAQ0F,SAASj3D,KAAKgrG,eAAiBz5C,EAAQ7zD,IAAI,KAAOqtG,EAAU1wC,cACpE,OAAO9I,EAEX,OAAQA,EAAQ0F,SAASj3D,KAAKgrG,cAE1B,GADAz5C,EAAUA,EAAQnyC,SACdmyC,EAAQ0F,SAAS,cACjB,OAAO,KAGf,OAAO1F,EAEX,mBACI6I,aAAap6D,KAAKsqG,sBAEtB,YAAYrB,GACR,OAAOA,GAAQA,EAAKJ,eAAeoC,aAAarxG,OAEpD,qBACIoG,KAAKkrG,aAAalrG,KAAK0oG,aAAayC,gBAExC,aAAaC,EAAOC,GAChB,GAAID,EAAMxxG,OAAQ,CACdoG,KAAKsrG,UAAW,EAChB,IAAIC,EAAiBvrG,KAAKwrG,iBAAiBxrG,KAAK6W,WAAYw0F,GACxDI,GAAqB,EACrBC,GAAuB,EAC3B,eAAKN,EAAO,CAAChqG,EAAO6nG,KAChB,IAAI0C,GAAgB,IAAU1C,EAAK1uD,QAC/BoxD,GAAiBF,EAAoB,IACrCA,EAAoBrqG,GAExB,IAAIwqG,EAAeH,EAAoBrqG,IAAU6nG,EAAK4C,YAAczqG,IAAUsqG,GAC1EE,IACAF,EAAsBC,EAAgBvqG,EAAQA,EAAQ,GAEtDA,IAAUsqG,GAAuBD,EAAoBrqG,GACrDpB,KAAK8rG,iBAAiBP,GAE1BvrG,KAAK+rG,YAAY3qG,EAAO6nG,EAAMsC,KAE7BvrG,KAAKsrG,UACNC,EAAepzF,SAASqtF,KAIpC,iBAAiBwG,GACb,IAAIv2F,EAAa,eAAE,QAEnB,OADAzV,KAAKsd,QAAQ,OAAQ,OAAQ7H,GACtBA,EAAW2C,SAAS4zF,GAAU7zF,SAAS2tF,IAElD,kBAAkByF,GACd,IAAIU,EAAQ,eAAE,QAEd,OADAjsG,KAAKsd,QAAQ,OAAQ,OAAQ2uF,GACtBA,EAAM7zF,SAASmzF,GAAgBpzF,SAAS0tF,IAEnD,YAAYzkG,EAAO6nG,EAAMsC,EAAgBW,GACrC,IAAI3hG,EAAQvK,KAAK4Y,OAAO,SACpBqzF,EAAQC,GAAgBlsG,KAAKmsG,kBAAkBZ,GAC/ChhG,EAAMnJ,EAAQ,IAAMmJ,EAAMnJ,EAAQ,GAAGyqG,YACrCI,EAAM9zF,SAAS8tF,IAEnB,IAAImG,EAAa1F,MAAMqF,YAAY3qG,EAAO6nG,EAAKJ,eAAeh/F,KAAMoiG,GAChEhD,EAAKJ,eAAeh/F,OAAS7J,KAAK4Y,OAAO,iBACzCwzF,EAAWj0F,SAASytF,IAExBwG,EAAW16C,KAAK,YAAa,GACzB1xD,KAAKqsG,YAAYpD,IACjBjpG,KAAKsd,QAAQ,WAAY,OAAQ8uF,GAGzC,iBAAiBhrG,EAAOyvE,EAAUk3B,GAC9B,IAAIqE,EAAarE,EAAe/vC,SAAS,IAAIrwC,OAAO+9E,KACpD,OAAO0G,EAAWxyG,OAASwyG,EAAa1F,MAAM4F,iBAAiBxtG,MAAMkB,KAAME,WAE/E,aAAa+7F,EAAOpyF,GAChB,IAAIo/F,EAAOjpG,KAAK0oG,aAAaC,cAAc9+F,GACvCzI,EAAQ66F,EAAM73F,KAAKpE,KAAKusG,iBACxBhB,EAAiBtP,EAAM99E,QAAQ,MAC/B+tF,EAAejQ,EAAM99E,QAAQ,MACjCne,KAAK+rG,YAAY3qG,EAAO6nG,EAAMsC,EAAgBW,GAElD,mBAAmBr7B,EAAUu7B,GACzB,IAAII,IAAU37B,EAASt0E,QAASs0E,EAASt0E,KAAK3C,OAC1C6yG,IAAY57B,EAASh1B,KACrB6wD,IAAa77B,EAAStmE,SAAUsmE,EAAStmE,MAAM3Q,OACnDwyG,EAAW73C,YAAY2xC,GAAkBsG,GACzCJ,EAAW73C,YAAY4xC,GAAkBsG,GACpCzsG,KAAKsrG,WACNtrG,KAAKsrG,SAAWmB,GAEpBL,EAAW73C,YAAY6xC,GAAqBsG,GAEhD,gBAAgBN,GACZ,IAAIO,EAAejG,MAAMkG,gBAAgBR,GAIzC,OAHKO,EAAa/yG,SACd+yG,EAAeP,EAAWp0C,SAAS,IAAIrwC,OAAOg+E,MAE3CgH,EAEX,uBAAuBt9D,GACnB,IAAI46D,EAAe,eAAE56D,EAAKy7D,aACtB+B,EAAgB7sG,KAAK0oG,aAAaK,uBACtC,GAAK8D,EAAcjzG,QAAWoG,KAAK8sG,gBAAgBz9D,EAAKwhC,WAAc7wE,KAAK+sG,kBAAkB19D,EAAKwhC,UAAlG,CAIA,IAAIo4B,EAAOjpG,KAAK0oG,aAAaC,cAAct5D,EAAKwhC,UAC5Co4B,EAAKJ,eAAe/tG,MAAQ+xG,EAAc,IAC1C5C,EAAa9xF,SAASnY,KAAKgtG,sBAC3BhtG,KAAKitG,iBAAiBhD,EAAc,SAEpCjqG,KAAKitG,iBAAiBhD,EAAc,cARpCjqG,KAAKitG,iBAAiBhD,EAAc,SAW5C,kBAAkBpgG,GACd,OAAO,IAAUA,EAAKs/F,WAE1B,iBAAiB+D,GACb,eAAE,QAAQ90F,SAAS80F,GAAiB/0F,SAAS6tF,IAEjD,kBAAkBpiG,GACd,IAAIA,EAAEupG,cAAN,CAGA,IAAIC,EAAyBptG,KAAK+xD,cAAc/xD,KAAKqtG,gCAAgC7xF,KAAKxb,OAC1FA,KAAKstG,oBAAoB1pG,EAAG,cAAe,GAAI,CAC3CuhE,aAAcioC,EAAuB5xF,KAAKxb,QAE9C4D,EAAEupG,eAAgB,GAEtB,gCAAgCI,GAC5BvtG,KAAKwtG,2BAA2BD,GAC5B,YAAcvtG,KAAKqqG,uBACnBrqG,KAAK6qG,kBAAkB0C,EAAWl+D,KAAK,GAAGy7D,aAGlD,2BAA2ByC,GACvB,IAAIl+D,EAAOk+D,EAAWl+D,KAAOk+D,EAAWl+D,KAAK,GAAKk+D,EAClD,GAAKvtG,KAAKytG,wBAAwBp+D,EAAKwhC,UAAvC,CAGA,IAAI68B,EAAkB1tG,KAAK0oG,aAAaK,uBACpC4E,EAAeD,EAAgB9zG,QAAUoG,KAAK0oG,aAAaQ,aAAawE,EAAgB,IACxFC,GACA3tG,KAAK4tG,qBAAqBD,GAAc,GAEvCA,GAAgBA,EAAa9E,eAAeh/F,OAASwlC,EAAKwhC,UAG3D7wE,KAAK6tG,0BAA0B,KAAM7tG,KAAK4Y,OAAO,iBACjD5Y,KAAKgxD,8BAA8B,eAAgB,OAHnDhxD,KAAKunG,WAAWl4D,EAAKwhC,WAM7B,wBAAwBhnE,GACpB,IAAIikG,EAA4B9tG,KAAKsnG,uBAAyBtnG,KAAK4Y,OAAO,iBAC1E,OAAQ5Y,KAAK+tG,qBAAuBD,GAA6B9tG,KAAK+sG,kBAAkBljG,KAAU7J,KAAKguG,aAAankG,GAExH,oBACI,OAAO7J,KAAKknG,iBAAiBt5G,GAAG,UAEpC,wBACI,OAAO,iBAEX,eAAeyhD,GACX,OAAQA,EAAKztC,MACT,IAAK,kBACD,MACJ,IAAK,eACD,IAAIqnG,EAAOjpG,KAAK0oG,aAAaC,cAAct5D,EAAKxtC,OAC5CmnG,EAAchpG,KAAK0oG,aAAaK,uBAAuB,GAC3D,GAAIE,GAAQA,EAAKJ,eAAe/tG,MAAQkuG,EAAa,CACjD,IAAI,IAAUC,EAAKE,WACf,MAEAH,GACAhpG,KAAK4tG,qBAAqB5tG,KAAK0oG,aAAaQ,aAAaF,IAAc,GAE3EhpG,KAAK4tG,qBAAqB3E,GAAM,GAChCjpG,KAAKiuG,uBAET,MACJ,IAAK,WACL,IAAK,WACL,IAAK,gBACL,IAAK,YACL,IAAK,eACDjuG,KAAKszD,cACL,MACJ,QACIozC,MAAMwH,eAAe7+D,IAGjC,qBAAqB45D,EAAMpnG,GACvB,IAAIipG,EAAc9qG,KAAKmuG,kBAAkBlF,EAAKJ,eAAeh/F,MAC7DihG,GAAe,eAAEA,GAAav2C,YAAYqxC,IAC1C5lG,KAAK0oG,aAAaE,gBAAgBK,EAAKJ,eAAe/tG,IAAK+G,GAE/D,kBAAkBgvE,GACd,IAAI5xE,EAQJ,OAPA,eAAKe,KAAKouG,gBAAiB,CAACrvG,EAAG+rG,IACvB,eAAEA,GAAa1mG,KAAKpE,KAAK4qG,kBAAoB/5B,IAGjD5xE,EAAS6rG,GACF,IAEJ7rG,EAEX,qBAAqBovG,EAAcC,IAC3BD,GAAgBC,IAChBtuG,KAAK6tG,0BAA0BS,EAAcD,GAGrD,0BAA0BE,EAAgBC,GACtCxuG,KAAKiyD,sBAAsB,qBAAsB,CAC7CgT,kBAAmB,CAAC,WAAY,aADpCjlE,CAEG,CACCyuG,WAAY,CAACF,GACbG,aAAc,CAACF,KAGvB,WAAW1D,GACP,IAAIj6B,EAAWi6B,EAAY5qC,SAAWlgE,KAAK2uG,aAAa7D,GAAeA,EACnE9B,EAAchpG,KAAK0oG,aAAaK,uBAAuB,GACvDP,EAAexoG,KAAK4Y,OAAO,gBAC3BqwF,EAAOjpG,KAAK0oG,aAAaC,cAAc93B,GACvCo4B,EAAKJ,eAAe/tG,MAAQkuG,IACxBA,GACAhpG,KAAK4tG,qBAAqB5tG,KAAK0oG,aAAaQ,aAAaF,IAAc,GAE3EhpG,KAAK4tG,qBAAqB3E,GAAM,GAChCjpG,KAAKiuG,qBAAqBzF,EAAc33B,GACxC7wE,KAAKgxD,8BAA8B,eAAgB6f,IAG3D,aAAai6B,GACT,IAAIj6B,EAAWi6B,EAAY5qC,SAAWlgE,KAAK2uG,aAAa7D,GAAeA,EACnE7B,EAAOjpG,KAAK0oG,aAAaC,cAAc93B,GACvC23B,EAAexoG,KAAK4Y,OAAO,gBAC3BqwF,EAAKJ,eAAe+F,WACpB5uG,KAAK4tG,qBAAqB3E,GAAM,GAChCjpG,KAAKiuG,qBAAqBzF,EAAc,MACxCxoG,KAAKgxD,8BAA8B,eAAgB,QAI/D,GAAS69C,UAAY,QACN,U,0BCrcX,GAAgB,UAChBC,GAAqB,GAAgB,QACrC,GAA8BA,GAAqB,YACnDC,GAAsB,wBACtB,GAAgC,GAAgB,mBAChD,GAA6BD,GAAqB,WAClDE,GAAmB,aACnBC,GAAwB,kBACxBC,GAA4B,sBAC5BC,GAA0B,oBAC1BC,GAAyB,mBACzBC,GAAuB,iBACvBC,GAAwB,qBACxBC,GAAW,KACXC,GAAa,OACbC,GAAa,OACbC,GAAc,QACdC,GAAc,QACdC,GAAa,OACbC,GAAU,CAAC,YAAa,UAAW,mBAAoB,WAAY,WAAY,gBAAiB,kBAAmB,iBAAkB,qBAAsB,uBAC3JC,GAA2B,CAACP,GAAUC,GAAYG,GAAaC,IAC/DG,GAAqB,gBACrB,GAAS,iBACb,MAAM,WAAoB,GACtB,aAAaC,GACT,IAAI/wG,EAAS,KAQb,OAPI,eAAS+wG,GACL,OAASA,EAAgBpuG,OACzB3C,EAAS+wG,EAAgBpuG,MAAQmuG,IAGrC9wG,EAAS+wG,EAEN/wG,EAEX,aAAa+wG,GACT,OAAO,eAASA,IAAoBA,EAAgBh4E,MAExD,qBACI,OAAO,OAAAv9B,EAAA,WAAOisG,MAAMC,qBAAsB,CACtCsJ,UAAWF,GACXzrD,oBAAoB,EACpBa,SAAU,CACNiH,GAAI,WACJE,GAAI,YAERtH,UAAW,KACXC,QAAS,KACTirD,iBAAkB,KAClBtrD,SAAU,KACVD,SAAU,KACVwrD,cAAe,KACfC,iBAAkB,OAClB71D,SAAS,EACTrkC,YAAQ,EACRm6F,gBAAiB,KACjBC,eAAgB,KAChBC,mBAAoB,KACpBC,oBAAqB,OAG7B,uBACI,OAAO9J,MAAM+J,uBAAuB9oF,OAAO,CAAC,CACxC+oF,OAAQ,KAAO,iBACf56F,QAAS,CACL+tC,UAAW,SAIvB,wBACI6iD,MAAMiK,wBACN,OAAAl2G,EAAA,WAAOuF,KAAK4wG,mBAAoB,CAC5B9sD,oBAAqB,CACjB+sD,MAAO,OACPC,MAAO,wBAInB,eACI9wG,KAAKmwD,SAAW,GAChB,eAAK0/C,GAAS,CAACzuG,EAAO0wD,KAClB9xD,KAAKmwD,SAAS2B,GAAU9xD,KAAKiyD,sBAAsBH,IAAW,SAGtE,yBACI40C,MAAMqK,yBACN,OAAAt2G,EAAA,WAAOuF,KAAKgxG,oBAAqB,CAC7BntD,WAAW,EACX2kD,cAAc,IAGtB,mBACA,iBACI,OAAOxoG,KAAKixG,SAAWjxG,KAAKixG,SAASvjC,WAAa,iBAEtD,sBACI,OAAO1tE,KAAKknG,iBAEhB,iBACI,OAAOlnG,KAAKixG,SAAWjxG,KAAKixG,SAASvjC,gBAAa,EAEtD,iBACI,OAAO,OAAAjzE,EAAA,WAAOisG,MAAMU,iBAAkB,CAClCC,MAAO,KACH,IAAIpL,EAAQ,eAAEj8F,KAAK4Y,OAAO,mBAC1B5Y,KAAKo7C,OACA6gD,EAAMriG,QAAWoG,KAAKsnG,uBAG3BtnG,KAAKunG,WAAWtL,EAAM,KAE1BiV,OAAQlxG,KAAKo7C,OAGrB,iBACI,IAAI+1D,EAAkBnxG,KAAK0qG,qBACvB0G,EAAeD,EAAgB/yG,OAAO,IAAIupB,OAAOynF,KACjDiC,EAAeF,EAAgB/yG,OAAO,IAAIupB,OAAO0nF,KACjDiC,EAAwBD,EAAalzF,QAAQ,IAAIwJ,OAAO,KAC5D,OAAI2pF,EAAsBx5F,KAAK,IAAI6P,OAAOmnF,KAAqB1tG,MAAMgwG,IAAiB,EAC3EA,EAEPC,EAAaz3G,OACNy3G,EAEJ3K,MAAM6K,iBAEjB,WAAWvmD,GACP,IAKIwmD,EALAC,EAASzxG,KAAK0xG,oBAAoB1mD,GAClC2mD,EAAa3xG,KAAKuxG,gBAAe,GACjCF,EAAerxG,KAAK4xG,iBAAiB95F,KAAK,IAAI6P,OAAO0nF,KACrD+B,EAAe,eAAEpxG,KAAK4Y,OAAO,mBAC7Bi5F,KAA4BT,EAAax3G,SAAUy3G,EAAaz3G,QAEpE,OAAQoxD,GACJ,KAAKukD,GACDiC,EAAaK,EAAyB7xG,KAAK8xG,UAAUL,GAAUE,EAC/D3xG,KAAK+xG,mBAAmBP,GACpBG,EAAW/jH,GAAG6jH,EAAOlnC,UACrBvqE,KAAKmwD,SAASkgD,gBAAgBsB,GAElC,MACJ,KAAKnC,GACDgC,EAAaK,EAAyB7xG,KAAKgyG,UAAUP,GAAUE,EAC/D3xG,KAAK+xG,mBAAmBP,GACpBG,EAAW/jH,GAAG6jH,EAAO15F,SACrB/X,KAAKmwD,SAASmgD,eAAeqB,GAEjC,MACJ,KAAKjC,GACD8B,EAAaxxG,KAAK4Y,OAAO,cAAgB5Y,KAAKiyG,sBAAwBjyG,KAAKkyG,sBAAsBT,EAAQzmD,GACzGhrD,KAAK+xG,mBAAmBP,GACxB,MACJ,KAAK/B,GACD+B,EAAaxxG,KAAK4Y,OAAO,cAAgB5Y,KAAKkyG,sBAAsBT,EAAQzmD,GAAYhrD,KAAKiyG,sBAC7FjyG,KAAK+xG,mBAAmBP,GACxB,MACJ,KAAK7B,GACD6B,EAAaC,EAAOlnC,QACpBvqE,KAAK+xG,mBAAmBP,GACxB,MACJ,KAAK5B,GACD4B,EAAaC,EAAO15F,OACpB/X,KAAK+xG,mBAAmBP,GACxB,MACJ,QACI,OAAO9K,MAAMyL,WAAWnnD,IAGpC,mBAAmBn0C,GACXA,GAAY,IAAMA,EAASjd,QAC3BoG,KAAK4Y,OAAO,iBAAkB,eAAiB/B,IAGvD,oBAAoBm0C,GAChB,IACIymD,EADAW,EAAcpyG,KAAKuxG,gBAAe,GAMtC,OAJIzB,GAAyB9sG,SAASgoD,KAClCymD,EAASW,EAAYj0F,QAAQ,IAAIwJ,OAAO,KAAgCqwC,WAAWA,YAEvFy5C,EAASzxG,KAAK0qG,mBAAmB+G,GAC1BA,EAEX,iBACI,OAAOzxG,KAAK6W,WAEhB,2BACI,GAAI,eAAU7W,KAAKixG,UAAW,CAC1B,IAAI1/C,EAAUvxD,KAAKixG,SAASvjC,WAC5Bg5B,MAAM2L,yBAAyB9gD,IAGvC,sBACI,IAAI+gD,EAAWtyG,KAAKuxG,gBAAe,GAC/BgB,EAAcD,EAAS7sB,QAAQ,IAAI99D,OAAO,KAA8B4iD,QAC5E,OAAIgoC,EAAY34G,QACZoG,KAAKwyG,yBAAyBD,GAC9BvyG,KAAKyyG,aAAaH,EAASn0F,QAAQ,IAAIwJ,OAAOqnF,MACvCuD,IAEXvyG,KAAKmwD,SAASogD,mBAAmB+B,GAC1BA,GAEX,sBAAsBb,EAAQzmD,GAC1B,IAAIsnD,EAAWtyG,KAAKuxG,gBAAe,GAC/B1gC,EAAW7wE,KAAK2uG,aAAa2D,GAC7BrJ,EAAOjpG,KAAK0oG,aAAaC,cAAc93B,GACvC6hC,EAAmB1yG,KAAKqsG,YAAYpD,GACpC0J,EAAWL,EAASt6C,SAAS,IAAIrwC,OAAOqnF,KAC5C,GAAI0D,IAAqBJ,EAASr7C,SAASk4C,IAIvC,OAHKwD,EAAS/4G,QAAU,WAAa+4G,EAASl2F,IAAI,eAC9Czc,KAAKuqG,aAAa+H,GAEftyG,KAAKgyG,UAAUhyG,KAAK0xG,oBAAoB1mD,IAEnDhrD,KAAKmwD,SAASqgD,oBAAoB8B,GAGtC,SACQtyG,KAAKixG,WACLjxG,KAAKixG,SAASp6F,WAAW8B,SACzB3Y,KAAKixG,SAAW,MAEpBjxG,KAAK4yG,6BAA6B5yG,KAAK6yG,cACvCnM,MAAMS,SAEV,cACInnG,KAAK6W,WAAWsB,SAAS+2F,IACzBxI,MAAM2C,cAEV,UACI3C,MAAMoM,UACN9yG,KAAK+yG,kBAAkB/yG,KAAK4Y,OAAO,YACnC5Y,KAAKgzG,kBAET,qBACIhzG,KAAK4yG,6BAA6B5yG,KAAK6yG,cACvC7yG,KAAKizG,+BAET,yBACKjzG,KAAKkzG,qBAAuBlzG,KAAKmzG,eAAev5G,QAAU8sG,MAAM0M,wBAErE,4BACI,IAAIpzG,KAAKixG,SAAT,CAGA,IAAIoC,EAAiBrzG,KAAKszG,qBAC1BtzG,KAAKixG,SAAWjxG,KAAKiZ,iBAAiB,eAAE,SAASb,SAASpY,KAAK8zD,WAAY,QAASu/C,GACpF,IAAIE,EAAkBvzG,KAAKixG,SAASvjC,WACpC6lC,EAAgBp7F,SAAS82F,IACzBjvG,KAAKwzG,mBAAmBD,GACxBvzG,KAAKyzG,2BAA2BF,GAChCvzG,KAAK0zG,2BAET,+CACI,IAAI3L,EAAiB/nG,KAAKknG,iBACtByM,EAAY,gBAAa,QAAsB3zG,KAAKuyD,MACxD,OAAatB,IAAI82C,EAAgB4L,EAAW,IAAIhsF,OAAOqnF,KACvD,OAAallG,GAAGi+F,EAAgB4L,EAAW,IAAIhsF,OAAOqnF,KAAoBprG,IACtEA,EAAEwmG,kBACFxmG,EAAEu5D,iBACF,OAAalM,IAAI82C,EAAgB4L,EAAW,IAAIhsF,OAAOqnF,OACxDxzF,KAAKxb,OAEZ,wBAAwB4D,GACpB8iG,MAAMkN,wBAAwBhwG,GAC9BA,EAAEwmG,kBAEN,2BAA2BvzF,GACnB+yF,GAAA,KAAQiK,UAAUC,OAClBj9F,EAASsB,SAAS42F,IAG1B,6BAA6B74F,GACzB,IAAI+5F,EAAYjwG,KAAK+zG,aAAa/zG,KAAK4Y,OAAO,cAC9C,GAAKq3F,EAAL,CAGA,IAAI0D,EAAY,gBAAa1D,EAAWjwG,KAAKuyD,MACzCvyD,KAAKg0G,6BACL,OAAa/iD,IAAI,aAAW6O,cAAe6zC,EAAWz9F,EAAQlW,KAAKg0G,8BAEnE,OAAa/iD,IAAI,eAAE/6C,GAASy9F,IAGpC,+BACI,IAAIz9F,EAASlW,KAAK6yG,aACd5C,EAAYjwG,KAAK+zG,aAAa/zG,KAAK4Y,OAAO,cAC9C,GAAKq3F,EAAL,CAGA,IAAI0D,EAAY,gBAAa1D,EAAWjwG,KAAKuyD,MACzC0hD,EAAoBj0G,KAAK+xD,cAAcnuD,IACvC,IAAIo0B,EAAQh4B,KAAKk0G,aAAal0G,KAAK4Y,OAAO,cACtCof,EACA0H,WAAW,IAAM1/B,KAAKm0G,MAAMvwG,EAAEouD,OAAQh6B,GAEtCh4B,KAAKm0G,MAAMvwG,EAAEouD,QAElB,CACCoiD,qBAAsB,WAEtBC,EAAUzwG,GAAKqwG,EAAkB,CACjCjiD,MAAOpuD,EACPsS,OAAQ,eAAEtS,EAAEy2D,iBAEhB45C,EAAoBj0G,KAAK+xD,cAAckiD,GACnC,eAAW/9F,IAAWA,EAAOgqD,UAAY,eAAShqD,IAClDlW,KAAKg0G,kCAA+B,EACpC,OAAalqG,GAAGoM,EAAQy9F,EAAWU,KAEnCr0G,KAAKg0G,6BAA+BK,EACpC,OAAavqG,GAAG,aAAWg2D,cAAe6zC,EAAWz9F,EAAQlW,KAAKg0G,gCAG1E,iBAAiBpwG,GACb8iG,MAAM4N,iBAAiB1wG,GACvBA,EAAEwmG,kBAEN,qBACA,iBAAiB4B,EAAUX,GACvB,IAAIkJ,EAAUlJ,GAAoBrrG,KAAKknG,iBACvC8E,EAAW,eAAE,SACbA,EAAS5zF,SAASm8F,GAASp8F,SAAS62F,IAAkBvyF,IAAI,aAAc4uF,EAAmB,SAAW,WACjGW,EAAS5sF,SAAS63C,SAASq4C,KAC5BtvG,KAAKwzG,mBAAmBxH,GAE5B,IAAIkB,EAAkBxG,MAAM8E,iBAAiBQ,GAC7C,OAAIX,EACO6B,EAEPltG,KAAK4Y,OAAO,SACLs0F,EAAgBzwF,IAAI,WAAYzc,KAAK4Y,OAAO,UAEnD5Y,KAAK4Y,OAAO,UACLs0F,EAAgBzwF,IAAI,YAAazc,KAAK4Y,OAAO,WAEjDs0F,EAEX,oBAAoBjE,EAAMmD,GACtBpsG,KAAKkrG,aAAalrG,KAAKw0G,eAAevL,GAAOmD,GAC7CpsG,KAAKmwD,SAAS+/C,iBAAiB,CAC3BpF,YAAa,eAAiBsB,GAC9Bv7B,SAAUo4B,EAAKJ,eAAeh/F,KAC9B4qG,eAAgB,eAAiBrI,EAAWp0C,SAAS,IAAIrwC,OAAOqnF,QAGxE,qBACI,IAAI7pD,EAAWnlD,KAAK4Y,OAAO,YACvBy6F,EAAiB,CACjB59D,kBAAmBz1C,KAAK4Y,OAAO,qBAC/BirC,UAAW7jD,KAAK4Y,OAAO,aACvB87F,cAAc,EACdpwD,mBAAoB1gD,GAAK5D,KAAK20G,2BAA2B/wG,GACzDgxG,uBAAuB,EACvBrwD,oBAAoB,EACpBN,gBAAgB,EAChBkB,SAAU,CACNiH,GAAIjH,EAASiH,GACbE,GAAInH,EAASmH,GACbnzC,GAAInZ,KAAK6yG,aACTx5F,UAAW,WAEfP,SAAS,EACT0sC,WAAW,EACX3oC,OAAQ,OACRxR,MAAO,OACP45C,QAASjlD,KAAK60G,2BAA2Br5F,KAAKxb,MAC9C4kD,SAAU5kD,KAAK80G,4BAA4Bt5F,KAAKxb,MAChD2kD,SAAU3kD,KAAK+0G,4BAA4Bv5F,KAAKxb,MAChDg1G,gBAAiB,IAErB,OAAO3B,EAEX,2BAA2BzV,GACvB59F,KAAKmwD,SAASlL,QAAQ24C,GAE1B,4BAA4BA,GACxB59F,KAAKmwD,SAASvL,SAASg5C,GAClBA,EAAIr9C,SACLvgD,KAAKi1G,wBACLj1G,KAAKgxD,8BAA8B,WAAW,IAGtD,4BAA4B4sC,GACxB59F,KAAKmwD,SAASxL,SAASi5C,GAE3B,0BAA0Bh6F,GACtB,IACIkgD,oBAAqBA,EACrBQ,mBAAoBA,GACpBtkD,KAAK4Y,SACT,OAAI,eAAW0rC,GACJA,EAAmB1gD,GACnB,eAAWkgD,GACXA,EAAoBlgD,GAEpB0gD,GAAsBR,EAGrC,2BAA2BlgD,GACvB,IAAK5D,KAAKk1G,0BAA0BtxG,GAChC,OAAO,EAEX,GAAI,aAAWuxG,WAAWvxG,EAAEsS,QACxB,OAAO,EAEX,IAAIk/F,EAAuBp1G,KAAKq1G,yBAAyBzxG,EAAEsS,QACvDo/F,EAAkBt1G,KAAKu1G,sBACvBC,EAAex1G,KAAKy1G,kBAAkB7xG,EAAEsS,QACxCw/F,EAAY11G,KAAK6W,WAAW4uE,QAAQ,IAAI99D,OAAOmnF,KAC/C6G,EAAoBH,EAAa,KAAOE,EAAU,IAAMF,EAAa57G,QAAU87G,EAAU97G,OACzFg8G,EAAwB51G,KAAK61G,kBAAkBT,EAAsBE,IAAoBE,EAAa57G,OAC1G,OAAIg8G,IAAyBD,IACrB,YAAc31G,KAAKqqG,uBACnBrqG,KAAK81G,2BAA2BN,IAE7B,GAIf,yBAAyBt/F,GACrB,OAAO,eAAEA,GAAQiI,QAAQ,IAAIwJ,OAAO,KAExC,sBACI,OAAO3nB,KAAKixG,SAASvjC,WAAW51D,KAAK,IAAI6P,OAAO,KAEpD,kBAAkBzR,GACd,OAAO,eAAEA,GAAQiI,QAAQ,IAAIwJ,OAAOmnF,KAAqBtyF,GAAG,GAEhE,kBAAkBu5F,EAAgBC,GAC9B,IAAIC,GAAS,EAMb,OALA,eAAKD,EAAc,CAAC50G,EAAO80G,KACnBH,EAAenoH,GAAGsoH,KAAcD,IAChCA,GAAS,KAGVA,EAEX,2BAA2BT,GACvB,IAAIW,EAAmBX,EAAa19F,KAAK,IAAI6P,OAAOqnF,KAChDoH,EAAgB,OAAA37G,EAAA,WAAO,GAAIuF,KAAKq2G,gBAChCF,EAAiBv8G,OAAS,GAC1B,eAAKw8G,EAAe,CAACh1G,EAAOuxG,KACxB,IAAI2D,EAAWt2G,KAAKy1G,kBAAkB9C,EAAS1wB,SAAS7iE,SACpDk3F,EAASl3F,SAASxxB,GAAG4nH,EAAap2F,SAASA,YAAck3F,EAAS1oH,GAAG4nH,EAAap2F,WAClFpf,KAAKyyG,aAAaE,KAKlC,aAAa1W,GACT,IAAIgN,EAAOjpG,KAAK0oG,aAAaC,cAAc3oG,KAAK2uG,aAAa1S,IAE7D,GADAj8F,KAAKwyG,yBAAyBvW,GACzBj8F,KAAKqsG,YAAYpD,GAAtB,CAGA,IAAI0J,EAAW1W,EAAMjkC,SAAS,IAAIrwC,OAAOqnF,KACrCuH,EAAoB5D,EAAS/4G,OACjC8sG,MAAM6D,aAAatO,GACdsa,GACDv2G,KAAKw2G,oBAAoBvN,EAAMhN,GAE9Bj8F,KAAKy2G,kBAAkB9D,IACxB3yG,KAAK02G,aAAaza,IAG1B,yBAAyBA,GACrB,IAAI0a,EAAiB1a,EAAM78E,OAAO,IAAIuI,OAAO,KAA6BivF,WAAW9+F,KAAK,IAAI6P,OAAO,KACjGgvF,EAAe/8G,SACf+8G,EAAet+F,YAAY,IAC3BrY,KAAKyyG,aAAakE,EAAe7+F,KAAK,IAAI6P,OAAOqnF,OAGzD,kBAAkB2D,GACV3yG,KAAKy2G,kBAAkB9D,IACvB3yG,KAAK62G,iBAAiBlE,GAG9B,kBAAkBA,GACd,MAAO,YAAcA,EAASl2F,IAAI,cAEtC,aAAawtF,GACT,IAAIpmD,EAAY7jD,KAAK4Y,OAAO,aAAe5Y,KAAK4Y,OAAO,aAAayiC,KAAO,GACvEs3D,EAAW1I,EAAajyC,SAAS,IAAIrwC,OAAOqnF,KAC5C8H,EAAkB92G,KAAK+2G,oBAAoB9M,GAC3CjqG,KAAKixG,UAAYjxG,KAAKixG,SAASr4F,OAAO,aACjC,eAAU5Y,KAAKq2G,kBAChBr2G,KAAKq2G,eAAiB,IAErBr2G,KAAKq2G,eAAerzG,SAAS2vG,IAC9B3yG,KAAKq2G,eAAepzG,KAAK0vG,GAEzB9uD,GACAmzD,GAAA,KAAG9nG,KAAKyjG,GAEZ,QAAkBsE,MAAMtE,EAAUmE,GAC9BjzD,IACI,eAAcA,EAAUnrD,MACxBmrD,EAAUnrD,GAAGysD,SAAW2xD,GAE5B92G,KAAKk3G,SAASvE,EAAU9uD,IAE5B8uD,EAASl2F,IAAI,aAAc,YAGnC,SAAShH,EAAYK,GACjBkhG,GAAA,KAAGG,QAAQ1hG,EAAYK,GAE3B,oBAAoB4/F,GAChB,IAAItF,EAAmBpwG,KAAK4Y,OAAO,oBAAoB9a,cACnDs5G,EAAmB1B,EAAUt2F,OAAO,IAAIuI,OAAO,KAC/Cw9B,EAAW,CACX9rC,UAAW,OACXF,GAAIi+F,EACJh7F,OAAQ,CACJxJ,EAAG,EACH+c,GAAI,IAGZ,OAAQygF,GACJ,IAAK,OACDjrD,EAASiH,GAAK,WACdjH,EAASmH,GAAK,YACd,MACJ,IAAK,QACDnH,EAASiH,GAAK,YACdjH,EAASmH,GAAK,WACd,MACJ,QACQtsD,KAAK4Y,OAAO,eACZusC,EAASiH,GAAK,WACdjH,EAASmH,GAAK,cAEdnH,EAASiH,GAAK,YACdjH,EAASmH,GAAK,YAG1B,OAAOnH,EAEX,gCAAgCooD,GAC5B,GAAKA,EAAWl+D,KAAKz1C,OAArB,CAGA,IAAIi3E,EAAW08B,EAAWl+D,KAAK,GAAGwhC,SAC9Bo4B,EAAOjpG,KAAK0oG,aAAaC,cAAc93B,GAC3C,GAAKo4B,EAAL,CAGA,IAAIgB,EAAe,eAAEsD,EAAWl+D,KAAK,GAAGy7D,aACpC6H,EAAW1I,EAAanyF,KAAK,IAAI6P,OAAOqnF,KACxCqI,EAAsBr3G,KAAKqsG,YAAYpD,KAAU0J,EAAS/4G,OAK9D,GAJIy9G,IACAr3G,KAAKw2G,oBAAoBvN,EAAMgB,GAC/B0I,EAAW1I,EAAanyF,KAAK,IAAI6P,OAAOqnF,MAExC/E,EAAahoB,UAAY0wB,EAAS1wB,SAAW,YAAc0wB,EAASl2F,IAAI,cAA5E,CAGAzc,KAAKwtG,2BAA2BD,GAChC,IAAI+J,EAA0BzmC,IAAY,IAAUA,EAAS0mC,iBAC7D,GAAK1mC,IAAYA,EAASl8B,WAAY2iE,EAGtC,GAAI,IAAM3E,EAAS/4G,OAAQ,CACvB,IAAI49G,EAAe,eAAEvN,EAAaxkB,QAAQ,IAAI99D,OAAOqnF,KAAmB,IACxEhvG,KAAKyyG,aAAa+E,IACbjK,EAAWkK,UAAYz3G,KAAKixG,UAAYjxG,KAAKixG,SAASr4F,OAAO,YAC9D5Y,KAAK4Y,OAAO,WAAW,QAGvB5Y,KAAKq2G,gBAAkBr2G,KAAKq2G,eAAez8G,OAAS,GAChDoG,KAAKq2G,eAAe,GAAGzoH,GAAG+kH,IAC1B3yG,KAAKyyG,aAAaE,GAG1B3yG,KAAKuqG,aAAaN,MAG1B,aAAayN,GACT,IAAItB,EAAgB,OAAA37G,EAAA,WAAO,GAAIuF,KAAKq2G,gBACpC,eAAKD,EAAe,CAACh1G,EAAOuxG,MACpB+E,EAAY9pH,GAAG+kH,IAAa,gBAAS+E,EAAY,GAAI/E,EAAS,OAC9DA,EAASvzF,SAAS/G,YAAY,IAC9BrY,KAAK62G,iBAAiBlE,MAIlC,iBAAiBA,GACb,IAAIvxG,EAAQpB,KAAKq2G,eAAe/3G,QAAQq0G,GACpC9uD,EAAY7jD,KAAK4Y,OAAO,aAAe5Y,KAAK4Y,OAAO,aAAawiC,KAAO,KACvEh6C,GAAS,GACTpB,KAAKq2G,eAAehyC,OAAOjjE,EAAO,GAEtCpB,KAAK23G,aAAahF,GAClB9uD,GAAa7jD,KAAKk3G,SAASvE,EAAU9uD,GACrC8uD,EAASl2F,IAAI,aAAc,UAE/B,aAAahH,GACTuhG,GAAA,KAAG9nG,KAAKuG,GAAY,GAExB,wBACI,IAAI2gG,EAAgB,OAAA37G,EAAA,WAAO,GAAIuF,KAAKq2G,gBAChCM,EAAiB32G,KAAKixG,SAASvjC,WAAW51D,KAAK,IAAI6P,OAAO,KAC9DgvF,EAAet+F,YAAY,IAC3B,eAAK+9F,EAAe,CAACr3G,EAAG4zG,KACpB3yG,KAAKyyG,aAAaE,KAG1B,mBAAmBp4D,GACXA,GACAv6C,KAAK43G,qBAGb,eAAevoE,GACX,GAAIwgE,GAAQ7sG,SAASqsC,EAAKztC,MACtB5B,KAAK6nG,oBAGT,OAAQx4D,EAAKztC,MACT,IAAK,UACD5B,KAAK+yG,kBAAkB1jE,EAAKxtC,OAC5B,MACJ,IAAK,YACL,IAAK,WACL,IAAK,mBACD7B,KAAKszD,cACL,MACJ,IAAK,SACDjkB,EAAKktC,eAAiBv8E,KAAK4yG,6BAA6BvjE,EAAKktC,eAC7Dv8E,KAAKszD,cACL,MACJ,IAAK,sBACL,IAAK,qBACD,MACJ,QACIozC,MAAMwH,eAAe7+D,IAGjC,kBAAkBwoE,GACd,OAAOA,EAAU73G,KAAKm0G,QAAUn0G,KAAK83G,QAEzC,qBACA,MAAM9lD,GACF,IAAI3iB,EAAO,CACP0oE,QAAS/lD,GAETvwC,GAAU,IAAK,eAAUoS,SAASpS,UAEtC,GADAzhB,KAAKmwD,SAASnL,UAAU3V,GACpBA,EAAKkR,OACL,OAAO9+B,EAEX,IAEQu2F,EAFJ7yD,EAAWnlD,KAAKi4G,qBAAqBjmD,GACrC7M,IAEKnlD,KAAKixG,WACNjxG,KAAKk4G,4BACLl4G,KAAKixG,SAASvjC,WAAWv1D,SAASnY,KAAKm4G,gBACvCn4G,KAAKo4G,oBACLp4G,KAAKq4G,qBACLr4G,KAAKs4G,oBACLt4G,KAAKkrG,aAAalrG,KAAK0oG,aAAayC,iBAExCnrG,KAAKgxD,8BAA8B,WAAW,GAC9ChxD,KAAKixG,SAASr4F,OAAO,WAAYusC,GACjC1jC,EAAUzhB,KAAKixG,SAAS51D,OACxB2W,GAASA,EAAMo4C,kBACfpqG,KAAKu4G,sBACA,OAASvmD,QAAS,IAAWA,GAAiB,QAAUgmD,EAAuBhmD,EAAM0X,qBAAkB,IAAWsuC,OAA7E,EAA6GA,EAAqBv5G,QAAUutC,GAAA,KAAUpqC,MAC5L5B,KAAKw4G,gDAGb,OAAO/2F,EAEX,qBACIzhB,KAAKy4G,kBAAoB,MAAM9wF,OAAO,IAAI,SAC1C3nB,KAAKsd,QAAQ,OAAQtd,KAAKy4G,mBAC1Bz4G,KAAKsd,QAAQ,CACTxuB,GAAIkR,KAAKy4G,kBACTzR,KAAM,QACPhnG,KAAKixG,SAASvjC,YAErB,uBACI1tE,KAAKixG,UAAYjxG,KAAKsd,QAAQ,KAAM,KAAMtd,KAAKixG,SAASvjC,YACxD1tE,KAAKsd,QAAQ,YAAQ,GAEzB,aACI,OAAOtd,KAAK4Y,OAAO,WAAa5Y,KAAK4Y,OAAO,YAAYO,IAAM,eAAE,aAAW2mD,eAE/E,0BACI,OAAO,OAAArlE,EAAA,WAAO,GAAIuF,KAAK4Y,OAAO,YAAa,CACvCO,GAAInZ,KAAK6yG,eAGjB,qBAAqBkF,GACjB,IAAI5yD,EAAWnlD,KAAK04G,0BAChBC,EAAoB34G,KAAK44G,sBAAsB,YAC/CC,EAAoB74G,KAAKiyD,sBAAsB,gBAAiBs7C,GAChEwK,GAAWA,EAAQ56C,gBAAkBw7C,IACrCxzD,EAAShsC,GAAK4+F,GAElB,IAAIxK,EAAa,CACbpoD,SAAUA,EACV6M,MAAO+lD,GASX,OAPAc,EAAkBtL,GACdA,EAAWhtD,OACX4E,EAAW,KACJooD,EAAWv7C,QAClBu7C,EAAWv7C,MAAMzR,QAAS,EAC1Bw3D,EAAQ56C,kBAELhY,EAEX,WACI,GAAK,iBAEE,GAAInlD,KAAKixG,SAAU,CACtB,IAAI6H,EAAe94G,KAAKixG,SAASr4F,OAAO,YACxC8tF,MAAMqS,WACN/4G,KAAKixG,UAAYjxG,KAAKixG,SAASr4F,OAAO,WAAYkgG,QAElDpS,MAAMqS,gBANNrS,MAAMqS,WASd,QACI,IAAIt3F,EAOJ,OANIzhB,KAAKixG,WACLxvF,EAAUzhB,KAAKixG,SAAS71D,OACxBp7C,KAAKgxD,8BAA8B,WAAW,IAElDhxD,KAAKg5G,uBACLh5G,KAAK4Y,OAAO,iBAAkB,MACvB6I,IAAW,IAAK,eAAUoS,SAASpS,UAE9C,OAAOo2F,GACH,IAAIt9D,EAAUv6C,KAAK4Y,OAAO,WAE1B,OADAi/F,OAAU,IAAWA,GAAWt9D,EAAUs9D,EACnC73G,KAAK+yG,kBAAkB8E,GAElC,OACI,OAAO73G,KAAKs/F,QAAO,GAEvB,OACI,OAAOt/F,KAAKs/F,QAAO,IAG3B,eAAkB,gBAAiB,IACpB,UC1xBA,MCWX2Z,GAAe,kBACf,GAAW,CACXrsC,kBAAmB,SACnBxvD,SAAU,UACV87F,WAAY,SACZ7c,YAAa,eAEb8c,GAAa,CAAC,oBAAqB,WAAY,aAAc,eAC7DC,GAAwB,EAAQxmD,eAAe7C,QAAQ,CACvDU,KAAM,WACFzwD,KAAKmxD,aAAa,2BAEtBqf,oBAAqB,SAAS6oC,GAC1B,IAAKA,EACD,OAAO,EAEX,IAEIxiG,EACAyiG,EACAC,EACAC,EALA71G,EAAO3D,KACPmrE,EAAiB,eAAEkuC,EAAQnjG,QAiC/B,OA5BA,eAAKijG,IAAY,WACb,IAAIM,EAAO91G,EAAK0Z,QAAQrd,MAExB,GADA6W,EAAW4iG,GAAQA,EAAK/hG,UACpBb,IAAaA,EAASjpB,GAAGu9E,IAAmBt0D,EAASiB,KAAKqzD,GAAgBvxE,QAAS,CACnF,IAAI8/G,EAAmBC,EACvBJ,EAAqBpuC,EAAehtD,QAAQ,8BAC5Cm7F,EAAoBC,EAAmBn6F,SACvC,IAAIo7C,EAAWi/C,EAAKh/C,YAAY6+C,GAC5B/jG,EAAcgkG,EAAmB,IAAMA,EAAmB,GAAG/1C,UAC7DhL,EAAa8gD,EAAkBl1G,KAAK,WACpC0R,EAAU,CACVk8C,MAAOqnD,EACPO,cAAe,eAAiBzuC,GAChCj1D,OAAQ,GAASlW,MACjBw6D,SAAUA,EACVt9C,IAAKu8F,EAAKz3C,WAAWxH,GACrBjlD,YAAaA,EACbgF,OAAQ,OAASi+C,QAAc,IAAWA,GAAsB,QAAUkhD,EAAoBlhD,EAAWC,aAAU,IAAWihD,GAA6B,QAAUC,EAAwBD,EAAkBnkG,UAAiB,IAAWokG,OAApL,EAAqNA,EAAsBp/F,QAMtS,GAJAzE,EAAQvL,MAAQkvG,EAAKjpC,qBAAuBipC,EAAKjpC,oBAAoB16D,GACrEnS,EAAKuuD,cAAc,yBAA0Bp8C,GAC7CnS,EAAKk2G,qBAAqB/jG,GAC1B0jG,EAAY1jG,EAAQvL,MAChBivG,EACA,OAAO,MAIZA,GAEXK,qBAAsB,SAEtBC,GAAkB,EAAQ/mD,KAAKhD,QAAQ,CACvC0D,YAAa,WACT,IAAI9vD,EAAO3D,KACP6W,EAAWlT,EAAK+T,UAAUS,SAAS8gG,IACvCj5G,KAAKsd,QAAQ,OAAQ,eAAgBzG,GACrC7W,KAAKiZ,iBAAiBpC,EAAU,GAAa,CACzCs5F,cAAe,SAAS5C,GACpB,IAAIv7C,EAAQu7C,EAAWv7C,MACnB+nD,EAAsBxM,EAAW37F,UACjCrH,EAAQ5G,EAAKguD,cAAc,eAAe6e,oBAAoBxe,GAC9DznD,GACAwvG,EAAoBnhG,OAAO,QAASrO,GACpCynD,EAAMo4C,mBAENmD,EAAWhtD,QAAS,GAG5BmwB,YAAa,SAASC,GAClBA,EAAOE,SAASH,aAAeC,EAAOE,SAASH,YAAYC,IAE/D/0B,SAAUj4C,EAAKwb,0BACfjJ,OAAQvS,EAAKiO,UAAUiF,gBAIxBmjG,GAAoB,CAC3Br8G,eAAgB,WACZ,MAAO,CACH+4C,uBAAwB,OAGhC8e,YAAa,CACTykD,YAAab,IAEjB1jD,MAAO,CACHwkD,gBAAiBJ,KCjGzB,EAAa1jD,eAAe,cAAe4jD,ICK3C,IAAI,GAAkB,eAClBG,GAAsB,mBACtBC,GAA0B,iBAC1BC,GAAe,SACfC,GAA0B,EAAQ1nD,eAAe7C,QAAQ,CACzDU,KAAM,WACFzwD,KAAKu6G,mBAAqBv6G,KAAKqd,QAAQ,qBACvCrd,KAAKw6G,UAAYx6G,KAAKqd,QAAQ,aAElCo9F,gBAAiB,SAASroF,EAAOk1C,GAC7B,IACIozC,EACAC,EAFAh3G,EAAO3D,KAGP46G,EAAgB56G,KAAK66G,oBAAoBzoF,GAC7C,OAAIk1C,GACAozC,EAAY,eAAE,QAAQviG,SAAS,IAC/BwiG,EAAe,eAAE,SAASxiG,SAASiiG,IAAyBjiG,SAASxU,EAAKiU,gBAAgByiG,KAC1F,OAAavwG,GAAG6wG,EAAc,OAAgBh3G,EAAKwtD,cAAa,SAAU9hB,GACtE,IACIqrE,EADA92G,EAAIyrC,EAAK2iB,MAET8oD,EAAgB,eAAEl3G,EAAEy2D,eAAel8C,QAAQ,IAAM,IAAiB/c,QACtEwC,EAAEwmG,kBACF,eAAK9iC,GAAgB,SAAUvoE,EAAG4hE,GAC9B+5C,EAAY,eAAE/5C,GAAc3I,SAAS,SAASA,SAAS,MAAMx7C,GAAGs+F,GAChEn3G,EAAKo3G,eAAeL,MAExB/2G,EAAKguD,cAAc,aAAehuD,EAAKguD,cAAc,YAAYqpD,6BAErE,eAAE,QAAQtpD,KAAK,CACX3I,QAASplD,EAAKguD,cAAc,WAAW4L,oBAAoB3jE,OAC3DotG,KAAM,iBACPxL,QAAQmf,GAAc5gF,OAAO6gF,GAAexiG,SAASsiG,GACjDA,GAEJE,GAEXC,oBAAqB,SAASzoF,GAC1B,IAAIrZ,EAAUqZ,EAAM6oF,IAAM7oF,EAAMrZ,QAAQ5d,QAAQi3B,EAAM6oF,IAAK,IAAM7oF,EAAMrZ,SAAWqZ,EAC9E8oF,EAAW,eAAE,SAAS/iG,SAASgiG,IAAqB59G,KAAKwc,GAI7D,OAHIqZ,EAAM6oF,KACN,eAAE,OAAOvpD,KAAK,OAAQt/B,EAAM6oF,KAAK1+G,KAAK61B,EAAM6oF,KAAK7iG,SAAS8iG,GAEvDA,GAEXC,eAAgB,SAAS/oF,EAAOooC,EAAU4gD,GACtC,IACIC,EACAC,EAFA33G,EAAO3D,KAGX,GAAIo7G,EAIA,OAHAA,EAActjG,KAAK,IAAMqiG,IAAqBxhG,SAC9C0iG,EAAuB13G,EAAK82G,gBAAgBroF,GAC5CgpF,EAAc5f,QAAQ6f,GACfA,EAEX,IAAInxC,EAAc1P,GAAY,IAAM72D,EAAK42G,mBAAmBviG,YAAcrU,EAAK62G,UAAY72G,EAAK42G,mBAC5FjzC,EAAiB4C,EAAYpF,mBACjC,eAAKwC,GAAgB,SAAUvoE,EAAG4hE,GAG9B,GAFA06C,EAAuB13G,EAAK82G,gBAAgBroF,EAAOk1C,GACnDg0C,EAAiBA,GAAkBD,EAC/B7gD,GAAY,EAAG,CACf,IAAI4C,EAAO8M,EAAYlD,gBAAgB,eAAErG,IAAenkD,GAAGg+C,GAC3D72D,EAAKo3G,eAAe39C,EAAKtuD,QACzBusG,EAAqB9b,YAAYniC,OAC9B,CACH,IAAIiE,EAAS,eAAEV,GAAc3I,SAAS,SAClC6sC,EAAcxjC,EAAOrJ,SAAS,MAC9Br0D,EAAK42G,mBAAmBviG,aACxBrU,EAAKo3G,eAAelW,EAAY9sF,QAChC,eAAE4oD,GAAc5mC,OAAOshF,KAEvB13G,EAAKo3G,eAAelW,EAAYt6B,SAChClJ,EAAOkJ,QAAQixB,QAAQ6f,QAInC,IAAIE,EAAqB53G,EAAKguD,cAAc,YAE5C,OADA4pD,GAAsBA,EAAmBP,yBAClCM,GAEXP,eAAgB,SAAS39C,GACrB,IAAKA,EAAM,CACP,IAAIo+C,EAAiBx7G,KAAKu6G,oBAAsBv6G,KAAKu6G,mBAAmB7iG,UAExE,GADA0lD,EAAOo+C,GAAkBA,EAAe1jG,KAAK,IAAM,KAC9CslD,IAASA,EAAKxjE,OAAQ,CACvB,IAAI6hH,EAAmBz7G,KAAKw6G,UAAU9iG,UACtC0lD,EAAOq+C,GAAoBA,EAAiB3jG,KAAK,IAAM,KAG/DslD,GAAQA,EAAKnG,SAAS,KAAoBmG,EAAKzkD,UAEnDu4C,cAAe,SAAS7hB,GACpB,OAAQA,EAAKztC,MACT,IAAK,kBACDytC,EAAK+hB,SAAU,EACf,MACJ,QACIpxD,KAAKC,SAASovC,OAInBqsE,GAAsB,CAC7B/9G,eAAgB,WACZ,MAAO,CACHm3C,iBAAiB,IAGzB0gB,YAAa,CACTmmD,cAAerB,IAEnB1kD,UAAW,CACPJ,YAAa,CACTpxD,KAAM,CACFqsD,KAAM,WACF,IAAI9sD,EAAO3D,KACP47G,EAA0Bj4G,EAAKguD,cAAc,iBACjDhuD,EAAK1D,WACL0D,EAAKotF,kBAAkBjhF,KAAI,SAAUsiB,EAAOgpF,GACpCz3G,EAAKiV,OAAO,oBACZgjG,EAAwBT,eAAe/oF,OAAO,EAAQgpF,MAG9Dz3G,EAAK2hE,QAAQx1D,KAAI,SAAUlM,GACvB,IAAIA,GAAK,cAAgBA,EAAEi+D,WAA3B,CAGA,IAAI+5C,EAA0Bj4G,EAAKguD,cAAc,iBAC7CiqC,EAAoBj4F,EAAKguD,cAAc,WACvCiqC,IAAsBA,EAAkBigB,cACxCD,GAA2BA,EAAwBb,0BCrI/E,EAAS3kD,eAAe,gBAAiBslD,ICiCzC,IAAII,GAAgB,UAChB,GAAoB,cACpBC,GAAyB,mBACzBC,GAA2B,wBAC3B,GAAuB,iBACvB,GAAa,CAAC,uBAAwB,qBAAsB,cAAe,cAAe,oBAAqB,WAAY,aAAc,oBAAqB,kBAAmB,YAAa,qBAAsB,kBAAmB,YAAa,mBAAoB,qBACxQ,GAAiB,SAAS3wG,GAC1B,OAAO,eAASA,IAAU,MAAQA,EAAM2I,OAAO,IAE/CioG,GAAe,SAAS5wG,GACxB,OAAO,eAASA,IAAU,OAASA,EAAM2I,OAAO,IAEhDkoG,GAAqB,SAASzmG,GAC9B,IAAI6tF,EAAe7tF,EAAW/X,IAAI,GAAG4lG,aACjC6Y,EAAaloD,WAAWx+C,EAAWgH,IAAI,eACvC2/F,EAAgBnoD,WAAWx+C,EAAWgH,IAAI,kBAC9C,OAAO6mF,EAAe6Y,EAAaC,GAEnCC,GAAqB,SAAS14G,EAAM+gE,GACpC,IAAI0+B,EAAez/F,EAAK62G,UAAUpX,eAC9BkZ,EAAa34G,EAAK44G,eAAe73C,EAAQ0+B,GAC7C,OAAOA,EAAekZ,GAEtBE,GAAwC,SAAS74G,EAAM4R,EAAaknG,EAAiB/3C,GACrF,OAAO23C,GAAmB14G,EAAM+gE,EAAO5oE,KAAI,SAAUuP,EAAOjK,GACxD,OAAOA,IAAUmU,EAAcknG,EAAkBpxG,OAGrD,GAAe,SAASoS,EAAgBI,GACxC,GAA0BJ,GAC1B,OAAcG,kBAAkBH,EAAgBI,IAEhD6+F,GAAqB,EAAQ9pD,eAAe7C,QAAQ,CACpD4sD,wBAAyB,WACrB,IAAI35B,EAAiBhjF,KAAKiY,gBACrBjY,KAAK48G,uBACN58G,KAAK48G,qBAAuBh5G,IACxBo/E,EAAe1d,QAAQ3sD,OAAO3Y,KAAK48G,sBACnC,IAAIn8C,EAAoB78D,GAAKA,EAAE68D,mBAAqB,GACpD,UAAK3hE,MAAMkB,KAAMygE,GAAmBpiD,KAAK,KACrCre,KAAK68G,cAAcj5G,MAG3Bo/E,EAAe1d,QAAQx1D,IAAI,KACvBkzE,EAAe1d,QAAQx1D,IAAI9P,KAAK48G,0BAI5CC,cAAe,SAASj5G,GACpB,IAAIk5G,EACAn5G,EAAO3D,KACP6hE,EAAaj+D,GAAKA,EAAEi+D,WACpB+wB,EAAYhvF,GAAKA,EAAEgvF,UACnBroF,EAAQ5G,EAAKsU,gBAAgB1N,QACjC,GAAK3G,GAAK,YAAci+D,GAAc,YAAcA,GAAc,WAAaA,GAIxE,GAAI,WAAaA,EAAY,CAChC,IAAIk7C,EACJ,GAAI,KAAO,QAAUA,EAAiBn5G,EAAEs+D,mBAAgB,IAAW66C,OAAiB,EAASA,EAAenjH,QACxG,SAEC2Q,EAAM3Q,OAAS,GAAK,WAAagK,EAAEs+D,YAAY,KAAS,IAAM33D,EAAM3Q,QAAU,WAAagK,EAAEs+D,YAAY,IAAQt+D,EAAEw0F,qBAMpH0kB,EAAiBn5G,EAAK8wD,SALtB,eAAY,IAAM,eAAY,IAAM,eAAY,KAC5C9wD,EAAKq5G,oBAAoBr5G,EAAKy6F,YAC9Bz6F,EAAK62G,UAAU/lD,mBAXlBm+B,IACDkqB,EAAiBn5G,EAAK8wD,UAgB1BoN,GAAc,oBAAsBA,GAAc,qBAAuBA,GAAc,cAAgBA,IAAe+wB,GACtH,kBAAKkqB,GAAgBz+F,MAAK,WACtB1a,EAAKs5G,sBACLt5G,EAAKq3G,6BAIjBA,uBAAwB,WACpBh7G,KAAK4R,UAAUsrG,2BAEnBD,oBAAqB,WACjB,IAAIrrG,EAAY5R,KAAK4R,UACrBA,EAAU0L,QAAQ,CACdsxD,SAAU5uE,KAAKiY,gBAAgB+2E,kBAC/BxnC,SAAU51C,EAAUgyE,eACrBhyE,EAAUiF,WAAWmhD,SAAS,IAAMgkD,MAE3CmB,kBAAmB,WACf,IAAIC,EACAhgG,EAAWpd,KAAKw6G,UAChB5tC,EAAoB5sE,KAAKu6G,mBACzB71C,EAAStnD,EAASipD,kBACtB,GAAM,QAAU+2C,EAAU14C,SAAW,IAAW04C,IAAWA,EAAQxjH,OAAS,CACxE,IAAIyjH,EACAC,EAAsB1wC,EAAkB7H,kBAC5C6H,EAAkB5H,gBAAgB,QAAUq4C,EAAwBjgG,EAAS2nD,yBAAsB,IAAWs4C,OAAwB,EAASA,EAAsBrlD,SAAS,eAC9K0M,EAASkI,EAAkBvG,kBAC3BuG,EAAkB5H,gBAAgBs4C,GAEtC,OAAO54C,GAEX64C,kBAAmB,SAASlgD,EAAgBqH,GACxC,IAAIpN,EAAoBt3D,KAAKs9D,mBAC7BhG,EAAkB3G,cAClB,eAAK0M,GAAgB,SAAUj8D,EAAOmZ,GAClC,IAAIijG,EAAWlmD,EAAkByuB,YAAYxrE,GAC7C+8C,EAAkBoQ,aAAa81C,EAAU,eAAgB94C,EAAOtjE,OAEpEk2D,EAAkB1G,aAEtB6sD,0BAA2B,SAAShE,EAAMpnD,EAAWqrD,GACjD,GAAKjE,GAASA,EAAKzhG,YAAnB,CAGA,IAAI2lG,EAAc39G,KAAKw6G,UAAU11C,mBAC7B84C,EAAcnE,EAAK30C,mBACvB,eAAK64C,EAAa,CAACv8G,EAAOu/D,KACtB,IAAIk9C,EACAC,EAAa,eAAEn9C,GACfo9C,EAAaH,EAAYphG,GAAGpb,GAC5B28G,GAAcA,EAAWnkH,SAErBikH,EADAH,EACaK,EAAW/lD,SAAS,SAAS5/C,SAAS0lG,GAEtCA,EAAW9lD,SAAS,IAAM3F,GAAWj6C,SAAS2lG,GAE/DF,EAAWtpD,YAAYlC,EAAWqrD,GAClCG,EAAWtpD,YAAYv0D,KAAK4X,gBAAgB,YAAa8lG,QAIrEM,mBAAoB,SAASN,GACzB,IAAII,EAAa99G,KAAKw6G,UAAUz1C,kBAC5Bk5C,EAAkBj+G,KAAKw6G,UAAU11C,mBAAmBtoD,GAAG,GACtDshG,IAGLA,EAAWrhG,IAAI,cAAeihG,EAAY,OAAS,SACnDI,EAAW9lD,SAAS,YAAYv7C,IAAI,UAAWihG,EAAY,OAAS,IACpEO,EAAgB1pD,YAAYv0D,KAAK4X,gBAAgB,KAAqB8lG,GACtE19G,KAAKy9G,0BAA0Bz9G,KAAKu6G,mBAAoB,YAAamD,GACrE19G,KAAKy9G,0BAA0Bz9G,KAAKk+G,YAAa,YAAaR,GAC9D19G,KAAKm+G,wBAAwBT,GACzB19G,KAAKo+G,iBACLN,EAAWpgH,IAAI,GAAGu9D,MAAM5vD,MAAQqyG,EAAY,OAAS,MAG7DS,wBAAyB,SAAST,GAC9B,GAAI19G,KAAK4Y,OAAO,mBAAoB,CAChC,IAAIokF,EAAah9F,KAAKw6G,UAAUtc,gBAC5ByG,EAAkB3kG,KAAKw6G,UAAUz0C,uBACjC,KAAW,OAASi3B,QAAc,IAAWA,OAAa,EAASA,EAAWpkF,OAAO,eACrF+rF,EAAgBloF,IAAI,CAChBioC,UAAWg5D,EAAY,OAAcW,sBAAsBz+F,EAAA,MAAW,OAKtF0+F,oBAAqB,WACjB,IAKIC,EAGA9gG,EACAI,EATAy5C,EAAoBt3D,KAAKs9D,mBACzBD,EAAiB/F,EAAkBiG,oBACnCvpB,EAAkBh0C,KAAK4Y,OAAO,mBAC9B4lG,EAAcx+G,KAAKy+G,eACnBC,GAAc,EAEdC,GAA0B,EAC1BlgG,EAAe,IAGlB+/F,GAAe,eAAKnhD,GAAgB,SAAUj8D,EAAOmZ,GAClD,GAAI,SAAWA,EAAOlP,MAElB,OADAmzG,GAAc,GACP,KAGf,eAAKnhD,GAAgB,SAAUj8D,EAAOmZ,GAClC,GAAIA,EAAOujC,SAEP,OADA4gE,GAAc,GACP,KAGf1+G,KAAKu9G,kBAAkBlgD,EAAgB,IACnCmhD,IACA/gG,EAAiB,aAAWmhG,mBAC5B/gG,EAAiB,OAAcL,kBAAkBC,GACjDzd,KAAKg+G,oBAAmB,GACxBO,GAAmB,GAEvB,IAAI1nG,EAAW7W,KAAK4R,UAAUiF,WAC1BA,GAAYA,EAAS,IAAM7W,KAAK6+G,mBACzB7+G,KAAK6+G,UACZhoG,EAAS,GAAGokD,MAAMxW,SAAW,IAEjC,eAAY,KAoBR,GAnBI+5D,GACA//F,EAAeze,KAAKm9G,oBACpB,eAAK9/C,GAAgB,SAAUj8D,EAAOmZ,GAClC,IAAIijG,EAAWlmD,EAAkByuB,YAAYxrE,GAC7C+8C,EAAkBoQ,aAAa81C,EAAU,eAAgB/+F,EAAard,IAAQ,OAE3Es9G,IACPjgG,EAAeze,KAAKm9G,qBAExB,eAAK9/C,GAAgB,SAAUj8D,GAC3B,IAAIiK,EAAQrL,KAAKqL,MACb,SAAWA,IACP,eAAUA,GACVoT,EAAard,GAAS,eAAUiK,IAAU4wG,GAAa5wG,GAAS4oD,WAAW5oD,GAASA,EAC5E2oC,IACRv1B,EAAard,QAAS,OAI9Bm9G,IACAv+G,KAAKg+G,oBAAmB,GACxBO,GAAmB,EACf9gG,GAAkBA,IAAmB,aAAWmhG,oBAAoB,CACpE,IAAIE,EAAuB,eAAgBrhG,GAAgBshG,OAAS,EAC/DD,GACD,GAAarhG,EAAgBI,GAIzC8gG,EAA0B3+G,KAAKg/G,qBAAqBvgG,EAAc4+C,GAC9DrpB,KACE,WACE,IAAIirE,EACJ,eAAK5hD,GAAgB,SAAUj8D,EAAOmZ,GAC9B,gBAAkBA,EAAO9b,OACzBwgH,EAAoBxgG,EAAard,OAGzC,eAAKi8D,GAAgB,SAAUj8D,EAAOmZ,GAC9B,gBAAkBA,EAAO9b,MAAQwgH,IACjCxgG,EAAard,GAAS69G,MAThC,GAaEj/G,KAAKo+G,gBACLp+G,KAAKk/G,gBAAgBzgG,EAAc4+C,IAG3C,eAAY,MACJmhD,GAAeG,IACf3+G,KAAKu9G,kBAAkBlgD,EAAgB5+C,QAKvDggG,aAAc,WACV,OAAOz+G,KAAK4Y,OAAO,oBAEvBwlG,aAAc,WACV,OAAOp+G,KAAKs9D,mBAAmBC,oBAAoB3+C,KAAKtN,GAAK,SAAWA,EAAEjG,QAAUiG,EAAEuN,UAE1FsgG,wBAAyB,SAAS1gG,GAC9B,IAAI2gG,EAAY/C,GAAmBr8G,KAAMye,GACrC4gG,EAA0B5gG,EAAargB,QAAO,SAAUiN,GACxD,YAAO,IAAWA,KAClBzR,OACJ,OAAOwlH,EAAYC,GAEvBL,qBAAsB,SAASvgG,EAAc4+C,GACzC,IACI5hE,EADAkI,EAAO3D,KAEPs/G,GAAkB,EAClBC,GAAe,EACfZ,GAA0B,EAC1B9nG,EAAWlT,EAAKiO,UAAUiF,WAC1B2oG,EAAW77G,EAAK87G,UAChBC,EAAQ,WACR,IAAIt+G,EAAQ3F,EACR8e,EAAS8iD,EAAej8D,GACxBu+G,EAAiBlhG,EAAard,KAAW,GACzCiK,EAAQoT,EAAard,GACrB08C,EAAWvjC,EAAOujC,SACtB,GAAIA,EACA,QAAI,IAAWzyC,EAAO,CAClB,IAAIu0G,EAAsBj8G,EAAKw7G,wBAAwB1gG,GACvDpT,EAAQu0G,OACL,GAAI,GAAev0G,GAAQ,CAC9B,IAAI+zG,EAAY5C,GAAsC74G,EAAMvC,EAAO08C,EAAUr/B,GACzE2gG,EAAY,IACZ/zG,GAAS,GAIrB,IAAIw0G,EAAkBl8G,EAAKm8G,oBAAoB1+G,EAAOqd,EAAa3iB,KAAI,SAAUw4C,EAAa/+B,GAC1F,OAAOnU,IAAUmU,EAAclK,EAAQipC,MAEvCwJ,IAAa6hE,GAAkBE,EAAkB/hE,IACjDr/B,EAAard,GAAS08C,EACtB6gE,GAA0B,EAC1BljH,GAAK,GAEJ,eAAU8e,EAAOlP,SAClBk0G,GAAe,GAEf,GAAehlG,EAAOlP,SACtBi0G,GAAkB,IAG1B,IAAK7jH,EAAI,EAAGA,EAAI4hE,EAAezjE,OAAQ6B,IACnCikH,IAEJ,IAAKH,GAAgB9gG,EAAa7kB,OAAQ,CACtC,IAAI6hH,EAAmB93G,EAAK62G,UAAU9iG,UAClC0rF,EAAez/F,EAAK62G,UAAUpX,eAC9BnB,EAAiBt+F,EAAK62G,UAAUtY,oBAChCoa,EAAa34G,EAAK44G,eAAe99F,EAAc2kF,GACnD,GAAIkZ,EAAalZ,EAAc,CAC3B,IAAI1kF,EAAkB,OAAcH,4BAA4B8+C,EAAgB5+C,GAChF,GAAIC,GAAmB,IACnBD,EAAaC,GAAmB,OAChCigG,GAA0B,GACtB,IAAUa,IAAaF,GAAiB,CACxC,IAAIS,EAAcp8G,EAAKiV,OAAO,eAAiBpH,KAAKy9E,KAAK,eAAcwsB,GAAoB,eAAcA,IAAqB,EAC9H93G,EAAKk7G,UAAYvC,EAAara,EAAiB8d,EAC/ClpG,EAAS4F,IAAI,WAAY9Y,EAAKk7G,aAK9C,OAAOF,GAEXO,gBAAiB,SAASc,EAAa3iD,GACnC,IAAI4iD,EAAYjgH,KAAKw6G,UAAUpX,eAC3B8c,EAAYlgH,KAAKu8G,eAAeyD,EAAaC,GAC7CE,EAAgB,CAChBvmH,OAAQ,GAEZ,GAAKomH,EAAYpmH,OAAjB,CAGA,eAAKyjE,GAAgB,SAAUj8D,IACvBpB,KAAKqL,OAAS20G,EAAY5+G,KAAW,MACrC++G,EAAc/+G,IAAS,EACvB++G,EAAcvmH,aAGtB,IAAImqB,EAAOk8F,EAAYC,EACnBE,EAAc5uG,KAAKE,MAAMqS,GAAQi8F,EAAYpmH,OAASumH,EAAcvmH,SACpEymH,EAAwBt8F,EAAOq8F,GAAeJ,EAAYpmH,OAASumH,EAAcvmH,QACrF,GAAImqB,GAAQ,EACR,IAAK,IAAItoB,EAAI,EAAGA,EAAIukH,EAAYpmH,OAAQ6B,IAChC0kH,EAAc1kH,KAGlBukH,EAAYvkH,IAAM2kH,EACdC,EAAwB,IACpBA,EAAwB,GACxBL,EAAYvkH,IAAM4kH,EAClBA,EAAwB,IAExBL,EAAYvkH,KACZ4kH,SAMpBP,oBAAqB,SAASvqG,EAAaiuF,EAAc8c,GACrD,IAAIC,EAAQ,EACRl1G,EAAQm4F,EAAajuF,GACzB,IAAK,GAAelK,GAChB,OAAO4oD,WAAW5oD,GAEtB,IAAIm1G,EAAoBhd,EAAat7E,OAAO,CAACynC,EAAKtkD,EAAOjK,IAChD,GAAeiK,GAGbskD,EAAMsE,WAAW5oD,GAFbskD,EAGZ,GACC8wD,EAAkBjd,EAAat7E,OAAO,CAACynC,EAAKtkD,KACvCA,GAASA,IAAU,IAAwB,GAAeA,GACpDskD,EAEJA,EAAMsE,WAAW5oD,GACzB,GACHi1G,EAAaA,GAActgH,KAAKw6G,UAAUpX,eAC1C,IAAIsd,EAAYJ,EAAaG,EACzBE,EAA2BH,EAAoBF,EAAa,IAIhE,OAHIG,EAAkB,GAAKE,EAA2BF,GAAmBH,IACrEC,EAAQI,EAA2BD,EAAYA,EAAYC,EAA2B,GAEnF1sD,WAAW5oD,GAASi1G,EAAaC,EAAQ,KAEpDhE,eAAgB,SAAS73C,EAAQ47C,GAE7B,IADA,IAAIrhH,EAAS,EACJxD,EAAI,EAAGA,EAAIipE,EAAO9qE,OAAQ6B,IAAK,CACpC,IAAI4P,EAAQq5D,EAAOjpE,GACf4P,GAASA,IAAU,KACnBpM,GAAUe,KAAK8/G,oBAAoBrkH,EAAGipE,EAAQ47C,IAGtD,OAAO9uG,KAAKy9E,KAAKhwF,IAErB2hH,WAAY,SAAS5pD,GACjB,IAAI6pD,EACAx1G,EACA2wF,EAAe,eAAEhlC,GACjB8pD,EAAuB9gH,KAAK4X,gBAAgBmkG,SAC5C,IAAW/7G,KAAKo+F,YAAcpC,GAAgBA,EAAapuG,GAAG,aAAe,eAASouG,KACtF6kB,EAAgB7kB,EAAahkC,SAAS,IAAMh4D,KAAKmf,2BAC7C0hG,EAAcjnH,QACdinH,EAAcE,SAElB/gH,KAAKo+F,aAAe8d,GAAmBlgB,GACvC3wF,EAAQ,eAAS2wF,GACjBA,EAAa7jF,SAAS2oG,GACtB9gH,KAAKy/G,UAAY,eAASzjB,KAAkB3wF,EAC5C2wF,EAAa3jF,YAAYyoG,GACrBD,EAAcjnH,QACdinH,EAAczoG,SAAS4jF,KAInCtrC,cAAe,WACX,MAAO,CAAC,SAAU,qBAEtB+D,OAAQ,WACJ,OAAQz0D,KAAK4R,UAAUwhD,gBAAkBpzD,KAAKghH,oBAElDA,iBAAkB,SAASC,GACvB,IAAIt9G,EAAO3D,KAEX,GADA2D,EAAKg5G,0BACAh5G,EAAKu9G,WAAWD,GAArB,CAGA,IAAIE,EAAax9G,EAAKy9G,gBAClBniH,EAAS0E,EAAKy9G,gBAAkB,IAAI,cAgBxC,OAfA,kBAAKD,GAAYt+B,QAAO,WACpB,gBAAY,WACJl/E,EAAKsU,gBAAgBq2D,YACrB3qE,EAAK26G,sBAET36G,EAAK09G,2BACL,gBAAY,WACR,gBAAY,WACR,gBAAY,WACR19G,EAAK29G,oCAIjBjjG,KAAKpf,EAAO0hB,SAASG,KAAK7hB,EAAO40B,WAElC50B,EAAOwiB,YAElB4/F,yBAA0B,WACtB,IAAIE,EAAevhH,KAAK4R,UAAUiF,WAAWmhD,WAAWt6D,IAAI,GACxDs/F,EAAah9F,KAAKw6G,UAAUtc,iBAC5BqjB,IAAgBA,EAAatmD,MAAMp+C,QAAYmgF,GAAeA,EAAWwkB,cACzED,EAAatmD,MAAMp+C,OAAS,KAGpCqkG,WAAY,SAASD,GACjB,IAAIjlB,EAAeh8F,KAAK4R,UAAUiF,WAClC,QAAIoqG,IAAcjhH,KAAKyhH,aAAe,eAASzlB,IAAiBh8F,KAAK0hH,cAAgB,eAAU1lB,IAAiBh8F,KAAK2hH,oBAAsB,iBAAYhiG,mBAAqBq8E,EAAapuG,GAAG,eAKhMg0H,wBAAyB,SAAS5d,GAC9B,IAAIrgG,EAAO3D,KACP6hH,EAAkB7d,EAAYrgG,EAAK62G,UAAUtY,oBAAsB,EACnE4f,EAAkBn+G,EAAK62G,UAAUtY,mBAAkB,GACvD,gBAAY,WACRv+F,EAAK42G,oBAAsB52G,EAAK42G,mBAAmBryC,mBAAmB25C,GACtEl+G,EAAKu6G,aAAev6G,EAAKu6G,YAAYh2C,mBAAmB25C,GACxDl+G,EAAK62G,UAAUtyC,mBAAmB25C,EAAiBC,OAG3D9E,oBAAqB,SAAShZ,IACtB,IAAShkG,KAAK4Y,OAAO,uBACrB,eAAY,KACR,eAAY,KACR5Y,KAAK4hH,wBAAwB5d,OAIrChkG,KAAK4hH,wBAAwB5d,IAGrCsd,sBAAuB,WACnB,IAWIS,EAXAp+G,EAAO3D,KACPgjF,EAAiBr/E,EAAKsU,gBACtBmF,EAAWzZ,EAAK62G,UAChBxe,EAAer4F,EAAKiO,UAAUiF,WAC9B0qG,EAAevlB,EAAahkC,WAAWt6D,IAAI,GAC3CskH,EAAoBhmB,IAAiBA,EAAat+F,IAAI,GAAG4lG,cAAgB,eAAUtH,IACnFx3C,EAAYjjD,SAASy6F,EAAav/E,IAAI,cACtCwlG,EAAoBz9D,GAAaw9D,GAAqBx9D,EACtD3nC,EAASlZ,EAAKiV,OAAO,WAAaojF,EAAat+F,IAAI,GAAGu9D,MAAMp+C,OAC5DqlG,EAAgBv+G,EAAKguD,cAAc,iBACnCwwD,EAAqBF,GAAqBV,EAAaa,eAAiBb,EAAaptD,aAEzFxwD,EAAKi9G,WAAW5kB,GAChB,IAAIgI,EAAYrgG,EAAKy6F,YAAc6jB,EAC/BplG,GAAUlZ,EAAKy6F,WAAa,SAAWvhF,IACvCklG,EAAW,eAAE,SACb,eAAUA,EAAUllG,GACpBklG,EAAS3pG,SAAS4jF,GAClBr4F,EAAKy6F,aAAe,eAAU2jB,GAC9BA,EAASppG,UAEb,gBAAY,WACRyE,EAASP,OAAO,KAAMmnF,GAClBie,IAAsBE,GACtB,eAAEZ,GAAc9kG,IAAI,SAAU+nC,GAE7Bw+B,EAAe1U,WAIpB,gBAAY,WACR3qE,EAAK0+G,iBAAiBrmB,GACtBr4F,EAAKq5G,oBAAoBhZ,GACzB,eAAK,IAAY,SAAU5iG,EAAOioE,GAC9B,IAAIowC,EAAO91G,EAAK0Z,QAAQgsD,GACpBowC,GACAA,EAAKhlD,YAGbytD,GAAiBA,EAAcztD,YAZ/Br3C,EAAS+lF,WAAWngB,EAAe34E,iBAgB/Cg4G,iBAAkB,SAASrmB,GACvBh8F,KAAKyhH,WAAa,eAASzlB,GAC3Bh8F,KAAK0hH,YAAc,eAAU1lB,GAC7Bh8F,KAAK2hH,kBAAoB,iBAAYhiG,kBAEzCuxC,cAAe,SAAS7hB,GACpB,OAAQA,EAAKztC,MACT,IAAK,QACL,IAAK,SACD5B,KAAK4R,UAAU0wG,oBACftiH,KAAKy0D,SACT,IAAK,cAED,YADAplB,EAAK+hB,SAAU,GAEnB,QACIpxD,KAAKC,SAASovC,KAG1BohB,KAAM,WACFzwD,KAAKiY,gBAAkBjY,KAAK2xD,cAAc,QAC1C3xD,KAAKs9D,mBAAqBt9D,KAAK2xD,cAAc,WAC7C3xD,KAAKu6G,mBAAqBv6G,KAAKqd,QAAQ,qBACvCrd,KAAKk+G,YAAcl+G,KAAKqd,QAAQ,cAChCrd,KAAKw6G,UAAYx6G,KAAKqd,QAAQ,eAGlCklG,GAAiC,EAAQ3vD,eAAe7C,QAAQ,CAChEyyD,sBAAuB,SAAS9sD,EAAO+P,EAAK4D,GACxC,IAAK,IAAI39D,EAAI,EAAGA,EAAIgqD,EAAM97D,OAAQ8R,IAC1BgqD,EAAMhqD,IAAMgqD,EAAMhqD,GAAG9J,OAASynE,GAC9B3T,EAAMhqD,GAAGg2D,SAAS,CACd/kD,KAAM8oD,EAAI9oD,KACVC,IAAK6oD,EAAI7oD,OAKzB6zC,KAAM,WAEF,IADA,IAAIiF,EAAQ,CAAC11D,KAAKqd,QAAQ,qBAAsBrd,KAAKqd,QAAQ,cAAerd,KAAKqd,QAAQ,aAChF5hB,EAAI,EAAGA,EAAIi6D,EAAM97D,OAAQ6B,IAAK,CACnC,IAAIg+G,EAAO/jD,EAAMj6D,GACbg+G,GACAA,EAAK7zC,cAAc91D,IAAI9P,KAAKwiH,sBAAsBhnG,KAAKxb,KAAM01D,QAKzE+sD,GAAW,EAAQ1vD,KAAKhD,QAAQ,CAChCC,eAAgB,WACRhwD,KAAK4R,UAAUwhD,iBACfpzD,KAAK4R,UAAUwhD,gBAAiB,EAChCpzD,KAAK0iH,oBAAoBjuD,WAGjCkuD,oBAAqB,WACjB,MAAO,2BAEXlyD,KAAM,WACFzwD,KAAK0iH,oBAAsB1iH,KAAK2xD,cAAc,YAC9C3xD,KAAKiY,gBAAkBjY,KAAK2xD,cAAc,SAE9Ct0C,QAAS,SAASzb,GACd,OAAO5B,KAAK4R,UAAUihD,OAAOjxD,IAEjC8V,QAAS,WACL,OAAO1X,KAAK4iH,eAEhB1xD,cAAe,SAAS7hB,GAChB,eAAUrvC,KAAK4iH,gBAAkB,gBAAkBvzE,EAAKztC,MACxD5B,KAAK4iH,cAAcruD,YAAYv0D,KAAK4X,gBAAgBkkG,MAAkBzsE,EAAKxtC,OAC3EwtC,EAAK+hB,SAAU,GAEfpxD,KAAKC,SAASovC,IAGtBwzE,aAAc,SAAShC,GACnB,IAAIl9G,EAAO3D,KACX,eAAK,IAAY,SAAUoB,EAAOioE,GAC9B,IAAIowC,EAAO91G,EAAK0Z,QAAQgsD,GACpBowC,GACAA,EAAK1xG,OAAO84G,OAIxBiC,kBAAmB,WACf,MAAO,QAEX/6G,OAAQ,SAASi0F,GACb,IAAI+mB,GAAiB/iH,KAAK4iH,cACtB/B,EAAgB7gH,KAAK4iH,eAAiB,eAAE,SAASzqG,SAASnY,KAAKmf,2BACnE0hG,EAAc1oG,SAAS6jG,IACvB6E,EAActsD,YAAYv0D,KAAK4X,gBAAgBkkG,MAAkB97G,KAAK4Y,OAAO,gBAC7E5Y,KAAKsd,QAAQ,OAAQ,eAAgB0+E,GACrCh8F,KAAK4R,UAAU0L,QAAQ,CACnB0pF,KAAMhnG,KAAK8iH,oBACXl1G,MAAO,OAAoBvU,OAAO2G,KAAK2iH,wBACxC9B,GACH7gH,KAAKgjH,aAAehnB,GAAgBh8F,KAAKgjH,aACrCD,IACA/iH,KAAK4iH,cAAgB/B,EACrB,kBAAe7gH,KAAK2xD,cAAc,YAAYivD,WAAW5kB,GACzD6kB,EAAczoG,SAAS4jF,IAE3Bh8F,KAAK6iH,aAAahC,IAEtBv8C,OAAQ,WACJ,IAAI03B,EAAeh8F,KAAKgjH,aACpBnC,EAAgB7gH,KAAK4iH,cACrBrH,EAAqBv7G,KAAK2xD,cAAc,YACxCqqC,GAAgB6kB,IAChBtF,EAAmB9mD,SACfz0D,KAAKiY,gBAAgBq2D,YACrBtuE,KAAK0iH,oBAAoB1H,6BAK9BiI,GAAiB,CACxBtlH,eAAgB,WACZ,MAAO,CACHg8C,aAAa,EACbV,aAAa,IAGrBuc,YAAa,CACT0tD,SAAUxG,GACVyG,qBAAsBZ,IAE1B7sD,MAAO,CACH0tD,SAAUX,IAEdtJ,WAAY,ICrrBhB,EAAS/iD,eAAe,WAAY6sD,I,iBCIhCI,GAA4B,yBAC5BC,GAA8B,2BAC9BC,GAAoC,iCACpCC,GAA6B,0BAC7BC,GAAkC,+BAClCC,GAAc,QAAS3zD,QAAQ,CAC/B23C,iBAAkB,IAAM2b,GACxBha,YAAa,WACTrpG,KAAK2jH,kBACL3jH,KAAKC,YAET2jH,aAAc,WACV,OAAO5jH,KAAKknG,iBAAiBlvC,YAEjCo2C,cAAe,WACX,OAAOpuG,KAAK4jH,eAAe5rD,SAASh4D,KAAK6jH,kBAE7CF,gBAAiB,WACb,IAAIhgH,EAAO3D,KACPyV,EAAazV,KAAKknG,iBACtB,eAAK,CAAC,SAAU,SAAU,QAAS,SAAS,WACxC,IAAI4c,EAAc,KAAO9jH,KAAO,UAC5B+jH,EAAWpgH,EAAKmgH,GACfC,IACDpgH,EAAKmgH,GAAeC,EAAW,eAAE,SAAS5rG,SAASqrG,KAEvDO,EAAS3rG,SAAS3C,OAG1By1F,aAAc,WACVlrG,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAKgkH,mBAETA,gBAAiB,WACb,IAAIC,EAAYjkH,KAAK6W,WAAWiB,KAAK,IAAM0rG,IAC3CS,EAAU5rG,YAAYorG,IACtBQ,EAAUrjD,IAAI,UAAUpkD,IAAI,GAAGrE,SAASsrG,KAE5C1X,YAAa,SAAS3qG,EAAOyI,EAAMq6G,EAAeC,GAC9C,IAAIn5D,EAAWnhD,EAAKmhD,UAAY,OAC5Bv1C,EAAazV,KAAK,KAAOgrD,EAAW,WACpC8/C,EAAc9qG,KAAKC,SAASmB,EAAOyI,EAAM4L,EAAY0uG,GAgBzD,OAfInkH,KAAKokH,qBAAqB,CACtBvzC,SAAUhnE,KAEdihG,EAAY3yF,SAAS,2BAErB,SAAW6yC,GAAY,aAAenhD,EAAKshD,QAAU,kBAAoBthD,EAAKshD,QAAUthD,EAAKw6G,WAC7FvZ,EAAY3yF,SAASkrG,IAErB,aAAex5G,EAAKshD,QACpB2/C,EAAY3yF,SAASmrG,IAErB,kBAAoBz5G,EAAKshD,QACzB2/C,EAAY3yF,SAASorG,IAEzBzY,EAAY3yF,SAAStO,EAAK+xC,UACnBkvD,GAEXsZ,qBAAsB,SAAS/0E,GAC3B,IAAI0M,EAAW/7C,KAAKC,SAASovC,GACzBjrC,EAAOirC,EAAKwhC,SACZyzC,EAAelgH,GAAQA,EAAK6mD,iBAChC,OAAOq5D,GAAgBvoE,GAE3BwoE,kBAAmB,SAAS3gH,EAAGyrC,EAAMwiB,GAC7B,eAAEjuD,EAAEsS,QAAQiI,QAAQ,IAAMklG,IAA2BzpH,QACrDoG,KAAKC,SAAS2D,EAAGyrC,EAAMwiB,IAG/Bs1C,OAAQ,WACJnnG,KAAK4jH,eAAexxD,QACpBpyD,KAAKC,cAGb,eAAkB,gBAAiByjH,IACpB,U,oDCnFXc,GAAqB,iBACrBC,GAAgB,CAAC,iBAAkB,WAAY,aAAc,YAAa,SAAU,cAAe,SAAU,YAAa,gBAAiB,oBAC3IC,GAAkB,SAAS7tG,GAC3B,IAAIg6D,EAAWh6D,EAASzS,MAAQyS,EAASzS,OACrC2S,EAAe85D,GAAYA,EAAS95D,aACpCC,EAAaD,GAAgBA,EAAa,GAC9C,OAAOC,GAAc65D,EAAS75D,IAE3B,SAAS2tG,GAAmC1iC,EAASp4E,GACxD,IAAI+6G,EACJ,GAAK3iC,EAAL,CAGA,IAAIga,EAAQha,EAAQ4iC,uBAAuBh7G,GAC3C,GAAKoyF,EAAMriG,OAAX,CAGA,IAAIi3E,EAAWoR,EAAQ0sB,aAAa1S,GAChC6oB,KAAwB,QAAUF,EAAoB/zC,EAAS/6D,eAAY,IAAW8uG,GAAqBA,EAAkBjwE,UAAYk8B,EAASl8B,UAAYstC,EAAQrpE,OAAO,cAE7KuyC,OAAQA,GACR0lB,EACJ,GAAI1lB,IAAW,IAAMs5D,GAAcnmH,QAAQ6sD,GAAS,CAChD,IAAI45D,EAAU9oB,EAAMnkF,KAAKqzC,EAAOrtD,cAAc3C,QAAQ,KAAM,SAC5D,GAAI4pH,EAAQnrH,OAAQ,CAChB,IAAIorH,EAAuBC,EACvBC,EAAeR,GAAgBK,GAC/BI,EAAe,qBAAuBh6D,EAAS+5D,EAAa/R,eAAer7F,KAAK,IAAI6P,OAAO68F,MAAwB,OAASU,QAAgB,IAAWA,GAAwB,QAAUF,EAAwBE,EAAa/R,oBAAiB,IAAW6R,OAApF,EAAqHA,EAAsB5uG,KAAK8uG,KAAkB,eAAEA,EAAaxtG,WACvV0iC,EAAW,QAAU6qE,EAAqBp0C,EAAS/6D,eAAY,IAAWmvG,OAAqB,EAASA,EAAmB7qE,SAC3H0qE,EACAK,EAAazzD,KAAK,YAAa,GAE/ByzD,EAAazzD,KAAK,WAAYtX,GAAsB,OCzBpE,IAAI,GAAS,iBAoBTgrE,GAAuB,kBACvBC,GAA6B,wBAC7BC,GAAqC,gCACrCC,GAA4B,uBAC5BC,GAA8B,yBAC9BC,GAAmB,CACnBC,WAAY,QACZC,YAAa,SACbC,eAAgB,YAChBC,uBAAwB,qBAExBC,GAAoB,CACpBC,WAAY,OACZC,WAAY,OACZC,YAAa,QACbC,aAAc,SACdC,eAAgB,YAEhBC,GAAe,OAAOr2D,QAAQ,CAC9Bq3C,eAAgB,WACZ,IAAIif,EAAY,GAIhB,OAHKrmH,KAAK4Y,OAAO,WAAc5Y,KAAKsmH,MAAM1tG,OAAO,oBAC7CytG,EAAYrmH,KAAKumH,QAAQnf,kBAEtB,OAAA3sG,EAAA,WAAOuF,KAAKC,WAAYomH,EAAW,CACtCG,IAAK,WACDxmH,KAAKymH,QAAUzmH,KAAKymH,OAAOrrE,WAIvCurD,mBAAoB,WAChB,OAAO,OAAAlsG,EAAA,WAAOuF,KAAKC,WAAY,CAC3BsK,MAAO,GACPmmE,YAAa,KACbt2D,WAAY,KACZssG,aAAc,OACdV,WAAY,GACZD,WAAY,WACZE,iBAAa,EACbC,kBAAc,EACdC,eAAgB,UAChBQ,cAAe,KACfC,YAAY,EACZlB,WAAY,OACZC,YAAa,OACbjyE,oBAAoB,EACpBoC,mBAAmB,EACnB+wE,QAAQ,EACRC,cAAe,OACfC,iBAAkB,GAClB9iE,gBAAgB,EAChB+iE,cAAe,CACX16D,GAAI,aACJF,GAAI,gBACJ/yC,UAAW,WACX+C,OAAQ,CACJuT,EAAG,IAGXs3F,oBAAgB,EAChBC,eAAgB,KAChBC,WAAY,QACZvB,oBAAgB,EAChBwB,cAAc,EACdngB,cAAc,EACdjuF,eAAW,EACX6sG,wBAAwB,KAGhCpV,qBAAsB,WAClB,OAAOzwG,KAAKC,WAAW0nB,OAAO,CAAC,CAC3B+oF,OAAQ,CACJj+E,SAAU,OAEd3c,QAAS,CACL8wG,YAAY,IAEjB,CACClW,OAAQ,CACJj+E,SAAU,WAEd3c,QAAS,CACLkxG,cAAe,CACX5qG,OAAQ,CACJuT,EAAG,MAIhB,CACC+gF,OAAQ,WACJ,MAAO,YAAc9G,GAAA,KAAQC,OAAOC,aAAeF,GAAA,KAAQyd,eAE/DvxG,QAAS,CACL2/B,mBAAmB,IAExB,CACCi7D,OAAQ,CACJj+E,SAAU,WAEd3c,QAAS,CACLkxG,cAAe,CACX16D,GAAI,QAAUtsD,KAAK4Y,OAAO,cAAgB,OAAS,SACnDwzC,GAAI,QAAUpsD,KAAK4Y,OAAO,cAAgB,OAAS,SACnDS,UAAW,WAEf4tG,eAAgB,CACZ5rE,KAAM,CACF58C,KAAM,MACNisD,SAAU,IACV31B,KAAM,CACFs0B,MAAO,GAEX3wD,GAAI,CACA2wD,MAAO,IAGfjO,KAAM,CACF38C,KAAM,MACNisD,SAAU,IACV31B,KAAM,CACFs0B,MAAO,GAEX3wD,GAAI,CACA2wD,MAAO,OAKxB,CACCqnD,OAAQ,WACJ,OAAO,kBAEX56F,QAAS,CACLmxF,cAAc,OAI1BqgB,aAAc,SAASxxG,GACf,YAAc8zF,GAAA,KAAQiK,UAAUphF,WAC3B3c,EAAQkxG,gBACTlxG,EAAQkxG,cAAgB,CACpB56D,IAAKt2C,EAAQ8wG,WAAa,UAAY,SAAW9wG,EAAQuG,WAAa,OAAS,YAI3Frc,KAAKC,SAAS6V,IAElByxG,mBAAoB,WAChB,MAAO,CACHjiC,UAAU,IAGlBqiB,MAAO,WACH3nG,KAAKC,WACLD,KAAK6W,WAAWsB,SAASitG,IACzBplH,KAAKwzF,kBACLxzF,KAAKwnH,uBACLxnH,KAAKynH,0BAETD,qBAAsB,WAClBxnH,KAAK0nH,iBAAmB1nH,KAAKiyD,sBAAsB,gBAEvDw1D,uBAAwB,WACpBznH,KAAK2nH,mBAAqB3nH,KAAKiyD,sBAAsB,kBAEzD21D,eAAgB,WACZ5nH,KAAK6nH,iBAAiBC,oBAAoB,CACtCluD,QAAS,IAAI,QAAqB,aAEtC55D,KAAKC,YAETopG,YAAa,WACTrpG,KAAK+nH,gBACL/nH,KAAKC,YAET6yG,QAAS,WACL9yG,KAAKC,WACLD,KAAKsd,QAAQ,CACT0pF,KAAM,UACNghB,UAAU,EACVC,SAAUjoH,KAAK4Y,OAAO,aAG9Bg/F,mBAAoB,WACZ53G,KAAK4Y,OAAO,WACZ5Y,KAAKkoH,gBAGb/gB,OAAQ,WACJnnG,KAAKmoH,mBACDnoH,KAAKymH,SACLzmH,KAAKymH,OAAO5vG,WAAW8B,gBAChB3Y,KAAKooH,UAGpBL,cAAe,WACX,IAAIM,EAAUroH,KAAK6W,WAAWsB,SAASqtG,IACnC3zD,EAAS7xD,KAAKsoH,iBAClBtoH,KAAKumH,QAAUvmH,KAAKiZ,iBAAiBovG,EAAS,cAAQx2D,IAE1D23C,mBAAoB,SAAS3yF,EAAUhV,EAAO+B,GAC1C5D,KAAKumH,QAAQ/c,mBAAmB3yF,EAAUhV,EAAO+B,IAErD0kH,eAAgB,WACZ,MAAO,CACH/rH,KAAMyD,KAAK4Y,OAAO,cAClBijC,KAAM77C,KAAK4Y,OAAO,cAClBvN,MAAOrL,KAAK4Y,OAAO,eACnBiE,OAAQ7c,KAAK4Y,OAAO,gBACpBquF,aAAcjnG,KAAK4Y,OAAO,gBAC1BmjC,SAAU/7C,KAAK4Y,OAAO,kBACtBk9B,mBAAmB,EACnBL,mBAAmB,EACnBqG,QAAS,SAASl4C,GACd5D,KAAK4Y,OAAO,UAAW5Y,KAAK4Y,OAAO,WACnC5Y,KAAK2nH,mBAAmB/jH,IAC1B4X,KAAKxb,QAGfuoH,sBAAuB,SAAS1B,GAC5B,IAAI3mF,OAAQ,IAAW2mF,GAAU7mH,KAAKymH,OAAO7tG,OAAO,WAAaiuG,EAC7DA,GACA7mH,KAAKkoH,eAETloH,KAAKymH,OAAOnnB,OAAOp/D,GACnBlgC,KAAKsd,QAAQ,WAAY4iB,IAE7BgoF,aAAc,WACV,IAAIloH,KAAKooH,QAAT,CAGA,IAAII,EAASxoH,KAAKooH,QAAU,eAAE,SAAShwG,SAASpY,KAAK6W,YACjDg7C,EAAS7xD,KAAKyoH,gBAClBzoH,KAAKymH,OAASzmH,KAAKiZ,iBAAiBuvG,EAAQ,QAAS32D,KAEzD42D,cAAe,WACX,IAAIC,GAAY1oH,KAAK4Y,OAAO,cAC5B,MAAO,CACH6+B,cAAe,SAASpI,GACpBA,EAAKz9B,UAAUo6F,WAAW7zF,SAASmtG,IAAoC/wD,YAAY8wD,GAA4BqD,IAEnHzkE,gBAAgB,EAChBF,gBAAiB,SAASk7C,GACtBj/F,KAAK2oH,YAAY1pB,IACnBzjF,KAAKxb,MACPmlD,SAAUnlD,KAAK4Y,OAAO,iBACtBirC,UAAW7jD,KAAK4Y,OAAO,kBACvBg/B,gBAAiB,SAASvI,GAClB,YAAcA,EAAKztC,MACnB5B,KAAK4Y,OAAO,SAAUy2B,EAAKxtC,QAEjC2Z,KAAKxb,MACPkW,OAAQlW,KAAK6W,WACbgG,OAAQ7c,KAAK4Y,OAAO,eACpBvN,MAAOrL,KAAK4Y,OAAO,cACnB4rC,UAAWxkD,KAAK4Y,OAAO,kBACvBI,UAAWhZ,KAAK4Y,OAAO,aACvBgwG,kBAAmB5oH,KAAK4Y,OAAO,4BAGvC+vG,YAAa,SAAS1pB,GAClB,IAAIvxB,EAAW,eAAEuxB,GACb4pB,EAAa7oH,KAAK8oH,eACtBp7C,EAASv1D,SAASotG,IAClBvlH,KAAKsmH,MAAQtmH,KAAKiZ,iBAAiBy0D,EAAU1tE,KAAK4Y,OAAO,cAAeiwG,GACxE7oH,KAAKsmH,MAAMyC,eAAiB,WACxB,OAAO/oH,KAAK6W,YACd2E,KAAKxb,MACPA,KAAKgpH,qBACL,IAAIC,EAAgB,GAAK,eAAU,IAC/B,eAAUv7C,GAAYu7C,GACtB,eAAUv7C,EAAUu7C,IAG5BC,mBAAoB,SAASr/G,EAAMs/G,EAAUtnH,GACzC,IAAIunH,EACJ,QAAUA,EAAcppH,KAAKsmH,aAAU,IAAW8C,GAAuBA,EAAYF,mBAAmBr/G,EAAMs/G,EAAUtnH,GACxH8iH,GAAmC3kH,KAAKsmH,MAAOz8G,IAEnDi/G,aAAc,WACV,MAAO,CACHO,aAAc,eACdC,iBAAiB,EACjBnzE,WAAY,GACZ2wE,cAAe9mH,KAAK4Y,OAAO,iBAC3BmuG,iBAAkB/mH,KAAK4Y,OAAO,oBAC9B8tG,aAAc1mH,KAAK4Y,OAAO,gBAC1B83D,YAAa,SAAS9sE,GACd5D,KAAK4Y,OAAO,iBACZ5Y,KAAK4Y,OAAO,UAAU,GAE1B5Y,KAAK0nH,iBAAiB9jH,IACxB4X,KAAKxb,MACPo6C,UAAW,EACX3E,kBAAmBz1C,KAAK4Y,OAAO,qBAC/B86B,mBAAoB1zC,KAAK4Y,OAAO,sBAChCsuG,eAAgBlnH,KAAK4Y,OAAO,kBAC5BmuF,gBAAiB,CACbC,KAAM,cAIlBgiB,mBAAoB,WACZhpH,KAAKsmH,OACLtmH,KAAKsmH,MAAM1tG,OAAO,aAAc5Y,KAAKqa,aAAera,KAAK4Y,OAAO,iBAE7D5Y,KAAKupH,iBAEhB,wBACI,OAAOvpH,KAAKC,WAAW0nB,OAAO,CAAC3nB,KAAKsmH,SAExCkD,kBAAmB,SAASjvE,GACxBv6C,KAAKC,SAASs6C,GACdv6C,KAAKumH,QAAQ3tG,OAAO,UAAW2hC,IAEnC2zD,eAAgB,SAAS7+D,GACrB,IAAIztC,EAAOytC,EAAKztC,KACZC,EAAQwtC,EAAKxtC,MACjB,OAAQD,GACJ,IAAK,QACL,IAAK,aACG5B,KAAK4Y,OAAO,oBAAsB5Y,KAAK4Y,OAAO,UAC9C5Y,KAAKupH,iBAAkB,GAEvBvpH,KAAKgxF,qBACLhxF,KAAKgpH,sBAET,MACJ,IAAK,eACGhpH,KAAKsmH,OACLtmH,KAAKsmH,MAAM1tG,OAAOhX,EAAM5B,KAAKq0D,aAAaxyD,IAE9C,MACJ,IAAK,cACD7B,KAAKwnH,uBACL,MACJ,IAAK,gBACDxnH,KAAK2nH,qBACL,MACJ,IAAK,aACL,IAAK,aACL,IAAK,cACL,IAAK,eACL,IAAK,iBACD3nH,KAAKumH,QAAQ3tG,OAAOktG,GAAkBlkH,GAAOC,GAC7C7B,KAAKkoH,eACL,MACJ,IAAK,aACL,IAAK,cACL,IAAK,iBACL,IAAK,yBACDloH,KAAKymH,OAAO7tG,OAAO6sG,GAAiB7jH,GAAOC,GAC3C,MACJ,IAAK,aACL,IAAK,aACL,IAAK,eACD7B,KAAKszD,cACL,MACJ,IAAK,oBACL,IAAK,qBACGtzD,KAAKsmH,OACLtmH,KAAKsmH,MAAM1tG,OAAOhX,EAAMC,GAE5B7B,KAAKC,SAASovC,GACd,MACJ,IAAK,gBACL,IAAK,mBACL,IAAK,iBACGrvC,KAAKsmH,OACLtmH,KAAKsmH,MAAM1tG,OAAOhX,EAAMC,GAE5B,MACJ,IAAK,SACG7B,KAAKupH,kBACLvpH,KAAKgxF,qBACLhxF,KAAKgpH,sBAEThpH,KAAKuoH,sBAAsB1mH,GAC3B7B,KAAKypH,gCACL,MACJ,IAAK,iBACL,IAAK,gBACL,IAAK,eACD,MACJ,IAAK,YACDzpH,KAAKymH,QAAUzmH,KAAKymH,OAAO7tG,OAAOy2B,EAAKztC,KAAMytC,EAAKxtC,OAClD,MACJ,IAAK,WACG7B,KAAKsmH,OACLtmH,KAAKypH,gCAET,MACJ,QACIzpH,KAAKC,SAASovC,KAG1B,gCACIrvC,KAAK4Y,OAAO,SAAS1X,QAAQ2I,GAAQ86G,GAAmC3kH,KAAKsmH,MAAOz8G,KAExF6/G,KAAM,WACF1pH,KAAK4Y,OAAO,UAAU,IAE1B+wG,MAAO,WACH3pH,KAAK4Y,OAAO,UAAU,MAE3Bm3E,QAAQ,SACX,eAAkB,iBAAkBq2B,IACrB,UCxaXwD,GAAuB,qBACvBC,GAAyC,4BACzCC,GAA0B,GAC9B,MAAM,GACF,YAAYzvE,GACRr6C,KAAK+pH,SAAW1vE,EAEpB,SACI,GAAKr6C,KAAKgqH,uBAAV,CAGAhqH,KAAKiqH,6BACL,IAAIC,EAAQ,eAAE,SAAS9xG,SAASpY,KAAKmqH,0BACrCnqH,KAAKoqH,cAAgBpqH,KAAK+pH,SAAS9wG,iBAAiBixG,EAAO,GAAclqH,KAAKqqH,wBAC9ErqH,KAAKsqH,mBAET,kBACStqH,KAAKoqH,eACNpqH,KAAK+H,SAET/H,KAAKoqH,eAAiBpqH,KAAKoqH,cAAcxxG,OAAO,QAAS5Y,KAAKuqH,iBAC1DvqH,KAAKoqH,gBAAkBpqH,KAAKoqH,cAAcxxG,OAAO,SAAShf,QAC1DoG,KAAKoqH,cAAcT,QAG3B,6BACI,IAAIa,EAAgBxqH,KAAK+pH,SAASU,eAClCzqH,KAAK0qH,sBAAwB,eAAE,SAAStyG,SAASoyG,GAAeryG,SAASnY,KAAK+pH,SAASY,gBAAgBxyG,SAAS0xG,IAEpH,uBACI,OAAO7pH,KAAK+pH,SAASa,qBAAqB,oBAE9C,uBACI,IAAIC,EAAkB7qH,KAAK+pH,SAAS93D,sBAAsB,eACtD64D,EAAqB,EAAIhB,GAC7B,MAAO,CACHn1E,SAAU30C,KAAK+pH,SAASnxG,OAAO,YAC/B8tG,aAAc1mH,KAAK+qH,qBAAqBvvG,KAAKxb,MAC7C0wE,YAAa,SAAS9sE,GAClBinH,EAAgBjnH,IAClB4X,KAAKxb,MACPikD,gBAAgB,EAChBjrC,UAAWhZ,KAAK+pH,SAASnxG,OAAO,iBAChCgtG,eAAgB,YAAchc,GAAA,KAAQiK,UAAUphF,SAAW,aAAWu4F,qBAAqB1nB,aAAewnB,OAAqB,EAC/H3D,WAAY,GACZvvE,gBAAiBznC,IACb,IACIvO,KAAMA,EACNC,MAAOA,GACPsO,EACA,WAAavO,GACb5B,KAAK+pH,SAASnxG,OAAO,sBAAuB/W,GAE5C,UAAYD,GACZ5B,KAAKirH,sBAAsBppH,IAGnCmlH,cAAe,CACX56D,GAAI,eACJE,GAAI,cAIhB,sBAAsBktD,GAClB,IAAIjvG,EAAQivG,GAAax5G,KAAKuqH,gBAC1BW,EAAgB3gH,EAAM3Q,QAAUoG,KAAKgqH,qBAAqBz/G,GAC9DvK,KAAKuoH,sBAAsB2C,GAE/B,gBACI,OAAOlrH,KAAK+pH,SAASQ,gBAEzB,qBAAqBhgH,GACjB,IAAIivG,EAAYjvG,GAASvK,KAAK+pH,SAASnxG,OAAO,SAC1C3Z,GAAS,EACTy6E,EAAe,gBAAc,WAC7ByxC,EAAiB,gBAAc,gBAYnC,OAXA,eAAK3R,GAAW,SAAUp4G,EAAOyI,GAC7B,IAAIuhH,EAAc1xC,EAAa7vE,EAAM,CACjC8vE,eAAe,IAEf0xC,EAAeF,EAAethH,EAAM,CACpC8vE,eAAe,MAEf,IAAUyxC,GAAgB,SAAWC,GAAgB,WAAaA,IAAiB,SAAWxhH,EAAKmhD,WACnG/rD,GAAS,MAGVA,EAEX,sBAAsB4C,GACb7B,KAAKmqH,0BAGVnqH,KAAKmqH,yBAAyB51D,YAAYq1D,IAAuB/nH,GAErE,yBACI,OAAO7B,KAAK0qH,sBAEhB,aAAa9oH,EAAMC,GACf7B,KAAKoqH,eAAiBpqH,KAAKoqH,cAAcxxG,OAAOhX,EAAMC,GAE1D,WAAWgI,EAAMs/G,EAAUtnH,GAEnB,IAAIypH,EADJ,aAAenC,GAAY,qBAAuBA,EAElD,QAAUmC,EAAsBtrH,KAAKoqH,qBAAkB,IAAWkB,GAA+BA,EAAoBpC,mBAAmBr/G,EAAMs/G,EAAUtnH,GAExJ7B,KAAKsqH,mBAIF,U,aCjGXiB,GAA+B,4BAC/BC,GAA+B,4BAC/BC,GAAsB,4BACtBC,GAAU,QAAY37D,QAAQ,CAC9B42C,mBAAoB,WAChB,OAAO,OAAAlsG,EAAA,WAAOuF,KAAKC,WAAY,CAC3BgrD,iBAAkB,WAClB0gE,mBAAe,EACfC,qBAAqB,KAG7B5K,iBAAkB,WACdhhH,KAAK6rH,qBAETA,kBAAmB,SAASC,GACpB,WAAaA,IAGjB9rH,KAAKC,WACLD,KAAK+rH,MAAMzB,oBAEf1C,eAAgB,WACZ5nH,KAAKC,WACLD,KAAK6nH,iBAAiBC,oBAAoB,CACtCkE,gBAAiB,IAAI,QAAqB,WAGlD3iB,YAAa,WACTrpG,KAAKC,WACLD,KAAKypH,gCACLzpH,KAAKisH,eAETC,wBAAyB,WACrBlsH,KAAKmsH,qBACLnsH,KAAK+rH,MAAMd,wBACXjrH,KAAKC,WACL,eAAY,KACRD,KAAK+rH,MAAMzB,qBAGnBve,YAAa,SAAS3qG,EAAOyI,EAAMq6G,EAAeC,GAC9C,IAAIrZ,EAAc9qG,KAAKC,SAASmB,EAAOyI,EAAMq6G,EAAeC,GAO5D,MANI,SAAWt6G,EAAKkhD,cAChB+/C,EAAY3yF,SAASozG,IAErB,aAAe1hH,EAAKshD,QAAU,WAAathD,EAAKqhD,UAChD4/C,EAAYv2C,YAAYi3D,IAErB1gB,GAEXshB,eAAgB,WACZ,OAAOpsH,KAAKqsH,sBAAsB,CAACrsH,KAAKssH,gBAAiBtsH,KAAKusH,gBAAiBvsH,KAAKyqH,kBAExF0B,mBAAoB,SAASK,GACzB,IAAIC,EAAgBzsH,KAAK6W,WAAWiB,KAAK,IAAMyzG,IAC/C,GAAKkB,EAAc7yH,OAAnB,CAGA4yH,EAAeA,GAAgB,eAASxsH,KAAK6W,YAC7C,eAAE41G,GAAep0G,YAAYozG,IAC7B,IAAIiB,EAAa1sH,KAAKosH,iBACtB,MAAOK,EAAc7yH,QAAU4yH,EAAeE,EAAY,CACtD,IAAIzwB,EAAQwwB,EAAcjwG,IAAI,GAC9BkwG,GAAc,eAAczwB,GAC5BA,EAAM9jF,SAASszG,IACfgB,EAAcpoD,QAAQ,EAAG,MAGjCkmD,cAAe,WACX,IAAI5mH,EAAO3D,KACPw5G,EAAY,eAAKx5G,KAAK4Y,OAAO,UAAY,IAAI,SAAU/O,GACvD,OAAOlG,EAAKgpH,YAAY9iH,MAExB+iH,EAAe5sH,KAAKknG,iBAAiBlvC,SAAS,IAAMuzD,GAA+B,IAAME,IAAqB7qD,IAAI,uBACtH5gE,KAAK6sH,cAAgB7sH,KAAK6sH,eAAiB,GAC3C,IAAIJ,EAAgB,GAAGz4G,MAAMoC,KAAKw2G,GAAc9wH,IAAI+N,IAChD,IAAIgnE,EAAWltE,EAAKgrG,aAAa9kG,GAC7Bk+F,EAAiB,eAAEl+F,GACnBijH,EAAc/kB,EAAe/vC,WACjC,OAAO,OAAAv9D,EAAA,WAAO,CACVwwD,iBAAkB,WACdtnD,EAAKkpH,cAAc5pH,KAAK,CACpB+V,UAAW+uF,EACXl+F,KAAMijH,IAEV,IAAIr3G,EAAa,eAAE,SAAS0C,SAASozG,IACrC,OAAO91G,EAAWskB,OAAO+yF,KAE9Bj8C,KAEP,MAAO,IAAI47C,KAAkBjT,IAEjCuT,iBAAkB,WACd,IAAIppH,EAAO3D,KACX,OAAO,eAAKA,KAAK4Y,OAAO,UAAY,IAAI,SAAU/O,GAC9C,OAAQlG,EAAKgpH,YAAY9iH,OAGjCoiH,YAAa,WACTjsH,KAAKgtH,sBACL,eAAY,KACRhtH,KAAK+rH,MAAMhkH,YAGnBilH,oBAAqB,WACZhtH,KAAK+rH,QACN/rH,KAAK+rH,MAAQ,IAAI,GAAoB/rH,QAG7CitH,cAAe,WACX,IAAIjtH,KAAK6W,WAAWjpB,GAAG,WAAvB,CAGAoS,KAAKusH,gBAAgB9vG,IAAI,CACrBywG,OAAQ,SACRC,MAAO,SAEX,eAAKntH,KAAK6sH,eAAiB,IAAI,SAAU9tH,EAAGquH,GACxC,eAAEA,EAAIp0G,WAAW+gB,OAAOqzF,EAAIvjH,SAEhC7J,KAAK6sH,cAAgB,GACrB,IAAIL,EAAe,eAASxsH,KAAK6W,YACjC7W,KAAKmsH,mBAAmBK,GACxBxsH,KAAKC,SAASusH,KAElBtD,mBAAoB,SAASr/G,EAAMs/G,EAAUtnH,GACrC7B,KAAK2sH,YAAY9iH,GACjB7J,KAAK+rH,MAAMsB,WAAWxjH,EAAMs/G,EAAUtnH,GAC/B7B,KAAKstH,eAAezjH,GAC3B7J,KAAKC,SAAS4J,EAAMs/G,EAAUtnH,IAE9B7B,KAAKC,SAAS4J,EAAMs/G,EAAUtnH,GAC9B7B,KAAK+rH,MAAMzB,mBAEX,aAAenB,GAAY,qBAAuBA,GAClDxE,GAAmC3kH,KAAM6J,GAEzC,aAAes/G,GACfnpH,KAAKutH,WAGb,gCACIvtH,KAAK+sH,mBAAmB7rH,QAAQ2I,GAAQ86G,GAAmC3kH,KAAM6J,KAErF8iH,YAAa,SAAS97C,GAClB,MAAO,SAAWA,EAAS7lB,UAAY,WAAa6lB,EAAS9lB,cAEjEuiE,eAAgB,SAASz8C,GACrB,YAAO,IAAWA,EAAS7lB,UAAY,UAAY6lB,EAAS9lB,cAEhEmjD,eAAgB,SAAS7+D,GACrB,IACIztC,KAAMA,EACNC,MAAOA,GACPwtC,EACJ,OAAQztC,GACJ,IAAK,mBACD5B,KAAKwtH,kBAAkB,eAAgBxtH,KAAKq0D,aAAaxyD,IACzD,MACJ,IAAK,cACD7B,KAAKwtH,kBAAkB5rH,EAAMC,GAC7B7B,KAAKC,SAASnB,MAAMkB,KAAME,WAC1B,MACJ,IAAK,gBACDF,KAAKwtH,kBAAkB,YAAa3rH,GACpC,MACJ,IAAK,sBACD7B,KAAKwtH,kBAAkB,SAAU3rH,GACjC,MACJ,IAAK,WACD7B,KAAKwtH,kBAAkB,WAAY3rH,GACnC7B,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAKypH,gCACL,MACJ,QACIzpH,KAAKC,SAASnB,MAAMkB,KAAME,aAGtCstH,kBAAmB,SAAS5rH,EAAMC,GAC9B7B,KAAK+rH,MAAM0B,aAAa7rH,EAAMC,MAGtC,eAAkB,YAAa6pH,IAChB,UC1LXgC,GAAqB,eACrBC,GAAuB,iBACvBC,GAAqB,eACrBC,GAA6B,CAAC,eAAgB,oBAAqB,sBAAuB,eAAgB,aAAc,eAAgB,aAAc,eACtJC,GAAcnyD,GAAY5L,QAAQ,CAClCg9D,iBAAkB,WACd,MAAO,IAEXgB,oBAAqB,WACjB,OAAO,eAAE,SAAS51G,SAASnY,KAAK4X,gBAAgB+1G,MAEpDK,uBAAwB,SAASC,GAC7B,IAAIC,EAAcD,EAAgB,IAAMA,EAAgB,GACxD,OAAOjuH,KAAK4X,gBAAgB+1G,IAAwBO,GAExDC,mBAAoB,WAChB,IAAIC,EAAqBpuH,KAAK4Y,OAAO,WACjC9C,EAAU,CACVu4G,eAAgB,CACZ9jH,MAAOvK,KAAK+sH,mBACZxyE,QAAS,OAAS6zE,QAAsB,IAAWA,OAAqB,EAASA,EAAmB7zE,QACpG5F,SAAU,OAASy5E,QAAsB,IAAWA,OAAqB,EAASA,EAAmBz5E,SACrGuyE,eAAgB,SAAStjH,GACrB,IAAI0qH,EAAuB1qH,EAAEitE,SAASq2C,eAClCoH,GACAA,EAAqB1qH,MAKjC2qH,EAAY,OAASH,QAAsB,IAAWA,OAAqB,EAASA,EAAmB7jH,MAG3G,GAFAuL,EAAQu4G,eAAe9jH,MAAQvK,KAAKwuH,uBAAuB14G,EAAQu4G,eAAe9jH,MAAOgkH,GACzFvuH,KAAKkyD,cAAc,qBAAsBp8C,GACrCA,EAAQu4G,iBAAmB,eAAUv4G,EAAQu4G,eAAe9zE,SAAU,CACtE,IAAImL,EAAe5vC,EAAQu4G,eAAe9jH,MAC1CuL,EAAQu4G,eAAe9zE,UAAa,OAASmL,QAAgB,IAAWA,IAAgBA,EAAa9rD,QAEzG,OAAOkc,EAAQu4G,gBAEnB,uBAAuBI,EAAcF,GACjCE,EAAavtH,QAAQw9C,IACjB,IAAKmvE,GAA2B7qH,SAAS07C,EAAO98C,MAC5C,MAAM,IAAI8pB,MAAM,yBAAyB/D,OAAO+2B,EAAO98C,KAAM,mDAGrE,IAAI8sH,EAAe,CACf1jE,SAAU,SAEV5zC,EAAUvY,MAAMuY,QAAQm3G,GAC5B,IAAK,eAAUA,GACX,OAAOE,EAENr3G,IACDm3G,EAAY,CAACA,IAEjB,IAAII,EAAwB,GAC5BF,EAAavtH,QAAQw9C,IACjBiwE,EAAsBjwE,EAAO98C,MAAQ88C,IAEzC,IAAIkwE,EAAkBL,EAAUzyH,IAAI4iD,IAC5B,eAASA,KACTA,EAAS,CACL98C,KAAM88C,IAGV,eAAUA,EAAO98C,QACb,eAAU+sH,EAAsBjwE,EAAO98C,OACvC88C,EAAS,OAAAjkD,EAAA,YAAO,EAAM,GAAIk0H,EAAsBjwE,EAAO98C,MAAO88C,GACvDmvE,GAA2B7qH,SAAS07C,EAAO98C,QAClD88C,EAAS,eAAS,GAAIA,EAAQ,CAC1BnE,SAAS,MAId,OAAA9/C,EAAA,YAAO,EAAM,GAAIi0H,EAAchwE,KAE1C,OAAOtnC,EAAUw3G,EAAkBA,EAAgB,IAEvDn7D,YAAa,WACT,GAAKzzD,KAAK+pH,SAON/pH,KAAK+pH,SAASnxG,OAAO5Y,KAAK6uH,qBAPV,CAChB,IAAIC,EAAe9uH,KAAK0X,UACxBo3G,EAAa32G,SAASnY,KAAK4X,gBAAgB81G,KAC3C,IAAI9/G,EAAQ,OAAoBvU,OAAO2G,KAAK4R,UAAU2gD,KAAOq7D,IACzDmB,EAAW,eAAE,SAASr9D,KAAK,aAAc9jD,GAAOwK,SAAS02G,GAC7D9uH,KAAK+pH,SAAW/pH,KAAKiZ,iBAAiB81G,EAAU,GAAS/uH,KAAK6uH,mBAKtErqD,qBAAsB,OACtBe,mBAAoB,WACZvlE,KAAKkzD,eACLlzD,KAAK+H,UAGb0oD,KAAM,WACFzwD,KAAKC,WACLD,KAAKmxD,aAAa,qBAAsB,CACpC8T,kBAAmB,CAAC,WAAY,eAGxCl9D,OAAQ,WACJ/H,KAAK6uH,gBAAkB7uH,KAAKmuH,qBAC5BnuH,KAAKC,SAASnB,MAAMkB,KAAME,YAE9B8uH,uBAAwB,SAASptH,EAAM6rF,GACnC,IAAIwhC,EAAkBjvH,KAAK+pH,SAC3B,GAAIkF,EAAiB,CACjB,IAAI1kH,EAAQ0kH,EAAgBr2G,OAAO,UAAY,GAC3C4rF,EAAYj6F,EAAMjM,QAAQiM,EAAMnM,QAAO,SAAUyL,GACjD,OAAOA,EAAKjI,OAASA,KACrB,IACJ,GAAI4iG,GAAa,EAAG,CAChB,IAAI0qB,EAAmB,SAAW1qB,EAAY,IAC1CyqB,EAAgBr2G,OAAOs2G,EAAmB,YAC1CD,EAAgBr2G,OAAOs2G,EAAmB,oBAAqBzhC,GAE/DwhC,EAAgBr2G,OAAOs2G,EAAmB,YAAazhC,MAKvE0hC,wBAAyB,WACrB,IAAIC,EACJ,QAAUA,EAAiBpvH,KAAK+pH,gBAAa,IAAWqF,GAA0BA,EAAepO,oBAErGqO,eAAgB,WACZ,OAAOrvH,KAAK0X,WAEhB64D,UAAW,WACP,OAAOvwE,KAAK+zD,oBAEhB7C,cAAe,SAAS7hB,GAKpB,GAJI,uBAAyBA,EAAKztC,OAC9B5B,KAAKszD,cACLjkB,EAAK+hB,SAAU,GAEf,YAAc/hB,EAAKztC,OACnBytC,EAAK+hB,SAAU,EACXpxD,KAAK+pH,UAAU,CACf,IAAI5rH,EAAQ,gBAAakxC,EAAKmtC,UAC1BvhC,EAAa5L,EAAKmtC,SAASrhF,QAAQ,aAAc,IACrD,GAAI,IAAMgD,EAAMvE,OAAQ,CACpB,IAAIy0H,EAAiBruH,KAAKmuH,qBAC1BnuH,KAAK+pH,SAASnxG,OAAOy1G,QAClB,GAAI,UAAYlwH,EAAM,GACzB,GAAI,IAAMA,EAAMvE,OAAQ,CACpB,IAAIi1H,EAAkB7uH,KAAKmuH,qBAC3BnuH,KAAK+pH,SAASnxG,OAAO,QAASi2G,EAAgBtkH,YAC3C,GAAI,IAAMpM,EAAMvE,OAAQ,CAC3B,IAAI01H,EAAiBtvH,KAAKwuH,uBAAuBxuH,KAAK+sH,mBAAoB19E,EAAKxtC,OAC/E7B,KAAK+pH,SAASnxG,OAAOqiC,EAAYq0E,QAC1BnxH,EAAMvE,QAAU,GACvBoG,KAAK+pH,SAASnxG,OAAOqiC,EAAY5L,EAAKxtC,YAG1C7B,KAAK+pH,SAASnxG,OAAOqiC,EAAY5L,EAAKxtC,OAIlD7B,KAAKC,SAASovC,IAElBr3B,UAAW,WACP,OAAOhY,KAAK6uH,iBAAmB7uH,KAAK6uH,gBAAgBt0E,SAExDu1B,cAAe,SAERy/C,GAAoB,CAC3B5xH,eAAgB,WACZ,MAAO,IAEX+3D,MAAO,CACH2mC,YAAayxB,IAEjBl4D,UAAW,CACPJ,YAAa,CACT0tD,SAAU,CACN5B,sBAAuB,WACnBthH,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAKqd,QAAQ,eAAe8xG,+BCpMvBI,GAAkB75D,MAAM2mC,YACjD,EAASjmC,eAAe,cAAem5D,ICoBvC,IAAIC,GAAwB,UACxBC,GAAuC,0JAU3C,EAASp5D,qBAAqB,CAAC,eAAgB,UAAW,YAAa,gBAAiB,gBAAiB,WAAY,UAAW,kBAAmB,mBAAoB,mBAAoB,eAAgB,aAAc,aAAc,OAAQ,mBAAoB,gBAAiB,YAAa,cAAe,eAAgB,UAAW,SAAU,OAAQ,QAAS,4BAA6B,cAAe,qBAAsB,gBAAiB,UAAW,eAAgB,SAAU,aAC9d,IAAIq5D,GAAW,OAAO3/D,QAAQ,CAC1B23C,iBAAkB8nB,GAClB7oB,mBAAoB,WAChB,IAAI1nG,EAASe,KAAKC,WAMlB,OALA,eAAK,EAAS+0D,SAAS,WACf,eAAWh1D,KAAKrC,iBAChB,OAAAlD,EAAA,YAAO,EAAMwE,EAAQe,KAAKrC,qBAG3BsB,GAEX0xG,sBAAuB,WACnB3wG,KAAKC,WACL,OAAAxF,EAAA,WAAOuF,KAAK4wG,mBAAoB,CAC5B50C,YAAa,CACT60C,MAAO,OACPC,MAAO,8BAEXz3D,YAAa,CACTw3D,MAAO,OACP93F,QAAS,+CAIrB03F,qBAAsB,WAClB,OAAOzwG,KAAKC,WAAW0nB,OAAO,CAAC,CAC3B+oF,OAAQ,CACJj+E,SAAU,OAEd3c,QAAS,CACLgkC,cAAc,IAEnB,CACC42D,OAAQ,WACJ,OAAO,kBAEX56F,QAAS,CACLgkC,cAAc,EACdD,iBAAiB,EACjBzzB,aAAc,CACVvJ,OAAQ,KAEZ+3B,QAAS,CACL0M,UAAU,GAEd7H,UAAW,CACP8U,mBAAoB,YAG7B,CACCmiD,OAAQ,WACJ,OAAO9wF,EAAA,KAAQijF,QAEnB/sF,QAAS,CACLg6E,eAAgB,GAChB75C,UAAW,CACP4N,UAAW,CACPxI,KAAM,CACFsP,OAAQ,2BACRD,SAAU,IACV31B,KAAM,CACFq0B,QAAS,GAEb1wD,GAAI,CACA0wD,QAAS,QAM9B,CACCsnD,OAAQ,SAASif,GACb,MAAO,YAAcA,EAAQ7lB,YAEjCh0F,QAAS,CACL4/B,SAAU,CACN+T,WAAY,iBAK5Bk+C,MAAO,WACH3nG,KAAKC,WACL,EAAS60D,eAAe90D,KAAM,GAC9B,EAASm2D,sBAAsBn2D,KAAM,SAEzCmnG,OAAQ,OACR+G,eAAgB,SAAS7+D,GACrB,EAAS8mB,sBAAsBn2D,KAAM,gBAAiB,CAACqvC,IAClDA,EAAK+hB,SACNpxD,KAAKC,SAASovC,IAGtBw8E,kBAAmB,WACf7rH,KAAKghH,kBAAiB,IAE1Bzf,mBAAoB,SAAShnD,GACrBA,GACAv6C,KAAKghH,oBAGb3X,YAAa,WACTrpG,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAKqd,QAAQ,YAAYtV,OAAO/H,KAAK6W,aAEzC+gG,mBAAoB,WAChB53G,KAAKqd,QAAQ,YAAYinD,UAE7B06B,eAAgB,WACZ,IAAIr7F,EAAO3D,KACX,gBAAY,WACR2D,EAAKi0G,yBAGbvjD,aAAc,SAASu7D,GACnB,IAAI7zE,EAAW6zE,EAKf,OAJI,eAAS7zE,IAAa,MAAQA,EAAS,KACvCA,EAAW,eAAE6zE,GACb,OAAOxmG,KAAKqmG,KAETzvH,KAAKC,SAAS87C,IAEzB8zE,SAAU,WACN7vH,KAAKC,WACL,EAASk2D,sBAAsBn2D,KAAM,YAEzCizD,QAAS,WACL,OAAOjzD,KAAK2xD,cAAc,QAAQsB,WAEtCtC,YAAa,WACT3wD,KAAKC,WACL,EAASk2D,sBAAsBn2D,KAAM,gBAEzC4wD,UAAW,WACP,EAASuF,sBAAsBn2D,KAAM,aACrCA,KAAKC,YAET0xD,cAAe,SAAS/vD,GACpB,OAAO5B,KAAK4xD,aAAahwD,IAE7Byb,QAAS,SAASzb,GACd,OAAO5B,KAAK6yD,OAAOjxD,IAEvB+yD,MAAO,SAASj9C,GACZ1X,KAAK2xD,cAAc,sBAAsBgD,MAAMj9C,MAGvDg4G,GAASt5D,eAAiB,EAASA,eAAe56C,KAAK,GACvD,eAAkB,aAAck0G,IACjB,U,aCnKXI,GAAa,+DACb,GAAa,SAASC,EAAW7vF,GAC5BA,GAGL,eAAKA,GAAO,SAAUplC,EAAK+G,GACvB,GAAI,eAAcA,IAAUhD,MAAMuY,QAAQvV,GACtCkuH,EAAWluH,QACR,GAAI,kBAAoBA,EAAO,CAClC,IAAIvI,EAAOw2H,GAAWjlG,KAAKhpB,GACvBvI,IACA4mC,EAAMplC,GAAO,IAAIf,KAAKA,KAAKC,KAAKV,EAAK,IAAKA,EAAK,GAAK,GAAIA,EAAK,IAAKA,EAAK,IAAKA,EAAK,IAAKA,EAAK,WAKhG02H,GAAyB,EAAQp9D,eAAe7C,QAAQ,WAC/D,IAAIkgE,EAAa,SAASn6G,GACtB,IAAIo6G,EAAU,mBAAqBp6G,EAAQrX,KAAO,kBAAmB,iBAAYmR,aACjF,IAAKsgH,EACD,MAAM,IAAIxkG,MAAM,SAEpB,OAAOwkG,GAEPC,EAAsB,SAASr6G,GAC/B,OAAO,eAAUA,EAAQk5C,YAAcl5C,EAAQk5C,WAAa,WAEhE,MAAO,CACHohE,WAAY,WACR,IAAIt6G,EAAU9V,KAAK4Y,OAAO,gBAC1B,GAAI,WAAa9C,EAAQrX,KACrB,OAAOqX,EAAQ+4C,YAAc/4C,EAAQ+4C,aAEzC,IACI,OAAO9zD,KAAKoF,MAAM8vH,EAAWn6G,GAASjG,QAAQsgH,EAAoBr6G,KACpE,MAAOlS,GACL,OAAOE,IAAIF,EAAEmV,WAGrBs3G,WAAY,SAASnwF,GACjB,IAAIpqB,EAAU9V,KAAK4Y,OAAO,gBAC1B,GAAI,WAAa9C,EAAQrX,KAIzB,IACIwxH,EAAWn6G,GAASw6G,QAAQH,EAAoBr6G,GAAU/a,KAAKC,UAAUklC,IAC3E,MAAOt8B,GACL,OAAOE,IAAIF,EAAEmV,cANbjD,EAAQg5C,YAAch5C,EAAQg5C,WAAW5uB,IASjDwwB,cAAe,WACX,MAAO,CAAC,UAEZ6/D,UAAW,WACP,OAAOvwH,KAAK4Y,OAAO,yBAEvB63C,KAAM,WACF,IAAI9sD,EAAO3D,KAUX,OATA2D,EAAK6sH,OAAS,GACd7sH,EAAK8sH,WAAY,EACjB9sH,EAAKitF,YAAa,EAClBjtF,EAAK+sH,qBAAuB,gBACpB,IAAW/sH,EAAKgtH,kBAChBhtH,EAAK0sH,WAAW1sH,EAAKu8B,UAG7B,OAAap2B,GAAG,iBAAa,SAAUnG,EAAK+sH,sBACrC/sH,GAEX2qE,SAAU,WACN,OAAOtuE,KAAKywH,WAEhBpmH,UAAW,WACP,OAAOrK,KAAK4wF,YAEhBnwE,KAAM,WACFzgB,KAAK4wF,YAAa,EAClB,IAAIvB,EAAa,yBAAYrvF,KAAKowH,cASlC,OARA/gC,EAAWxM,OAAO,KACd7iF,KAAKywH,WAAY,EACjBzwH,KAAK4wF,YAAa,IACnBvyE,KAAK6hB,IACA,OAASA,GAAU,eAAcA,IACjClgC,KAAKkgC,MAAMA,KAGZmvD,GAEXnvD,MAAO,SAASswF,GACZ,IAAI7sH,EAAO3D,KACX,IAAKE,UAAUtG,OACX,OAAO,OAAAa,EAAA,YAAO,EAAM,GAAIkJ,EAAK6sH,QAE7B7sH,EAAK6sH,OAAS,OAAA/1H,EAAA,WAAO,GAAI+1H,GACzB,GAAW7sH,EAAK6sH,SAGxBI,KAAM,WACF,IAAIjtH,EAAO3D,KACXo6D,aAAaz2D,EAAKgtH,kBAClBhtH,EAAKgtH,iBAAmBjxF,YAAW,WAC/B/7B,EAAK0sH,WAAW1sH,EAAKu8B,SACrBv8B,EAAKgtH,sBAAmB,IACxBhtH,EAAKiV,OAAO,gCAEpBs4C,cAAe,SAAS7hB,GACpB,OAAQA,EAAKztC,MACT,IAAK,eACG5B,KAAKuwH,cAAgBvwH,KAAKqK,aAC1BrK,KAAKygB,OAET4uB,EAAK+hB,SAAU,EACf,MACJ,QACIpxD,KAAKC,SAASovC,KAG1B8iB,QAAS,WACLiI,aAAap6D,KAAK2wH,kBAClB,OAAa1/D,IAAI,iBAAa,SAAUjxD,KAAK0wH,wBAxGU,ICvB/DG,GAAeltH,IACf,IAAImtH,EAAYntH,EAAK0Z,QAAQ,aACzB2lE,EAAiBr/E,EAAKguD,cAAc,QACpCzxB,EAAQ,CACRyrB,iBAAkBmlE,EAAYA,EAAUC,oBAAiB,EACzD77E,YAAa,CACTuR,cAAe9iD,EAAKiV,OAAO,8BAE/BvB,YAAa1T,EAAKiV,OAAO,eACzB48B,cAAe7xC,EAAKiV,OAAO,qBAAuBjV,EAAKiV,OAAO,sBAAmB,GAErF,OAAO,OAAAne,EAAA,WAAOylC,EAAO8iD,EAAexF,iBAEpCwzC,GAAmBrtH,IACnB,IAAI2zD,EAAoB3zD,EAAKguD,cAAc,WACvCs/D,EAAsBttH,EAAKguD,cAAc,aACzCu/D,EAAmBvtH,EAAKguD,cAAc,UACtCqxB,EAAiBr/E,EAAKguD,cAAc,QACpC2F,GACAA,EAAkB+N,eAAev1D,KAAI,WACjCnM,EAAKwtH,YAAY,CACb3yG,QAAS84C,EAAkBkmB,oBAInCyzC,GACAA,EAAoBG,iBAAiBthH,KAAI,SAAUlM,GAC/CD,EAAKwtH,YAAY,CACb33E,gBAAiB51C,EAAE41C,gBACnBE,gBAAiB91C,EAAE81C,qBAI3BspC,IACAr/E,EAAK0tH,iBAAmB1tH,EAAKiV,OAAO,mBACpCjV,EAAK2tH,oBAAsB3tH,EAAKiV,OAAO,eACvCoqE,EAAe1d,QAAQx1D,KAAI,WACvB,IAAIowB,EAAQ2wF,GAAaltH,GACzBA,EAAKwtH,YAAYjxF,OAGrBgxF,GACAA,EAAiBK,qBAAqBzhH,KAAI,WACtCnM,EAAKwtH,YAAY,CACbK,oBAAqBN,EAAiBO,sBAKlDC,GAAuB,KACvB,GAAiB,CAAC/tH,EAAMu8B,KACxB,IAAIyxF,EAAuBhuH,EAAKguD,cAAc,cAC1C2F,EAAoB3zD,EAAKguD,cAAc,WACvCigE,EAAiB1xF,EAAM1hB,cAAW,IAAW0hB,EAAM7oB,YACvD,OAAIs6G,EACIC,EACO1xF,EAAM7oB,aAAes6G,EAAqBE,0BAA0B3xF,EAAM1hB,SAE1E7a,EAAK2tH,qBAAuBK,EAAqBE,0BAA0Bv6D,EAAkBc,cAGrGs5D,IAEAI,GAAqB,CAC5Bn0H,eAAgB,WACZ,MAAO,CACHs8C,aAAc,CACVphC,SAAS,EACTm2C,WAAY,KACZvwD,KAAM,eACNowD,WAAY,KACZC,WAAY,KACZC,cAAe,OAI3ByG,YAAa,CACTvb,aAAc+1E,IAElBp6D,UAAW,CACPF,MAAO,CACHt4C,SAAU,CACNqzC,KAAM,WACF,IAAI9sD,EAAO3D,KACPgjF,EAAiBr/E,EAAKguD,cAAc,QACxChuD,EAAK1D,WACL+iF,EAAe+uC,YAAYjiH,KAAI,WAC3B,GAAIkzE,EAAe1U,aAAe0U,EAAe0O,gBAAiB,CAC9D/tF,EAAKw/F,YAAW,GAChBx/F,EAAK8T,mBACL,IAAIm1D,EAAoBjpE,EAAKiO,UAAUyL,QAAQ,qBAC/CuvD,GAAqBA,EAAkB7kE,SACvCpE,EAAKiO,UAAUsrG,iCAMnC1nD,YAAa,CACTvb,aAAc,CACVwW,KAAM,WACFzwD,KAAKC,SAASnB,MAAMkB,KAAME,WAC1B8wH,GAAiBhxH,OAErBqK,UAAW,WACP,OAAOrK,KAAKC,YAAcD,KAAK2xD,cAAc,QAAQqgE,kBAEzD9xF,MAAO,SAASswF,GACZ,IAAIvxH,EAASe,KAAKC,SAASnB,MAAMkB,KAAME,WAIvC,YAHI,IAAWswH,GACXxwH,KAAKiyH,WAAW,OAAAx3H,EAAA,YAAO,EAAM,GAAI+1H,IAE9BvxH,GAEXkyH,YAAa,SAASjxF,GAClB,GAAIlgC,KAAKuwH,YAAa,CAClB,IAAI2B,EAAWlyH,KAAKkgC,QAChBiyF,EAAW,OAAA13H,EAAA,WAAO,GAAIy3H,EAAUhyF,GAChCkyF,EAAe,eAAWF,GAC1BG,EAAe,eAAWF,GACzB,eAAaC,EAAcC,KAC5BnyF,EAAQ,OAAAzlC,EAAA,YAAO,EAAM,GAAIylC,GACzB,OAAAzlC,EAAA,WAAOuF,KAAKwwH,OAAQtwF,GACpBlgC,KAAK4wH,aAGT,OAAAn2H,EAAA,WAAOuF,KAAKwwH,OAAQtwF,IAG5B+xF,WAAY,SAAS/xF,GACjB,IAAIyrB,EAAmBzrB,EAAMyrB,iBACzBgvC,EAAaz6D,EAAMy6D,WACnBnhD,EAAkBtZ,EAAMsZ,gBACxBE,EAAkBxZ,EAAMwZ,gBACxBw3E,EAAmBlxH,KAAK2xD,cAAc,UACtC2F,EAAoBt3D,KAAK2xD,cAAc,WACvCqxB,EAAiBhjF,KAAK2xD,cAAc,QACpCuhC,EAAgBlzF,KAAK4Y,OAAO,kBAC5B05G,EAAyB,YAAcp/B,GAAiB,aAAeA,EACvElnC,GAAuB,IAAShsD,KAAK4Y,OAAO,kBAAoB5Y,KAAK4Y,OAAO,8BAChF5Y,KAAK4R,UAAU++C,cACX2G,GACAA,EAAkB+sB,aAAankD,EAAM1hB,SAErC0yG,GACAA,EAAiBO,cAAcvxF,EAAMsxF,qBAEpCxxH,KAAK4Y,OAAO,uBACb5Y,KAAK4Y,OAAO,kBAAmB4gC,GAAmB,IAEtDx5C,KAAK4Y,OAAO,kBAAmB8gC,GAC3BiS,GAAoB,SAAW3rD,KAAK4Y,OAAO,4BAC3C5Y,KAAK4Y,OAAO,SAAS+yC,iBAAmBA,GAExC3rD,KAAK4Y,OAAO,uBACZ5Y,KAAK4Y,OAAO,mBAAoB,GAChC5Y,KAAK4Y,OAAO,gBAAiBsnB,EAAMsV,eAAiB,OAExDx1C,KAAK4R,UAAUg/C,YACf5wD,KAAK4Y,OAAO,mBAAoB+hF,GAAc,IAC9C36F,KAAK4Y,OAAO,cAAe,GAAe5Y,KAAMkgC,IAChDlgC,KAAK4Y,OAAO,6BAA6BsnB,EAAMgV,aAAchV,EAAMgV,YAAYuR,eAC/EzmD,KAAK4Y,OAAO,mBAAoBsnB,EAAM+rB,WAAa,GACnDjsD,KAAK4Y,OAAO,kBAAqB05G,IAA0BtmE,IAAyB,eAAU9rB,EAAMgsB,UAA6BlsD,KAAKqxH,iBAAtBnxF,EAAMgsB,UACtH82B,GAAkBA,EAAe5F,UAGzC5+D,QAAS,CACLs/D,4BAA6B,WACzB,IAAI7+E,EAASe,KAAKC,SAASnB,MAAMkB,KAAME,WACnCqyH,EAAyBvyH,KAAK2xD,cAAc,gBAChD,OAAO1yD,KAAYszH,EAAuBhC,aAAegC,EAAuBjkD,cAGxFlqE,KAAM,CACFisD,cAAe,WACX,OAAOrwD,KAAKC,WAAW0nB,OAAO,CAAC,iBAEnCqpE,mBAAoB,WAChB,IAAI/wF,EAAWD,KAAKC,SAChBsyH,EAAyBvyH,KAAK2xD,cAAc,gBAChD,GAAI4gE,EAAuBhC,cAAgBgC,EAAuBjkD,WAAY,CAC1ElU,aAAap6D,KAAKwyH,wBAClB,IAAIpkE,EAAW,IAAI,cAcnB,OAbApuD,KAAKwyH,uBAAyB9yF,WAAW,KACrC6yF,EAAuB9xG,OAAOoiE,OAAO,KACjC7iF,KAAKwyH,uBAAyB,OAC/Bn0G,KAAK,KACJpe,EAASmW,KAAKpW,MACdA,KAAK+xH,YAAYv9D,OACjBpG,EAASztC,YACVG,KAAKsR,IACJpyB,KAAK+xH,YAAYv9D,OACjBx0D,KAAK+pF,iBAAiB33D,GAAS,iBAC/Bg8B,EAASv6B,aAGVu6B,EAAS3sC,UACRzhB,KAAKgyH,kBACb/xH,EAASmW,KAAKpW,OAGtBqK,UAAW,WACP,IAAIkoH,EAAyBvyH,KAAK2xD,cAAc,gBAChD,OAAO3xD,KAAKC,YAAcsyH,EAAuBloH,aAErD2nH,eAAgB,WACZ,OAAO,eAAUhyH,KAAKwyH,yBAE1BlkD,SAAU,WACN,OAAOtuE,KAAKC,aAAeD,KAAKgyH,kBAEpC7/D,QAAS,WACLiI,aAAap6D,KAAKwyH,wBAClBxyH,KAAKC,aAGbw5C,UAAW,CACPg5E,sBAAuB,SAAS38G,GAC5B,IAAIy8G,EAAyBvyH,KAAK2xD,cAAc,gBAC5C+gE,EAAsB1yH,KAAK4Y,OAAO,sBAClC25G,EAAuBloH,aAAeqoH,GAG1C1yH,KAAKC,SAASnB,MAAMkB,KAAME,gBC5O9C,EAASk2D,eAAe,eAAgB07D,I,iBC0BpCa,GAAoB,iBACpB,GAAY,SACZC,GAAsB,eACtBC,GAAwB,qBACxBC,GAA0B,8BAC1BC,GAAuB,oBACvBC,GAA2B,wBAC3B,GAAiB,cACjBC,GAAuB,+BACvBC,GAAiB,iBACjBC,GAAiB,SAASxvH,EAAM01G,GAChC,IAAI4X,EAAsBttH,EAAKguD,cAAc,aACzCv0C,EAAWzZ,EAAK0Z,QAAQ,YACxB+/C,EAAO,eAAEi8C,EAAQnjG,QAAQiI,QAAQ,IAAM,IACvCq8C,EAAWp9C,EAASq9C,YAAY2C,GAChC5C,EAAW,IAGX,cAAgB72D,EAAKiV,OAAOq6G,IACxBhC,EAAoBmC,4BACpBnC,EAAoBoC,8BAEpBpC,EAAoBqC,gCAGpB,YAAc3vH,EAAKiV,OAAOq6G,KAC1BhC,EAAoBqC,+BAEpB,WAAa3vH,EAAKiV,OAAOq6G,KACzBhC,EAAoBsC,oBAAoB/4D,EAAU,CAC9Cg5D,SAAS,OAKrBC,GAAsB,EAAS9gE,WAAW5C,QAAQ,WAClD,IAAI2jE,EAAwB,CAAC16G,EAAWlD,KACpC,IAAIlE,EAAYkE,EAAQlE,UACpBwL,EAAWxL,EAAUyL,QAAQ,YAC7BzL,EAAUgH,OAAO,iBAAmBhH,EAAUgH,OAAO,wBACrD9C,EAAQjU,MAAQ+P,EAAU+hH,cAAc79G,EAAQoH,IAAIpiB,MAExDsiB,EAASw2G,8BAA8B,eAAE56G,GAAYlD,IAErD+9G,EAA0B,CAAC76G,EAAWlD,KACtC,IAAIyE,EAASzE,EAAQyE,OACjBm0D,EAAe,eAAE11D,GACjB4zD,EAAoB92D,EAAQlE,UAAUyL,QAAQ,qBAClDqxD,EAAav2D,SAASw6G,IACtB/lD,EAAkBknD,yBAAyBplD,EAAcn0D,GACzDqyD,EAAkBmnD,mCAAmCrlD,IAEzD,MAAO,CACHje,KAAM,WACF,IACIrC,SAAUA,EACVE,cAAeA,EACfhiB,KAAMA,GACNtsC,KAAK4Y,OAAO,cAAgB,GAC5B,aAAe5Y,KAAK4Y,OAAO,mBAAsBw1C,GAAY,aAAe9hB,GAAQ,aAAegiB,GACnG,OAAOxqD,IAAI,SAEf9D,KAAKiY,gBAAkBjY,KAAK2xD,cAAc,QAC1C3xD,KAAKg0H,eAAiB1nF,EACtBtsC,KAAKi0H,4BAA6B,EAClCj0H,KAAKk0H,WAAal0H,KAAKm0H,mBACvBn0H,KAAKo0H,sBACLp0H,KAAKmxD,aAAa,qBAAsB,CACpC8T,kBAAmB,CAAC,WAAY,cAEpCjlE,KAAKiY,iBAAmBjY,KAAKiY,gBAAgBqxE,OAAOx5E,IAAI9P,KAAK2wF,kBAAkBn1E,KAAKxb,QAExF2wF,kBAAmB,SAAS72E,GACxB,IAAIu6G,EAAcv6G,EAAQ1b,OAAOmjD,GAAU,WAAaA,EAAO9iD,MAAM3C,IAAIylD,GAAUA,EAAOzmD,KAC1Fu5H,EAAYz6H,QAAUoG,KAAKs0H,aAAaD,IAE5CE,oBAAqB,WACjB,IAAIvxC,EAAiBhjF,KAAKiY,gBACtBq/C,EAAoBt3D,KAAK2xD,cAAc,WACvC6iE,EAAmBx0H,KAAK4Y,OAAO,cAAgB,GAC/Cw1C,EAAWomE,EAAiBpmE,SAC5B8kC,EAAgBlzF,KAAK4Y,OAAO,kBAC5B67G,EAAgB,YAAcvhC,GAAiB,aAAeA,EAC9D/kC,EAAiBnuD,KAAK4Y,OAAO,4BAC7B87G,EAAsB10H,KAAK4Y,OAAO,wBACtC,MAAO,CACHkwF,aAAc9oG,KAAK4Y,OAAO,mBAC1B0zB,KAAMtsC,KAAKg0H,eACX5lE,SAAUA,EACVC,yBAA0BmmE,EAAiBnmE,yBAC3C3U,gBAAiB15C,KAAK4Y,OAAO,mBAC7B+7G,qBAAqB,EACrBC,iBAAkB,WACd,IAAIC,EAAkBv9D,EAAkBgf,kBAAkB18E,OAAS,EACnE,OAAO66H,IAAkBC,IAAwBG,GAAmB1mE,IAAmBC,GAE3FtzD,IAAK,WACD,OAAO,OAASkoF,QAAkB,IAAWA,OAAiB,EAASA,EAAeloF,OAE1F0wF,MAAO,SAAS3hF,GACZ,OAAO,OAASm5E,QAAkB,IAAWA,OAAiB,EAASA,EAAewI,MAAM3hF,IAEhGirH,WAAY,WACR,IAAIC,EACJ,OAAO,QAAUA,EAAwB/xC,EAAe5oE,oBAAiB,IAAW26G,OAAwB,EAASA,EAAsBz2G,UAE/ImC,KAAM,SAAS3K,GACX,IAAIk/G,EACJ,OAAQ,QAAUA,EAAyBhyC,EAAe5oE,oBAAiB,IAAW46G,OAAyB,EAASA,EAAuBv0G,KAAK3K,MAAa,IAAK,eAAU6K,QAAQ,KAE5Ls0G,WAAY,WACR,OAAOjyC,EAAez4E,OAAM,IAEhC2qH,eAAgB,SAASrrH,GACrB,OAAOA,EAAK+kG,UAEhBumB,iBAAkB,SAAStrH,GACvB,MAAO,UAAY,OAASA,QAAQ,IAAWA,OAAO,EAASA,EAAK8Q,WAAa9Q,EAAKsT,UAE1Fi4G,YAAa,SAASvrH,GAClB,OAAQ,OAASA,QAAQ,IAAWA,OAAO,EAASA,EAAKwrH,WAAa,OAASxrH,QAAQ,IAAWA,OAAO,EAASA,EAAKzF,OAASyF,GAEpIzL,OAAQ,WACJ,OAAO4kF,EAAeC,kBAAkB70B,IAE5Cs9B,WAAY,IAAM1I,EAAe0I,aACjC4pC,eAAgB,SAASC,EAAeC,EAAkBC,GACtD,IAAIC,EAAwBC,GAExB7zH,KAAMA,EACN1D,OAAQA,GACR,QAAUs3H,EAAyB,QAAUC,EAAyB3yC,EAAe5oE,oBAAiB,IAAWu7G,OAAyB,EAASA,EAAuB/yC,yBAAsB,IAAW8yC,EAAyBA,EAAyB,GAC7PE,EAAWpkH,KAAK3I,IAAI0sH,EAAeC,GACnCK,EAAWrkH,KAAK1I,IAAIysH,EAAeC,GACnC,eAAUC,KACVG,EAAWpkH,KAAK3I,IAAI4sH,EAAgBG,GACpCC,EAAWrkH,KAAK1I,IAAI2sH,EAAgBI,IAExC,IAAIj1G,EAAOi1G,EAAWD,EAAW,EACjC,MAAO,CACH/0G,KAAM+0G,EACNh1G,KAAMA,EACNxiB,OAAQA,EACR0D,KAAMA,IAGd+2C,mBAAoB74C,KAAKiuG,qBAAqBzyF,KAAKxb,QAG3Do0H,oBAAqB,WACjB,IAAI98D,EAAoBt3D,KAAK2xD,cAAc,WACvCmkE,EAAwB91H,KAAK81H,wBACjCx+D,EAAkB4kB,iBAAiB,CAC/Bz9E,KAAM,YACNogB,QAAS,SACT07B,QAASu7E,EACTt3E,cAAe,EACfzpC,SAAU,UACV3J,UAAW,SACXwwC,SAAUm3E,GACV1nH,MAAO,OACPF,aAAcuoH,EACd/1E,mBAAoBk2E,IAExBv8D,EAAkBoQ,aAAa,iBAAkB,UAAWouD,IAEhE3B,iBAAkB,WACd,IAAIr+G,EAAU9V,KAAKu0H,sBACnB,OAAO,IAAI,QAAUz+G,IAEzB28G,sBAAuB,SAAS38G,GAC5B,IAAIigH,EAAW/1H,KAAK4Y,OAAO,sBAAwB,CAC/C8gC,gBAAiB15C,KAAK4Y,OAAO,oBAC7B,CACA4gC,gBAAiBx5C,KAAK4Y,OAAO,oBAEjC5Y,KAAKoxH,iBAAiB58D,KAAKuhE,GACvBjgH,GACA9V,KAAKkyD,cAAc,qBAAsBp8C,IAGjDkgH,uBAAwB,SAASlgH,GAC7B,IAAImgH,EAAiBngH,EAAQmgH,eACzBv8E,EAAkB5jC,EAAQ4jC,gBAC1BqtE,EAAmBjxG,EAAQixG,iBAC3BmP,EAAkBpgH,EAAQogH,gBAC1B,YAAcl2H,KAAK4Y,OAAOq6G,OACtBgD,EAAiBv8E,GAAmB,SAAS/1C,EAAM+1C,GAC/C,IAAIy8E,EAAW,EACX/0G,EAAQzd,EAAKsU,gBAAgBmJ,QAC7BtmB,EAAMsmB,GAASA,EAAMtmB,MACrBs7H,EAAev3H,MAAMuY,QAAQtc,GACjC,IAAK4+C,EAAgB9/C,OACjB,OAAO,EAEX,GAAIw8H,GAAgBv3H,MAAMuY,QAAQsiC,EAAgB,KAAO,QAAUA,EAAgB,GAAI,CACnF,IAAK,IAAIj+C,EAAI,EAAGA,EAAIi+C,EAAgB9/C,OAAQ6B,IACxC,GAAIoD,MAAMuY,QAAQsiC,EAAgBj+C,IAAK,CACnC,GAAIi+C,EAAgBj+C,GAAG,KAAOX,EAAIq7H,IAAa,MAAQz8E,EAAgBj+C,GAAG,GACtE,OAAO,EAEX06H,IAGR,OAAO,EAEX,OAAOr7H,IAAQ4+C,EAAgB,GAnBC,CAoBlC15C,KAAM05C,GAAmBqtE,EAAiBntH,OAAS,GACrDoG,KAAKszH,gCACE2C,EAAiBv8E,IAAoBA,EAAgB9/C,OAAS,IAAMmtH,EAAiBntH,QAAUs8H,EAAgBt8H,SACtHoG,KAAKqzH,gCAIjBplB,qBAAsB,SAAS5+D,GAC3B,IAAIgnF,EACAJ,EAAiBj2H,KAAK4Y,OAAO,sBAC7B8gC,EAAkB15C,KAAKk0H,WAAWx6E,kBAClCspC,EAAiBhjF,KAAKiY,gBACtB1N,EAAQy4E,EAAez4E,OAAM,GAC7BypF,EAAehR,EAAez4E,QAClC,GAAKA,EAAL,CAGA,IAAI6oH,EAA4BpzH,KAAKozH,4BACjCkD,EAAqBt2H,KAAKu2H,sBAAsBhsH,GAChDisH,EAA4Bx2H,KAAKu2H,sBAAsBviC,GAC3Dh0F,KAAKg2H,uBAAuB,CACxBjP,iBAAkB13E,EAAK03E,iBACvBmP,gBAAiB7mF,EAAK6mF,gBACtBx8E,gBAAiBA,EACjBu8E,eAAgBA,KAEhBK,EAAmB18H,QAAUw5H,IAA8BpzH,KAAKozH,8BAChEpwC,EAAeiP,YAAY,CACvBpwB,WAAY,kBACZ40D,YAAaD,IAGjBP,GACAj2H,KAAK4Y,OAAO,kBAAmB8gC,GAC/B28E,EAA0B,KACnBhnF,EAAKqnF,cAAc98H,QAAUy1C,EAAK6mF,gBAAgBt8H,UACzDoG,KAAK22H,8BAA+B,EACpC32H,KAAK4Y,OAAO,kBAAmBy2B,EAAK03E,iBAAiB/yG,MAAM,IAC3DhU,KAAK22H,8BAA+B,EACpCN,EAA0B,CACtBtoH,iBAAkBshC,EAAKunF,cAAc5iH,MAAM,GAC3CwlC,gBAAiBnK,EAAK03E,iBAAiB/yG,MAAM,GAC7C6iH,uBAAwBxnF,EAAKqnF,cAAc1iH,MAAM,GACjD8iH,yBAA0BznF,EAAK6mF,gBAAgBliH,MAAM,KAG7DhU,KAAKyyH,sBAAsB4D,KAE/BE,sBAAuB,SAAShsH,GAG5B,IAFA,IAAIksH,EAAc,GACd/D,EAAsB1yH,KAAK4Y,OAAO,sBAC7Bnd,EAAI,EAAG7B,EAAS2Q,EAAM3Q,OAAQ6B,EAAI7B,EAAQ6B,IAAK,CACpD,IAAIyhB,EAAM3S,EAAM9O,GACZy5H,EAAiBl1H,KAAK2zH,cAAcjB,EAAsBx1G,EAAI9Y,KAAO8Y,EAAIpiB,KACzEkF,KAAKk0H,WAAW6C,WAAW75G,IAAQA,EAAI85G,aAAe9B,GACtDuB,EAAYxzH,KAAKxH,GAGzB,OAAOg7H,GAEXpmE,cAAe,WACX,MAAO,CAAC,qBAEZa,cAAe,SAAS7hB,GAEpB,OADArvC,KAAKC,SAASovC,GACNA,EAAKztC,MACT,IAAK,YACD,IAAIq1H,EAAmBj3H,KAAKg0H,eAE5B,GADAh0H,KAAKywD,OACD,iCAAmCphB,EAAKmtC,SAAU,CAClD,IAAIsqC,EAAgB9mH,KAAKg0H,eACrBx6E,EAAkBx5C,KAAK4Y,OAAO,mBAC9Bq+G,IAAqBnQ,IACjB,WAAaA,EACTttE,EAAgB5/C,OAAS,IACzB4/C,EAAkB,CAACA,EAAgB,KAEhC,aAAestE,IACtBttE,EAAkB,KAG1Bx5C,KAAKk3H,WAAW19E,GAAiBqpC,OAAO,KACpC7iF,KAAKyyH,0BAGbzyH,KAAK2xD,cAAc,WAAWurB,gBAC9B7tC,EAAK+hB,SAAU,EACf,MACJ,IAAK,kBACDpxD,KAAKk0H,WAAWx6E,gBAAgBrK,EAAKxtC,OACrCwtC,EAAK+hB,SAAU,EACf,MACJ,IAAK,kBACD,IAAIvvD,EAAQwtC,EAAKxtC,OAAS,IACtBhD,MAAMuY,QAAQvV,IAAW7B,KAAK22H,+BAAiC32H,KAAK4R,UAAU8/E,iBAAoB7vF,EAAMjI,QACxGoG,KAAKk3H,WAAWr1H,GAEpBwtC,EAAK+hB,SAAU,IAG3BV,cAAe,WACX,MAAO,CAAC,aAAc,eAAgB,sBAAuB,qBAAsB,sBAAuB,iBAAkB,YAAa,cAAe,+BAAgC,8BAA+B,kBAE3NijE,cAAe,SAAS/1B,GACpB,OAAO59F,KAAKk0H,WAAWgB,eAAet3B,IAE1Ck4B,sBAAuB,WACnB,MAAO,aAAe91H,KAAK4Y,OAAOs6G,MAAoB,WAAalzH,KAAK4Y,OAAOq6G,KAAyB,YAAcjzH,KAAK4Y,OAAOq6G,KAAyBjzH,KAAKi0H,6BAEpKkD,oBAAqB,WACjB,MAAO,SAAWn3H,KAAK4Y,OAAO,4BAElCw+G,YAAa,WACT,OAAOp3H,KAAKk0H,WAAWmD,kBAAkBr3H,KAAKm3H,wBAElDG,UAAW,WAIP,MAHI,YAAct3H,KAAK4Y,OAAOq6G,KAC1BjzH,KAAKszH,+BAEFtzH,KAAKk0H,WAAWoD,UAAUt3H,KAAKm3H,wBAE1CI,YAAa,WACT,OAAOv3H,KAAKk0H,WAAWqD,YAAYv3H,KAAKm3H,wBAE5CK,eAAgB,WACZ,OAAOx3H,KAAK+mH,iBAAiB,KAEjCrlC,QAAS,WACL,IAAIloC,EAAkBx5C,KAAK4Y,OAAO,oBAAsB,GACxD,OAAK5Y,KAAK4Y,OAAO,uBAAyB4gC,EAAgB5/C,OAC/CoG,KAAK+mH,iBAAiBvtE,IAE1B,IAAK,eAAU74B,UAAUc,WAEpCslG,iBAAkB,SAASllH,EAAO41H,EAAUC,EAAYN,GACpD,OAAOp3H,KAAKk0H,WAAWnN,iBAAiBllH,EAAO41H,EAAUC,EAAYN,IAEzEO,mBAAoB,WAChB,OAAO33H,KAAKk0H,WAAW0D,uBAE3BV,WAAY,SAAS1vG,EAAMiwG,GACvB,OAAOz3H,KAAK+mH,iBAAiBv/F,EAAMiwG,IAEvCnD,aAAc,SAAS9sG,GACnB,OAAOxnB,KAAK+mH,iBAAiBv/F,GAAM,GAAM,IAE7CqwG,oBAAqB,SAASh1G,GAC1B,IAAItY,EAAQvK,KAAKiY,gBAAgB1N,QAC7Bid,EAAO,GAUX,OATK3oB,MAAMuY,QAAQyL,KACfA,EAAUhkB,MAAM6tB,UAAU1Y,MAAMoC,KAAKlW,UAAW,IAEpD,eAAK2iB,GAAS,WACV,IAAIhZ,EAAOU,EAAMvK,MACb6J,GAAQ,SAAWA,EAAK8Q,SACxB6M,EAAKvkB,KAAK4G,EAAK/O,QAGhBkF,KAAKk3H,WAAW1vG,IAE3BvW,oBAAqB,WACjB,OAAOjR,KAAKk0H,WAAW4D,oBAE3BvE,oBAAqB,SAASwE,EAAkBvwG,EAAMwwG,GAClDxwG,EAAOA,GAAQ,GACXxnB,KAAKozH,8BACL5rG,EAAKgsG,SAAU,GAEnB,IAAIyE,EAAkBF,EAAmB/3H,KAAKiY,gBAAgBy/E,oBAAsB13F,KAAKiY,gBAAgBy/E,mBAAkB,GAC3H,OAAO13F,KAAKk0H,WAAWX,oBAAoB0E,EAAiBzwG,EAAMwwG,IAEtExC,iBAAkB,SAAShxB,GACvB,IAAI,eAAUA,GAGV,OAAOxkG,KAAKk0H,WAAWgE,kBAFvBl4H,KAAKk0H,WAAWgE,kBAAoB1zB,GAK5C4uB,0BAA2B,WACvB,MAAO,aAAepzH,KAAK4Y,OAAOs6G,MAAoB,WAAalzH,KAAK4Y,OAAOq6G,KAAyBjzH,KAAKi0H,6BAEjHX,6BAA8B,WAC1B,MAAI,aAAetzH,KAAK4Y,OAAOs6G,MAAoBlzH,KAAKozH,8BACpDpzH,KAAKi0H,4BAA6B,EAClCj0H,KAAKo0H,uBACE,IAIff,4BAA6B,WACzB,QAAIrzH,KAAKi0H,6BACLj0H,KAAKi0H,4BAA6B,EAClCj0H,KAAKo0H,uBACE,KA7W+B,IAmX3C+D,GAAkB,CACzBx6H,eAAgB,WACZ,MAAO,CACH87C,UAAW,CACPnN,KAAM,OACNiiB,mBAAoB,UACpBJ,gBAAgB,EAChBG,cAAe,WACfD,yBAA0B,KAC1BD,UAAU,GAEd1U,gBAAiB,GACjBF,gBAAiB,KAGzBgc,YAAa,CACT/b,UAAWg6E,IAEf79D,UAAW,CACPJ,YAAa,CACTpxD,KAAM,CACFqsD,KAAM,WACF,IAAIwgE,EAAsBjxH,KAAK2xD,cAAc,aACzCskE,EAAiBj2H,KAAK4Y,OAAO,sBACjC5Y,KAAKC,SAASnB,MAAMkB,KAAME,WACtB+1H,GACAhF,EAAoB+E,uBAAuB,CACvCC,gBAAgB,EAChBv8E,gBAAiB15C,KAAK4Y,OAAO,sBAIzC+6E,gBAAiB,WACb,IAAIhwF,EAAO3D,KACX,OAAO2D,EAAK1D,WAAWoe,MAAK,WACxB1a,EAAKguD,cAAc,aAAa+vB,cAGxC0S,iBAAkB,SAASvqF,EAAMiM,GAC7B,IAAInS,EAAO3D,KACPixH,EAAsBttH,EAAKguD,cAAc,aACzCymE,EAAkBnH,EAAoB6E,wBACtCpD,EAAsB58G,EAAQ48G,yBAAsB,IAAW58G,EAAQ48G,oBAAsB1yH,KAAK4Y,OAAO,sBAAwB9C,EAAQ48G,oBACzIr+B,EAAWr0F,KAAKC,SAASnB,MAAMkB,KAAME,WAEzC,GADAm0F,EAAS2iC,WAAa/F,EAAoB0C,cAAcjB,EAAsBr+B,EAASjwF,KAAOiwF,EAASv5F,KACnGs9H,GAAmB/jC,EAASrtE,OAC5B,IAAK,IAAIvrB,EAAI,EAAGA,EAAIqa,EAAQunD,eAAezjE,OAAQ6B,IAC/C,GAAI,WAAaqa,EAAQunD,eAAe5hE,GAAGojB,QAAS,CAChDw1E,EAASrtE,OAAOvrB,GAAK44F,EAAS2iC,WAC9B,MAIZ,OAAO3iC,GAEX3S,QAAS,SAAS5rE,GACd,IAAInS,EAAO3D,KACPkR,EAAI,IAAI,cAQZ,OAPAlR,KAAKC,SAASnB,MAAMkB,KAAME,WAAWme,MAAK,YACjCvI,GAAWA,EAAQ2jC,UACpB91C,EAAKguD,cAAc,aAAa+vB,UAAUrjE,KAAKnN,EAAEyP,SAASG,KAAK5P,EAAE2iB,QAEjE3iB,EAAEyP,aAENG,KAAK5P,EAAE2iB,QACJ3iB,EAAEuQ,WAEb8jD,mBAAoB,SAAS3hE,GACzB5D,KAAKC,SAASnB,MAAMkB,KAAME,WACpB0D,GAAK,YAAcA,EAAEi+D,YAAgB7hE,KAAK6wF,qBAC5C7wF,KAAK2xD,cAAc,aAAa6jE,kBAAkB,IAG1DhhC,aAAc,SAASjzC,GACnB,IAAIA,GAAU,oBAAsBA,EAAOsgB,WAU3C,OAAO7hE,KAAKC,SAASnB,MAAMkB,KAAME,WAT7BqhD,EAAOh3C,MAAMrJ,QAAQ,CAAC2I,EAAMzI,KACxB,IAAIi3H,EAAcr4H,KAAKgsF,OAAO5qF,GAC1Bi3H,IACAA,EAAYrB,WAAantH,EAAKmtH,WAC9BqB,EAAYrxG,OAASnd,EAAKmd,WAO1CgpC,eAAgB,WACZ,IAAIl2C,EAAU9Z,KAAK8wF,SACfwnC,EAAoBx+G,EAAQlgB,OAAS,GAAKkgB,EAAQ6P,MAAM43B,GAAU,oBAAsBA,EAAOsgB,YACnG,GAAIy2D,EAAmB,CACnB,IAAI7B,EAAc38G,EAAQhe,IAAIylD,GAAUA,EAAOk1E,aAAe,IAAIvuG,OAAO,CAACnmB,EAAGC,IAAMD,EAAE4lB,OAAO3lB,IAC5FhC,KAAK8wF,SAAW,CAAC,CACbjvB,WAAY,kBACZ40D,YAAaA,IAGrBz2H,KAAKC,SAASnB,MAAMkB,KAAME,aAGlC+5G,YAAa,CACTJ,qBAAsB,SAAS/jG,GAC3B,IAAIujG,EAAUvjG,EAAQk8C,MAClBqnD,EAAQ3vC,eAAiB,WAAa2vC,EAAQ3vC,cAAcjrE,MAAQqX,EAAQvL,OAASuL,EAAQvL,MAAM3Q,OAAS,GAGhHu5H,GAAenzH,KAAMq5G,MAIjC3jD,MAAO,CACHkX,kBAAmB,CACfnc,KAAM,WACFzwD,KAAKC,WACLD,KAAK2xD,cAAc,aAAay/D,iBAAiBthH,IAAI9P,KAAKu4H,sBAAsB/8G,KAAKxb,QAEzFu4H,sBAAuB,WACnB,IAAI1hH,EAAW7W,KAAK0X,UAChB8gH,EAAU3hH,GAAYA,EAASiB,KAAK,IAAM+6G,IAC9C,GAAIh8G,GAAY2hH,EAAQ5+H,QAAU,aAAeoG,KAAK4Y,OAAO,kBAAmB,CAC5E,IAAI6/G,EAAiBz4H,KAAK2xD,cAAc,aAAaylE,cACjDsB,GAAe,IAAUD,EACzBzgH,EAAYhY,KAAK4Y,OAAO,6BAA+B5Y,KAAK2xD,cAAc,QAAQz5C,UAAYwgH,EAClGF,EAAQG,WAAW,YAAY//G,OAAO,CAClC2hC,QAASviC,EACTnW,MAAO42H,MAInBlzD,mBAAoB,SAAS3hE,GACzB5D,KAAKC,SAAS2D,KACTA,GAAK,YAAcA,EAAEi+D,YAAcj+D,EAAEs1C,oBAAsB,WAAat1C,EAAEi+D,aAC3E7hE,KAAKu4H,yBAGbzE,yBAA0B,SAASr+G,EAAY8E,GAC3C,IAAI5W,EAAO3D,KACPixH,EAAsBttH,EAAKguD,cAAc,aACzCinE,EAAcj1H,EAAKguD,cAAc,QAAQz5C,UACzCqpG,EAAe,eAAE,SAASnpG,SAAS3C,GAAY0C,SAAS06G,IAwB5D,OAvBAlvH,EAAK2Z,QAAQ,QAAS,OAAoBjkB,OAAO,4BAA6BkoH,GAC9E59G,EAAKguD,cAAc,iBAAiBknE,aAAatX,EAAc,OAAA9mH,EAAA,WAAO,GAAI8f,EAAQ,CAC9Eu+G,WAAY,YACZ/jH,SAAU,UACVlT,MAAOovH,EAAoBmG,cAC3B5rH,cAAe,CACX+uC,SAAUq+E,IAAgBj1H,EAAKiV,OAAO,8BAA+B,IAAUq4G,EAAoBmG,gBAEvGh9E,SAAUz2C,EAAKiV,OAAO,gCAAkC,EAAIjV,EAAKiV,OAAO,aAAe,EACvFmgH,SAAU,SAASl3H,EAAO+B,GACtB,IAAIuqD,EAAiBxqD,EAAKiV,OAAO,4BACjChV,EAAEgO,UAAUgH,OAAO,UAAWu1C,IAAkB,IAAUvqD,EAAEgO,UAAUgH,OAAO,UACxEhV,EAAEouD,OAASi/D,EAAoBmG,gBAAkBv1H,IAGlD+B,EAAE/B,QAAUssD,EACZvqD,EAAEgO,UAAUgH,OAAO,SAAS,GAE5BhV,EAAE/B,MAAQovH,EAAoBqG,YAAcrG,EAAoBsG,cAEpE3zH,EAAEouD,MAAMmL,sBAGTokD,GAEXwS,mCAAoC,SAASl9G,GACzC,OAAa/M,GAAG+M,EAAU,OAAgB7W,KAAKmxD,cAAa,SAAUvtD,GAClE,IAAIouD,EAAQpuD,EAAEouD,MACT,eAAEA,EAAM97C,QAAQiI,QAAQ,IAAM00G,IAAuBj5H,QACtD,OAAaokB,QAAQ,eAAEg0C,EAAMqI,eAAerC,SAAS,IAAM66D,IAAwB,QAEvF7gE,EAAMmL,uBAIlB//C,SAAU,CACNw2G,8BAA+B,SAASn+G,EAAYK,GAC5C,SAAWA,EAAQ6E,SAAY7E,EAAQoH,IAAIC,SAK3C,OAAc3H,aAAaC,IAJ3BA,EAAW0C,SAASw6G,IACpB3yH,KAAKg5H,0BAA0BvjH,GAC/BzV,KAAKi5H,sBAAsBxjH,EAAYK,KAK/CmjH,sBAAuB,SAASjgH,EAAWlD,GACvC,IAAIyrG,EAAe,eAAE,SAASppG,SAAS06G,IAAuBz6G,SAASY,GAevE,OAdAhZ,KAAKsd,QAAQ,QAAS,OAAoBjkB,OAAO,4BAA6BkoH,GAC9EvhH,KAAK2xD,cAAc,iBAAiBknE,aAAatX,EAAc,OAAA9mH,EAAA,WAAO,GAAIqb,EAAQyE,OAAQ,CACtFu+G,WAAY,UACZ/jH,SAAU,UACV+F,OAAQ,KACRjZ,MAAOiU,EAAQjU,MACfk3H,SAAU,SAASl3H,EAAO+B,GACtB,IAAIs1H,EACA,aAAe,OAASt1H,QAAK,IAAWA,GAAa,QAAUs1H,EAAWt1H,EAAEouD,aAAU,IAAWknE,OAArD,EAAyEA,EAASz6H,OAC9H,OAAauf,QAAQpa,EAAE8T,QAAS,OAAgB9T,IAGxDsZ,IAAKpH,EAAQoH,OAEVqkG,GAEXyX,0BAA2B,SAASniH,GAChC,OAAa/M,GAAG+M,EAAU,OAAgB7W,KAAKmxD,cAAa,SAAUvtD,GAClE,IAAIqtH,EAAsBjxH,KAAK2xD,cAAc,aACzCK,EAAQpuD,EAAEouD,MACVwI,EAAWx6D,KAAKy6D,YAAY,eAAEzI,EAAMqI,eAAel8C,QAAQ,IAAM,KACjEq8C,GAAY,IACZy2D,EAAoBqC,+BACpBrC,EAAoBsC,oBAAoB/4D,EAAU,CAC9C7oC,MAAOqgC,EAAMwb,WAEb,eAAExb,EAAM97C,QAAQiI,QAAQ,IAAM00G,IAAuBj5H,QACrDoG,KAAK2xD,cAAc,QAAQsgC,YAAY,CACnCpwB,WAAY,kBACZ40D,YAAa,CAACj8D,WAMlC+iC,QAAS,SAASh8C,GACd,IAAI59C,EAAO3D,KACP0gG,EAAgB/8F,EAAKmhE,mBACrB,oBAAsBvjB,EAAOsgB,WACzB6+B,EAAc9mG,OAAS,IACvB,eAAK8mG,GAAe,SAAU3hG,EAAG4hE,GAC7B,eAAKpf,EAAOk1E,aAAe,IAAI,SAAU13H,EAAGqC,GACxC,IAAIg8D,EACJ,GAAI7b,EAAOh3C,MAAMnJ,KACbg8D,EAAOz5D,EAAKqjE,gBAAgB,eAAErG,IAAenkD,GAAGpb,GAC5Cg8D,EAAKxjE,QAAQ,CACb,IAAIo9H,EAAaz1E,EAAOh3C,MAAMnJ,GAAO41H,WACrC55D,EAAK7I,YAAYq+D,QAAqB,IAAWoE,GAAqBA,GAAYl/G,KAAK,IAAM+6G,IAAuB8F,WAAW,SAAU,QAAS3B,GAClJrzH,EAAK2Z,QAAQ,WAAY05G,EAAY55D,UAKrDz5D,EAAKw1H,0BAGTx1H,EAAK1D,SAASshD,IAGtBub,aAAc,WACV,IAAIn5D,EAAO3D,KACP8mH,EAAgBnjH,EAAKiV,OAAO,kBAC5BkhD,EAASn2D,EAAK1D,SAASnB,MAAM6E,EAAMzD,WAevC,MAdI,SAAW4mH,IACP,cAAgBnjH,EAAKiV,OAAOq6G,KAA0B,YACtD,OAAanpH,GAAGgwD,EAAQ,gBAAa9tB,GAAA,KAAUpqC,KAAM,sBAAuB,IAAM,GAAgB+B,EAAKwtD,cAAa,SAAUvtD,GAC1HuvH,GAAexvH,EAAKiO,UAAWhO,EAAEouD,OACjCpuD,EAAEouD,MAAMo4C,sBAGhB,OAAatgG,GAAGgwD,EAAQ,wBAAyBn2D,EAAKwtD,cAAa,SAAUvtD,GACzE,IAAIouD,EAAQpuD,EAAEouD,MACVA,EAAMwb,UACNxb,EAAMmL,sBAIXrD,GAEX2C,WAAY,SAASv/C,GACjB,IAAIkgD,EAAOp9D,KAAKC,SAASnB,MAAMkB,KAAME,WACrC,GAAIgd,EAAK,CACL,IAAI85G,EAAa95G,EAAI85G,WACjBA,GACA55D,EAAKjlD,SAASy6G,IAElB,IAAI9L,EAAgB9mH,KAAK4Y,OAAOs6G,IAC5B,SAAWpM,GACX9mH,KAAKsd,QAAQ,WAAY05G,EAAY55D,GAG7C,OAAOA,GAEXxC,UAAW,SAASh3D,GAChB,IAAIy1G,EAAUz1G,EAAEouD,MACZonE,EAAsB,eAAE/f,EAAQnjG,QAAQiI,QAAQ,IAAM60G,IAA0Bp5H,OAC/EoG,KAAKq5H,mBAAmB,eAAEhgB,EAAQnjG,WAC9BkjH,GAAwB,aAAep5H,KAAK4Y,OAAOs6G,KAAmB,WAAalzH,KAAK4Y,OAAOq6G,KAC5FjzH,KAAK2xD,cAAc,aAAa4hE,oBAAoB3vH,EAAE42D,SAAU,CAC5Dg5D,QAAS,gBAAoBna,GAC7B1nF,MAAO0nF,EAAQ7rC,aAEnB6rC,EAAQl8C,iBACRv5D,EAAEwtD,SAAU,GAGpBpxD,KAAKC,SAAS2D,KAGtBy1H,mBAAoB,SAAS9nE,GACzB,IAAI+nE,EAAkB/nE,EAAQpzC,QAAQ,IAAM40G,IAAsBn5H,OAClE,QAAS0/H,GAEb7lE,YAAa,SAASlS,GAClBvhD,KAAKC,SAASshD,GACdvhD,KAAKm5H,0BAETA,uBAAwB,WACpB,IAAIz4B,EAAgB1gG,KAAK8kE,mBACrBmsD,EAAsBjxH,KAAK2xD,cAAc,aACzC4nE,EAAqBtI,EAAoB6E,0BAA4B7E,EAAoBmC,4BAC7F,eAAK1yB,GAAe,SAAU3hG,EAAG4hE,GAC7B,eAAEA,GAAcpM,YAAYu+D,GAAyByG,WCpuB7E,EAASnjE,eAAe,YAAa+hE,I,8BC4BjCqB,GAAuB,iBACvBC,GAA8B,wBAC9BC,GAAuB,iBACvBC,GAA4B,sBAC5BC,GAA6B,uBAC7BC,GAA4B,2BAC5BC,GAA8B,6BAC9BC,GAA2B,iBAC3BC,GAA4B,yBAC5BC,GAAyB,oBACzBC,GAAoB,eACpBC,GAAgB,IAChBC,GAAe,SAASz2H,EAAM02H,GAC9B,IAAI9vH,EAAQ,GACR+vH,EAAe,WAAa32H,EAAKiV,OAAO,sBAmB5C,OAlBIyhH,EAAezgI,QACf,eAAKygI,GAAgB,SAAUj5H,EAAOmZ,GAClC,IAAI1Q,EAAO,CACPtN,KAAMge,EAAOrP,QACb0wC,SAAUrhC,EAAOqhC,SACjBc,YAAaniC,EAAOmiC,YACpBurE,UAAU,EACVn5H,GAAIyrB,EAAOnZ,MACXuzC,UAAU,EACV4lF,iBAAiB,IAAUhgH,EAAOmiC,YAClC89E,SAAU,eAAUjgH,EAAOwjC,WAAaxjC,EAAOwjC,UAAY,MAE3Du8E,IACAzwH,EAAK+kG,SAAWr0F,EAAOggC,SAE3BhwC,EAAMtH,KAAK4G,MAGZU,GAEPkwH,GAA0B,EAAQ7nE,eAAe7C,QAAQ,CACzD2qE,8BAA+B,SAAS7jH,GACpC,IAII8jH,EAJAh3H,EAAO3D,KACP46H,EAA2Bj3H,EAAKiU,gBAAgB6hH,IAChDoB,EAAuBl3H,EAAKiV,OAAO,yBACnCkiH,EAA2BjkH,EAASiB,KAAK,IAAM8iH,GAE/CC,EACKC,EAAyBlhI,OAW1BkhI,EAAyBz/E,QAVzBs/E,EAAuB,eAAE,SAASxiH,SAASyiH,GAA0BxiH,SAASvB,GAC9ElT,EAAKsV,iBAAiB0hH,EAAsB,cAAQ,CAChD9+E,KAAMk+E,GACNj+E,QAAS,WACLn4C,EAAK0Z,QAAQ,qBAAqB09G,qBAEtCllF,KAAMlyC,EAAKiV,OAAO,uBAClBoiH,mBAAoB,MAM5BF,EAAyB1/E,QAGjC6/E,YAAa,WACT,IAAI79G,EAAWpd,KAAKqd,QAAQ,YAC5B,MAAO,CACHivC,GAAI,eACJF,GAAI,eACJjzC,GAAIiE,GAAYA,EAAS1F,UACzB2B,UAAW,MACX+C,OAAQ,QACRiwC,eAAgB,UAIxB6uE,GAAoBv/D,GAAY5L,QAAQ,CACxC2D,YAAa,OACbynE,aAAc,WACV,QAASvxB,GAAA,KAAQC,OAAOuxB,KAE5BC,YAAa,SAAS95E,GAClB,IAAIh3C,EACA6wG,EAAgBp7G,KAAKs7H,gBAAgB5tD,WACrC4sD,EAAe,WAAat6H,KAAK4Y,OAAO,sBACxC2iH,EAAoBv7H,KAAKw7H,mBACzBnB,EAAiBr6H,KAAKs9D,mBAAmBiZ,kBAAkB+jD,GAK/D,GAJAt6H,KAAKs7H,gBAAgBh+G,QAAQ,CACzB0pF,KAAM,SACNp5F,MAAO,OAAoBvU,OAAO,mCAElCihI,GAAgBiB,GAAqBh6E,GAAU,cAAgBA,EAAOsgB,WAAY,CAClFt3D,EAAQ6vH,GAAap6H,KAAMq6H,GAC3B,IAAK,IAAI5+H,EAAI,EAAGA,EAAI8O,EAAM3Q,OAAQ6B,IAAK,CACnC,IAAImzG,EAAWrkG,EAAM9O,GAAGmzG,SACpB9/G,EAAKyb,EAAM9O,GAAG3M,GACdA,IAAOyyD,EAAOhsC,cACVq5F,EACA2sB,EAAkBh0B,WAAWz4G,EAAI8/G,GAEjC2sB,EAAkBE,aAAa3sI,EAAI8/G,UAIvC0rB,GAAiBiB,GAAqB,SAAWh6E,IACzDvhD,KAAKs7H,gBAAgBtvB,WAAWz3C,YAAYv0D,KAAK4X,gBAAgBiiH,KAA6BS,GAAc/lE,YAAYv0D,KAAK4X,gBAAgBkiH,IAA8BQ,GAC3K/vH,EAAQ6vH,GAAap6H,KAAMq6H,GAC3Br6H,KAAK07H,gBAAgBtgB,EAAe7wG,KAG5CoxH,0BAA2B,WACvB,IAAIh4H,EAAO3D,KACP6W,EAAWlT,EAAK+T,UAAUS,SAASxU,EAAKiU,gBAAgB4hH,KACxDoC,EAAuBj4H,EAAKiV,OAAO,iBACnCijH,EAAY,iBACZC,EAAiB,eAAUD,GAC3BE,EAAa,eAAgBF,GAC7BG,EAAiB,CACjBzhF,SAAS,EACTzhC,SAAS,EACTysC,iBAAiB,EACjBpB,aAAa,EACbiB,eAAe,EACfpB,0BAA0B,EAC1Bi4E,4CAA4C,EAC5Cv2E,aAAc,CAAC,CACXnpD,KAAMq/H,EAAqBp8E,MAC3BnF,QAAS,MACT2Q,SAAU8wE,GAAkBC,EAAa,SAAW,WAExD52E,SAAUxhD,EAAKguD,cAAc,iBAAiBspE,cAC9C5vH,MAAOuwH,EAAqBvwH,MAC5BwR,OAAQ++G,EAAqB/+G,OAC7BR,WAAY1Y,EAAKiV,OAAO,cACxB+rC,SAAU,WACFhhD,EAAKw3H,gBACL,eAAE,QAAQ9iH,YAAY1U,EAAKiU,gBAAgB8hH,MAGnD1gH,UAAW4iH,EAAqB5iH,WAEhC8iH,GAAkBC,EAClB,OAAAthI,EAAA,WAAOuhI,EAAgB,CACnBz2E,iBAAiB,IAGrBy2E,EAAet2E,aAAas2E,EAAet2E,aAAa9rD,QAAU,CAC9DsiI,SAAU,UAGb,eAAUl8H,KAAKs7H,iBAQhBt7H,KAAKs7H,gBAAgB1iH,OAAOojH,IAP5Br4H,EAAK23H,gBAAkB33H,EAAKsV,iBAAiBpC,EAAU,QAAOmlH,GAC9Dr4H,EAAK23H,gBAAgBxxH,GAAG,iBAAiB,SAAUulC,GAC3C,YAAcA,EAAKztC,MACnB+B,EAAKiwD,gBAAgBY,YAOrCf,YAAa,SAASlS,GACdvhD,KAAKs7H,iBACLt7H,KAAKq7H,YAAY95E,IAGzBm6E,gBAAiB,SAASjmH,EAAYlL,GAClC,IAAI5G,EAAO3D,KACPi0C,EAAgBj0C,KAAK4Y,OAAO,iBAC5B0hH,EAAe,WAAarmF,EAAc3H,KAC1C6vF,EAAiB,CACjB5xH,MAAOA,EACP6xH,cAAe,QACf1oF,oBAAoB,EACpB+B,mBAAmB,EACnBK,mBAAmB,EACnB4wE,aAAc,OACdn4D,mBAAoB,OACpB45C,UAAW,KACXk0B,cAAepoF,EAAc2I,YAC7B2C,cAAetL,EAAcsL,cAC7B2nE,eAAgB,SAAStjH,GACrB,GAAIA,EAAEitE,SAAS0pD,gBAAiB,CAC5B,IACI+B,EADAC,EAAgB,eAAE34H,EAAEknG,aAAa3sF,QAAQ87G,IAE7C,GAAIsC,EAAc3iI,SACd0iI,EAAYC,EAAczkH,KAAKoiH,IAC3BoC,EAAU1iI,QAAQ,CAClB,IAAI4iI,EAAmBF,EAAUl4H,KAAK,cACtCo4H,GAAoBA,EAAiB5jH,OAAO,YAAY,OAMxE0oF,EAAqB7rF,EAAWqC,KAAK,kBAAkB1T,KAAK,gBAC5Do9G,EAAYlgB,GAAsBA,EAAmBkgB,YACrD8Y,IAAiBt6H,KAAKs9D,mBAAmBugB,qBACzCpoE,EAAW0C,SAASnY,KAAK4X,gBAAgBgiH,KAE7CuC,EAAe1lF,eAAiB,SAAS7yC,GACrC,gBAAY,WACR,GAAI49G,EAAW,CACX,IAAIxkB,EAAa,eAAEp5F,EAAE8T,SAASI,KAAK,kBAAkB1T,KAAK,gBAC1D44F,GAAcA,EAAWt7B,SAAS,CAC9BvvD,EAAGqvG,IAGX79G,EAAKiwD,gBAAgBY,WAGzBx0D,KAAKm7H,iBACLgB,EAAergE,oBAAqB,GAExC,OAAArhE,EAAA,WAAO0hI,EAAgB7B,EAAet6H,KAAKy8H,2BAA6Bz8H,KAAK08H,0BACzE18H,KAAKw7H,oBACAW,EAAeE,gBAChBF,EAAe5zB,YAAc,IAEjCvoG,KAAKw7H,mBAAmB5iH,OAAOujH,KAE/Bn8H,KAAKw7H,mBAAqBx7H,KAAKiZ,iBAAiBxD,EAAY,cAAU0mH,GACtE1mH,EAAW0C,SAASnY,KAAK4X,gBAAgB+hH,OAGjD+C,uBAAwB,WACpB,IAAId,EAAuB57H,KAAK4Y,OAAO,iBACvC,MAAO,CACHu9B,WAAYylF,EAAqBt8E,eACjC5L,oBAAoB,EACpB+B,mBAAmB,EACnBK,mBAAmB,EACnB4wE,aAAc,SAAStiH,EAAMhD,EAAOyI,GAChC,eAAEA,GAAMtN,KAAK6H,EAAK7H,MAAM6iB,SAASjH,SAAS/T,EAAKw3C,UAAUzjC,SAAS6hH,OAI9EyC,yBAA0B,WACtB,IAAI94H,EAAO3D,KACX,MAAO,CACH28H,sBAAsB,EACtBpuE,mBAAoB,SACpBquE,uBAAwB,SAASh5H,GAC7B,IAAIy5D,EAAiB15D,EAAK25D,mBAAmBC,oBAAoBn/D,QAAO,SAAUyL,GAC9E,OAAQA,EAAKgV,WAEbg+G,EAAyB,IAAMx/D,EAAezjE,SAAWgK,EAAEitE,SAAS+9B,SACpEiuB,EACAj5H,EAAEgO,UAAU21F,WAAW3jG,EAAEknG,aAEzBprE,YAAW,WACP/7B,EAAK25D,mBAAmBoK,aAAa9jE,EAAEitE,SAAS/hF,GAAI,UAAW8U,EAAEitE,SAAS+9B,YAC1EurB,OAKpB31D,qBAAsB,SAAS5gE,GAC3B,IAAIs+D,EAAct+D,EAAEs+D,YAChBuC,EAAc7gE,EAAE6gE,YAChB61D,EAAe,WAAat6H,KAAK4Y,OAAO,sBAE5C,GADA5Y,KAAKC,SAAS2D,GACV02H,EAAc,CACd,IAAIwC,EAAoBr4D,EAAYlqB,SAAW,IAAMkqB,EAAY7qE,aAAU,IAAWgK,EAAE2R,YACpFwnH,EAAiBt4D,EAAYtmB,qBAAuBsmB,EAAYv5D,SAAWu5D,EAAYlqB,SAAW2nB,EAAY1jD,SAAWimD,EAAY1wC,IACrI+oG,EACA98H,KAAK+H,OAAO,KAAM,CACd85D,WAAY,YACZtsD,YAAa3R,EAAE2R,cAEZwnH,GACP/8H,KAAK+H,OAAO,KAAM,UAI9BmpD,cAAe,SAAS7hB,GACpB,OAAQA,EAAKztC,MACT,IAAK,gBACD5B,KAAK27H,4BACL37H,KAAK+H,OAAO,KAAM,QAClB,MACJ,QACI/H,KAAKC,SAASovC,KAG1BipB,kBAAmB,WACf,IACI2zC,EADAhtG,EAAS,GAETq7H,EAAe,WAAat6H,KAAK4Y,OAAO,sBACxCyhH,EAAiBr6H,KAAKs9D,mBAAmBiZ,kBAAkB+jD,GAC3D5sD,EAAW1tE,KAAKs7H,iBAAmBt7H,KAAKs7H,gBAAgB5tD,WACxDsvD,EAAStvD,GAAYA,EAAS51D,KAAK,qBAQvC,OAPIklH,GACA3C,EAAen5H,SAAQ,SAAUqZ,GAC7B0xF,EAAQ+wB,EAAO5+H,OAAO,oBAAsBmc,EAAOnZ,MAAQ,MAC3D,IAAIyI,EAAOoiG,EAAMryG,OAASqyG,EAAMj0C,SAAS,IAAMgiE,IAA2Bt8H,IAAI,GAAK,KACnFuB,EAAOgE,KAAK4G,MAGb,eAAE5K,IAEbgpE,QAAS,WACL,MAAO,iBAEX7P,WAAY,WACR,OAAOp4D,KAAKs9D,mBAAmBiZ,qBAEnCzG,cAAe,SAASv1D,EAAQw1D,GAC5B,IAAIktD,EAAgB1iH,GAAUA,EAAOmiC,cAAgB,kBAAoBqzB,IAAmBx1D,EAAOggC,SAAWv6C,KAAKs9D,mBAAmB2hB,sBAAsB1kE,EAAOnZ,QACnK,OAAOpB,KAAKk9H,0BAA4BD,GAE5Cj1D,gBAAiB,WACb,IAAIhvD,EAAYhZ,KAAKs7H,iBAAmBt7H,KAAKs7H,gBAAgB/nB,kBAC7D,GAAIv6F,GAAaA,EAAUprB,GAAG,YAAa,CACvC,IAAIwuB,EAASpD,EAAUoD,SACvB,MAAO,CACHO,KAAMP,EAAOO,KACbC,IAAKR,EAAOQ,IACZugH,MAAO/gH,EAAOO,KAAO,eAAc3D,GACnC+lG,OAAQ3iG,EAAOQ,IAAM,eAAe5D,IAG5C,OAAO,MAEX+hH,kBAAmB,WACV/6H,KAAKs7H,kBACNt7H,KAAK27H,4BACL37H,KAAK+H,UAET/H,KAAKs7H,gBAAgBjgF,OACjBr7C,KAAKm7H,gBACL,eAAE,QAAQhjH,SAASnY,KAAK4X,gBAAgB8hH,MAGhD0D,kBAAmB,WACXp9H,KAAKs7H,iBACLt7H,KAAKs7H,gBAAgBlgF,QAG7B8hF,uBAAwB,WACpB,IAAIG,EAAiBr9H,KAAKs7H,gBAC1B,OAAO+B,GAAkBA,EAAezkH,OAAO,YAEnD83C,cAAe,WACX,MAAO,CAAC,oBAAqB,wBAG1B4sE,GAAsB,CAC7B3/H,eAAgB,WACZ,MAAO,CACHs2C,cAAe,CACXp7B,SAAS,EACT+jC,aAAa,EACb2C,cAAe,IACfjT,KAAM,cACNjhC,MAAO,IACPwR,OAAQ,IACR2iC,MAAO,OAAoBnmD,OAAO,iCAClCimD,eAAgB,OAAoBjmD,OAAO,qCAC3C2f,eAAW,KAIvBw8C,YAAa,CACTvhB,cAAewmF,IAEnB/kE,MAAO,CACH6nE,kBAAmBrC,IAEvBtlE,UAAW,CACPF,MAAO,CACH2mC,YAAa,CACT0wB,iBAAkB,WACd,IAAIxiH,EAAQvK,KAAKC,WACjB,OAAOD,KAAKw9H,yBAAyBjzH,IAEzCizH,yBAA0B,SAASjzH,GAC/B,IAAI5G,EAAO3D,KACP66H,EAAuBl3H,EAAKiV,OAAO,yBACvC,GAAIiiH,EAAsB,CACtB,IAAI4C,EAAW95H,EAAKiV,OAAO,uBACvBuzC,EAAc,CACdhB,OAAQ,WACRr1C,QAAS,CACL+lC,KAAMk+E,GACNj+E,QAAS,WACLn4C,EAAKiO,UAAUyL,QAAQ,qBAAqB09G,qBAEhDllF,KAAM4nF,EACNlhI,KAAMkhI,EACNhmF,cAAe,SAAS7zC,GACpB,eAAEA,EAAE8T,SAASS,SAASxU,EAAKqqH,uBAAuBrqH,EAAKiU,gBAAgB6hH,OAE3E5kF,YAAa,CACT,gBAAiB,WAGzBqW,SAAU,SACVF,SAAU,QACVppD,KAAM,sBACNmpD,aAAc,OACd1M,UAAW,IAEf9zC,EAAMtH,KAAKkpD,GAEf,OAAO5hD,GAEX2mD,cAAe,SAAS7hB,GACpB,OAAQA,EAAKztC,MACT,IAAK,gBACD5B,KAAKszD,cACLjkB,EAAK+hB,SAAU,EACf,MACJ,QACIpxD,KAAKC,SAASovC,KAG1Br3B,UAAW,WACP,IAAI6iH,EAAuB76H,KAAK4Y,OAAO,yBACvC,OAAO5Y,KAAKC,YAAc46H,KAItCrlE,YAAa,CACTh3C,QAAS,CACLgiE,gBAAiB,SAASC,EAAkBC,EAAgB3Q,EAAgB4Q,GACxE,IAAI+8C,EAAoB19H,KAAK4Y,OAAO,sBAChC+kH,EAAyB,WAAaD,GAAqB,kBAAoB/8C,EACnF,OAAOg9C,GAAiC39H,KAAKC,SAASwgF,EAAkBC,EAAgB3Q,EAAgB4Q,QCpcvF28C,GAAoB9nE,YAAYvhB,cACtCqpF,GAAoB5nE,MAAM6nE,kBACzD,EAASnnE,eAAe,gBAAiBknE,I,8BCGlC,SAASM,GAAmB5jD,EAAMz4D,EAAkBs8G,GAGvD,IAFA,IAAIC,EAAS,mCAAqBv8G,EAAiBhK,OAC/CnZ,EAAS,GACJ3C,EAAIoiI,EAAgB7jD,EAAKpgF,OAAS,EAAI,EAAG6B,EAAIu+E,EAAKpgF,OAAQ6B,IAAK,CAEpE,IADA,IAAIsiI,EAAgB,GACXryH,EAAI,EAAGA,GAAKjQ,EAAGiQ,IAAK,CACzB,IAAI8L,EAAWsmH,EAAOpyH,GAAG8L,SACzB,GAAI/b,IAAMiQ,GAAM,OAASsuE,EAAKtuE,KAAM,IAAUsuE,EAAKtuE,KAAM,IAASsuE,EAAKtuE,GAShE,CACH,IAAIsyH,EAAgB,CAACxmH,EAAU/b,IAAMiQ,EAAIoyH,EAAOpyH,GAAGoQ,KAAO,IAAM,IAAM,IAAKk+D,EAAKtuE,IAC5E,MAAQsyH,EAAc,GACtBD,EAAc96H,KAAK,CAAC+6H,EAAe,KAAM,CAACxmH,EAAU,IAAK,QAEzDumH,EAAc96H,KAAK+6H,QAbnB,IAAUhkD,EAAKtuE,GACfqyH,EAAc96H,KAAK,CAACuU,EAAU,MAAKsmH,EAAOpyH,GAAGoQ,MAAc,QACpDk+D,EAAKtuE,IAAMoyH,EAAOpyH,GAAGoQ,KAAOgiH,EAAOpyH,GAAGoQ,MAC7CiiH,EAAc96H,KAAK,CAACuU,EAAU,KAAMwiE,EAAKtuE,MAEzCqyH,EAAc96H,KAAK,CAACuU,EAAU,KAAM,OACpCumH,EAAc96H,KAAK,CAACuU,EAAU,IAAK,QAW/CpZ,EAAO6E,KAAK,EAASuW,eAAeukH,IAGxC,OADA3/H,EAAS,EAASob,eAAepb,EAAQ,MAClC,EAASob,eAAe,CAACpb,EAAQmjB,EAAiBnjB,SAEtD,IAAI6/H,GAAiB,OAAMluE,QAAQ,WACtC,IAAImuE,EAAqB,SAASC,EAAYrjI,GAC1C,IAAIsjI,EAAOD,EAAWC,KACtB,OAAOA,GAAQA,EAAKrjI,KAAKC,UAAUF,KAEnCujI,EAA4B,SAASF,EAAY/hH,GACjD,IAaIhb,EAbAk9H,EAAY,EACZC,EAAaJ,EAAWvkI,OAAS,EACrC,IAAKukI,EAAWvkI,OACZ,OAAO,EAEX,EAAG,CACC,IAAI4kI,EAAcD,EAAaD,GAAa,EACxCH,EAAWK,GAAapiH,OAASA,EACjCmiH,EAAaC,EAEbF,EAAYE,QAEXD,EAAaD,EAAY,GAElC,IAAKl9H,EAAQk9H,EAAWl9H,GAASm9H,EAAYn9H,IACzC,GAAI+8H,EAAW/8H,GAAOgb,OAASA,EAC3B,MAGR,OAAOhb,GAEX,MAAO,CACH6uD,KAAM,SAASmpC,GACXp5F,KAAKqa,YAAc++E,EACnBp5F,KAAKo9E,SAETA,MAAO,WACHp9E,KAAKy+H,YAAc,GACnBz+H,KAAKgpF,sBAAwB,GAEjC+F,qBAAsB,WAClB,OAAO/uF,KAAKgpF,uBAEhB01C,sBAAuB,SAAS3vC,GAC5B/uF,KAAKgpF,sBAAwB+F,GAAwB,GAEzD4vC,qBAAsB,SAAS90H,GAC3B,OAAQ7J,KAAK4+H,qBAAuB/0H,EAAKoT,gBAE7C2hH,iBAAkB,WACd,IAAI1rC,EAAgBlzF,KAAKqa,YAAYzB,OAAO,kBAC5C,MAAO,YAAcs6E,GAAiB,aAAeA,GAEzDpH,WAAY,WACR,IAAIsN,EAAoBp5F,KAAKqa,YACzBD,EAAag/E,EAAkB/+E,YAC/B4rE,EAAa,EAAStwE,qBAAqByE,EAAW7C,SAAW,IAAI3d,OACrEkyF,EAAa,SAAS+yC,EAAoBl7H,EAAM4G,EAAOqxE,GACvD,IAAI38E,EAAS,EACb,GAAIsL,EACA,GAAKqxE,EAGD,IAAK,IAAIngF,EAAI,EAAGA,EAAI8O,EAAM3Q,OAAQ6B,IAC1BkI,EAAKg7H,qBAAqBp0H,EAAM9O,KAChCwD,IAEJA,GAAU4/H,EAAoBl7H,EAAM4G,EAAM9O,GAAG8O,MAAOqxE,EAAc,QANtE38E,EAASsL,EAAM3Q,OAUvB,OAAOqF,EAdM,CAefe,KAAMoa,EAAW7P,QAAS07E,GAC5B,OAAO6F,GAEXgzC,cAAe,SAAS91H,EAAU+1H,EAAiBC,EAAwBC,EAAeC,GACtF,IAAIv7H,EAAO3D,KACX,OAAO,SAASm/H,EAAkBhB,EAAYn1H,EAAU+1H,EAAiBt5C,GACrE,IAAI25C,EAAkB,GAEtB,SAASC,EAAgBr2H,EAAU5E,EAAMqhF,EAAS25C,GAC9C,IAAIE,EAAiBl7H,GAAQ4E,EAAS5E,EAAMqhF,GAE5C,OADA65C,GAAkBF,EAAgBn8H,KAAKq8H,GAChCA,EAEX,IAAK,IAAI7jI,EAAI,EAAGA,EAAI0iI,EAAWvkI,OAAQ6B,IAAK,CAExC,GADAgqF,EAAQxiF,KAAKk7H,EAAW1iI,GAAG2I,OACtB26H,IAAmB,IAAUM,EAAgBr2H,EAAUm1H,EAAW1iI,GAAG2I,KAAMqhF,EAAS25C,GACrF,OAAO,EAEX,IAAKjB,EAAW1iI,GAAG2I,MAAQ+5H,EAAW1iI,GAAG2I,KAAKwR,YAAcopH,EAAwB,CAChF,IAAIhnE,EAAWmmE,EAAW1iI,GAAGu8D,SACzBsnE,EAAiBtnE,EAASp+D,QAAUulI,EAAkBnnE,EAAUhvD,EAAU+1H,EAAiBt5C,GAE/F,GADA65C,GAAkBF,EAAgBn8H,KAAKq8H,IACnC,IAAUA,EACV,OAAO,EAGf,GAAIP,IAAmB,IAAUM,EAAgBr2H,EAAUm1H,EAAW1iI,GAAG2I,KAAMqhF,EAAS25C,GACpF,OAAO,EAENjB,EAAW1iI,GAAG2I,MAAQ+5H,EAAW1iI,GAAG2I,KAAKgY,SAAW+hH,EAAW1iI,GAAG2gB,SACnE6iH,GAAgB,GAEpBx5C,EAAQtiE,MAEZ,IAAIo8G,EAAiBL,GAAuBz5C,EAAQzxE,MAAM,GAC1D,OAAOirH,GAAiB,UAAKngI,MAAM,OAAGsgI,GAAiBv8C,QAAO,WAC1Dl/E,EAAK67H,wBAAwBrB,EAAYoB,MA/B1C,CAiCL57H,EAAK86H,YAAaz1H,EAAU+1H,EAAiB,KAEnDS,wBAAyB,SAASrB,EAAY14C,GAC1CA,EAAUA,GAAW,GACrB,IAAK,IAAIrkF,EAAQ,EAAGA,EAAQ+8H,EAAWvkI,OAAQwH,IAAS,CACpD,IAAIq+H,EAAYtB,EAAW/8H,GAC3B,GAAIq+H,EAAUr7H,MAAQq7H,EAAUr7H,KAAKgY,SAAWqjH,EAAUrjH,OAAQ,CAC9DqjH,EAAUrjH,OAASqjH,EAAUr7H,KAAKgY,OAClC,IAAK,IAAI2iE,EAAc,EAAGA,EAAc0G,EAAQ7rF,OAAQmlF,IACpD0G,EAAQ1G,GAAa3iE,OAASqjH,EAAUrjH,QAIpD+hH,EAAWr8H,MAAK,SAAUC,EAAGC,GACzB,OAAOD,EAAEqa,OAASpa,EAAEoa,WAG5BsjH,cAAe,SAAS1lD,GAGpB,IAFA,IAAIylD,EACAtB,EAAan+H,KAAKy+H,YACbkB,EAAY,EAAGxB,GAAcwB,EAAY3lD,EAAKpgF,OAAQ+lI,IAC3DF,EAAYvB,EAAmBC,EAAYnkD,EAAK2lD,IAChDxB,EAAasB,GAAaA,EAAUznE,SAExC,OAAOynE,GAAaA,EAAUr7H,MAElCw7H,aAAc,SAASC,GAInB,IAHA,IAAIJ,EACAzlD,EAAO6lD,EAAc7lD,KACrBmkD,EAAan+H,KAAKy+H,YACbkB,EAAY,EAAGA,EAAY3lD,EAAKpgF,OAAQ+lI,IAAa,CAE1D,GADAF,EAAYvB,EAAmBC,EAAYnkD,EAAK2lD,KAC3CF,EAAW,CACZA,EAAY,CACR3kI,IAAKk/E,EAAK2lD,GACVvjH,OAAQyjH,EAAczjH,OACtBhY,KAAM,CACFgY,OAAQyjH,EAAczjH,OACtBxG,YAAY,EACZokE,KAAMA,EAAKhmE,MAAM,EAAG2rH,EAAY,IAEpC3nE,SAAU,IAEd,IAAI52D,EAAQi9H,EAA0BF,EAAY0B,EAAczjH,QAChE+hH,EAAW95D,OAAOjjE,EAAO,EAAGq+H,GAC5BtB,EAAWC,KAAOD,EAAWC,MAAQ,GACrCD,EAAWC,KAAKrjI,KAAKC,UAAUykI,EAAU3kI,MAAQ2kI,EAEjDE,IAAc3lD,EAAKpgF,OAAS,IAC5B6lI,EAAUr7H,KAAOy7H,EACbJ,EAAUrjH,SAAWyjH,EAAczjH,QACnCpc,KAAKw/H,wBAAwBrB,IAGrCA,EAAasB,EAAUznE,WAG/B8nE,iBAAkB,WACd,OAAO,GAEXp+C,QAAS,SAAS5rE,GACd,IAAIyL,EAAmBzL,EAAQyL,iBAC3Bu8G,EAAS,mCAAqBv8G,EAAiBhK,OAAS,IACxDwoH,EAAY,WAAY//H,KAAO,mCAAqBA,KAAKggI,QAAU,IAAMlC,EACzEliD,EAAcpqE,KAAK3I,IAAIk3H,EAAUnmI,OAAQkkI,EAAOlkI,QACpDoG,KAAKggI,OAASz+G,EAAiBhK,MAC/B,IAAK,IAAImmC,EAAa,EAAGA,EAAak+B,EAAal+B,IAC/C,GAAIqiF,EAAUriF,GAAYlmC,WAAasmH,EAAOpgF,GAAYlmC,SAAU,CAChEokE,EAAcl+B,EACd,MAGHk+B,EAGC,SAASqkD,EAAgB9B,EAAYzgF,EAAYk+B,GAC/C,IAAK,IAAIngF,EAAI,EAAGA,EAAI0iI,EAAWvkI,OAAQ6B,IAC/BiiD,EAAa,GAAKk+B,EAClBuiD,EAAW1iI,GAAGu8D,SAAW,GAEzBioE,EAAgB9B,EAAW1iI,GAAGu8D,SAAUta,EAAa,EAAGk+B,GALlE,CAQA57E,KAAKy+H,YAAa,EAAG7iD,GAVvB57E,KAAKo9E,SAab8iD,kBAAmB,aACnBC,iBAAkB,SAASrqH,EAAS7V,GAChCA,EAAS6V,IAEbsqH,qBAAsB,SAAStqH,EAAS7V,GACpCA,EAAS6V,KArMqB,ICnCnC,SAASuqH,GAAkBrmD,EAAMz4D,GAGpC,IAFA,IAAIu8G,EAAS,mCAAqBv8G,EAAiBhK,OAC/CnZ,EAAS,GACJ3C,EAAI,EAAGA,EAAIu+E,EAAKpgF,OAAQ6B,IAC7B2C,EAAO6E,KAAK,CAAC66H,EAAOriI,GAAG+b,SAAU,IAAKwiE,EAAKv+E,KAK/C,OAHI8lB,EAAiBnjB,QACjBA,EAAO6E,KAAKse,EAAiBnjB,QAE1B,OAAcob,eAAepb,G,iBCapCkiI,GAAiB,SAASlmH,EAAYtE,GACtC,IAAI5E,EAAI,IAAI,cACRwP,EAAc,OAAAjmB,EAAA,WAAO,CACrBomB,KAAM,EACND,KAAM,EACN4sE,mBAAmB,GACpB13E,GAIH,OAHAsE,EAAWqG,KAAKC,GAAarC,MAAK,SAAUja,EAAM+mC,GAC9Cj6B,EAAEyP,QAAQwqB,GAASA,EAAMugD,eACzB5qE,KAAK5P,EAAE2iB,OAAOrY,KAAKtK,IAChBA,GAEA,GAAiB+sH,GAAmBluE,QAAQ,WACnD,IAAIivE,EAAyB,SAASr7H,EAAMqF,EAAUi2H,GAClD,OAAOt7H,EAAKm7H,eAAc,SAAUW,GAChC,IAAKA,EAAU7pH,WACX,OAAO5M,EAASy2H,MAEpB,GAAO,EAAOR,GAAe,IAEjCsB,EAAwB,SAAS58H,EAAMkd,GACvC,IAAI2/G,EAAiB,EACjBC,EAAa5/G,GAAQ,EAUzB,OATIA,IACAm+G,EAAuBr7H,GAAM,SAAU87H,GACnC,GAAIA,EAAUrjH,OAASokH,GAAkB3/G,EACrC,OAAO,EAEX2/G,GAAkBf,EAAUrtH,MAAQ,KAExCquH,GAAcD,GAEXC,GAEPC,EAAa,SAASC,EAAOC,GAC7B,GAAID,EAAM/mI,SAAWgnI,EAAMhnI,OACvB,OAAO,EAEX,IAAK,IAAI6B,EAAI,EAAGA,EAAIklI,EAAM/mI,OAAQ6B,IAC9B,IAAK,wBAAU,KAAMklI,EAAMllI,GAAImlI,EAAMnlI,IACjC,OAAO,EAGf,OAAO,GAEPolI,EAAqB,SAASA,EAAmBl9H,EAAM4G,EAAOyvE,EAAM59D,EAAQ0kH,GAC5E,GAAKv2H,EAAL,CAGA,IAAK,IAAI9O,EAAI,EAAGA,EAAI8O,EAAM3Q,OAAQ6B,IAAK,CACnC,IAAIoO,EAAOU,EAAM9O,GACjB,GAAI,QAASoO,QAAQ,IAAWA,EAAKU,MAAO,CACxCyvE,EAAK/2E,KAAK4G,EAAK/O,KACXgmI,GAAuBJ,EAAWI,EAAoB9mD,KAAMA,KAAUnwE,EAAKoT,iBAC3E6jH,EAAoB1kH,OAASA,GAEjC,IAAIqjH,EAAY97H,EAAK+7H,cAAc1lD,GAC/BylD,IAAc51H,EAAKoT,iBACnBwiH,EAAUrjH,OAASA,GAEnBqjH,IAAcA,EAAU7pH,WACxBwG,GAAUqjH,EAAUrtH,MAEpBgK,EAASykH,EAAmBl9H,EAAMkG,EAAKU,MAAOyvE,EAAM59D,EAAQ0kH,GAEhE9mD,EAAK72D,WAEL/G,IAGR,OAAOA,IAEP2kH,EAAgB,SAASA,EAAcl3H,EAAMo8E,GAC7C,IAAI7zE,EAAQvI,EAAKuI,OAASvI,EAAKU,MAAM3Q,OACrC,IAAKiQ,EAAKuI,OAAS6zE,EAAa,EAAG,CAC/B7zE,EAAQ,EACR,IAAK,IAAI3W,EAAI,EAAGA,EAAIoO,EAAKU,MAAM3Q,OAAQ6B,IACnC2W,GAAS2uH,EAAcl3H,EAAKU,MAAM9O,GAAIwqF,EAAa,GAG3D,OAAO7zE,GAEX,MAAO,CACH8tH,kBAAmB,SAASpqH,GACxB,IAII8K,EAJAW,EAAmBzL,EAAQyL,iBAC3By/G,EAAkB,GAClBC,EAAsB,EACtBC,GAAgB,EAEhB3pH,EAAQzB,EAAQ4K,YAAYnJ,MAC5BipH,EAAiB,EAUrB,GATE,SAASj/G,EAAkBb,GACzB,GAAIA,EAAYnJ,MAAO,CACnB,IAAIumH,EAAS,EAAanoH,qBAAqB+K,EAAYnJ,OACvD4pH,EAAQ,EAAaxrH,qBAAqB4L,EAAiBzf,MAC/Dyf,EAAiBzf,KAAO,QAAYs/H,mBAAmBtD,EAAQqD,UACxDzgH,EAAYnJ,OALzB,CAOAgK,EAAkBzL,EAAQ4K,aAC5B5K,EAAQyB,MAAQzB,EAAQyB,OAASA,GAC7BzB,EAAQ82E,gBAAZ,CAGA,IAAIlsE,EAAc,OAAAjmB,EAAA,WAAO,GAAI8mB,GAC7Bb,EAAYG,KAAO0/G,EAAsBvgI,KAAMuhB,EAAiBV,MAC5DH,EAAYG,MAAQH,EAAYE,MAAQrJ,IACxCmJ,EAAYG,OACZH,EAAYE,OACZsgH,GAAgB,GAEhBxgH,EAAYE,MAAQrJ,IACpBqJ,EAAOF,EAAYE,KACnBF,EAAYE,QAEhBo+G,EAAuBh/H,MAAM,SAAUy/H,GACnC,GAAIA,EAAUrjH,QAAUsE,EAAYG,KAAOH,EAAYE,KAAO4/G,EAC1D,OAAO,EACAf,EAAUrjH,QAAUsE,EAAYG,KAAO2/G,GAAkBf,EAAUrtH,QAC1EouH,GAAkBf,EAAUrtH,MAAQ,EACpC4uH,EAAgB/9H,KAAKw8H,GACrBwB,GAAuBxB,EAAUrtH,UAGzC,eAAK4uH,GAAiB,WAClBtgH,EAAYtiB,OAAS,SAAS47E,EAAMz4D,EAAkBhK,GAGlD,IAFA,IAAIumH,EAAS,EAAanoH,qBAAqB4B,GAASgK,EAAiBhK,OACrEnZ,EAAS,GACJ3C,EAAI,EAAGA,EAAIu+E,EAAKpgF,OAAQ6B,IAAK,CAElC,IADA,IAAIsiI,EAAgB,GACXryH,EAAI,EAAGA,GAAKjQ,EAAGiQ,IACpBqyH,EAAc96H,KAAK,CAAC66H,EAAOpyH,GAAG8L,SAAU/b,IAAMiQ,EAAI,KAAO,IAAKsuE,EAAKtuE,KAEvEtN,EAAO6E,KAAK,EAAauW,eAAeukH,IAG5C,OADA3/H,EAAS,EAAaob,eAAepb,EAAQ,MACtC,EAAaob,eAAe,CAACpb,EAAQmjB,EAAiBnjB,SAX5C,CAYnB4B,KAAKg6E,KAAMt5D,EAAanJ,MAE9BzB,EAAQyL,iBAAmBb,EAC3B5K,EAAQkrH,gBAAkBA,EAC1BlrH,EAAQmrH,oBAAsBA,EAC9BnrH,EAAQ+K,KAAOH,EAAYG,MAAQ,EACnC/K,EAAQorH,cAAgBA,EACxBprH,EAAQ8K,KAAOA,IAEnBu/G,iBAAkB,SAASrqH,EAAS7V,GAChC,IAAI+gI,EAAkBlrH,EAAQkrH,gBAC1BlD,EAAS,EAAanoH,qBAAqBG,EAAQyB,OACnD0uE,EAAa63C,EAAOlkI,OAExB,SAASynI,EAAoBj9H,EAAM41E,EAAM8jD,EAAQwD,EAAgBllH,GAC7D,GAAKhY,GAAS41E,EAAKpgF,QAAWkkI,EAAOlkI,OAArC,CAGA,IAAI2nI,EACA9lI,EACA+lI,EAAY,gBAAaxnD,EAAK,IAAI,GACtC,IAAKv+E,EAAI,EAAGA,EAAI2I,EAAKxK,OAAQ6B,IAAK,CAE9B,GADA8lI,EAAW,gBAAan9H,EAAK3I,GAAGX,KAAK,GACjCshB,GAAUklH,EAAellH,QAAUolH,IAAcD,EACjD,MAEAnlH,GAAU2kH,EAAc38H,EAAK3I,GAAIqiI,EAAOlkI,QAG3CwK,EAAKxK,QAAU4nI,IAAcD,GAC9Bn9H,EAAKigE,OAAO5oE,EAAG,EAAG,CACdX,IAAKk/E,EAAK,GACVzvE,MAAO,GACP6H,MAAO,IAAM4nE,EAAKpgF,OAAS0nI,EAAelvH,WAAQ,IAG1DivH,EAAoBj9H,EAAK3I,GAAG8O,MAAOyvE,EAAKhmE,MAAM,GAAI8pH,EAAO9pH,MAAM,GAAIstH,EAAgBllH,IASvF,GAPItG,EAAQmrH,qBAAuBnrH,EAAQq1B,OAASr1B,EAAQq1B,MAAMugD,YAAc,IACvE51E,EAAQq1B,MAAMs2F,0CACf3rH,EAAQq1B,MAAMugD,YAAc51E,EAAQmrH,oBACpCnrH,EAAQq1B,MAAMs2F,yCAA0C,IAGhExhI,EAAS6V,GACLmwE,EAAY,CACZ,IAAI7hF,EAAO0R,EAAQ1R,KACfs9H,EAAQ,gBAAUt9H,GAItB,GAHA,QAAYu9H,gBAAgBD,EAAO5D,GAAQ8D,YAAYvjH,MAAK,SAAUwjH,GAClEz9H,EAAOy9H,KAEPb,EACA,IAAK,IAAIrB,EAAY,EAAGA,EAAYqB,EAAgBpnI,OAAQ+lI,IACxD0B,EAAoBj9H,EAAM48H,EAAgBrB,GAAW3lD,KAAM8jD,EAAQkD,EAAgBrB,GAAY7pH,EAAQ+K,MAG1G/K,EAAQ82E,iBACP,SAASk1C,EAAkBn+H,EAAM4G,EAAOyvE,EAAM59D,EAAQ8kH,EAAetgH,GAGnE,IAFA,IAAImhH,EAAuB,EACvBC,GAAsB,EACjBvmI,EAAI,EAAGA,EAAI8O,EAAM3Q,OAAQ6B,IAAK,CACnC,IAAIoO,EAAOU,EAAM9O,GACjB,QAAI,IAAWoO,EAAKU,MAAO,CACvByvE,EAAK/2E,KAAK4G,EAAK/O,KACf,IAAI2kI,EAAY97H,EAAK+7H,cAAc1lD,GACnC,GAAIylD,IAAcA,EAAU7pH,WACxB/L,EAAKkyE,eAAiBlyE,EAAKU,MAC3BV,EAAKU,MAAQ,KACb6R,GAAUqjH,EAAUrtH,MACpBwO,IACIA,EAAO,GACPmhH,IAEAb,IACAc,GAAsB,QAEvB,GAAIn4H,EAAKU,MAAO,CACnB,IAAI03H,EAAaH,EAAkBn+H,EAAMkG,EAAKU,MAAOyvE,EAAM59D,EAAQ8kH,EAAetgH,GAC9EsgH,IACIe,EAAW7lH,OAASA,EAAS,EAC7BvS,EAAKoT,gBAAiB,EAEtB+kH,GAAsB,GAG9B5lH,EAAS6lH,EAAW7lH,OACpBwE,EAAOqhH,EAAWrhH,KACdA,EAAO,IACH/W,EAAKU,MAAM3Q,OACXiQ,EAAKo+E,0BAA2B,EAEhC85C,KAIZ/nD,EAAK72D,WAED+9G,IACAc,GAAsB,GAE1B5lH,IACAwE,IACIA,EAAO,GACPmhH,IAGRb,GAAgB,EAQpB,OANIc,GACAz3H,EAAM85D,OAAO,EAAG,GAEhB09D,GACAx3H,EAAM85D,QAAQ09D,EAAsBA,GAEjC,CACH3lH,OAAQA,EACRwE,KAAMA,GA3DZ,CA6DA5gB,KAAMoE,EAAM,GAAI0R,EAAQ+K,KAAM/K,EAAQorH,cAAeprH,EAAQ8K,MAEnE9K,EAAQ1R,KAAOA,IAGvBu6H,qBAAsB,SAAS90H,GAC3B,OAAO,OAASA,EAAKU,OAEzBm0H,sBAAuB,WACnB,IAAIwD,EAAuB,EAC3BlD,EAAuBh/H,MAAM,SAAUy/H,GAC/BA,EAAUrtH,QACV8vH,GAAwBzC,EAAUrtH,MAAQ,MAGlDpS,KAAKC,SAASiiI,IAElBC,gBAAiB,SAASnoD,GACtB,IAMIooD,EANAz+H,EAAO3D,KACPoa,EAAazW,EAAK0W,YAClBgoH,EAAiBjoH,EAAWioH,eAAiBjoH,EAAWioH,iBAAmBjoH,EAAW6xC,YACtFq2E,EAAkBloH,EAAW7P,QAC7B6R,EAASmkH,EAAsB58H,EAAM0+H,EAAiBjoH,EAAW8xC,YACjEuzE,EAAY97H,EAAK+7H,cAAc1lD,GAYnC,OATIooD,EADA3C,IAAcA,EAAU7pH,YACN,IAAK,eAAU+K,QAAQ8+G,EAAUrtH,OAEjCkuH,GAAelmH,EAAY,CACzChc,OAAQiiI,GAAkBrmD,EAAM,CAC5B57E,OAAQgc,EAAWhc,SACnBmZ,MAAO6C,EAAW7C,YAIvB,kBAAK6qH,GAAiB/jH,MAAK,SAAUjM,GACxCA,EAAQ7Q,SAAS6Q,EAAMxY,OAASwY,EAAM,GAAKA,GACvCqtH,GACAoB,EAAmBl9H,EAAM2+H,EAAiB,GAAIlmH,GAC9CqjH,EAAU7pH,YAAc6pH,EAAU7pH,WAClC6pH,EAAUrtH,MAAQA,IAElBqtH,EAAY,CACRrjH,QAAS,EACThK,MAAOA,EACP4nE,KAAMA,EACNpkE,YAAY,GAEhBirH,EAAmBl9H,EAAM2+H,EAAiB,GAAIlmH,EAAQqjH,GAClDA,EAAUrjH,QAAU,GACpBzY,EAAKi8H,aAAaH,IAG1B97H,EAAK+6H,2BACL59G,MAAK,WACL1G,EAAW2uE,gBAAgB0G,UAAU,YAAavvF,eAG1D4/H,iBAAkB,WACd,OAAO,GAEXp+C,QAAS,SAAS5rE,EAASswE,GACvB,IAAIziF,EAAO3D,KACPuhB,EAAmBzL,EAAQyL,iBAC3BnH,EAAazW,EAAK0W,YAEtB,GADAra,KAAKC,SAASnB,MAAMkB,KAAME,WACtBkmF,EAAeC,OACf,OAAO24C,EAAuBr7H,GAAM,SAAU87H,GAC1C,IAAI2C,EAAkB9B,GAAelmH,EAAY,CAC7Chc,OAAQiiI,GAAkBZ,EAAUzlD,KAAMz4D,KAE1CghH,EAAmBjC,GAAelmH,EAAY,CAC9Chc,OAAQw/H,GAAmB6B,EAAUzlD,KAAMz4D,KAE/C,OAAO,kBAAKghH,EAAkBH,GAAiB/jH,MAAK,SAAUjC,EAAQhK,GAClEgK,EAAS7a,SAAS6a,EAAOxiB,OAASwiB,EAAO,GAAKA,GAC9ChK,EAAQ7Q,SAAS6Q,EAAMxY,OAASwY,EAAM,GAAKA,GAC3CqtH,EAAUrjH,OAASA,EACfqjH,EAAUrtH,QAAUA,IACpBqtH,EAAUrtH,MAAQA,EAClBzO,EAAK+6H,+BAGb,KArUmC,I,aCfvD,SAAS8D,GAA0BC,EAAav2E,EAAU+zD,EAAWviE,GAEjE,GADAA,EAAaA,GAAc,EACvBwO,EAAW,GAAK+zD,EAAY,EAAG,CAC/B,IAAIyiB,EAAaD,EAAcjxH,KAAKE,MAAM+wH,EAAcv2E,GAAYA,GAAYA,EAKhF,OAJAw2E,GAAcziB,EAAYviE,EAAa,EACnCglF,EAAa,IACbA,GAAcx2E,GAEX16C,KAAKE,MAAMgxH,GAAcx2E,EAAWxO,EAAa,IAE5D,OAAO,EAEJ,IAAI,GAAiBugF,GAAmBluE,QAAQ,WACnD,IAAI4yE,EAAwB,SAASh/H,EAAMqF,EAAU45H,GACjD,OAAOj/H,EAAKm7H,eAAc,SAAUW,EAAWh6C,GAC3C,GAAIg6C,EAAU7pH,WACV,OAAO5M,EAASy2H,EAAWh6C,MAE/B,GAAM,EAAOm9C,EAAcA,IAE/Bd,EAAoB,SAASA,EAAkBn+H,EAAM4G,EAAOqxE,EAAainD,EAAc7oD,EAAM4S,EAAiBk2C,GAC9G,IAAIltH,EAKJ,GAJAitH,EAAat4H,MAAQs4H,EAAat4H,OAAS,GAC3Cs4H,EAAaE,MAAQF,EAAaE,OAAS,GAC3CF,EAAazwH,MAAQywH,EAAazwH,OAAS,EAC3CywH,EAAaG,UAAYH,EAAaG,WAAa,EAC9CpnD,EAGL,IAAK,IAAIngF,EAAI,EAAGA,EAAI8O,EAAM3Q,OAAQ6B,IAAK,CACnC,IAAIoO,EAAOU,EAAM9O,GACjB,QAAI,IAAWoO,EAAKU,MAAO,CAEvB,GADAyvE,EAAK/2E,KAAK4G,EAAK/O,KACX8xF,EACAh3E,GAAa,MACV,CACH,IAAI6pH,EAAY97H,EAAK+7H,cAAc1lD,GACnCpkE,EAAa6pH,GAAaA,EAAU7pH,WAEnCA,EAGM/L,EAAKU,MACZu3H,EAAkBn+H,EAAMkG,EAAKU,MAAOqxE,EAAc,EAAGinD,EAAc7oD,EAAM4S,EAAiBk2C,GACnF,IAAMlnD,IAAe/xE,EAAKuI,OAAWw6E,IAAmBk2C,IAC/DD,EAAat4H,MAAMtH,KAAK4G,GACxBg5H,EAAaE,MAAM9/H,KAAK+2E,EAAKhmE,MAAM,IACnC6uH,EAAazwH,OAASywH,EAAaG,UACnCH,EAAaG,UAAYn5H,EAAKuI,QAR9BvI,EAAKkyE,eAAiBlyE,EAAKU,MAC3BV,EAAKU,MAAQ,MASjByvE,EAAK72D,SAIb8/G,EAAsB,SAASt/H,EAAMkG,EAAMq5H,EAAkBlpD,EAAM59D,GACnE,IACIhK,EADAqtH,EAAY97H,EAAK+7H,cAAc1lD,GAE9BylD,GAWGyD,EACAzD,EAAUrtH,MAAQvI,EAAKuI,MAAQ,EAAIvI,EAAKuI,MAAQvI,EAAKU,OAASV,EAAKU,MAAM3Q,QAAU,EAEnFiQ,EAAKuI,MAAQqtH,EAAUrtH,OAASvI,EAAKuI,MAEzCqtH,EAAUrjH,OAASA,IAff8mH,IACA9wH,EAAQvI,EAAKuI,MAAQ,EAAIvI,EAAKuI,MAAQvI,EAAKU,MAAM3Q,QAErD+J,EAAKi8H,aAAa,CACdhqH,WAAYjS,EAAKw/H,iBAAiBnpD,EAAKpgF,OAAS,GAChDogF,KAAMA,EAAKhmE,MAAM,GACjBoI,OAAQA,EACRhK,MAAOA,GAAS,MAWxBgxH,EAAmB,SAASA,EAAiBz/H,EAAMmS,EAASvL,EAAO84H,EAAkB3lF,EAAYs8B,EAAM+E,GACvG,IAKI3sE,EALA6zE,EAAanwE,EAAQyB,MAAQzB,EAAQyB,MAAM3d,OAAS,EACpDspI,EAAmBj9C,IAAeo9C,EAClCC,EAAextH,EAAQsK,iBAAiB44B,OACxC58B,EAAS,EACTsvE,EAAa,EAOjB,GALAhuC,EAAaA,GAAc,EAC3Bs8B,EAAOA,GAAQ,GACXspD,IAAiBvkD,IACjB3iE,EAAS,IAAMshC,EAAa5nC,EAAQ+K,MAAQ,EAAI/K,EAAQgyE,MAAMpqC,EAAa,IAAM,GAEjFA,GAAc2lF,EACd,OAAO94H,EAAM3Q,OAEjB,IAAK,IAAI6B,EAAI,EAAGA,EAAI8O,EAAM3Q,OAAQ6B,IAAK,CACnC,IAAIoO,EAAOU,EAAM9O,GACjB,GAAIoO,EAAM,CAEN,GADAmwE,EAAK/2E,KAAK4G,EAAK/O,MACV+O,EAAKuI,QAAUvI,EAAKU,YAAS,IAAWV,EAAKU,MAC9C,OAAQ,EAIZ,GAFA04H,EAAoBt/H,EAAMkG,EAAMq5H,EAAkBlpD,EAAM59D,EAAS3gB,GACjE2W,EAAQvI,EAAKU,MAAQ64H,EAAiBz/H,EAAMmS,EAASjM,EAAKU,MAAO84H,EAAkB3lF,EAAa,EAAGs8B,EAAMv+E,GAAKoO,EAAKuI,QAAU,EACzHA,EAAQ,EACR,OAAQ,EAEZs5E,GAAct5E,EACd4nE,EAAK72D,OAGb,OAAOuoE,GAEP63C,EAAkB,SAASzF,EAAQpgF,GACnC,OAAOogF,GAAUA,EAAOlkI,QAAUkkI,EAAOpgF,MAAiBogF,EAAOpgF,GAAY9nC,YAE7E4tH,EAAiB,SAASC,EAAYv3E,EAAU9vC,GAGhD,IAFA,IAAI6jG,EACAyjB,EAActnH,EACTshC,EAAa,EAAGA,EAAa+lF,EAAW7pI,OAAQ8jD,IACrDuiE,EAAYwjB,EAAW/lF,GAAYthC,OAAS,EACxCshC,EAAa,IACbuiE,GAAawjB,EAAW/lF,EAAa,GAAGimF,mBACpCz3E,IACA+zD,GAAauiB,GAA0BkB,EAAax3E,EAAU+zD,EAAWviE,EAAa,GAAKA,IAGnGgmF,GAAezjB,EAEnB,OAAOyjB,GAGX,SAASE,EAA6B9tH,EAAS+sH,EAAcgB,EAAYC,GACrE,IAAIj6H,EAAOg5H,EAAat4H,MAAMu5H,GAC1BjjH,EAAO/K,EAAQgyE,OAAShyE,EAAQgyE,MAAM+7C,GACtCjjH,EAAO9K,EAAQiyE,OAASjyE,EAAQiyE,MAAM87C,GACtCE,EAAqBD,IAAsBjB,EAAat4H,MAAM3Q,OAAS,EACvEoqI,EAAsB,IAAMF,EAC5BG,EAAuBD,GAAuBnjH,GAAQ,EACtDqjH,EAAyBr6H,EAAKuI,MAAQwO,EAAOqjH,EAC7CD,QAAuB,IAAWnjH,IAClChX,EAAKoT,gBAAiB,GAEtB8mH,QAAsB,IAAWnjH,GAAQsjH,IACzCr6H,EAAKo+E,0BAA2B,GAIxC,SAASk8C,EAAe//H,GACpB,OAAQvF,MAAMuY,QAAQhT,GAG1B,SAASggI,EAAiBtuH,GACjBquH,EAAeruH,EAAQ1R,QACxB0R,EAAQ1R,KAAO,IAAI,eAI3B,SAASigI,EAAe1gI,EAAMmS,EAASutH,EAAkBR,EAAcgB,EAAYz/H,GAC1E0R,EAAQ82E,kBACTi2C,EAAe,GACff,EAAkBn+H,EAAMS,EAAMi/H,EAAkBR,EAAc,IAC5D,SAAS/sH,EAAS+sH,EAAcyB,GAC9B,IAAIC,EAAoBD,EAAoB,EACxCr+C,EAAanwE,EAAQyB,MAAQzB,EAAQyB,MAAM3d,OAAS,EACxDipI,EAAahiH,KAAO/K,EAAQgyE,OAAShyE,EAAQgyE,MAAMy8C,GAC/CzuH,EAAQiyE,YAAS,IAAWjyE,EAAQiyE,MAAMw8C,KAEtC1B,EAAajiH,KADbqlE,IAAeq+C,GACKzB,EAAazwH,MAAQywH,EAAazwH,OAASywH,EAAahiH,MAAQ,GAEhE,EAExBgiH,EAAajiH,MAAQ9K,EAAQiyE,MAAMw8C,IAVzC,CAYAzuH,EAAS+sH,EAAcQ,IAE7B,IAAIp9C,EAAanwE,EAAQyB,MAAQzB,EAAQyB,MAAM3d,OAAS,EACpDipI,EAAaE,MAAMnpI,QAAUqsF,EAAao9C,EAAmB,GAC7De,EAAiBtuH,GACf,SAASnS,EAAMmS,EAAS+sH,EAAcQ,EAAkBQ,EAAYz/H,GAClE,IAAI05H,EAAShoH,EAAQyB,OAAS,GAC1BitH,EAAe1G,EAAO+F,EAAa,GACnCjiD,EAAY,GAChB,eAAKihD,EAAaE,OAAO,SAAUe,GAC/B,IAAIpjH,EAAc,CACd8sE,mBAAmB,EACnBi3C,mBAAmB,EACnBltH,MAAO,CAACitH,GACRE,aAAc5uH,EAAQyL,iBAAiBmjH,aACvCtmI,OAAQiiI,GAAkBwC,EAAaE,MAAMe,GAAoB,CAC7D1lI,OAAQ0X,EAAQyL,iBAAiBnjB,OACjCmZ,MAAOumH,IAEXx/G,OAAQxI,EAAQyL,iBAAiBjD,QAEjC,IAAMwlH,IACNpjH,EAAYG,KAAOgiH,EAAahiH,MAAQ,GAExCijH,IAAsBjB,EAAaE,MAAMnpI,OAAS,IAClD8mB,EAAYE,KAAOiiH,EAAajiH,MAEpC,IAAIyuE,EAAa,IAAM3uE,EAAYE,KAAO,GAAKjd,EAAK0W,YAAY80E,cAAczuE,GAC9E,kBAAK2uE,GAAYhxE,MAAK,SAAUja,GAC5B,IAAIyF,EAAOg5H,EAAat4H,MAAMu5H,GAC9BF,EAA6B9tH,EAAS+sH,EAAcgB,EAAYC,GAChEj6H,EAAKU,MAAQnG,KAEjBw9E,EAAU3+E,KAAKosF,MAEnB,UAAKvwF,MAAM,KAAM8iF,GAAWvjE,MAAK,WAC7B+kH,EAAiBz/H,EAAMmS,EAAS1R,EAAMi/H,EAAmB,GACzDgB,EAAe1gI,EAAMmS,EAASutH,EAAmB,EAAGR,EAAcgB,EAAa,EAAGz/H,MAhCxF,CAkCAT,EAAMmS,EAAS+sH,EAAcQ,EAAkBQ,EAAYz/H,IACtDy+H,EAAaE,MAAMnpI,QAAUkc,EAAQyL,iBAAiBhK,OAC7D6sH,EAAiBtuH,GACf,SAASnS,EAAMmS,EAAS+sH,EAAcz+H,GACpC,IAAIugI,EAAkB,GAClB7G,EAAShoH,EAAQyB,OAAS,GAC9B,eAAKsrH,EAAaE,OAAO,SAAUhkI,EAAG6lI,GAClCD,EAAgB1hI,KAAKo9H,GAAkBuE,EAAc,CACjDrtH,MAAOzB,EAAQ82E,gBAAkB92E,EAAQyL,iBAAiBhK,MAAQumH,QAG1E,IAAI1/H,EAAS0X,EAAQyL,iBAAiBnjB,OACjC0X,EAAQyL,iBAAiBguE,eAC1BnxF,EAAS,EAAaob,eAAe,CAACpb,EAAQ,EAAaob,eAAemrH,EAAiB,SAE/F,IAAIjkH,EAAc,OAAAjmB,EAAA,WAAO,GAAIqb,EAAQyL,iBAAkB,CACnDisE,mBAAmB,EACnBi3C,mBAAmB,EACnBltH,MAAO,KACPzV,KAAMg8H,EAAOn2G,OAAO,EAAahS,qBAAqBG,EAAQyL,iBAAiBzf,MAAQ,KACvF1D,OAAQA,IAERymI,EAAgBlhI,EAAK0W,YAAYyqH,mCAChCD,IACDnkH,EAAYG,KAAOgiH,EAAahiH,KAChCH,EAAYE,KAAOiiH,EAAajiH,MAEpC,kBAAK,IAAMiiH,EAAajiH,KAAO,GAAKjd,EAAK0W,YAAY80E,cAAczuE,IAAcrC,MAAK,SAAU9T,EAAO4gC,GAC/F05F,IACAt6H,EAAQ5G,EAAK0W,YAAY0qH,wBAAwBx6H,EAAOuzH,EAAQ+E,EAAaE,OAC7Ex4H,EAAQs4H,EAAahiH,KAAOtW,EAAMyJ,MAAM6uH,EAAahiH,MAAQtW,EAC7DA,EAAQs4H,EAAajiH,KAAOrW,EAAMyJ,MAAM,EAAG6uH,EAAajiH,MAAQrW,GAEpE,eAAKs4H,EAAat4H,OAAO,SAAUnJ,EAAOyI,GACtC,IAAIi4F,EAAYj4F,EAAKuI,OAAS,IAAMhR,GAASyhI,EAAahiH,MAAQ,GAC9DmkH,EAAgBz6H,EAAM85D,OAAO,EAAGy9B,GACpC8hC,EAA6B9tH,EAAS+sH,EAAc/E,EAAOlkI,OAAS,EAAGwH,GACvEyI,EAAKU,MAAQy6H,KAEjBlvH,EAAQ1R,KAAKuc,QAAQvc,MACrB0c,KAAKhL,EAAQ1R,KAAKyvB,QArCxB,CAsCAlwB,EAAMmS,EAAS+sH,EAAcz+H,IACxB+/H,EAAeruH,EAAQ1R,OAC9B0R,EAAQ1R,KAAKuc,QAAQvc,GAG7B,IAAI6gI,EAAsB,SAAS7qH,EAAYtE,GAC3C,IAAI5E,EAAI,IAAI,cACRg0H,KAAgBpvH,EAAQyB,QAASzB,EAAQyB,MAAM3d,QAC/C8mB,EAAc,OAAAjmB,EAAA,WAAO,CACrBomB,KAAM,EACND,KAAM,EACN6jH,kBAAmBS,EACnB13C,mBAAoB03C,GACrBpvH,EAAS,CACRyB,MAAO2tH,EAAapvH,EAAQyB,MAAQ,OAUxC,OARA6C,EAAWqG,KAAKC,GAAarC,MAAK,SAAUja,EAAM+mC,GAC9C,IAAI/4B,EAAQ+4B,IAAU+5F,EAAa/5F,EAAM86C,WAAa96C,EAAMugD,YACvDy5C,SAAS/yH,GAIdlB,EAAEyP,QAAQvO,GAHNlB,EAAE2iB,OAAO,QAAWnI,MAAMw5G,EAAa,QAAU,aAIrDpkH,KAAK5P,EAAE2iB,OAAOrY,KAAKtK,IAChBA,GAEX,MAAO,CACHwtH,sBAAuB,SAAS5oH,GAC5B,IAAIk5E,EAAkB,EAClBtD,EAAa51E,EAAQq1B,OAASr1B,EAAQq1B,MAAMugD,YAAc,EAC1DzF,EAAanwE,EAAQq1B,OAASr1B,EAAQq1B,MAAM86C,YAAc,EAC1D/5B,EAAWlsD,KAAKqa,YAAY6xC,WAC5Bk5E,EAAkBplI,KAAK4+H,mBAC3B+D,EAAsB3iI,MAAM,SAAUy/H,GAClCA,EAAUkE,mBAAqB,KAEnChB,EAAsB3iI,MAAM,SAAUy/H,EAAWh6C,GAC7C,IAAIi+C,EAAcF,EAAe/9C,EAAS2/C,EAAkB,EAAIl5E,EAAU8iC,GACtE58E,EAAQqtH,EAAUrtH,MAAQqtH,EAAUkE,mBACnCyB,IACDhzH,GAASowH,GAA0BkB,EAAax3E,EAAU95C,EAAOqzE,EAAQ7rF,OAAS,IAElF6rF,EAAQA,EAAQ7rF,OAAS,GACzB6rF,EAAQA,EAAQ7rF,OAAS,GAAG+pI,oBAAsBvxH,EAElD48E,GAAmB58E,KAG3BpS,KAAKC,SAAS+uF,EAAkBtD,EAAazF,IAEjDk9C,iBAAkB,SAASzlF,GACvB,IAAIogF,EAAS99H,KAAKqa,YAAY9C,QAC9B,OAAOgsH,EAAgBzF,EAAQpgF,IAEnC2nF,qBAAsB,SAASvvH,EAAS9M,GACpC,IAAIo8H,EAAkBplI,KAAK4+H,mBACvB1yE,EAAWlsD,KAAKqa,YAAY6xC,WAC5B47B,EAAQ,GACRC,EAAQ,GACRu9C,EAAyB,EACzB3B,EAAqB,EACrB7tH,EAAQ8K,OACR+hH,EAAsB3iI,MAAM,SAAUy/H,GAClCA,EAAUkE,mBAAqB,EAC/BlE,EAAU6F,uBAAyB,KAEvC3C,EAAsB3iI,MAAM,SAAUy/H,EAAWh6C,GAC7C,IAAI7kE,EACA2kH,EAAiB,EACjBC,EAAuB,EACvB9B,EAAcF,EAAe/9C,EAAS2/C,EAAkB,EAAIl5E,EAAUy3E,GACtE8B,EAAyB,EACzBC,EAA6B,EAC7BC,EAAiBlG,EAAUrtH,MAAQqtH,EAAUkE,mBAC7CiC,EAAyBD,EAC7B38H,GAAYA,EAASy2H,EAAWiE,GAChC,IAAI7iH,EAAO/K,EAAQ+K,KAAO6iH,EACtBA,GAAe5tH,EAAQ+K,KAAO/K,EAAQ8K,MAAQ+kH,IAC9C/kH,EAAO9K,EAAQ8K,KACVwkH,IACDK,EAAyBjD,GAA0BkB,EAAax3E,EAAUy5E,EAAgBlgD,EAAQ7rF,OAAS,GAC3G+rI,GAAkBF,EAAyBhgD,EAAQ7rF,OACnDgsI,GAA0BH,EACtBv5E,GAAYrrC,GAAQ,IACpB0kH,EAAiB9/C,EAAQ7rF,OACzB4rI,EAAuB//C,EAAQ7rF,OAAS,EACxC8rI,EAA6Bl0H,KAAKE,MAAMmP,EAAOqrC,KAGnDrrC,GAAQ,GACJ6iH,EAAciC,EAAiB7vH,EAAQ+K,MACvCinE,EAAMnlE,QAAQ9B,EAAO6kH,EAA6BH,EAAiB9F,EAAU6F,wBAE7E5B,EAAciC,GAAkB7vH,EAAQ+K,KAAOD,GAC/CmnE,EAAMplE,QAAQ/B,EAAO2kH,EAAiB9F,EAAUkE,mBAAqBlE,EAAU6F,yBAE5E5B,EAAciC,GAAkB7vH,EAAQ+K,KAAOD,GACtDmnE,EAAMplE,QAAQ/B,EAAOC,EAAO4+G,EAAUkE,qBAG1CD,GAAe5tH,EAAQ+K,OACnB4kE,EAAQA,EAAQ7rF,OAAS,GACzB6rF,EAAQA,EAAQ7rF,OAAS,GAAG0rI,wBAA0B9zH,KAAK3I,IAAI+8H,EAAwB/kH,EAAO,EAAI6kH,EAA6BF,GAE/HF,GAA0B9zH,KAAK3I,IAAI+8H,EAAwB/kH,EAAO,IAGtE6iH,GAAe5tH,EAAQ+K,KAAOD,IAC9B+kH,EAAiBn0H,KAAK3I,IAAI+8H,EAAwB/kH,EAAOD,GAAQ8kH,EAA6B,GAAKF,GAC/F//C,EAAQA,EAAQ7rF,OAAS,GACzB6rF,EAAQA,EAAQ7rF,OAAS,GAAG+pI,oBAAsBgC,EAElDhC,GAAsBgC,MAIlC7vH,EAAQ+K,MAAQykH,EAChBxvH,EAAQ8K,MAAQ+iH,EAAqB2B,GAEzCxvH,EAAQgyE,MAAQA,EAChBhyE,EAAQiyE,MAAQA,GAEpBo6C,gBAAiB,SAASnoD,GACtB,IAAIylD,EAAYz/H,KAAK0/H,cAAc1lD,GAC/B5/D,EAAapa,KAAKqa,YAClBwrH,EAAoBzrH,EAAWgG,mBAAmBC,YAClDy9G,EAAS,EAAanoH,qBAAqByE,EAAW7C,SAC1D,OAAIkoH,GACAA,EAAU7pH,YAAc6pH,EAAU7pH,WAC9BiwH,GAAqBpG,EAAU7pH,YAAcokE,EAAKpgF,OAASkkI,EAAOlkI,OAC3DqrI,EAAoB7qH,EAAY,CACnChc,OAAQiiI,GAAkBrmD,EAAM,CAC5B57E,OAAQgc,EAAWwoE,kBAAkBxkF,OACrCmZ,MAAO6C,EAAW7C,UAEtBA,MAAO,CAACumH,EAAO9jD,EAAKpgF,SACpB0kB,OAAQlE,EAAWkE,WACpBD,MAAK,SAAU4nE,GACdw5C,EAAUrtH,MAAQ6zE,MAGnB,IAAK,eAAUtlE,YAEnB,IAAK,eAAUkT,UAE1BqsG,kBAAmB,SAASpqH,GACxB,IAAIyL,EAAmBzL,EAAQyL,iBAC3Bu8G,EAAS,EAAanoH,qBAAqB4L,EAAiBhK,OAASzB,EAAQ4K,YAAYnJ,OAC7F,IAAIzB,EAAQ82E,iBAAoBkxC,EAAOlkI,OAAvC,CAGA,GAAIkc,EAAQsK,iBAAiBs1B,SAAU,CACnC,IAAI4tF,EAAetjI,KAAKqa,YAAY+F,mBAAmB44B,OACvDz3B,EAAiBhK,MAAQ,EAAa5B,qBAAqB4L,EAAiBhK,OAC5EgK,EAAiBhK,MAAMrW,SAAQ,SAAUqW,EAAOnW,GAC5C,IAAI0kI,EAAc1kI,IAAUmgB,EAAiBhK,MAAM3d,OAAS,EAC5D2d,EAAM3B,YAAc0tH,IAAiBwC,KAG7ChwH,EAAQyB,MAAQzB,EAAQyB,OAASumH,EAC7BhoH,EAAQsK,iBAAiB44B,QACzBljC,EAAQ+K,KAAOU,EAAiBV,KAChC/K,EAAQ8K,KAAOW,EAAiBX,KAChCW,EAAiBkjH,mBAAoB,EACrCljH,EAAiBhK,MAAQumH,EAAO9pH,MAAM,EAAG,GACzChU,KAAKqlI,qBAAqBvvH,GAC1ByL,EAAiBV,KAAO/K,EAAQ+K,KAChCU,EAAiBX,KAAO9K,EAAQ8K,OAEhC9K,EAAQ+K,KAAO/K,EAAQ4K,YAAYG,KACnC/K,EAAQ8K,KAAO9K,EAAQ4K,YAAYE,KACnC5gB,KAAKqlI,qBAAqBvvH,MAGlCsqH,qBAAsB,SAAStqH,EAAS7V,GACpC,IAEIyrF,EAFA23C,EAAmB,EAAa1tH,qBAAqBG,EAAQyL,iBAAiBhK,OAASzB,EAAQ4K,YAAYnJ,OAAO3d,OAClHqsF,EAAanwE,EAAQyB,MAAQzB,EAAQyB,MAAM3d,OAAS,EAEpDipI,EAAe,GACnB,GAAI/sH,EAAQ82E,gBACR3sF,EAAS6V,GACTgsH,EAAkB9hI,KAAM8V,EAAQ1R,KAAMi/H,EAAkBR,EAAc,GAAI/sH,EAAQ82E,gBAAiB92E,EAAQyL,iBAAiBguE,kBACzH,CAOH,GANKz5E,EAAQsK,iBAAiB44B,QAC1Bh5C,KAAK8+H,eAAc,SAAUW,GACzBA,EAAUrtH,MAAQ,KAG1Bs5E,EAAa03C,EAAiBpjI,KAAM8V,EAASA,EAAQ1R,KAAMi/H,GACvD33C,EAAa,EAEb,YADA51E,EAAQ1R,MAAO,IAAK,eAAUyvB,OAAO,OAAOnI,MAAM,WAStD,GANK5V,EAAQsK,iBAAiB44B,QACtBqqF,GAAoBvtH,EAAQq1B,OAASr1B,EAAQ4K,YAAY8sE,oBACzD13E,EAAQq1B,MAAMugD,WAAaA,EAC3B51E,EAAQq1B,MAAM86C,WAAanwE,EAAQ1R,KAAKxK,QAG5CqsF,GAAcnwE,EAAQyL,iBAAiBkjH,oBAAsBU,SAASrvH,EAAQq1B,MAAM86C,YAEpF,YADAnwE,EAAQ1R,MAAO,IAAK,eAAUyvB,OAAO,QAAWnI,MAAM,WAG1D1rB,KAAK0+H,sBAAsB5oH,GACtBA,EAAQsK,iBAAiB44B,QAC1Bh5C,KAAKqlI,qBAAqBvvH,GAE9B7V,EAAS6V,GACJA,EAAQsK,iBAAiB44B,QAC1Bh5C,KAAK+lI,eAAejwH,EAASutH,GAGrCgB,EAAerkI,KAAM8V,EAASutH,EAAkBR,EAAc,EAAG/sH,EAAQ1R,OAE7E4hI,cAAe,SAASz7H,EAAOu9E,EAAO7B,GAClC,GAAKA,EAAL,CAGA,IAAIggD,EAAY17H,EAAM,GAClBsW,EAAOinE,EAAM,GACb9vB,EAAWiuE,GAAaA,EAAU17H,WAClC,IAAWsW,IACXolH,EAAUhpH,gBAAiB,EACvB+6C,IACAiuE,EAAU17H,MAAQytD,EAAShkD,MAAM6M,GACjC7gB,KAAKgmI,cAAcC,EAAU17H,MAAOu9E,EAAM9zE,MAAM,GAAIiyE,EAAa,OAI7EigD,cAAe,SAAS37H,EAAOu9E,EAAOC,EAAO9B,EAAYR,GACrD,GAAKQ,GAAe17E,EAApB,CAGAk7E,EAAUA,GAAW,GACrB,IAAI0gD,EAAW57H,EAAMA,EAAM3Q,OAAS,GAChCo+D,EAAWmuE,GAAYA,EAAS57H,MAChCqW,EAAOmnE,EAAM,GACblnE,EAAOinE,EAAM,GACjB,GAAIq+C,EAAU,CACV,IAAIC,EAAeD,EAAS/zH,OAAS+zH,EAASlpH,gBAAkB4D,GAAQ,IAAMm3C,EAASp+D,YACnF,IAAWgnB,GAAQwlH,EAAexlH,IAClCulH,EAASl+C,0BAA2B,EACpCxC,EAAQvkF,SAAQ,SAAUke,GACtBA,EAAO6oE,0BAA2B,KAElCjwB,IACAA,EAAWA,EAAShkD,MAAM,EAAG4M,GAC7BulH,EAAS57H,MAAQytD,IAGzBytB,EAAQxiF,KAAKkjI,GACbnmI,KAAKkmI,cAAcluE,EAAU8vB,EAAM9zE,MAAM,GAAI+zE,EAAM/zE,MAAM,GAAIiyE,EAAa,EAAGR,MAGrFsgD,eAAgB,SAASjwH,EAASmwE,GAC9BjmF,KAAKgmI,cAAclwH,EAAQ1R,KAAM0R,EAAQgyE,MAAO7B,GAChDjmF,KAAKkmI,cAAcpwH,EAAQ1R,KAAM0R,EAAQgyE,MAAOhyE,EAAQiyE,MAAO9B,IAEnE6+C,iCAAkC,WAC9B,OAAO,GAEXC,wBAAyB,SAASx6H,GAC9B,OAAOA,GAEXm3E,QAAS,SAAS5rE,EAASswE,GACvB,IAKIxwE,EACA8nC,EANA/5C,EAAO3D,KACPoa,EAAazW,EAAK0W,YAClBkH,EAAmBzL,EAAQyL,iBAC3BhK,EAAQzB,EAAQyB,OAASzB,EAAQyL,iBAAiBhK,MAClDwoH,EAAY,EAAapqH,qBAAqBhS,EAAKq8H,QAIvD,SAASqG,EAAY5G,EAAWh6C,GACxBA,EAAQ7rF,SAAW8jD,EAAa,IAChC+hF,EAAU7pH,WAAaA,GAG/B,IAAK8nC,EAAa,EAAGA,EAAaqiF,EAAUnmI,OAAQ8jD,IAChD9nC,EAAa2tH,EAAgBhsH,EAAOmmC,GAChC6lF,EAAgB5/H,EAAKq8H,OAAQtiF,KAAgB9nC,GAC7CjS,EAAKm7H,cAAcuH,GAI3B,GADA1iI,EAAK1D,SAASnB,MAAMkB,KAAME,WACtBqX,GAASzB,EAAQsK,iBAAiB44B,QAAUotC,EAAeC,OAC3D,OAAOs8C,EAAsBh/H,GAAM,SAAU87H,GACzC,IAAI2C,EAAkB6C,EAAoB7qH,EAAY,CAClDhc,OAAQiiI,GAAkBZ,EAAUzlD,KAAM,CACtC57E,OAAQmjB,EAAiBnjB,OACzBmZ,MAAOA,IAEXA,MAAOA,EAAMvD,MAAMyrH,EAAUzlD,KAAKpgF,QAClC0kB,OAAQiD,EAAiBjD,SAEzBikH,EAAmB0C,EAAoB7qH,EAAY,CACnDhc,OAAQw/H,GAAmB6B,EAAUzlD,KAAM,CACvC57E,OAAQmjB,EAAiBnjB,OACzBmZ,MAAOA,IACR,GACHA,MAAOA,EAAMvD,MAAMyrH,EAAUzlD,KAAKpgF,OAAS,EAAG6lI,EAAUzlD,KAAKpgF,QAC7D0kB,OAAQiD,EAAiBjD,SAE7B,OAAO,kBAAKikH,EAAkBH,GAAiB/jH,MAAK,SAAUjC,EAAQhK,GAClEgK,EAAS7a,SAAS6a,EAAOxiB,OAASwiB,EAAO,GAAKA,GAC9ChK,EAAQ7Q,SAAS6Q,EAAMxY,OAASwY,EAAM,GAAKA,GAC3CqtH,EAAUrjH,OAASA,EACfqjH,EAAUrtH,QAAUA,IACpBqtH,EAAUrtH,MAAQA,EAClBzO,EAAK+6H,sBAAsB5oH,UAGnC,KAtiBmC,ICHnDwwH,GAA6B,0BAC7BC,GAAqC,yBACrCC,GAAkC,sBAClCC,GAAmC,mBACnCC,GAAuC,kBACvCtyH,GAAwB,qBACxBuyH,GAA2B,eAC3B,GAA+B,oBAC/BC,GAAoC,CACpCn2E,KAAM,WACFzwD,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAK6mI,uBAETA,oBAAqB,SAAS/wH,GAC1B,IAAI4/B,EAAW11C,KAAK8mI,UAChBC,EAAkB/mI,KAAK4Y,OAAO,0BAC9BouH,EAAsBhnI,KAAK4Y,OAAO,qBAClCwH,EAAmBtK,EAAUA,EAAQsK,iBAAmBpgB,KAAKogB,mBAC7D6mH,EAA0B7mH,EAAiBmsC,WAAansC,EAAiB45B,SAAW55B,EAAiB44B,QACrGiuF,GAA4B7mH,EAAiBs1B,WAAaqxF,GAAoBC,IAItEtxF,GAAYA,aAAoB,MACxC11C,KAAK8mI,UAAY,IAAI,GAAwB9mI,SAJxC01C,GAAYA,aAAoB,MACjC11C,KAAK8mI,UAAY,IAAI,GAAuB9mI,QAMxDgvF,gBAAiB,WACb,IAAItD,EAAa1rF,KAAKC,WACtB,OAAOyrF,EAAa,GAAK1rF,KAAKqa,YAAY9C,SAAWvX,KAAKqa,YAAYmzE,oBAAsB9B,EAAa1rF,KAAK8mI,UAAU/3C,uBAAyBrD,GAErJI,WAAY,WACR,OAAO9rF,KAAKqa,YAAY9C,QAAUvX,KAAK8mI,UAAUh7C,cAAgB,EAAI9rF,KAAKC,SAASnB,MAAMkB,KAAME,YAEnG4/H,iBAAkB,WACd,OAAO9/H,KAAK8mI,UAAUhH,oBAE1BnB,qBAAsB,SAAS90H,GAC3B,OAAO7J,KAAK8mI,UAAUnI,qBAAqB90H,IAE/C4zF,cAAe,SAAS3iG,GACpB,IAAI2kI,EAAYz/H,KAAK8mI,UAAUpH,cAAc5kI,GAC7C,OAAO2kI,EAAYA,EAAU7pH,YAAc5V,KAAK8mI,UAAUhH,oBAE9DoH,YAAa,SAASxpF,GAClB,OAAO19C,KAAKmnI,mBAAmBzpF,GAAY,IAE/C0pF,UAAW,SAAS1pF,GAChB,OAAO19C,KAAKmnI,mBAAmBzpF,GAAY,IAE/CypF,mBAAoB,SAASzpF,EAAY2pF,GACrC,IAAIjtH,EAAapa,KAAKqa,YAClB9C,EAAQ6C,EAAW7C,QACnBumH,EAAS,EAASnoH,qBAAqB4B,GAAS,IACpD,GAAIumH,EAAOlkI,OAAQ,CACf,IAAK,IAAI6B,EAAI,EAAGA,EAAIqiI,EAAOlkI,OAAQ6B,SAC3B,IAAWiiD,GAAcA,IAAejiD,EACxCqiI,EAAOriI,GAAGma,WAAayxH,EAChB9vH,GAASA,EAAM9b,KACtBqiI,EAAOriI,GAAGma,WAAa2B,EAAM9b,GAAGma,YAGxCwE,EAAW7C,MAAMumH,GACjB99H,KAAK8mI,UAAUhI,eAAc,SAAUW,EAAWh6C,QAC1C,IAAW/nC,GAAcA,IAAe+nC,EAAQ7rF,OAAS,IACzD6lI,EAAU7pH,WAAayxH,MAE3B,GAAO,GACXrnI,KAAK2qF,kBAET,OAAO,GAEXjJ,QAAS,WAEL,OADA1hF,KAAKC,SAASnB,MAAMkB,KAAME,WACnBF,KAAK8mI,UAAUplD,QAAQ5iF,MAAMkB,KAAK8mI,UAAW5mI,YAExDiiI,gBAAiB,SAASnoD,GACtB,IAAI5/D,EAAapa,KAAKqa,YACtB,GAAID,EAAW7C,QAKX,OAJA6C,EAAWktH,eACPtnI,KAAK6qF,mBACL7qF,KAAK6qF,iBAAiBtE,aAAc,GAEjCvmF,KAAKunI,qBAAqBvtD,GAAM6I,QAAO,WAC1CzoE,EAAWotH,iBAIvBD,qBAAsB,SAASvtD,GAC3B,OAAOh6E,KAAK8mI,UAAU3E,gBAAgBnoD,IAE1CytD,2BAA4B,SAASlwH,EAAO3B,GACxC,GAAI2B,GAAS1Y,MAAMuY,QAAQG,GACvB,IAAK,IAAI9b,EAAI,EAAGA,EAAI8b,EAAM3d,OAAQ6B,IAC9B,GAAI8b,EAAM9b,GAAGma,aAAeA,EACxB,OAAO,GAKvB62E,2BAA4B,SAAS32E,EAASswE,GAC1C,IAAIhmE,EAAmBtK,EAAQsK,iBAC3BtK,EAAQyL,iBAAiBhK,OACrB6I,EAAiBs1B,WAAa5/B,EAAQ82E,kBACjCxsE,EAAiBC,cAAergB,KAAKynI,2BAA2B3xH,EAAQyL,iBAAiBhK,OAAO,KACjG6I,EAAiB44B,QAAS,IAG7B54B,EAAiBs1B,UAAct1B,EAAiB45B,SAAY55B,EAAiBmsC,YAAaz2C,EAAQ82E,kBAAmB5sF,KAAKynI,2BAA2B3xH,EAAQyL,iBAAiBhK,OAAO,KACtL6I,EAAiB44B,QAAS,KAEtBljC,EAAQ82E,iBAAmBxsE,EAAiB44B,QAAUotC,EAAe1wC,UAC7E11C,KAAKwqF,aAETxqF,KAAKC,SAASnB,MAAMkB,KAAME,YAE9B4sF,mBAAoB,SAASh3E,GAGzB,OAFA9V,KAAKC,SAAS6V,GACd9V,KAAK6mI,oBAAoB/wH,GAClB9V,KAAK8mI,UAAU5G,kBAAkBpqH,IAE5C6zE,kBAAmB,SAAS7zE,GACxB,OAAO9V,KAAK8mI,UAAU3G,iBAAiBrqH,EAAS9V,KAAKC,SAASub,KAAKxb,QAEvEguF,sBAAuB,SAASl4E,GAC5B,OAAO9V,KAAK8mI,UAAU1G,qBAAqBtqH,EAAS9V,KAAKC,SAASub,KAAKxb,SAG/E,GAAkBvF,OAAOmsI,IACzB,IAAIc,GAAiC,CACjCj3E,KAAM,WACFzwD,KAAKC,WACLD,KAAKmxD,aAAa,kBAClBnxD,KAAKmxD,aAAa,iBAClBnxD,KAAKmxD,aAAa,mBAClBnxD,KAAKmxD,aAAa,mBAEtByiC,oBAAqB,SAASrpF,GAC1B,IAAI02E,EAAejhF,KAAKs9D,mBAAmBgZ,kBAK3C,OAJA/rE,EAAQvK,KAAKC,SAASsK,GAClBA,EAAM3Q,QAAUqnF,EAAarnF,SAC7B2Q,EAAQvK,KAAK2nI,mBAAmBp9H,EAAO02E,EAAarnF,SAEjD2Q,GAEX2pF,aAAc,SAASrqF,EAAMiM,GAOzB,OANI,eAAUjM,EAAK6zC,aAAe,eAAS7zC,EAAK8Q,UAAY,IAAM9Q,EAAK8Q,QAAQrc,QAAQ,UACnFuL,EAAO7J,KAAK4nI,kBAAkB/9H,EAAMiM,GACpCA,EAAQ+mD,UAAY,GAEpBhzD,EAAO7J,KAAKC,SAASnB,MAAMkB,KAAME,WAE9B2J,GAEX+9H,kBAAmB,SAAS/9H,GACxB,OAAOA,GAEX89H,mBAAoB,SAASp9H,EAAOqxE,EAAa9lE,GAC7C,IAAI+xH,EAAiB7nI,KAAKs9D,mBAAmBgZ,kBACzC/7D,EAASstH,EAAeA,EAAejuI,OAASgiF,GACpD,IAAK9lE,EAAS,CACV,IAAIo9E,EAAgBlzF,KAAK4Y,OAAO,kBAChC9C,EAAU,CACNgyH,yBAA0B,YAAc50C,GAAiB,aAAeA,EACxE60C,YAAa,GACb/tD,KAAM,GACNhzD,OAAQ,IAGhB,IAAI+gH,EAAcjyH,EAAQiyH,YAa1B,GAZIjyH,EAAQ1R,QACJ0R,EAAQgyH,0BAA6BhyH,EAAQ1R,KAAK6Y,gBAClD8qH,EAAY9kI,KAAK,CACb0X,QAAS,QACTvW,KAAM0R,EAAQ1R,KACds5C,WAAY5nC,EAAQkkE,KAAKpgF,OAAS,EAClCgc,aAAcE,EAAQ1R,KAAKmG,MAC3BzP,IAAKgb,EAAQkkE,KAAKhmE,MAAM,GACxBgT,OAAQlR,EAAQkR,OAAOhT,MAAM,MAIrCzJ,EACA,GAAI,IAAMqxE,EACNmsD,EAAY9kI,KAAKnE,MAAMipI,EAAax9H,QAEpC,IAAK,IAAI9O,EAAI,EAAGA,EAAI8O,EAAM3Q,OAAQ6B,IAAK,CACnC,IAAIoO,EAAOU,EAAM9O,GACboO,GAAQ,UAAWA,GACnBiM,EAAQ1R,KAAOyF,EACfiM,EAAQkkE,KAAK/2E,KAAK4G,EAAK/O,KACvBgb,EAAQkR,OAAO/jB,KAAKsX,GAAUA,EAAOs7D,mBAAqBt7D,EAAOM,sBAAwBN,EAAOs7D,iBAAiBhsE,EAAK/O,KAAO+O,EAAK/O,KAClIkF,KAAK2nI,mBAAmB99H,EAAKU,MAAOqxE,EAAc,EAAG9lE,GACrDA,EAAQ1R,UAAO,EACf0R,EAAQkkE,KAAK72D,MACbrN,EAAQkR,OAAO7D,OAEf4kH,EAAY9kI,KAAK4G,GAKjC,OAAOk+H,GAEXr3E,cAAe,WACX,OAAO1wD,KAAKC,WAAW0nB,OAAO,CAAC,cAAe,YAAa,gBAAiB,YAAa,iBAE7Fu/G,YAAa,SAASxpF,GAClB,IAAItjC,EAAapa,KAAKqa,YAClBD,GAAcA,EAAW8sH,YAAYxpF,KACrCtjC,EAAW6xC,UAAU,GACrB7xC,EAAWisE,WAGnB+gD,UAAW,SAAS1pF,GAChB,IAAItjC,EAAapa,KAAKqa,YAClBD,GAAcA,EAAWgtH,UAAU1pF,KACnCtjC,EAAW6xC,UAAU,GACrB7xC,EAAWisE,WAGnB87C,gBAAiB,SAASrnI,GACtB,IAAI6I,EAAO3D,KACPioH,EAAWtkH,EAAK85F,cAAc3iG,GAC9Bu0C,EAAO,CACPv0C,IAAKA,EACLmtH,SAAUA,GAGd,OADAtkH,EAAKuuD,cAAc+1D,EAAW,kBAAoB,iBAAkB54E,GAC/DA,EAAKkR,QAMH,IAAK,eAAU5/B,UALX,kBAAKhd,EAAK4jI,qBAAqBzsI,IAAMujB,MAAK,WAC7CgxB,EAAK44E,UAAYA,EACjBtkH,EAAKuuD,cAAc+1D,EAAW,iBAAmB,gBAAiB54E,OAK9Ek4F,qBAAsB,SAASzsI,GAC3B,IAAI6I,EAAO3D,KACPoa,EAAapa,KAAKqa,YAClBnJ,EAAI,IAAI,cAQZ,OAPKkJ,EAGD,kBAAKA,EAAW+nH,gBAAgBrnI,IAAMujB,MAAK,WACvC1a,EAAK8c,OAAOpC,KAAKnN,EAAEyP,SAASG,KAAK5P,EAAE2iB,WACnC/S,KAAK5P,EAAE2iB,QAJX3iB,EAAEyP,UAMCzP,GAEXusF,cAAe,SAAS3iG,GACpB,IAAIsf,EAAapa,KAAKqa,YACtB,OAAOD,GAAcA,EAAWqjF,cAAc3iG,IAElDktI,UAAW,SAASltI,GAChB,OAAKkF,KAAKy9F,cAAc3iG,IAGjB,IAAK,eAAU6lB,UAFX3gB,KAAKmiI,gBAAgBrnI,IAIpCmtI,YAAa,SAASntI,GAClB,OAAIkF,KAAKy9F,cAAc3iG,GACZkF,KAAKmiI,gBAAgBrnI,IAEzB,IAAK,eAAU6lB,WAE1BuwC,cAAe,SAAS7hB,GAChB,aAAeA,EAAKztC,OACpBytC,EAAKztC,KAAO,cAEhB5B,KAAKC,SAASovC,KAGlB64F,GAA0B,SAAS3tH,EAAQo2D,GAC3C,IAAIrZ,EAAoBt3D,KAAKs9D,mBAC7B,OAAQqT,EAAOE,SAAShvE,OACpB,IAAK,QACD,IAAIi8H,EAASxmE,EAAkBj9C,YAAY9C,SAAW,GACtD+/C,EAAkBoQ,aAAantD,EAAOc,UAAW,aAAcyiH,EAAOlkI,QACtE,MACJ,IAAK,UACD09D,EAAkBoQ,aAAantD,EAAOc,UAAW,cAAe,GAChE,MACJ,IAAK,aACDrb,KAAK4R,UAAUkyE,kBAGhBqkD,GAA8B,CACrCpb,iBAAkB,WACd,IAAIxiH,EAAQvK,KAAKC,WACjB,OAAOD,KAAKooI,oBAAoB79H,IAEpC69H,oBAAqB,SAAS79H,GAC1B,GAAIvK,KAAKqoI,uBAAwB,CAC7B,IAAIC,GAAa,EACbn8E,EAAc,CACdpQ,SAAU,KACN,IAAIwsF,EAAc,eAAE,SAASpwH,SAASmuH,IAGtC,OAFAtmI,KAAKwoI,yBAAyBD,GAC9B,GAAuB,aAAcvoI,KAAMuoI,OAAa,EAAQvoI,KAAK+tE,qBAAqBvyD,KAAKxb,OACxFuoI,GAEX3mI,KAAM,aACNslH,eAAgB,KACZohB,GAActoI,KAAK4zD,gBAAgBY,OACnC8zE,GAAa,GAEjBt9E,SAAU,SACVD,aAAc,QACd1M,UAAW,GAEf9zC,EAAMtH,KAAKkpD,GAEf,OAAO5hD,GAEXwjE,qBAAsB,SAAS1+B,GAC3B,IAAI2iB,EAAQ3iB,EAAK2iB,MACbT,EAAU,eAAES,EAAM97C,QAClBimF,EAAmB5qC,EAAQpzC,QAAQ,IAAIwJ,OAAO6+G,KAAkCplI,QAChFmZ,EAASva,KAAKs9D,mBAAmBgZ,kBAAkB6lB,GACnD5mF,EAAcgF,GAAUA,EAAOnZ,MAC/BmwD,EAAQ3jE,GAAG,IACXoS,KAAK2xD,cAAc,gBAAgByc,qBAAqB74D,GAAa,GAErEvV,KAAKk8F,wBAAwB3mF,GAEjCy8C,EAAMmL,kBAEVkrE,qBAAsB,WAClB,IACIrwH,EADA2lE,EAAoB39E,KAAK4Y,OAAO,cAQpC,OANI+kE,IACA3lE,EAAY2lE,EAAkBpjC,QAC1B,SAAWviC,IACXA,EAAY,YAAc4xF,GAAA,KAAQiK,UAAU/J,aAG7C9xF,GAEXywH,uBAAwB,SAASF,EAAatnD,GAC1C,IAAIt9E,EAAO3D,KACXuoI,EAAYn2E,QACZ,eAAK6uB,GAAc,SAAU7/E,EAAOotD,GAChC7qD,EAAK+kI,sBAAsBH,EAAa/5E,MAE5C,GAAaxuD,OAEjB0oI,sBAAuB,SAAS1sC,EAAcxtC,GAC1C,IAAIm6E,EAAkB,eAAE,SAASxwH,SAASq2C,EAAY5S,UAAUzjC,SAASquH,IAAiCpiI,KAAK,aAAcoqD,GAAap2C,SAAS4jF,GAAcz/F,KAAKiyD,EAAYtjD,SAElL,OADAqgE,GAAYvrE,KAAM2oI,GACXA,GAEXnkE,qBAAsB,SAAS5gE,GAC3B,IAAK5D,KAAKkzD,gBAAkB,EAASr5C,aAAajW,EAAE6gE,YAAa,CAAC,QAAS,iBAAkB,CACzF,IAAImkE,EAAkB5oI,KAAK0X,UACvB6wH,EAAcK,GAAmBA,EAAgB9wH,KAAK,IAAMwuH,IAC5DiC,GAAeA,EAAY3uI,SAC3BoG,KAAKwoI,yBAAyBD,GAC9BvoI,KAAK4zD,gBAAgBY,QAG7Bx0D,KAAKC,YAETuoI,yBAA0B,SAASD,GAC/B,IAAItnD,EAAejhF,KAAK2xD,cAAc,WAAW2kB,kBAC7CqH,EAAoB39E,KAAK4Y,OAAO,cACpC5Y,KAAKyoI,uBAAuBF,EAAatnD,GACrCtD,EAAkBpzB,sBAAwB02B,EAAarnF,SACvD,eAAE,SAASue,SAASouH,IAAoChqI,KAAKohF,EAAkBr+B,gBAAgBlnC,SAASmwH,GACxGA,EAAYpqH,QAAQ,IAAMuoH,IAAsCvuH,SAASsuH,IACzE8B,EAAYpqH,QAAQ,IAAMsoH,IAAkChqH,IAAI,WAAY,QAC5Ezc,KAAKmvH,4BAGbr/C,cAAe,SAASv1D,GACpB,IAAIojE,EAAoB39E,KAAK4Y,OAAO,cACpC,OAAO5Y,KAAKqoI,wBAA0B1qD,EAAkBpzB,qBAAuBhwC,GAAUA,EAAOiiC,eAEpG8b,kBAAmB,WACf,IAAIzhD,EAAW7W,KAAK0X,UACpB,OAAOb,GAAYA,EAASiB,KAAK,IAAM0uH,KAE3CpuE,WAAY,WACR,OAAOp4D,KAAK2xD,cAAc,WAAW2kB,mBAEzCtO,gBAAiB,WACb,IAAInxD,EAAW7W,KAAK0X,UACpB,GAAIb,GAAYA,EAASiB,KAAK,IAAMwuH,IAA4B1sI,OAAQ,CACpE,IAAIwiB,EAASvF,EAASuF,SACtB,MAAO,CACHQ,IAAKR,EAAOQ,IACZmiG,OAAQ3iG,EAAOQ,IAAM,eAAU/F,IAGvC,OAAO,MAEXoxD,QAAS,WACL,MAAO,SAEXuI,oBAAqB,SAAS16D,GAC1B,IAEIvL,EAFAi/C,EAAqBxpD,KAAK4Y,OAAO,+BACjCiwH,EAAwB,eAAE/yH,EAAQ8jG,eAAez7F,QAAQ,IAAMqoH,IAKnE,GAHIqC,EAAsBjvI,SACtBkc,EAAQyE,OAASsuH,EAAsBzkI,KAAK,eAE5ColD,GAAsB1zC,EAAQyE,OAAQ,CACtC,IAAIA,EAASzE,EAAQyE,OACjBuuH,GAAoB,eAAUvuH,EAAOiiC,gBAAiBjiC,EAAOiiC,cACjE,GAAIssF,EAAmB,CACnB,IAAIC,EAAkB,eAAUxuH,EAAOmjC,aAAenjC,EAAOmjC,YAAc,EACvEgM,EAAgB1pD,KAAK4Y,OAAO,kBAC5B83D,EAAcw3D,GAAwB1sH,KAAKxb,KAAMua,GACrDhQ,EAAQ,CAAC,CACLhO,KAAMmtD,EAAcI,QACpBjoD,MAAO,UACP8yC,UAAWo0F,EACXr4D,YAAaA,GACd,CACCn0E,KAAMmtD,EAAcK,WACpBloD,MAAO,aACP6uE,YAAaA,KAIzB,OAAOnmE,GAEXyN,UAAW,WACP,OAAOhY,KAAKC,YAAcD,KAAKqoI,wBAEnCn3E,cAAe,SAAS7hB,GAChB,eAAiBA,EAAKztC,MACtB5B,KAAKszD,cACLjkB,EAAK+hB,SAAU,GAEfpxD,KAAKC,SAASovC,KAItB25F,GAA2B,CAC3Bx4D,oBAAqB,SAAS16D,GAC1B,IACIvL,EADAi/C,EAAqBxpD,KAAK4Y,OAAO,+BAErC,GAAI4wC,GAAsB1zC,EAAQoH,KAAO,UAAYpH,EAAQoH,IAAIvC,QAAS,CACtE,IAAI28C,EAAoBt3D,KAAKs9D,mBACzB/iD,EAAS+8C,EAAkBoQ,aAAa,cAAgB5xD,EAAQoH,IAAIwgC,YACxE,GAAInjC,GAAUA,EAAOiiC,cAAe,CAChC,IAAIkN,EAAgB1pD,KAAK4Y,OAAO,kBAC5B83D,EAAcw3D,GAAwB1sH,KAAKxb,KAAMua,GACrDhQ,EAAQ,GACRA,EAAMtH,KAAK,CACP1G,KAAMmtD,EAAcI,QACpBjoD,MAAO,UACP6uE,YAAaA,GACd,CACCn0E,KAAMmtD,EAAcK,WACpBloD,MAAO,aACP6uE,YAAaA,KAIzB,OAAOnmE,GAEXqwD,UAAW,SAASh3D,GAChB,IAAI6lD,EAAazpD,KAAK4Y,OAAO,uBACzBs6E,EAAgBlzF,KAAK4Y,OAAO,kBAC5BqwH,EAAyB,aAAe/1C,GAAiB,aAAezpC,GAAc,eAAE7lD,EAAEouD,MAAM97C,QAAQiI,QAAQ,IAAMwoH,IAA0B/sI,OAChJsvI,EAAwB,eAAEtlI,EAAEouD,MAAM97C,QAAQiI,QAAQ,IAAM/J,IAAuBxa,QAC/EqvI,GAA0BC,IAC1BlpI,KAAKmpI,qBAAqBvlI,GAE9B5D,KAAKC,SAAS2D,IAElBulI,qBAAsB,SAASvlI,GAC3B,IAAIo/E,EAAiBhjF,KAAK2xD,cAAc,QACpCz0C,EAAM8lE,EAAez4E,QAAQ3G,EAAE42D,UAC/BlR,EAAkBtpD,KAAKs9D,mBAAmBoK,aAAa,cAAgBxqD,EAAIwgC,WAAY,oBACvF,SAAWxgC,EAAIvC,SAAW,UAAYuC,EAAIvC,UAAW,IAAU2uC,KAC/D05B,EAAem/C,gBAAgBjlH,EAAIpiB,KAAK,GACxC8I,EAAEouD,MAAMmL,iBACRv5D,EAAEwtD,SAAU,KAIpBg4E,GAA4B,CAC5B54D,oBAAqB,SAAS16D,GAC1B,IAAI0zC,EAAqBxpD,KAAK4Y,OAAO,+BACjCrO,EAAQvK,KAAKC,SAAS6V,GAC1B,GAAI0zC,GAAsB1zC,EAAQoH,MAAQ,WAAapH,EAAQoH,IAAIvC,SAAW,mBAAqB7E,EAAQoH,IAAIvC,SAAU,CACrH,IAAIJ,EAASzE,EAAQyE,OACrB,IAAKA,EAAOsE,WAAa,eAAUtE,EAAOiiC,gBAAkBjiC,EAAOiiC,eAAgB,CAC/E,IAAIkN,EAAgB1pD,KAAK4Y,OAAO,kBAC5BmwH,EAAkB,eAAUxuH,EAAOmjC,aAAenjC,EAAOmjC,YAAc,EACvEgzB,EAAcw3D,GAAwB1sH,KAAKxb,KAAMua,GACrDhQ,EAAQA,GAAS,GACjBA,EAAMtH,KAAK,CACP1G,KAAMmtD,EAAcC,kBACpB9nD,MAAO,QACPgqG,YAAY,EACZl3D,SAAUo0F,EACVr4D,YAAaA,IAEbn2D,EAAO6jC,iBACP7zC,EAAMtH,KAAK,CACP1G,KAAMmtD,EAAcI,QACpBjoD,MAAO,UACP8yC,UAAWo0F,EACXr4D,YAAaA,IAGrBnmE,EAAMtH,KAAK,CACP1G,KAAMmtD,EAAcK,WACpBloD,MAAO,aACP6uE,YAAaA,KAIzB,OAAOnmE,IAGf,EAAS6rD,eAAe,WAAY,CAChCz4D,eAAgB,WACZ,MAAO,CACH+3C,SAAU,CACN6T,eAAe,EACfD,iBAAiB,EACjBE,oBAAoB,EACpBC,WAAY,cACZhK,MAAO,CACHoK,sBAAuB,OAAoBxwD,OAAO,oCAClDuwD,sBAAuB,OAAoBvwD,OAAO,oCAClDswD,kBAAmB,OAAoBtwD,OAAO,8BAC9CywD,QAAS,OAAoBzwD,OAAO,gCACpC0wD,WAAY,OAAoB1wD,OAAO,+BAG/Cs8C,WAAY,CACR4E,SAAS,EACT+E,eAAgB,OAAoBjmD,OAAO,kCAC3CkxD,qBAAqB,KAIjCqL,UAAW,CACPJ,YAAa,CACTpxD,KAAMsjI,GACNlpH,QAAS,CACLk9D,wBAAyB,WACrB,IAAI5lE,EAAU9V,KAAKC,SAASnB,MAAMkB,KAAME,WAExC,OADA4V,EAAQ3K,aAAe,EAAS4R,wBACzBjH,IAGf8+B,QAAS,CACLy0F,iBAAkB,SAASx/H,GACvB,OAAO,eAAUA,EAAK6zC,aAAe,eAAS7zC,EAAK8Q,UAAY,IAAM9Q,EAAK8Q,QAAQrc,QAAQ,YAItGo3D,MAAO,CACH2mC,YAAa8rC,GACb/qH,SAAU4rH,GACVp8D,kBAAmBw8D,OC/jB/B,IAAIE,GAA2B,wBAC3BC,GAA0B,uBAC1B,GAA4B,yBAC5B,GAAkB,eACXC,GAAqB,CAC5B7rI,eAAgB,WACZ,MAAO,CACHu4C,aAAc,CACVr9B,SAAS,EACT0wC,eAAe,EACfxN,SAAU,QAItB6Z,UAAW,CACPJ,YAAa,CACTh3C,QAAS,CACLmgE,sBAAuB,WACnB,IAAIrE,EAAgBt6E,KAAKC,WAOzB,OANID,KAAK4Y,OAAO,yBACZ0hE,EAAcr3E,KAAK,CACfxE,KAAM,eACN0M,aAAc,OAAc4R,0BAG7Bu9D,IAGfl2E,KAAM,WACF,IAAIqlI,EAAmB,SAAS9lI,GAC5BA,EAAK+lI,eAAiB,GACtB/lI,EAAKgmI,aAAehmI,EAAKiV,OAAO,+BAEpC,MAAO,CACH63C,KAAM,WACFg5E,EAAiBzpI,MACjBA,KAAKC,YAETmnI,UAAW,SAAS1pF,GAChB,IAAI/5C,EAAO3D,KACP09C,EAAa,GACb/5C,EAAKgmI,cAAe,EACpBhmI,EAAK+lI,eAAiB,GACtB/lI,EAAKsuF,eAELtuF,EAAK1D,SAASnB,MAAM6E,EAAMzD,YAGlCgnI,YAAa,SAASxpF,GAClB,IAAI/5C,EAAO3D,KACP09C,EAAa,GACb/5C,EAAKgmI,cAAe,EACpBhmI,EAAK+lI,eAAiB,GACtB/lI,EAAKsuF,eAELtuF,EAAK1D,SAASnB,MAAM6E,EAAMzD,YAGlCu9F,cAAe,SAAS3iG,GACpB,IAAI6I,EAAO3D,KACP4pI,EAAc,OAActwH,cAAcxe,EAAK6I,EAAK+lI,gBACxD,OAAI7qI,MAAMuY,QAAQtc,GACP6I,EAAK1D,SAASnB,MAAM6E,EAAMzD,cAEvByD,EAAKgmI,cAAgBC,GAAe,GAAKjmI,EAAK+lI,eAAeE,GAAarvF,WAG5FsvF,wBAAyB,SAAS/uI,GAC9B,IAAI0/D,EAAWx6D,KAAK65F,iBAAiB/+F,GACrC,MAAO,CAAC0/D,EAAUA,EAAW,IAEjC+sE,qBAAsB,SAASzsI,GAC3B,IACImE,EADA0E,EAAO3D,KAEX,GAAInB,MAAMuY,QAAQtc,GACdmE,EAAS0E,EAAK1D,SAASnB,MAAM6E,EAAMzD,eAChC,CACH,IAAI0pI,EAAc,OAActwH,cAAcxe,EAAK6I,EAAK+lI,gBACxD,GAAIE,GAAe,EAAG,CAClB,IAAIrvF,EAAU52C,EAAK+lI,eAAeE,GAAarvF,QAC/C52C,EAAK+lI,eAAeE,GAAarvF,SAAWA,OAE5C52C,EAAK+lI,eAAezmI,KAAK,CACrBnI,IAAKA,EACLy/C,SAAS,IAGjB52C,EAAKsuF,YAAY,CACbpwB,WAAY,SACZgzB,WAAYlxF,EAAKkmI,wBAAwB/uI,KAE7CmE,GAAS,IAAK,eAAU0hB,UAE5B,OAAO1hB,GAEXm1F,iBAAkB,SAAShwF,EAAM0R,GAC7B,IAAInS,EAAO3D,KACPq0F,EAAW1wF,EAAK1D,SAASnB,MAAM6E,EAAMzD,WAczC,OAbAm0F,EAASz+E,WAAajS,EAAK85F,cAAcpJ,EAASv5F,UAC9C,IAAWgb,EAAQg0H,oBACnBh0H,EAAQg0H,mBAAqB,EAC7B,eAAKh0H,EAAQunD,gBAAgB,SAAUj8D,EAAOmZ,GAC1C,GAAI,WAAaA,EAAOsE,UAAY,eAAUtE,EAAOmjC,YAEjD,OADA5nC,EAAQg0H,kBAAoB1oI,GACrB,MAIf0U,EAAQg0H,mBAAqB,IAC7Bz1C,EAASrtE,OAAOlR,EAAQg0H,mBAAqBz1C,EAASz+E,YAEnDy+E,GAEXP,cAAe,SAASvpF,EAAOg3C,GAC3B,IAAI59C,EAAO3D,KACP6hE,EAAatgB,EAAOsgB,WACpB5iE,EAAS,GAEb,OADAsL,EAAQ5G,EAAK1D,SAASnB,MAAM6E,EAAMzD,WAC9B,eAAiB2hE,EACVt3D,GAEP,YAAcs3D,IACdl+D,EAAK+lI,eAAiB,eAAK/lI,EAAK+lI,gBAAgB,SAAU7/H,GACtD,OAAOA,EAAK0wC,YAGpB,eAAKhwC,GAAO,SAAUnJ,EAAOyI,GACzB5K,EAAOgE,KAAK4G,GACZ,IAAI+/H,EAAc,OAActwH,cAAczP,EAAK/O,IAAK6I,EAAK+lI,gBACzD,SAAW7/H,EAAK8Q,UAAY9Q,EAAK+L,YAAcg0H,GAAe,KAAO//H,EAAKsT,UAC1Ele,EAAOgE,KAAK,CACRs3C,QAAS1wC,EAAK+L,WACd+E,QAAS,SACT7f,IAAK+O,EAAK/O,IACVsJ,KAAMyF,EAAKzF,KACX4iB,OAAQ,QAIb/nB,IAEXiyD,cAAe,SAAS7hB,GACpB,IAAI06F,EACAC,EACJ,GAAI,iBAAmB36F,EAAKztC,KAAM,CAE9B,OADAytC,EAAKztC,KAAO,aACJytC,EAAKmtC,UACT,IAAK,eACD,IAAI36E,EAAQwtC,EAAKxtC,OAAS,GACtB06E,EAAgBltC,EAAKktC,eAAiB,GAC1CwtD,EAAmBloI,EAAMgX,UAAY0jE,EAAc1jE,QACnDmxH,EAAyBnoI,EAAM0nD,gBAAkBgzB,EAAchzB,cAC/D,MACJ,IAAK,wBACDkgF,EAAiBzpI,MACjB,MACJ,IAAK,uBACD+pI,GAAmB,EACnB,MACJ,IAAK,6BACDC,GAAyB,GAE7BD,GAAoBC,IACpBP,EAAiBzpI,MAGzBA,KAAKC,SAASovC,KA1IpB,GA8IN6zE,SAAU,CACNlI,uBAAwB,WACpBh7G,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAKiqI,uBAAuBjqI,KAAK4R,UAAUiF,aAE/CozH,uBAAwB,SAASpzH,GAC7B,IAAIqzH,EAAmBrzH,EAASsH,QAAQ,IAAMorH,IAC1CW,EAAiBtwI,QACjB,kBAAKoG,KAAKmqI,sBAAsBD,EAAkBrzH,IAAWwH,KAAK,KAC9Dre,KAAKiqI,uBAAuBC,EAAiB9qH,aAIzD+qH,sBAAuB,SAASD,EAAkBE,GAC9C,IAAIC,EAAmB,eAAEH,GAAkB9lI,KAAK,WAC5CkmI,EAAiB,eAAEJ,GAAkB/rH,QAAQ,IAAMne,KAAKmf,2BAA2BC,SAAShb,KAAK,cACrG,GAAIimI,GAAoBC,EACpB,OAAOtqI,KAAKuqI,0BAA0BD,EAAgBD,IAG9DE,0BAA2B,SAASD,EAAgBD,GAChD,IAAIn5H,EAAI,wBACR,GAAIo5H,EAAejtH,QAAQ,YAAYmtH,iBACnCxqI,KAAKyqI,8BAA8BH,EAAgBD,EAAiB7vE,SAAU,eAAE6vE,EAAiB3vE,aAAar8C,KAAKnN,EAAEyP,aAClH,CACH,IAAI,IAAS2pH,EAAe1xH,OAAO,uBAE/B,YADA0xH,EAAetpB,mBAAmB3iG,KAAK,IAAMnN,EAAEyP,SAAQ,IAG3D,IAAIq8E,EAAastC,EAAepsC,gBAC5BlB,EACA,OAASA,QAAc,IAAWA,GAAsBA,EAAW14B,SAASjmD,KAAK,IAAMnN,EAAEyP,WAEzFzP,EAAEyP,UAGV,OAAOzP,EAAEuQ,WAEbgpH,8BAA+B,SAASH,EAAgBI,EAAgBN,GACpE,IAAIl5H,EAAI,wBACJo1D,EAAQ,eAAEgkE,EAAe9iE,cAAckjE,IACvCC,EAAU,eAAEL,EAAejtH,QAAQ,YAAYynD,oBAC/C8lE,EAAe,KAAO,OAAStkE,QAAS,IAAWA,OAAQ,EAASA,EAAM1sE,SAAW,eAAU0sE,EAAM9pD,GAAG,MAAQ,eAAU8pD,EAAM9pD,GAAG,IACnIquH,EAAiB,KAAO,OAASF,QAAW,IAAWA,OAAU,EAASA,EAAQ/wI,SAAW,eAAU+wI,EAAQnuH,GAAG,MAAQ,eAAUmuH,EAAQnuH,GAAG,IACnJ,GAAIouH,GAAgBC,EAAgB,CAChC,IAAIC,EAAqB,eAASV,GAUlC,OATAE,EAAetpB,mBAAmB3iG,KAAK,KACnC,IAAI0sH,EAAqC/qI,KAAK4Y,OAAO,qBAAsB,IAAS0xH,EAAe1xH,OAAO,uBACtGoyH,EAA2BD,GAAsCD,IAAuB,eAASV,GACjGW,GAAsCC,EACtChrI,KAAKghH,mBAAmB3iG,KAAK,IAAMnN,EAAEyP,SAAQ,IAE7CzP,EAAEyP,SAAQ,KAGXzP,EAAEuQ,UAEb,OAAO,wBAAWd,WAEtBq9F,mBAAoB,SAASN,GAEzB,GADA19G,KAAKC,SAASnB,MAAMkB,KAAME,WACtBF,KAAK4Y,OAAO,yBAA0B,CACtC,IAAIklG,EAAa99G,KAAKw6G,UAAUz1C,kBAC5B+4C,GACAA,EAAWhmG,KAAK,0BAA0B2E,IAAI,WAAYihG,EAAY,EAAI,QAM9FhoD,MAAO,CACHt4C,SAAU,CACNwmD,iBAAkB,SAAS9tD,GACvB,IAIIimC,EAJAp4C,EAAO3D,KACPua,EAASzE,EAAQyE,OACjBqhF,EAAoBj4F,EAAKguD,cAAc,WACvCs5E,EAAYrvC,GAAqBA,EAAkBqvC,UAAUn1H,EAAQ0kD,UAUzE,OAFIze,EANA,WAAaxhC,EAAOsE,SAAYosH,EAMrBtnI,EAAK1D,SAASnB,MAAM6E,EAAMzD,WAL1ByD,EAAKiV,OAAO,0BAA4B,CAC/CoE,gCAAgC,EAChCjV,OAAQpE,EAAK8pE,oBAAoBlzD,IAKlCwhC,GAEXmvF,aAAc,SAAShuH,GACnB,OAAOA,GAAOA,EAAIvC,SAAW,IAAMuC,EAAIvC,QAAQrc,QAAQ,WAE3Dm+D,WAAY,SAASv/C,GACjB,IAAIkgD,EAAOp9D,KAAKC,SAASnB,MAAMkB,KAAME,WAQrC,OAPIgd,GAAOld,KAAKkrI,aAAahuH,KACzBld,KAAK4Y,OAAO,iBAAmBwkD,EAAKjlD,SAAS,IAC7CilD,EAAKjlD,SAASoxH,IACV,eAAUrsH,EAAIq9B,UACd6iB,EAAKkiC,OAAOpiF,EAAIq9B,UAGjB6iB,GAEXiF,aAAc,SAASjF,EAAMtnD,GACzB,IACIq1H,EADAjuH,EAAMpH,EAAQoH,IAEdmgD,EAAiBr9D,KAAKs9D,mBAAmBC,oBACzCrgD,EAAIvC,SAAW3a,KAAKkrI,aAAahuH,GAC7Bld,KAAKwiE,gBAAgB,EAAG1sD,EAAQmsD,iBAChCkpE,EAAcnrI,KAAKyiE,YAAYrF,EAAM,CACjCv7D,MAAO,KACPqb,IAAKA,EACLs9C,SAAUt9C,EAAIs9C,SACdjgD,OAAQ,CACJsE,QAAS,UAEbtJ,YAAa,EACbgsC,OAAQzrC,EAAQyrC,SAEpB4pF,EAAYhzH,SAAS,IAA2BA,SAASmxH,IAA0B53E,KAAK,UAAW2L,EAAezjE,SAGtHoG,KAAKC,SAASnB,MAAMkB,KAAME,gBClTlD,EAASk2D,eAAe,eAAgBozE,I,2BCDpC4B,GAAwB,SAASlvI,GAGjC,IAFA,IAAImvI,EAAe,EACfC,EAAiB,EACZ7vI,EAAI,EAAGA,EAAIS,EAAItC,SAAU6B,EAI9B,GAHI,MAAQS,EAAIT,IACZ4vI,IAEA,MAAQnvI,EAAIT,OACV6vI,EACED,EAAe,IAAM,GACrB,MAAO,CACHE,WAAYD,EACZlqI,MAAO3F,GAKvB,MAAO,CACH8vI,WAAY,EACZnqI,OAAQ,IAGZoqI,GAAmB,SAAStvI,EAAKoV,EAAGma,GACpC,IAAIhwB,GAAK,EACT,MAAOgwB,KAAOhwB,IAAMS,EAAItC,OACpB6B,EAAIS,EAAIoC,QAAQgT,EAAG7V,GAEvB,OAAOA,GAEPgwI,GAAe,SAASvvI,EAAKkF,GAC7B,OAAK,IAAMA,EACA,CAAClF,GAEL,CAACA,EAAI8X,MAAM,EAAG5S,GAAQlF,EAAI8X,MAAM5S,EAAQ,KAE/CsqI,GAAqB,SAASC,EAAU9iF,GACxC,OAAO8iF,GAAY,gBAAOA,EAAW,IAAK9iF,IC3BnC+iF,GAAqB,SAASrvI,EAAMlD,GAC3C,GAAI,kBAAoBA,EAAQ,CAC5B,IAAIwyI,EAAYxyI,EAAOwC,MAAM,KACzBE,EAAO,QAAO+vI,QAAQvvI,EAAMlD,GAChCwyI,EAAU,GAAKA,EAAU,IAAM,IAAMA,EAAU,GAC/CxyI,EAASwyI,EAAU9vI,EAAO,EAAI,EAAI,GACxBG,EAAM7C,EAAhBA,EAAwB6C,EAAIf,QAAQ,aAAce,GAAOA,EAAIL,MAAM,IAAIC,IAAI,IAAM,KAAKE,KAAK,IAAIgX,OAAO,IACtG,IAAI+4H,EAAmB,YAAYlhH,KAAKxxB,GAAQ,GAAGO,OAC/CoyI,EAAoB,YAAYnhH,KAAKxxB,GAAQ,GAAGO,OACpD,MAAO,CACHixD,MAAOkhF,EACP55G,IAAK51B,EAAK3C,OAASoyI,GAGvB,MAAO,CACHnhF,MAAO,EACP14B,IAAK51B,EAAK3C,QAGlB,IAAIsC,GAEJ+vI,GAA4B,SAAS7qI,EAAO7E,GAC5C,IAAI2vI,EAAmB,QAAOC,sBAC1BC,EAAS,IAAI9iH,OAAO,QAAU,eAAa4iH,GAAoB,IAAK,KACpEG,EAAqB9vI,EAAKyX,MAAM,EAAG5S,GACvC,OAAOirI,EAAmBlxI,QAAQixI,EAAQ,IAAIxyI,QAE9C0yI,GAAe,SAAS/vI,GACxB,OAAOA,EAAKV,MAAM,IAAIsrF,UAAUnrF,KAAK,KAErCuwI,GAA2B,SAASC,EAAYjwI,GAChD,IAAKiwI,EACD,OAAQ,EAEZ,IAAIJ,EAAS,SACTK,EAAU,EACVrrI,EAAQ,KACRnC,EAASmtI,EAAOvhH,KAAKtuB,GACzB,MAAO0C,EAAQ,CAEX,GADAmC,EAAQnC,EAAOmC,MACXqrI,GAAWD,EACX,OAAOprI,EAEXqrI,IACAxtI,EAASmtI,EAAOvhH,KAAKtuB,GAEzB,OAAO,OAAS6E,EAAQ7E,EAAK3C,OAASwH,GAEtCsrI,GAA8B,SAASnwI,GACvC,OAAOA,EAAKpB,QAAQ,YAAa,KAE1BwxI,GAAqB,SAASC,EAAOxwH,GAO5C,YANI,IAAWwwH,EAAM/hF,QACjB+hF,EAAQ,CACJ/hF,MAAO+hF,EACPz6G,IAAKy6G,IAGN,CACH/hF,MAAO+hF,EAAM/hF,MAAQzuC,EACrB+V,IAAKy6G,EAAMz6G,IAAM/V,IAGdywH,GAAsB,SAAStwI,EAAMuwI,EAAWF,EAAOvzI,GAC9DuzI,EAAQD,GAAmBC,EAAO,GAClC,IAAIlwH,EAAQ,QAAOyvH,sBACfY,EAAuBC,GAAuBzwI,GAC9C0wI,EAA+B7B,GAAsB/xI,GAAQkyI,WAC7D2B,EAAgBH,EAAuB,EAAIvB,GAAiBjvI,EAAMmgB,EAAOuwH,GACzEE,EAAmB3B,GAAiBsB,EAAWpwH,EAAOuwH,GACtDG,EAAY3B,GAAalvI,EAAM2wI,GAC/BG,EAAiB5B,GAAaqB,EAAWK,GACzCG,GAAkB,IAAMJ,GAAiBN,EAAM/hF,MAAQqiF,EAC3D,GAAII,EAAgB,CAChB,IAAIC,EAAgBX,EAAM/hF,MAAQqiF,EAAgB,EAC9CM,EAAevB,GAA0BsB,EAAeH,EAAU,IAClEK,EAAcJ,EAAe,GAAKF,EAAmB,EAAIZ,GAAyBiB,EAAcH,EAAe,IAAM,EAAIP,EAAUlzI,OACvI,OAAO8zI,GAAqBD,EAAaX,EAAWzzI,GAEpD,IAAIs0I,EAAmBjB,GAA4BW,EAAe,IAC9DO,EAAkBR,EAAU,GAAGxzI,OAASgzI,EAAM/hF,MAC9CgjF,EAAgB5B,GAA0B2B,EAAiBtB,GAAac,EAAU,KAClFU,EAAqBvB,GAAyBsB,EAAevB,GAAaqB,IAC1EI,EAAuBJ,EAAiB/zI,QAAUk0I,EAAqB,GAC3E,OAAOJ,GAAqBK,EAAsBjB,EAAWzzI,IAIrE,SAAS2zI,GAAuBzwI,GAC5B,OAAO,IAAMA,EAAK3C,UAAY2C,EAAKgnB,MAAM,iBAEtC,IAAIyqH,GAAsB,SAASpB,EAAOrwI,EAAMlD,GACnDuzI,EAAQD,GAAmBC,EAAO,GAClC,IAAIqB,EAAaP,GAAqBd,EAAOrwI,EAAMlD,GACnD,OAAOuzI,EAAM/hF,OAASojF,EAAWpjF,OAAS+hF,EAAMz6G,KAAO87G,EAAW97G,KAE/D,SAASu7G,GAAqBd,EAAOrwI,EAAMlD,GAC9CuzI,EAAQD,GAAmBC,EAAO,GAClC,IAAIqB,EAAarC,GAAmBrvI,EAAMlD,GACtC60I,EAAgB,CAChBrjF,MAAO,gBAAa+hF,EAAM/hF,MAAOojF,EAAWpjF,MAAOojF,EAAW97G,KAC9DA,IAAK,gBAAay6G,EAAMz6G,IAAK87G,EAAWpjF,MAAOojF,EAAW97G,MAE9D,OAAO+7G,EAEJ,IAAIC,GAAiB,SAASC,EAAcC,EAASh1I,GACxD,IAAIi1I,EAAqB1C,GAAmBwC,EAAc/0I,GACtDk1I,EAAgB3C,GAAmByC,EAASh1I,GAChD,OAAOk1I,EAAc1jF,MAAQyjF,EAAmBzjF,O,oDCtGhD2jF,GAAa,oBACbC,GAAoB,2BACpBC,GAAkB,IAClBC,GAAa,cACbC,GAAuB,gBAAat0E,EAAA,KAAcu0E,GAAIF,IACtDG,GAA2B,gBAAax0E,EAAA,KAAc/Z,OAAQouF,IAC9DI,GAAa,OAAOh/E,QAAQ,CAC5B42C,mBAAoB,WAChB,OAAO,OAAAlsG,EAAA,WAAOuF,KAAKC,WAAY,CAC3BwqD,UAAW,KACXukF,SAAU,KACVt7F,oBAAoB,EACpBoC,mBAAmB,KAG3BuzD,YAAa,WACTrpG,KAAKC,WACL,IAAIwqD,EAAY+jF,GAAa,IAAMxuI,KAAK4Y,OAAO,aAC/C5Y,KAAK6W,WAAWsB,SAASs2H,IAAmBt2H,SAASsyC,GACrDzqD,KAAKivI,UAAY,eAAE,SAAS92H,SAASsyC,EAAY,SAASryC,SAASpY,KAAK6W,aAE5Ei8F,QAAS,WACL9yG,KAAKC,WACL,IAAI0zG,EAAY,gBAAar5C,EAAA,KAAcC,KAAMv6D,KAAKuyD,MAClD17C,EAAW7W,KAAK6W,WACpB,OAAao6C,IAAIp6C,EAAU88F,GAC3B,OAAa7pG,GAAG+M,EAAU88F,EAAW3zG,KAAKkvI,iBAAiB1zH,KAAKxb,OAChEA,KAAKmvI,mBAAqBnvI,KAAKiyD,sBAAsB,aAEzDi9E,iBAAkB,SAAStrI,GACvBA,EAAEu5D,iBACFn9D,KAAKovI,cACL,OAAatlI,GAAG9J,KAAK6W,WAAYm1B,GAAA,KAAUpqC,KAAM,WAC7C5B,KAAKqvI,kBAAoB,IAAI,cAC7B,gBAAKrvI,KAAKqvI,mBACVrvI,KAAKmvI,mBAAmB,CACpBn9E,MAAOpuD,IAEX5D,KAAKsvI,WAAaC,YAAYvvI,KAAKmvI,mBAAoBT,GAAiB,CACpE18E,MAAOpuD,KAEb4X,KAAKxb,OACP,IAAI++B,EAAW,aAAW+gC,cAC1B,OAAah2D,GAAGi1B,EAAU6vG,GAAsB5uI,KAAKovI,YAAY5zH,KAAKxb,OACtE,OAAa8J,GAAGi1B,EAAU+vG,GAA0B9uI,KAAKovI,YAAY5zH,KAAKxb,OAC1EA,KAAKmvI,mBAAmB,CACpBn9E,MAAOpuD,KAGfisH,SAAU,WACN7vH,KAAKovI,cACLpvI,KAAKC,YAETmvI,YAAa,WACT,OAAan+E,IAAIjxD,KAAK6W,WAAYm1B,GAAA,KAAUpqC,MAC5C,IAAIm9B,EAAW,aAAW+gC,cAC1B,OAAa7O,IAAIlyB,EAAU6vG,IAC3B,OAAa39E,IAAIlyB,EAAU+vG,IACvB9uI,KAAKqvI,mBACLrvI,KAAKqvI,kBAAkB1uH,UAEvB3gB,KAAKsvI,YACLE,cAAcxvI,KAAKsvI,aAG3BphC,eAAgB,SAAS7+D,GACrB,OAAQA,EAAKztC,MACT,IAAK,WACL,IAAK,YACD5B,KAAKszD,cACL,MACJ,QACItzD,KAAKC,SAASovC,OAIf,MCnFX,GAAa,oBACbogG,GAAuB,8BACvBC,GAA4B,mCACjB,MAAM,WAAoB,QACrC,cAActhI,EAAUuhI,GACpB,IACIzxH,OAAQA,GACRle,KACA2zG,EAAY,gBAAar5C,EAAA,KAAQC,KAAMr8C,EAAOq0C,MAC9Cq9E,EAAyBD,EAAe33E,WACxC63E,EAAoB3xH,EAAO6zC,cAAcnuD,GAAKsa,EAAO4xH,+BAA+BlsI,IACxF,OAAaqtD,IAAI0+E,EAAgBh8B,GACjC,OAAa7pG,GAAG6lI,EAAgBh8B,EAAW/vG,GAAKisI,EAAkB,CAC9D79E,MAAOpuD,KAEX,GAAW+/F,YAAYisC,EAAuBpzH,GAAG,IAAI5D,OAAO,WAAYhV,GAAKsa,EAAO6xH,qBAAqBnsI,IACzG,GAAW+/F,YAAYisC,EAAuBpzH,GAAG,IAAI5D,OAAO,WAAYhV,GAAKsa,EAAO8xH,uBAAuBpsI,IAE/G,UACI,IACIsa,OAAQA,GACRle,KACA2vI,EAAiB,eAAE,SAASx3H,SAASs3H,IACrCQ,EAAU,eAAE,SAAS73H,SAASu3H,GAC9BO,EAAY,eAAE,SAAS93H,SAASu3H,GAChC75H,EAAU9V,KAAKmwI,cASnB,OARAnwI,KAAKowI,gBAAgBT,GACrBzxH,EAAOjF,iBAAiBg3H,EAAS,GAAY,OAAAx1I,EAAA,WAAO,CAChDgwD,UAAW,MACZ30C,IACHoI,EAAOjF,iBAAiBi3H,EAAW,GAAY,OAAAz1I,EAAA,WAAO,CAClDgwD,UAAW,QACZ30C,IACH9V,KAAKqwI,cAAcnyH,EAAOrH,WAAY7W,KAAKswI,mBAAoBx6H,EAAQykC,SAChE,CACHnsC,SAAUuhI,EACV94H,SAAU84H,GAGlB,cACI,IACIzxH,OAAQA,GACRle,KACAu6C,EAAUv6C,KAAKuwI,aACf57F,EAAWz2B,EAAOtF,OAAO,YAC7B,MAAO,CACH2hC,QAASA,EACT5F,SAAUA,GAGlB,aACI,IACIz2B,OAAQA,GACRle,KACJ,OAAO0mG,MAAM6pC,cAAgBryH,EAAOtF,OAAO,mBAE/C,mBACI,IACIsF,OAAQA,GACRle,KACJ,OAAOke,EAAOtF,OAAO,oBAAsBsF,EAAOtF,OAAO,uBAE7D,cAAc4/G,EAASgY,EAAiBx4H,GACpCwgH,EAAQjkE,YAAYm7E,GAA2Bc,GAC/ChY,EAAQjkE,YAAY,GAAYv8C,GAEpC,SACI,IAAIy4H,EAAe/pC,MAAMpiC,SACzB,GAAImsE,EAAc,CACd,IACIvyH,OAAQA,EACR9P,SAAUA,GACVpO,KACAw4H,EAAUt6G,EAAOrH,WACjBmB,EAAYhY,KAAKuwI,aACjBC,EAAkBxwI,KAAKswI,mBACvBI,EAAetiI,EAAS4pD,WACxB24E,EAAS,GAAWhtC,YAAY+sC,EAAal0H,GAAG,IAChDo0H,EAAW,GAAWjtC,YAAY+sC,EAAal0H,GAAG,IAClD1G,EAAU9V,KAAKmwI,cACnBQ,EAAO/3H,OAAO9C,GACd86H,EAASh4H,OAAO9C,GAChB9V,KAAKqwI,cAAc7X,EAASgY,EAAiBx4H,KC9DzD,IAAI,GAAOxG,KACPq/H,GAAe,eACfC,GAAuB,CAAC,MAAO,MAAO,YAAa,YAAa,aAAc,OAAQ,MAAO,SAC7FC,GAAoC,4BACpCC,GAAgB,QAAWjhF,QAAQ,CACnCq3C,eAAgB,WACZ,OAAO,OAAA3sG,EAAA,WAAOuF,KAAKC,WAAY,CAC3BgxI,QAAS,SAASrtI,GACT,gBAAoBA,KACrBA,EAAEu5D,iBACFv5D,EAAEwmG,kBACFpqG,KAAK+vI,qBAAqBnsI,KAGlCstI,UAAW,SAASttI,GACX,gBAAoBA,KACrBA,EAAEu5D,iBACFv5D,EAAEwmG,kBACFpqG,KAAKgwI,uBAAuBpsI,KAGpCutI,MAAO,gBAGfxqC,mBAAoB,WAChB,OAAO,OAAAlsG,EAAA,WAAOuF,KAAKC,WAAY,CAC3B4B,MAAO,EACPgH,SAAK,EACLC,SAAK,EACLsoI,KAAM,EACNC,iBAAiB,EACjBC,qBAAqB,EACrBhlG,KAAM,OACNilG,oBAAqB,OAAoBl4I,OAAO,mCAChD0jD,aAAS,KAGjBy0F,cAAe,WACX,OAAO,GAEXC,mBAAoB,WAChB,OAAOzxI,KAAKC,WAAW0nB,OAAO,CAAC,CAC3B/lB,KAAM,QACN8vI,KAAM,OAGdC,oBAAqB,WACjB,IAAIx+G,EAAU8gC,WAAWr0C,EAAA,KAAQuT,SACjC,OAAOvT,EAAA,KAAQmjF,QAAU5vE,GAAW,IAAMvT,EAAA,KAAQq9C,QAAU9pC,GAAW,IAE3Es9E,qBAAsB,WAClB,OAAOzwG,KAAKC,WAAW0nB,OAAO,CAAC,CAC3B+oF,OAAQ,WACJ,OAAO9G,GAAA,KAAQC,OAAO+nC,UAAYhoC,GAAA,KAAQyd,eAE9CvxG,QAAS,CACLw7H,qBAAqB,IAE1B,CACC5gC,OAAQ,WACJ,MAAO,YAAc9G,GAAA,KAAQC,OAAOC,aAAe9pG,KAAK2xI,uBAC1Dn2H,KAAKxb,MACP8V,QAAS,CACLw2B,KAAM,cAIlB+8D,YAAa,WACTrpG,KAAK6xI,uBACL7xI,KAAK6W,WAAWsB,SAAS04H,IACzB7wI,KAAKC,YAET6xI,sBAAuB,WACnB,IAAIz2E,EAAar7D,KAAKC,WAEtB,OADAo7D,EAAW02E,UAAY,UAChB12E,GAEXu8C,mBAAoB,WAChB53G,KAAK4Y,OAAO,YAAc5Y,KAAKgyI,eAAehyI,KAAK4Y,OAAO,UAC1D5Y,KAAKsd,QAAQ,OAAQ,eAEzBu0H,qBAAsB,WAClB7xI,KAAKiyI,gBAAkB,eAAE,WAAWvgF,KAAK,OAAQ,UAAUt5C,SAASpY,KAAK6W,YACzE7W,KAAKkyI,gBAAgBlyI,KAAK4Y,OAAO,WAErCs5H,gBAAiB,SAASrwI,GACtB7B,KAAKmyI,oBAAoBC,IAAI,eAA4BvwI,KAE7DswI,kBAAmB,WACf,OAAOnyI,KAAKiyI,iBAEhBI,iBAAkB,SAASzuI,GACvB5D,KAAKC,SAAS2D,GACd,IAAIgQ,EAAO,gBAAQhQ,GACf0uI,EAAmB,cAAcxuH,KAAKlQ,GAC1C,IAAK0+H,EAAkB,CACnB,IAAI/4H,EAAU,gBAAiB3V,GAC/B,GAAI,gBAAoBA,IAAM2V,GAAWu3H,GAAqB9tI,SAASuW,GACnE,OAGJ,OADA3V,EAAEu5D,kBACK,EAEXn9D,KAAKuyI,aAAc,GAEvBC,cAAe,SAASn5B,GACpBA,EAAQo5B,MAAQ,EAAIzyI,KAAK0yI,iBAAiB,EAAGr5B,GAAWr5G,KAAK0yI,kBAAkB,EAAGr5B,IAEtFs5B,aAAc,WACV,IAAIC,EAAa5yI,KAAK6yI,SAAST,MAC3BvwI,EAAQ7B,KAAK4Y,OAAO,SACnBg6H,EAAWh5I,QAAUsb,OAAO09H,KAAgB/wI,IAC7C7B,KAAK8yI,oBACL9yI,KAAK+yI,gCAET,IAAIh9H,EAAY,eAAUlU,GAAS,KAAO,OAAoBxI,OAAO,0BAOrE,OANA2G,KAAKsd,QAAQ,CACT01H,SAAU,eAAcnxI,EAAO,IAC/BoxI,UAAWl9H,IAEf/V,KAAK4Y,OAAO,OAAQ5Y,KAAK6yI,SAAST,OAClCpyI,KAAKkzI,kBACE,IAAK,eAAUvyH,WAE1BmyH,kBAAmB,WACf,IAAIjxI,EAAQ7B,KAAK4Y,OAAO,SACpBvd,EAAS6Z,OAAOrT,GAChBijF,EAAiBthF,MAAMnI,GAAU,GAAK2E,KAAKmzI,4BAA4BtxI,GAC3E7B,KAAKozI,mBAAmBtuD,IAE5BquD,4BAA6B,SAAStxI,GAClC,OAAO7B,KAAK4Y,OAAO,wBAAZ5Y,CAAqC6B,IAEhDwxI,aAAc,WACVrzI,KAAK6yI,SAASS,KAAK,CACfzqI,IAAK7I,KAAK4Y,OAAO,OACjB9P,IAAK9I,KAAK4Y,OAAO,OACjBw4H,KAAMpxI,KAAK4Y,OAAO,UAEtB5Y,KAAKsd,QAAQ,CACTi2H,SAAU,eAAcvzI,KAAK4Y,OAAO,OAAQ,IAC5C46H,SAAU,eAAcxzI,KAAK4Y,OAAO,OAAQ,OAGpDk3H,+BAAgC,WAC5B,IAAI2D,EAASzzI,KAAK6yI,SACb7yI,KAAK4Y,OAAO,wBAA0B,aAAWgmG,qBAAuB60B,EAAO,IAChF,OAAaz1H,QAAQy1H,EAAQ,UAGrC1D,qBAAsB,SAASnsI,GACtB5D,KAAK4Y,OAAO,aACb5Y,KAAK0yI,iBAAiB,EAAG9uI,EAAEouD,OAASpuD,IAG5CosI,uBAAwB,SAASpsI,GACxB5D,KAAK4Y,OAAO,aACb5Y,KAAK0yI,kBAAkB,EAAG9uI,EAAEouD,OAASpuD,IAG7C8uI,iBAAkB,SAAS32I,EAAMs9G,GAC7B,IAAI+3B,EAAOn9E,WAAWj0D,KAAK4Y,OAAO,SAClC,GAAI,IAAMw4H,EAAV,CAGA,IAAIvvI,EAAQoyD,WAAWj0D,KAAK0zI,yBAA2B,EACvD7xI,EAAQ7B,KAAK2zI,iBAAiB9xI,EAAOuvI,EAAOr1I,GAC5C,IAAI8M,EAAM7I,KAAK4Y,OAAO,OAClB9P,EAAM9I,KAAK4Y,OAAO,OAClB,eAAU/P,KACVhH,EAAQ2P,KAAK1I,IAAID,EAAKhH,IAEtB,eAAUiH,KACVjH,EAAQ2P,KAAK3I,IAAIC,EAAKjH,IAE1B7B,KAAK4zI,sBAAsBv6B,GAC3Br5G,KAAK4Y,OAAO,QAAS/W,KAEzB8xI,iBAAkB,SAAS9xI,EAAOuvI,GAC9B,IAAIyC,EAAQ,WACRC,EAAeD,EAAM/vH,KAAKjiB,GAC1BkyI,EAAcF,EAAM/vH,KAAKstH,GAC7B,GAAI0C,GAAgBC,EAAa,CAC7B,IAAIC,EAAgBF,EAAeD,EAAMhpH,KAAKhpB,GAAO,GAAGjI,OAAS,EAC7Dq6I,EAAeF,EAAcF,EAAMhpH,KAAKumH,GAAM,GAAGx3I,OAAS,EAC1Ds6I,EAAW,GAAKprI,IAAIkrI,EAAeC,GAEvC,OADApyI,EAAQ7B,KAAKm0I,OAAOtyI,EAAQuvI,EAAM8C,GAC3BryI,EAEX,OAAOA,EAAQuvI,GAEnB+C,OAAQ,SAAStyI,EAAOgnD,GACpBA,EAAYA,GAAa,EACzB,IAAIurF,EAAa5iI,KAAK8gE,IAAI,GAAIzpB,GAG9B,OAFAhnD,GAASuyI,EACTvyI,EAAQ2P,KAAKyrF,MAAMp7F,GAASuyI,EACrBvyI,GAEXwyI,wBAAyB,WACrBr0I,KAAKC,WACL,IAAIq0I,EAAwB,gBAAa,WAAYvD,IACrD,OAAa9/E,IAAIjxD,KAAK0X,UAAW48H,GACjC,OAAaxqI,GAAG9J,KAAK0X,UAAW48H,EAAuBt0I,KAAKu0I,wBAAwB/4H,KAAKxb,QAE7Fu0I,wBAAyB,WACrB,GAAI,WAAav0I,KAAK4Y,OAAO,QAA7B,CAGA,IAAI66H,EAASzzI,KAAK6yI,SACd/tD,EAAiB9kF,KAAKmzI,4BAA4BnzI,KAAK4Y,OAAO,UAClE66H,EAAOrB,IAAI,MACXqB,EAAOrB,IAAIttD,KAEf0vD,yBAA0B,SAAS5wI,GAC/B,IAAI6vI,EAASzzI,KAAK6yI,SACdD,EAAa5yI,KAAKy0I,iBAClB5yI,EAAQ7B,KAAK00I,YAAY9B,GACzB+B,EAAiB,MAAQ/B,GAAc,MAAQA,GAC/C5yI,KAAK40I,iBAAoB50I,KAAKgyI,eAAenwI,IAI7C8yI,GACA30I,KAAKC,SAAS2D,EAAGJ,MAAM3B,GAAS,KAAOA,GAE3C7B,KAAK60I,sBAAsBjC,EAAY/wI,GACvC7B,KAAK80I,kBAAkBtgF,KAAK,CACxB3yD,MAAOA,EACPqc,OAAQle,QATRyzI,EAAOrB,IAAIpyI,KAAKmzI,4BAA4BtxI,KAYpDgzI,sBAAuB,SAASjC,EAAY5gE,GACxC,IAAI+iE,EAAoB/0I,KAAKg1I,mBAAmBpC,GAC5CqC,EAAiBj1I,KAAKk1I,gBAAgBtC,GACrCmC,GAAsBE,GAAkB,OAASjjE,GAC9C98D,OAAO09H,KAAgB5gE,GACvBhyE,KAAK6yI,SAAST,IAAIpyI,KAAKmzI,4BAA4BnhE,KAI/DmjE,uBAAwB,SAAStzI,GAC7B,OAAOA,EAAM1G,QAAQ,IAAK,MAE9Bi6I,gBAAiB,WACb,IAAIC,EAAe,WAAar1I,KAAK4Y,OAAO,QACxC08H,EAAgBt1I,KAAK6yI,SAASn1I,IAAI,GAAG63I,SACzC,OAAOF,GAAgBC,GAAiBA,EAAcE,UAE1DpC,mBAAoB,SAAS72I,GACrByD,KAAKo1I,mBAGTp1I,KAAKC,SAAS1D,IAElBy4I,mBAAoB,SAASnzI,GACzB,MAAO,+BAA+BiiB,KAAKjiB,IAE/CqzI,gBAAiB,SAASrzI,GACtB,OAAO,gBAAQA,EAAO7B,KAAK4Y,OAAO,OAAQ5Y,KAAK4Y,OAAO,SAE1D68H,UAAW,SAAS5zI,GAChB,OAAO,OAAS7B,KAAK00I,YAAY7yI,IAErCmwI,eAAgB,SAASnwI,GACrB,IAAI+wI,EAAa5yI,KAAKy0I,iBAClBiB,EAAe11I,KAAK40I,gBACpBe,GAAU,EACVC,EAAW51I,KAAKy1I,UAAU7C,GAgB9B,OAfIpvI,MAAM0R,OAAOrT,MACb8zI,GAAU,IAET9zI,GAAS6zI,EACVC,GAAU,EACFC,GAAaF,IACrBC,GAAU,GAEd31I,KAAK4Y,OAAO,CACR+8H,QAASA,EACTE,gBAAiBF,EAAU,KAAO,CAC9BG,gBAAgB,EAChB/8H,QAAS/Y,KAAK4Y,OAAO,0BAGtB+8H,GAEXjC,qBAAsB,WAClB,OAAO1zI,KAAK00I,YAAY10I,KAAKy0I,mBAEjCA,eAAgB,WACZ,IAAI5yI,EAAQ7B,KAAK6yI,SAAST,MAAMzyI,OAChC,OAAOK,KAAKm1I,uBAAuBtzI,IAEvC6yI,YAAa,SAAS7yI,GAClB,IAAIxG,EAAS44D,WAAWpyD,GACxB,OAAI2B,MAAMnI,GACC,KAEJ,gBAAaA,EAAQ2E,KAAK4Y,OAAO,OAAQ5Y,KAAK4Y,OAAO,SAEhEm9H,YAAa,WACL/1I,KAAKo1I,oBACLp1I,KAAK6yI,SAAST,IAAI,IAClBpyI,KAAKgyI,kBAEThyI,KAAKC,YAETm9E,MAAO,WACC,OAASp9E,KAAK4Y,OAAO,UACrB5Y,KAAK4Y,OAAO,OAAQ,IACpB5Y,KAAK2yI,gBAEL3yI,KAAK4Y,OAAO,QAAS,OAG7Bs1F,eAAgB,SAAS7+D,GACrB,OAAQA,EAAKztC,MACT,IAAK,QACD5B,KAAKgyI,eAAe3iG,EAAKxtC,OACzB7B,KAAKkyI,gBAAgB7iG,EAAKxtC,OAC1B7B,KAAKC,SAASovC,GACdrvC,KAAKg2I,2BACL,MACJ,IAAK,OACDh2I,KAAKqzI,eACL,MACJ,IAAK,MACL,IAAK,MACDrzI,KAAKqzI,eACLrzI,KAAK4Y,OAAO,QAAS5Y,KAAK00I,YAAY10I,KAAK4Y,OAAO,WAClD,MACJ,IAAK,kBACL,IAAK,sBACD5Y,KAAKkzI,eAAe,CAAC,UACrB,MACJ,IAAK,sBACD,MACJ,QACIlzI,KAAKC,SAASovC,OAIf,MCxUX4mG,GAA6B,oBAC7BC,GAAe,EACfC,IAAiB,EACjBC,GAAQ,IACRC,GAAY,QACZC,GAAc,QACdC,GAAyB,EACzBC,GAAgB,GAAczmF,QAAQ,CACtC42C,mBAAoB,WAChB,OAAO,OAAAlsG,EAAA,WAAOuF,KAAKC,WAAY,CAC3Bw2I,iBAAiB,EACjBp9I,OAAQ,QAGhBq9I,aAAc,SAAS57I,GACnB,MAAO,QAAUA,GAErBssG,eAAgB,WACZ,OAAKpnG,KAAK22I,mBAGH,OAAAl8I,EAAA,WAAOuF,KAAKC,WAAY,CAC3B22I,MAAO52I,KAAK62I,YAAYr7H,KAAKxb,MAC7B82I,IAAK92I,KAAK+2I,eAAev7H,KAAKxb,MAC9Bg3I,UAAWh3I,KAAK+2I,eAAev7H,KAAKxb,MACpCi3I,UAAWj3I,KAAKk3I,cAAc17H,KAAKxb,KAAMm2I,IACzCgB,WAAYn3I,KAAKk3I,cAAc17H,KAAKxb,KAAMk2I,IAC1CkB,KAAMp3I,KAAKq3I,iCAAiC77H,KAAKxb,KAAMk2I,IACvD/E,MAAOnxI,KAAKs3I,sBAAsB97H,KAAKxb,MACvCmyB,IAAKnyB,KAAKq3I,iCAAiC77H,KAAKxb,KAAMm2I,MAV/Cn2I,KAAKC,YAapBs3I,uBAAwB,SAASh7I,GAC7B,IAAI2vI,EAAmB,QAAOC,sBAC1Bc,EAA+B7B,GAAsBprI,KAAK4Y,OAAO,WAAW2yH,WAChF,OAAOC,GAAiBjvI,EAAM2vI,EAAkBe,IAEpDuK,gBAAiB,SAAS5zI,GACjB5D,KAAKy3I,yBAAyB7zI,KAC/B5D,KAAK03I,oBACL13I,KAAK23I,cAAgBj4G,WAAW,WAC5B1/B,KAAK23I,mBAAgB,EACrB,IAAI/K,EAAQ5sI,KAAK43I,SACjB,GAAIhL,EAAM/hF,QAAU+hF,EAAMz6G,KAAOnyB,KAAK22I,mBAAoB,CACtD,IAAIp6I,EAAOyD,KAAK63I,eACZC,EAAwB93I,KAAKu3I,uBAAuBh7I,GACpDu7I,GAAyB,EACzB93I,KAAK43I,OAAO,CACR/sF,MAAOitF,EACP3lH,IAAK2lH,IAGT93I,KAAKq3I,iCAAiClB,GAAevyI,KAG/D4X,KAAKxb,MAAOu2I,KAElBv2I,KAAKC,SAAS2D,IAElBm0I,iBAAkB,SAASn0I,GACvB,IAAIo0I,GAAqBh4I,KAAKy3I,yBAAyB7zI,GACnDo0I,IACAh4I,KAAKi4I,iBAAkB,EACnBj4I,KAAK22I,oBACL32I,KAAKs3I,yBAGbt3I,KAAKC,SAAS2D,GACVo0I,IACAh4I,KAAKi4I,iBAAkB,IAG/B,qBAAqBrF,GACjB,IAAIv5I,EAAS2G,KAAKk4I,oBACdr2I,EAAQ7B,KAAK4Y,OAAO,SACpBk0H,EAAY9sI,KAAKJ,QAAQiC,EAAOxI,IAAW,GAC/C,OAAOyzI,IAAc8F,GAEzB0E,sBAAuB,WACnB,IAAI1E,EAAa5yI,KAAK63I,eAClB73I,KAAKm4I,qBAAqBvF,KAC1B5yI,KAAKo4I,qBACLp4I,KAAKq4I,qBACLr4I,KAAKs4I,wBACDt4I,KAAKu4I,eAAiBv4I,KAAK4Y,OAAO,UAClC,OAAaoF,QAAQhe,KAAK6yI,SAAU,YAIhDqE,cAAe,SAAS9F,EAAMxtI,GAC1B,GAAK5D,KAAK22I,mBAAV,CAGA,IAAIp6I,EAAOyD,KAAK63I,eACZx+I,EAAS2G,KAAKk4I,oBACdM,EAAY7L,GAAmB3sI,KAAK43I,SAAUxG,GAC7CpD,GAAoBwK,EAAWj8I,EAAMlD,KACtCm/I,EAAYpH,IAAS8E,GAAesC,EAAUrmH,IAAMqmH,EAAU3tF,MAC9DjnD,EAAEu5D,iBACFn9D,KAAK43I,OAAOlK,GAAqB8K,EAAWj8I,EAAMlD,OAG1Do/I,qBAAsB,SAAShuF,GAC3B,IAAIwjF,EAAarC,GAAmB5rI,KAAK63I,eAAgB73I,KAAKk4I,qBAC1DQ,EAAW/L,GAAmBliF,IAAcyrF,GAAejI,EAAWpjF,MAAQojF,EAAW97G,IAAK,GAClGnyB,KAAK43I,OAAOc,IAEhBrB,iCAAkC,SAAS5sF,EAAW7mD,IAC7C5D,KAAK22I,oBAAsB/yI,GAAKA,EAAE4pE,WAGvCxtE,KAAKy4I,qBAAqBhuF,GAC1B7mD,GAAKA,EAAEu5D,mBAEXw7E,iBAAkB,SAASp8I,EAAMqwI,GAC7B,IAAIV,EAAmB,QAAOC,sBAC1ByM,EAAyBr8I,EAAKyvB,OAAO4gH,EAAMz6G,OAAS+5G,EACpD2M,GAAe74I,KAAK84I,WAAa5M,GAAoB,MAAQlsI,KAAK84I,UAAY,MAAQ94I,KAAK84I,WAAaF,EAC5G,OAAOC,GAEXhB,aAAc,WACV,OAAO,QAAOp0I,cAAczD,KAAK6yI,SAAST,OAAO,IAErD2G,iBAAkB,SAASn1I,GAIvB,GAHA5D,KAAK03I,oBACL13I,KAAK84I,SAAW,QAAOr1I,cAAc,gBAAQG,IAAI,GACjD5D,KAAKg5I,aAAe,gBAAiBp1I,IAChC5D,KAAKi5I,iBAAiBr1I,EAAE8lE,eACzB,OAAO1pE,KAAKC,SAAS2D,GAEzB,IAAIs1I,EAAiBl5I,KAAK63I,eACtBjL,EAAQ5sI,KAAK43I,SACbuB,EAAcn5I,KAAKg5I,eAAiB3C,GAAY,GAAKr2I,KAAK84I,SAC1D10E,EAAWpkE,KAAKo5I,UAAUF,EAAgBtM,EAAOuM,GAYrD,OAXIn5I,KAAK24I,iBAAiBO,EAAgBtM,KACtC5sI,KAAKq5I,WAAW,GAChBz1I,EAAE8lE,cAAcvM,uBAEhB,IAAWiH,EACPpkE,KAAKg5I,eAAiB3C,IACtBzyI,EAAE8lE,cAAcvM,iBAGpBn9D,KAAKu4I,aAAen0E,EAEjBpkE,KAAKC,SAAS2D,IAEzByuI,iBAAkB,SAASzuI,GAClB5D,KAAK22I,oBACN32I,KAAKC,SAAS2D,IAGtBmzI,eAAgB,SAASnzI,GACrB,IAAIgpI,EAAQ5sI,KAAK43I,SACbr7I,EAAOyD,KAAK63I,eACZhtF,EAAQ+hF,EAAM/hF,MACd14B,EAAMy6G,EAAMz6G,IAChBnyB,KAAK84I,SAAW,gBAAQl1I,GACxB5D,KAAKg5I,aAAe,gBAAiBp1I,GACrC,IAAI01I,EAAct5I,KAAK02I,aAAa12I,KAAKg5I,cACrCO,GAAkBD,EACtB,GAAIzuF,IAAU14B,EAAK,CACf,IAAIqnH,EAAgB3uF,EAChB4uF,EAAYF,GAAkBC,EAAgB,GAAKF,GAAeE,EAAgBj9I,EAAK3C,OAC3F,IAAI6/I,EAKA,YADA71I,EAAEu5D,iBAHFm8E,GAAennH,IACfonH,GAAkB1uF,IAM1B,IAAIj3C,EAAOrX,EAAKyX,MAAM62C,EAAO14B,GAC7B,GAAInyB,KAAK05I,QAAQ9lI,GAOb,OANA5T,KAAKq5I,WAAWC,EAAc,GAAK,IAC/Bt5I,KAAKu4I,aAAe,GAAK,EAAIv4I,KAAKu4I,gBAAiB,OACnDv4I,KAAK62I,YAAYjzI,GACjB5D,KAAKs4I,8BAET10I,EAAEu5D,iBAGN,IAAI+uE,EAAmB,QAAOC,sBAC9B,GAAIv4H,IAASs4H,EAAb,CAQA,GAAI/5G,EAAM04B,EAAQtuD,EAAK3C,OAAQ,CAC3B,IAAI+/I,EAAa35I,KAAK45I,qBAAqBr9I,EAAM,CAC7CsuD,MAAOA,EACP14B,IAAKA,GACN,IACC0nH,EAAWF,EAAWG,OAAO,SAAW,EAC5C,GAAID,GAAY75I,KAAKk1I,gBAAgB,GAEjC,YADAl1I,KAAKu4I,aAAev4I,KAAKu4I,aAAe,GAAK,EAAIv4I,KAAKu4I,gBAAiB,KAAU,EAAI,GAI7F,IAAIwB,EAAqB/5I,KAAKo5I,UAAU78I,EAAM,CAC1CsuD,MAAOA,EACP14B,IAAKA,GACN,SACC,IAAW4nH,EACXn2I,EAAEu5D,iBAEFn9D,KAAKu4I,aAAewB,MA1BxB,CACI,IAAIjC,EAAwBv7I,EAAK+B,QAAQ4tI,GACrClsI,KAAKg6I,gBAAgBlC,EAAwB,KAC7C93I,KAAKq5I,WAAWC,EAAc,GAAK,GACnC11I,EAAEu5D,oBAyBd88E,iBAAkB,WACd,IAAI5gJ,EAAS2G,KAAKk4I,oBACdgC,EAAkB7gJ,EAAO8B,QAAQ,WAAY,IACjD,OAAQ,IAAM++I,EAAgB57I,QAAQ,MAE1C67I,OAAQ,SAAS59I,EAAMlD,GACnB,IAAI+gJ,EAAep6I,KAAK4Y,OAAO,UAC3ByhI,EAAiB,eAAWD,EAAah6I,QACzCA,EAASi6I,EAAiBD,EAAah6I,OAAS,QAAOD,MACvDm6I,EAAwB,EAC5B,IAAKD,EAAgB,CACjB,IAAIE,EAAmBnP,GAAsB/xI,GAAQ+H,MACjDo5I,EAAiBx6I,KAAKu3I,uBAAuBh7I,GAC7Ck+I,GAA2B,IAAMF,EAAmBA,EAAmBlhJ,EAAOO,OAC9E8gJ,GAAyB,IAAMF,EAAiBA,EAAiBj+I,EAAK3C,OACtE8gJ,EAAwBD,IAA4B,IAAMphJ,EAAOiF,QAAQ,OACzEg8I,EAAwBI,EAAwBD,GAIxD,OADAl+I,EAAOA,EAAKyW,OAAOsnI,GACZl6I,EAAO7D,EAAMlD,IAExBuG,QAAS,SAASiC,EAAOxI,GACrB,IAAI+gJ,EAAep6I,KAAK4Y,OAAO,UAC3B+hI,GAAmB,OAASP,QAAgB,IAAWA,OAAe,EAASA,EAAav6I,YAAcu6I,EAC1Gv6I,EAAY,eAAW86I,GAAmBA,EAAkB,QAAOthJ,OACnEyrF,EAAiB,OAASjjF,EAAQ,GAAKhC,EAAUgC,EAAOxI,GAC5D,OAAOyrF,GAEXozD,kBAAmB,WAIf,OAHKl4I,KAAK46I,gBACN56I,KAAK66I,gBAEF76I,KAAK46I,gBAEhBC,cAAe,WACX,IAAIxhJ,EAAS2G,KAAK4Y,OAAO,UACrByhI,EAAiB,eAAW,OAAShhJ,QAAU,IAAWA,OAAS,EAASA,EAAO+G,QACnF06I,EAAgB,eAASzhJ,KAAYA,EAAOiF,QAAQ,MAAQ,GAAKjF,EAAOiF,QAAQ,MAAQ,GACxFy8I,EAAsB,gBAAkB1hJ,GAAU,iBAAmB,OAASA,QAAU,IAAWA,OAAS,EAASA,EAAOoF,MAC5Hu8I,EAAsBX,GAAkBS,GAAiBC,EAC7D/6I,KAAK46I,eAAiBI,EAAsB3hJ,EAAS,gBAAcwI,IAC/D,IAAItF,EAAOyD,KAAKJ,QAAQiC,EAAOxI,GAC/B,OAAO,QAAOoK,cAAclH,GAAM,MAG1C0+I,kBAAmB,SAAS1+I,GACxB,IAAIlD,EAAS2G,KAAKk4I,oBAClB,GAAI,eAAS7+I,GAAS,CAClB,IAAIwyI,EAAYxyI,EAAOwC,MAAM,KACzBE,EAAO,QAAO+vI,QAAQvvI,EAAMlD,GAEhC,OADAwyI,EAAU,GAAKA,EAAU,IAAM,IAAMA,EAAU,GACxC9vI,EAAO,EAAI8vI,EAAU,GAAKA,EAAU,GAE3C,IAAIqP,EAAQ,QAAOpP,QAAQvvI,GAC3B,OAAO2+I,EAAQ,EAAI,IAAM,IAGjCC,aAAc,SAAS5+I,EAAM6+I,GACzB,IAAI/hJ,EAAS2G,KAAKi7I,kBAAkB1+I,GAChC8+I,EAAqB,QAAOC,wBAC5BC,EAAQv7I,KAAKw7I,UAAUniJ,GACvB4F,EAAS1C,EACb,GAAIg/I,EAAM3hJ,OAAQ,CACd,IAAI6hJ,EAAcF,EAAM,GACpBG,EAAe,IAAIpyH,OAAO,IAAM,eAAaiyH,EAAM,IAAM,IAAM,KAAM,KACrEI,EAAkB,IAAIryH,OAAO,KAAO,eAAa8xH,EAAe,GAAKC,GAAsB,IAAK,KACpGp8I,EAASA,EAAO9D,QAAQsgJ,EAAa,IAAItgJ,QAAQugJ,EAAc,IAAIvgJ,QAAQwgJ,EAAiB,IAEhG,OAAO18I,GAEXu8I,UAAW,SAASniJ,GAChB,IAAIuxB,EAAe,iBAAiBC,KAAKxxB,GACrCwJ,EAAU+nB,GAAgBA,EAAa,GAAGjrB,OAC9C,OAAOtG,EAAOwC,MAAMgH,GAAS/G,KAAI,SAAU8/I,GACvC,OAAOA,EAAKzgJ,QAAQ,KAAM,QAGlC0gJ,qBAAsB,SAASh6I,EAAOi6I,GAClC,GAAI,eAAUj6I,GAAQ,CAClB,IAAIk6I,EAAWl6I,EAAM8P,WACjBmmI,EAAwBiE,EAASz9I,QAAQ,KAC7C,GAAIy9I,GAAYjE,GAAyB,EAAG,CACxC,IAAI9lE,EAAc/d,WAAW8nF,EAAS/oI,OAAO,EAAG8kI,EAAwBgE,EAAe,IACvF,OAAOt4I,MAAMwuE,GAAenwE,EAAQmwE,GAG5C,OAAOnwE,GAEXu3I,UAAW,SAAS78I,EAAMk9C,EAAW7lC,GACjC,IAAI+lI,EAAa35I,KAAK45I,qBAAqBr9I,EAAMk9C,EAAW7lC,GACxDva,EAAS2G,KAAKk4I,oBACd8D,EAAiBviG,EAAUoR,QAAUpR,EAAUtnB,IAC/C6/C,EAAchyE,KAAKi8I,gBAAgBtC,EAAYtgJ,GAC/CyiJ,GAAgBziJ,EAAO+G,QAAUJ,KAAKk8I,oBAAoBvC,GAAY7wI,IACtEooF,EAAiBlf,IAAgBhyE,KAAKu4I,aACtCrM,EAAmB,QAAOC,sBAC1BgQ,EAA2BvoI,IAASs4H,GAAoB,IAAM4P,EAC9DM,GAA2BJ,IAAmB9qD,GAAkBt9E,IAASwiI,KAAUp2I,KAAKg1I,mBAAmB2E,IAAe35I,KAAK05I,QAAQ9lI,GAC3I,IAAIuoI,IAA4BC,IAG5B,KAAOp8I,KAAKm7I,aAAaxB,KACzB3nE,EAAcxgE,KAAK8B,IAAI,EAAItT,KAAKu4I,gBAEhC/0I,MAAMwuE,IAAV,CAGA,IAAInwE,EAAQ,OAASmwE,EAAchyE,KAAKu4I,aAAevmE,EAEvD,OADAA,EAAc8pE,EAAe97I,KAAK67I,qBAAqBh6I,EAAOi6I,GAAgB9pE,GACtE34E,EAAO+G,QAAUJ,KAAKi6I,mBAAqBvO,GAAmB15D,EAAa8pE,GAAgB9pE,IAEvGiqE,gBAAiB,SAAS1/I,EAAMlD,GAC5B,IAAI0C,EAAO,QAAO+vI,QAAQvvI,GAAO,OAASlD,QAAU,IAAWA,OAAS,EAASA,EAAOwG,YAAcxG,GAClGgjJ,EAAmBr8I,KAAKm7I,aAAa5+I,GAAM,GAC3Cy1E,EAAchyE,KAAKm6I,OAAOkC,EAAkBhjJ,GAC5CijJ,EAAkBtqE,EAAc,GAAK,EAAI,EACzCuqE,EAAsB,eAAUvqE,IAAgBj2E,IAASugJ,EAAkBvgJ,EAAOi2E,EAAcA,EACpG,OAAOuqE,GAEXvH,mBAAoB,SAASz4I,GACzB,IAAKyD,KAAK22I,mBACN,OAAO32I,KAAKC,SAAS1D,GAEzB,IAAIqwI,EAAQ5sI,KAAK43I,SACbl7H,EAAQ,QAAOyvH,sBACfqQ,EAAax8I,KAAKu3I,uBAAuBh7I,GACzC+wI,EAAiBkP,GAAc,GAAKA,EAAa5P,EAAM/hF,MACvDuiF,EAAYptI,KAAKm7I,aAAa5+I,GAAM,GAAMV,MAAM6gB,GACpD,IAAK4wH,GAAkB,IAAMF,EAAUxzI,OACnC,OAAO,EAEX,IAAI6iJ,EAAcrP,EAAU,GAAGxzI,OAC3BP,EAAS2G,KAAKk4I,oBACdmC,IAAmBhhJ,EAAO+G,OAC1ByoD,GAAawxF,GAAkBr6I,KAAKk8I,oBAAoBl8I,KAAKk4I,oBAAqB37I,GAClFmgJ,IAAqBrC,GAAwB,gBAAQoC,EAAa5zF,EAAUhgD,IAAKggD,EAAU//C,KAC3F6zI,EAAe,MAAQvP,EAAU,GAAGphH,OAAOywH,EAAc,GAC7D,OAAOC,IAAuBC,IAAiBF,IAEnDvH,gBAAiB,SAASrzI,GACtB,IAAIgH,EAAM,eAAc7I,KAAK4Y,OAAO,QAAQ,KACxC9P,EAAM,eAAc9I,KAAK4Y,OAAO,OAAQ,KAC5C,OAAO,gBAAQ/W,EAAOgH,EAAKC,IAE/B8zI,cAAe,SAASrgJ,GACpB,IAAI28I,EAAiB,QAAOz1I,cAAclH,GAAM,GAC5Cm8I,EAAW7L,GAAoB7sI,KAAK63I,eAAgBqB,EAAgBl5I,KAAK43I,SAAU53I,KAAKk4I,qBAC5Fl4I,KAAK6yI,SAAST,IAAI71I,GAClByD,KAAK+yI,+BACL/yI,KAAK68I,gBAAkBtgJ,EAClByD,KAAKi4I,iBACNj4I,KAAK43I,OAAOc,IAGpB/B,iBAAkB,WACd,QAAS32I,KAAK4Y,OAAO,WAAa5Y,KAAK4Y,OAAO,oBAElDkkI,iBAAkB,WACd,IAAIC,EAAe,WAAa/8I,KAAK4Y,OAAO,QACxCokI,EAAY,YAAcpzC,GAAA,KAAQC,OAAOC,WACzC9pG,KAAK22I,oBAAsBoG,EAC3B/8I,KAAKi9I,cAAcD,GAAah9I,KAAK2xI,sBAAwB,OAAS,OAEtE3xI,KAAKC,YAGbi9I,QAAS,SAAShhJ,GACd,OAAO,eAASA,IAAQ,IAAMA,EAAItC,QAEtCy/I,WAAY,SAASj9H,GACjB,GAAKA,EAAL,CAGA,IAAIs8H,EAAW/L,GAAmB3sI,KAAK43I,SAAUx7H,GAC7C8xH,EAAgBR,GAAqBgL,EAAU14I,KAAK63I,eAAgB73I,KAAKk4I,qBAC7El4I,KAAK43I,OAAO1J,KAEhB+K,iBAAkB,SAASr1I,GACvB,IAAI2V,EAAU,gBAAiB3V,GAC3Bu5I,EAAgB,gBAAoBv5I,IAAMA,EAAEw5I,QAAUx5I,EAAE4pE,WAAaxtE,KAAKk9I,QAAQ3jI,GAClF8jI,EAAa9jI,IAAY88H,GACzBI,EAAkBz2I,KAAK22I,mBAC3B,OAAOF,IAAoB0G,IAAkBE,GAEjDC,aAAc,WACVt9I,KAAKC,WACLD,KAAKu9I,oBAETA,iBAAkB,WACdv9I,KAAKw9I,cACLx9I,KAAKy9I,yBACDz9I,KAAK22I,oBACL32I,KAAK09I,0BAGbD,uBAAwB,WACpB,OAAaxsF,IAAIjxD,KAAK6yI,SAAU,IAAMoD,KAE1C0H,kBAAmB,SAAS/5I,GACxB,IAAIg6I,EAAYh6I,EAAE8lE,eAAiB9lE,EAAE8lE,cAAck0E,UACnD,OAAI,eAAUA,GACH,oBAAsBA,EAEtB59I,KAAK69I,gBAGpBH,uBAAwB,WACpB,IAAIjK,EAASzzI,KAAK6yI,SAClB,OAAa/oI,GAAG2pI,EAAQ,gBAAa6C,GAAaL,IAA6B,SAASryI,GACpF5D,KAAK89I,aAAal6I,GAClB5D,KAAK69I,gBAAiB,GACxBriI,KAAKxb,OACP,OAAa8J,GAAG2pI,EAAQ,gBAAa,UAAWwC,IAA6B,WACpEj2I,KAAK23I,gBACN33I,KAAK23I,cAAgBj4G,WAAW,WAC5B1/B,KAAK23I,mBAAgB,EACrB33I,KAAK43I,OAAOlK,GAAqB1tI,KAAK43I,SAAU53I,KAAK63I,eAAgB73I,KAAKk4I,uBAC5E18H,KAAKxb,MAAOu2I,MAEpB/6H,KAAKxb,OACP,OAAa8J,GAAG2pI,EAAQ,aAAc,WAClCzzI,KAAK03I,qBACPl8H,KAAKxb,QAEX03I,kBAAmB,WACft9E,aAAap6D,KAAK23I,eAClB33I,KAAK23I,mBAAgB,GAEzBpD,wBAAyB,WACrB,IAAKv0I,KAAK22I,mBACN,OAAO32I,KAAKC,YAGpB+5I,gBAAiB,SAAS54I,GACtB,IAAI7E,EAAOyD,KAAK63I,eAAe7jI,MAAM5S,GACrC,OAAO7E,IAASyD,KAAK05I,QAAQn9I,GAAM,IAEvCm9I,QAAS,SAASx9I,EAAK6hJ,GACnB,IAAIC,EAA0B,eAAa,QAAO7R,uBAC9C8R,EAAe,SAAWD,EAA0B,MACpDE,EAAa,IAAI50H,OAAO20H,EAAc,KAC1C,OAAOC,EAAWp6H,KAAK5nB,KAAS6hJ,GAAY/9I,KAAKk9I,QAAQhhJ,KAE7Dw4I,YAAa,SAASn4I,GAClB,OAAKyD,KAAK22I,mBAGH32I,KAAKu4I,aAFDv4I,KAAKC,SAAS1D,IAI7B2/I,oBAAqB,SAAS3/I,GAC1B,IAAI4hJ,EAAgBn+I,KAAKi7I,kBAAkB1+I,GACvC6hJ,EAAqBhT,GAAsB+S,GAAe/8I,MAC1Di9I,GAAa5S,GAAa0S,EAAeC,GAAoB,IAAM,IAAIjjJ,QAAQ,SAAU,IACzFmjJ,EAAeD,EAAUljJ,QAAQ,UAAW,MAAMvB,OAClDkiJ,EAAeuC,EAAUzkJ,OAC7B,MAAO,CACHiP,IAAKy1I,EACLx1I,IAAKgzI,IAGbjF,YAAa,SAASjzI,GAClB,GAAK5D,KAAK22I,mBAAV,CAGA,IAAI/J,EAAQ5sI,KAAK43I,SACjB,GAAIhL,EAAM/hF,QAAU+hF,EAAMz6G,IAAK,CAC3B,GAAI,gBAAiBvuB,KAAOyyI,GAExB,YADAr2I,KAAKu+I,mBAAmB36I,EAAGgpI,GAAO,GAGlC5sI,KAAK43I,OAAOlK,GAAqB,EAAG1tI,KAAK63I,eAAgB73I,KAAKk4I,sBAGtEl4I,KAAKu+I,mBAAmB36I,EAAGgpI,KAE/B2R,mBAAoB,SAAS36I,EAAGgpI,EAAO4R,GACnC,IAAIp6E,GAAY,EAAI,eAAcpkE,KAAKu4I,aAAc,MACrD,GAAIv4I,KAAKk1I,gBAAgB9wE,KACrBpkE,KAAKu4I,aAAen0E,EAChBo6E,GAAsB,CACtB,IAAInlJ,EAAS2G,KAAKk4I,oBACd9J,EAAepuI,KAAK63I,eACxB73I,KAAKs4I,wBACL10I,EAAEu5D,iBACF,IAAIshF,EAAcz+I,KAAK63I,eACnBz7H,EAAS+xH,GAAeC,EAAcqQ,EAAaplJ,GACvDuzI,EAAQD,GAAmBC,EAAOxwH,GAClC,IAAIsiI,EAAoBhR,GAAqBd,EAAO6R,EAAaplJ,GACjE2G,KAAK43I,OAAO8G,KAIxBC,qBAAsB,SAASpiJ,EAAMqwI,GACjC,IAAIgS,EAAiB5+I,KAAKg5I,eAAiB3C,IAAa95I,EAAKyvB,OAAO4gH,EAAM/hF,MAAQ,KAAOurF,GACzF,OAAOwI,EAAiB5+I,KAAK45I,qBAAqBr9I,EAAM,CACpDsuD,MAAO+hF,EAAM/hF,MAAQ,EACrB14B,IAAKy6G,EAAM/hF,OACZ,IAAMtuD,GAEb+7I,sBAAuB,WACnB,IAAIj/I,EAAS2G,KAAKk4I,oBACd52I,EAAStB,KAAK00I,cACd5H,EAAY9sI,KAAKJ,QAAQ0B,EAAQjI,IAAW,GAChD2G,KAAK48I,cAAc9P,IAEvBgR,aAAc,SAASl6I,GACnB,IAAIs1I,EAAiBl5I,KAAK63I,eACtBjL,EAAQ5sI,KAAK43I,SACbiH,EAAmB7+I,KAAK2+I,qBAAqBzF,EAAgBtM,GAC7DkS,EAAkBD,IAAqB3F,EAE3C,GADAA,EAAiB2F,GACZ7+I,KAAK29I,kBAAkB/5I,IAAM5D,KAAKg1I,mBAAmB6J,GAKtD,OAJA7+I,KAAK68I,gBAAkB3D,OACnB4F,GACA9+I,KAAKs4I,yBAIb,IAAIyG,EAAiB,QAAOt7I,cAAczD,KAAK68I,iBAAiB,KAAU3D,EAC1E,GAAI6F,EAAgB,CAChB,IAAIl9I,EAAQ7B,KAAKo5I,UAAUF,EAAgBtM,EAAO,IAC9C,eAAU/qI,KACV7B,KAAKu4I,aAAe12I,GAG5B7B,KAAKs4I,yBAETlF,mBAAoB,WACZpzI,KAAK22I,mBACL32I,KAAK+yI,+BAEL/yI,KAAKC,SAASnB,MAAMkB,KAAME,YAGlCyyI,aAAc,WAKV,OAJI3yI,KAAK22I,qBACL32I,KAAKu4I,aAAev4I,KAAK4Y,OAAO,SAChC5Y,KAAKs4I,yBAEFt4I,KAAKC,YAEhBm4I,mBAAoB,WAChB,IAAIxF,EAAa5yI,KAAK63I,eACtB73I,KAAKu4I,aAAev4I,KAAKo5I,UAAUxG,EAAY5yI,KAAK43I,WAExDS,mBAAoB,WAChB,GAAKr4I,KAAK22I,mBAAV,CAGA,IAAIqI,EAAch/I,KAAKm7I,aAAan7I,KAAK63I,gBACrC7lE,EAAcgtE,EAAch/I,KAAK00I,cAAgB,KAChD,eAAU1iE,GAIfhyE,KAAKu4I,aAAe,gBAAavmE,EAAahyE,KAAK4Y,OAAO,OAAQ5Y,KAAK4Y,OAAO,QAH1E5Y,KAAKu4I,aAAevmE,IAK5BwiE,yBAA0B,SAAS5wI,GAC/B,IAAK5D,KAAK22I,mBACN,OAAO32I,KAAKC,SAAS2D,GAEzB,IAAIgpI,EAAQ5sI,KAAK43I,SACjB53I,KAAK4zI,sBAAsBhwI,GAC3B5D,KAAK84I,SAAW,KAChB94I,KAAKg5I,aAAe,KACpBh5I,KAAKo4I,qBACLp4I,KAAKq4I,qBACLr4I,KAAK4Y,OAAO,QAAS5Y,KAAKu4I,cACtB3L,GACA5sI,KAAK43I,OAAOhL,IAGpB1+B,eAAgB,SAAS7+D,GACrB,OAAQA,EAAKztC,MACT,IAAK,SACL,IAAK,kBACD5B,KAAK88I,mBACL98I,KAAK66I,gBACL76I,KAAKu9I,mBACLv9I,KAAK2yI,eACL3yI,KAAKi/I,2BACLj/I,KAAKk/I,iBACL,MACJ,IAAK,MACL,IAAK,MACDl/I,KAAKq4I,qBACLr4I,KAAKC,SAASovC,GACd,MACJ,QACIrvC,KAAKC,SAASovC,KAG1BmuG,YAAa,kBACFx9I,KAAK68I,uBACL78I,KAAK84I,gBACL94I,KAAKg5I,oBACLh5I,KAAKu4I,oBACLv4I,KAAKi4I,gBACZ79E,aAAap6D,KAAK23I,sBACX33I,KAAK23I,eAEhBxwC,OAAQ,WACJnnG,KAAKw9I,cACLx9I,KAAKC,cAGE,MCrpBf,eAAkB,cAAe,IAClB,UCFA,M,uCCWXk/I,GAAc7lJ,GAAQA,EAAKW,WAAa,EACxCmlJ,GAAc,CAAC9lJ,EAAMuI,KACrB,IAAIpF,EAAMnD,EAAKY,UACXmlJ,EAAcC,GAAU,IAAKhmJ,GAC7B8qE,EAAW,gBAAa7iE,SAASM,GAAQw9I,EAAYx2I,IAAKw2I,EAAYv2I,KAC1ExP,EAAK44E,SAAS9N,EAAW,EAAG,GAC5B,IACIv7D,IAAKA,EACLC,IAAKA,GACLw2I,GAAU,KAAMhmJ,GAChBimJ,EAAS,gBAAa9iJ,EAAKoM,EAAKC,GACpCxP,EAAKotB,QAAQ64H,IAEbC,GAAkB,CAClBz9I,EAAGzI,GAAQA,EAAKa,WAAa,GAAK,EAAI,EACtCsY,EAAG,SACHN,EAAG,cACHG,EAAG6sI,GACH5sI,EAAG4sI,GACHjuI,EAAG,UACHyB,EAAG,WACHC,EAAG,WACHC,EAAG,aACHC,EAAG,aACHC,EAAG,mBAEHwV,GAAkB,OAAA9tB,EAAA,WAAO,GAAI,kBAAqB,CAClDsH,EAAG,CAACzI,EAAMuI,KACN,IAAItC,EAAQjG,EAAKa,WACb05G,EAAUt0G,GAAS,GACnBs0G,MAActyG,SAASM,IAG3BvI,EAAKovB,UAAUnpB,EAAQ,IAAM,KAEjC2R,EAAG,CAAC5X,EAAMuI,KACN,IAAI49I,EAAiBH,GAAU,KAAMhmJ,GAAMwP,IACvCjH,EAAQ49I,GACRnmJ,EAAK44E,SAAS54E,EAAKW,WAAa,GAEpCX,EAAKotB,QAAQ7kB,IAEjB+Q,EAAG,CAACtZ,EAAMuI,KACN,IAAI69I,EAAOpmJ,EAAKa,YAAc,GAC9Bb,EAAKovB,UAAU7mB,EAAQ,IAAM69I,EAAO,GAAK,KAE7CptI,EAAG8sI,GACH7sI,EAAG6sI,GACH3sI,EAAG,CAACnZ,EAAMuI,KACFA,EAAQ,GAGZvI,EAAKotB,QAAQptB,EAAKY,UAAYZ,EAAKqmJ,SAAWp+I,SAASM,KAE3DsQ,EAAG,CAAC7Y,EAAMuI,KACN,IAAI+9I,EAActmJ,EAAKG,cACnBomJ,EAAclmJ,OAAOkI,GAAOjI,OAC5BkmJ,EAAiBnmJ,OAAO2lJ,GAAU,IAAKhmJ,GAAMwP,KAAKlP,OAClDwqE,EAAW7iE,SAAS5H,OAAOimJ,GAAa5sI,OAAO,EAAG8sI,EAAiBD,GAAeh+I,GACtFvI,EAAKiB,YAAY6pE,MAGrB27E,GAAmBj2H,GAAe01H,GAAgB11H,IAAgB,KAAOA,GAClEk2H,GAAkB,CAACzjJ,EAAMouB,KA6BhC,IA5BA,IAAI1rB,EAAS0rB,EAAWtB,OAAOwB,KAAKtuB,GAChCsuD,EAAQ,EACR14B,EAAM,EACN8tH,EAAW,GACXvgC,EAAQ,SAASjkH,GACjBovD,EAAQ14B,EACRA,EAAM04B,EAAQ5rD,EAAOxD,GAAG7B,OACxB,IAAIiJ,EAAU8nB,EAAWzI,SAASzmB,EAAI,GAAGN,QAAQ,SAAU,IACvD6oE,EAAS+7E,GAAiBl9I,EAAQ,IACtCo9I,EAASh9I,KAAK,CACV7B,MAAO3F,EAAI,EACXykJ,OAAQr9I,IAAY5D,EAAOxD,GAC3BmxI,MAAO,CACH/hF,MAAOA,EACP14B,IAAKA,GAETtvB,QAASA,EACTtG,KAAM0C,EAAOxD,GACb0kJ,OAAQ,WACJ,IAAK,IAAIC,EAAOlgJ,UAAUtG,OAAQy1C,EAAO,IAAIxwC,MAAMuhJ,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC7EhxG,EAAKgxG,GAAQngJ,UAAUmgJ,GAE3B,OAAOf,GAAUz8I,EAAQ,MAAOwsC,IAEpCixG,OAAQ/3H,GAAgB1lB,EAAQ,KAAO,OACvCmhE,OAAQA,KAGPvoE,EAAI,EAAGA,EAAIwD,EAAOrF,OAAQ6B,IAC/BikH,EAAMjkH,GAEV,OAAOwkJ,GAEPX,GAAY,CAACz8I,EAASvJ,EAAMinJ,KAC5B,IAAIJ,EAAS,CACThuI,EAAG,CACCtJ,IAAK,EACLC,IAAK,MAETwJ,EAAG,CACCzJ,IAAK,EACLC,IAAK,IAETyJ,EAAG,CACC1J,IAAK,EACLC,IAAK,IAEToI,EAAG,CACCrI,IAAK,EACLC,IAAK,IAET03I,GAAI,CACA33I,IAAK,EACLC,IAAK,IAAI/O,KAAKT,EAAKG,cAAeH,EAAKW,WAAa,EAAG,GAAGC,WAE9DuY,EAAG,CACC5J,IAAK,EACLC,IAAK,GAET6J,EAAG,CACC9J,IAAK,EACLC,IAAK,IAET8J,EAAG,CACC/J,IAAK,EACLC,IAAK,IAET+J,EAAG,CACChK,IAAK,EACLC,IAAK,IAETgK,EAAG,CACCjK,IAAK,EACLC,IAAK,IAETiK,EAAG,CACClK,IAAK,EACLC,IAAK,KAET/G,EAAG,CACC8G,IAAK,EACLC,IAAK,IAGb,OAAOq3I,EAAOI,GAAiB19I,IAAYs9I,EAAOM,SAE3CC,GAA6B,CAAClgJ,EAAW2kD,KAChD,IAAK,IAAI1pD,EAAI,EAAGA,EAAI+E,EAAU5G,OAAQ6B,IAAK,CACvC,IAAIklJ,EAAengJ,EAAU/E,GAAGmxI,MAAMz6G,KAAOgzB,EAC7C,IAAK3kD,EAAU/E,GAAGykJ,QAAUS,EACxB,OAAOllJ,EAGf,OAAO,M,0BChKPmlJ,GAAkB,CAAC,OAAQ,MAAO,QAAS,OAC3CC,GAAkB,CAAC,QAAS,UAAW,UAAW,gBAClDC,GAAa,IACbC,GAAU,GAAKD,GAAa,GAC5BE,GAAW,IAAMD,GACjBE,GAAkB,SAAS5nJ,GAC3B,IAAI0G,SAAoB1G,EACxB,MAAI,WAAa0G,EACN,SAEP,WAAaA,QAAc,IAAW1G,EAAOoF,KACtCpF,EAAOoF,KAEX,MAEPyiJ,GAAY,CACZC,kBAAmB,CAAC,OAAQ,OAAQ,YACpCL,WAAYA,GACZC,QAASA,GACTC,SAAUA,GACVI,0BAA2B,IAAIrnJ,KAAK,KAAM,EAAG,GAC7CsnJ,0BAA2B,WACvB,IAAIpvE,EAAU,IAAIl4E,KAClB,OAAO,IAAIA,KAAKk4E,EAAQx4E,cAAgB,GAAIw4E,EAAQh4E,WAAYg4E,EAAQ/3E,UAAW,GAAI,GAAI,IAFpE,GAI3BonJ,aAAc,CACVhoJ,KAAM,CACFioJ,mBAAoB,WAChB,MAAO,cAEXv1I,WAAY40I,IAEhBx1G,KAAM,CACFm2G,mBAAoB,WAChB,MAAO,SAEXv1I,WAAY60I,IAEhBjtE,SAAU,CACN2tE,mBAAoB,WAChB,IAAIC,EAcJ,OAbE,WACE,IAAI/N,EAAS,eAAE,WAAW/hF,KAAK,OAAQ,YACvC+hF,EAAOrB,IAAI,qBACPqB,EAAOrB,QACPoP,EAAkB,qBAJxB,GAOGA,IACDA,EAAkB,wBAEtBN,GAAUI,aAAa1tE,SAAS2tE,mBAAqB,WACjD,OAAOC,GAEJA,GAEXx1I,WAAY,IAAI40I,MAAoBC,KAExC,iBAAkB,CACdU,mBAAoB,WAChB,MAAO,uBAEXv1I,WAAY,IAAI40I,GAAiB,QAAS,UAAW,aAG7Da,YAAa,CACTnoJ,KAAM,YACN8xC,KAAM,YACNwoC,SAAU,sBAEd8tE,mBAAoB,CAChBpoJ,KAAM,OACN8xC,KAAM,OACNwoC,SAAU,kBAEd+tE,qBAAsB,SAASroJ,EAAMmF,GACjC,IAAIoE,EAAUq+I,GAAUI,aAAa7iJ,GAAM8iJ,qBAC3C,OAAO,GAAkB7uE,cAAcp5E,EAAMuJ,IAEjD++I,uBAAwB,SAASrlJ,GAC7B,IAAIjD,EAAO,GAAkBm4E,WAAWl1E,GACxC,OAAO,eAAOjD,GAAQA,OAAO,GAEjCuoJ,eAAgB,SAASroJ,EAAMqD,GAC3B,OAAO,IAAI9C,KAAKP,EAAMqD,EAAQ,EAAG,GAAG3C,WAExC4nJ,WAAY,SAASp/E,EAAU0B,EAAU/qE,GACrC,IAAK+qE,EACD,OAAOA,GAAY,KAEvB,IAAK1B,GAAYl/D,MAAMk/D,EAAS3+D,WAAY,CACxC,IAAIsN,EAAM,IAAItX,KAAK,MACnB2oE,EAAW,IAAI3oE,KAAKsX,EAAI5X,cAAe4X,EAAIpX,WAAYoX,EAAInX,WAE/D,IAAI+E,EAAS,IAAIlF,KAAK2oE,EAASkQ,WAC3BmvE,EAAab,GAAUI,aAAajoJ,GAKxC,OAJA,eAAK0oJ,EAAW/1I,YAAY,WACxB,IAAIg2I,EAAgBd,GAAUe,qBAAqBjiJ,MACnDf,EAAO+iJ,EAAc1B,QAAQl8E,EAAS49E,EAAch+E,cAEjD/kE,GAEXijJ,uBAAwB,SAASC,GAC7B,IAEI1mJ,EAFA2mJ,EAAe,EACfC,EAAuB,EAE3B,IAAK5mJ,EAAI,EAAGA,EAAI0mJ,EAAavoJ,SAAU6B,EAC/B0mJ,EAAa1mJ,GAAG7B,OAASyoJ,IACzBD,EAAe3mJ,EACf4mJ,EAAuBF,EAAa1mJ,GAAG7B,QAG/C,OAAOwoJ,GAEX5gJ,oBAAqB,SAASnI,GAC1B,OAAO,QAAiBmI,oBAAoBnI,IAEhDoI,kBAAmB,SAASpI,GACxB,OAAO,QAAiBoI,kBAAkBpI,IAE9CipJ,eAAgB,SAASjpJ,EAAQmQ,EAAY4e,GACzC,IAAIm6H,EAAetB,GAAgB5nJ,GAC/BwD,EAAQ,EACP0lJ,IAAgBrB,GAAU1/I,oBAAoB+gJ,KAC/C1lJ,EAAQqkJ,GAAUgB,uBAAuB14I,IAE7C,IAAIg5I,EAAc,IAAIzoJ,KAAK,KAAM8C,EAAO,GAAI,GAAI,GAAI,GAAI,KACxD,IAAK0lJ,GAAgBrB,GAAUz/I,kBAAkB8gJ,GAAe,CAC5D,IAAIjpJ,EAAOkpJ,EAAYtoJ,UAAYsoJ,EAAY7C,SAAWuB,GAAUgB,uBAAuB95H,GAC3Fo6H,EAAY97H,QAAQptB,GAExB,OAAOkpJ,GAEXC,cAAe,SAASnpJ,GACpBA,EAAKopJ,WAAW,GAChBppJ,EAAKqpJ,gBAAgB,KAG7BzB,GAAUe,qBAAuB,CAC7BzoJ,KAAM,CACFwqE,OAAQ,cACRs8E,OAAQ,cACRzgJ,UAAW,SAASgC,EAAOvI,GACvB,IAAIspJ,EAAa,IAAI7oJ,KAAKT,EAAKyK,WAE/B,OADA6+I,EAAWroJ,YAAYsH,GAChB,QAAiBxI,OAAOupJ,EAAY,SAE/Cr9H,gBAAY,EACZC,cAAU,GAEd/oB,IAAK,CACDunE,OAAQ,UACRs8E,OAAQ,UACRzgJ,UAAW,SAASgC,EAAOvI,GACvB,IAAIspJ,EAAa,IAAI7oJ,KAAKT,EAAKyK,WAE/B,OADA6+I,EAAWl8H,QAAQ7kB,GACZ,QAAiBxI,OAAOupJ,EAAY,MAE/Cr9H,WAAY,EACZC,cAAU,GAEd3oB,MAAO,CACHmnE,OAAQ,WACRs8E,OAAQ,WACRzgJ,UAAW,SAASgC,GAChB,OAAO,QAAiBrD,gBAAgBqD,IAE5C0jB,WAAY,EACZC,SAAU,IAEdjmB,MAAO,CACHykE,OAAQ,WACRs8E,OAAQ,WACRzgJ,UAAW,SAASgC,GAChB,OAAO,QAAiBxI,OAAO,IAAIU,KAAK,EAAG,EAAG,EAAG8H,GAAQ,SAE7D0jB,WAAY,EACZC,SAAU,IAEdzkB,QAAS,CACLijE,OAAQ,aACRs8E,OAAQ,aACRzgJ,UAAW,SAASgC,GAChB,OAAO,QAAiBxI,OAAO,IAAIU,KAAK,EAAG,EAAG,EAAG,EAAG8H,GAAQ,WAEhE0jB,WAAY,EACZC,SAAU,IAEdxkB,QAAS,CACLgjE,OAAQ,aACRs8E,OAAQ,aACRzgJ,UAAW,SAASgC,GAChB,OAAO,QAAiBxI,OAAO,IAAIU,KAAK,EAAG,EAAG,EAAG,EAAG,EAAG8H,GAAQ,WAEnE0jB,WAAY,EACZC,SAAU,IAEd/iB,aAAc,CACVuhE,OAAQ,kBACRs8E,OAAQ,kBACRzgJ,UAAW,SAASgC,GAChB,OAAO,QAAiBxI,OAAO,IAAIU,KAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG8H,GAAQ,gBAEtE0jB,WAAY,EACZC,SAAU,MAGH,U,iECrMXq9H,GAAe,cACfC,GAAkB,eAClBC,GAAsB,CACtBC,QAASC,GAAA,KACTC,UAAWD,GAAA,KACXngH,MAAOmgH,GAAA,KACPE,SAAU,iBAEVC,GAAY,QAAarzF,QAAQ,CACjC42C,mBAAoB,WAChB,OAAO,OAAAlsG,EAAA,WAAOuF,KAAKC,WAAY,CAC3BojJ,SAAS,EACTriH,WAAW,EACXypB,UAAW,aACX64F,aAAc,KACdN,QAAS,KACTE,UAAW,KACXpgH,MAAO,KACPqgH,SAAU,QAGlBrwC,QAAS,WACL9yG,KAAKC,WACLD,KAAK6W,WAAWsB,SAAS2qI,IACzB9iJ,KAAKujJ,wBAETA,qBAAsB,WAElB,GADAvjJ,KAAKwjJ,wBACDxjJ,KAAK4Y,OAAO,YAAhB,CAGA,IAAI25C,EAAOvyD,KAAKuyD,KAChBvyD,KAAKyjJ,mBACL,eAAKV,GAAqB,SAASzxF,EAAYqiD,GAC3C,IAAI7hD,EAAS9xD,KAAKiyD,sBAAsBX,EAAY,CAChD2wB,QAASjiF,OAEb2zG,EAAY,gBAAaA,EAAWphD,GACpC,OAAazoD,GAAG9J,KAAK6W,WAAY88F,EAAW3zG,KAAK0jJ,YAAY,SAAU9/I,GACnE,OAAOkuD,EAAO,CACVE,MAAOpuD,QAGjB4X,KAAKxb,SAEXyjJ,iBAAkB,WACdzjJ,KAAK0jJ,WAAa,CACdL,QAASrjJ,KAAK4Y,OAAO,WACrB0qI,aAActjJ,KAAK4Y,OAAO,gBAC1B6xC,UAAWzqD,KAAK4Y,OAAO,aACvBooB,UAAWhhC,KAAK4Y,OAAO,eAG/B4qI,qBAAsB,WAClB,OAAavyF,IAAIjxD,KAAK6W,WAAY,IAAMgsI,KAE5C30C,eAAgB,SAAS7+D,GACrB,OAAQA,EAAKztC,MACT,IAAK,WACL,IAAK,UACL,IAAK,YACL,IAAK,QACL,IAAK,WACL,IAAK,UACL,IAAK,YACL,IAAK,eACL,IAAK,YACD5B,KAAKwjJ,uBACLxjJ,KAAKujJ,uBACL,MACJ,IAAK,aACD,MACJ,QACIvjJ,KAAKC,SAASovC,KAG1BmiG,cAAe,WACX,OAAO,KAGf,gBAAK4R,GAAWP,IACD,UC9FXc,GAA2B,wBAC3BC,GAA0C,uCAC1CC,GAAsC,mCACtCC,GAAyC,sCACzCC,GAAqC,kCACrCC,GAAyC,sCACzCC,GAA0C,6BAC1CC,GAAY,OAAOn0F,QAAQ,CAC3B42C,mBAAoB,WAChB,OAAO,OAAAlsG,EAAA,WAAOuF,KAAKC,WAAY,CAC3B67C,QAAS,KACTqoG,eAAgB,KAChB5nJ,KAAM,MAGdorG,MAAO,WACH3nG,KAAKC,WACLD,KAAK6nG,gBAETA,aAAc,WACV7nG,KAAKokJ,aAAepkJ,KAAKiyD,sBAAsB,WAC/CjyD,KAAKqkJ,oBAAsBrkJ,KAAKiyD,sBAAsB,mBAE1Do3C,YAAa,WACTrpG,KAAKC,WACLD,KAAK6W,WAAWsB,SAASwrI,IACzB3jJ,KAAKskJ,iBACLtkJ,KAAKukJ,kBAETD,eAAgB,WACZ,IAAI3gJ,EAAO3D,KACPyqD,EAAYzqD,KAAK4Y,OAAO,eAAiB,EAAI,EACjD5Y,KAAKwkJ,YAAcxkJ,KAAKiZ,iBAAiB,eAAE,OAAQ,cAAQ,CACvDw8B,mBAAmB,EACnBoG,KAAM,cACNC,QAAS,SAASl4C,GACdD,EAAKygJ,aAAa,CACd35F,WAAYA,EACZuH,MAAOpuD,KAGfo3H,mBAAoB,KAExB,IAAIypB,EAAczkJ,KAAKwkJ,YAAY3tI,WAAWsB,SAAS2rI,IAAwC3rI,SAASyrI,IACxG5jJ,KAAK0kJ,YAAc1kJ,KAAKiZ,iBAAiB,eAAE,OAAQ,cAAQ,CACvDw8B,mBAAmB,EACnBoG,KAAM,eACNC,QAAS,SAASl4C,GACdD,EAAKygJ,aAAa,CACd35F,UAAWA,EACXuH,MAAOpuD,KAGfo3H,mBAAoB,KAExB,IAAI2pB,EAAc3kJ,KAAK0kJ,YAAY7tI,WAAWsB,SAAS4rI,IAAoC5rI,SAAS0rI,IACpG7jJ,KAAK4kJ,SAAW5kJ,KAAKiZ,iBAAiB,eAAE,OAAOd,SAAS8rI,IAA0C,cAAQ,CACtGxuG,mBAAmB,EACnBqG,QAAS,SAASl4C,GACdD,EAAK0gJ,oBAAoB,CACrBryF,MAAOpuD,KAGfo3H,mBAAoB,KAExB,IAAI6pB,EAAW7kJ,KAAK4kJ,SAAS/tI,WAC7B7W,KAAK6W,WAAWkjB,OAAO0qH,EAAaI,EAAUF,IAElDJ,eAAgB,WACZvkJ,KAAK4kJ,SAAShsI,OAAO,OAAQ5Y,KAAK4Y,OAAO,UAE7CksI,aAAc,SAASC,EAAcljJ,GACjC,IAAImjJ,EAAa,IAAMD,EAAe,SAClCrmG,EAAS1+C,KAAKglJ,GACdtmG,IACAA,EAAO9lC,OAAO,WAAY/W,GAC1B68C,EAAO7nC,WAAW09C,YAAYyvF,GAAwCniJ,KAG9EqsG,eAAgB,SAAS7+D,GACrB,OAAQA,EAAKztC,MACT,IAAK,OACD5B,KAAKukJ,iBACL,MACJ,QACIvkJ,KAAKC,SAASovC,OAIf,OCrEX41G,SAAU,IACV,OACAC,GAA4B,yBAC5BC,GAAsB,mBACtBC,GAA4B,yBAC5BC,GAAuB,oBACvBC,GAA+B,4BAC/BC,GAAgC,6BAChCC,GAA8B,gBAAa,OAAgB,cAC3DC,GAA0B,iBAC1BC,GAAW,OAAO31F,QAAQ,CAC1B41F,aAAc,WACV,MAAO,QAEXh/C,mBAAoB,WAChB,OAAO,OAAAlsG,EAAA,WAAOuF,KAAKC,WAAY,CAC3B3G,KAAM,IAAIS,KACV07C,mBAAmB,EACnBtqC,aAAc,KACdy6I,cAAe,KACfvvG,YAAa,KACbu4B,SAAU,EACVpnB,SAAU,EACVq+F,qBAAqB,EACrBC,WAAY,IAAM,IAAI/rJ,QAG9BsvG,YAAa,WACTrpG,KAAKC,WACLD,KAAK+lJ,eAETA,YAAa,WACT/lJ,KAAK6W,WAAWkjB,OAAO/5B,KAAK88D,gBAC5B98D,KAAKgmJ,8BACLhmJ,KAAKimJ,cACLjmJ,KAAKkmJ,uBACLlmJ,KAAK2yI,eACL3yI,KAAKmmJ,iBAETrpF,aAAc,WAMV,OALA98D,KAAKomJ,QAAU,eAAE,WACjBpmJ,KAAKsd,QAAQ,CACT1P,MAAO,OAAoBvU,OAAO,6BAClC2tG,KAAM,QACPhnG,KAAKomJ,SACDpmJ,KAAKomJ,SAEhBH,YAAa,WACTjmJ,KAAKqmJ,MAAQ,eAAE,WAAWjuI,SAASpY,KAAKomJ,SAKxC,IAJA,IAAIE,EAAU,CACVC,SAAUvmJ,KAAKwmJ,oBACfC,aAAc,MAETjsF,EAAW,EAAGoU,EAAW5uE,KAAK4Y,OAAO,YAAa4hD,EAAWoU,EAAUpU,IAAY,CACxF8rF,EAAQppI,IAAMld,KAAKy8D,aACnB,IAAK,IAAIiqF,EAAW,EAAGl/F,EAAWxnD,KAAK4Y,OAAO,YAAa8tI,EAAWl/F,EAAUk/F,IAC5E1mJ,KAAKyiE,YAAY6jF,EAASI,KAItCjqF,WAAY,WACR,IAAIv/C,EAAM,aAAWkiB,cAAc,MAGnC,OAFAp/B,KAAKsd,QAAQ,OAAQ,MAAO,eAAEJ,IAC9Bld,KAAKqmJ,MAAM3oJ,IAAI,GAAG+hC,YAAYviB,GACvBA,GAEXypI,YAAa,SAASzpI,EAAK89C,GAClBh7D,KAAK4mJ,mBACN5mJ,KAAK6mJ,yBAET,eAAE3pI,GAAKld,KAAK4mJ,mBAAmB5rF,IAEnC6rF,uBAAwB,SAASxqI,GAC7Brc,KAAK4mJ,mBAAqB,OAASvqI,QAAc,IAAWA,EAAaA,EAAarc,KAAK4Y,OAAO,eAAiB,UAAY,UAEnIwjD,YAAa,SAASmqF,GAClB,IAAIvrF,EAAO,aAAW57B,cAAc,MAChCy4B,EAAQ,eAAEmD,GAQd,OAPAA,EAAK3I,UAAYryD,KAAK8mJ,oBAAoBP,GAC1CvrF,EAAKvJ,aAAa,aAAc,GAAkBihB,cAAc6zE,EAAU,QAAcQ,uBACxF,eAAY/rF,EAAMyqF,GAAyBc,GAC3CvmJ,KAAKsd,QAAQ,CACT0pF,KAAM,WACNp5F,MAAO5N,KAAKgnJ,iBAAiBT,IAC9B1uF,GACI,CACHmD,KAAMA,EACNnD,MAAOA,IAGf4K,YAAa,SAASkO,EAAQnN,GAC1B,IACI+iF,SAAUA,EACVE,aAAcA,EACdvpI,IAAKA,GACLyzD,EACA81E,GACA,QAAcQ,eAAeR,EAAcF,GAE/C51E,EAAO81E,aAAeF,EACtB,IACIvrF,KAAMA,EACNnD,MAAOA,GACP73D,KAAKo8D,YAAYmqF,GACjBp7I,EAAenL,KAAK4Y,OAAO,gBAC/B5Y,KAAK2mJ,YAAYzpI,EAAK89C,GAClB7vD,EACAA,EAAapD,OAAO/H,KAAKknJ,yBAAyBX,EAAU/iF,EAAW3L,IAEvEmD,EAAKqiC,UAAYr9F,KAAKmnJ,aAAaZ,GAEvC51E,EAAO41E,SAAWvmJ,KAAKonJ,iBAAiBb,IAE5CO,oBAAqB,SAASP,GAC1B,IAAIl0F,EAAY8yF,GAUhB,OATInlJ,KAAKqnJ,aAAad,KAClBl0F,GAAa,IAAI1qC,OAAO09H,MAExBrlJ,KAAKsnJ,kBAAkBf,IAAavmJ,KAAKunJ,eAAehB,MACxDl0F,GAAa,IAAI1qC,OAAOy9H,KAExBplJ,KAAKwnJ,aAAajB,KAClBl0F,GAAa,IAAI1qC,OAAOu9H,KAErB7yF,GAEX60F,yBAA0B,SAASX,EAAU/iF,EAAW3L,GACpD,MAAO,CACH9uD,MAAO,CACHxM,KAAMyD,KAAKmnJ,aAAaZ,GACxBjtJ,KAAMitJ,EACN9sC,KAAMz5G,KAAK2lJ,gBAEf3sI,UAAW,eAAiB6+C,GAC5Bz2D,MAAOoiE,IAGf2iF,cAAe,WACXnmJ,KAAKynJ,yBACL,OAAax2F,IAAIjxD,KAAKomJ,QAASZ,IAC/B,OAAa17I,GAAG9J,KAAKomJ,QAASZ,GAA6B,KAAM5hJ,IACxD,eAAEA,EAAEy2D,eAAepD,SAASmuF,KAC7BplJ,KAAK0nJ,iBAAiB,CAClB11F,MAAOpuD,EACP/B,MAAO,eAAE+B,EAAEy2D,eAAej2D,KAAKqhJ,SAK/CgC,uBAAwB,WACpBznJ,KAAK0nJ,iBAAmB1nJ,KAAKiyD,sBAAsB,gBAEvD+zF,4BAA6B,WACzB,IAAIJ,EAAgB5lJ,KAAK4Y,OAAO,iBAChC5Y,KAAK2nJ,sBAAwB9oJ,MAAMuY,QAAQwuI,GAAiB5lJ,KAAK4nJ,gCAAgChC,GAAiBA,GAAiB,QAEvIgC,gCAAiC,SAAShC,GACtC,OAAO,QAEXyB,aAAc,GACdC,kBAAmB,GACnBC,eAAgB,SAAShB,GACrB,IAAI/lJ,EAAY,CACZlH,KAAMitJ,EACN9sC,KAAMz5G,KAAK2lJ,gBAEf,OAAO3lJ,KAAK2nJ,sBAAsBnnJ,IAEtCgnJ,aAAc,GACdL,aAAc,GACdX,kBAAmB,GACnBY,iBAAkB,GAClBlB,qBAAsB,SAAS2B,GAC3B,GAAK7nJ,KAAK4Y,OAAO,qBAAjB,CAGAivI,EAAgBA,GAAiB7nJ,KAAK4Y,OAAO,iBAC7C,IAAIkvI,EAAoB9nJ,KAAK+nJ,oBACzBC,EAAoBhoJ,KAAKioJ,eAAeJ,GAC5CC,EAAkBzvI,YAAYktI,IAC9ByC,EAAkB7vI,SAASotI,MAE/BwC,kBAAmB,WACf,OAAO/nJ,KAAKomJ,QAAQtuI,KAAK,IAAI6P,OAAO49H,MAExC2C,aAAc,SAAS3B,GACnB,GAAIA,EAAU,CACV,IAAI1kJ,EAAQ7B,KAAK4Y,OAAO,SACpBwrD,EAAWviE,EAAQ,IAAI9H,KAAK8H,GAAS,IAAI9H,KAC7CqqE,EAAS19C,QAAQ6/H,EAASrsJ,WAC1BkqE,EAAS8N,SAASq0E,EAAStsJ,YAC3BmqE,EAAS7pE,YAAYgsJ,EAAS9sJ,eAC9B2qE,EAAS19C,QAAQ6/H,EAASrsJ,WAC1B8F,KAAK4Y,OAAO,QAASwrD,QAErBpkE,KAAK4Y,OAAO,QAAS,OAG7B+5H,aAAc,WACV,GAAK3yI,KAAK4Y,OAAO,uBAAjB,CAGA,IAAI/W,EAAQ7B,KAAK4Y,OAAO,SACpBuvI,EAAenoJ,KAAKioJ,eAAepmJ,GACnC7B,KAAKooJ,eACLpoJ,KAAKooJ,cAAc/vI,YAAYitI,IAEnC6C,EAAahwI,SAASmtI,IACtBtlJ,KAAKooJ,cAAgBD,IAEzBnB,iBAAkB,SAAS1tJ,GACvB,OAAO0G,KAAKmnJ,aAAa7tJ,IAE7B+uJ,uBAAwB,WACpB,IAAI/uJ,EAAO0G,KAAK4Y,OAAO,QACnB/P,EAAM7I,KAAK4Y,OAAO,OAEtB,OADAtf,EAAO,QAAcgvJ,iBAAiBtoJ,KAAK2lJ,eAAgBrsJ,GACpD,IAAIS,KAAK8O,GAAOvP,EAAOuP,EAAMA,EAAMvP,IAE9C2uJ,eAAgB,GAChBM,WAAY,GACZr6C,eAAgB,SAAS7+D,GACrB,IACIztC,KAAMA,EACNC,MAAOA,GACPwtC,EACJ,OAAQztC,GACJ,IAAK,QACD5B,KAAK2yI,eACL,MACJ,IAAK,gBACD3yI,KAAKkmJ,qBAAqBrkJ,GAC1B,MACJ,IAAK,cACD7B,KAAKynJ,yBACL,MACJ,IAAK,gBACL,IAAK,eACDznJ,KAAKszD,cACL,MACJ,IAAK,aACDtzD,KAAK6mJ,uBAAuBhlJ,GAC5B7B,KAAKC,SAASovC,GACd,MACJ,IAAK,aACDrvC,KAAKimJ,cACL,MACJ,QACIjmJ,KAAKC,SAASovC,OAIf,MCxQXm5G,GAA6B,0BAC7B,GAA4B,yBAC5BC,GAAQ,CACR5rJ,MAAO,GAASkzD,QAAQ,CACpB41F,aAAc,WACV,MAAO,SAEXh/C,mBAAoB,WAChB,OAAO,OAAAlsG,EAAA,WAAOuF,KAAKC,WAAY,CAC3ByoJ,oBAAgB,EAChB95E,SAAU,EACVpnB,SAAU,KAGlBu+F,YAAa,WACT/lJ,KAAKC,WACLD,KAAK2oJ,iBAET1C,YAAa,WACTjmJ,KAAKC,WACLD,KAAKomJ,QAAQtuI,KAAK,IAAI6P,OAAO,KAA4BxP,SAASqwI,KAEtEI,mBAAoB,OACpB5B,iBAAkB,SAAS1tJ,GACvB,OAAO,QAAiBD,OAAOC,EAAM,aAEzCqvJ,cAAe,WACX,IAAIE,EAAa,eAAE,QACfC,EAAU,eAAE,WAAW/uH,OAAO8uH,GAClC7oJ,KAAKomJ,QAAQ5qD,QAAQstD,GACrB,IAAK,IAAIpC,EAAW,EAAGl/F,EAAWxnD,KAAK4Y,OAAO,YAAa8tI,EAAWl/F,EAAUk/F,IAC5E1mJ,KAAK+oJ,kBAAkBrC,EAAUmC,IAGzCE,kBAAmB,SAASvlF,EAAWqlF,GACnC,IACIn5D,KAAMs5D,EACNrqJ,YAAasqJ,GACbjpJ,KAAKkpJ,eAAelpJ,KAAKmpJ,qBAAuB3lF,GAChD3L,EAAQ,eAAE,QAAQnG,KAAK,CACvB03F,MAAO,MACPC,KAAML,IACPzsJ,KAAK0sJ,GACRjpJ,KAAK2mJ,YAAYkC,EAAYhxF,IAEjCyxF,oBAAqB,WACjB,OAAO,QAAiBjwJ,OAAO2G,KAAK4Y,OAAO,QAAS,iBAExDyuI,aAAc,SAASd,GACnB,IAAIgD,EAAQvpJ,KAAK4Y,OAAO,aAAZ5Y,GACZ,OAAO,QAAUwpJ,SAASjD,EAAUgD,IAExCjC,kBAAmB,SAASf,GACxB,IAAI1gI,EAAU7lB,KAAK4Y,OAAO,OACtBkN,EAAU9lB,KAAK4Y,OAAO,OAC1B,OAAQ,QAAU6wI,YAAYlD,EAAU1gI,EAASC,EAAS,SAE9D0hI,aAAc,SAASjB,GACnB,OAAOA,EAAStsJ,aAAe+F,KAAK4Y,OAAO,QAAQ3e,YAEvDktJ,aAAc,SAASZ,GACnB,OAAO,QAAiBltJ,OAAOktJ,EAAU,MAE7C2C,eAAgB,SAASzsJ,GACrB,IAAIitJ,EAAa1pJ,KAAK4Y,OAAO,YACzB1Z,EAAWzC,EAAMitJ,EACrB,MAAO,CACHh6D,KAAM,QAAiB1wF,cAAcE,GACrCP,YAAa,QAAiBK,YAAY,eAAeE,KAGjEsnJ,kBAAmB,WACf,IAAI/8I,EAAW,QAAUkgJ,kBAAkB3pJ,KAAK4Y,OAAO,SACnDgxI,EAAsB5pJ,KAAKmpJ,qBAAuB1/I,EAASk2I,SAC3D+J,EAAa1pJ,KAAK4Y,OAAO,YAK7B,OAJIgxI,GAAuB,IACvBA,GAAuBF,GAE3BjgJ,EAASid,QAAQjd,EAASvP,UAAY0vJ,GAC/BngJ,GAEX29I,iBAAkB,SAAS9tJ,GAGvB,OAFAA,EAAO,IAAIS,KAAKT,GAChBA,EAAKotB,QAAQptB,EAAKY,UAAY,GACvBZ,GAEX6vJ,mBAAoB,WAChB,OAAO,eAAUnpJ,KAAK4Y,OAAO,mBAAqB5Y,KAAK4Y,OAAO,kBAAoB,QAAiB5U,uBAEvGikJ,eAAgB,SAAS3uJ,GACrB,OAAO0G,KAAKomJ,QAAQtuI,KAAK,kBAAkB6P,OAAO,GAAkB+qD,cAAcp5E,EAAM,QAAUytJ,sBAAuB,QAE7HwB,WAAY,SAASjvJ,GACjB,OAAO,QAAUuwJ,iBAAiBvwJ,EAAM0G,KAAK4Y,OAAO,SAAW,QAAUixI,iBAAiBvwJ,EAAM0G,KAAK4Y,OAAO,SAEhHgvI,gCAAiC,SAAShC,GACtC,OAAO,SAASv2G,GACZ,IAAIy6G,EAAiBlE,EAAchnI,MAAK,SAAU/U,GAC9C,OAAO,QAAU2/I,SAAS3/I,EAAMwlC,EAAK/1C,SAEzC,GAAIwwJ,EACA,OAAO,MAKvBtwJ,KAAM,GAASu2D,QAAQ,CACnB41F,aAAc,WACV,MAAO,QAEX0B,aAAc,SAASd,GACnB,IAAIgD,EAAQvpJ,KAAK4Y,OAAO,aAAZ5Y,GACZ,OAAO,QAAU6pJ,iBAAiBtD,EAAUgD,IAEhDjC,kBAAmB,SAASf,GACxB,OAAQ,QAAUkD,YAAYlD,EAAU,QAAUoD,kBAAkB3pJ,KAAK4Y,OAAO,QAAS,QAAUmxI,iBAAiB/pJ,KAAK4Y,OAAO,UAEpI4uI,aAAc,WACV,OAAO,GAEXL,aAAc,SAASZ,GACnB,OAAO,QAAiB/nJ,cAAc,eAAe+nJ,EAAStsJ,aAElEusJ,kBAAmB,WACf,IAAIvlJ,EAAcjB,KAAK4Y,OAAO,QAC1BxU,EAAO,IAAIrK,KAAKkH,GAGpB,OAFAmD,EAAKsiB,QAAQ,GACbtiB,EAAK8tE,SAAS,GACP9tE,GAEXgjJ,iBAAkB,SAAS9tJ,GAGvB,OAFAA,EAAO,IAAIS,KAAKT,GAChBA,EAAK44E,SAAS54E,EAAKW,WAAa,GACzBX,GAEX2uJ,eAAgB,SAAS3uJ,GACrB,IAAI0wJ,EAAY,IAAIjwJ,KAAKT,GAEzB,OADA0wJ,EAAUtjI,QAAQ,GACX1mB,KAAKomJ,QAAQtuI,KAAK,kBAAkB6P,OAAO,GAAkB+qD,cAAcs3E,EAAW,QAAUjD,sBAAuB,QAElIC,iBAAkB,SAAS1tJ,GACvB,OAAO,QAAiBD,OAAOC,EAAM,iBAEzCgwJ,oBAAqB,WACjB,OAAO,QAAiBjwJ,OAAO2G,KAAK4Y,OAAO,QAAS,SAExD2vI,WAAY,SAASjvJ,GACjB,OAAO,QAAU2wJ,SAAS3wJ,EAAM0G,KAAK4Y,OAAO,SAAW,QAAUqxI,SAAS3wJ,EAAM0G,KAAK4Y,OAAO,WAGpGsxI,OAAQ,GAASn6F,QAAQ,CACrB41F,aAAc,WACV,MAAO,UAEX0B,aAAc,SAASd,GACnB,IAAIgD,EAAQvpJ,KAAK4Y,OAAO,aAAZ5Y,GACZ,OAAO,QAAUiqJ,SAAS1D,EAAUgD,IAExCjC,kBAAmB,SAASf,GACxB,IAAI19I,EAAM7I,KAAK4Y,OAAO,OAClB9P,EAAM9I,KAAK4Y,OAAO,OACtB,OAAQ,QAAU6wI,YAAYlD,EAAS9sJ,cAAeoP,GAAOA,EAAIpP,cAAeqP,GAAOA,EAAIrP,gBAE/F+tJ,aAAc,SAASjB,GACnB,IAAIjtJ,EAAO,IAAIS,KAAKwsJ,GAEpB,OADAjtJ,EAAK44E,SAAS,IACN,QAAUi4E,WAAW7wJ,EAAM0G,KAAK4Y,OAAO,UAEnDuuI,aAAc,SAASZ,GACnB,OAAO,QAAiBltJ,OAAOktJ,EAAU,SAE7CC,kBAAmB,WACf,IAAIhtJ,EAAO,QAAU4wJ,qBAAqBpqJ,KAAK4Y,OAAO,SAAW,EACjE,OAAO,QAAUyxI,uBAAuB7wJ,EAAM,EAAG,IAErD4tJ,iBAAkB,SAAS9tJ,GAGvB,OAFAA,EAAO,IAAIS,KAAKT,GAChBA,EAAKiB,YAAYjB,EAAKG,cAAgB,GAC/BH,GAEXgwJ,oBAAqB,WACjB,IAAIroJ,EAAcjB,KAAK4Y,OAAO,QAC1B0xI,EAAoB,QAAUF,qBAAqBnpJ,GACnDspJ,EAAY,IAAIxwJ,KAAKkH,GACrBupJ,EAAU,IAAIzwJ,KAAKkH,GAGvB,OAFAspJ,EAAUhwJ,YAAY+vJ,GACtBE,EAAQjwJ,YAAY+vJ,EAAoB,GACjC,QAAiBjxJ,OAAOkxJ,EAAW,QAAU,IAAM,QAAiBlxJ,OAAOmxJ,EAAS,SAE/FC,sBAAuB,SAASxpJ,EAAaY,GACzC,OAAO,QAAUsoJ,WAAWlpJ,EAAaY,IAE7ComJ,eAAgB,SAAS3uJ,GACrB,IAAI0wJ,EAAY,IAAIjwJ,KAAKT,GAGzB,OAFA0wJ,EAAUtjI,QAAQ,GAClBsjI,EAAU93E,SAAS,GACZlyE,KAAKomJ,QAAQtuI,KAAK,kBAAkB6P,OAAO,GAAkB+qD,cAAcs3E,EAAW,QAAUjD,sBAAuB,QAElIwB,WAAY,SAASjvJ,GACjB,OAAO,QAAU6wJ,WAAW7wJ,EAAM0G,KAAK4Y,OAAO,SAAW,QAAUuxI,WAAW7wJ,EAAM0G,KAAK4Y,OAAO,WAGxG8xI,QAAS,GAAS36F,QAAQ,CACtB41F,aAAc,WACV,MAAO,WAEX0B,aAAc,SAASd,GACnB,IAAIgD,EAAQvpJ,KAAK4Y,OAAO,aAAZ5Y,GACZ,OAAO,QAAUmqJ,WAAW5D,EAAUgD,IAE1CjC,kBAAmB,SAASf,GACxB,IAAI2D,EAAS,QAAUE,qBAAqB7D,GACxCoE,EAAY,QAAUP,qBAAqBpqJ,KAAK4Y,OAAO,QACvDgyI,EAAY,QAAUR,qBAAqBpqJ,KAAK4Y,OAAO,QAC3D,OAAQ,QAAU6wI,YAAYS,EAAQS,EAAWC,IAErDpD,aAAc,SAASjB,GACnB,IAAIjtJ,EAAO,IAAIS,KAAKwsJ,GAEpB,OADAjtJ,EAAK44E,SAAS,IACN,QAAU24E,YAAYvxJ,EAAM0G,KAAK4Y,OAAO,UAEpDuuI,aAAc,SAASZ,GACnB,IAAIgE,EAAY,QAAiBlxJ,OAAOktJ,EAAU,QAC9CiE,EAAU,IAAIzwJ,KAAKwsJ,GAEvB,OADAiE,EAAQjwJ,YAAYiwJ,EAAQ/wJ,cAAgB,GACrC8wJ,EAAY,MAAQ,QAAiBlxJ,OAAOmxJ,EAAS,SAEhEhE,kBAAmB,WACf,IAAI0D,EAAS,QAAUY,wBAAwB9qJ,KAAK4Y,OAAO,SAAW,GACtE,OAAO,QAAUyxI,uBAAuBH,EAAQ,EAAG,IAEvD9C,iBAAkB,SAAS9tJ,GAGvB,OAFAA,EAAO,IAAIS,KAAKT,GAChBA,EAAKiB,YAAYjB,EAAKG,cAAgB,IAC/BH,GAEX2uJ,eAAgB,SAAS3uJ,GACrB,IAAI0wJ,EAAY,IAAIjwJ,KAAKT,GAIzB,OAHA0wJ,EAAUtjI,QAAQ,GAClBsjI,EAAU93E,SAAS,GACnB83E,EAAUzvJ,YAAY,QAAU6vJ,qBAAqBJ,IAC9ChqJ,KAAKomJ,QAAQtuI,KAAK,kBAAkB6P,OAAO,GAAkB+qD,cAAcs3E,EAAW,QAAUjD,sBAAuB,QAElIuC,oBAAqB,WACjB,IAAIroJ,EAAcjB,KAAK4Y,OAAO,QAC1BmyI,EAAuB,QAAUD,wBAAwB7pJ,GACzDspJ,EAAY,IAAIxwJ,KAAKkH,GACrBupJ,EAAU,IAAIzwJ,KAAKkH,GAGvB,OAFAspJ,EAAUhwJ,YAAYwwJ,GACtBP,EAAQjwJ,YAAYwwJ,EAAuB,IACpC,QAAiB1xJ,OAAOkxJ,EAAW,QAAU,IAAM,QAAiBlxJ,OAAOmxJ,EAAS,SAE/FjC,WAAY,SAASjvJ,GACjB,OAAO,QAAUuxJ,YAAYvxJ,EAAM0G,KAAK4Y,OAAO,SAAW,QAAUiyI,YAAYvxJ,EAAM0G,KAAK4Y,OAAO,YAI/F,M,0BCpOXoyI,GAAiB,cACjBC,GAAsB,mBACtB,GAAsB,mBACtBC,GAAwB,qBACxBC,GAA8B,2BAC9BC,GAA4B,0BAC5BC,GAA+B,4BAC/BC,GAAsB,mBACtBC,GAAsB,mBACtBC,GAA+B,IAC/BC,GAAqB,GACrBC,GAAmB,EACnBC,GAAkC,aAClC,GAA0B,iBAC1BC,GAAoB,CACpB/uJ,MAAO,EACPrD,KAAM,EACN0wJ,OAAQ,EACRQ,QAAS,GAETmB,GAAa,CACbC,MAAO,QACPC,KAAM,OACNC,OAAQ,SACRC,QAAS,WAGb,SAASC,GAAgBx0I,GACrB,OAAOA,EAAQu/C,SAASs0F,IAE5B,IAAIY,GAAW,QAAOp8F,QAAQ,CAC1B23C,iBAAkB,IAAM,GACxBf,mBAAoB,WAChB,OAAO,OAAAlsG,EAAA,WAAOuF,KAAKC,WAAY,CAC3B61C,mBAAmB,EACnBpC,oBAAoB,EACpBzyC,YAAa,IAAIlH,KACjB8H,MAAO,KACP6yC,6BAAyB,EACzB7rC,IAAK,IAAI9O,KAAK,IAAK,GACnB+O,IAAK,IAAI/O,KAAK,IAAK,GACnB2uJ,oBAAgB,EAChB0D,UAAWP,GAAWC,MACtBO,aAAcR,GAAWC,MACzBQ,aAAcT,GAAWI,QACzBM,iBAAiB,EACjBphJ,aAAc,OACdy6I,cAAe,KACfvvG,YAAa,KACbm2G,mBAAoB,KACpBC,gBAAgB,EAChB3G,WAAY,IAAM,IAAI/rJ,QAG9B02G,qBAAsB,WAClB,OAAOzwG,KAAKC,WAAW0nB,OAAO,CAAC,CAC3B+oF,OAAQ,WACJ,MAAO,YAAc9G,GAAA,KAAQC,OAAOC,aAAeF,GAAA,KAAQyd,eAE/DvxG,QAAS,CACL2/B,mBAAmB,OAI/B2xD,eAAgB,WACZ,OAAO,OAAA3sG,EAAA,WAAOuF,KAAKC,WAAY,CAC3Bk3I,WAAY,SAASvzI,GACjBA,EAAEu5D,iBACE,gBAAoBv5D,GACpB5D,KAAK0sJ,gBAAgB,GAErB1sJ,KAAK2sJ,yBAAyB,EAAI3sJ,KAAK4sJ,sBAG/C3V,UAAW,SAASrzI,GAChBA,EAAEu5D,iBACE,gBAAoBv5D,GACpB5D,KAAK0sJ,iBAAiB,GAEtB1sJ,KAAK2sJ,0BAA0B,EAAI3sJ,KAAK4sJ,sBAGhD3b,QAAS,SAASrtI,GAEd,GADAA,EAAEu5D,iBACE,gBAAoBv5D,GACpB5D,KAAK6sJ,kBACF,CACH,GAAI71C,GAAA,KAAG81C,YAAY9sJ,KAAK+sJ,MAAMl2I,YAC1B,OAEJ7W,KAAK2sJ,0BAA0B,EAAI3sJ,KAAK+sJ,MAAMn0I,OAAO,eAG7Ds4H,UAAW,SAASttI,GAEhB,GADAA,EAAEu5D,iBACE,gBAAoBv5D,GACpB5D,KAAKgtJ,oBACF,CACH,GAAIh2C,GAAA,KAAG81C,YAAY9sJ,KAAK+sJ,MAAMl2I,YAC1B,OAEJ7W,KAAK2sJ,yBAAyB,EAAI3sJ,KAAK+sJ,MAAMn0I,OAAO,eAG5Dw+H,KAAM,SAASxzI,GACXA,EAAEu5D,iBACF,IAAIivF,EAAYpsJ,KAAK4Y,OAAO,aACxB3X,EAAcjB,KAAK4Y,OAAO,eAC1B/P,EAAM7I,KAAKitJ,YAAY,OAC3B,IAAIjtJ,KAAK+sJ,MAAMxF,eAAetmJ,GAA9B,CAGA,IAAI3H,EAAO,QAAU4zJ,SAASd,EAAWnrJ,EAAa4H,GAAOA,EAAM,QAAUskJ,qBAAqBf,EAAWnrJ,GAC7GjB,KAAKotJ,4BAA4B9zJ,KAErC64B,IAAK,SAASvuB,GACVA,EAAEu5D,iBACF,IAAIivF,EAAYpsJ,KAAK4Y,OAAO,aACxB3X,EAAcjB,KAAK4Y,OAAO,eAC1B9P,EAAM9I,KAAKitJ,YAAY,OAC3B,IAAIjtJ,KAAK+sJ,MAAMxF,eAAetmJ,GAA9B,CAGA,IAAI3H,EAAO,QAAU4zJ,SAASd,EAAWnrJ,EAAa6H,GAAOA,EAAM,QAAUukJ,oBAAoBjB,EAAWnrJ,GAC5GjB,KAAKotJ,4BAA4B9zJ,KAErCkuG,OAAQ,SAAS5jG,GACbA,EAAEu5D,iBACFn9D,KAAK0sJ,iBAAiB,EAAI1sJ,KAAK4sJ,sBAEnCnlD,SAAU,SAAS7jG,GACfA,EAAEu5D,iBACFn9D,KAAK0sJ,gBAAgB,EAAI1sJ,KAAK4sJ,sBAElCpmC,IAAK,OACL2qB,MAAO,SAASvtI,GACZ,GAAK5D,KAAKstJ,mBAEH,IAAKttJ,KAAK+sJ,MAAMxF,eAAevnJ,KAAK4Y,OAAO,gBAAiB,CAC/D,IAAI/W,EAAQ7B,KAAKutJ,qBAAqBvtJ,KAAK4Y,OAAO,gBAClD5Y,KAAKwtJ,WAAW3rJ,EAAO+B,SAHvB5D,KAAKgtJ,oBAQrBS,wBAAyB,SAASxyG,GAC9B,IAAIp5C,EAAQ7B,KAAK4Y,OAAOqiC,GAAc,SACtC,OAAIj7C,KAAK4Y,OAAO,2BACL5Y,KAAK4Y,OAAO,2BAEnB,eAAU/W,GACH,SAEN,eAASA,GAGP,GAAkBkwE,2BAA2BlwE,QAHpD,GAKJ6rJ,eAAgB,SAAS7rJ,EAAOo5C,GAC5B,OAAO,GAAkBu3B,gBAAgB3wE,IAE7C2rJ,WAAY,SAAS3rJ,EAAOmwD,GACxB,GAAIA,EAAO,CACP,GAAI,YAAcA,EAAMvzD,KAAM,CAC1B,IAAImgE,EAAc5+D,KAAK+sJ,MAAMhF,oBAAoBrqJ,IAAI,GACrDs0D,EAAM97C,OAAS0oD,EAEnB5+D,KAAK4zI,sBAAsB5hF,GAE/BhyD,KAAKitJ,YAAY,QAASprJ,IAE9BorJ,YAAa,SAAShyG,EAAYwyC,GAC9B,GAAI,IAAMvtF,UAAUtG,OAChB,OAAOoG,KAAK0tJ,eAAe1tJ,KAAK4Y,OAAOqiC,GAAaA,GAExD,IAAI03B,EAAsB3yE,KAAKytJ,wBAAwBxyG,GACvDj7C,KAAK4Y,OAAOqiC,EAAY,GAAkBy3B,cAAc+a,EAAa9a,KAEzEg7E,WAAY,SAASvB,EAAW9yJ,EAAM8iB,EAAQ+qE,GAC1C,OAAQilE,GACJ,KAAKP,GAAWC,MACZxyJ,EAAKotB,QAAQptB,EAAKY,UAAYkiB,EAAS+qE,GACvC,MACJ,KAAK0kE,GAAWE,KACZzyJ,EAAK44E,SAAS54E,EAAKW,WAAamiB,EAAS+qE,GACzC,MACJ,KAAK0kE,GAAWG,OACZ1yJ,EAAKiB,YAAYjB,EAAKG,cAAgB2iB,EAAS+qE,GAC/C,MACJ,KAAK0kE,GAAWI,QACZ3yJ,EAAKiB,YAAYjB,EAAKG,cAAgB,GAAK2iB,EAAS+qE,KAGhEwlE,yBAA0B,SAASvwI,GAC/B,IAAIwxI,EAAW5tJ,KAAK4Y,OAAO,eACvB3X,EAAc,IAAIlH,KAAK6zJ,GACvBxB,EAAYpsJ,KAAK4Y,OAAO,aAC5B5Y,KAAK2tJ,WAAWvB,EAAWnrJ,EAAamb,EAAQ,GAChD,IAAI0J,EAAU9lB,KAAK6tJ,cACfhoI,EAAU7lB,KAAK8tJ,cACfC,EAA8B/tJ,KAAKguJ,wBAAwB5B,EAAWnrJ,EAAa2sJ,GACnFK,EAAuB,gBAAQhtJ,EAAa4kB,EAASC,IAAYioI,EACjEG,EAAc,IAAIn0J,KAAKkH,GAC3B,MAAOgtJ,EAAsB,CACzB,IAAKjuJ,KAAK+sJ,MAAMxF,eAAe2G,GAAc,CACzCjtJ,EAAcitJ,EACd,MAEJluJ,KAAK2tJ,WAAWvB,EAAW8B,EAAa9xI,EAAQ,GAChD2xI,EAA8B/tJ,KAAKguJ,wBAAwB5B,EAAW8B,EAAaN,GACnFK,EAAuB,gBAAQC,EAAaroI,EAASC,IAAYioI,EAEjE/tJ,KAAK+sJ,MAAMxF,eAAeqG,IAAa5tJ,KAAK+sJ,MAAMxF,eAAetmJ,GACjEjB,KAAK0sJ,gBAAgBtwI,EAAS,EAAI,GAAK,GAEvCpc,KAAK4Y,OAAO,cAAe3X,IAGnC,oBAAoBmrJ,EAAW+B,EAAOC,GAClC,OAAQhC,GACJ,KAAKP,GAAWC,MACZ,OAAOqC,EAAMl0J,aAAem0J,EAAMn0J,WACtC,KAAK4xJ,GAAWE,KACZ,OAAOoC,EAAME,YAAcD,EAAMC,UACrC,KAAKxC,GAAWG,OACZ,OAAOzqJ,SAAS4sJ,EAAME,UAAY,MAAQ9sJ,SAAS6sJ,EAAMC,UAAY,IACzE,KAAKxC,GAAWI,QACZ,OAAO1qJ,SAAS4sJ,EAAME,UAAY,OAAS9sJ,SAAS6sJ,EAAMC,UAAY,OAGlF,wBAAwBjC,EAAW+B,EAAOC,GACtC,OAAQhC,GACJ,KAAKP,GAAWC,MACZ,OAAQ/pJ,EAAIosJ,EAAMl0J,WAAY+H,EAAIosJ,EAAMn0J,WAAYqZ,EAAM9B,KAAK8B,IAAIvR,EAAIC,GAAIwP,KAAK3I,IAAIyK,EAAK,GAAKA,IAAS,EAC3G,KAAKu4I,GAAWE,KACZ,OAAOv6I,KAAK8B,IAAI66I,EAAME,UAAYD,EAAMC,YAAc,EAC1D,KAAKxC,GAAWG,OACZ,OAAOx6I,KAAK8B,IAAI66I,EAAME,UAAYD,EAAMC,YAAc,GAC1D,KAAKxC,GAAWI,QACZ,OAAOz6I,KAAK8B,IAAI66I,EAAME,UAAYD,EAAMC,YAAc,IAE9D,IAAItsJ,EAAGC,EAAGsR,GAEd85I,4BAA6B,WACzB,IAMIkB,EACAC,EAPAX,EAAW1tJ,UAAUtG,OAAS,QAAK,IAAWsG,UAAU,GAAKA,UAAU,GAAKF,KAAK4Y,OAAO,eACxF3X,EAAc,IAAIlH,KAAK6zJ,GACvBxB,EAAYpsJ,KAAK4Y,OAAO,aACxB41I,GAA0BxuJ,KAAKyuJ,oBAAoBxtJ,GACnDytJ,EAAyBF,EACzBG,EAA0BH,EAG1BN,EAAc,IAAIn0J,KAAKkH,GACvB2tJ,EAAe,IAAI70J,KAAKkH,GAC5B,EAAG,CACC,GAAIytJ,EAAwB,CACxBztJ,EAAcitJ,EACd,MAEJ,GAAIS,EAAyB,CACzB1tJ,EAAc2tJ,EACd,MAEJ5uJ,KAAK2tJ,WAAWvB,EAAW8B,EAAa,EAAG,GAC3CluJ,KAAK2tJ,WAAWvB,EAAWwC,EAAc,GAAI,GAC7CN,EAA2BtuJ,KAAK6uJ,oBAAoBzC,EAAW8B,EAAaN,GAC5EW,EAA4BvuJ,KAAK6uJ,oBAAoBzC,EAAWwC,EAAchB,GAC9Ec,EAAyBJ,IAA6BtuJ,KAAKyuJ,oBAAoBP,GAC/ES,EAA0BJ,IAA8BvuJ,KAAKyuJ,oBAAoBG,SAC5EN,GAA4BC,GACrCvuJ,KAAK4Y,OAAO,cAAe3X,IAE/BwtJ,oBAAqB,SAASn1J,GAC1B,IAAIwsB,EAAU9lB,KAAK6tJ,cACfhoI,EAAU7lB,KAAK8tJ,cACnB,OAAQ,gBAAQx0J,EAAMusB,EAASC,IAAY9lB,KAAK+sJ,MAAMxF,eAAejuJ,IAEzEquG,MAAO,WACH3nG,KAAKC,WACLD,KAAK8uJ,oBACL9uJ,KAAK+uJ,mBACL/uJ,KAAK6nG,gBAETinD,kBAAmB,WACf,IAAIxC,EAAetsJ,KAAK4Y,OAAO,gBAC3ByzI,EAAersJ,KAAK4Y,OAAO,gBAC3BwzI,EAAYpsJ,KAAK4Y,OAAO,aACxBgzI,GAAkBS,GAAgBT,GAAkBU,KAGpDV,GAAkBQ,GAAaR,GAAkBS,GACjDrsJ,KAAK4Y,OAAO,YAAayzI,GAClBT,GAAkBQ,GAAaR,GAAkBU,IACxDtsJ,KAAK4Y,OAAO,YAAa0zI,KAGjCyC,iBAAkB,WACd,IAAI9tJ,EAAcjB,KAAKgvJ,mBAAmBhvJ,KAAKitJ,YAAY,WAAajtJ,KAAKgvJ,mBAAmBhvJ,KAAK4Y,OAAO,gBAC5G5Y,KAAK4Y,OAAO,cAAe3X,IAE/B+tJ,mBAAoB,SAAS11J,GAEzB,OADAA,EAAO,QAAU21J,cAAc31J,EAAM0G,KAAK8tJ,cAAe9tJ,KAAK6tJ,eACvD,eAAUv0J,GAAQ0G,KAAKkvJ,SAAS51J,GAAQA,GAEnDuuG,aAAc,WACV7nG,KAAK0nJ,iBAAmB1nJ,KAAKiyD,sBAAsB,eACnDjyD,KAAKmvJ,oBAAsBnvJ,KAAKiyD,sBAAsB,uBAE1D21D,eAAgB,WACZ5nH,KAAK6nH,iBAAiBC,oBAAoB,CACtC9sD,KAAM,IAAI,SAAiB,SAAUllD,GACjC,IAAI1R,EAAO0R,EAAQ/M,MACnB,eAAE+M,EAAQkD,WAAW+gB,OAAO,eAAE,UAAUx9B,KAAK6H,GAAQA,EAAK7H,MAAQ5C,OAAOyK,UAGjFpE,KAAKC,YAETmvJ,mBAAoB,SAAS91J,GACrB09G,GAAA,KAAG81C,YAAY9sJ,KAAKqvJ,iBACpBr4C,GAAA,KAAG9nG,KAAKlP,KAAKqvJ,gBAAgB,GAEjC,IAAIxmJ,EAAM7I,KAAK8tJ,cACXhlJ,EAAM9I,KAAK6tJ,cACf,GAAIhlJ,EAAMC,EACN9I,KAAK4Y,OAAO,cAAe,IAAI7e,UADnC,CAIA,IAAIu1J,EAAiBtvJ,KAAKgvJ,mBAAmB11J,GAC7C,GAAIA,EAAKyK,YAAcurJ,EAAevrJ,UAAtC,CAIA,IAAIqY,EAASpc,KAAKuvJ,gBAAgBvvJ,KAAK+sJ,MAAMn0I,OAAO,QAAS02I,GACzD,IAAMlzI,IAAWpc,KAAKstJ,mBAAqBttJ,KAAKwvJ,0BAChDpzI,EAAS,GAETpc,KAAK+sJ,OAAS,IAAM3wI,IAAWpc,KAAKyvJ,oBACpCzvJ,KAAK0vJ,UAAUtzI,EAAQkzI,IAEvBtvJ,KAAK2vJ,mBACL3vJ,KAAK4vJ,kBAAkBN,GACvBtvJ,KAAK6vJ,cAAcP,SAZnBtvJ,KAAK4Y,OAAO,cAAe,IAAI7e,KAAKu1J,MAe5CM,kBAAmB,SAASt2J,IACpB0G,KAAK4Y,OAAO,mBAAqBszI,GAAgBlsJ,KAAKmzG,kBACtDnzG,KAAK+sJ,MAAMn0I,OAAO,gBAAiBtf,IAG3Cw0J,YAAa,WACT,OAAI9tJ,KAAK6I,MAGT7I,KAAK6I,IAAM7I,KAAKitJ,YAAY,QAAU,IAAIlzJ,KAAK,IAAK,IAFzCiG,KAAK6I,KAKpBglJ,YAAa,WACT,OAAI7tJ,KAAK8I,MAGT9I,KAAK8I,IAAM9I,KAAKitJ,YAAY,QAAU,IAAIlzJ,KAAK,IAAK,IAFzCiG,KAAK8I,KAKpBymJ,gBAAiB,SAAShF,EAAWC,GACjC,IAIIsF,EAJA1D,EAAYpsJ,KAAK4Y,OAAO,aAC5B,GAAIwzI,IAAcP,GAAWC,MACzB,OAAO9rJ,KAAK+vJ,iBAAiBxF,EAAWC,GAG5C,OAAQ4B,GACJ,KAAKP,GAAWI,QACZ6D,EAAiB,IACjB,MACJ,KAAKjE,GAAWG,OACZ8D,EAAiB,GACjB,MACJ,QACIA,EAAiB,EAEzB,OAAOvuJ,SAASipJ,EAAQ/wJ,cAAgBq2J,GAAkBvuJ,SAASgpJ,EAAU9wJ,cAAgBq2J,IAEjGC,iBAAkB,SAASxF,EAAWC,GAClC,IAAIwF,EAAaxF,EAAQ/wJ,cAAgB8wJ,EAAU9wJ,cAC/Cw2J,EAAczF,EAAQvwJ,WAAaswJ,EAAUtwJ,WACjD,OAAO,GAAK+1J,EAAaC,GAE7BvD,gBAAiB,SAAStwI,GACtB,IAAIpc,KAAKkwJ,mBAAT,CAGAlwJ,KAAKkwJ,oBAAqB,EAC1B,IAAI52J,EAAO0G,KAAKmwJ,iBAAiB/zI,EAASpc,KAAK4sJ,qBAC/C5sJ,KAAKotJ,4BAA4B9zJ,GACjC0G,KAAKowJ,uBAAyB1wH,WAAW,KACrC1/B,KAAKkwJ,oBAAqB,MAGlCtD,kBAAmB,WACf,OAAO5sJ,KAAK4Y,OAAO,eAAiB,EAAI,GAE5Cu3I,iBAAkB,SAAS/zI,EAAQ9iB,GAC/B,IAAI+2J,EACJ/2J,EAAO0G,KAAKkvJ,SAAS,QAAUmB,EAAQ/2J,SAAS,IAAW+2J,EAAQA,EAAQrwJ,KAAK4Y,OAAO,gBACvF,IAAI03I,EAAah3J,EAAKY,UAClBmkE,EAAa,QAAUkyF,qBAAqBvwJ,KAAK4Y,OAAO,cAAgBwD,EAC5E9iB,EAAKotB,QAAQ,GACbptB,EAAK44E,SAAS54E,EAAKW,WAAaokE,GAChC,IAAImyF,EAAU,QAAUzG,iBAAiBzwJ,GAAMY,UAE/C,OADAZ,EAAKotB,QAAQ4pI,EAAaE,EAAUA,EAAUF,GACvCh3J,GAEX65G,aAAc,WACV,OAAOnzG,KAAK6W,YAEhBwyF,YAAa,WACTrpG,KAAK6xI,uBACL7xI,KAAKC,WACL,IAAI4W,EAAW7W,KAAK6W,WACpBA,EAASsB,SAAS6yI,IAClBhrJ,KAAKimJ,cACLpvI,EAASkjB,OAAO/5B,KAAKqmJ,OACrBrmJ,KAAK6iH,eACL7iH,KAAK2vJ,mBACL94I,EAASkjB,OAAO/5B,KAAKywJ,WAAW55I,YAChC7W,KAAK0wJ,mBACL1wJ,KAAK2wJ,gBACL3wJ,KAAK4wJ,sBACL5wJ,KAAK6vJ,gBACL7vJ,KAAKotJ,+BAETt6C,QAAS,WACL9yG,KAAKC,WACLD,KAAK4vJ,kBAAkB5vJ,KAAK4Y,OAAO,iBAEvCqtI,YAAa,WACJjmJ,KAAKqvJ,iBACNrvJ,KAAKqmJ,MAAQ,eAAE,SAASluI,SAAS8yI,IACjCjrJ,KAAKqvJ,eAAiB,eAAE,SAASl3I,SAASkzI,IAC1CrrJ,KAAKqmJ,MAAMtsH,OAAO/5B,KAAKqvJ,kBAG/B,wBACI,OAAOrvJ,KAAKC,WAAW0nB,OAAO,CAAC3nB,KAAK+sJ,SAExClqC,aAAc,WACV7iH,KAAK6W,WAAWsB,SAASmzI,GAAsB,IAAMtrJ,KAAK4Y,OAAO,cACjE,IAAI3X,EAAcjB,KAAK4Y,OAAO,eAE9B,GADA5Y,KAAK+sJ,MAAQ/sJ,KAAK6wJ,oBAAoB5vJ,GAClC,iBAAa,CACb,IAAI6vJ,EAAa9wJ,KAAKmwJ,kBAAkB,EAAGlvJ,GAC3CjB,KAAK+wJ,YAAc/wJ,KAAKgxJ,iBAAiBF,GAAc9wJ,KAAK6wJ,oBAAoBC,GAAc,KAC9F,IAAIG,EAAYjxJ,KAAKmwJ,iBAAiB,EAAGlvJ,GACzCgwJ,EAAUvqI,QAAQ,GAClB1mB,KAAKkxJ,WAAalxJ,KAAKgxJ,iBAAiBC,GAAajxJ,KAAK6wJ,oBAAoBI,GAAa,KAE/FjxJ,KAAKmxJ,mBAETN,oBAAqB,SAASv3J,GAC1B,IAAI83J,EAAe,GAAMpxJ,KAAK4Y,OAAO,cACjCy4I,EAAQ,eAAE,SAASj5I,SAASpY,KAAKqvJ,gBACjCx9F,EAAS7xD,KAAKsxJ,YAAYh4J,GAC9B,OAAO0G,KAAKiZ,iBAAiBo4I,EAAOD,EAAcv/F,IAEtDy/F,YAAa,SAASh4J,GAClB,IAAIssJ,EAAgB5lJ,KAAK4Y,OAAO,iBAEhC,OADAgtI,EAAgB,eAAWA,GAAiB5lJ,KAAKuxJ,iBAAiB3L,EAAcpqI,KAAKxb,OAAS4lJ,EACvF,CACHtsJ,KAAMA,EACNuP,IAAK7I,KAAK8tJ,cACVhlJ,IAAK9I,KAAK6tJ,cACVnF,eAAgB1oJ,KAAK4Y,OAAO,kBAC5B/W,MAAO7B,KAAKitJ,YAAY,SACxB7yG,cAAU,EACV3E,kBAAmBz1C,KAAK4Y,OAAO,qBAC/Bk9B,kBAAmB91C,KAAK4Y,OAAO,qBAC/BgtI,cAAeA,EACfvvG,YAAar2C,KAAKwxJ,kBAAkBh2I,KAAKxb,MACzCmL,aAAcnL,KAAK4qH,qBAAqB,gBACxCi7B,oBAAqB7lJ,KAAKstJ,kBAC1BxH,WAAY9lJ,KAAK4Y,OAAO,gBAGhC24I,iBAAkB,SAASvoH,GACvB,IAAIrlC,EAAO3D,KACX,OAAO,SAAS2wE,GAIZ,OAHA,OAAAl2E,EAAA,WAAOk2E,EAAQ,CACX/+D,UAAWjO,IAERqlC,EAAK2nC,KAGpBqgF,iBAAkB,SAAS13J,GACvB,IAAI8yJ,EAAYpsJ,KAAK4Y,OAAO,aACxB/P,EAAM,QAAU4oJ,uBAAuBrF,EAAWpsJ,KAAK8tJ,eACvDhlJ,EAAM,QAAU4oJ,uBAAuBtF,EAAWpsJ,KAAK6tJ,eAC3D,OAAO,QAAUpE,YAAYnwJ,EAAMuP,EAAKC,IAE5CqoJ,gBAAiB,WACb,gBAAKnxJ,KAAK+sJ,MAAMl2I,WAAY,CACxB8F,KAAM,EACNC,IAAK,IAET5c,KAAK+wJ,aAAe,gBAAK/wJ,KAAK+wJ,YAAYl6I,WAAY,CAClD8F,KAAM3c,KAAK2xJ,kBAAkB,GAC7B/0I,IAAK,IAET5c,KAAKkxJ,YAAc,gBAAKlxJ,KAAKkxJ,WAAWr6I,WAAY,CAChD8F,KAAM3c,KAAK2xJ,iBAAiB,GAC5B/0I,IAAK,KAGb+0I,iBAAkB,SAASC,GACvB,IAAIC,EAAgB7xJ,KAAK4Y,OAAO,eAAiB,EAAI,EACrD,OAAO,IAAMg5I,EAAcC,EAAgB,KAE/CL,kBAAmB,SAAS5tJ,GACxB,IAAIwoJ,EAAYpsJ,KAAK4Y,OAAO,aACxBk5I,EAAW,QAAUC,YAAY3F,GACjC4F,EAAiBhyJ,KAAKstJ,kBAC1B,GAAIwE,IAAaE,EACbhyJ,KAAKgtJ,cAAcppJ,EAAEouD,MAAMqI,mBACxB,CACH,IAAI+J,EAAWpkE,KAAKutJ,qBAAqB3pJ,EAAE/B,OAC3C7B,KAAKwtJ,WAAWppF,EAAUxgE,EAAEouD,OAC5BhyD,KAAK0nJ,iBAAiB9jJ,KAG9B2pJ,qBAAsB,SAASj0J,GAC3B,IAAI2F,EAAS,IAAIlF,KAAKT,GAClB24J,EAAejyJ,KAAKitJ,YAAY,SAOpC,OANIgF,IACAhzJ,EAAOypB,SAASupI,EAAa93J,YAC7B8E,EAAOizJ,WAAWD,EAAa73J,cAC/B6E,EAAOyjJ,WAAWuP,EAAa53J,cAC/B4E,EAAO0jJ,gBAAgBsP,EAAa33J,oBAEjC2E,GAEXquJ,gBAAiB,WACb,OAAOttJ,KAAK4Y,OAAO,eAAiB5Y,KAAK4Y,OAAO,iBAEpDo0I,cAAe,SAAShyF,GACpB,IAAIoxF,EAAYpsJ,KAAK4Y,OAAO,aAC5B,IAAI5Y,KAAKstJ,kBAAT,CAGA,IAAIwE,EAAW,QAAUC,YAAY3F,GACrC,GAAK0F,EAAL,CAGA,IAAIK,EAAiBnyJ,KAAK+sJ,MAAMn0I,OAAO,kBAAoB5Y,KAAK+sJ,MAAMn0I,OAAO,QACzEoiD,IACAm3F,EAAiB,eAAEn3F,GAAM52D,KAAK,KAElCpE,KAAKwvJ,yBAA0B,EAC/BxvJ,KAAK4Y,OAAO,cAAeu5I,GAC3BnyJ,KAAK4Y,OAAO,YAAak5I,GACzB9xJ,KAAKwvJ,yBAA0B,EAC/BxvJ,KAAK2vJ,mBACL3vJ,KAAKoyJ,mBACLpyJ,KAAKotJ,8BACLptJ,KAAK4vJ,kBAAkB5vJ,KAAKgvJ,mBAAmBhvJ,KAAK4Y,OAAO,oBAE/D+2I,iBAAkB,WACT3vJ,KAAKywJ,aACNzwJ,KAAKywJ,WAAa,IAAI,GAAU,eAAE,SAAUzwJ,KAAKqyJ,qBAErDryJ,KAAKywJ,WAAW73I,OAAO,OAAQ5Y,KAAK+sJ,MAAMzD,uBAC1CtpJ,KAAKsyJ,4BAETD,iBAAkB,WACd,MAAO,CACH91J,KAAMyD,KAAK+sJ,MAAMzD,sBACjBxtG,QAAS97C,KAAKuyJ,uBAAuB/2I,KAAKxb,MAC1CmkJ,eAAgBnkJ,KAAK6sJ,YAAYrxI,KAAKxb,MACtCqc,WAAYrc,KAAK4Y,OAAO,gBAGhC25I,uBAAwB,SAAS3uJ,GAC7B,IAAI3C,EAAcjB,KAAKmwJ,iBAAiBvsJ,EAAE6mD,UAAWzqD,KAAK4Y,OAAO,gBACjE5Y,KAAKotJ,4BAA4BnsJ,IAErC4rJ,YAAa,WACT,IAAIT,EAAYpsJ,KAAK4Y,OAAO,aACxBk5I,EAAW,QAAUU,UAAUpG,GAC9B0F,IAAY9xJ,KAAKyyJ,gBAAgBrG,KAGtCpsJ,KAAK4Y,OAAO,YAAak5I,GACzB9xJ,KAAK2vJ,mBACL3vJ,KAAKoyJ,mBACLpyJ,KAAKotJ,8BACLptJ,KAAK4vJ,kBAAkB5vJ,KAAKgvJ,mBAAmBhvJ,KAAK4Y,OAAO,mBAE/D65I,gBAAiB,SAASrG,GACtB,IAAIvjJ,EAAM7I,KAAK8tJ,cACXhlJ,EAAM9I,KAAK6tJ,cACf,OAAO,QAAUX,SAASd,EAAWvjJ,EAAKC,IAAQ9I,KAAK4Y,OAAO,kBAAoBwzI,GAEtFkG,yBAA0B,WACtBtyJ,KAAKywJ,WAAW3L,aAAa,QAAS,eAAU9kJ,KAAK0yJ,iBAAiB,UACtE1yJ,KAAKywJ,WAAW3L,aAAa,QAAS,eAAU9kJ,KAAK0yJ,iBAAiB,WAE1EhC,iBAAkB,WACT1wJ,KAAK2yJ,aACN3yJ,KAAK2yJ,WAAa3yJ,KAAKiZ,iBAAiBjZ,KAAK6W,WAAY,GAAW,CAChEmsI,QAAShjJ,KAAK4yJ,mBAAmBp3I,KAAKxb,MACtCkjJ,UAAWljJ,KAAK6yJ,oBAAoBr3I,KAAKxb,MACzC8iC,MAAO9iC,KAAK8yJ,iBAAiBt3I,KAAKxb,MAClCsjJ,aAActjJ,KAAK+yJ,WAAWv3I,KAAKxb,UAI/C4yJ,mBAAoB,SAAShvJ,GACzBozG,GAAA,KAAG9nG,KAAKlP,KAAKqvJ,gBAAgB,GAC7BzrJ,EAAEouD,MAAMghG,cAAgBhzJ,KAAK0yJ,iBAAiB,QAAU,EAAI,EAC5D9uJ,EAAEouD,MAAMihG,eAAiBjzJ,KAAK0yJ,iBAAiB,QAAU,EAAI,GAEjEA,iBAAkB,SAAS9wJ,GACvB,IAAI63G,EACAy5C,EAAQlzJ,KAAK4Y,OAAO,cAMxB,MALI,SAAWhX,EACX63G,EAAOy5C,EAAQlzJ,KAAK+wJ,YAAc/wJ,KAAKkxJ,WAChC,SAAWtvJ,IAClB63G,EAAOy5C,EAAQlzJ,KAAKkxJ,WAAalxJ,KAAK+wJ,aAEnCt3C,GAEXo5C,oBAAqB,SAASjvJ,GAC1B,IAAIwY,EAASxY,EAAEouD,MAAM51C,OACrB,gBAAKpc,KAAKqvJ,eAAgB,CACtB1yI,KAAMP,EAASpc,KAAK+yJ,aACpBn2I,IAAK,IAET5c,KAAKmzJ,wBAAwB/2I,IAEjC02I,iBAAkB,SAASlvJ,GACvB,IAAIwvJ,EAAexvJ,EAAEouD,MAAMohG,aACvBC,EAAcD,EAAmBA,EAAe5hJ,KAAK8B,IAAI8/I,GAA5B,EACjC,GAAI,IAAMC,EAAV,CAIA,IAAI/5J,EAAO0G,KAAKmwJ,kBAAkBkD,EAAarzJ,KAAK4sJ,qBAChD5sJ,KAAKszJ,sBAAsBh6J,KAEvBA,EADA+5J,GAAc,EACP,IAAIt5J,KAAKiG,KAAK8tJ,eAEd,IAAI/zJ,KAAKiG,KAAK6tJ,gBAG7B7tJ,KAAK4Y,OAAO,cAAetf,QAXvB0G,KAAKuzJ,gBAAgB,EAAG/H,KAahCuH,WAAY,WAIR,OAHK/yJ,KAAKwzJ,kBACNxzJ,KAAKwzJ,gBAAkB,eAASxzJ,KAAK6W,aAElC7W,KAAKwzJ,iBAEhBL,wBAAyB,SAAS/2I,GAC9BA,GAAUpc,KAAK4sJ,oBACf,IAAInzC,EAAOz5G,KAAK+sJ,MACZ3wI,EAAS,IAAMpc,KAAK+wJ,YACpBt3C,EAAOz5G,KAAK+wJ,YACL30I,GAAU,IAAMpc,KAAKkxJ,aAC5Bz3C,EAAOz5G,KAAKkxJ,YAEhBlxJ,KAAKywJ,WAAW73I,OAAO,OAAQ6gG,EAAK6vC,wBAExCgK,sBAAuB,SAASh6J,GAC5B,IAAI0G,KAAK+sJ,MAAMxE,WAAWjvJ,GAA1B,CAGA,IAAIuP,EAAM7I,KAAK8tJ,cACXhlJ,EAAM9I,KAAK6tJ,cACXyB,EAAiB,QAAUL,cAAc31J,EAAMuP,EAAKC,GACxD,OAAOwmJ,IAAmBzmJ,GAAOymJ,IAAmBxmJ,IAExD6nJ,cAAe,WACX,IAAIpE,EAAkBvsJ,KAAK4Y,OAAO,mBAClC,GAAI2zI,EAAiB,CACjB,IAAIkH,EAAezzJ,KAAKiZ,iBAAiB,eAAE,OAAQ,cAAQ,CACvDw8B,mBAAmB,EACnBl5C,KAAM,OAAoBlD,OAAO,8BACjCyiD,QAAS,SAASzM,GACdrvC,KAAK0zJ,aAAarkH,IACpB7zB,KAAKxb,MACPg7H,mBAAoB,KACrBnkH,WAAWsB,SAASgzI,IACvBnrJ,KAAK2zJ,SAAW,eAAE,SAASx7I,SAAS+yI,IAAuBnxH,OAAO05H,GAClEzzJ,KAAK6W,WAAWkjB,OAAO/5B,KAAK2zJ,UAEhC3zJ,KAAK6W,WAAW09C,YAAY62F,GAA2BmB,IAE3D1a,qBAAsB,WAClB7xI,KAAKiyI,gBAAkB,eAAE,WAAWvgF,KAAK,OAAQ,UAAUt5C,SAASpY,KAAK6W,YACzE7W,KAAKkyI,gBAAgBlyI,KAAK4Y,OAAO,WAErCs5H,gBAAiB,SAASrwI,GACtB,IAAIolB,EAAYjnB,KAAK0tJ,eAAe7rJ,GACpC7B,KAAKmyI,oBAAoBC,IAAI,GAAkB1/D,cAAczrD,EAAW0kI,MAE5ExZ,kBAAmB,WACf,OAAOnyI,KAAKiyI,iBAEhBmgB,iBAAkB,WAEd,OADAp7C,GAAA,KAAG9nG,KAAKlP,KAAK+sJ,MAAMl2I,YAAY,GACxB7W,KAAK4zJ,kBAAkB5zJ,KAAK+sJ,MAAOtB,GAAoBC,GAAkBF,IAA8B/pI,WAElHmyI,kBAAmB,SAASn6C,EAAM1kF,EAAMr8B,EAAIgyD,GACxC,OAAOssD,GAAA,KAAGG,QAAQsC,EAAK5iG,WAAY,CAC/BpY,KAAM,MACNs2B,KAAM,CACFs0B,MAAOt0B,EACPq0B,QAASr0B,GAEbr8B,GAAI,CACA2wD,MAAO3wD,EACP0wD,QAAS1wD,GAEbgyD,SAAUA,KAGlBglG,UAAW,SAAStzI,EAAQva,GACxB,GAAI,IAAMua,GAAU,IAAM5K,KAAK8B,IAAI8I,IAAWpc,KAAKgxJ,iBAAiBnvJ,GAAQ,CACxE,IAAIgyJ,EAAU7zJ,KAAK6wJ,oBAAoBhvJ,GACnCua,EAAS,GACTpc,KAAKkxJ,YAAclxJ,KAAKkxJ,WAAWr6I,WAAW8B,SAC9C3Y,KAAKkxJ,WAAa2C,IAElB7zJ,KAAK+wJ,aAAe/wJ,KAAK+wJ,YAAYl6I,WAAW8B,SAChD3Y,KAAK+wJ,YAAc8C,GAEvB7zJ,KAAKmxJ,kBAET,IAAIU,EAAgB7xJ,KAAK4sJ,oBACrBkH,EAAa13I,EAAS,EAAI,EAAIA,EAAS,GAAK,EAAI,EAChD23I,GAAelC,EAAgBiC,EAAa9zJ,KAAK+yJ,aACjDiB,EAAuBh0J,KAAKqvJ,eAAelqG,WAAWxoC,KACtDq3I,IAAyBD,IACrB/zJ,KAAKi0J,4BACLj0J,KAAKk0J,4BAA4B93I,EAAQva,GAEzC7B,KAAKuzJ,gBAAgBQ,EAAavI,IAA8BntI,KAAKre,KAAKk0J,4BAA4B14I,KAAKxb,KAAMoc,EAAQva,MAIrI0xJ,gBAAiB,SAAS76J,EAAIgyD,GAC1B,OAAOssD,GAAA,KAAGG,QAAQn3G,KAAKqvJ,eAAgB,CACnC5wJ,KAAM,QACNs2B,KAAM,CACFpY,KAAM3c,KAAKqvJ,eAAelqG,WAAWxoC,MAEzCjkB,GAAI,CACAikB,KAAMjkB,GAEVgyD,SAAUA,KAGlBwkG,SAAUrtJ,GAAS,IAAI9H,KAAK8H,GAC5B6xJ,aAAc,SAASrkH,GACnBrvC,KAAK4zI,sBAAsBvkG,EAAK2iB,OAChC,IAAIu3F,EAAQ,IAAIxvJ,KACZiG,KAAKstJ,kBACLttJ,KAAKitJ,YAAY,QAAS1D,IAG9BvpJ,KAAKi0J,6BAA8B,EACnCj0J,KAAK4Y,OAAO,YAAa5Y,KAAK4Y,OAAO,iBACrC5Y,KAAKitJ,YAAY,QAAS1D,GAC1BvpJ,KAAKoyJ,mBACLpyJ,KAAKi0J,6BAA8B,IAEvCC,4BAA6B,SAAS93I,EAAQ61D,GAC1CjyE,KAAKm0J,gBAAgB/3I,GACrBpc,KAAKmxJ,kBACLnxJ,KAAKo0J,iBACLp0J,KAAK2vJ,mBACL3vJ,KAAK4vJ,kBAAkB39E,GACvBjyE,KAAK6vJ,cAAc59E,IAEvBkiF,gBAAiB,SAAS/3I,GAItB,IAAIi4I,EACAC,EACAC,EALJ,GAAI,IAAMn4I,IAMNA,EAAS,GACTi4I,EAAa,EACbC,EAAkB,cAClBC,EAAkB,eAElBF,GAAc,EACdC,EAAkB,aAClBC,EAAkB,eAEjBv0J,KAAKs0J,IAAV,CAGA,IAAIE,EAAkBx0J,KAAKs0J,GAAiB17I,OAAO,QAC/C5Y,KAAKu0J,IACLv0J,KAAKu0J,GAAiB19I,WAAW8B,SAEjCyD,IAAWi4I,EACXr0J,KAAKu0J,GAAmBv0J,KAAK+sJ,OAE7B/sJ,KAAKu0J,GAAmBv0J,KAAK6wJ,oBAAoB7wJ,KAAKmwJ,iBAAiBkE,EAAYG,IACnFx0J,KAAK+sJ,MAAMl2I,WAAW8B,UAE1B3Y,KAAK+sJ,MAAQ/sJ,KAAKs0J,GAClB,IAAIG,EAAez0J,KAAKmwJ,kBAAkBkE,EAAYG,GACtDx0J,KAAKs0J,GAAmBt0J,KAAKgxJ,iBAAiByD,GAAgBz0J,KAAK6wJ,oBAAoB4D,GAAgB,OAE3GL,eAAgB,WACZ,gBAAKp0J,KAAKqvJ,eAAgB,CACtB1yI,KAAM,EACNC,IAAK,KAGbuqF,OAAQ,WACJnnG,KAAKC,WACLD,KAAK00J,8BACE10J,KAAKqvJ,sBACLrvJ,KAAKywJ,kBACLzwJ,KAAK2zJ,UAEhBe,qBAAsB,kBACX10J,KAAKwzJ,iBAEhBmB,cAAe,WACX30J,KAAK+sJ,MAAMl2I,WAAW8B,SACtB3Y,KAAK+wJ,aAAe/wJ,KAAK+wJ,YAAYl6I,WAAW8B,SAChD3Y,KAAKkxJ,YAAclxJ,KAAKkxJ,WAAWr6I,WAAW8B,gBACvC3Y,KAAK+sJ,aACL/sJ,KAAK+wJ,mBACL/wJ,KAAKkxJ,YAEhBrhC,SAAU,WACNz1D,aAAap6D,KAAKowJ,wBAClBpwJ,KAAKC,YAET20J,cAAe,WACX50J,KAAK20J,gBACL30J,KAAK6iH,gBAETthB,mBAAoB,WAChBvhG,KAAKmxJ,mBAET3Z,gBAAiB,WACbx3I,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAK+sJ,MAAMn0I,OAAO,gBAAiB5Y,KAAK4Y,OAAO,iBAEnDm/H,iBAAkB,WACd/3I,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAK+sJ,MAAMn0I,OAAO,gBAAiB,OAEvCi8I,kBAAmB,SAAShzJ,GACxB,IAAIuiE,EAAWviE,EAAQ,IAAI9H,KAAK8H,GAAS,KACzC7B,KAAK+sJ,MAAMn0I,OAAO,QAASwrD,GAC3BpkE,KAAK+wJ,aAAe/wJ,KAAK+wJ,YAAYn4I,OAAO,QAASwrD,GACrDpkE,KAAKkxJ,YAAclxJ,KAAKkxJ,WAAWt4I,OAAO,QAASwrD,IAEvDwsF,oBAAqB,SAAS/uJ,EAAO06E,GACjC,IAAIu4E,EACJjzJ,EAAQ,QAAUizJ,EAASjzJ,SAAU,IAAWizJ,EAASA,EAAS90J,KAAKitJ,YAAY,SACnF,IAAI8H,EAAoB/0J,KAAK+sJ,MAAM9E,eAAe1rE,GAC9Cy4E,EAAgBh1J,KAAK+sJ,MAAM9E,eAAepmJ,GAC9C7B,KAAKsd,QAAQ,gBAAY,EAAQy3I,GACjC/0J,KAAKsd,QAAQ,YAAY,EAAM03I,GAC3BnzJ,GAAS7B,KAAK4Y,OAAO,eAAe7U,YAAclC,EAAMkC,WACxD/D,KAAK6vJ,cAAchuJ,IAG3BguJ,cAAe,SAAShuJ,GACpB,IAAIozJ,EACJpzJ,EAAQ,QAAUozJ,EAAUpzJ,SAAU,IAAWozJ,EAAUA,EAAUj1J,KAAK4Y,OAAO,eACjF,IAAIs8I,EAAS,MAAQ,IAAI,QACrBjyF,EAAWjjE,KAAK+sJ,MAAM9E,eAAepmJ,GACzC7B,KAAKsd,QAAQ,KAAM43I,EAAQjyF,GAC3BjjE,KAAKsd,QAAQ,mBAAoB43I,GACjCl1J,KAAKmvJ,oBAAoB+F,IAE7BC,uBAAwB,SAASnsJ,EAAUqmC,GACvCrvC,KAAKyvJ,qBAAsB,EAC3BzmJ,EAASlK,MAAMkB,KAAMqvC,UACdrvC,KAAKyvJ,qBAEhBvhD,eAAgB,SAAS7+D,GACrB,IAAIxtC,EAAQwtC,EAAKxtC,MACb06E,EAAgBltC,EAAKktC,cACzB,OAAQltC,EAAKztC,MACT,IAAK,QACD5B,KAAKC,SAASovC,GACdrvC,KAAK00J,uBACL,MACJ,IAAK,MACL,IAAK,MACD10J,KAAK6I,SAAM,EACX7I,KAAK8I,SAAM,EACX9I,KAAKm1J,uBAAuBn1J,KAAKovJ,mBAAoB,CAACpvJ,KAAK4Y,OAAO,iBAClE5Y,KAAK40J,gBACL50J,KAAK2vJ,mBACL,MACJ,IAAK,iBACD3vJ,KAAK40J,gBACL50J,KAAKsyJ,2BACL,MACJ,IAAK,cACDtyJ,KAAKsd,QAAQ,UAAM,EAAQtd,KAAK+sJ,MAAM9E,eAAe1rE,IACrDv8E,KAAKovJ,mBAAmBvtJ,GACxB,MACJ,IAAK,YACD7B,KAAK6W,WAAWwB,YAAYizI,GAAsB,IAAM/uE,GACxDv8E,KAAK8uJ,oBACL9uJ,KAAK40J,gBACL50J,KAAK2vJ,mBACL3vJ,KAAK6vJ,gBACL,MACJ,IAAK,eACL,IAAK,eACD7vJ,KAAK8uJ,oBACL9uJ,KAAKsyJ,2BACL,MACJ,IAAK,QACDzwJ,EAAQ7B,KAAK0tJ,eAAe7rJ,GAC5B06E,EAAgBv8E,KAAK0tJ,eAAenxE,GACpCv8E,KAAK4wJ,oBAAoB/uJ,EAAO06E,GAChCv8E,KAAK4Y,OAAO,cAAe,eAAU/W,GAAS,IAAI9H,KAAK8H,GAAS,IAAI9H,MACpEiG,KAAK60J,kBAAkBhzJ,GACvB7B,KAAKkyI,gBAAgBrwI,GACrB7B,KAAKC,SAASovC,GACd,MACJ,IAAK,cACDrvC,KAAK+sJ,MAAMn0I,OAAO,cAAe/W,GACjC,MACJ,IAAK,qBACD7B,KAAKmvJ,oBAAsBnvJ,KAAKiyD,sBAAsB,sBACtD,MACJ,IAAK,gBACL,IAAK,0BACL,IAAK,eACL,IAAK,kBACDjyD,KAAKszD,cACL,MACJ,IAAK,iBACD,MACJ,IAAK,aACDtzD,KAAK40J,gBACL,MACJ,QACI50J,KAAKC,SAASovC,KAG1B+lH,iBAAkB,WACd,OAAOp1J,KAAK+sJ,MAAMn0I,OAAO,oBAGjC,eAAkB,aAAcuzI,IACjB,UCz+BA,MCMX,GAAW,OAAMlH,SACjBoQ,GAAkB,OAAMtlG,QAAQ,CAChCE,KAAM,SAASqlG,GACXt1J,KAAKs1J,QAAUA,GAEnB7nC,aAAc,WACV,OAAOztH,KAAKu1J,SAAWv1J,KAAKu1J,QAAQ38I,OAAO9Z,MAAMkB,KAAKu1J,QAASr1J,YAEnEs1J,cAAe,SAAS99I,GACpBA,EAAUA,GAAW,eAAE,SACvB1X,KAAKu1J,QAAUv1J,KAAKy1J,cAAc/9I,GAClC1X,KAAKu1J,QAAQ1+I,WAAWuB,SAASpY,KAAK01J,wBAE1CD,cAAe,SAAS/9I,GACpB,IAAIV,EAAahX,KAAK21J,iBAClBC,EAAgB51J,KAAK61J,oBACzB,OAAO71J,KAAKs1J,QAAQr8I,iBAAiBvB,EAASV,EAAY4+I,IAE9DC,kBAAmB,GACnBF,eAAgB,GAChBG,kBAAmB,WACf,MAAO,CACHxpH,KAAM,SAGdr2B,iBAAkB,GAClB8/I,cAAe,OACfC,oBAAqB,OACrBC,iBAAkB,OAClBC,cAAe,SAAS35J,EAAMlD,GAC1B,IAAIwI,EAAQ,QAAiB1B,MAAM5D,EAAMlD,GACzC,OAAOwI,GAAgB,QAAiB1B,MAAM5D,IAElD45J,kBAAmB,OACnBC,kBAAmB,WACfp2J,KAAKq2J,gBAETC,YAAa,GACbzqC,kBAAmB,WACf,IAAI0qC,EACJ,QAAUA,EAAkBv2J,KAAKw2J,mBAAgB,IAAWD,GAA2BA,EAAgBhpC,WAE3GkpC,mBAAoB,WAChB,IAAIv1G,EAAQlhD,KAAKw2J,YACjBx2J,KAAKw1J,gBACL,IAAIp6C,EAAgBl6D,EAAMwsB,WAAWtuD,SACrC,OAAa6xC,IAAImqD,EAAe,aAChC,OAAatxG,GAAGsxG,EAAe,YAAap7G,KAAK02J,qBAAqBl7I,KAAKxb,QAE/E22J,qBAAsB,OACtBC,oBAAqB,OACrBF,qBAAsB,SAAS9yJ,GAC3BA,EAAEu5D,kBAENu4F,oBAAqB,WACjB,OAAO11J,KAAKw2J,YAAY9oF,YAE5B8oF,UAAW,WACP,OAAOx2J,KAAKs1J,QAAQ7uC,QAExBowC,oBAAqB,OACrBC,mBAAoB,OACpBT,aAAc,WACVr2J,KAAKu1J,SAAWv1J,KAAKu1J,QAAQ38I,OAAO,QAAS5Y,KAAK+2J,iBAEtDC,wBAAyB,OACzBC,eAAgB,WACZ,OAAO,IAAIl9J,MAEfm9J,mBAAoB,OACpBC,YAAa,WACLn3J,KAAKs1J,QAAQ18I,OAAO,WACpB5Y,KAAKq2J,gBAGbe,SAAU,WACN,OAAOp3J,KAAKu1J,QAAQ38I,OAAO,UAE/By+I,oBAAqB,WACjB,OAAO,GAEXllG,QAAS,WACL,IAAIjR,EAAQlhD,KAAKw2J,YACbt1G,GACAA,EAAMwsB,WAAWtb,SAGzB2kG,aAAc,WACV,OAAI72J,UAAUtG,OACHoG,KAAKs1J,QAAQruI,UAAUnoB,MAAMkB,KAAKs1J,QAASp1J,WAE3CF,KAAKs1J,QAAQgC,WAAWx4J,MAAMkB,KAAKs1J,QAAS,CAAC,aAIjD,MCxFXiC,GAAmB,GAAgBxnG,QAAQ,CAC3CwC,KAAM,WACNwjG,cAAe,WACX,IAAIyB,EAAiB,SAAS5zJ,GAC1B,QAAI5D,KAAK4Y,OAAO,YACZhV,EAAEu5D,kBACK,IAIf,MAAO,CACHg6E,WAAY,WACR,GAAIn3I,KAAK4Y,OAAO,UACZ,OAAO,GAGfq+H,UAAW,WACP,GAAIj3I,KAAK4Y,OAAO,UACZ,OAAO,GAGfu4H,MAAO,SAASvtI,GACZ,GAAI5D,KAAKs1J,QAAQ18I,OAAO,UAAW,CAE/B,GADAhV,EAAEu5D,iBACEn9D,KAAKu1J,QAAQ38I,OAAO,eAAiB5Y,KAAKu1J,QAAQ38I,OAAO,gBAAiB,CAC1E,IAAI6+I,EAAYz3J,KAAK03J,qBACjBC,EAAoB33J,KAAKguE,mBACzB4pF,EAAsB53J,KAAK63J,wBAM/B,OALID,GAAuBH,GAAa,aAAeE,GACnD33J,KAAK+2J,aAAaU,EAAW7zJ,GAEjCg0J,GAAuB53J,KAAKs1J,QAAQ3rC,QACpC3pH,KAAKs1J,QAAQ9gB,yBAAyB5wI,IAC9Bg0J,EAER,OAAO,EAGX53J,KAAKs1J,QAAQ9gB,yBAAyB5wI,IAE5C4X,KAAKxb,MACPo3I,KAAMogB,EACNrlI,IAAKqlI,IAGbvhJ,iBAAkB,SAASO,GACvB,OAAOA,GAAiB,aAE5BqhJ,sBAAuB,KAAM,EAC7BlC,eAAgB,WACZ,OAAO,IAEX+B,mBAAoB,WAChB,OAAO13J,KAAKu1J,QAAQxI,MAAMn0I,OAAO,kBAErC,sBACI,OAAO5Y,KAAKu1J,SAEhBM,kBAAmB,WACf,IAAIjQ,EAAgB5lJ,KAAKs1J,QAAQ18I,OAAO,iBACxC,OAAO,OAAAne,EAAA,WAAOuF,KAAKs1J,QAAQ18I,OAAO,mBAAoB,CAClD/W,MAAO7B,KAAK+2J,gBAAkB,KAC9BriH,wBAAyB,KACzB7rC,IAAK7I,KAAKs1J,QAAQgC,WAAW,OAC7BxuJ,IAAK9I,KAAKs1J,QAAQgC,WAAW,OAC7B3zG,eAAgB3jD,KAAK83J,qBAAqBt8I,KAAKxb,MAC/Cq2C,YAAar2C,KAAKwxJ,kBAAkBh2I,KAAKxb,MACzCo6C,SAAU,KACVwrG,cAAe,eAAWA,GAAiB5lJ,KAAKuxJ,iBAAiB3L,EAAcpqI,KAAKxb,KAAKs1J,UAAY1P,EACrG4G,mBAAoBxsJ,KAAKqyG,yBAAyB72F,KAAKxb,MACvDysJ,gBAAgB,KAGxB8E,iBAAkB,SAASvoH,GACvB,IAAIrlC,EAAO3D,KACX,OAAO,SAAS2wE,GAIZ,OAHA,OAAAl2E,EAAA,WAAOk2E,EAAQ,CACX/+D,UAAWjO,EAAK2xJ,UAEbtsH,EAAK2nC,KAGpB0hC,yBAA0B,SAASzuG,GAC/B5D,KAAKguE,mBAAqB,WAC1BhuE,KAAKs1J,QAAQh4I,QAAQ,mBAAoB1Z,EAAEm0J,cAE/CzB,YAAa,SAAS0B,GAClB,IAAItyG,EAAesyG,EAAatyG,aAC5BuyG,EAAkBj4J,KAAKs1J,QAAQ18I,OAAO,mBACtCusC,EAAW,GAuBf,OArBIA,EADA,YAAc8yG,EACH,eAAUA,GAEV,CAAC,SAAU,UAEtB,eAAiBj4J,KAAKs1J,QAAQ18I,OAAO,mBAAqB5Y,KAAKk4J,sBAC/DxyG,EAAa/iC,QAAQ,CACjBwoC,OAAQ,WACR9Q,QAAS8K,EAAS,GAClB6F,SAAU,UAAY7F,EAAS,GAAK,SAAWA,EAAS,GACxDrvC,QAAS,CACL2hC,cAAe,SAAS7zC,GACpBA,EAAEgO,UAAUumJ,mBAAmB,SAAUn4J,KAAKo4J,eAAe58I,KAAKxb,QACpEwb,KAAKxb,MACP87C,QAASzM,IACLrvC,KAAKu1J,QAAQ7B,aAAarkH,IAE9B9yC,KAAM,OAAoBlD,OAAO,8BACjCoF,KAAM,WAIX,OAAAhE,EAAA,YAAO,EAAMu9J,EAAc,CAC9BtyG,aAAcA,EACdP,SAAU,CACN9rC,UAAW,gBAEfhO,MAAO,UAGf6sJ,mBAAoB,WAChB,OAAO,eAAcl4J,KAAKs1J,QAAQ18I,OAAO,sBAAuB,IAAU5Y,KAAKs1J,QAAQ18I,OAAO,4BAElGw/I,eAAgB,WACZp4J,KAAKs1J,QAAQ3rC,QACb3pH,KAAKs1J,QAAQ3gG,SAEjBmjG,qBAAsB,SAASl0J,GAC3B,IAAI/B,EAAQ+B,EAAE/B,MACVq3E,EAAYt1E,EAAE24E,cACd,QAAUitE,SAAS3nJ,EAAOq3E,IAAc,QAAUm/E,oBAAoBx2J,EAAOq3E,IAG7E,cAAgBl5E,KAAKs1J,QAAQ18I,OAAO,mBACpC5Y,KAAK+2J,aAAa/2J,KAAKo3J,WAAYxzJ,EAAEouD,QAG7CqkG,aAAc,WACLr2J,KAAKu1J,SAGVv1J,KAAKu1J,QAAQ38I,OAAO,QAAS5Y,KAAK+2J,iBAEtCG,mBAAoB,WAChBl3J,KAAKguE,mBAAqB,QACtBhuE,KAAKs1J,QAAQ18I,OAAO,WAAa5Y,KAAKu1J,SACtCv1J,KAAKq2J,cAAa,IAG1B7E,kBAAmB,SAAS5tJ,GACxB,IAAI0xJ,EAAUt1J,KAAKs1J,QACf,cAAgBA,EAAQ18I,OAAO,oBAC/B08I,EAAQ18I,OAAO,UAAU,GACzB5Y,KAAK+2J,aAAa/2J,KAAKo3J,WAAYxzJ,EAAEouD,WAIlC,M,0BCtKR,MAAM,GACT,YAAYvH,GACRzqD,KAAKs4J,qBAAuB,aAC5Bt4J,KAAKu4J,mBAAqB,WAC1Bv4J,KAAKw4J,eAAiB,OACtBx4J,KAAKyqD,UAAY,OAASA,QAAa,IAAWA,EAAYA,EAAY,QAE9E,mBACI,OAAOzqD,KAAKyqD,YAAc,SAAwBzqD,KAAKyqD,YAAc,QAEzE,iBACI,OAAOzqD,KAAKyqD,YAAc,SAAsBzqD,KAAKyqD,YAAc,QAEvE,aACI,OAAOzqD,KAAKyqD,YAAc,SCT3B,SAASguG,GAAkBztG,EAAUP,GACxC,GAAI,eAAcO,GAAW,CACzB,IAAIruC,EAAO,eAAcquC,EAASruC,KAAMquC,EAAS/3C,GAC7C2J,EAAM,eAAcouC,EAASpuC,IAAKouC,EAAS74C,GAC/C,MAAO,CACHwK,KAAM,eAAUA,GAAQA,OAAO,EAC/BC,IAAK,eAAUA,GAAOA,OAAM,GAGpC,IACI0rD,aAAcA,EACdpsD,WAAYA,GACZ,IAAI,GAAgBuuC,GACxB,MAAO,CACH9tC,KAAM2rD,GAAgB,eAAUtd,GAAYA,OAAW,EACvDpuC,IAAKV,GAAc,eAAU8uC,GAAYA,OAAW,GCE5D,IAAI0tG,GAAwB,oBACxBC,GAA+B,kBAC/BC,GAAgC,4BAChCC,GAA6B,mBAC7BC,GAAsC,4BACtCC,GAA4C,kCAC5CC,GAA6C,mCACjD,MAAM,WAAuB,QACzB,qBACI,OAAO,OAAAv+J,EAAA,WAAOisG,MAAMC,qBAAsB,CACtC94C,cAAe,QACfC,WAAW,EACX++C,cAAe,EACf9wC,eAAe,EACfxxD,MAAO,GACP0uJ,aAAa,EACbn9G,QAAS,KACTo9G,uBAAwB,KACxBvrG,iBAAiB,IAGzB,QACI+4C,MAAMiB,QACN3nG,KAAK4Y,OAAO,qBAAsB5Y,KAAKm5J,0BAA0B39I,KAAKxb,OACtEA,KAAK4Y,OAAO,QAAS5Y,KAAKo5J,kBAAkB59I,KAAKxb,OAErD,UACI0mG,MAAMoM,UACN9yG,KAAKq5J,2BACLr5J,KAAK6W,WAAWsB,SAASugJ,IACzB14J,KAAKs5J,wBACLt5J,KAAKkrG,eACLlrG,KAAKu5J,uBACLv5J,KAAKw5J,oBACLx5J,KAAKy5J,oBACLz5J,KAAK05J,8BAET,8BACI15J,KAAK25J,sBAAwB35J,KAAKiyD,sBAAsB,0BAE5D,oBACI,OAAanoD,GAAG,eAAE9J,KAAKgZ,aAAc,eAAgBpV,IACjD5D,KAAK45J,kBAAmB,IAGhC,wBACI,GAAK55J,KAAK4Y,OAAO,eAAjB,CAGA,IAAI+6F,EAAY,gBAAa,OAAgB3zG,KAAKuyD,MAC9CsnG,EAAc75J,KAAKiyD,sBAAsB,WAC7C,OAAahB,IAAI,eAAEjxD,KAAKgZ,aAAc26F,GACtC,OAAa7pG,GAAG,eAAE9J,KAAKgZ,aAAc26F,GAAW,SAAU/vG,GACtDi2J,EAAY,CACR7nG,MAAOpuD,QAInB,eACI,IAAI2G,EAAQvK,KAAK4Y,OAAO,UAAY,GAChC64F,EAAS,iBACb,eAAEzxG,KAAK45D,WAAWxH,QAClB7nD,EAAMrJ,SAAQ,SAAU2I,GACpB4nG,EAASA,EAAO3hG,IAAI,eAAE,SAASqI,SAAS0gJ,IAA4B9+H,OAAOlwB,OAE/E,eAAE7J,KAAK45D,WAAW7/B,OAAO03E,GACzBzxG,KAAK85J,QAAUroD,EACfzxG,KAAKskE,SAET,2BACI,eAAE,SAASnsD,SAAS4gJ,IAA2Ch/H,OAAO,eAAE,SAAS5hB,SAAS6gJ,KAA6C5gJ,SAAS,eAAEpY,KAAKgZ,cAE3J,qBAAqB6zF,GACjB,IAAIzrG,EAAQpB,KAAK+5J,UAAU,OAASltD,QAAiB,IAAWA,EAAgBA,EAAgB7sG,KAAK4Y,OAAO,kBAC5G5Y,KAAKg6J,QAAQ,CACTp9I,IAAK5c,KAAKi6J,iBAAiB74J,KAE/BpB,KAAKk6J,yBAET,UAAU94J,GACN,IAAImJ,EAAQvK,KAAK4Y,OAAO,UAAY,GAChCkpF,EAAYv3F,EAAM3Q,OACtB,OAAIwH,GAAS0gG,EACFA,EAAY,EAEnB1gG,EAAQ,EACD,EAEJA,EAEX,iBAAiBA,GACb,OAAOoQ,KAAKyrF,MAAMj9F,KAAKm6J,cAAgB/4J,GAE3C,oBACI,IAAIg5J,EAAep6J,KAAKq6J,mBACpB1mD,EAAY,gBAAa,OAAgB3zG,KAAKuyD,MAClD,OAAatB,IAAIjxD,KAAK6W,WAAY88F,EAAWymD,GAC7C,OAAatwJ,GAAG9J,KAAK6W,WAAY88F,EAAWymD,EAAcp6J,KAAKukH,kBAAkB/oG,KAAKxb,OAE1F,mBACI,MAAO,IAAM64J,GAEjB,kBAAkBj1J,GACd5D,KAAK4Y,OAAO,gBAAiB5Y,KAAKs6J,kBAAkB12J,EAAEy2D,gBAE1D,kBAAkBywC,GACd,OAAO9qG,KAAKouG,gBAAgBhtG,MAAM0pG,GAEtC,gBACI,OAAO9qG,KAAK6W,WAAWiB,KAAK9X,KAAKq6J,oBAErC,yBACI,IAAIxtD,EAAgB7sG,KAAK4Y,OAAO,iBAChC,eAAK5Y,KAAK85J,SAAS,SAAU14J,GACzB,eAAEpB,MAAMu0D,YAAYukG,GAAqCjsD,IAAkBzrG,MAGnF,8BACI,MAAO,YAAcwoG,GAAA,KAAQC,OAAOC,YAAc9pG,KAAK45J,iBAE3D,QAAQj5E,GACJ,IACI/jE,IAAKA,EACLD,KAAMA,GACN87I,GAAkB93E,GAClB31B,EAAWhrD,KAAKy+F,eAChBg0C,EAAQ,CACRx/H,EAAG+3C,EAASruC,KAAOA,EACnBxK,EAAG64C,EAASpuC,IAAMA,GAEtB,GAAI5c,KAAKuwI,eAAiBkC,EAAMx/H,GAAKw/H,EAAMtgI,GAEvC,GADAnS,KAAKu6J,oBAAmB,GACpBv6J,KAAKw6J,aAAex6J,KAAKy6J,8BAA+B,CACxD,IAAI92J,EAAO3D,KACXg3G,GAAA,KAAG9nG,KAAK,eAAElP,KAAK45D,YACfo9C,GAAA,KAAGG,QAAQ,eAAEn3G,KAAK45D,WAAY,CAC1BlP,SAAU,IACVjsD,KAAM,QACN/F,GAAI,CACAkkB,IAAKpL,KAAKE,MAAM+gI,EAAMtgI,IAE1B,WACI,gBAAc,eAAExO,EAAKi2D,YACrBj2D,EAAK+2J,WAAW,CACZjoB,MAAOA,cAIZzyI,KAAKw6J,gBAEZx6J,KAAK06J,WAAW,CACZjoB,MAAOA,IAKvB,UAAU7uI,GACN,OAAO5D,KAAK26J,eAAe/2J,GAE/B,yBAAyBxC,GACrB,IAAI0qF,EAAa9rF,KAAK4Y,OAAO,SAAShf,OACtC,OAAO4X,KAAK1I,IAAI0I,KAAK3I,IAAIzH,EAAO0qF,EAAa,GAAI,GAErD,sBAAsB74E,GAClB,OAAQ,IAAMA,GAAKA,GAAK,GAE5B,6BAA6B2nJ,GACzB,IAAIC,EAAc76J,KAAKy+F,eAAe7hF,IAClCk+I,EAA+BF,EAAuB56J,KAAKm6J,cAC3DY,EAAKF,EAAcC,EACvB,GAAI96J,KAAKg7J,sBAAsBD,GAC3B,OAAOH,EAEX,IAAInwG,EAAYswG,EAAK,EAAI,GAAK,EAC1BE,EAAmBj7J,KAAKk7J,yBAAyBN,EAAuBnwG,GAC5E,OAAOwwG,EAEX,qBAAqBL,GACjB,GAAI56J,KAAKy6J,8BACL,OAAOz6J,KAAKm7J,6BAA6BP,GAE7C56J,KAAKw6J,YAAa,EAClB,IAAIj6C,EAAQvgH,KAAKy+F,eAAe7hF,IAAM5c,KAAKm6J,cAC3C,OAAO3oJ,KAAKyrF,MAAMsjB,GAEtB,oBACI,IAAIq6C,EAAuB56J,KAAK4Y,OAAO,iBACnCqiJ,EAAmBj7J,KAAKo7J,qBAAqBR,GAC7CK,IAAqBL,EACrB56J,KAAKu5J,qBAAqB0B,GAE1Bj7J,KAAK4Y,OAAO,gBAAiBqiJ,GAEjCj7J,KAAK45J,kBAAmB,EAE5B,cACI,IAAI39D,EAAQj8F,KAAK85J,QAAQvvF,QACzB,OAAO,eAAU0xB,GAErB,cAAc/7D,GACVlgC,KAAK6W,WAAW09C,YAAYokG,GAA8Bz4H,GAE9D,aACI,OAAO,eAAElgC,KAAKgZ,aAAaprB,GAAG,YAElC,0BAA0BiU,EAAO06E,GAC7Bv8E,KAAK25J,sBAAsB,CACvB93J,MAAOA,EACP06E,cAAeA,EACfvqB,WAAO,IAGf,mBAAmBzX,GACfmsD,MAAMnF,mBAAmBhnD,GACzBv6C,KAAKm5J,0BAA0B5+G,GAEnC,0BAA0BA,GAClBA,IACAv6C,KAAKq7J,iBAAmB37H,WAAW,KAC/B1/B,KAAKu5J,qBAAqBv5J,KAAK4Y,OAAO,qBAG9C5Y,KAAKs7J,mBAAkB,GAE3B,kBAAkBp7H,GACdlgC,KAAK6W,WAAW09C,YAAYqkG,GAA+B14H,GAE/D,wBACI,IAAI2sE,EAAgB7sG,KAAK4Y,OAAO,iBAC5B2iJ,EAAWv7J,KAAK+5J,UAAUltD,GAC1B0uD,IAAa1uD,EACb7sG,KAAKk6J,yBAELl6J,KAAK4Y,OAAO,gBAAiB2iJ,GAGrC,eAAelsH,GACX,OAAQA,EAAKztC,MACT,IAAK,gBACD5B,KAAKw7J,0BAA0BnsH,EAAKxtC,MAAOwtC,EAAKktC,eAChDv8E,KAAKu5J,qBAAqBlqH,EAAKxtC,OAC/B,MACJ,IAAK,QACD7B,KAAKkrG,eACLlrG,KAAKy7J,wBACL,MACJ,IAAK,UACL,IAAK,cACDz7J,KAAKs5J,wBACL,MACJ,IAAK,yBACDt5J,KAAK05J,8BACL,MACJ,QACIhzD,MAAMwH,eAAe7+D,IAGjC,WACI+qB,aAAap6D,KAAKq7J,kBAClB30D,MAAMmpB,YAGd,eAAkB,mBAAoB,IACvB,UCrRX6rC,GAAiB,cACjBC,GAAyB,sBACzBC,GAAyB,sBACzBC,GAAkC,sBAClC,GAAwB,oBACxBC,GAAO,CACPxiK,KAAM,OACNs6E,SAAU,WACVxoC,KAAM,QAEN2wH,GAAc,CACdviK,KAAM,OACNqD,MAAO,QACPJ,IAAK,MACL8C,MAAO,SAEPy8J,GAAW,QAAOjsG,QAAQ,CAC1BksG,aAAc,WACV,IAAIp6J,EAAQ7B,KAAK4Y,OAAO,SACpBtf,EAAO,IAAIS,KAAK8H,GACpB,OAAQA,GAAS2B,MAAMlK,GAAQ0G,KAAKk8J,kBAAoB5iK,GAE5D4iK,gBAAiB,WACb,IAAI5iK,EAAO,IAAIS,KACf,OAAIiG,KAAK4Y,OAAO,UAAYkjJ,GAAKxiK,KACtB,IAAIS,KAAKT,EAAKG,cAAeH,EAAKW,WAAYX,EAAKY,WAEvDZ,GAEXqtG,mBAAoB,WAChB,OAAO,OAAAlsG,EAAA,WAAOuF,KAAKC,WAAY,CAC3B4lB,QAAS,GAAYu7H,0BACrBt7H,QAAS,GAAYu7H,0BACrB5iJ,KAAMq9J,GAAKxiK,KACXuI,MAAO,IAAI9H,KACXoiK,mBAAmB,KAG3B1rD,qBAAsB,WAClB,OAAOzwG,KAAKC,WAAW0nB,OAAO,CAAC,CAC3B+oF,OAAQ,SAASif,GACb,MAAO,YAAcA,EAAQ7lB,YAEjCh0F,QAAS,CACLqmJ,mBAAmB,OAI/BrpD,QAAS,WACL9yG,KAAKC,WACLD,KAAK6W,WAAWsB,SAASujJ,IACzB17J,KAAKo8J,qBAAqBp8J,KAAK4Y,OAAO,SACtC5Y,KAAKq8J,uBAETD,qBAAsB,SAASje,EAAeme,GAC1Ct8J,KAAK6W,WAAWsB,SAASujJ,GAAiB,IAAMvd,GAChDme,GAAkBt8J,KAAK6W,WAAWwB,YAAYqjJ,GAAiB,IAAMY,IAEzED,oBAAqB,WACjBr8J,KAAK6W,WAAW09C,YAAYonG,GAAwB37J,KAAK4Y,OAAO,uBAEpE2jJ,SAAU,WACN,OAAOv8J,KAAKw8J,WAEhB5kD,mBAAoB,WAChB53G,KAAKw8J,UAAY,eAAE,SAASrkJ,SAASyjJ,IACrC57J,KAAKy8J,iBACLz8J,KAAKw8J,UAAUpkJ,SAASpY,KAAK6W,aAEjC4lJ,eAAgB,WACPz8J,KAAK08J,qBACN18J,KAAK08J,mBAAqB,eAAE,SAASvkJ,SAAS0jJ,KAElD77J,KAAK08J,mBAAmBtqG,QACxBpyD,KAAK28J,uBACL38J,KAAK48J,SAAW,GAChB,IAAIj5J,EAAO3D,KACX,eAAK2D,EAAKk5J,gBAAgB,SAAUj7J,GAChC,IAAIk7J,EAAU,eAAE,SAAS1kJ,SAASzU,EAAK+4J,oBAAoBvkJ,SAAS,GAAwB,IAAMxU,EAAKk5J,eAAej7J,GAAMnD,MAC5HkF,EAAKi5J,SAASj5J,EAAKk5J,eAAej7J,GAAMnD,MAAQkF,EAAKsV,iBAAiB6jJ,EAAS,GAAgB,CAC3FvyJ,MAAO5G,EAAKk5J,eAAej7J,GAAMm7J,aACjClwD,cAAelpG,EAAKk5J,eAAej7J,GAAMirG,cACzCh/C,cAAe,QACfF,iBAAiB,EACjBq1F,QAAS,SAASp/I,GACd,IAAIo5J,EAASp5J,EAAEgO,UACforJ,EAAOC,eAAc,GACrBt5J,EAAKu5J,iBAAiBv5J,EAAKk5J,eAAej7J,GAAOo7J,EAAOpkJ,OAAO,mBAEnEkqB,MAAO,SAASl/B,GACZ,IAAIo5J,EAASp5J,EAAEgO,UACforJ,EAAOC,eAAc,IAEzBnhH,QAAS,SAASl4C,GACd,IAAIo5J,EAASp5J,EAAEgO,UACforJ,EAAOC,eAAc,GACrBt5J,EAAKu5J,iBAAiBv5J,EAAKk5J,eAAej7J,GAAOo7J,EAAOpkJ,OAAO,kBAC/DjV,EAAKw5J,gBAAgBx5J,EAAKk5J,eAAej7J,GAAOo7J,EAAOpkJ,OAAO,kBAC9DokJ,EAAOC,eAAc,IAEzB/D,uBAAwB,SAASt1J,GAC7B,IAAIo5J,EAASp5J,EAAEgO,UACfjO,EAAKw5J,gBAAgBx5J,EAAKk5J,eAAej7J,GAAOo7J,EAAOpkJ,OAAO,wBAI1EjV,EAAK+4J,mBAAmBtkJ,SAASzU,EAAK44J,aAE1CI,qBAAsB,SAASl+J,GAC3B,IAAIkF,EAAO3D,KACXvB,EAAOA,GAAQkF,EAAKiV,OAAO,QAC3BjV,EAAKk5J,eAAiB,GACtB,QAAiBt8J,eAAe,GAAYkhJ,YAAYhjJ,IAAOyC,SAAQ,SAAU4B,GAC7Ea,EAAKy5J,oBAAoBt6J,OAGjCs6J,oBAAqB,SAAS9qG,GAgB1B,IAfA,IAAI0vF,EAAgB,GAAYC,qBAAqB3vF,GACjD+qG,EAAar9J,KAAKs9J,iCAAiChrG,GACnD/sC,EAAa83I,EAAW93I,WACxBC,EAAW63I,EAAW73I,SACtB3lB,EAAYmiJ,EAAcniJ,UAC1B09J,EAAUv9J,KAAKw9J,kBACf3rG,EAAS,CACTpzD,KAAM6zD,EACNymE,SAAUipB,EAAc1B,OACxBmd,WAAY,GACZV,aAAc,GACdW,SAAU,SAAS77J,GACf,OAAOA,EAAMmgJ,EAAch+E,UAAYz+C,IAGtC9pB,EAAI8pB,EAAY9pB,GAAK+pB,EAAU/pB,IACpCo2D,EAAO4rG,WAAWx6J,KAAKxH,GACvBo2D,EAAOkrG,aAAa95J,KAAKpD,EAAUpE,EAAG8hK,IAE1C1rG,EAAOg7C,cAAgBh7C,EAAO6rG,SAASH,GACvCv9J,KAAK68J,eAAevqG,GAAiBT,GAEzCqrG,iBAAkB,SAASS,GACvB,IAAIC,EAAeD,GAAiB39J,KAAK48J,SAASe,EAAcl/J,MAChE,eAAKuB,KAAK48J,UAAU,WAChB58J,KAAKs7J,kBAAkBt7J,OAAS49J,OAGxCC,uBAAwB,WACpB,IAAIl6J,EAAO3D,KACX,eAAKA,KAAK48J,UAAU,SAAUn+J,GAC1B,IAAIq/J,EAAen6J,EAAKk5J,eAAep+J,GAAMi/J,SAAS/5J,EAAK65J,mBAC3Dx9J,KAAK4Y,OAAO,gBAAiBklJ,OAGrCX,gBAAiB,SAASH,EAAQnwD,GAC9B,GAAIA,IAAkBmwD,EAAOnwD,cAAe,CACxC,IAAIkxD,EAAcf,EAAOS,WAAW5wD,GAChCksB,EAAWikC,EAAOjkC,SAClBk5B,EAAe,IAAIl4J,KAAKiG,KAAKw9J,mBAC7Bv8J,EAAcgxJ,EAAa/3J,UAC3B2rB,EAAU7lB,KAAK4Y,OAAO,WACtBkN,EAAU9lB,KAAK4Y,OAAO,WACtBokJ,EAAOv+J,OAASs9J,GAAYl/J,MAC5BoE,EAAcuQ,KAAK3I,IAAI5H,EAAa,GAAY4gJ,eAAeoQ,EAAax4J,cAAeskK,IACpFf,EAAOv+J,OAASs9J,GAAYviK,OACnCyH,EAAcuQ,KAAK3I,IAAI5H,EAAa,GAAY4gJ,eAAekc,EAAa9L,EAAah4J,cAE7Fg4J,EAAavrI,QAAQzlB,GACrBgxJ,EAAal5B,GAAUglC,GACvB,IAAIzO,EAAiB,QAAUL,cAAcgD,EAAcpsI,EAASC,GACpEmsI,EAAe,GAAYnQ,WAAWwN,EAAgB2C,EAAc,QACpEA,EAAe,QAAUhD,cAAcgD,EAAcpsI,EAASC,GAC9D9lB,KAAK4Y,OAAO,QAASq5I,GACrB+K,EAAOnwD,cAAgBA,EAEvBmwD,EAAOv+J,OAASs9J,GAAYviK,MAC5BwG,KAAKg+J,kBAELhB,EAAOv+J,OAASs9J,GAAYl/J,QAC5BmD,KAAKi+J,eAAelC,GAAYt/J,KAChCuD,KAAKi+J,eAAelC,GAAYx8J,SAGxC0+J,eAAgB,SAASC,GACrB,IAAIlB,EAASh9J,KAAK48J,SAASsB,GAC3B,GAAIlB,EAAQ,CACRh9J,KAAKo9J,oBAAoBc,GACzB,IAAIC,EAAen+J,KAAK68J,eAAeqB,GACnCA,IAAenC,GAAYt/J,KAAO0hK,EAAapB,aAAaprJ,aAAeqrJ,EAAOpkJ,OAAO,SAASjH,YAClGqrJ,EAAOpkJ,OAAO,CACVrO,MAAO4zJ,EAAapB,aACpBlwD,cAAesxD,EAAatxD,kBAK5C2wD,gBAAiB,WACb,IAAID,EAAUv9J,KAAKi8J,eACfp2I,EAAU7lB,KAAK4Y,OAAO,WACtBkN,EAAU9lB,KAAK4Y,OAAO,WAC1B,OAAO,QAAUq2I,cAAcsO,EAAS13I,EAASC,IAErDw3I,iCAAkC,SAAShrG,GACvC,IAAIirG,EAAUv9J,KAAKw9J,kBACf33I,EAAU7lB,KAAK4Y,OAAO,WACtBkN,EAAU9lB,KAAK4Y,OAAO,WACtBwlJ,EAAU,QAAUnU,SAASsT,EAAS13I,GACtCw4I,EAAWD,GAAWb,EAAQtjK,aAAe4rB,EAAQ5rB,WACrDqkK,EAAU,QAAUrU,SAASsT,EAASz3I,GACtCy4I,EAAWD,GAAWf,EAAQtjK,aAAe6rB,EAAQ7rB,WACrDukK,EAAUH,GAAYd,EAAQrjK,YAAc2rB,EAAQ3rB,UACpDukK,EAAUF,GAAYhB,EAAQrjK,YAAc4rB,EAAQ5rB,UACpD8nJ,EAAgB,GAAYC,qBAAqB3vF,GACjD/sC,EAAay8H,EAAcz8H,WAC3BC,EAAWw8H,EAAcx8H,SA0B7B,OAzBI8sC,IAAkBypG,GAAYviK,OAC9B+rB,EAAaM,EAAQpsB,cACrB+rB,EAAWM,EAAQrsB,eAEnB64D,IAAkBypG,GAAYl/J,QAC1BuhK,IACA74I,EAAaM,EAAQ5rB,YAErBqkK,IACA94I,EAAWM,EAAQ7rB,aAGvBq4D,IAAkBypG,GAAYt/J,MAC9B+oB,EAAW,GAAYq8H,eAAe0b,EAAQ9jK,cAAe8jK,EAAQtjK,YACjEmkK,GAAWC,IACX94I,EAAaM,EAAQ3rB,WAErBokK,GAAWC,IACX/4I,EAAWM,EAAQ5rB,YAGvBo4D,IAAkBypG,GAAYx8J,QAC9BgmB,EAAai5I,EAAU34I,EAAQ1rB,WAAaorB,EAC5CC,EAAWi5I,EAAU34I,EAAQ3rB,WAAaqrB,GAEvC,CACHD,WAAYA,EACZC,SAAUA,IAGlBw4I,gBAAiB,WACbh+J,KAAKi+J,eAAelC,GAAYl/J,OAChCmD,KAAKi+J,eAAelC,GAAYt/J,KAChCuD,KAAKi+J,eAAelC,GAAYx8J,QAEpC2uG,eAAgB,SAAS7+D,GACrB,OAAQA,EAAKztC,MACT,IAAK,UACL,IAAK,UACL,IAAK,OACD5B,KAAKy8J,iBACLz8J,KAAKo8J,qBAAqB/sH,EAAKxtC,MAAOwtC,EAAKktC,eAC3C,MACJ,IAAK,UACDv8E,KAAKC,SAASovC,GACVA,EAAKxtC,OACL7B,KAAKy8J,iBAET,MACJ,IAAK,QACDz8J,KAAK4Y,OAAO,QAAS5Y,KAAKi8J,gBAC1Bj8J,KAAKg+J,kBACLh+J,KAAK69J,yBACL,MACJ,QACI79J,KAAKC,SAASovC,KAG1B83D,OAAQ,WACJnnG,KAAKC,kBACED,KAAK08J,sBAGpB,eAAkB,aAAcV,IACjB,UC9RX,GAAS,iBAWT0C,GAAmB,GAAgB3uG,QAAQ,CAC3CwC,KAAM,WACNujG,kBAAmB,WACf,OAAO,OAAAr7J,EAAA,WAAOuF,KAAKC,WAAY,CAC3B0+J,kBAAkB,EAClBC,gBAAiB,OAAoBvlK,OAAO,MAC5C,6BAA6B,KAGrC4c,iBAAkB,SAASO,GACvB,OAAOA,GAAiB,GAAUirI,YAAYzhJ,KAAKs1J,QAAQ18I,OAAO,UAEtE09I,YAAa,SAASzkG,GAClB,MAAO,CACHnM,aAAc1lD,KAAKs1J,QAAQuJ,2BAC3BpnH,cAAeoa,EAAOpa,cACtBqnH,oBAAqB,CAAC,CAClBpuD,OAAQ,CACJj+E,SAAU,WAEd3c,QAAS,CACLzK,MAAO,IACPwR,OAAQ,MAEb,CACC6zF,OAAQ,SAASif,GACb,IAAIl9F,EAAWk9F,EAAQl9F,SACvB,MAAO,YAAcA,GAAY,QAAUA,GAE/C3c,QAAS,CACLzK,MAAO,OACPwR,OAAQ,SAEb,CACC6zF,OAAQ,SAASquD,GACb,IAAItsI,EAAWssI,EAAStsI,SACpBqhF,EAAQirD,EAASjrD,MACrB,MAAO,YAAcrhF,GAAYqhF,GAErCh+F,QAAS,CACLzK,MAAO,IACPo5C,SAAU,OACVD,UAAW,OACX3nC,OAAQ,OACRsoC,SAAU,CACN9rC,UAAW,kBAGpB,CACCq3F,OAAQ,CACJj+E,SAAU,MACVqhF,OAAO,GAEXh+F,QAAS,CACLzK,MAAO,OACP85C,SAAU,CACNmH,GAAI,SACJF,GAAI,SACJjzC,GAAI,SAMxBq8I,cAAe,WACX,GAAI,uBAAUx1J,KAAKs1J,QAAQ18I,OAAO,UAAY5Y,KAAKs1J,QAAQ0J,iBAAmBh/J,KAAKs1J,QAAQ18I,OAAO,YAC1F5Y,KAAKu1J,UACLv1J,KAAKu1J,QAAQ1+I,WAAW8B,SACxB3Y,KAAKu1J,QAAU,UAHvB,CAOA,IAAIr0G,EAAQlhD,KAAKw2J,YACjB,GAAIx2J,KAAKu1J,QACLv1J,KAAKu1J,QAAQ38I,OAAO5Y,KAAK61J,yBACtB,CACH,IAAIn+I,EAAU,eAAE,SAASU,SAAS8oC,EAAMwsB,YACxC1tE,KAAKu1J,QAAUv1J,KAAKy1J,cAAc/9I,GAEtC1X,KAAKu1J,QAAQ1+I,WAAWuB,SAASpY,KAAK01J,yBAE1CC,eAAgB,WACZ,OAAO,IAEXS,kBAAmB,WACfp2J,KAAKC,WACDD,KAAKu1J,SACLv1J,KAAKu1J,QAAQ38I,OAAO,QAAS5Y,KAAKu1J,QAAQiI,oBAGlD3H,kBAAmB,WACf,MAAO,CACHh0J,MAAO7B,KAAK+2J,gBAAkB,IAAIh9J,KAClC0E,KAAMuB,KAAKs1J,QAAQ18I,OAAO,QAC1BiN,QAAS7lB,KAAKs1J,QAAQgC,WAAW,QAAU,IAAIv9J,KAAK,KAAM,EAAG,GAC7D+rB,QAAS9lB,KAAKs1J,QAAQgC,WAAW,QAAU,IAAIv9J,KAAKA,KAAKsX,MAAQ,GAAK,GAAU2vI,UAChFpqG,YAAa,WACT52C,KAAKu1J,QAAU,MACjB/5I,KAAKxb,UAIJ,MCxGXi/J,GAAiB,GAAgBlvG,QAAQ,CACzCwC,KAAM,SACN+jG,YAAa,SAAS0B,GAClB,OAAO,OAAAv9J,EAAA,WAAO,GAAIu9J,EAAc,CAC5B3sJ,MAAO,UAGf6qJ,cAAe,SAAS35J,GACpB,OAAKA,EAGD,aAAeyD,KAAKs1J,QAAQ18I,OAAO,QAC5B,IAAI7e,KAAKwC,EAAKpB,QAAQ,KAAM,KAAKA,QAAQ,IAAK,KAAKU,MAAM,KAAK,IAElE,GAAU+lJ,uBAAuBrlJ,GAL7B,MAOfk6J,mBAAoB,OACpBd,eAAgB,OAChBE,kBAAmB,OACnBqJ,gBAAiB,WACb,IAAIzgK,EAAOuB,KAAKs1J,QAAQ18I,OAAO,QAM/B,OALK,GAAUuoI,kBAAkBn+I,SAASvE,GAE/B,aAAeA,GAAS,uBAAUA,KACzCA,EAAO,kBAFPA,EAAO,OAIJA,GAEXw3J,iBAAkB,WACd,IAAIkJ,EAAiBn/J,KAAKs1J,QAAQ8J,UAAU,YACxCx1D,GAAA,KAAQC,OAAOw1D,SAAWF,GAC1BA,EAAer1J,GAAG,QAAS,WACvB9J,KAAKs1J,QAAQziB,SAASn1I,IAAI,GAAG4hK,SAC/B9jJ,KAAKxb,QAGf81J,kBAAmB,WACf,MAAO,CACHxpH,KAAMtsC,KAAKk/J,oBAGnBjpJ,iBAAkB,SAASO,GACvB,IAAI/X,EAAOuB,KAAKk/J,kBAChB,OAAO1oJ,GAAiB,GAAUirI,YAAYhjJ,IAElD03J,kBAAmB,SAAS1iB,GACxBA,EAAO/hF,KAAK,CACR7oD,IAAK,GAAkB6pE,cAAc1yE,KAAKs1J,QAAQgC,WAAW,OAAQ,cACrExuJ,IAAK,GAAkB4pE,cAAc1yE,KAAKs1J,QAAQgC,WAAW,OAAQ,mBAIlE,M,aC/BXiI,GAAY,SACZC,GAAe,UACfC,GAAiB,cACjBC,GAAoB,gBACpBC,GAAc,CACdziJ,IAAK,WACLgiD,IAAK,aAEL0gG,GAAc,CACd1iJ,IAAK,WACLgiD,IAAK,aAEL2gG,GAAS,EACTC,GAA2B,CAC3Bj1G,MAAO,aACP14B,IAAK,WACL4tI,OAAQ,SACR,gBAAiB,gBACjB,eAAgB,gBAEhBC,GAAuB,CACvBn1G,MAAO,aACP14B,IAAK,WACL4tI,OAAQ,SACRE,QAAS,WAETC,GAAqB,CACrBhjJ,IAAK,MACLgiD,IAAK,UAELihG,GAAc,CAACzoJ,EAAS47H,EAAMzxI,KAG9B,GAFAA,EAAQ,eAAmByxI,EAAMzxI,GACjC6V,EAAQujD,MAAM,eAAUq4E,IAASzxI,GAC5B,iBAAa,CACd,GAAI,KAAOA,IAAU,eAAUA,GAC3B,OAEJ,IAAIu+J,EAAU,gBAAU9sB,GACpB+sB,EAAYD,EAAU,KAAOv+J,EAAQ,IACpC6V,EAAQ2jD,WAAWJ,MAEbvjD,EAAQ2jD,WAAWJ,MAAMp5D,MAAMvD,QAAQ+hK,GAAa,IAC3D3oJ,EAAQ2jD,WAAWJ,MAAMp5D,OAAS,IAAMw+J,GAFxC3oJ,EAAQ+5C,aAAa,QAAS4uG,KAMtCC,GAAqB,QACrBC,GAAe,YAAcD,GAC7BE,GAAoB,uBACpBC,GAAoB,CACpBvjJ,IAAK,SACLgiD,IAAK,UAELwhG,GAAyB,CACzBxjJ,IAAK,CACDtb,KAAM,QACNoiE,OAAQ,OACRs8E,OAAQ,QAEZphF,IAAK,CACDt9D,KAAM,SACNoiE,OAAQ,OACRs8E,OAAQ,SAGZqgB,GAA0B,CAC1BzjJ,IAAKwjJ,GAAuBxhG,IAC5BA,IAAKwhG,GAAuBxjJ,KAE5B0jJ,GAA0B,CAC1B1jJ,IAAK,aACLgiD,IAAK,aAEL2hG,GAA2B,CAC3B3jJ,IAAK,cACLgiD,IAAK,gBAEL4hG,GAAgC,CAChC5jJ,IAAK,YACLgiD,IAAK,cAEL6hG,GAAiC,CACjC7jJ,IAAK,eACLgiD,IAAK,eAEL8hG,GAAuB,CACvBC,WAAY,cACZC,YAAa,cAEjB,MAAM,WAAgB,QAClB,eAAer/J,EAAO6gE,GAClBgkC,MAAMy6D,eAAet/J,GACjB,eAAU6gE,IACV1iE,KAAKohK,SAASC,2BAA2B,CACrCz/J,KAAM,UACNs+B,MAAOr+B,EACPqwH,SAAUxvD,KAK1B,MAAM,GACF,YAAY7rD,EAAU+B,GAClB5Y,KAAK8zD,UAAYj9C,EACjB7W,KAAKshK,QAAU1oJ,EACf5Y,KAAKuhK,SAAW,OAChBvhK,KAAKskE,OAAS,OAElB,YACItkE,KAAK8zD,UAAUr3C,IAAI,CACf+pD,QAAS,eAAgB,iBAAmB,SAEhD25F,GAAYngK,KAAK8zD,UAAUp2D,IAAI,GAAI,gBAAiBwiK,GAAmBlgK,KAAKshK,QAAQ,eAExF,cACIthK,KAAK8zD,UAAUr3C,IAAI,CACf+kJ,eAAgBxhK,KAAKyhK,qBAG7B,mBACI,IAAIC,EAAQ1hK,KAAKshK,QAAQ,SACzB,OAAOI,KAAS5B,GAA2BA,GAAyB4B,GAASA,EAEjF,mBACI1hK,KAAK8zD,UAAUr3C,IAAI,CACfklJ,WAAY3hK,KAAK4hK,0BAGzB,wBACI,IAAIC,EAAa7hK,KAAKshK,QAAQ,cAC9B,OAAOO,KAAc7B,GAAuBA,GAAqB6B,GAAcA,EAEnF,YAAYpwD,GACR,IAAIqwD,EAAiB,eAAgB,iBACjCr3G,EAAYzqD,KAAKshK,QAAQ,aAC7B,eAAK7vD,GAAQ,WACT,IAAIxV,EAAQ,eAAEj8F,MACV6J,EAAOoyF,EAAM73F,KAAKs7J,IACtBzjE,EAAMx/E,IAAI,CACN+pD,QAASs7F,EAAiB,SAC3BrlJ,IAAImjJ,GAAYn1G,GAAY5gD,EAAKk4J,SAAW,QAAQtlJ,IAAIkjJ,GAAYl1G,GAAY5gD,EAAKm4J,SAAW,KACnG7B,GAAYlkE,EAAMv+F,IAAI,GAAI,YAAamM,EAAKo4J,UAAY,GACxD9B,GAAYlkE,EAAMv+F,IAAI,GAAI,WAAYmM,EAAK02G,OAC3C4/C,GAAYlkE,EAAMv+F,IAAI,GAAI,aAAc,eAAUmM,EAAKq4J,QAAUr4J,EAAKq4J,OAASrC,IAC/E5jE,EAAMjkC,WAAWmqG,KAAK,CAACpjK,EAAGipG,KACtB,eAAEA,GAAavrF,IAAI,CACfpR,MAAO,OACPwR,OAAQ,OACR2pD,QAAS,eAAgB,iBAAmB,OAC5C47F,UAAW,IAEfjC,GAAYn4D,EAAa,WAAY,GACrCm4D,GAAYn4D,EAAa,gBAAiB,eAAEA,GAAa,GAAG/sC,MAAMonG,eAAiB,gBAKnG,MAAM,GACF,YAAYxrJ,EAAU+B,GAClB5Y,KAAK8zD,UAAYj9C,EACjB7W,KAAKshK,QAAU1oJ,EAEnB,YACI5Y,KAAK8zD,UAAUr3C,IAAI,CACf6lJ,SAAU,EACVC,WAAY9B,GAAkBzgK,KAAKshK,QAAQ,cAC3CkB,cAAe,QAEnB,OAAavxG,IAAIjxD,KAAK8zD,UAAWysG,IACjC,OAAaz2J,GAAG9J,KAAK8zD,UAAWysG,GAAcvgK,KAAKskE,OAAO9oD,KAAKxb,OAEnE,cACI,IAAIyxG,EAASzxG,KAAK85J,QAClB,GAAKroD,EAAL,CAGA,IAAIiwD,EAAQ1hK,KAAKshK,QAAQ,SACrBmB,EAAgBziK,KAAKyiK,cACrBh4G,EAAYzqD,KAAKshK,QAAQ,aACzBoB,EAAUhC,GAAuBj2G,GAAWuZ,OAAOhkE,KAAK8zD,WACxD4sD,EAAYgiD,EAAUD,EACtB9wI,EAAQ,EAEZ,OADA3xB,KAAK2iK,iBAAiBlxD,EAAQhnD,EAAW,GACjCi3G,GACJ,IAAK,QACD,MACJ,IAAK,MACD/vI,EAAQ+uF,EACRjP,EAAOlnC,QAAQ9tD,IAAIzc,KAAK4iK,kBAAkBhC,GAAwBn2G,IAAa94B,GAC/E,MACJ,IAAK,SACDA,EAAQ,GAAK+uF,EACbjP,EAAOlnC,QAAQ9tD,IAAIzc,KAAK4iK,kBAAkBhC,GAAwBn2G,IAAa94B,GAC/E8/E,EAAO15F,OAAO0E,IAAIzc,KAAK4iK,kBAAkB/B,GAAyBp2G,IAAa94B,GAC/E,MACJ,IAAK,gBACDA,EAAQ,GAAK+uF,GAAajP,EAAO73G,OAAS,GAC1CoG,KAAK2iK,iBAAiBlxD,EAAQhnD,EAAW94B,GACzC8/E,EAAOlnC,QAAQ9tD,IAAIzc,KAAK4iK,kBAAkBhC,GAAwBn2G,IAAa,GAC/EgnD,EAAO15F,OAAO0E,IAAIzc,KAAK4iK,kBAAkB/B,GAAyBp2G,IAAa,GAC/E,MACJ,IAAK,eACD94B,EAAQ,GAAK+uF,EAAYjP,EAAO73G,OAChCoG,KAAK2iK,iBAAiBlxD,EAAQhnD,EAAW94B,KAGrD,iBAAiB8/E,EAAQhnD,EAAW94B,GAChC8/E,EAAOh1F,IAAIzc,KAAK4iK,kBAAkBhC,GAAwBn2G,IAAa94B,GAAOlV,IAAIzc,KAAK4iK,kBAAkB/B,GAAyBp2G,IAAa94B,GAEnJ,mBACI,IAAI8/E,EAASzxG,KAAK85J,QAClB,GAAKroD,EAAL,CAGA,IAAIowD,EAAa7hK,KAAKshK,QAAQ,cAC1B72G,EAAYzqD,KAAKshK,QAAQ,aACzB7nI,EAAOknI,GAAwBl2G,GAAWuZ,OAAOhkE,KAAK8zD,WACtDnwD,EAAO3D,KACX,OAAQ6hK,GACJ,IAAK,QACD,MACJ,IAAK,MACD,eAAKpwD,GAAQ,WACT,IAAIxV,EAAQ,eAAEj8F,MACV6iK,EAAWlC,GAAwBl2G,GAAWuZ,OAAOi4B,GACrDtqE,EAAQ8H,EAAOopI,EACnB5mE,EAAMx/E,IAAI9Y,EAAKi/J,kBAAkB9B,GAA8Br2G,IAAa94B,MAEhF,MACJ,IAAK,SACD,eAAK8/E,GAAQ,WACT,IAAIxV,EAAQ,eAAEj8F,MACV6iK,EAAWlC,GAAwBl2G,GAAWuZ,OAAOi4B,GACrDtqE,EAAQ,IAAM8H,EAAOopI,GACzB5mE,EAAMx/E,IAAI9Y,EAAKi/J,kBAAkB9B,GAA8Br2G,IAAa94B,GAAOlV,IAAI9Y,EAAKi/J,kBAAkB7B,GAA+Bt2G,IAAa94B,MAE9J,MACJ,IAAK,UACD8/E,EAAOh1F,IAAI9Y,EAAKi/J,kBAAkB9B,GAA8Br2G,IAAa,GAAGhuC,IAAI9Y,EAAKi/J,kBAAkB7B,GAA+Bt2G,IAAa,GAAGhuC,IAAIkkJ,GAAwBl2G,GAAW7oD,KAAM,UAGnN,kBAAkBC,GACd,OAAK7B,KAAKshK,QAAQ,eAGXN,GAAqBn/J,IAFjBA,EAIf,YAAY4vG,GACRzxG,KAAK85J,QAAUroD,EACf,IAAIhnD,EAAYzqD,KAAKshK,QAAQ,aACzBwB,EAAa,EACbC,EAAsB,EACtBC,EAAgB,EACpB,eAAKvxD,EAAQ,CAAC1yG,EAAG8K,KACb,IAAIoyF,EAAQ,eAAEpyF,GACdoyF,EAAMx/E,IAAI,CACN+pD,QAAS,eACTg8F,cAAe,QAEnB9B,GAAuBj2G,GAAW61F,OAAOrkD,EAAO,QAChDA,EAAM5jF,YAAYmoJ,IAClB,IAAI3vF,EAAWorB,EAAM73F,KAAKs7J,IACtBn/C,EAAQ1vC,EAAS0vC,OAAS,EAC1B9mF,EAAOz5B,KAAKijK,UAAUhnE,GACtBimE,EAAS,eAAUrxF,EAASqxF,QAAUrxF,EAASqxF,OAASrC,GAC5DiD,GAAcviD,EACdwiD,GAAuBb,EAASzoI,EAChCupI,GAAiBvpI,IAErB,IAAIypI,EAAgBljK,KAAKmjK,WAAaH,EAClCH,EAAW5mE,IACX,IAAIprB,EAAWorB,EAAM73F,KAAKs7J,IACtBjmI,EAAOz5B,KAAKijK,UAAUhnE,GACtBmnE,EAASF,GAAiB,EAAIryF,EAAS0vC,OAAS,GAAK,eAAU1vC,EAASqxF,QAAUrxF,EAASqxF,OAASrC,IAAUpmI,EAC9G4pI,EAAcH,GAAiB,EAAIJ,EAAaC,EAChDpxI,EAAQ0xI,EAAc7xJ,KAAKyrF,MAAMimE,EAAgBE,EAASC,GAAe,EAC7E,OAAO5pI,EAAO9H,GAEd8wI,EAAgB,EACpB,eAAKhxD,EAAQ,CAAC1yG,EAAG8K,KACb,IAAIoyF,EAAQ,eAAEpyF,GACVgnE,EAAW,eAAEhnE,GAAMzF,KAAKs7J,IACxBjmI,EAAOopI,EAAS5mE,GACpBwmE,GAAiBhpI,EACjBwiE,EAAMx/E,IAAImjJ,GAAYn1G,GAAYomB,EAASkxF,SAAW,QAAQtlJ,IAAIkjJ,GAAYl1G,GAAYomB,EAASmxF,SAAW,KAAKvlJ,IAAIikJ,GAAuBj2G,GAAW7oD,KAAM63B,GAC/JwiE,EAAM9jF,SAASqoJ,MAEnBxgK,KAAKyiK,cAAgBA,EAEzB,UAAU54J,GACN,IAAIgnE,EAAW,eAAEhnE,GAAMzF,KAAKs7J,IAC5B,OAAO,MAAQ7uF,EAASoxF,SAAW,EAAI,SAAWpxF,EAASoxF,SAAWjiK,KAAKsjK,aAAaz5J,GAAQ7J,KAAKujK,WAAW1yF,EAASoxF,UAE7H,aAAap4J,GACT,OAAO62J,GAAuB1gK,KAAKshK,QAAQ,cAAct9F,OAAO,eAAEn6D,IAEtE,WAAW4vB,GACP,OAAO9/B,OAAO8/B,GAAMlW,MAAM,QAAU,IAAM0wC,WAAWx6B,GAAQz5B,KAAKwjK,cAAgB/pI,EAEtF,SAAS53B,GACL,IAAK3B,UAAUtG,OAEX,OADAoG,KAAKwjK,cAAgBxjK,KAAKwjK,eAAiBxjK,KAAKyjK,iBACzCzjK,KAAKwjK,cAEhBxjK,KAAKwjK,cAAgB3hK,EAEzB,iBACI,IAAI5C,EAAS,EAIb,OAHA,eAAKe,KAAK85J,QAAS,CAAC/6J,EAAG8K,KACnB5K,GAAUe,KAAKijK,UAAUp5J,KAEtB5K,EAEX,WACIe,KAAKmjK,SAASzC,GAAuB1gK,KAAKshK,QAAQ,cAAct9F,OAAOhkE,KAAK8zD,YAEhF,SACI,GAAK9zD,KAAK85J,UAAW95J,KAAK8zD,UAAUlmE,GAAG,WAAvC,CAGAoS,KAAK85J,QAAQ/4C,SACb/gH,KAAKuhK,WACLvhK,KAAK8zD,UAAU/5B,OAAO/5B,KAAK85J,SAC3B95J,KAAK0jK,YAAY1jK,KAAK85J,SACtB95J,KAAK2jK,cACL3jK,KAAK4jK,mBACL,IAAIlsJ,EAAU1X,KAAK8zD,UAAUp2D,IAAI,GACjCsC,KAAK85J,QAAQhiJ,KAAK0nJ,IAAc2C,MAAK,WAC7BzqJ,IAAY,eAAE1X,MAAMof,SAASjB,QAAQqhJ,IAAc9hK,IAAI,IACvD,OAAammK,eAAe7jK,KAAMugK,SAKlD,MAAM,WAAY,QACd,qBACI,OAAO,OAAA9lK,EAAA,WAAOisG,MAAMC,qBAAsB,CACtCl8C,UAAW,MACXi3G,MAAO,QACPG,WAAY,UACZnuH,oBAAoB,EACpB+B,mBAAmB,EACnBquH,wBAAoB,EACpBC,gBAAiB,OACjBC,YAAQ,IAGhB,aACI,OAAOvE,GAEX,eACI,OAAOC,GAEX,gBACI,OAAO1/J,KAAKknG,iBAAiBlvC,SAASh4D,KAAK6jH,iBAE/C,QACInd,MAAMiB,QACN3nG,KAAK6W,WAAWsB,SAAS,GAAGwP,OAAO43I,GAAW,KAAK53I,OAAO3nB,KAAK4Y,OAAO,qBACtE5Y,KAAKikK,cACLjkK,KAAKkkK,gBAET,cACIlkK,KAAKmkK,QAAU,aAAenkK,KAAK4Y,OAAO,mBAAqB,IAAI,GAAuB5Y,KAAK6W,WAAY7W,KAAK4Y,OAAO4C,KAAKxb,OAAS,IAAI,GAAmBA,KAAK6W,WAAY7W,KAAK4Y,OAAO4C,KAAKxb,OAElM,gBACIA,KAAKgkK,OAAShkK,KAAK4Y,OAAO,WAAa,GAE3C,mBACI,OAAO5Y,KAAK4Y,OAAO,aAAsB5Y,KAAKgkK,OAAOpqK,OAEzD,iBAAiBqiG,EAAOpqC,GACpB7xD,KAAKgkK,OAAO/gK,KAAK,CACbg5F,MAAOA,EACPpqC,OAAQA,IAGhB,sBACI,OAAO7xD,KAAKgkK,OAAOryI,QAEvB,cACI3xB,KAAK6W,WAAWsB,SAASonJ,IACzBv/J,KAAKmkK,QAAQC,YACb19D,MAAM2C,cACNrpG,KAAKqkK,eACLrkK,KAAKskK,iBAET,iBACItkK,KAAKukK,oBAAsBvkK,KAAKiyD,sBAAsB,sBAE1D,eACIjyD,KAAKmkK,QAAQR,cACb3jK,KAAKmkK,QAAQP,mBAEjB,aAAar5J,GACTvK,KAAKmkK,QAAQ5C,WACb76D,MAAMwE,aAAa3gG,GACnB,MAAOvK,KAAKwkK,mBAAoB,CAC5B,IAAI36J,EAAO7J,KAAKykK,sBAChBzkK,KAAKiZ,iBAAiBpP,EAAKoyF,MAAO,GAAK,OAAAxhG,EAAA,WAAO,CAC1CspK,gBAAiB/jK,KAAK4Y,OAAO,mBAC7B8tG,aAAc1mH,KAAK4Y,OAAO,gBAC1B8rJ,gBAAiB1kK,KAAK4Y,OAAO,mBAC7B+rJ,WAAY3kK,KAAK4Y,OAAO,cACxB83D,YAAa1wE,KAAK4Y,OAAO,eACzBgsJ,kBAAmB5kK,KAAK4Y,OAAO,qBAC/BsuG,eAAgBlnH,KAAK4Y,OAAO,kBAC5BorJ,OAAQhkK,KAAKgkK,QACdn6J,EAAKgoD,SAEZ7xD,KAAKmkK,QAAQT,YAAY1jK,KAAKouG,iBAC9Bh0C,aAAap6D,KAAK6kK,cAClB7kK,KAAK6kK,aAAenlI,WAAW,KACtB1/B,KAAK8kK,YACN9kK,KAAKmkK,QAAQ7/F,SAEjBtkE,KAAK8kK,YAAa,EAClB9kK,KAAK6kK,aAAe,OAG5B,mBAAmBx1H,GACf,IAAI01H,EAAY11H,EAAKwhC,UAAYxhC,EAAKwhC,SAASo4B,KAC/C,OAAI87D,EACO/kK,KAAKglK,yBAAyB31H,EAAM01H,GAExCr+D,MAAMu+D,mBAAmB51H,GAEpC,uBAAuBA,GACnB,IAAI61H,EAAY71H,EAAKwhC,SAASs0F,IACzBD,GAGLllK,KAAKolK,iBAAiB/1H,EAAK24D,YAAak9D,GAE5C,sBAAsBx+C,EAAcr3E,GAChC,OAAIA,EAAKwhC,SAASs0F,IACPz+C,EAAan3E,OAASm3E,EAAan3E,SAAW,iBAElDm3D,MAAM2+D,sBAAsB3+C,EAAcr3E,GAErD,mBAAmBkL,GACXA,GACAv6C,KAAK6rH,oBAGb,oBACQ7rH,KAAK6kK,eAGT7kK,KAAK8kK,YAAa,EAClB9kK,KAAKmkK,QAAQ7/F,UAEjB,WACIlK,aAAap6D,KAAK6kK,cAClBn+D,MAAMmpB,SAAS/wH,MAAMkB,KAAME,WAE/B,mBAAmB2J,EAAMs/G,EAAUtnH,EAAO6gE,GAClC,YAAcymD,GACdnpH,KAAKukK,oBAAoB,CACrB3iK,KAAMunH,EACNjpF,MAAOr+B,EACPqwH,UAAU,IAAUxvD,IAG5BgkC,MAAMwiB,mBAAmBr/G,EAAMs/G,EAAUtnH,GAE7C,eAAewtC,GACX,OAAQA,EAAKztC,MACT,IAAK,kBACL,IAAK,SACL,IAAK,YACD5B,KAAKszD,cACL,MACJ,IAAK,QACDtzD,KAAKmkK,QAAQR,cACb,MACJ,IAAK,aACD3jK,KAAKmkK,QAAQP,mBACb,MACJ,QACIl9D,MAAMwH,eAAe7+D,IAGjC,eACI,IAAIv5B,EAAU4wF,MAAM4+D,eAIpB,OAHAxvJ,EAAQurJ,2BAA6Bz9J,IACjC5D,KAAKukK,oBAAoB3gK,IAEtBkS,EAEX,UACI9V,KAAK6rH,qBAGb,GAAIhd,UAAY,GAChB,eAAkB,QAAS,IACZ,UCvgBX02D,GAAiB,cACjBC,GAAuB,oBACvBC,GAAuB,oBACvBC,GAA2B,wBAC3BC,GAAgC,6BAChCC,GAA0B,uBAC1BC,IAAwB,EACxBC,GAAuB,EACvBC,GAA6B,0BAC7BC,GAAc,SAASC,EAAQC,EAAO9pJ,GACtC+pJ,GAAUF,EAAQC,EAAO9pJ,IAEzB+pJ,GAAY,SAASF,EAAQC,EAAO9pJ,GACpC6pJ,EAAOxpJ,IAAI,YAAa,UAAYypJ,EAAQ,oBAAsB9pJ,EAAS,QAE3EgqJ,GAAW,QAAOr2G,QAAQ,CAC1B42C,mBAAoB,WAChB,OAAO,OAAAlsG,EAAA,WAAOuF,KAAKC,WAAY,CAC3B4B,MAAO,IAAI9H,KAAKA,KAAKsX,OACrBg1J,iBAAiB,EACjBC,YAAY,EACZC,aAAc,EACdC,iBAAa,KAGrBC,UAAW,WACP,OAAOzmK,KAAK4Y,OAAO,UAAY,IAAI7e,MAEvC4tG,MAAO,WACH3nG,KAAKC,WACLD,KAAK6W,WAAWsB,SAASotJ,KAE7BzyD,QAAS,WACL9yG,KAAKC,WACLD,KAAK0mK,aACL1mK,KAAK2mK,eAETD,WAAY,WACR,IAAIE,EAAO,eAAE,SAASxuJ,SAASpY,KAAK6W,YAChCtM,EAAQ,GACRvK,KAAK4Y,OAAO,eACZrO,EAAMtH,KAAK,CACPs9G,MAAO,EACP2hD,OAAQ,EACRD,SAAU,OACVlmH,SAAU/7C,KAAK6mK,aAAarrJ,KAAKxb,QAGzCuK,EAAMtH,KAAK,CACPs9G,MAAO,EACP2hD,OAAQ,EACRD,SAAU,OACVlmH,SAAU/7C,KAAK8mK,aAAatrJ,KAAKxb,QAErCA,KAAKiZ,iBAAiB2tJ,EAAM,GAAK,CAC7B/pJ,OAAQ,OACRxR,MAAO,OACPo/C,UAAW,MACXlgD,MAAOA,KAGfs8J,aAAc,SAAS9nK,EAAGgoK,EAAI/tJ,GAC1BhZ,KAAKgnK,YAAc,eAAE,SAAS7uJ,SAASutJ,IACvC1lK,KAAKinK,cAAgB,eAAE,SAAS9uJ,SAAS4tJ,IACzC,IAAItwJ,EAAa,eAAEuD,GACnBvD,EAAW0C,SAASqtJ,IAAsBzrI,OAAO/5B,KAAKgnK,aAAajtI,OAAO/5B,KAAKinK,eAC/EjnK,KAAKsd,QAAQ,OAAQ,eAAgB7H,IAEzCyxJ,aAAc,WACV,IAAI97H,EAAOprC,KAAKymK,YACZU,EAAiB/7H,EAAKjxC,WAAa,GAAK,IAAMixC,EAAKhxC,aAAe,GAAK,GACvEgtK,EAAmBh8H,EAAKhxC,aAAe,GAAK,IAChD4rK,GAAYhmK,KAAKgnK,YAAaG,EAAgBnnK,KAAK4Y,OAAO,iBAC1DotJ,GAAYhmK,KAAKinK,cAAeG,EAAkBpnK,KAAK4Y,OAAO,kBAElEyuJ,aAAc,SAASC,GACnB,IAAI/8J,EAAQ,CAAC,CACTg2G,MAAO,EACP2hD,OAAQ,EACRD,SAAU,OACVlmH,SAAU,IAAM/7C,KAAKunK,SAAS1wJ,YAC/B,CACC0pG,MAAO,EACP2hD,OAAQ,EACRD,SAAU,OACVlmH,SAAU,eAAE,SAAS5jC,SAASwtJ,IAA+BppK,KAAK,QAAiBmF,qBACpF,CACC6+G,MAAO,EACP2hD,OAAQ,EACRD,SAAU,OACVlmH,SAAU,IAAM/7C,KAAKwnK,WAAW3wJ,aAUpC,OARIywJ,GACA/8J,EAAMtH,KAAK,CACPs9G,MAAO,EACP2hD,OAAQ,EACRD,SAAU,OACVlmH,SAAU,IAAM/7C,KAAKynK,UAAU5wJ,aAGhCtM,GAEXu8J,aAAc,WACV,IAAIQ,GAAkBtnK,KAAK4Y,OAAO,mBAMlC,OALA5Y,KAAK0nK,eAAeJ,GACpBtnK,KAAK2nK,mBACDL,GACAtnK,KAAK4nK,qBAEF5nK,KAAKiZ,iBAAiB,eAAE,SAASd,SAASstJ,IAAuB,GAAK,CACzEh7G,UAAW,MACXi3G,MAAO,SACPG,WAAY,SACZt3J,MAAOvK,KAAKqnK,aAAaC,KAC1BzwJ,YAEP6wJ,eAAgB,SAASJ,GACrB,IAAIppJ,EAASle,KAAKunK,SAAWvnK,KAAKiZ,iBAAiB,eAAE,SAAU,GAAW,OAAAxe,EAAA,WAAO,CAC7EoO,KAAM,EACNC,IAAKw+J,EAAiB,GAAK,GAC3BzlK,MAAO7B,KAAKymK,YAAYtsK,WACxBwpD,eAAgB3jD,KAAK6nK,uBAAuBrsJ,KAAKxb,MACjD8nK,kBAAmBC,GAAQ/nK,KAAK+4I,iBAAiBgvB,IAClD/nK,KAAKgoK,wBACR9pJ,EAAOZ,QAAQ,QAAS,UAE5B2qJ,MAAO,WACH,OAAQjoK,KAAK4Y,OAAO,oBAAsB,IAAM5Y,KAAKynK,UAAU7uJ,OAAO,UAE1EivJ,uBAAwB,SAAS13J,GAC7B,IACItO,MAAOA,EACP+P,UAAWA,GACXzB,EACA8hJ,EAAejyJ,KAAKymK,YACpBriG,EAAW,IAAIrqE,KAAKk4J,GACpBiW,EAAWloK,KAAKmoK,qBAAqBtmK,GACzC+P,EAAUgH,OAAO,QAASsvJ,GACtBloK,KAAKioK,UACLC,GAAY,IAEhB9jG,EAAS17C,SAASw/I,GAClB,GAAUzlB,cAAcr+E,GACxBpkE,KAAK4Y,OAAO,QAASwrD,IAEzB+jG,qBAAsB,SAAS5oK,GAC3B,IAAI6oK,EAAgBpoK,KAAK4Y,OAAO,mBAAqB,GAAK,GAC1D,OAAQwvJ,EAAgB7oK,GAAS6oK,GAErCT,iBAAkB,WACd,IAAIzpJ,EAASle,KAAKwnK,WAAaxnK,KAAKiZ,iBAAiB,eAAE,SAAU,GAAW,OAAAxe,EAAA,WAAO,CAC/EoO,KAAM,EACNC,IAAK,GACLjH,MAAO7B,KAAKymK,YAAYrsK,aACxB0tK,kBAAmBC,GAAQ/nK,KAAK+4I,iBAAiBgvB,GACjDpkH,eAAgB/yC,IACZ,IACI/O,MAAOA,EACP+P,UAAWA,GACXhB,EACAy3J,GAAc,GAAKxmK,GAAS,GAChC+P,EAAUgH,OAAO,QAASyvJ,GAC1B,IAAIj9H,EAAO,IAAIrxC,KAAKiG,KAAKymK,aACzBr7H,EAAK8mH,WAAWmW,GAChB,GAAU5lB,cAAcr3G,GACxBprC,KAAK4Y,OAAO,QAASwyB,KAE1BprC,KAAKgoK,wBACR9pJ,EAAOZ,QAAQ,QAAS,YAE5BsqJ,mBAAoB,WAChB,IAAIv/I,EAAc,QAAiBjpB,iBAC/B8e,EAASle,KAAKynK,UAAYznK,KAAKiZ,iBAAiB,eAAE,SAASd,SAASytJ,IAA0B,cAAW,CACzGr7J,MAAO,CAAC,CACJ1I,MAAOgkK,GACPtpK,KAAM8rB,EAAY,IACnB,CACCxmB,MAAOikK,GACPvpK,KAAM8rB,EAAY,KAEtBnH,UAAW,QACXC,YAAa,OACb2mJ,kBAAmBC,GAAQ/nK,KAAK+4I,iBAAiBgvB,GACjDpkH,eAAgBsqC,IACZ,IACIpsF,MAAOA,GACPosF,EACA1uF,EAAQS,KAAKymK,YAAYtsK,WACzBixC,EAAO,IAAIrxC,KAAKiG,KAAKymK,aACrByB,GAAY3oK,EAAQ,GAAKsC,GAAS,GACtCupC,EAAK1iB,SAASw/I,GACdloK,KAAK4Y,OAAO,QAASwyB,IAEzBvpC,MAAO7B,KAAKymK,YAAYtsK,YAAc,GAAK2rK,GAAuBD,GAClEW,YAAaxmK,KAAK4Y,OAAO,iBAE7BsF,EAAOZ,QAAQ,QAAS,SAE5BgrJ,iBAAkB,WACd,IAAItoK,KAAK4Y,OAAO,mBAAhB,CAGA,IAAI/W,EAAQ7B,KAAKymK,YACblnK,EAAQsC,EAAM1H,WACdulJ,EAAOngJ,GAAS,GAChB6kE,EAAWs7E,EAAOomB,GAAuBD,GAC7C7lK,KAAKuoK,yBAAyBvoK,KAAKynK,UAAWrjG,KAElDmkG,yBAA0B,SAASrqJ,EAAQrc,GACnCqc,IACAA,EAAOsqJ,6BACPtqJ,EAAOtF,OAAO,QAAS/W,GACvBqc,EAAO83H,6BAGfgyB,oBAAqB,WACjB,MAAO,CACH32B,iBAAiB,EACjBo3B,sBAAuB,SAAS5mK,GAC5B,OAAQA,EAAQ,GAAK,IAAM,IAAMA,GAErC2kK,YAAaxmK,KAAK4Y,OAAO,iBAGjC8vJ,gBAAiB,SAASnpK,GACtB,OAAOS,KAAK4Y,OAAO,mBAAqBrZ,EAAQA,EAAQ,IAAM,IAElEopK,aAAc,WACV,IAAIppK,EAAQS,KAAK0oK,gBAAgB1oK,KAAKymK,YAAYtsK,YAClD6F,KAAKuoK,yBAAyBvoK,KAAKunK,SAAUhoK,GAC7CS,KAAKuoK,yBAAyBvoK,KAAKwnK,WAAYxnK,KAAKymK,YAAYrsK,cAChE4F,KAAKsoK,oBAET3B,YAAa,WACL3mK,KAAK4Y,OAAO,eACZ5Y,KAAKknK,eAETlnK,KAAK2oK,gBAETpnE,mBAAoB,SAAShnD,GACrBA,GACAv6C,KAAK2mK,eAGbz4D,eAAgB,SAAS7+D,GACrB,OAAQA,EAAKztC,MACT,IAAK,QACD5B,KAAK2mK,cACL3mK,KAAKC,SAASovC,GACd,MACJ,IAAK,eACD,MACJ,IAAK,kBACL,IAAK,aACL,IAAK,cACDrvC,KAAKszD,cACL,MACJ,QACItzD,KAAKC,SAASovC,OAI9B,eAAkB,aAAc+2H,IACjB,UC3QX,GAAS,iBAUTwC,GAA2B,IAC3BC,GAAgC,6BAChCC,GAA8B,gCAC9BC,GAA2B,GAAiBh5G,QAAQ,CACpDwC,KAAM,mBACNujG,kBAAmB,WACf,OAAO,OAAAr7J,EAAA,WAAOuF,KAAKC,WAAY,CAC3B+oK,eAAgB,aAChB/Q,gBAAiB,eACjB,6BAA6B,KAGrCJ,sBAAuB,WACnB,OAAO,QAAUrO,SAASxpJ,KAAK03J,qBAAsB13J,KAAKytH,aAAa,WAE3Ex3G,iBAAkB,SAASO,GACvB,OAAOA,GAAiB,sBAE5ByyJ,gBAAiB,WACb,OAAO,QAAiB9lK,eAAenD,KAAKiW,iBAAiBjW,KAAKs1J,QAAQ18I,OAAO,oBAErF8+I,mBAAoB,WAChB,IAAIwR,EAAWlpK,KAAKC,WACpB,OAAOD,KAAKmpK,gBAAgBD,IAEhC1T,cAAe,WACXx1J,KAAKC,WACLD,KAAKopK,UAAYppK,KAAKs1J,QAAQr8I,iBAAiB,eAAE,SAAU,GAAU,CACjEpX,MAAO7B,KAAK+2J,eACZuP,YAAatmK,KAAKqpK,gBAClBhD,gBAAiBrmK,KAAKipK,kBACtBtlH,eAAgB3jD,KAAK83J,qBAAqBt8I,KAAKxb,MAC/CwmK,YAAaxmK,KAAKs1J,QAAQ18I,OAAO,iBAErC5Y,KAAKopK,UAAUjR,mBAAmB,SAAUn4J,KAAKo4J,eAAe58I,KAAKxb,QAEzEo2J,kBAAmB,WACfp2J,KAAKC,WACL,IAAIihD,EAAQlhD,KAAKw2J,YACbt1G,GACAA,EAAM8qD,WAAWz3C,YAAYs0G,GAA+B7oK,KAAKspK,kBAErElvG,aAAap6D,KAAKupK,eAClBvpK,KAAKupK,cAAgB7pI,WAAW,WAC5B1/B,KAAKw2J,aAAex2J,KAAKw2J,YAAYjpC,WACvC/xG,KAAKxb,MAAO,IAElBq3J,oBAAqB,WACjB,IAAImS,EAAiBxpK,KAAKqpK,gBACtBI,EAAsBzpK,KAAK0pK,qBAC/B,OAAIF,IAAmBC,GACnBzpK,KAAK0pK,qBAAuBF,OACrB,IAAWC,GAEfzpK,KAAKC,YAEhBo2J,aAAc,SAASsT,GACnB,IAAIrwK,EAAO0G,KAAK+2J,eACXz9J,GAASqwK,IACVrwK,EAAO,IAAIS,KACX,GAAY0oJ,cAAcnpJ,IAE9B0G,KAAKC,WACDD,KAAKopK,YACL9vK,GAAQ0G,KAAKopK,UAAUxwJ,OAAO,QAAStf,GACvC0G,KAAKopK,UAAUxwJ,OAAO,kBAAmB5Y,KAAKipK,qBAGtDK,eAAgB,WACZ,OAAO,eAAS,KAAWV,IAE/BS,cAAe,WACX,OAAQrpK,KAAKs1J,QAAQ18I,OAAO,oBAAsB5Y,KAAKs1J,QAAQ18I,OAAO,sBAAwB5Y,KAAKspK,kBAEvGjC,aAAc,WACV,IAAI98J,EAAQ,CAAC,CACTg2G,MAAO,EACP2hD,OAAQ,EACRD,SAAU,OACVrgK,KAAM,aAUV,OARK5B,KAAKqpK,iBACN9+J,EAAMtH,KAAK,CACPs9G,MAAO,EACP2hD,OAAQ,EACRD,SAAU,OACVrgK,KAAM,SAGP2I,GAEXksJ,mBAAoB,WAChBz2J,KAAKC,WACLD,KAAK0pK,qBAAuB1pK,KAAKqpK,gBACjC,IAAIjuD,EAAgBp7G,KAAKw2J,YAAY9oF,WACrC1tE,KAAK4pK,KAAO5pK,KAAKs1J,QAAQr8I,iBAAiB,eAAE,SAASb,SAASgjG,GAAgB,GAAK,CAC/E3wD,UAAW,MACXo3G,WAAY,UACZt3J,MAAOvK,KAAKqnK,eACZ3gD,aAAc,SAAStiH,EAAM3I,EAAGic,GAC5B,IAAIjC,EAAa,eAAE,SACnB,OAAQrR,EAAKxC,MACT,IAAK,WACD6T,EAAWskB,OAAO/5B,KAAKu1J,QAAQ1+I,YAC3B7W,KAAKqpK,kBACLrpK,KAAKopK,UAAUvyJ,WAAWsB,SAAS2wJ,IACnCrzJ,EAAWskB,OAAO/5B,KAAKopK,UAAUvyJ,aAErC,MACJ,IAAK,OACDpB,EAAWskB,OAAO/5B,KAAKopK,UAAUvyJ,YACjC,eAAEa,GAASS,SAAS2wJ,IAE5B,OAAOrzJ,GACT+F,KAAKxb,QAEXA,KAAK6pK,qBAETvT,YAAa,SAAS0B,GAClB,IAAI8R,EAAsB9pK,KAAKC,SAAS+3J,GACpC/4J,EAAS,OAAAxE,EAAA,WAAOqvK,EAAqB,CACrCz+J,MAAO,OACP25C,UAAW,WACP,GAAI,aAAehlD,KAAK4pK,KAAKhxJ,OAAO,mBAAoB,CACpD,IAAImxJ,EAAgB/pK,KAAKw2J,YAAY9oF,WAAW51D,KAAK,sBAAsB2E,IAAI,YAC/Ezc,KAAKopK,UAAUvyJ,WAAW4F,IAAI,WAAYstJ,KAEhDvuJ,KAAKxb,QAEX,OAAOf,GAEX03J,qBAAsB,WAClB,OAAO32J,KAAKopK,UAAU7B,SAAS1wJ,WAAWiB,KAAK,UAEnD+xJ,kBAAmB,WACf,IAAIvU,EAAUt1J,KAAKs1J,QACnBt1J,KAAKopK,UAAU7B,SAASpP,mBAAmB,OAAO,SAAUv0J,GACpDA,EAAE4pE,WACF5pE,EAAEu5D,iBACFm4F,EAAQ3gG,aAIpB+hG,qBAAsB,SAAS9yJ,GACtB,eAAEA,EAAEsS,QAAQ+gD,SAAS,yBACtBj3D,KAAKC,SAASnB,MAAMkB,KAAME,WACrBF,KAAKs1J,QAAQ0U,kBACdhqK,KAAKs1J,QAAQ3gG,UAIzBw0G,gBAAiB,SAAS7vK,GACtB,IAAI8xC,EAAOprC,KAAKopK,UAAUxwJ,OAAO,SAEjC,OADAtf,EAAKovB,SAAS0iB,EAAKjxC,WAAYixC,EAAKhxC,aAAcgxC,EAAK/wC,aAAc+wC,EAAK9wC,mBACnEhB,GAEX89J,SAAU,WACN,IAAI6S,EACA3wK,EAAO,QAAU2wK,EAAuBjqK,KAAKu1J,QAAQ38I,OAAO,gBAAa,IAAWqxJ,EAAuBA,EAAuBjqK,KAAKu1J,QAAQH,mBAEnJ,OADA97J,EAAOA,EAAO,IAAIS,KAAKT,GAAQ,IAAIS,KAC5BiG,KAAKmpK,gBAAgB7vK,IAEhC64D,QAAS,WACLiI,aAAap6D,KAAKkqK,sBAClB9vG,aAAap6D,KAAKupK,eAClBvpK,KAAKC,cAGE,M,yBClLX,GAAS,iBAoBTkqK,GAAc,OACdC,GAAkB,CAClBvhK,IAAK,IAAI9O,KAAK,EAAG,EAAG,EAAG,EAAG,GAC1B+O,IAAK,IAAI/O,KAAK,EAAG,EAAG,EAAG,GAAI,KAE3BswK,GAAe,GAAgBt6G,QAAQ,CACvCwC,KAAM,OACNwjG,cAAe,WACX,MAAO,CACHvvC,IAAK,WACD,IACIK,OAAQA,EACRmiD,eAAgBA,GAChBhpK,KAAK4Y,SACLiuG,GAAU,cAAgBmiD,GAC1BhpK,KAAK2pH,SAGbtiB,MAAO,OACP+vC,KAAM,OACNjlH,IAAK,SAGb2jI,kBAAmB,WACf,OAAO,OAAAr7J,EAAA,WAAOuF,KAAKC,WAAY,CAC3B+oK,eAAgB,eAGxB/yJ,iBAAkB,SAASO,GACvB,OAAOA,GAAiB,aAE5B8/I,YAAa,SAAS0B,GAClB,OAAOA,GAEXZ,SAAU,WACN,IAAIvqD,EAAgB7sG,KAAKu1J,QAAQ38I,OAAO,iBACxC,IAAK,IAAMi0F,EACP,OAAO7sG,KAAKs1J,QAAQ18I,OAAO,SAE/B,IAAIi4D,EAAW7wE,KAAKsqK,aAAaz9D,GACjC,OAAO7sG,KAAKuqK,mBAAmB15F,IAEnCmmF,wBAAyB,WACrB,OAAO,GAEXC,eAAgB,WACZ,OAAO,IAAIl9J,KAAK,OAEpB88J,oBAAqB,WACjB72J,KAAKs1J,QAAQzpC,qBAEjB2pC,cAAe,WACXx1J,KAAKC,WACLD,KAAKwqK,iBAET7U,eAAgB,WACZ,OAAO,SAEXE,kBAAmB,WACf,MAAO,CACHnvC,aAAc1mH,KAAKyqK,sBAAsBjvJ,KAAKxb,MAC9C0wE,YAAa1wE,KAAK0qK,sBAAsBlvJ,KAAKxb,MAC7Co6C,UAAW,EACXuwH,qBAAsB3qK,KAAKqyG,yBAAyB72F,KAAKxb,MACzD8mH,cAAe,WAGvBzU,yBAA0B,SAASzuG,GAC/B5D,KAAKs1J,QAAQh4I,QAAQ,mBAAoB,IACzCtd,KAAKs1J,QAAQh4I,QAAQ,mBAAoB1Z,EAAEm0J,cAE/CyS,cAAe,WACXxqK,KAAKsqK,aAAetqK,KAAK4qK,oBACzB5qK,KAAKu1J,QAAQ38I,OAAO,QAAS5Y,KAAKsqK,eAEtClU,kBAAmB,WACVp2J,KAAKu1J,UAGVv1J,KAAKu1J,QAAQ38I,OAAO,iBAAkB,MACtC5Y,KAAK6qK,2BACD7qK,KAAKu1J,QAAQ38I,OAAO,iCACpB5Y,KAAK8qK,oBAAsBprI,WAAW1/B,KAAK+qK,sBAAsBvvJ,KAAKxb,OAEtEA,KAAK+qK,0BAGb54G,QAAS,WACLnyD,KAAKC,WACLm6D,aAAap6D,KAAK8qK,sBAEtBzU,aAAc,WACLr2J,KAAKu1J,UAGVv1J,KAAKwqK,gBACLxqK,KAAK6qK,2BACL7qK,KAAK+qK,0BAETF,yBAA0B,WACtB,IAAIhpK,EAAQ7B,KAAK+2J,eACbiU,EAAYhrK,KAAKirK,cAAcppK,IAC9B,IAAMmpK,EACPhrK,KAAKu1J,QAAQ38I,OAAO,gBAAiB,IAErC5Y,KAAKu1J,QAAQ38I,OAAO,gBAAiBoyJ,IAG7CD,sBAAuB,WACnB/qK,KAAKu1J,QAAQ2V,aAAalrK,KAAKu1J,QAAQ38I,OAAO,mBAElDqyJ,cAAe,SAAS3xK,GAEpB,IADA,IAAI2F,GAAU,EACLxD,EAAI,EAAGgwB,EAAIzrB,KAAKsqK,aAAa1wK,OAAQ6B,EAAIgwB,EAAGhwB,IACjD,GAAIuE,KAAKmrK,eAAe7xK,EAAM0G,KAAKsqK,aAAa7uK,IAAK,CACjDwD,EAASxD,EACT,MAGR,OAAOwD,GAEXksK,eAAgB,SAAS5gG,EAAOttE,GAC5B,OAAO,eAAOstE,IAAU,eAAOttE,IAAWstE,EAAMpwE,aAAe8C,EAAO9C,YAAcowE,EAAMnwE,eAAiB6C,EAAO7C,cAEtHwwK,kBAAmB,WACf,IAAI/hK,EAAM7I,KAAKs1J,QAAQgC,WAAW,QAAUt3J,KAAKorK,iBAAiB,OAC9DtiK,EAAM9I,KAAKs1J,QAAQgC,WAAW,QAAUt3J,KAAKorK,iBAAiB,OAC9DvpK,EAAQ7B,KAAKs1J,QAAQgC,WAAW,UAAY,KAC5C7kB,EAAQ3pI,EAAMD,EACd9H,EAAU8H,EAAIzO,aAAe4F,KAAKs1J,QAAQ18I,OAAO,YACrD,OAAI65H,EAAQ,EACD,IAEPA,EAAQ,GAAUsO,UAClBtO,EAAQ,GAAUsO,SAElBl/I,EAAQgH,EAAM,GAAUk4I,UAG5Bl4I,EAAM7I,KAAKorK,iBAAiB,OAC5BviK,EAAIqpJ,WAAWnxJ,GACXc,GAAS2P,KAAK8B,IAAIzR,EAAQiH,GAAO,GAAUi4I,UAC3CtO,GAAS,GAAK3pI,EAAI3O,WAAaqX,KAAK8B,IAAIxK,EAAI1O,aAAe2G,IAAY,GAAU+/I,aAL1E9gJ,KAAKqrK,eAAexiK,EAAK,IAAI9O,KAAK8O,GAAM4pI,KASvD44B,eAAgB,SAAS9lJ,EAAY0sI,EAAcqZ,GAC/C,IAAIC,EAAa,GACbhwJ,EAAWvb,KAAKs1J,QAAQ18I,OAAO,YACnC,MAAOq5I,EAAe1sI,GAAc+lJ,EAChCC,EAAWtoK,KAAK,IAAIlJ,KAAKk4J,IACzBA,EAAaC,WAAWD,EAAa73J,aAAemhB,GAExD,OAAOgwJ,GAEXH,iBAAkB,SAAShyJ,GACvB,IAAIoyJ,EAAgBpB,GAAgBhxJ,GAChC64I,EAAe,IAAIl4J,KAAK,eAAciG,KAAKs1J,QAAQgC,WAAW,SAAU,IAC5E,OAAO,IAAIv9J,KAAKk4J,EAAax4J,cAAew4J,EAAah4J,WAAYg4J,EAAa/3J,UAAWsxK,EAAcrxK,WAAYqxK,EAAcpxK,eAEzIqwK,sBAAuB,SAAS55F,GAC5B,IAAIr6D,EAAgBxW,KAAKs1J,QAAQ18I,OAAO,iBACxC,OAAO,QAAiBvf,OAAOw3E,EAAU7wE,KAAKiW,iBAAiBO,KAEnEk0J,sBAAuB,SAAS9mK,GAC5B,GAAI,eAAiB5D,KAAKs1J,QAAQ18I,OAAO,kBAAzC,CAGA,IAAItf,EAAO0G,KAAKuqK,mBAAmB3mK,EAAEitE,UACrC7wE,KAAKs1J,QAAQ18I,OAAO,UAAU,GAC9B5Y,KAAK+2J,aAAaz9J,EAAMsK,EAAEouD,SAE9Bu4G,mBAAoB,SAAS15F,GACzB,IAAIv3E,EAAO0G,KAAKs1J,QAAQ18I,OAAO,SAC3BrZ,EAAQsxE,EAAS12E,WACjB4G,EAAU8vE,EAASz2E,aACnB4G,EAAU6vE,EAASx2E,aACnBb,EAAOq3E,EAASp3E,cAChBoD,EAAQg0E,EAAS52E,WACjBwC,EAAMo0E,EAAS32E,UAgBnB,OAfIZ,GAEIA,EADA0G,KAAKs1J,QAAQ18I,OAAO,2BACb,GAAkB45D,gBAAgBl5E,GAElC,IAAIS,KAAKT,GAEpBA,EAAKovB,SAASnpB,GACdjG,EAAK44J,WAAWnxJ,GAChBzH,EAAKopJ,WAAW1hJ,GAChB1H,EAAKiB,YAAYf,GACjBF,EAAK44E,SAASr1E,GACdvD,EAAKotB,QAAQjqB,IAEbnD,EAAO,IAAIS,KAAKP,EAAMqD,EAAOJ,EAAK8C,EAAOwB,EAAS,EAAG,GAElDzH,GAEX08J,oBAAqB,WACjB,OAAOh2J,KAAKu1J,SAEhBkW,mBAAoB,WAChB,IAAIC,EAAwB,gBAAa1rK,KAAKs1J,QAAQ18I,OAAO,2BAC7D,QAAI,IAAW8yJ,GAAyB,SAAWA,EAAuB,CACtE1rK,KAAKs1J,QAAQqW,gBAAgB,SAAU,QACvC,IAAIhmD,EAAc,eAAe3lH,KAAKu1J,QAAQ1+I,YAC1C2tC,EAAY,IAAM,eAAU,IAChCxkD,KAAKs1J,QAAQqW,gBAAgB,SAAUn6J,KAAK3I,IAAI88G,EAAanhE,IAEjExkD,KAAKs1J,QAAQsW,WAAa5rK,KAAKs1J,QAAQsW,UAAU5qD,oBAErDk1C,cAAe,SAAS35J,EAAMlD,GAC1B,IAAIwI,EAAQ7B,KAAKC,SAAS1D,EAAMlD,GAIhC,OAHIwI,IACAA,EAAQ,GAAUigJ,WAAWjgJ,EAAO,IAAI9H,KAAK,MAAOowK,KAEjDtoK,KAGA,MCjPX,GAAS,iBA+BTgqK,GAAgB,aAChBC,GAAsB,gBACtBC,GAAyB,wBACzBC,GAAwB,uBACxBC,GAAwB,qBACxBC,GAA+B,4BAC/BC,GAAc,CACdC,SAAU,WACVC,QAAS,UACTC,KAAM,OACNC,OAAQ,UAER,GAAO,CACPjzK,KAAM,OACNs6E,SAAU,WACVxoC,KAAM,QAENohI,GAAgB,CAChBJ,SAAU,WACVK,SAAU,WACVF,OAAQ,SACRG,iBAAkB,mBAClBJ,KAAM,QAENK,GAAmB,CACnBxgB,SAAU,GACV6P,SAAU,GACV4Q,OAAQ,GACRC,iBAAkB,GAClBC,KAAM,IAENC,GAAU,QAAeh9G,QAAQ,CACjCq3C,eAAgB,WACZ,OAAO,OAAA3sG,EAAA,WAAOuF,KAAKC,WAAYD,KAAKgtK,UAAUjX,kBAElDkX,wBAAyB,WACrBjtK,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAKgtK,UAAU/W,oBAEnBtvD,mBAAoB,WAChB,OAAO,OAAAlsG,EAAA,WAAOuF,KAAKC,WAAY,CAC3BxB,KAAM,OACNyuK,iBAAiB,EACjBrrK,MAAO,KACP6yC,6BAAyB,EACzB7rC,SAAK,EACLC,SAAK,EACL0N,cAAe,KACf+E,SAAU,GACVqqI,cAAe,KACfunB,WAAYhB,GAAYC,SACxBgB,mBAAoB,OAAoB/zK,OAAO,iCAC/Cg0K,sBAAuB,OAAoBh0K,OAAO,oBAClDulK,gBAAiB,OAAoBvlK,OAAO,MAC5Ci0K,mBAAmB,EACnBC,gBAAiB,GACjBC,wBAAwB,KAGhC/8D,qBAAsB,WAClB,OAAOzwG,KAAKC,WAAW0nB,OAAO,CAAC,CAC3B+oF,OAAQ,CACJj+E,SAAU,OAEd3c,QAAS,CACL,6BAA6B,IAElC,CACC46F,OAAQ,CACJj+E,SAAU,WAEd3c,QAAS,CACLmiJ,gBAAiB,iBAEtB,CACCvnD,OAAQ,WACJ,IAAI+8D,EAAa7jE,GAAA,KAAQC,OACrBp3E,EAAWg7I,EAAWh7I,SAC1B,MAAO,QAAUA,GAAY,YAAcA,GAE/C3c,QAAS,CACLq3J,WAAYhB,GAAYI,SAE7B,CACC77D,OAAQ,CACJj+E,SAAU,UACVq3E,WAAY,WAEhBh0F,QAAS,CACLmiJ,gBAAiB,oBAI7B3wC,aAAc,SAASxxG,GACnB9V,KAAK0tK,aAAe,OAAAjzK,EAAA,WAAO,GAAIqb,GAC/B9V,KAAKC,SAAS6V,GACd9V,KAAK2tK,wBAETA,qBAAsB,WAClB,IAAIR,EAAantK,KAAK4Y,OAAO,cACzBna,EAAOuB,KAAK4Y,OAAO,QACnBu0J,IAAehB,GAAYG,MAAS7tK,IAAS,GAAKm1E,UAAYn1E,IAAS,GAAKnF,OAC5E6zK,EAAahB,GAAYC,UAEzB3tK,IAAS,GAAK2sC,MAAQ+hI,IAAehB,GAAYC,WACjDe,EAAahB,GAAYG,MAE7BtsK,KAAK4Y,OAAO,qBAAsB,YAAcgxF,GAAA,KAAQC,OAAOp3E,UAAY06I,IAAehB,GAAYI,QACtGvsK,KAAK4tK,YAAcT,GAEvBxlE,MAAO,WACH3nG,KAAK6tK,gBACL7tK,KAAK4Y,OAAO,OAAAne,EAAA,WAAO,GAAIuF,KAAKgtK,UAAUlX,oBAAqB91J,KAAK0tK,sBACzD1tK,KAAK0tK,aACZ1tK,KAAKC,YAET6tK,wBAAyB,SAAS30I,GAC9B,OAAOA,EAAOnN,OAAO,GAAGluB,cAAgBq7B,EAAOnmB,OAAO,IAE1D66J,cAAe,WACX,IAAIE,EAAe/tK,KAAKguK,iBAAiBhuK,KAAKiuK,kBAC1CzsI,EAAWmrI,GAAiBoB,GAC1B/tK,KAAKgtK,WAAahtK,KAAKgtK,UAAUz6G,OAASw7G,IAC5C/tK,KAAKgtK,UAAY,IAAIxrI,EAASxhC,QAGtCiuK,eAAgB,WACZ,IAAIC,EAAcluK,KAAK4Y,OAAO,QAC1Bu1J,EAAS,SAASrqJ,KAAKoqJ,GACvBE,EAAS,SAAStqJ,KAAKoqJ,GACvBzvK,EAAO,GAOX,OANI2vK,IACA3vK,GAAQ,GAAKnF,MAEb60K,IACA1vK,GAAQ,GAAK2sC,MAEV3sC,GAEXuvK,iBAAkB,SAASvvK,GACvB,IAAI0uK,EAAantK,KAAK4tK,YACtB,OAAIT,IAAehB,GAAYE,QACpBG,GAAcC,SACdU,IAAehB,GAAYI,OAC3BC,GAAcD,OAErB9tK,IAAS,GAAKnF,KACPkzK,GAAcJ,SAErB3tK,IAAS,GAAKm1E,SACP44F,GAAcE,iBAElBF,GAAcF,MAEzBjjE,YAAa,WACTrpG,KAAK6W,WAAWsB,SAAS0zJ,IACzB7rK,KAAKC,WACLD,KAAKquK,sBACLruK,KAAKsuK,0BACLtuK,KAAKgtK,UAAU7W,kBAAkBn2J,KAAK6yI,WAE1C//B,QAAS,WACL9yG,KAAKC,WACLD,KAAKuuK,yBAETjsD,kBAAmB,WACftiH,KAAKC,WACLD,KAAK6W,WAAW09C,YAAYu3G,IAAsB9rK,KAAK4Y,OAAO,UAC9D5Y,KAAK6rH,qBAETA,kBAAmB,WAGX,IAAI2iD,EAAuBC,GAF/BzuK,KAAKC,SAASC,WACVF,KAAKymH,UAEL,QAAU+nD,GAAyBC,EAAkBzuK,KAAKgtK,WAAWvB,0BAAuB,IAAW+C,GAAiCA,EAAsBp4J,KAAKq4J,KAG3KJ,oBAAqB,WACjB,IAAIx3J,EAAW7W,KAAK6W,WACpB,eAAK,IAAM,SAAU9X,EAAG8K,GACpBgN,EAASwB,YAAYwzJ,GAAgB,IAAMhiK,MAE/CgN,EAASsB,SAAS0zJ,GAAgB,IAAM7rK,KAAK4Y,OAAO,UAExD01J,wBAAyB,WACrB,IAAIz3J,EAAW7W,KAAK6W,WACpB,eAAKs1J,IAAa,SAAUptK,EAAG8K,GAC3BgN,EAASwB,YAAYwzJ,GAAgB,IAAMhiK,MAE/CgN,EAASsB,SAAS0zJ,GAAgB,IAAM7rK,KAAK4tK,cAEjDW,sBAAuB,WACnB,GAAK,iBAAL,CAGA,IAAIG,EAAe1uK,KAAK6yI,SAASn1I,IAAI,GACjCixK,EAAe3uK,KAAK4Y,OAAO,cAC3Bg2J,EAAmB5uK,KAAK6uK,uBACxBC,EAA2B9uK,KAAK+uK,+BAChCC,EAAW/6G,WAAW,GAAOg7G,iBAAiBP,GAAcrjK,OAASujK,EACrEM,EAA2BJ,EAAyBzjK,MAAQ2jK,EAC5D/zG,EAAQyzG,EAAazzG,MACzBj7D,KAAK6W,WAAW09C,YAAYw3G,IAAyBmD,GACjDA,QACI,IAAWlvK,KAAKmvK,iBAChBnvK,KAAKmvK,eAAiBR,EAAeG,EAAyBM,YAAcN,EAAyBO,cAEzGV,EAAe1zG,EAAMkN,YAAc,EAAIlN,EAAMmN,aAAe,GAE5DumG,EAAe1zG,EAAMkN,YAAcnoE,KAAKmvK,eAAiB,KAAOl0G,EAAMmN,aAAepoE,KAAKmvK,eAAiB,OAGnHN,qBAAsB,WAClB,IAAID,EAAmB,EACvB,GAAI5uK,KAAKsvK,yBAA2B,KAAOtvK,KAAK6yI,SAAST,MAAO,CAC5D,IAAIm9B,EAAqBvvK,KAAK6W,WAAWiB,KAAK,IAAMk0J,IAAuBtuK,IAAI,GAC/EkxK,EAAmB36G,WAAW,GAAOg7G,iBAAiBM,GAAoBlkK,OAE9E,OAAOujK,GAEXG,6BAA8B,WAC1B,IAAI11K,EAAS2G,KAAKgtK,UAAU/2J,iBAAiBjW,KAAK4Y,OAAO,kBACrD42J,EAAe,QAAiBn2K,OAAO,GAAYipJ,eAAejpJ,EAAQ,QAAiBmF,gBAAiB,QAAiBQ,eAAgB3F,GAC7Io6I,EAASzzI,KAAK6yI,SACd67B,EAAej7B,EAAO/1I,IAAI,GAC1B+xK,EAAuB,gBAA4Bh8B,EAAQ+7B,GAC3DE,OAAkB,IAAW1vK,KAAKmvK,eAClCQ,EAAiBD,EAAsB1vK,KAAKmvK,eAAT,EACvCM,EAAqBr3J,SAASpY,KAAK6W,YACnC,IAAI21G,EAAev4D,WAAW,GAAOg7G,iBAAiBQ,EAAqB/xK,IAAI,IAAI2N,OAC/EgkK,EAAep7G,WAAW,GAAOg7G,iBAAiBP,GAActmG,cAChEgnG,EAAcn7G,WAAW,GAAOg7G,iBAAiBP,GAAcvmG,aAC/DynG,EAAiBpjD,EAAe4iD,EAAcC,EAAeM,EAEjE,OADAF,EAAqB92J,SACd,CACHtN,MAAOukK,EACPR,YAAaA,EACbC,aAAcA,IAGtB,wBACI,OAAOrvK,KAAKC,WAAW0nB,OAAO,CAAC3nB,KAAKgtK,WAAahtK,KAAKgtK,UAAUhX,yBAEpE9tC,aAAc,WACVloH,KAAKC,WACLD,KAAKymH,OAAOza,WAAW7zF,SAAS8zJ,IAChCjsK,KAAK6vK,uBAET7X,aAAc,WACV,IAAI1B,EAAct2J,KAAKC,WACvB,OAAO,OAAAxF,EAAA,WAAOuF,KAAKgtK,UAAU1W,YAAYA,GAAc,CACnD92G,MAAOx/C,KAAK8vK,iBACZ3rH,aAAa,KAGrB0rH,oBAAqB,WACjB,GAAK7vK,KAAKymH,OAAV,CAGA,IAAI5vG,EAAW7W,KAAK6W,WAChBk5J,EAAiB,OAAAt1K,EAAA,WAAO,GAAI,GAAM0xK,IACtC,eAAK4D,EAAgB,SAAShxK,EAAG8K,GAC7BgN,EAASwB,YAAY4zJ,GAAwB,IAAMpiK,IACrD2R,KAAKxb,OACPA,KAAKymH,OAAOza,WAAW7zF,SAAS8zJ,GAAwB,IAAMjsK,KAAK4Y,OAAO,SAAST,SAAS8zJ,GAAwB,IAAMjsK,KAAK4tK,aAAaz1J,SAAS+zJ,MAEzJ8D,oBAAqB,WACjBhwK,KAAKC,WACLD,KAAKgtK,UAAUvW,sBAEnBwZ,sBAAuB,WACnB,OAAOjwK,KAAKgtK,UAAUrW,wBAA0B32J,KAAKC,YAEzDiwK,qBAAsB,WAClB,OAAOlwK,KAAKgtK,UAAUpW,uBAAyB52J,KAAKC,YAExDkwK,qBAAsB,WAClBnwK,KAAKC,WACLD,KAAKgtK,UAAUnW,uBAEnBuZ,mBAAoB,WAChBpwK,KAAKC,WACLD,KAAKgtK,UAAU5W,qBAEnBia,oBAAqB,WACjBrwK,KAAKC,WACLD,KAAKgtK,UAAU5W,oBACfp2J,KAAKgtK,UAAUlW,sBAEnBv1D,mBAAoB,SAAShnD,GACrBA,GACAv6C,KAAKuuK,yBAGb+B,mBAAoB,SAAS1sK,GACzB5D,KAAK4Y,OAAO,OAAQ,IACpB5Y,KAAKC,SAAS2D,IAElB2sK,mBAAoB,WAChB,GAAIvwK,KAAK4tK,cAAgBzB,GAAYE,QACjC,OAAO,EAEX,IAAI55I,EAAWm3E,GAAA,KAAQC,OAAOp3E,SAC1B+9I,EAAwBxwK,KAAKg/J,kBAAoB,QAAUvsI,GAAY,YAAcA,GACzF,OAAI+9I,EACOxwK,KAAK4Y,OAAO,YAEhB5Y,KAAKC,YAEhBqvK,sBAAuB,WACnB,OAAOtvK,KAAKC,aAAeD,KAAKg/J,iBAEpCrsB,aAAc,WACV,IAAI9wI,EAAQ7B,KAAKs3J,WAAW,SAG5B,OAFAt3J,KAAK4Y,OAAO,OAAQ5Y,KAAKywK,kBAAkB5uK,IAC3C7B,KAAKgtK,UAAU7V,cACRn3J,KAAKC,YAEhBiyI,gBAAiB,WACb,IAAIrwI,EAAQ7B,KAAKs3J,WAAW,SACxB5iH,EAA0B10C,KAAK4Y,OAAO,2BACtC83J,EAAe,GAAYhvB,mBAAmB1hJ,KAAK4Y,OAAO,SAC1D+3J,EAAcj8H,EAA0B,GAAkBg+B,cAAc7wE,EAAO6yC,GAA2B,GAAYitG,qBAAqB9/I,EAAO6uK,GACtJ1wK,KAAKmyI,oBAAoBC,IAAIu+B,IAEjCF,kBAAmB,SAAS5uK,GACxB,IACI+uK,EADAtkI,EAAOtsC,KAAK4Y,OAAO,QAEvB,GAAI,SAAW0zB,EAAM,CACjB,IAAI91B,EAAgBxW,KAAKgtK,UAAU/2J,iBAAiBjW,KAAK4Y,OAAO,kBAChEg4J,EAAgB,QAAiBv3K,OAAOwI,EAAO2U,OAC5C,CACH,IAAInd,EAAS2G,KAAK6wK,iBAAiBvkI,GAE/BskI,EADAv3K,EACgB,QAAiBA,OAAOwI,EAAOxI,GAE/B,GAAYsoJ,qBAAqB9/I,EAAOyqC,GAGhE,OAAOskI,GAEXC,iBAAkB,SAASvkI,GACvB,OAAO,uBAAUA,GAAQ,KAAO,GAAYm1G,YAAYn1G,IAE5DkoG,yBAA0B,SAAS5wI,GAC/B,IACIrH,KAAMA,EACNkC,KAAMA,EACNo3I,gBAAiBA,GACjB71I,KAAK4Y,SACLq5I,EAAejyJ,KAAKs3J,WAAW,SACnC,GAAI/6J,IAASyD,KAAKywK,kBAAkBxe,GAApC,CAOA,IAAIpxJ,EAAab,KAAK8wK,eAAev0K,GACjCsF,EAAQ,OAASowJ,QAAgB,IAAWA,EAAeA,EAAejyJ,KAAK+wK,oBAC/E3sG,EAAW,GAAY09E,WAAWjgJ,EAAOhB,EAAYpC,GACrDnF,EAAOuH,GAAc,SAAWpC,EAAO2lE,EAAWvjE,EACtD,GAAIb,KAAKgxK,yBAAyB13K,GAAMq8I,QAAS,CAC7C,IAAIi7B,EAAgB5wK,KAAKywK,kBAAkBrsG,GACvCviE,GAASuiE,GAAYviE,EAAMkC,YAAcqgE,EAASrgE,WAAa6sK,IAAkBr0K,EACjFyD,KAAK2yI,eAEL3yI,KAAKinB,UAAUm9C,EAAUxgE,SAfxBiyI,IAAmBA,EAAgBC,iBACpC91I,KAAKgxK,yBAAyB/e,GAC9BjyJ,KAAKixK,uBAAuBhf,KAiBxC8e,kBAAmB,WACf,OAAO/wK,KAAKgtK,UAAUhW,2BAA6Bh3J,KAAKgtK,UAAU/V,kBAEtE6Z,eAAgB,SAASv0K,GACrB,IAAIia,EAAgBxW,KAAKgtK,UAAU/2J,iBAAiBjW,KAAK4Y,OAAO,kBAC5Ds4J,EAAalxK,KAAKgtK,UAAU9W,cAAc35J,EAAMia,GACpD,OAAO,OAAS06J,QAAc,IAAWA,EAAaA,OAAa,GAEvE,yBAAyBrvK,GACrB,IAAItF,EAAOyD,KAAK4Y,OAAO,QACnB4zF,IAAYjwG,GAAQ,OAASsF,EAC7BusK,IAAWvsK,GAAS,eAAWA,KAAW2B,MAAM3B,EAAMkC,WACtDotK,EAAgB/C,GAAU,QAAU3kB,YAAY5nJ,EAAO7B,KAAKs3J,WAAW,OAAQt3J,KAAKs3J,WAAW,OAAQt3J,KAAK4Y,OAAO,SACnH+8H,GAAWnpC,IAAY3qG,GAASsvK,EAChCC,EAAoB,GAaxB,OAZKhD,EAEO+C,IACRC,EAAoBpxK,KAAK4Y,OAAO,0BAFhCw4J,EAAoBpxK,KAAK4Y,OAAO,sBAIpC5Y,KAAK4Y,OAAO,CACR+8H,QAASA,EACTE,gBAAiBF,EAAU,KAAO,CAC9BG,gBAAgB,EAChB/8H,QAASq4J,KAGV,CACHz7B,QAASA,EACTy4B,OAAQA,IAGhB6C,uBAAwB,SAASpvK,GAC7B7B,KAAK80I,kBAAkBtgF,KAAK,CACxBt2C,OAAQle,KACR6B,MAAO7B,KAAKqxK,eAAexvK,MAGnCyvK,gBAAiB,SAASltG,GACtB,IAAI1B,EAAW1iE,KAAKs3J,WAAW,SAC3Bia,EAAU7uG,GAAYA,EAAS3+D,UAC/BytK,EAAUptG,GAAYA,EAASrgE,UACnC,OAAOwtK,IAAYC,GAEvBC,eAAgB,SAASrtG,GACrB,IAAIstG,EAAU1xK,KAAK4Y,OAAO,QACtBy1H,EAAUjqE,GAAYpkE,KAAKywK,kBAAkBrsG,IAAa,GAC9D,OAAOstG,IAAYrjC,GAEvBgF,aAAc,WACVrzI,KAAKC,WACLD,KAAK6yI,SAASnhF,KAAK,eAAgB,QAEvCigH,mBAAoB,WACX3xK,KAAKg/J,iBACNh/J,KAAKC,WAELD,KAAKgtK,UAAU3V,uBACfr3J,KAAK4xK,oBAGb9B,eAAgB,WACZ,IAAI7hH,EAAcjuD,KAAK4Y,OAAO,eAC9B,GAAIq1C,EACA,OAAOA,EAEX,IAAIxvD,EAAOuB,KAAK4Y,OAAO,QACvB,OAAIna,IAAS,GAAK2sC,KACP,OAAoB/xC,OAAO,0CAElCoF,IAAS,GAAKnF,MAAQmF,IAAS,GAAKm1E,SAC7B,OAAoBv6E,OAAO,0CAE/B,IAEXu4K,iBAAkB,WACd5xK,KAAKgtK,UAAU76G,UACfnyD,KAAK6tK,gBACL7tK,KAAK4Y,OAAO5Y,KAAKgtK,UAAUlX,qBAC3B91J,KAAK+4G,YAET84D,oBAAqB,SAASjuK,GAC1B,IAAI/B,EAAQ7B,KAAKgtK,UAAU5V,WAC3Bp3J,KAAKinB,UAAUplB,EAAO+B,EAAEouD,OACxBhyD,KAAKC,YAET4vH,SAAU,WACN,IAAIiiD,EACJ9xK,KAAKC,WACL,QAAU6xK,EAAmB9xK,KAAKgtK,iBAAc,IAAW8E,GAA4BA,EAAiB3/G,WAE5G6sG,cAAe,WACX,OAAOh/J,KAAK4tK,cAAgBzB,GAAYI,QAE5CwF,kBAAmB,WACf,IAAIC,EACJ,QAAUA,EAAehyK,KAAKymH,cAAW,IAAWurD,GAAwBA,EAAap5J,OAAO,QAAS5Y,KAAK8vK,mBAElH5hE,eAAgB,SAAS7+D,GACrB,OAAQA,EAAKztC,MACT,IAAK,kBACL,IAAK,UACD5B,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAKuuK,wBACL,MACJ,IAAK,aACDvuK,KAAK2tK,qBAAqB,CACtBR,WAAY99H,EAAKxtC,QAErB7B,KAAK4xK,mBACL5xK,KAAKsuK,0BACLtuK,KAAKszD,cACL,MACJ,IAAK,OACDtzD,KAAK2tK,qBAAqB,CACtBt0K,OAAQg2C,EAAKxtC,QAEjB7B,KAAK4xK,mBACL5xK,KAAKquK,sBACLruK,KAAK6vK,sBACL7vK,KAAKuuK,wBACLvuK,KAAKq2J,eACL,MACJ,IAAK,cACDr2J,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAK+xK,oBACL,MACJ,IAAK,MACL,IAAK,MACD,IAAIp8B,EAAU31I,KAAK4Y,OAAO,WAC1B5Y,KAAKgxK,yBAAyBhxK,KAAKs3J,WAAW,UACzC3hB,GACD31I,KAAKixK,uBAAuBjxK,KAAKs3J,WAAW,UAEhDt3J,KAAKszD,cACL,MACJ,IAAK,0BACL,IAAK,WACL,IAAK,gBACL,IAAK,kBACDtzD,KAAKszD,cACL,MACJ,IAAK,gBACDtzD,KAAK4Y,OAAO,OAAQ5Y,KAAKywK,kBAAkBzwK,KAAKs3J,WAAW,WAC3Dt3J,KAAKiyK,oBACL,MACJ,IAAK,OACDjyK,KAAKgtK,UAAU9V,mBAAmB7nH,EAAKxtC,OACvC7B,KAAKC,SAASnB,MAAMkB,KAAME,WAC1B,MACJ,IAAK,UACDF,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAKuuK,wBACL,MACJ,IAAK,qBACDvuK,KAAKuuK,wBACLvuK,KAAKC,SAASnB,MAAMkB,KAAME,WAC1B,MACJ,IAAK,WACDF,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAKuuK,wBACL,MACJ,IAAK,qBACL,IAAK,wBACL,IAAK,oBACL,IAAK,kBACD,MACJ,QACIvuK,KAAKC,SAASnB,MAAMkB,KAAME,aAGtCutJ,wBAAyB,WACrB,IAAI5rJ,EAAQ7B,KAAK4Y,OAAO,SACxB,OAAI5Y,KAAK4Y,OAAO,4BAA8B,kBAAS65D,oBAC5CzyE,KAAK4Y,OAAO,2BAEnB,eAAU/W,GACH,SAEN,eAASA,GAGP,GAAkBkwE,2BAA2BlwE,QAHpD,GAKJw0J,aAAc,SAASx0J,GACnB7B,KAAKC,WACLD,KAAKgxK,yBAAyB,OAASnvK,QAAS,IAAWA,EAAQA,EAAQ7B,KAAKs3J,WAAW,WAE/FrwI,UAAW,SAASplB,EAAOw3G,GACvB,IAAInoB,EAAiBlxF,KAAKsxK,gBAAgBzvK,GAW1C,OAVIqvF,GAAkBmoB,GAClBr5G,KAAK4zI,sBAAsBv6B,GAE1BnoB,IACGlxF,KAAKyxK,eAAe5vK,GACpB7B,KAAKq2J,aAAax0J,GACX,KAAO7B,KAAK4Y,OAAO,SAC1B5Y,KAAKixK,uBAAuBpvK,IAG7B7B,KAAKs3J,WAAW,QAASz1J,IAEpCy1J,WAAY,SAASr8G,EAAYp5C,GAC7B,GAAI,IAAM3B,UAAUtG,OAChB,OAAO,GAAkB44E,gBAAgBxyE,KAAK4Y,OAAOqiC,IAEzDj7C,KAAK4Y,OAAOqiC,EAAYj7C,KAAKqxK,eAAexvK,KAEhDwvK,eAAgB,SAAS/3K,GACrB,IAAIq5E,EAAsB3yE,KAAKytJ,0BAC/B,OAAO,GAAkB/6E,cAAcp5E,EAAMq5E,IAEjDojE,YAAa,WACT,IAAIl0I,EAAQ7B,KAAK4Y,OAAO,SACxB5Y,KAAKC,WACD,OAAS4B,GACT7B,KAAKixK,uBAAuB,OAGpC7zF,MAAO,WACH,IAAIv7E,EAAQ7B,KAAK4Y,OAAO,SACxB5Y,KAAKC,WACD,OAAS4B,GACT7B,KAAKgxK,yBAAyB,SAI3B,MCnlBXkB,GAAuB,cACvBC,GAAU,EACVC,IAAY,EACZC,GAAc,GAAYtiH,QAAQ,CAClC,eAAensD,GACX,IAAI0uK,EAAmBtyK,KAAKC,SAAS2D,GACjC2uK,EAAsB3uK,IACtB,IAAI4uK,EAAkBF,EAAiB,gBAAiB1uK,IACxD,OAAO4uK,GAAmBA,EAAgB1zK,MAAMkB,KAAM,CAAC4D,KAEvD6uK,EAAe,CAAC7uK,EAAG8uK,IACf1yK,KAAK2yK,0BAA0B/uK,GACxB2uK,EAAoBzzK,MAAMkB,KAAM,CAAC4D,IAEjC8uK,EAAY5zK,MAAMkB,KAAM,CAAC4D,IAGxC,OAAO,OAAAnJ,EAAA,WAAO,GAAI63K,EAAkB,CAChCx7B,IAAKlzI,GAAK6uK,EAAa7uK,EAAGouD,IACtBhyD,KAAK4yK,YAAYT,IACjBnyK,KAAK6yK,kBAAoB7gH,EAAMmL,mBAEnC65E,UAAWpzI,GAAK6uK,EAAa7uK,EAAGouD,IAC5BhyD,KAAK4yK,YAAYR,IACjBpyK,KAAK6yK,kBAAoB7gH,EAAMmL,mBAEnCi6E,KAAMxzI,GAAK6uK,EAAa7uK,EAAGouD,IACvBhyD,KAAK8yK,mBACL9gH,EAAMmL,mBAEVhrC,IAAKvuB,GAAK6uK,EAAa7uK,EAAGouD,IACtBhyD,KAAK+yK,kBACL/gH,EAAMmL,mBAEV+zC,OAAQttG,GAAK6uK,EAAa7uK,EAAGouD,IACzBhyD,KAAKgzK,eAAehhH,KAExBm/E,MAAOvtI,GAAK6uK,EAAa7uK,EAAGouD,IACxBhyD,KAAKizK,cAAcjhH,KAEvBilF,UAAWrzI,GAAK6uK,EAAa7uK,EAAGouD,IAC5BhyD,KAAKkzK,gBAAgBd,IACrBpgH,EAAMmL,mBAEVg6E,WAAYvzI,GAAK6uK,EAAa7uK,EAAGouD,IAC7BhyD,KAAKkzK,gBAAgBf,IACrBngH,EAAMmL,mBAEV8zE,QAASrtI,GAAK6uK,EAAa7uK,EAAGouD,IAC1BhyD,KAAKmzK,oBAAoBhB,IACzBngH,EAAMmL,mBAEV+zE,UAAWttI,GAAK6uK,EAAa7uK,EAAGouD,IAC5BhyD,KAAKmzK,oBAAoBf,IACzBpgH,EAAMmL,sBAIlB,0BAA0Bv5D,GACtB,IAAIwvK,EAA0BpzK,KAAK4Y,OAAO,WAAahV,IAAM,IAAM,CAAC,YAAa,OAAOtF,QAAQ,gBAAiBsF,IACjH,OAAQ5D,KAAK22I,oBAAsBy8B,GAA2BxvK,GAAKA,EAAEw5I,QAEzE,oBAAoBhM,GAChBpxI,KAAKqzK,qBACL,IAAIC,EAAgBtzK,KAAKuzK,oBAAoBvzK,KAAKwzK,mBAC9CvhB,EAAejyJ,KAAKuzK,sBACpB9gC,EAAQwf,EAAeqhB,EAC3BtzK,KAAKyzK,eAAezzK,KAAKwzK,mBACzBxzK,KAAK0zK,cAAcjhC,EAAQrB,GAAM,IAErC,qBACI,OAAO,OAAA32I,EAAA,WAAOuF,KAAKC,WAAY,CAC3Bw2I,iBAAiB,EACjBk9B,eAAgB,IAAI55K,KAAK,IAAK,EAAG,EAAG,EAAG,EAAG,MAGlD,iBAAiBoW,GACb,IACIu5D,cAAeA,EACfkqG,IAAKA,GACLzjK,EACArV,EAAM4uE,EAActlE,MAAQslE,EAAc5uE,IAC9C,MAAO,kBAAoBA,GAAO,IAAMA,EAAIlB,SAAWg6K,IAAQ,gBAAoBlqG,IAEvF,kBAAkB9lE,GACd,IAAIiwK,EACAzvK,EAAO,QAAUyvK,EAAmBjwK,EAAE8lE,qBAAkB,IAAWmqG,OAAmB,EAASA,EAAiBzvK,KACpH,OAAO,KAAO,OAASA,QAAQ,IAAWA,OAAO,EAASA,EAAKxK,SAAW2H,SAAS6C,EAAM,KAE7F0vK,qBAAsB,WAClB,OAAOlqE,GAAA,KAAQC,OAAOw1D,SAE1B,iBAAiBz7J,EAAG9I,GAChB,IAAIi5K,EAAgB/zK,KAAK6yI,SAAST,MAClCpyI,KAAKg0K,iBAAiBl5K,GACtB8I,EAAEu5D,iBACF,IAAI+zB,EAAiB6iF,IAAkB/zK,KAAK6yI,SAAST,MACrDlhD,GAAkB,OAAalzE,QAAQhe,KAAK6yI,SAAU,UAE1D,iBAAiBjvI,GACb,IAAI9I,EAAM8I,EAAE8lE,cAAc5uE,IACtBmE,EAASe,KAAKC,SAAS2D,GAC3B,OAAK5D,KAAK22I,oBAAsB32I,KAAK8zK,yBAGjCl0J,EAAA,KAAQmjF,QAAU,YAAcn/F,EAAE9I,KAAO,IAAM8I,EAAEke,KAAKxjB,QAAQ,UAC9DxD,EAAM8I,EAAEke,KAAK3mB,QAAQ,QAAS,IAC9B6E,KAAKg0K,iBAAiBl5K,GACtBkF,KAAKi0K,kBAAoB,KACrBj0K,KAAKk0K,wBAEFl0K,KAAKm0K,iBAAiBvwK,IAC7B5D,KAAKo0K,iBAAiBxwK,EAAE8lE,cAAe5uE,IAThCmE,GAaf,wBAAwB2E,GACpB5D,KAAKi0K,kBAAoB,KACzB,IACIr2B,UAAWA,GACXh6I,EAAE8lE,cACF,0BAA4Bk0E,IAC5B59I,KAAKi0K,kBAAoB,KACrBj0K,KAAKk0K,wBAGb,IAAIG,EAAqB,0BAA4Bz2B,EACjD02B,EAAoB,yBAA2B12B,EACnD,GAAIy2B,GAAsBC,EAAmB,CACzC,IAAI7pH,EAAY4pH,EAAqBjC,GAAWD,GAChDnyK,KAAKi0K,kBAAoB,KACrBj0K,KAAK4yK,cACL5yK,KAAKkzK,gBAAgBzoH,IAG7B,GAAKzqD,KAAK22I,oBAAuB32I,KAAKm0K,iBAAiBvwK,GAAvD,CAGA,IAAI9I,EAAM8I,EAAE8lE,cAActlE,KAE1B,OADApE,KAAKo0K,iBAAiBxwK,EAAG9I,IAClB,IAEX,iBAAiB8I,GACb,IACI8lE,cAAe1X,GACfpuD,EACA,2BAA6B,OAASouD,QAAS,IAAWA,OAAQ,EAASA,EAAM4rF,YAAc59I,KAAKu0K,kBAAkB3wK,KACtH5D,KAAKg0K,iBAAiBhiH,EAAM5tD,MAC5BpE,KAAKozI,mBAAmBpzI,KAAKywK,kBAAkBzwK,KAAKw0K,aACpDx0K,KAAKkzK,mBAETlzK,KAAKC,SAAS2D,GACV5D,KAAKi0K,oBACLj0K,KAAKi0K,oBACLj0K,KAAKi0K,kBAAoB,OAGjC,iBAAiBn5K,GACTkF,KAAK6yK,mBACL7yK,KAAKy0K,iBAAmB,GAE5Bz0K,KAAKqzK,qBACD7vK,MAAMjC,SAASzG,IACfkF,KAAK00K,cAAc55K,GAEnBkF,KAAK20K,cAAc75K,IAG3B,iBACI,IAAI8xI,EAAQ5sI,KAAK43I,SACjB,OAAOhL,EAAMz6G,IAAMy6G,EAAM/hF,QAAU7qD,KAAK4Y,OAAO,QAAQhf,QAE3D,oBACI,GAAIoG,KAAK40K,eACL,OAAO50K,KAAK40K,eAEhB,IAAIv7K,EAAS2G,KAAKgtK,UAAU/2J,iBAAiBjW,KAAK4Y,OAAO,kBACrDkiI,EAAgB,eAASzhJ,KAAY,QAAiBsJ,oBAAoBtJ,GAQ9E,OANI2G,KAAK40K,eADL95B,EACsBzhJ,EAEA,iBAAU,SAAUwI,GACtC,OAAO,QAAiBxI,OAAOwI,EAAOxI,MAGvC2G,KAAK40K,gBAEhB,qBACI,IAAK50K,KAAKw0K,WAAY,CAClB,IAAI3yK,EAAQ,SAAW7B,KAAK4Y,OAAO,QAAU,IAAI7e,KAAK,MAAQ,IAAIA,KAClEiG,KAAKw0K,WAAa3yK,EAClB7B,KAAKwzK,kBAAoB3xK,EACzB7B,KAAK60K,qBAGb,mBAAmB/rK,GACf,IAAIg3I,EAAiBnmJ,OAAOmP,GAAKlP,OAC7Bk7K,EAAe90K,KAAK+0K,mBAAmB,WAAWn7K,OAClDo7K,EAAgB,IAAMF,EACtBG,EAAkBD,EAAgBl1B,EAAiBtuI,KAAK3I,IAAIisK,EAAch1B,GAC1Eo1B,EAAmBl1K,KAAKm1K,aAAav7K,SAAWq7K,EAChDG,EAAoB7zK,SAASvB,KAAKm1K,aAAe,KAAOrsK,EAC5D,OAAOosK,GAAoBE,GAE/B,cAAcxhK,GACV,IACI9K,IAAKA,GACL9I,KAAKq1K,uBACLv1B,EAAiBnmJ,OAAOmP,GAAKlP,OACjCoG,KAAKm1K,cAAgBn1K,KAAKm1K,aAAevhK,GAAMZ,QAAQ8sI,GACnDt8I,MAAMxD,KAAKm1K,gBACXn1K,KAAKm1K,aAAevhK,GAExB5T,KAAKs1K,oBAAoBt1K,KAAKm1K,cAC1Bn1K,KAAKu1K,mBAAmBzsK,IACxB9I,KAAKkzK,gBAAgBf,KAG7B,cAAcv+J,GACV,GAAKpQ,MAAMjC,SAASvB,KAAK+0K,mBAAmB,UAA5C,CAMA,IAHA,IAAI50B,EAASngJ,KAAK+0K,mBAAmB,SAAxB/0K,CAAkCA,KAAKw0K,YAChDgB,EAAcx1K,KAAKm1K,aAAevhK,EAAK9V,cACvC23K,EAAWt1B,EAAOr3I,IAAMq3I,EAAOt3I,IAC1BpN,EAAI,EAAGA,GAAKg6K,EAAUh6K,IAG3B,GAFAuE,KAAKyzK,eAAezzK,KAAKwzK,mBACzBxzK,KAAK0zK,cAAcj4K,EAAI,GACnB,IAAMuE,KAAK+0K,mBAAmB,QAAQj3K,cAAcQ,QAAQk3K,GAE5D,YADAx1K,KAAKm1K,aAAeK,GAI5Bx1K,KAAKqzK,qBACDrzK,KAAKm1K,eACLn1K,KAAK01K,oBACL11K,KAAK00K,cAAc9gK,MAG3B,oBACI5T,KAAKm1K,aAAe,IAExBvC,YAAa,SAASnoH,GAClB,IAAKzqD,KAAK6yK,iBAAkB,CACxB,IAAIz2K,EAAS4D,KAAKuzK,oBAAoBvzK,KAAK4Y,OAAO,mBAClD5Y,KAAKs1K,oBAAoBl5K,GACzB4D,KAAKkzK,gBAAgBzoH,GAEzBzqD,KAAK01K,qBAET,mBACI,OAAO11K,KAAK4Y,OAAO,oBAAsB,SAAW5Y,KAAK4Y,OAAO,SAEpE,qBACI5Y,KAAK21K,YAAc,gBAAc31K,KAAKk4I,oBAAqB,SAC3D,IAAI7uH,EAASrpB,KAAK21K,YAAYtsJ,OAC1BkmB,EAASlmB,EAAOkmB,OAChB7C,EAAQrjB,EAAOqjB,MACfkpI,EAAmB,IAAItsJ,OAAO,wBAC9BusJ,EAAkBtmI,EAAO1zC,MAAM+5K,GAAkB95K,IAAIg6K,GAAcF,EAAiB9xJ,KAAKgyJ,GAAcA,EAAa,QAAmBryK,cAAcqyK,GAAY,IAAQ95K,KAAK,IAClLgE,KAAK21K,YAAYtsJ,OAAS,IAAIC,OAAOusJ,EAAiBnpI,IAE1D,iBACI1sC,KAAKy0K,iBAAmB,EACxBz0K,KAAK40K,eAAiB,KACtB50K,KAAK+1K,qBACL/1K,KAAKyzK,kBAET,cACIzzK,KAAKC,WACLD,KAAKg2K,oBACLh2K,KAAKi2K,kBACDj2K,KAAK22I,qBACL32I,KAAKk2K,oBACLl2K,KAAKm2K,iBACLn2K,KAAK60K,qBAGb,mBACI,GAAK70K,KAAK22I,mBAAV,CAGA,IAAIp6I,EAAOyD,KAAK4Y,OAAO,SAAW5Y,KAAKywK,kBAAkBzwK,KAAKw0K,YAC1Dj4K,IACAyD,KAAKo2K,WAAap2B,GAAgBzjJ,EAAMyD,KAAK21K,aACxC31K,KAAK6yI,SAASjlJ,GAAG,YAClBoS,KAAKkzK,qBAIjB,oBACI,OAAajiH,IAAIjxD,KAAK6yI,SAAU,IAAMq/B,KAE1C,oBACI,OAAapoK,GAAG9J,KAAK6yI,SAAU,gBAAa,UAAWq/B,IAAuBlyK,KAAKq2K,kBAAkB76J,KAAKxb,OAC1G,OAAa8J,GAAG9J,KAAK6yI,SAAU,gBAAa,QAASq/B,IAAuBlyK,KAAKs2K,kBAAkB96J,KAAKxb,OACxG,OAAa8J,GAAG9J,KAAK6yI,SAAU,gBAAa,OAAQq/B,IAAuB,KACvElyK,KAAKk0K,wBAET,OAAapqK,GAAG9J,KAAK6yI,SAAU,gBAAa,iBAAkBq/B,IAAuBlyK,KAAKu2K,2BAA2B/6J,KAAKxb,OACtHA,KAAK8zK,wBACL,OAAahqK,GAAG9J,KAAK6yI,SAAU,gBAAa,cAAeq/B,IAAuBlyK,KAAKw2K,wBAAwBh7J,KAAKxb,QAG5H,sBACIA,KAAKozI,mBAAmBpzI,KAAKywK,kBAAkBzwK,KAAKw0K,aACpDx0K,KAAKkzK,mBAET,kBACQlzK,KAAK4Y,OAAO,UACZ5Y,KAAKy0K,iBAAmBz0K,KAAKo2K,WAAWx8K,OACxCoG,KAAKkzK,gBAAgBd,MAG7B,mBACQpyK,KAAK4Y,OAAO,UACZ5Y,KAAKy0K,kBAAoB,EACzBz0K,KAAKkzK,gBAAgBf,MAG7B,cAAcvuK,GACN5D,KAAK22I,oBACL32I,KAAK0zK,cAAc9vK,EAAE6uI,MAAQ,EAAI0/B,GAAUC,GAAUxuK,IAG7D,kBACI,IAAIwtI,EAAOlxI,UAAUtG,OAAS,QAAK,IAAWsG,UAAU,GAAKA,UAAU,GAAK,EAC5E,GAAKF,KAAK4Y,OAAO,UAAW5Y,KAAKy2K,UAAjC,CAGIrlC,IACApxI,KAAKwzK,kBAAoB,IAAIz5K,KAAKiG,KAAKw0K,aAE3C,IAAIpzK,EAAQ,gBAAapB,KAAKy0K,iBAAmBrjC,EAAM,EAAGpxI,KAAKo2K,WAAWx8K,OAAS,GACnF,GAAIoG,KAAKo2K,WAAWh1K,GAAO8+I,OAAQ,CAC/B,IAAIw2B,EAAkB,IAAMt1K,GAASgwI,EAAO,GAAKhwI,IAAUpB,KAAKo2K,WAAWx8K,OAAS,GAAKw3I,EAAO,EAChG,IAAKslC,EAED,YADA12K,KAAKkzK,gBAAgB9hC,GAAQ,EAAIA,EAAO,EAAIA,EAAO,GAGnDhwI,EAAQpB,KAAKy0K,iBAGjBz0K,KAAKy0K,mBAAqBrzK,GAC1BpB,KAAK01K,oBAET11K,KAAKy0K,iBAAmBrzK,EACxBpB,KAAK43I,OAAO53I,KAAK+0K,mBAAmB,YAExC,wBACI,GAAI,MAAQ/0K,KAAK+0K,mBAAmB,WAAW,GAC3C,MAAO,MAGf,qBAAqB4B,GACjB,IAAIC,EAAgB52K,KAAK+0K,mBAAmB,UAC5C,OAAO6B,EAAc52K,KAAKw0K,WAAYmC,GAAkB32K,KAAK62K,0BAEjE,oBAAoB5vJ,GAChBA,EAAYA,GAAajnB,KAAKw0K,WAC9B,IAAIxwG,EAAShkE,KAAK+0K,mBAAmB,UACrC,OAAO,eAAW/wG,GAAUA,EAAO/8C,GAAaA,EAAU+8C,MAE9D,kBAAkBniE,GACd,IAAIi1K,EAAS92K,KAAKm1K,aAAa5xJ,MAAM,OACjC48H,EAASngJ,KAAKq1K,uBACdv1B,EAAiBnmJ,OAAOwmJ,EAAOr3I,KAAKlP,OACxC,QAASk9K,GAAUA,EAAO,IAAM,IAAMn9K,OAAOkI,IAAQmR,QAAQ8sI,IAEjE,oBAAoBj+I,EAAOolB,GACvBA,EAAYA,GAAajnB,KAAKw0K,WAC9B,IAAIl0B,EAAStgJ,KAAK+0K,mBAAmB,UACjC50B,EAASngJ,KAAKq1K,uBAClBxzK,EAAQ,gBAAQA,EAAOs+I,EAAOt3I,IAAKs3I,EAAOr3I,KAAOjH,EAAQA,EAAQ,GACjEA,EAAQ7B,KAAK+2K,kBAAkB,gBAAal1K,EAAOs+I,EAAOt3I,IAAKs3I,EAAOr3I,MACtE,eAAWw3I,GAAUA,EAAOr5H,EAAWplB,GAASolB,EAAUq5H,GAAQz+I,GAClE7B,KAAKozI,mBAAmBpzI,KAAKywK,kBAAkBxpJ,IAC/CjnB,KAAK60K,oBAET,mBAAmB1rD,GACf,GAAKnpH,KAAKo2K,YAAep2K,KAAKo2K,WAAWp2K,KAAKy0K,kBAG9C,OAAOz0K,KAAKo2K,WAAWp2K,KAAKy0K,kBAAkBtrD,IAElD,iBACI,IAAItnH,EAAQ3B,UAAUtG,OAAS,QAAK,IAAWsG,UAAU,GAAKA,UAAU,GAAKF,KAAKs3J,WAAW,SAC7Ft3J,KAAKw0K,WAAa3yK,GAAS,IAAI9H,KAAK8H,GACpC7B,KAAKwzK,kBAAoB3xK,GAAS,IAAI9H,KAAK8H,IAE/C,iBACI,IAAIA,EAAQ7B,KAAKw0K,YAAc,IAAIz6K,KAAKiG,KAAKw0K,YACzC3yK,GAAS,SAAW7B,KAAK4Y,OAAO,SAChC/W,EAAM6mB,SAAS,EAAG,EAAG,EAAG,GAE5B1oB,KAAKwzK,kBAAoB,IAAIz5K,KAAK8H,GAClC7B,KAAKs3J,WAAW,QAASz1J,IAE7B,iBACI7B,KAAKyzK,iBACLzzK,KAAKozI,mBAAmBpzI,KAAKywK,kBAAkBzwK,KAAKw0K,aACpDx0K,KAAK60K,oBAET,mBAAmBt4K,GACfyD,KAAKC,SAAS1D,GACVyD,KAAK22I,oBACL32I,KAAK4Y,OAAO,OAAQrc,IAG5B,cAAc60I,EAAMulC,GAChB32K,KAAKqzK,qBACL,IACIvqK,IAAKA,EACLD,IAAKA,GACL7I,KAAKq1K,qBAAqBsB,GAC1BK,EAAaluK,EAAMD,EACnB,IAAMmuK,GACNA,IAEJ,IAAI5yG,EAAWgtE,EAAOpxI,KAAKuzK,sBACvBnvG,EAAWt7D,EACXs7D,EAAWpkE,KAAKi3K,aAAa7yG,EAAU,CACnC8yG,UAAWruK,EACXsuK,aAAcruK,EACdkuK,WAAYA,IAET5yG,EAAWv7D,IAClBu7D,EAAWpkE,KAAKi3K,aAAa7yG,EAAU,CACnC8yG,UAAWpuK,EACXquK,aAActuK,EACdmuK,WAAYA,KAGpBh3K,KAAKs1K,oBAAoBlxG,IAE7B,aAAaA,EAAUxzD,GACnB,IACIsmK,UAAWA,EACXC,aAAcA,EACdH,WAAYA,GACZpmK,EACA6hI,GAASruE,EAAW+yG,GAAgBH,EACxC,OAAOvkC,EAAQykC,EAAYzkC,EAAQ,EAAI,gBAAKA,GAAS0kC,GAEzD,oBACIn3K,KAAKyzK,eAAezzK,KAAKw0K,YACrBx0K,KAAK4Y,OAAO,UACZ5Y,KAAKy0K,iBAAmB/zB,GAA2B1gJ,KAAKo2K,WAAYp2K,KAAK43I,SAAS/sF,OAC7E7qD,KAAK6yK,mBACF,eAAU7yK,KAAKy0K,kBACfz0K,KAAK43I,OAAO53I,KAAK+0K,mBAAmB,UAEpC/0K,KAAK+yK,qBAKrB,2BAA2BnvK,GACvB5D,KAAK6yI,SAAST,IAAIpyI,KAAKywK,kBAAkBzwK,KAAKw0K,aAC9Cx0K,KAAKkzK,kBACLlzK,KAAKi0K,kBAAoB,KACrBj0K,KAAKk0K,wBAGb,kBAAkBtwK,GACd,IAAIyqI,EAAUruI,KAAK45I,qBAAqB55I,KAAK4Y,OAAO,QAAS5Y,KAAK43I,SAAU,gBAAch0I,IACtFtK,EAAO,QAAiB6G,MAAMkuI,EAASruI,KAAKk4I,qBAC5C5+I,GAAQ0G,KAAKo3K,aAAa99K,KAC1B0G,KAAKw0K,WAAal7K,EAClB0G,KAAKozI,mBAAmBpzI,KAAKywK,kBAAkBzwK,KAAKw0K,aACpDx0K,KAAK60K,mBACL70K,KAAKkzK,mBAETtvK,EAAEu5D,kBAENi6G,aAAc99K,GAAQ,eAAOA,KAAUkK,MAAMlK,GAC7C,gBACI,IAAIuI,EAAQ7B,KAAKs3J,WAAW,SAC5B,OAAQt3J,KAAKw0K,YAAcx0K,KAAKw0K,WAAWzwK,cAAgBlC,GAASA,EAAMkC,YAE9E,mBACI/D,KAAK01K,oBACD11K,KAAKq3K,iBACL,OAAar5J,QAAQhe,KAAK6yI,SAAU,WAG5C,cAAcjvI,GACV5D,KAAKs3K,mBACLt3K,KAAKkzK,gBAAgBf,IACrBvuK,EAAEu5D,kBAEN,iBAAiBv5D,GACb,IAAI2zK,EAAwBv3K,KAAK22I,qBAAuB/yI,EAAE4zK,qBACtDD,GACAv3K,KAAKs3K,mBACLt3K,KAAKC,SAAS2D,GACd5D,KAAK8yK,iBAAiBlvK,IAEtB5D,KAAKC,SAAS2D,IAGtB,yBAAyBA,GACrB,IAAIrH,EAAOyD,KAAK4Y,OAAO,QACnB5Y,KAAK22I,oBACL32I,KAAK4zI,sBAAsBhwI,GACtBrH,EAEM,OAASyD,KAAKw0K,YACrBx0K,KAAKyzK,eAAel3K,GAFpByD,KAAKw0K,WAAa,KAItBx0K,KAAKy3K,kBAELz3K,KAAKC,SAAS2D,IAGtB,eAAeyrC,GACX,OAAQA,EAAKztC,MACT,IAAK,kBACD5B,KAAK03K,cACL,MACJ,IAAK,gBACL,IAAK,OACD13K,KAAKC,SAASovC,GACdrvC,KAAK03K,cACL,MACJ,IAAK,QACD13K,KAAKyzK,iBACLzzK,KAAKC,SAASovC,GACdrvC,KAAK60K,mBACL,MACJ,IAAK,iBACD,MACJ,QACI70K,KAAKC,SAASovC,KAG1B,kBACIrvC,KAAK01K,2BACE11K,KAAKo2K,kBACLp2K,KAAKy0K,wBACLz0K,KAAKw0K,YAEhB,QACIx0K,KAAKi2K,kBACLj2K,KAAKy0K,iBAAmB,EACxBz0K,KAAKC,YAET,SACID,KAAKC,WACLD,KAAKg2K,oBACLh2K,KAAKi2K,qBAGE,MC7kBf,eAAkB,YAAa,IAChB,ICuBXl2J,UAAWA,IACX,QAMA43J,GAAsB,gBACtBC,GAAsB,yBACtBC,GAAqB,WACrB,IAAIC,EAAkB,SAASjmH,EAAQ/7C,GACnC,OAAO,OAAArb,EAAA,WAAOo3D,EAAQ,CAClB3J,SAAUpyC,EAAQoyC,SAClB+F,YAAan4C,EAAQm4C,YACrB8pH,UAAW,CACPjpL,GAAIgnB,EAAQhnB,IAEhBsrD,SAAUtkC,EAAQskC,UACnBtkC,EAAQtK,gBAEXwsK,EAAgB,WAChB,OAAOp4J,EAAA,KAAQC,SAAW+pF,GAAA,KAAQC,OAAOouE,KAEzCC,EAAsB,SAASpiK,GAC/B,IAAI1R,EAAO,GACP+zK,EAAaH,IACbI,EAAatiK,EAAQsiK,YAAch0K,EACvC,OAAO0zK,EAAgB,CACnB7pH,YAAan4C,EAAQm4C,YACrB5iD,MAAOyK,EAAQzK,MACfxJ,MAAOiU,EAAQjU,MACf8hD,eAAgB,SAAS//C,GACrB,IAAIy0K,EAAoB,cAAgBviK,EAAQgjH,YAAc,gBAAkBhjH,EAAQgjH,WACpFw/C,EAAsB10K,EAAEouD,QAAU,UAAYpuD,EAAEouD,MAAMvzD,MAAQ,UAAYmF,EAAEouD,MAAMvzD,MAClF85K,EAAc,SAAS30K,EAAG41E,GAC1B1jE,GAAWA,EAAQijH,SAASn1H,EAAE/B,MAAO23E,IAEzCpf,aAAah2D,EAAKo0K,oBACdF,GAAuBD,EACvBD,EAAWI,mBAAqBp0K,EAAKo0K,mBAAqB94I,YAAW,WACjE64I,EAAY30K,EAAGQ,EAAKo0K,qBAAuBJ,EAAWI,sBACtD,eAAU1iK,EAAQ2iK,oBAAsB3iK,EAAQ2iK,mBAAqB,GAEzEF,EAAY30K,IAGpB+zC,UAAW,SAAS/zC,GACZu0K,GAAc,UAAY,gBAAiBv0K,EAAEouD,QAC7C,OAAah0C,QAAQ,eAAEpa,EAAEgO,UAAUihI,UAAW,WAGtD6lC,iBAAkB,UAAY,cAAgB5iK,EAAQgjH,WAAa,eAAiB,KACrFhjH,IAEH6iK,EAAuB,SAAS7iK,GAC5B,cAAgBA,EAAQgjH,YAAc,kBAAoBhjH,EAAQgjH,WAClE8/C,EAAiB,OAAAn+K,EAAA,WAAOqb,EAAS,CAC7BgF,OAAQ,CACJqG,YAAa,SAAS/c,GAClB,OAAI,IAASA,EACF0R,EAAQ0E,UAAY,QACpB,IAAUpW,EACV0R,EAAQ2E,WAAa,aADzB,GAIXL,WAAY,EAAC,GAAM,OAIzB,SAAStE,GACPA,EAAQ+iK,WAAa,aACrB/iK,EAAQtK,cAAgBssK,EAAgB,CACpCjjI,YAAa,CACT/lD,GAAIgnB,EAAQhnB,IAEhB+S,MAAO,eAAUiU,EAAQjU,OAASiU,EAAQjU,WAAQ,EAClDi0C,mBAAoBhgC,EAAQoyC,SAC5BzS,mBAAoB3/B,EAAQoyC,SAC5BxU,oBAAoB,EACpBiQ,eAAgB,SAAS//C,GACrBkS,EAAQijH,UAAYjjH,EAAQijH,SAASn1H,EAAE/B,MAAO+B,KAEnDkS,GAbL,CAcAA,IAIV,SAAS8iK,EAAiB9iK,GACtB,IACIgjK,EACA1+J,EACA2+J,EAHAj+J,EAAShF,EAAQgF,OAIjB+iD,EAAc,cAAgB/nD,EAAQgjH,WAC1C,GAAIh+G,EAAQ,CACRg+J,EAAgB,gBAAch+J,EAAOqG,aACrC/G,EAAaU,EAAOV,WAChB,eAAWA,KAAgB2F,GAAU3F,KACrCA,EAAaA,EAAWtE,EAAQoH,KAAO,IACrC,SAASpH,GACP,GAAIA,EAAQoH,KAAOpH,EAAQoH,IAAI6mD,OAAS,YAAcjuD,EAAQgjH,WAAY,CACtE,IAEIkgD,EAFAxtK,EAAgBsK,EAAQtK,eAAiB,GAC7CsK,EAAQtK,cAAgBA,EAExB,IAMI4O,EANAq9B,EAAgBjsC,EAAcisC,cAClCjsC,EAAcisC,cAAgB,SAAS7zC,GACnC6zC,GAAiBA,EAAc34C,MAAMkB,KAAME,WAC3C84K,EAAYp1K,EAAEgO,UACdonK,EAAUlvK,GAAG,YAAamvK,IAG9B,IAAIA,EAAYnjK,EAAQoH,IAAI6mD,MAAM,KAC9B3pD,EAAatE,EAAQgF,OAAOV,WAAWtE,EAAQoH,KACxC9C,GAAcA,EAAWhc,QACjC,KACC46K,EAAUpgK,OAAO,aAAcwB,IAChC8C,IACCpH,EAAQoH,IAAMA,KAlBxB,CAqBApH,KAEF,eAASsE,IAAevb,MAAMuY,QAAQgD,MACtCA,EAAa,gBAA2BA,GACpCyjD,IACAk7G,EAAc3+J,EAAW2+J,YACzB3+J,EAAW2+J,YAAc,SAASxuK,GAK9B,OAJI,IAAMvK,KAAKisD,cACX1hD,EAAQA,EAAMyJ,MAAM,GACpBzJ,EAAMoY,QAAQ,OAEdo2J,EACOA,EAAY3iK,KAAKpW,KAAMuK,GAE3BA,KAInB,IAAIy1C,EAAgBjkC,QAAQjB,EAAOklC,gBAAkB6d,GACrD/nD,EAAQ+iK,WAAa,cACrB/iK,EAAQtK,cAAgBssK,EAAgB,CACpCz7C,eAAe,EACfx6H,MAAOiU,EAAQjU,MACfqf,UAAWpL,EAAQgF,OAAOoG,UAC1Bg4J,WAAYpjK,EAAQgF,OAAOo+J,YAAcpjK,EAAQgF,OAAOqG,YACxD6+B,cAAeA,EACfm5H,gBAAiBn5H,EACjB7+B,YAAa,SAAS/c,GAClB,OAAI,OAASA,EACF0R,EAAQsxC,YAEZ0xH,EAAc10K,IAEzBgW,WAAYA,EACZupC,eAAgB,SAAS//C,GACrB,IAAI+sE,EAAS,CAAC/sE,EAAE/B,QACfg8D,GAAe8S,EAAO1tE,KAAKW,EAAEgO,UAAUgH,OAAO,SAC/C9C,EAAQijH,SAASj6H,MAAMkB,KAAM2wE,KAElC76D,IAGX,MAAO,CACH+iH,aAAc,SAASpjH,EAAYK,GAM/B,GALAA,EAAQyqC,QAAS,EACjBzqC,EAAQsjK,cAAgB,eAAiB3jK,GACpC,eAAUK,EAAQskC,YACnBtkC,EAAQskC,SAAWp6C,KAAK4Y,OAAO,aAE/B9C,EAAQgF,OACR89J,EAAiB9iK,QAEjB,OAAQA,EAAQf,UACZ,IAAK,OACL,IAAK,YACC,SAASe,GACPA,EAAQ+iK,WAAa,YACrB/iK,EAAQtK,cAAgBssK,EAAgB,CACpCj2K,MAAOiU,EAAQjU,MACf8hD,eAAgB,SAAStU,GACrBv5B,EAAQijH,SAAS1pF,EAAKxtC,QAE1B81C,UAAW,SAASxnC,GAChB,IACIyB,UAAWA,EACXogD,MAAOA,GACP7hD,EACAsmI,EAAkB7kI,EAAUgH,OAAO,oBAClCo/J,KAAmBvhC,IAAoB,UAAY,gBAAiBzkF,KACrEpgD,EAAUynK,OACVznK,EAAU+iD,UAGlBn+C,cAAeV,EAAQzc,OACvBoF,KAAMqX,EAAQf,SACd2/B,wBAAyB,KACzBrpC,MAAO,kBAAoByK,EAAQgjH,gBAAa,EAAS,QAC1DhjH,GAtBL,CAuBAA,GACF,MACJ,IAAK,UACD6iK,EAAqB7iK,GACrB,MACJ,IAAK,UACC,SAASA,GACP,IAAI+7C,EAASqmH,EAAoBpiK,GACjC+7C,EAAOhwD,MAAQ,eAAUiU,EAAQjU,OAASiU,EAAQjU,MAAQ,KAC1DiU,EAAQ+iK,WAAa,cACrB/iK,EAAQtK,cAAgBqmD,EAJ1B,CAKA/7C,GACF,MACJ,SACM,SAASA,GACP,IAOIjU,EAPAgwD,EAASqmH,EAAoBpiK,GAC7BwjK,EAAc,gBAAkBxjK,EAAQgjH,WACxChjH,EAAQkzC,YAAc,cAAgBlzC,EAAQkzC,WAC9C6I,EAAOhwD,MAAQiU,EAAQjU,MAEvBgwD,EAAOhwD,OAASA,EAAQiU,EAAQjU,MAAO,eAAUA,GAASA,EAAM8P,WAAa,IAGjFkgD,EAAO6mH,kBAAoBY,EAAc,sBAAwB,GACjEznH,EAAOvlB,KAAOulB,EAAOvlB,OAASgtI,EAAc,SAAW,QACvDxjK,EAAQ+iK,WAAa,YACrB/iK,EAAQtK,cAAgBqmD,EAZ1B,CAaA/7C,GAGV,YAAcA,EAAQgjH,YAAchjH,EAAQkzC,aAC5ClzC,EAAQ+iK,WAAa/iK,EAAQkzC,YAEjChpD,KAAKkyD,cAAc,oBAAqBp8C,GACpCA,EAAQyqC,SAGR,YAAczqC,EAAQgjH,YAAehjH,EAAQyjK,UAAa,eAAUzjK,EAAQtK,cAAcguK,sBAC1F1jK,EAAQtK,cAAcguK,oBAAqB,GAC5C,SAAS71K,EAAMmS,GACd,IAAI2jK,EAAiB,eAAE3jK,EAAQsjK,eAC/B,GAAItjK,EAAQ+iK,YAAc/iK,EAAQtK,eAAiBiuK,EAAe3jK,EAAQ+iK,YAAa,CAQnF,GAPI,eAAiB/iK,EAAQ+iK,YAAc,aAAe/iK,EAAQ+iK,YACzD/iK,EAAQyjK,WACTE,EAAethK,SAASxU,EAAKiU,gBAAgB+/J,KAC7C8B,EAAer6J,SAASjH,SAASy/J,KAGzCj0K,EAAKsV,iBAAiBwgK,EAAgB3jK,EAAQ+iK,WAAY/iK,EAAQtK,eAC9D,cAAgBsK,EAAQ+iK,WAAY,CACpC,IAAIvjB,EAAUmkB,EAAeC,UAAU,YACnCC,EAAyBrkB,EAAQluD,iBAAiB+pC,MACtDmkB,EAAQ6C,mBAAmB,QAASv0J,IAC5B0xJ,EAAQ18I,OAAO,WACf+gK,EAAuB/1K,IAEpB,IAGX,eAAiBkS,EAAQ+iK,YACzBY,EAAeG,WAAW,YAAYzhB,mBAAmB,SAAS,SAAUnmG,GACpE,UAAY,gBAAiBA,IAAWA,EAAMkL,SAAYlL,EAAMwb,UAChExb,EAAMo4C,sBAvBvB,CA4BDpqG,KAAM8V,GACR9V,KAAKkyD,cAAc,mBAAoBp8C,MAhQ1B,GAoQV,MC3QX,GAAsB,yBACtB,GAA4B,yBAC5B+jK,GAAsB,gBACtB,GAAgB,UAChBC,GAAwB,aACxB,GAAY,SACZC,GAAmB,0BACnBC,GAAsB,gBAAa,CAAC1/G,EAAA,KAAcC,KAAM,UAAW,QAAgBv+D,KAAK,KAAM+9K,IAC9FE,GAAY,YACZC,GAAgB,EAAQtnH,eAAe7C,QAAQ,CAC/CoqH,mBAAoB,SAASC,GACzB,IAAIC,EAAcr6K,KAAK4Y,OAAO,qBAAuB,qBAAuB,uCACxE0hK,EAAyB,uBAAuB3yJ,OAAO0yJ,EAAa,yIACpEE,EAAkBH,EAAiBtiK,KAAKwiK,GAC5C,OAAOt6K,KAAKyyD,oBAAoB8nH,IAAoBA,GAExDC,sBAAuB,WACnB,MAAO,gBAEXC,iBAAkB,WACd,IACIC,EACAC,EAFAP,EAAmBp6K,KAAK4R,WAAa5R,KAAK4R,UAAUiF,WAGxD,GAAIujK,EAAkB,CAClB,IAAIQ,EAAS56K,KAAKm6K,mBAAmBC,GACrC,GAAIQ,GAAUA,EAAOhhL,SACZghL,EAAO3jH,SAAS,KAA+B2jH,EAAO3jH,SAAS,MAChEyjH,EAAaE,EAAOz8J,QAAQne,KAAKw6K,wBAA0B,MAAQ,IACnEG,EAAcD,EAAWh9K,IAAI,KAAOk9K,EAAOl9K,IAAI,IAAMg9K,EAAWzjH,SAAS,IACzE2jH,EAASF,GAETE,EAAOhhL,SAAWghL,EAAO3jH,SAAS,KAElC,YADAj3D,KAAK20D,MAAMimH,EAAQD,GAK/B36K,KAAK66K,aAETC,aAAc,SAASl3K,GACnB,IAAID,EAAO3D,KACP+6K,EAAiBn3K,GAAKA,EAAEouD,OAAS,eAAEpuD,EAAEouD,MAAM97C,QAAQ+gD,SAAStzD,EAAKiU,gBAAgBiiK,KACrFl2K,EAAKq3K,gBAAkBr3K,EAAKq3K,iBAAmBD,EAC/C3gH,aAAaz2D,EAAKs3K,uBAClBt3K,EAAKs3K,sBAAwBv7I,YAAW,kBAC7B/7B,EAAKs3K,sBACPt3K,EAAKq3K,iBACNr3K,EAAK82K,mBAET92K,EAAKq3K,iBAAkB,MAG/BE,wBAAyB,SAASrkK,EAAUsuC,GACxCtuC,EAASukC,OACT,IAAI4P,EAAW,QAAcmwH,UAAUtkK,EAAU,OAAApc,EAAA,WAAO,CACpD4e,UAAW,OACZ8rC,IACC6F,EAASp4C,EAAEwoK,SAAW,GACtB,eAAcvkK,EAAU,eAAcA,GAAYm0C,EAASp4C,EAAEwoK,UAE7DpwH,EAASr7B,EAAEyrJ,SAAW,GACtB,eAAevkK,EAAU,eAAeA,GAAYm0C,EAASr7B,EAAEyrJ,UAEnEvkK,EAASwkC,QAEbgV,cAAe,WACX,MAAO,CAAC,YAEZsE,MAAO,SAAS99C,EAAUwkK,GACtB,IAAI13K,EAAO3D,KACX,QAAI,IAAW6W,EACX,OAAOlT,EAAK23K,iBACLzkK,IACFA,EAASjpB,GAAG+V,EAAK23K,mBAClB33K,EAAK23K,kBAAoB33K,EAAK23K,iBAAiBjjK,YAAYyhK,IAE/Dn2K,EAAK23K,iBAAmBzkK,EACxBujD,aAAaz2D,EAAK43K,iBAClB53K,EAAK43K,gBAAkB77I,YAAW,kBACvB/7B,EAAK43K,gBACZ53K,EAAK63K,mBAAmB3kK,EAAUwkK,GAClCxkK,EAASsB,SAAS2hK,IAClBn2K,EAAK83K,QAAQjnH,KAAK39C,QAI9B6kK,QAAS,WACL,IAAId,EAAS56K,KAAK20D,QAClB30D,KAAK20D,MAAMimH,IAEfY,mBAAoB,SAAS3kK,EAAUwkK,GACnC,GAAK,OAAcr8J,uBAAuBhf,KAAM6W,GAMhD,GAHK7W,KAAK27K,iBACN37K,KAAK27K,eAAiB,eAAE,SAASxjK,SAASnY,KAAK4X,gBAAgBiiK,MAE/DwB,EACAr7K,KAAK27K,eAAexjK,SAAS8hK,SAC1B,GAAIpjK,EAASjd,OAAQ,CACxB,IAAI8nK,EAAQ9hJ,EAAA,KAAQC,QAAU,eAAiB,WAC3C6tD,EAAW72D,EAASsH,QAAQ,IAAMne,KAAK4X,gBAAgB,KACvDgkK,EAAY,eAAgB/kK,EAASnZ,IAAI,IAC7CsC,KAAK27K,eAAetjK,YAAY4hK,IAAW7hK,SAASs1D,GACpD,eAAe1tE,KAAK27K,eAAgBC,EAAU78D,OAAS68D,EAAUh/J,IAAM,GACvE,eAAc5c,KAAK27K,eAAgBC,EAAUz+C,MAAQy+C,EAAUj/J,KAAO,GACtE,IAAIk/J,EAAuB,CACvBC,SAAS,EACTxvH,GAAIo1G,EACJt1G,GAAIs1G,EACJvoJ,GAAItC,EACJuC,SAAUs0D,EAAS9zE,QAAU8zE,GAEjC1tE,KAAKk7K,wBAAwBl7K,KAAK27K,eAAgBE,GAClD,QAAc5kE,MAAMj3G,KAAK27K,eAAgBE,GACzC77K,KAAK27K,eAAel/J,IAAI,aAAc,aAG9Cg4C,OAAQ,WACJ,IAAI8lH,EAAkBv6K,KAAKs7K,iBACvBf,GACAv6K,KAAK20D,MAAM4lH,IAGnBM,UAAW,WACP76K,KAAKs7K,kBAAoBt7K,KAAKs7K,iBAAiBjjK,YAAYyhK,IAC3D95K,KAAKs7K,iBAAmB,KACxBt7K,KAAK27K,gBAAkB37K,KAAK27K,eAAexjK,SAAS8hK,KAExDxpH,KAAM,WACFzwD,KAAKmxD,aAAa,oBAAqB,CACnC8T,kBAAmB,CAAC,WAAY,YAChCC,SAAU,cAEdllE,KAAKmxD,aAAa,mBAAoB,CAClC8T,kBAAmB,CAAC,WAAY,YAChCC,SAAU,cAEdllE,KAAK+7K,oBAAsB/7K,KAAK+7K,qBAAuB/7K,KAAKmxD,aAAanxD,KAAK86K,aAAat/J,KAAKxb,OAChG,OAAa8J,GAAG,aAAWg2D,cAAek6G,GAAqBh6K,KAAK+7K,qBACpE/7K,KAAKg8K,iCAETA,8BAA+B,WAC3B,IAAIr4K,EAAO3D,KACPyV,EAAa9R,EAAKiO,WAAajO,EAAKiO,UAAUiF,WAC9CpB,GACA,OAAa3L,GAAG2L,EAAY,gBAAa,UAAWskK,KAAmB,SAAUn2K,GACzE,QAAU,gBAAiBA,IAC3BD,EAAKo4K,oBAAoBn4K,OAKzCuuD,QAAS,WACLiI,aAAap6D,KAAKu7K,iBAClBnhH,aAAap6D,KAAKi7K,uBAClB,OAAahqH,IAAI,aAAW6O,cAAek6G,GAAqBh6K,KAAK+7K,wBAE1EhsF,QAAQ,IACAksF,GAAsB,CAC7Bt+K,eAAgB,WACZ,MAAO,IAEX63D,YAAa,CACT0sD,cAAeg4D,KC5LvB,EAAS9jH,eAAe,gBAAiB6lH,I,2CCmCrC,GAAS,iBACTC,GAAiB,CACjB3/K,KAAM,KACNu/C,QAAS,WACL,OAAO,IAGXqgI,GAAsB,YACtBC,GAA8B,GAAGz0J,OAAOw0J,GAAqB,YAC7DE,GAA2B,GAAG10J,OAAOw0J,GAAqB,SAC1DG,GAA8B,GAAG30J,OAAOw0J,GAAqB,YAC7DI,GAA8B,GAAG50J,OAAOw0J,GAAqB,YAC7DK,GAA8B,GAAG70J,OAAOw0J,GAAqB,YAC7DM,GAA6B,GAAG90J,OAAOw0J,GAAqB,WAC5DO,GAAsB,YACfC,GAAsB,QAAU5sH,QAAQ,CAC/CE,KAAM,SAASv4C,EAAS5B,GACpB9V,KAAKC,SAAS6V,IAElB26F,qBAAsB,WAClB,OAAOzwG,KAAKC,WAAW0nB,OAAO,CAAC,CAC3B+oF,OAAQ,CACJj+E,SAAU,OAEd3c,QAAS,CACLzK,MAAO,WAKZuxK,GAAS,SAAS9mK,GACzB,IAAI+mK,EACAzuH,EAAW,IAAI,cACfzwD,GAAiB,IAAKg/K,IAAqB/jK,SAC/C9C,EAAU,OAAArb,EAAA,WAAOkD,EAAgBmY,GACjC,IAAIe,EAAW,eAAE,SAASsB,SAASgkK,IAAqB/jK,SAAS,mBAC7D0kK,EAAmB,YAAahnK,EAChCinK,EAAuB,gBAAiBjnK,EACxCgnK,GACA,OAAOh5K,IAAI,SAEf,IAAIk5K,EAAcrjL,OAAOojL,EAAuBjnK,EAAQknK,YAAclnK,EAAQiD,SAC1EmiG,EAAW,eAAE,SAAS/iG,SAASokK,IAA6BzxH,KAAKkyH,GACjEC,EAAoB,GACxB,eAAKnnK,EAAQinC,SAAW,CAACm/H,KAAiB,WACtC,IAAIpqH,EAAS,IAAI,QAAO9xD,KAAK87C,QAAS,CAClCmmC,QAASi7F,IAEbD,EAAkBh6K,KAAK,CACnBo3C,QAAS,SACT2Q,SAAU4+C,GAAA,KAAQiK,UAAUwrD,QAAU,QAAU,SAChDl0G,OAAQ,WACRr1C,QAAS,OAAArb,EAAA,WAAO,GAAIuF,KAAM,CACtB87C,QAAS,WACL,IAAI78C,EAAS6yD,EAAOqrH,WAAWj9K,WAC/Bk7C,EAAKn8C,WAKrB,IAAIi+K,EAAgB,IAAI,QAAMrmK,EAAU,OAAApc,EAAA,WAAO,CAC3C+kD,MAAO,QAAUq9H,EAAiB/mK,EAAQ0pC,aAAU,IAAWq9H,EAAiBA,EAAiB,GACjGr3H,UAAW,eAAc1vC,EAAQ0vC,WAAW,GAC5CrB,YAAa,eAAcruC,EAAQquC,aAAa,GAChDtnC,OAAQ,OACRxR,MAAOyK,EAAQzK,MACfk6C,gBAAiBzvC,EAAQyvC,kBAAmB,EAC5C63H,mBAAmB,EACnBpkK,UAAWnC,EACXm+F,gBAAiB,GACjBv+D,eAAgB,SAASpH,GACrBA,EAAKz9B,UAAU87D,WAAWv1D,SAASmkK,IAA6BviJ,OAAOmhF,IAE3El2D,UAAW,SAASphD,GAChBA,EAAEgO,UAAUyrK,gBAAgBllK,SAASqkK,IAA6B1kK,KAAK,IAAI6P,OAAO+0J,KAAsBvkK,SAASskK,IACjH,mBAEJx3H,QAAS,SAASrhD,GACd,IAAI05K,EAAe15K,EAAEgO,UAAUyrK,gBAAgBvlK,KAAK,IAAI6P,OAAO+0J,KAAsBnyG,QACrF,OAAavsD,QAAQs/J,EAAc,UAEvC14H,SAAU,WACNwJ,EAASv6B,UAEb6xB,aAAcu3H,EACdp5H,UAAW,CACPxI,KAAM,CACF58C,KAAM,MACNisD,SAAU,KAEdtP,KAAM,CACF38C,KAAM,MACNisD,SAAU,IACVhyD,GAAI,CACA0wD,QAAS,EACTC,MAAO,GAEXt0B,KAAM,CACFq0B,QAAS,EACTC,MAAO,KAInBhtC,WAAY,kBAASA,WACrB8oC,SAAU,CACNkH,eAAgB,CACZz5C,EAAG,GACH+c,EAAG,KAGZ7Z,EAAQynK,eAOX,SAASniI,EAAKv5C,GACVusD,EAASztC,QAAQ9e,GACjBq7K,EAAc9hI,OAAO/8B,MAAK,WACtB6+J,EAAcrmK,WAAW8B,YAGjC,OAZAukK,EAAclxE,WAAW7zF,SAASikK,IAC9BtmK,EAAQqvC,UACR+3H,EAActkK,OAAO,WAAY9C,EAAQqvC,UAE7C+3H,EAAclxE,WAAW7zF,SAASkkK,IAQ3B,CACHhhI,KAAM,WACF,GAAI,YAAcuuD,GAAA,KAAQC,OAAOp3E,SAAU,CACvC,IAAI+qJ,EAAa,eAAU,IAAU,eAAS,IAC1CnyK,EAAQmyK,EAAa,MAAQ,MACjCN,EAActkK,OAAO,CACjBvN,MAAOA,IAIf,OADA6xK,EAAc7hI,OACP+S,EAAS3sC,WAEpB25B,KAAMA,IAcH,GAAU,SAAS4hI,GAC1B,IAAIx9H,EAAQt/C,UAAUtG,OAAS,QAAK,IAAWsG,UAAU,GAAKA,UAAU,GAAK,GACzEslD,EAAYtlD,UAAUtG,OAAS,EAAIsG,UAAU,QAAK,EAClD4V,EAAU,eAAcknK,GAAeA,EAAc,CACrDx9H,MAAOA,EACPw9H,YAAaA,EACbx3H,UAAWA,EACXzI,QAAS,CAAC,CACNxgD,KAAM,OAAoBlD,OAAO,OACjCyiD,QAAS,WACL,OAAO,IAEZ,CACCv/C,KAAM,OAAoBlD,OAAO,MACjCyiD,QAAS,WACL,OAAO,KAGfqI,YAAaqB,GAEjB,OAAOo3H,GAAO9mK,GAASulC,Q,aChNhB,GAAoB,iBACpB,GAAY,SAEZoiI,GAAqB,eACrBC,GAAkB,YAClBC,GAA6B,SAC7BC,GAA6B,SAC7BC,GAA4B,gBAC5BC,GAA2B,eAC3BC,GAAiC,qBACjCC,GAAqC,yBACrCC,GAAwB,kBACxBC,GAAyB,6BACzBC,GAA6B,eAAiBD,GAC9CE,GAAkB,QAClBC,GAAgB,MAChBC,GAAiB,OACjBC,GAAiB,OACjBC,GAAkB,QAClBC,GAAyB,QACzBC,GAAwB,OACxBC,GAA+B,aAC/BC,GAA4B,UAC5BC,GAAmC,iBACnCC,GAAgC,cAChCC,GAAa,CAACX,GAAiBC,GAAeC,GAAgBC,GAAgBC,IAC9EQ,GAAkB,CAACX,GAAeE,GAAgBC,IAClDS,GAA2B,CAACZ,GAAeE,IC0ClDW,GAAiB,WACjBC,GAAa,UACbC,GAAe,eACfC,GAAoB,iBACpBC,GAAqB,kBACrBC,GAAgCD,GAAqB,cACrDE,GAAe,sBACfC,GAAe,kBACfC,GAAe,kBACfC,GAAgB,mBAChBC,GAAoB,oBACpB,GAA4B,yBAC5BC,GAA6B,SAC7BC,GAA4B,QAC5BC,GAAkB,CAClBnvD,KAAM,eACNrwE,OAAQ,iBACRy/H,KAAM,eACNC,SAAU,mBACVC,OAAQ,iBACRpwK,IAAK,eAELqwK,GAAkB,CAClBvvD,KAAM,OACNrwE,OAAQ,SACRy/H,KAAM,OACNC,SAAU,SACVC,OAAQ,QACRpwK,IAAK,OAELswK,GAAe,CACfJ,KAAM,UACNE,OAAQ,YACRD,SAAU,cACVrvD,KAAM,eACNrwE,OAAQ,iBACRzwC,IAAK,oBAELuwK,GAAsB,CACtBvwK,IAAK,cACLkwK,KAAM,gBACNE,OAAQ,iBAERI,GAAe,CAAC,OAAQ,OAAQ,SAAU,SAAU,YACpDC,GAA8B,kBAC9BC,GAAuB,SAASpyH,GAChC,OAAO,SAASwvC,GACZ,IAAIxrE,EAAQwrE,aAAelyE,MAAQkyE,EAAM,IAAIlyE,MAAMkyE,GAAOjkG,OAAOikG,IAAQ,iBACzExvC,EAASv6B,OAAOzB,KAGpBquJ,GAAgB,SAASx1C,EAAWztE,GACpC,OAAOA,EAAYQ,WAAaitE,GAAaztE,EAAYjjD,OAAOjP,cAEhEo1K,GAAsC,SAASz1C,EAAWztE,GAC1D,IAAImjH,IAAkBnjH,EAAYjjD,OAAOsE,QACrCm/C,EAAYyiH,GAAcx1C,EAAWztE,GACrCojH,GAAgBD,IAAkB3iH,GAAaR,EAAYjjD,OAAO2jC,kBACtE,MAAO,SAAWsf,EAAY7iD,SAAWimK,GAEzCC,GAAoB,EAAQjuH,eAAe7C,QAAQ,WACnD,IAAI+wH,EAAiB,CAAC/jI,EAASn7C,KAC3B,IAAI3C,GAAU,EAOd,OANA89C,EAAQn+B,KAAK,CAAC8/B,EAAQt9C,KAClB,GAAI2/K,EAAcriI,KAAY98C,EAE1B,OADA3C,EAASmC,GACF,IAGRnC,GAGX,SAAS8hL,EAAcriI,GACnB,OAAO,eAASA,GAAUA,EAAO98C,KAAO88C,EAE5C,MAAO,CACH+R,KAAM,WACFzwD,KAAKs9D,mBAAqBt9D,KAAK2xD,cAAc,WAC7C3xD,KAAKiY,gBAAkBjY,KAAK2xD,cAAc,QAC1C3xD,KAAKw6G,UAAYx6G,KAAKqd,QAAQ,YAC9Brd,KAAKghL,eAAiB,KAClBhhL,KAAKihL,YACLjhL,KAAKihL,WAAW//K,QAAQgQ,GAAKA,EAAE2iB,OAAO,WAE1C7zB,KAAKihL,WAAa,GACbjhL,KAAKupF,sBACNvpF,KAAKupF,oBAAsBvpF,KAAKulE,mBAAmB/pD,KAAKxb,MACxDA,KAAKiY,gBAAgBqtD,QAAQx1D,IAAI9P,KAAKupF,sBAErCvpF,KAAKkhL,qBACNlhL,KAAKmxD,aAAa,eAAgB,CAC9B8T,kBAAmB,CAAC,WAAY,cAEpCjlE,KAAKmxD,aAAa,iBAAkB,CAChC8T,kBAAmB,CAAC,WAAY,cAEpCjlE,KAAKmxD,aAAa,gBAAiB,CAC/B8T,kBAAmB,CAAC,WAAY,cAEpCjlE,KAAKmxD,aAAa,iBAAkB,CAChC8T,kBAAmB,CAAC,WAAY,cAEpCjlE,KAAKmxD,aAAa,gBAAiB,CAC/B8T,kBAAmB,CAAC,WAAY,cAEpCjlE,KAAKmxD,aAAa,eAAgB,CAC9B8T,kBAAmB,CAAC,WAAY,cAEpCjlE,KAAKmxD,aAAa,gBAAiB,CAC/B8T,kBAAmB,CAAC,WAAY,cAEpCjlE,KAAKmxD,aAAa,eAAgB,CAC9B8T,kBAAmB,CAAC,WAAY,cAEpCjlE,KAAKmxD,aAAa,UAAW,CACzB8T,kBAAmB,CAAC,WAAY,cAEpCjlE,KAAKmxD,aAAa,WAAY,CAC1B8T,kBAAmB,CAAC,WAAY,cAEpCjlE,KAAKmxD,aAAa,kBAAmB,CACjC8T,kBAAmB,CAAC,WAAY,cAEpCjlE,KAAKmxD,aAAa,iBAAkB,CAChC8T,kBAAmB,CAAC,WAAY,eAGxCjlE,KAAKmhL,oBACLnhL,KAAKohL,qBACAphL,KAAKqhL,iBACNrhL,KAAKqhL,eAAiB,IAE1BrhL,KAAK4R,UAAUo/F,oBAAoB+sE,KAAkC,EACrE/9K,KAAK4R,UAAUo/F,oBAAoBuvE,KAA+B,GAEtEe,YAAa,WACT,IAAIC,EAAWvhL,KAAK4Y,OAAO,gBAC3B,OAAK,IAAMmmK,GAAWzgL,QAAQijL,GACnBA,EAEJlD,IAEXmD,0BAA2B,WACvB,MAAO,CAACxoK,EAAWlD,KACf,IAAI0iH,EAAU,eAAE,SAASpgH,SAASY,GAClChZ,KAAK2xD,cAAc,iBAAiBknE,aAAaL,EAAS,OAAA/9H,EAAA,WAAO,GAAIqb,EAAQyE,OAAQ,CACjF1Y,MAAOiU,EAAQjU,MACfk3H,SAAUjjH,EAAQijH,SAClB77G,IAAKpH,EAAQoH,IACb47G,WAAY,UACZztH,MAAO,KACP68C,UAAWpyC,EAAQijH,SACnBwgD,SAAUzjK,EAAQyjK,SAClBzqL,GAAIgnB,EAAQhnB,QAIxB2yL,mBAAoB,WAChB,IAAIxgI,EAAiBjhD,KAAK4Y,OAAO,0BAC7Bs6E,EAAgBlzF,KAAK4Y,OAAO,kBAChC,GAAI,YAAcs6E,EACd,OAAQjyC,GACJ,KAAK29H,GACD,OAAOE,GACX,KAAKH,GACD,OAAOE,GACX,QACI,OAAO59H,EAGnB,OAAOA,GAEXygI,WAAY,WACR,OAAO1hL,KAAK4Y,OAAO2nK,KAEvBoB,kBAAmB,WACf,IAAI7nK,EAAU9Z,KAAK4Y,OAAO2nK,IAC1B,OAAOzmK,EAAQ1b,OAAOmjD,GAAU,WAAaA,EAAO9iD,MAAM7E,QAE9DgoL,aAAc,WACV,IAAI9nK,EAAU9Z,KAAK0hL,aACfG,EAAY,OAAS/nK,QAAW,IAAWA,OAAU,EAASA,EAAQlgB,OACtEioL,GACA7hL,KAAK+wD,cAAcwvH,GAA6B,KAGxDuB,iBAAkB,SAAShnL,GACvB,OAAOkF,KAAKqhL,eAAejjL,OAAOyL,GAAQ,eAAaA,EAAK/O,IAAKA,IAAM,IAE3EinL,iBAAkB,SAASpxG,GACvB,IAAIqxG,EAAehiL,KAAK8hL,iBAAiBnxG,EAAO71E,KAChD,OAAIknL,EACO,OAAAvnL,EAAA,WAAOunL,EAAcrxG,IAEhC3wE,KAAKqhL,eAAep+K,KAAK0tE,GAClBA,IAEXsxG,YAAa,SAASnnL,GAClB,IAAIonL,EACJ,OAAO,QAAUA,EAAwBliL,KAAK8hL,iBAAiBhnL,UAAS,IAAWonL,OAAwB,EAASA,EAAsB7sD,SAE9I8sD,eAAgB,SAAS/9K,GACrB,IAAItJ,EAAMkF,KAAKiY,gBAAgBuzE,MAAMpnF,GACjC0V,EAAU9Z,KAAK0hL,aACfU,EAAY,OAAc9oK,cAAcxe,EAAKgf,GACjD,OAAIA,EAAQsoK,GACD,gBAAwBh+K,EAAM0V,EAAQsoK,GAAWh+K,MAErDA,GAEXi+K,gBAAiB,WACb,OAAOriL,KAAK0hL,aAAatjL,OAAOmjD,GAAUA,EAAOn9C,MAAQm9C,EAAO9iD,OAASk/K,IAA4B7hL,IAAIylD,GAAUA,EAAOn9C,OAE9Hk+K,eAAgB,WACZ,OAAOtiL,KAAK0hL,aAAatjL,OAAOmjD,GAAUvhD,KAAKiiL,YAAY1gI,EAAOzmD,MAAQymD,EAAO9iD,OAASm/K,IAA4B9hL,IAAIylD,GAAUvhD,KAAKiiL,YAAY1gI,EAAOzmD,OAEhKynL,uBAAwB,SAAS3kF,GAC7B,GAAI,WAAaA,EAAjB,CAGA,IAAIwd,EAAgBp7G,KAAKwiL,kBACzBxiL,KAAKiY,gBAAgB84E,kBAAkBv8B,KAAKopC,EAAKwd,KAErDqnE,yBAA0B,OAC1BC,eAAgB,OAChBn9G,mBAAoB,OACpBo9G,wBAAyB,SAASjkI,EAAQ5oC,GACtC,IAAI7W,GAAS,EACb,OAAQy/C,EAAO98C,MACX,IAAK,SACD3C,EAASe,KAAK2gD,cAAc7qC,GAC5B,MACJ,IAAK,WACD7W,GAAS,EAEjB,OAAOA,GAEX2jL,iBAAkB,SAASlkI,EAAQ5oC,GAC/B,IAAIykC,EAAUmE,EAAOnE,QACrB,OAAK,eAAUA,GAGR,eAAWA,GAAWA,EAAQnkC,KAAKsoC,EAAQ,CAC9C9sC,UAAWkE,EAAQlE,UACnBsL,IAAKpH,EAAQoH,IACb3C,OAAQzE,EAAQyE,SACfggC,EANMv6C,KAAK2iL,wBAAwBjkI,EAAQ5oC,IAQpD+sK,kBAAmB,SAASnkI,EAAQ5oC,GAChC,IAAI6+B,EAAW+J,EAAO/J,SACtB,OAAO,eAAWA,GAAYA,EAASv+B,KAAKsoC,EAAQ,CAChD9sC,UAAWkE,EAAQlE,UACnBsL,IAAKpH,EAAQoH,IACb3C,OAAQzE,EAAQyE,WACbo6B,GAEXmuI,iBAAkB,SAASpkI,EAAQ5oC,GAC/B,IAAI+7C,EAAS,eAASnT,GAAUA,EAAS,GACrCsmG,EAAa+7B,EAAcriI,GAC3B8C,EAAe,CAAC1rC,IAChB,IAAI0rC,EAAe1rC,EAAQlE,UAAUgH,OAAO,kBAAoB,GAChE,MAAO,CACHg4G,KAAMpvE,EAAaS,eACnB1B,OAAQiB,EAAaG,iBACrBq+H,KAAMx+H,EAAaO,QACnBk+H,SAAUz+H,EAAaU,YACvBg+H,OAAQ1+H,EAAaM,UACrBhyC,IAAK0xC,EAAauhI,eARP,CAUhBjtK,GACCoE,EAAakmK,GAAap7B,GAC1Bg+B,EAAiBhjL,KAAK4Y,OAAO,WAC7B04C,EAAa+uH,GAAoBr7B,GACjCi+B,GAAc3xH,GAAa0xH,EAAe1xH,GAC9C,OAAO,OAAA72D,EAAA,WAAO,CACVmH,KAAMojJ,EACNzoJ,KAAMilD,EAAawjG,GACnBppG,SAAUmkI,GAAgB/6B,IAC3B,CACClpG,QAAS5hC,GAAc,CAACtW,IACpB,IAAIouD,EAAQpuD,EAAEouD,MACdA,EAAMo4C,kBACNp4C,EAAMmL,iBACNz9B,WAAW,KACP5pB,EAAQoH,KAAO+lK,GAAejjL,KAAKka,IAAela,KAAKka,GAAYpE,EAAQoH,IAAIs9C,eAGxF3I,IAEPqxH,mBAAoB,SAASptK,GACzB,IAAIqtK,EACAC,IAAsBttK,EAAQyE,OAAOwiC,QACrCA,GAAWjnC,EAAQyE,OAAOwiC,SAAW,IAAI/oC,QAkB7C,OAjBIovK,GACAD,EAAcrC,EAAe/jI,EAAS,QAClComI,GAAe,IACXrC,EAAe/jI,EAAS,QAAU,GAClCA,EAAQsnB,OAAO8+G,EAAc,EAAG,EAAG,QAEnCrC,EAAe/jI,EAAS,UAAY,GACpCA,EAAQsnB,OAAOy8G,EAAe/jI,EAAS,QAAU,EAAG,EAAG,WAG/DomI,EAAcrC,EAAe/jI,EAAS,UAClComI,GAAe,GAAKrC,EAAe/jI,EAAS,YAAc,GAC1DA,EAAQsnB,OAAO8+G,EAAc,EAAG,EAAG,aAGvCpmI,EAAUujI,GAAatsK,QAEpB+oC,EAAQjhD,IAAI4iD,GAAU1+C,KAAK8iL,iBAAiBpkI,EAAQ5oC,KAE/DutK,sBAAuB,SAAS5tK,EAAYsnC,EAASjnC,EAASyrC,GAC1DxE,EAAQ77C,QAAQw9C,IACR1+C,KAAK4iL,iBAAiBlkI,EAAQ5oC,IAC9B9V,KAAKsjL,cAAc7tK,EAAYipC,EAAQ5oC,EAASyrC,MAI5DgiI,4BAA6B,WACzB,MAAO,CAACvqK,EAAWlD,EAASyrC,KACxB,IAAI9rC,EAAa,eAAEuD,GACnB,GAAI,SAAWlD,EAAQ6E,QAAS,CAC5B,IAAIoiC,EAAU/8C,KAAKkjL,mBAAmBptK,GACtC9V,KAAKqjL,sBAAsB5tK,EAAYsnC,EAASjnC,EAASyrC,GACzDzrC,EAAQiuD,OAASjuD,EAAQiuD,MAAM,IAAMhnB,EAAQjhD,IAAI4iD,GAAU1+C,KAAK4iL,iBAAiBlkI,EAAQ5oC,IAAW,KAChGL,EAAW28C,QACXpyD,KAAKqjL,sBAAsB5tK,EAAYsnC,EAASjnC,UAGpD,OAAcN,aAAaC,KAIvC+tK,mBAAoB,WAChB,IAAIjC,EAAWvhL,KAAKshL,cACpB,OAAQ,IAAMtC,GAAgB1gL,QAAQijL,IAE1CkC,4BAA6B,WACzB,IACIluK,EADA+hD,EAAoBt3D,KAAK2xD,cAAc,WAEvC0L,EAAiB/F,EAAkBiG,oBAOvC,OANA,eAAKF,GAAgB,SAAUj8D,EAAOmZ,GAClC,GAAIA,EAAOjP,aAEP,OADAiK,EAAcnU,GACP,KAGRmU,GAEXmuK,0BAA2B,SAASlpH,GAChC,IAAIp9C,EAAWpd,KAAKqd,QAAQ,YAC5B,OAAOD,GAAYA,EAAS6pD,gBAAgBzM,GAAsB,EAAGx6D,KAAKyjL,gCAE9EE,oBAAqB,SAASnpH,GAC1B,OAAOx6D,KAAK0jL,0BAA0BlpH,IAE1ClhD,cAAe,SAASxe,EAAKyP,GACzB,OAAO,OAAc+O,cAAcxe,EAAKyP,IAE5CsxG,WAAY,SAASrhD,GAGjB,IAFA,IAAI1gD,EAAU9Z,KAAK0hL,aACfziL,GAAS,EACJxD,EAAI,EAAGA,GAAK,OAASqe,QAAW,IAAWA,OAAU,EAASA,EAAQlgB,QAAS6B,IACpF,GAAIqe,EAAQre,GAAGgD,QAAU,eAAU+7D,IAAax6D,KAAKiY,gBAAgB4hF,iBAAiB//E,EAAQre,GAAGX,OAAS0/D,GAAW,CACjHv7D,GAAS,EACT,MAGR,OAAOA,GAEXkzD,QAAS,WACLnyD,KAAKC,WACLm6D,aAAap6D,KAAK4jL,sBAClB,OAAa3yH,IAAI,aAAW6O,cAAexF,EAAA,KAAcu0E,GAAI7uI,KAAK6jL,yBAClE,OAAa5yH,IAAI,aAAW6O,cAAexF,EAAA,KAAcC,KAAMv6D,KAAK8jL,2BACpE,OAAa7yH,IAAI,aAAW6O,cAAe,OAAgB9/D,KAAKkhL,qBAEpEhwH,cAAe,SAAS7hB,GACpB,GAAI,YAAcA,EAAKztC,KAAM,CACzB,IAAI46E,EAAWntC,EAAKmtC,SAChBA,IAAauhG,GACb/9K,KAAK+jL,wBAAwB10I,GACtBmtC,IAAa+jG,GACpBvgL,KAAKgkL,qBAAqB30I,GAClBA,EAAK+hB,UACbpxD,KAAKs9D,mBAAmBob,SACxB14E,KAAKywD,OACLzwD,KAAK4hL,eACL5hL,KAAKikL,uBACLjkL,KAAKkkL,oBAET70I,EAAK+hB,SAAU,OAEfpxD,KAAKC,SAASovC,IAGtB00I,wBAAyB,SAAS10I,GAC9B,IAAImrB,EAAWx6D,KAAKiY,gBAAgB4hF,iBAAiBxqD,EAAKxtC,OACtDsiL,EAAwBnkL,KAAKokL,6BAC7BC,EAAcrkL,KAAKiY,gBAAgB4hF,iBAAiBxqD,EAAKktC,eAAiB4nG,EAC1E,eAAU90I,EAAKxtC,OACXwtC,EAAKxtC,QAAUwtC,EAAKktC,eACpBv8E,KAAKskL,0BAA0B9pH,EAAU6pH,GAG7CrkL,KAAKukL,kBAGbP,qBAAsB,SAAS30I,GAC3B,IAAI2zC,EAAiBhjF,KAAKiY,gBACtB6B,EAAUu1B,EAAKxtC,OACdwtC,EAAKxtC,MAAMjI,QAAWy1C,EAAKktC,cAAc3iF,UAG9CkgB,EAAQ5Y,QAAQqgD,IACZ,GAAI,WAAaA,EAAO9iD,KACpBuB,KAAKwkL,eAAejjI,OACjB,CACH,IAAIkjI,EACAl6K,EAAQy4E,EAAez4E,QACvBiwD,EAAWwoB,EAAe6W,iBAAiBt4C,EAAOzmD,KACtDkF,KAAK+hL,iBAAiB,CAClBjnL,IAAKymD,EAAOzmD,IACZu6H,QAAS,QAAUovD,EAAkBl6K,EAAMiwD,UAAc,IAAWiqH,OAAkB,EAASA,EAAgBrgL,UAI3H4+E,EAAeiP,YAAY,CACvB/4C,oBAAoB,EACpB88C,cAAc,MAGtBtlC,cAAe,WACX,MAAO,CAAC,SAAU,YAAa,cAAe,UAAW,eAAgB,iBAAkB,gBAE/FgxB,QAAS,WACA,eAAU1hF,KAAK0kL,aAGpB1kL,KAAK2kL,aAAa7lL,MAAMkB,KAAME,YAElCykL,aAAc,OACd3mH,UAAW,WACP,IAAI4mH,EAAsB,eAAU5kL,KAAK4Y,OAAOmlK,KAChD,OAAO6G,GAEX35C,UAAW,WACP,OAAO,GAEX45C,eAAgB,SAAShjL,EAAOijL,GACxBA,EACA9kL,KAAK+wD,cAAcgtH,GAAgCl8K,GAEnD7B,KAAK4Y,OAAOmlK,GAAgCl8K,IAGpDkjL,sBAAuB,SAASvqH,EAAUsqH,GACtC,IAAIhqL,EAAMkF,KAAKiY,gBAAgB0hF,iBAAiBn/B,QAC5C,IAAW1/D,EAIfkF,KAAK6kL,eAAe/pL,EAAKgqL,GAHrB9kL,KAAKiY,gBAAgB+6E,UAAU,UAKvCgyF,gBAAiB,WACb,OAAOhlL,KAAKilL,2BAEhBC,oBAAqB,WACjB,OAAQ,GAEZ,iBAAiB1qH,GACb,IAAI1/D,EAAMkF,KAAKiY,gBAAgB0hF,iBAAiBn/B,GAC5C2qH,EAAa,eAAUrqL,IAAQ,eAAakF,KAAK4Y,OAAOmlK,IAAiCjjL,GAC7F,OAAIqqL,EACOnlL,KAAKilL,4BAA8BzqH,EAEvC2qH,GAEXC,WAAY,SAASrvF,EAAiBxgF,GAClC,OAAOvV,KAAKqlL,iBAAiBtvF,IAAoB/1F,KAAKslL,+BAAiC/vK,GAE3FitK,gBAAiB,OACjBn5C,iBAAkB,SAASx/H,GACvB,OAAO,GAEX07K,mBAAoB,SAASh7K,EAAOg3C,EAAQikI,GACxC,IAAIvmL,GAAU,EACV+jF,EAAiBhjF,KAAKiY,gBACtBnd,EAAMkF,KAAKylL,2BAA2BlkI,GA2B1C,OA1BK,eAAUzmD,IAAQ,IAAMyP,EAAM3Q,OAExB,eAAUkB,IACjByP,EAAMqU,KAAK,CAAC/U,EAAMzI,KACd,IAAIskL,EAAkBF,GAAoBxlL,KAAKqpI,iBAAiBx/H,GAUhE,GATI,eAASA,KACL67K,GAAmB,eAAU77K,EAAK21K,KAC9B,eAAa31K,EAAK/O,IAAKA,KACvBmE,EAASmC,GAEN,eAAa4hF,EAAewI,MAAM3hF,GAAO/O,KAChDmE,EAASmC,IAGbnC,GAAU,EAAG,CACb,IAAI0mL,EAAWp7K,EAAMtL,EAAS,GAC9B,GAAI0mL,IAAa,WAAaA,EAAShrK,SAAW,mBAAqBgrK,EAAShrK,UAAY,eAAU4mC,EAAOvF,gBACzG,OAKJ,OAHI,eAAUuF,EAAOvF,kBACjB/8C,GAAU,IAEP,KArBfA,EAAS,EAyBNA,GAEX2mL,iBAAkB,SAAS9qL,GACvB,IAAI+qL,EACAh8K,EAAO,CACP/O,IAAKA,GAELgrL,EAAa,QAAUD,EAAyB7lL,KAAK8hL,iBAAiBhnL,UAAS,IAAW+qL,OAAyB,EAASA,EAAuBC,WAIvJ,OAHI,OAASA,QAAc,IAAWA,GAAcA,EAAWtG,MAC3D31K,EAAK21K,IAAgBsG,EAAWtG,KAE7B31K,GAEXk8K,mBAAoB,SAASx7K,EAAOg3C,EAAQikI,GACxC,IAAIQ,EAAiBhmL,KAAKulL,mBAAmBh7K,EAAOg3C,EAAQikI,GACxDxiG,EAAiBhjF,KAAKiY,gBAC1B,GAAI+tK,EAAiB,EAAG,CACpB,IAAI/kI,EAAiBjhD,KAAKyhL,qBACtBx1H,EAAY+2B,EAAe/2B,YAC3Bg6H,EAAyBjmL,KAAKylL,2BAA2BlkI,GACzDN,IAAmBy9H,IAAyB,IAAMzyH,GAAc,eAAUg6H,GAEnEhlI,IAAmBy9H,IAAyB17F,EAAe4X,qBAClEorF,EAAiBz7K,EAAM3Q,QAFvBosL,EAAiB,EAKzB,OAAOA,GAEX5rD,aAAc,SAAS7vH,EAAO3G,GAC1B,IAAIi+D,EAAaj+D,EAAEi+D,WACnB7hE,KAAKskE,OAAOzC,GACZ,IAAI/nD,EAAU9Z,KAAK0hL,aAmBnB,OAlBA5nK,EAAQ5Y,QAAQqgD,IACZ,IAAI2kI,EACAC,EAAW5kI,EAAO9iD,OAASk/K,GAC/B,GAAKwI,EAAL,CAGA,IAAIrrL,EAAMymD,EAAOzmD,IACbgrL,EAAa,QAAUI,EAAyBlmL,KAAK8hL,iBAAiBhnL,UAAS,IAAWorL,OAAyB,EAASA,EAAuBJ,WAClJ,eAAUhrL,IAAS,eAAUgrL,KAC9BA,EAAa9lL,KAAKwkL,eAAejjI,GACjCzmD,EAAMgrL,EAAWhrL,KAErB,IAAIkrL,EAAiBhmL,KAAK+lL,mBAAmBx7K,EAAOg3C,GAChD13C,EAAO7J,KAAK4lL,iBAAiB9qL,GAC7BkrL,GAAkB,GAClBz7K,EAAM85D,OAAO2hH,EAAgB,EAAGn8K,MAGjCU,GAEX67K,gBAAiB,SAASv8K,EAAMiM,EAASw+E,GACrC,IAAI91E,EAAU1I,EAAQunD,eAClBviE,EAAM+O,EAAKzF,KAAKo7K,IAAgB31K,EAAKzF,KAAKtJ,IAAM+O,EAAK/O,IACrDgf,EAAU9Z,KAAK0hL,aACfU,EAAY,OAAc9oK,cAAcxe,EAAKgf,GACjDjQ,EAAKm0D,WAAY,EACbokH,GAAa,GACbpiL,KAAKqmL,qBAAqBx8K,EAAMiQ,EAAQsoK,GAAYtnL,EAAK0jB,EAAS81E,IAG1E+xF,qBAAsB,SAASx8K,EAAM03C,EAAQzmD,EAAK0jB,EAAS81E,GACvD,IACIlwF,KAAMA,EACN3F,KAAMA,GACN8iD,EACJ,OAAQ9iD,GACJ,KAAKk/K,GACD9zK,EAAKsT,UAAW,EAChBtT,EAAK/O,IAAMA,EACX+O,EAAKzF,KAAOA,EACZ,MACJ,KAAKy7K,GACDh2K,EAAKy8K,UAAW,EAChBz8K,EAAKwrH,QAAUxrH,EAAKzF,KACpByF,EAAKzF,KAAO,gBAAwByF,EAAKzF,KAAMA,GAC/CyF,EAAKqsF,eAAiB5B,EAAmBlwF,EAAMoa,GAAS,GACxD,MACJ,KAAKo/J,GACD/zK,EAAK08K,SAAU,IAG3BC,YAAa,SAAS1wK,GAElB,GADA9V,KAAKkyD,cAAc,eAAgBp8C,GAC/BA,EAAQ2L,QAAS,CACjB,IAAI2sC,EAAW,IAAI,cAEnB,OADA,kBAAK,yBAAYt4C,EAAQ2L,UAAUpD,KAAK+vC,EAASztC,SAASG,KAAK0/J,GAAqBpyH,IAAWttC,KAAK88E,GAAO59F,KAAKuiL,uBAAuB3kF,IAChIxvC,IAGfq4H,kBAAmB,WACf,IAAIX,EAAa,GAEjB,OADAA,EAAWtG,IAAgBx/K,KAAK0mL,kBACzBZ,GAEXtB,eAAgB,SAASjjI,EAAQolI,GAC7B,IAAIC,EACAd,GAEAhrL,IAAKA,GACLymD,EAMJ,GALK,eAAUzmD,KACXA,EAAMnB,OAAO,IAAI,SACjB4nD,EAAOzmD,IAAMA,GAEjBgrL,EAAa,QAAUc,EAAyB5mL,KAAK8hL,iBAAiBhnL,UAAS,IAAW8rL,OAAyB,EAASA,EAAuBd,YAC9I,eAAUA,GAAa,CACxB,IAAIG,EAAyBjmL,KAAKylL,2BAA2BlkI,GAC7DukI,EAAa9lL,KAAKymL,oBACb,eAAUR,IACXjmL,KAAK6mL,2BAA2BtlI,EAAQolI,GAOhD,OAJA3mL,KAAK+hL,iBAAiB,CAClB+D,WAAYA,EACZhrL,IAAKA,IAEF,CACHgrL,WAAYA,EACZhrL,IAAKA,IAGb+rL,2BAA4B,SAAStlI,EAAQolI,GACzC,IAAI3jG,EAAiBhjF,KAAKiY,gBACtB6uK,EAAW9jG,EAAez4E,OAAM,GAChC6S,EAAWpd,KAAKqd,QAAQ,YACxB4jC,EAAiBjhD,KAAKyhL,qBAC1B,OAAQxgI,GACJ,KAAKw9H,GACL,KAAKC,GACD,MACJ,KAAKE,GACL,KAAKD,GACD,GAAImI,EAASltL,OAAQ,CACjB,IAAI4qG,EAAYvjD,IAAmB29H,GAA4B,EAAIkI,EAASltL,OAAS,EACrF2nD,EAAO,IAAMijD,EAAY,kBAAoB,kBAAoBsiF,EAAStiF,GAAW1pG,IAEzF,MACJ,QACI,IAAIisL,EAAmB9lI,IAAmB49H,GACtC9mD,EAAmBgvD,EAAmB,OAAS3pK,QAAY,IAAWA,OAAW,EAASA,EAAS2nF,4BAA8B,OAAS3nF,QAAY,IAAWA,OAAW,EAASA,EAAS0nF,yBAC9L5nF,EAAM8lE,EAAeiV,iBAAiB8/B,GACtC76G,KAASA,EAAI8gD,WAAa,WAAa9gD,EAAIvC,SAAW,mBAAqBuC,EAAIvC,UAC/Eo9G,IAEJ,IAAIivD,EAAYhkG,EAAe2W,iBAAiBo+B,GAC5C,eAAUivD,KACVzlI,EAAOtF,gBAAkB+qI,KAIzCN,gBAAiB,WACb,IAAIO,EAAiB,EAQrB,OAPAjnL,KAAK0hL,aAAaxgL,QAAQgmL,IACtB,IAAIC,EACArB,EAAa,QAAUqB,EAAyBnnL,KAAK8hL,iBAAiBoF,EAASpsL,YAAS,IAAWqsL,OAAyB,EAASA,EAAuBrB,WAC5J,eAAUA,IAAeoB,EAASzoL,OAASk/K,IAA8BmI,EAAWtG,IAAgByH,IACpGA,EAAiBnB,EAAWtG,OAG7ByH,EAAiB,GAE5BxB,2BAA4B,SAAS2B,GACjC,IAAIC,EACJ,OAAO,QAAUA,EAAwBD,EAAaprI,sBAAmB,IAAWqrI,EAAwBA,EAAwBD,EAAanrI,iBAErJqrI,yBAA0B,WACtB,IAAIrmI,EAAiBjhD,KAAKyhL,qBACtBz+F,EAAiBhjF,KAAKiY,gBACtBg0C,EAAY+2B,EAAe/2B,YAC3Bs7H,EAAgBvkG,EAAeyL,YAAc,EACjD,OAAIxtC,IAAmBw9H,IAA0B,IAAMxyH,EAC5C,EACAhL,IAAmBy9H,IAAyBzyH,IAAcs7H,EAC1DA,GAEH,GAEZ9lI,OAAQ,SAASklI,GACb,IAAI3jG,EAAiBhjF,KAAKiY,gBACtBmJ,EAAQ4hE,EAAe5hE,QAC3B,OAAKA,EAIEphB,KAAKwnL,QAAQb,IAHhB3jG,EAAegQ,UAAU,QAAShzF,KAAK4R,UAAU2gD,OAC1C,IAAK,eAAU1+B,WAI9B2zJ,QAAS,SAASb,GACd,IAAI3jG,EAAiBhjF,KAAKiY,gBACtBmJ,EAAQ4hE,EAAe5hE,QACvBtmB,EAAMsmB,GAASA,EAAMtmB,MACrB2sL,EAAQ,CACRrjL,KAAM,IAENsjL,EAAkB1nL,KAAKilL,0BACvB72H,EAAW,IAAI,cAInB,OAHApuD,KAAK0hF,QAAQ,CACTimG,oBAAoB,IAEnB3nL,KAAK4nL,mBAIL9sL,IACD2sL,EAAMrjL,KAAKyjL,QAAUluL,OAAO,IAAI,UAEpC,kBAAKqG,KAAKwmL,YAAYiB,EAAOd,IAAYtoK,KAAK,KACtCre,KAAK4nL,kBACL,kBAAK5nL,KAAK8nL,YAAYL,EAAMrjL,KAAMuiL,EAAWe,IAAkBrpK,KAAK+vC,EAASztC,SAASG,KAAKstC,EAASv6B,QAEpGu6B,EAASv6B,OAAO,YAErB/S,KAAKstC,EAASv6B,QACVu6B,EAAS3sC,YAbZ,kBAAKzhB,KAAK+nL,kBAAkBL,IAAkBrpK,KAAK+vC,EAASztC,SAASG,KAAKstC,EAASv6B,QAC5Eu6B,EAAS3sC,YAcxBmmK,gBAAiB,WACb,IAAII,EAAchoL,KAAK0mL,kBACvB,QAAIsB,EAAc,IAKtBF,YAAa,SAAS1jL,EAAMuiL,EAAWsB,GACnC,IAAI1mI,EAAS,CACTn9C,KAAMA,EACN3F,KAAMk/K,IAENuK,EAAeloL,KAAKilL,0BACpBa,EAAa9lL,KAAKwkL,eAAejjI,EAAQolI,GACzC7rL,EAAMgrL,EAAWhrL,IAGrB,OAFAkF,KAAK6kL,eAAe/pL,GAAK,GACzBkF,KAAKmoL,WAAW5mI,GACTvhD,KAAK+nL,kBAAkBE,EAAwB1mI,EAAQ2mI,IAElEH,kBAAmB,SAASL,EAAiBnmI,EAAQ2mI,GACjD,IAAIE,EAAeC,EACfn3K,EAAI,IAAI,cACR8xE,EAAiBhjF,KAAKiY,gBACtBqwK,EAAkBtoL,KAAK2xD,cAAc,SAGzC,GAFAu2H,EAAe,QAAUE,EAAgBF,SAAiB,IAAWE,EAAgBA,GAAiB,EACtG7mI,EAAS,QAAU8mI,EAAU9mI,SAAW,IAAW8mI,EAAUA,EAAUroL,KAAK0hL,aAAatjL,OAAOkT,GAAKA,EAAE7S,OAASk/K,IAA4B,IACvIp8H,EACD,OAAOrwC,EAAE2iB,OAAO,UAAUpS,UAE9B,IAAI8mK,EAAuBvoL,KAAKsnL,2BAC5B9sH,EAAWx6D,KAAK+lL,mBAAmB/iG,EAAez4E,QAASg3C,GAAQ,GACnEinI,EAAqB1tL,IACrB,kBAAK,OAASwtL,QAAmB,IAAWA,OAAkB,EAASA,EAAgBG,cAAc3tL,IAAMujB,KAAK,KAC5Gm8C,EAAWwoB,EAAe6W,iBAAiBt4C,EAAOzmD,KAClDoW,EAAEyP,aAGNslK,EAAyBjmL,KAAKylL,2BAA2BlkI,GAuB7D,OAtBIgnI,GAAwB,EACxBvlG,EAAe/2B,UAAUs8H,GAAsBlqK,KAAK,KAChDmqK,EAAmBjnI,EAAOzmD,OAC3BgmB,KAAK5P,EAAE2iB,QACH2mC,EAAW,GAAK,eAAUyrH,GACjCuC,EAAmBvC,IAEnBjjG,EAAeiP,YAAY,CACvBpwB,WAAY,SACZgzB,WAAY,CAAC6yF,EAAiBQ,EAAc1tH,KAEhDA,EAAWwoB,EAAe6W,iBAAiBt4C,EAAOzmD,KAC9C0/D,EAAW,EACXguH,EAAmBjnI,EAAOzmD,KAE1BoW,EAAEyP,WAGVzP,EAAEmN,KAAK,KACHre,KAAK0oL,cAAcluH,GACnBx6D,KAAK2oL,gBAAgBpnI,EAAOzmD,OAEzBoW,EAAEuQ,WAEbinK,cAAe,SAASluH,GACpBx6D,KAAK4oL,6BAA6BpuH,IAEtCquH,yBAA0B,OAC1BD,6BAA8B,SAASpuH,GACnC,IAAIwoB,EAAiBhjF,KAAKiY,gBACtBnd,EAAMkoF,EAAe2W,iBAAiBn/B,GACtCsuH,EAAa9oL,KAAK0jL,0BAA0BlpH,GAChDx6D,KAAK+oL,qBAAsB,EAC3B/oL,KAAKgpL,mBAAmBF,EAAY,KAChCtuH,EAAWwoB,EAAe6W,iBAAiB/+F,GAC3CkF,KAAK+oL,qBAAsB,EAC3B/oL,KAAK6oL,yBAAyBruH,MAGtCyuH,gBAAiB,SAASnzK,GAEtB,OADA9V,KAAKkyD,cAAc,iBAAkBp8C,GAC9BA,EAAQyqC,QAEnB2oI,mBAAoB,OACpB5D,2BAA4B,WACxB,IAAIxkI,EAAiB9gD,KAAK4Y,OAAOolK,IACjC,OAAK,eAAUl9H,GAGR9gD,KAAKs9D,mBAAmBmJ,sBAAsB3lB,IAFzC,GAIhBqoI,0BAA2B,SAAS/nL,EAAO0jL,GACvC,IAAIsE,EACA/rH,EAAiBr9D,KAAKs9D,mBAAmBC,oBAC7Cv9D,KAAKqpL,mBAAmB,QAAUD,EAAwB/rH,EAAej8D,UAAW,IAAWgoL,OAAwB,EAASA,EAAsBxnL,KAAMkjL,IAEhKuE,mBAAoB,SAASznL,EAAMkjL,GAC3BA,EACA9kL,KAAK+wD,cAAcitH,GAAoCp8K,GAEvD5B,KAAK4Y,OAAOolK,GAAoCp8K,IAGxDqiL,qBAAsB,WAClBjkL,KAAKqpL,mBAAmB,MAAM,IAElCC,eAAgB,WACZ,IAAIxoI,EAAiB9gD,KAAK4Y,OAAOolK,IACjC,OAAOh+K,KAAKupL,iBAAiBzoI,IAEjCyoI,iBAAkB,SAAS3nL,GACvB,IACI4nL,EADAnsH,EAAiBr9D,KAAKs9D,mBAAmBC,oBAQ7C,OANA,eAAU37D,IAASy7D,EAAez+C,KAAKrE,IACnC,GAAIA,EAAO3Y,OAASA,EAEhB,OADA4nL,EAAajvK,GACN,IAGRivK,GAEXvE,wBAAyB,SAASwE,GAC9B,IAAIzmG,EAAiBhjF,KAAKiY,gBACtB8oC,EAAa/gD,KAAK4Y,OAAOmlK,IACzBvjH,EAAWwoB,EAAe6W,iBAAiB94C,GAC/C,OAAK,IAAMyZ,EACAA,EAEJA,EAAWx6D,KAAKokL,2BAA2BqF,IAEtDrF,2BAA4B,SAASqF,GACjC,IAAID,EAAaC,EAAazpL,KAAKupL,iBAAiBE,GAAczpL,KAAKspL,iBACnEI,EAAiB,oBAAsB,OAASF,QAAc,IAAWA,OAAa,EAASA,EAAWhtH,cAC9G,OAAOktH,EAAiB,EAAI,GAEhCxF,iBAAkB,WACdlkL,KAAK6kL,eAAe,MAAM,IAE9B8E,kBAAmB,WACf3pL,KAAKikL,uBACLjkL,KAAKkkL,oBAETniI,QAAS,SAASyY,GACd,IAAIovH,EACA5mG,EAAiBhjF,KAAKiY,gBACtB1N,EAAQy4E,EAAez4E,QACvBV,EAAOU,EAAMiwD,GACbmW,EAAS,CACTvsE,KAAMyF,GAAQA,EAAKzF,KACnBm8C,QAAQ,GAER8jI,EAAcrkL,KAAKilL,0BACvB,GAAKp7K,EAGL,OAAI2wD,IAAa6pH,aAGb,IAAWx6K,EAAK/O,KAIf+O,EAAKsT,WACNwzD,EAAO71E,IAAM+O,EAAK/O,KAElBkF,KAAKipL,gBAAgBt4G,KAGzB3wE,KAAK4hL,eACL5hL,KAAKywD,OACLzwD,KAAKikL,uBACLjkL,KAAK0kL,WAAa1hG,EAAe/2B,YACjCjsD,KAAK+hL,iBAAiB,CAClBjnL,IAAK+O,EAAK/O,IACVu6H,QAAS,QAAUu0D,EAAgB//K,EAAKwrH,eAAY,IAAWu0D,EAAgBA,EAAgB//K,EAAKzF,OAExGpE,KAAK6kL,eAAeh7K,EAAK/O,OAjBrBkF,KAAKiY,gBAAgB+6E,UAAU,WAmBvCsxF,0BAA2B,SAAS9pH,EAAU6pH,GAC1C,IAAIxvF,EAAa,CAACwvF,EAAa7pH,GAC/Bx6D,KAAKkpL,mBAAmBr0F,EAAYr6B,EAAU6pH,GAC9CrkL,KAAK6pL,8BAA8Bh1F,EAAYr6B,IAEnDqvH,8BAA+B,SAASh1F,EAAYr6B,EAAUsvH,GAC1D9pL,KAAK+pL,kBAAmB,EACxB/pL,KAAKiY,gBAAgBg6E,YAAY,CAC7BpwB,WAAY,SACZgzB,WAAYA,EACZt0C,OAAQupI,KAGhBE,mBAAoB,OACpBC,eAAgB,OAChBC,kBAAmB,OACnBC,2BAA4B,WACxB,OAAOvmL,IACC5D,KAAKg+D,aACLh+D,KAAKukL,mBAIjB6F,0BAA2B,OAC3BC,qBAAsB,WAClB,MAAO,CACH9tL,KAAMyD,KAAK4Y,OAAO,gCAClBkjC,QAAS97C,KAAKsqL,aAAa9uK,KAAKxb,QAGxCuqL,uBAAwB,WACpB,MAAO,CACHhuL,KAAMyD,KAAK4Y,OAAO,kCAClBkjC,QAAS97C,KAAKukL,eAAe/oK,KAAKxb,QAG1CwqL,oBAAqB,SAAS1vL,GAC1B,IAAIknL,EAAehiL,KAAK8hL,iBAAiBhnL,GACrCsG,EAAQpB,KAAKqhL,eAAe/iL,QAAQ0jL,GACpC5gL,GAAS,GACTpB,KAAKqhL,eAAeh9G,OAAOjjE,EAAO,IAG1CqpL,+BAAgC,SAAS3wK,EAAS1Y,GAC9C,IAAIspL,EAAe5wK,EAAQ1Y,GAC3B0Y,EAAQ5Y,QAAQqgD,IACZ,IAAI0kI,EAAyBjmL,KAAKylL,2BAA2BlkI,GACzD,eAAa0kI,EAAwByE,EAAa5vL,OAClDymD,EAAO,eAAUA,EAAOvF,gBAAkB,iBAAmB,mBAAqBh8C,KAAKylL,2BAA2BiF,OAI9HC,cAAe,SAASvpL,GACpB,GAAIA,GAAS,EAAG,CACZ,IAAI0Y,EAAU,IAAI9Z,KAAK0hL,cACnB5mL,EAAMgf,EAAQ1Y,GAAOtG,IACzBkF,KAAKwqL,oBAAoB1vL,GACzBkF,KAAKyqL,+BAA+B3wK,EAAS1Y,GAC7C0Y,EAAQuqD,OAAOjjE,EAAO,GACtBpB,KAAK+wD,cAAcwvH,GAA6BzmK,GAC5C,eAAa9Z,KAAK4Y,OAAOmlK,IAAiCjjL,IAC1DkF,KAAK2pL,sBAIjBiB,iBAAkB,SAASx8H,EAAUplB,GACjChpC,KAAKghL,gBAAkBhhL,KAAKghL,eAAentJ,SAC3C7zB,KAAKghL,eAAiB5yH,EACtBpuD,KAAK6qL,4BAA4BxsK,KAAK,KAC9B,aAAe+vC,EAASluB,UAG5B8I,IACAhpC,KAAKghL,eAAiB,QACvBlgK,KAAK,KACJstC,EAASv6B,SACT7zB,KAAKghL,eAAiB,QAG9B6J,0BAA2B,WACvB,OAAO,qBAAQ7qL,KAAKihL,aAExB6J,4BAA6B,OAC7BC,iBAAkB,SAASxwK,EAAQywK,EAAWtD,GAC1C1nL,KAAK+pL,kBAAmB,GACnBxvK,IAAWA,EAAO2jC,kBAAoB8sI,IAAcA,EAAU9sI,kBAC/Dl+C,KAAK+oL,qBAAsB,EAC3B/oL,KAAK2xD,cAAc,iBAAiBkpH,YACpC76K,KAAKiY,gBAAgBg6E,YAAY,CAC7BpwB,WAAY,SACZgzB,WAAY,CAAC6yF,EAAiB1nL,KAAKilL,8BAEhC1qK,IAAWywK,GAClBhrL,KAAKiY,gBAAgBg6E,YAAY,CAC7BpwB,WAAY,SACZgzB,WAAY,MAIxBm0F,mBAAoB,SAASnxH,EAAOozH,EAAqBC,GACrD,IAAIC,EAAa,KAIb,GAHIF,GACAA,IAEApzH,EAAO,CACP,IAAIuzH,EAAoBvzH,EAAM//C,KAAKqmK,IAA4B5zG,QAC/D,OAAczsD,sBAAsB9d,KAAMorL,GAE9CprL,KAAKqrL,qBAAuB,MAE5BzhF,GAAA,KAAQC,OAAOouE,KAAOruE,GAAA,KAAQC,OAAOw1D,QACrC8rB,KAEInrL,KAAKqrL,sBACLrrL,KAAKqrL,uBAETjxH,aAAap6D,KAAK4jL,sBACdsH,IACAlrL,KAAKqrL,qBAAuBJ,GAEhCjrL,KAAK4jL,qBAAuBlkJ,WAAWyrJ,KAG/CG,kBAAmB,SAASL,EAAqBM,EAAWL,GACxD,IAAI9tK,EAAWpd,KAAKqd,QAAQ,YACxBmuK,EAAkBxrL,KAAKslL,6BAC3BiG,EAAYA,GAAanuK,GAAYA,EAAS6pD,gBAAgBjnE,KAAKilL,0BAA2BuG,GAC1FD,GACAvrL,KAAKgpL,mBAAmBuC,EAAWN,EAAqBC,IAGhEppI,UAAW,SAAS0Y,GAChBx6D,KAAKyrL,mBAAmBjxH,IAE5BixH,mBAAoB,SAASjxH,GACzB,IAAIwoH,EAAiBhjL,KAAK4Y,OAAO,WAC7B4oC,EAAe,OAASwhI,QAAkB,IAAWA,OAAiB,EAASA,EAAevjI,MAC9FoB,EAAgB,OAASmiI,QAAkB,IAAWA,OAAiB,EAASA,EAAeniI,cAC/Fe,EAAuB,OAASJ,QAAgB,IAAWA,OAAe,EAASA,EAAaI,qBAChG/3C,EAAO7J,KAAKiY,gBAAgB1N,QAAQiwD,GACpC7Z,GAAiB3gD,KAAKg+D,aAAen0D,EAAKsT,SAC9C,GAAItT,GAAQ82C,EACR,GAAKE,GAAkBe,EAEhB,CACH,IAAIC,EAAqBL,GAAgBA,EAAaK,mBAClD6pI,EAAkB,eAAU7pI,IAAuBA,EAAmBjoD,OAAS,EACnF,GAAQgoD,EAAsBC,EAAoB6pI,GAAiBrtK,KAAKstK,IAChEA,GACA3rL,KAAK4rL,eAAepxH,UAN5Bx6D,KAAK4rL,eAAepxH,IAYhCoxH,eAAgB,SAASpxH,GACrB,IAAIwoB,EAAiBhjF,KAAKiY,gBACtBpO,EAAOm5E,EAAez4E,QAAQiwD,GAC9B1/D,EAAM+O,GAAQA,EAAK/O,IACnB4sL,EAAkB1nL,KAAKilL,0BAC3BjlL,KAAK0hF,UACL,IAAI5nE,EAAU9Z,KAAK0hL,aACfU,EAAY,OAAc9oK,cAAcxe,EAAKgf,GAiBjD,OAhBIsoK,GAAa,EACTtoK,EAAQsoK,GAAW3jL,OAASk/K,GAC5B39K,KAAK2qL,cAAcvI,GAEnBpiL,KAAKmoL,WAAW,CACZrtL,IAAKA,EACL2D,KAAMm/K,KAId59K,KAAKmoL,WAAW,CACZrtL,IAAKA,EACLu6H,QAASxrH,EAAKzF,KACd3F,KAAMm/K,KAGP59K,KAAK6rL,gBAAgBrxH,EAAUktH,IAE1CmE,gBAAiB,SAASrxH,EAAUktH,GAChC,OAAO1nL,KAAKsqL,gBAEhBpoI,YAAa,SAASsY,GAClB,IAAIwoB,EAAiBhjF,KAAKiY,gBACtBpO,EAAOm5E,EAAez4E,QAAQiwD,GAC9BktH,EAAkB1nL,KAAKilL,0BACvBnqL,EAAM+O,GAAQA,EAAK/O,IACnBgf,EAAU9Z,KAAK0hL,aACnB,GAAI73K,EAAM,CACN,IAAIu4K,EAAY,OAAc9oK,cAAcxe,EAAKgf,GACjD,GAAIsoK,GAAa,EAAG,CAChB,IACIh+K,KAAMA,GACN0V,EAAQsoK,GACR,eAAch+K,GACdpE,KAAK2qL,cAAcvI,GAEnBpiL,KAAKmoL,WAAW,CACZrtL,IAAKA,EACL2D,KAAMohL,KAGd78F,EAAeiP,YAAY,CACvBpwB,WAAY,SACZgzB,WAAY,CAAC6yF,EAAiBltH,QAK9CsxH,cAAe,WACX,IAAIC,EAAiB,CACjBxrI,QAAQ,EACR9+B,QAAS,KACT3H,QAAS,IAAI9Z,KAAK0hL,eAEtB1hL,KAAKkyD,cAAc,WAAY65H,GAC/B,IAAI76K,EAAI,IAAI,cAUZ,OATA,kBAAK,yBAAY66K,EAAetqK,UAAUpD,KAAK,KAC3CnN,EAAEyP,QAAQorK,KACXjrK,KAAK88E,IACJ4iF,GAAqBtvK,GACrBlR,KAAKuiL,uBAAuB3kF,GAC5B1sF,EAAEyP,QAAQ,CACN4/B,QAAQ,MAGTrvC,GAEX86K,sBAAuB,SAAS16H,EAAYqf,EAAQ3nC,GAChD,GAAIhpC,KAAK4R,UAAU6kK,UACf,OAAO,KAEX,IAAIroH,EAAW,IAAI,cAWnB,OAVApuD,KAAKkyD,cAAcZ,EAAYqf,GAC/B,kBAAK,yBAAYA,EAAOpwB,SAASliC,MAAK,SAAUkiC,GACxCA,EACA7gB,YAAW,WACP0uB,EAASztC,QAAQ,aAGrBqoB,EAAK2nC,GAAQtyD,KAAK+vC,EAASztC,SAASG,KAAK0/J,GAAqBpyH,OAElEttC,KAAK0/J,GAAqBpyH,IACvBA,GAEX69H,gBAAiB,SAASrqG,EAAWsqG,EAASC,EAAaryK,GACvD,IAAIsH,EAAQphB,KAAKiY,gBAAgBmJ,QACjC,eAAKtH,EAAS,CAAC1Y,EAAOmgD,KAClB,IAMI6M,EACAuiB,EAPA0kD,EAAUr1H,KAAKiiL,YAAY1gI,EAAOzmD,MAElCsJ,KAAMA,EACN3F,KAAMA,GACN8iD,EACA6qI,EAAa,eAAS,GAAI7qI,GAG9B,IAAIvhD,KAAKqsL,oBAAoB9qI,EAAQngD,GAArC,CAGA,OAAQ3C,GACJ,KAAKm/K,GACDjtG,EAAS,CACLvsE,KAAMixH,EACNv6H,IAAKymD,EAAOzmD,IACZylD,QAAQ,GAEZ6N,EAAWpuD,KAAKgsL,sBAAsB,gBAAiBr7G,GAAQ,WAC3D,OAAOvvD,EAAMzI,OAAO4oC,EAAOzmD,KAAKujB,MAAK,SAAUvjB,GAC3CqxL,EAAYlpL,KAAK,CACbxE,KAAM,SACN3D,IAAKA,UAIjB,MACJ,KAAK6iL,GACDhtG,EAAS,CACLvsE,KAAMA,EACNm8C,QAAQ,GAEZ6N,EAAWpuD,KAAKgsL,sBAAsB,iBAAkBr7G,GAAQ,WAC5D,OAAOvvD,EAAM6mB,OAAO0oC,EAAOvsE,MAAMia,MAAK,SAAUja,EAAMtJ,GAC9C,eAAUA,KACVsxL,EAAWtxL,IAAMA,GAEjBsJ,GAAQ,eAASA,IAASA,IAASusE,EAAOvsE,OAC1CgoL,EAAWhoL,KAAOA,GAEtB+nL,EAAYlpL,KAAK,CACbxE,KAAM,SACN2F,KAAMA,EACNhD,MAAO,UAInB,MACJ,KAAKy+K,GACDlvG,EAAS,CACL27G,QAASloL,EACTixH,QAASA,EACTv6H,IAAKymD,EAAOzmD,IACZylD,QAAQ,GAEZ6N,EAAWpuD,KAAKgsL,sBAAsB,gBAAiBr7G,GAAQ,WAC3D,OAAOvvD,EAAMkjD,OAAO/iB,EAAOzmD,IAAK61E,EAAO27G,SAASjuK,MAAK,SAAUja,EAAMtJ,GAC7DsJ,GAAQ,eAASA,IAASA,IAASusE,EAAO27G,UAC1CF,EAAWhoL,KAAOA,GAEtB+nL,EAAYlpL,KAAK,CACbxE,KAAM,SACN3D,IAAKA,EACLsJ,KAAMA,UAM1B,GADA0V,EAAQ1Y,GAASgrL,EACbh+H,EAAU,CACV,IAAIm+H,EAAe,IAAI,cACvBn+H,EAASy0B,QAAO,SAAUz+E,GACtB8nL,EAAQjpL,KAAK,CACTnI,IAAKymD,EAAOzmD,IACZmE,OAAQmF,OAEZy+E,OAAO0pG,EAAa5rK,SACxBihE,EAAU3+E,KAAKspL,EAAa9qK,gBAIxC+qK,sBAAuB,SAAS1yK,EAASsoK,GACrC,IAAI7gI,EAASznC,EAAQsoK,GAMrB,OALK,OAAS7gI,QAAU,IAAWA,OAAS,EAASA,EAAO9iD,QAAUm/K,IAC9DwE,GAAa,GACbtoK,EAAQuqD,OAAO+9G,EAAW,IAG3B,GAEXqK,eAAgB,SAAS3yK,EAASsoK,EAAW7hI,GACzC,IAAIgB,EAASznC,EAAQsoK,GACrB,IAAK7hI,IAAWgB,GAAUA,EAAO9iD,OAASm/K,GACtC,OAAO59K,KAAK0sL,mBAAmB5yK,EAASsoK,GAAY7hI,IAAWgB,IAGvEmrI,mBAAoB,SAAS5yK,EAASsoK,GAIlC,OAHIA,GAAa,GACbtoK,EAAQuqD,OAAO+9G,EAAW,IAEvB,GAEXuK,2BAA4B,SAAST,GAIjC,IAHA,IAAIU,GAAe,EACf9yK,EAAU,IAAI9Z,KAAK0hL,cACnBmL,EAAgB/yK,EAAQlgB,OACnB6B,EAAI,EAAGA,EAAIywL,EAAQtyL,OAAQ6B,IAAK,CACrC,IAAImiG,EAAMsuF,EAAQzwL,GAAGwD,OACjBshD,EAAS,WAAaq9C,EACtBwkF,EAAY,OAAc9oK,cAAc4yK,EAAQzwL,GAAGX,IAAKgf,GACxDynC,EAASznC,EAAQsoK,GACjB0K,EAAUlvF,GAAOA,aAAelyE,MACpC,GAAIohK,GAQA,GAPIvrI,GACAvhD,KAAK+hL,iBAAiB,CAClBjnL,IAAKymD,EAAOzmD,IACZs3B,MAAOwrE,IAGf59F,KAAKuiL,uBAAuB3kF,GACxB59F,KAAKwsL,sBAAsB1yK,EAASsoK,GACpC,WAEGpiL,KAAKysL,eAAe3yK,EAASsoK,EAAW7hI,KAC/CqsI,GAAgBrsI,GAMxB,OAHIzmC,EAAQlgB,OAASizL,GACjB7sL,KAAK+wD,cAAcwvH,GAA6BzmK,GAE7C8yK,GAEXG,wBAAyB,SAASjzK,GAC9B,eAAKA,EAAS,CAAC/a,EAAGoR,KACd,IACI/L,KAAMA,EACNtJ,IAAKA,EACL2D,KAAMA,GACN0R,EACA6xK,EAAehiL,KAAK+hL,iBAAiB,CACrCjnL,IAAKA,IAEL61E,EAAS,CACT71E,IAAKA,EACLsJ,KAAMA,GAKV,OAHI49K,EAAa5vJ,QACbu+C,EAAOv+C,MAAQ4vJ,EAAa5vJ,OAExB3zB,GACJ,KAAKm/K,GACD59K,KAAKkyD,cAAc,eAAgB,OAAAz3D,EAAA,WAAO,GAAIk2E,EAAQ,CAClDvsE,KAAM49K,EAAa3sD,WAEvB,MACJ,KAAKsoD,GACD39K,KAAKkyD,cAAc,gBAAiBye,GACpC,MACJ,KAAKkvG,GACD7/K,KAAKkyD,cAAc,eAAgBye,MAG/C3wE,KAAKkyD,cAAc,UAAW,CAC1Bp4C,QAASA,KAGjBwwK,aAAc,WACV,IAAIl8H,EAAW,IAAI,cAqBnB,OApBApuD,KAAK6qL,4BAA4BxsK,KAAK,KAC9Bre,KAAKgtL,WACLhtL,KAAKitL,kBAAkB7+H,GAG3B,kBAAKpuD,KAAKqsL,uBAAuBhuK,KAAKkiC,IAClC,GAAIA,EACAvgD,KAAKitL,kBAAkB7+H,EAAU,CAC7B7N,OAAQA,QAFhB,CAMAvgD,KAAKktL,SAAU,EACf,IAAIp3K,EAAU,GACd9V,KAAKmtL,mBAAmBr3K,GAAS+sE,OAAO,KACpC7iF,KAAKktL,SAAU,EACfp3K,EAAQs3K,mBAAqBptL,KAAKsrL,sBACnCjtK,KAAK+vC,EAASztC,SAASG,KAAKstC,EAASv6B,WACzC/S,KAAKstC,EAASv6B,UAClB/S,KAAKstC,EAASv6B,QACVu6B,EAAS3sC,WAEpBwrK,kBAAmB,SAAS7+H,GACxB,IACI7N,OAAQA,EACRnuB,MAAOA,GACPlyB,UAAUtG,OAAS,QAAK,IAAWsG,UAAU,GAAKA,UAAU,GAAK,GACrE,kBAAKF,KAAKqtL,mBAAmB9sI,IAASliC,MAAK,WACvC+vC,EAASztC,QAAQyR,MACjBtR,KAAKstC,EAASv6B,SAEtBs5J,mBAAoB,SAASr3K,GACzB,IAAIo2K,EAAU,GACVtqG,EAAY,GACZuqG,EAAc,GACdnpG,EAAiBhjF,KAAKiY,gBACtBmC,EAAa4oE,EAAe5oE,aAC5Bnb,EAAS,IAAI,cA6BjB,OA5BA,kBAAKe,KAAK8rL,iBAAiBztK,KAAKzN,IAC5B,IACI2vC,OAAQA,EACRzmC,QAASA,GACTlJ,EACJ,OAAI2vC,EACOthD,EAAO0hB,UAAUc,WAE5BzhB,KAAKisL,gBAAgBrqG,EAAWsqG,EAASC,EAAaryK,GAClD8nE,EAAUhoF,QACV,OAASwgB,QAAc,IAAWA,GAAsBA,EAAWktH,eACnE,qBAAQ1lD,GAAWvjE,KAAK,KAChBre,KAAK2sL,2BAA2BT,GAChClsL,KAAKstL,WAAWnB,EAAaryK,EAAS7a,IAEtC,OAASmb,QAAc,IAAWA,GAAsBA,EAAWotH,aACnEvoI,EAAO0hB,aAEZG,KAAKsR,IACJ,OAAShY,QAAc,IAAWA,GAAsBA,EAAWotH,aACnEvoI,EAAO0hB,QAAQyR,KAEZnzB,EAAO4jF,OAAO,KACjB/sE,EAAQs3K,mBAAoB,IAC7B3rK,gBAEPzhB,KAAKutL,cAActuL,MACpB6hB,KAAK7hB,EAAO40B,QACR50B,EAAOwiB,WAElB+rK,iBAAkB,SAAS1zK,GACvB9Z,KAAK2pL,qBAET2D,WAAY,SAASnB,EAAaryK,EAASs0C,GACvC,IAAIh0C,EAAapa,KAAKiY,gBAAgBmC,aACtCpa,KAAKwtL,iBAAiB1zK,GACtB,OAASM,QAAc,IAAWA,GAAsBA,EAAWotH,aACnExnI,KAAKytL,sBAAsBtB,EAAaryK,EAASs0C,IAErDm/H,cAAe,SAAStuL,GACpBe,KAAKkyD,cAAc,UAAW,CAC1Bp4C,QAAS,KAEb9Z,KAAKitL,kBAAkBhuL,IAE3BwuL,sBAAuB,SAAStB,EAAaryK,EAASs0C,GAClD,IAAI40B,EAAiBhjF,KAAKiY,gBACtBkpC,EAAcnhD,KAAK4Y,OAAO,uBAC1B80K,EAAgB,YAAcvsI,GAAe,YAAcA,EAC1DusI,GACD1qG,EAAe//E,KAAKkpL,GAExB,kBAAKnpG,EAAetB,QAAQ,CACxBjoC,UAAWi0I,EACXrnG,OAAQqnG,EACRjtK,KAAM,YAAc0gC,EACpBk5C,YAAar6F,KAAK4Y,OAAO,yBACzBiqE,OAAO,KACP7iF,KAAK+sL,wBAAwBjzK,KAC9BuE,KAAK,KACJre,KAAKitL,kBAAkB7+H,KACxBttC,KAAKsR,IACJpyB,KAAKitL,kBAAkB7+H,EAAU,CAC7Bh8B,MAAOA,OAInB46J,SAAU,WACN,OAAOhtL,KAAKktL,SAEhB/L,kBAAmB,WACf,IAAIwM,EAAsB3tL,KAAK4tL,uBAC3BtsI,EAAWthD,KAAK4Y,OAAO,oBACvBgjC,EAAW0jI,IAAsBh+H,EAAW,IAAMi+H,GAAgC,IACtFv/K,KAAKs9D,mBAAmB4e,iBAAiB,CACrCz9E,KAAM,UACNogB,QAAS,OACT07B,QAASozI,EACT/xI,SAAUA,EACVvwC,MAAO,OACPD,UAAW,SACXD,aAAcnL,KAAKujL,8BACnBjmI,cAAe,UAEnBt9C,KAAKs9D,mBAAmBoK,aAAa,eAAgB,CACjDntB,QAASozI,EACT/xI,SAAUA,KAGlBgyI,qBAAsB,WAClB,IAAI5K,EAAiBhjL,KAAK4Y,OAAO,WACjC,OAAOoqK,EAAeriI,eAE1BktI,sBAAuB,WACnB,IAAIhyE,EAAa77G,KAAK67G,aAClBiyE,EAAmB,eAAU9tL,KAAK4Y,OAAO,uBAC7C,QAASk1K,GAAoBjyE,IAEjCulE,mBAAoB,WAChB,IAAI/kF,EAAcr8F,KAAKqd,QAAQ,eAC3B0wK,EAAmB/tL,KAAK6tL,wBACxBxxF,IACAA,EAAY2yB,uBAAuB,aAAc++D,GACjD1xF,EAAY2yB,uBAAuB,eAAgB++D,KAG3DC,eAAgB,SAASn3K,GACrBA,GAAYA,EAASsB,SAASwnK,KAElCsO,gCAAiC,OACjC1J,eAAgB,WACZ,IAAIzqK,EAAU9Z,KAAK0hL,aACf/wG,EAAS,CACTpwB,QAAQ,EACRzmC,QAASA,GAEb9Z,KAAKkyD,cAAc,kBAAmBye,GACjCA,EAAOpwB,SACRvgD,KAAKkuL,sBACLluL,KAAKkyD,cAAc,iBAAkB,CACjCp4C,QAASA,MAIrBo0K,oBAAqB,WACjB,IAAI1zH,EAAWx6D,KAAKilL,0BACpBjlL,KAAKmuL,wBACLnuL,KAAKywD,OACLzwD,KAAK4hL,eACL5hL,KAAKikL,uBACLjkL,KAAKkkL,mBACLlkL,KAAKouL,qBAAqB5zH,IAE9B4zH,qBAAsB,SAAS5zH,GAC3B,IAAIwoB,EAAiBhjF,KAAKiY,gBAC1B+qE,EAAeiP,YAAY,CACvB/4C,mBAAoBl5C,KAAK4Y,OAAO,yBAGxCy1K,eAAgB,OAChBC,YAAa,WACT,OAAOtuL,KAAK67G,cAEhBv3C,OAAQ,SAASzC,GACb,IAAImhB,EAAiBhjF,KAAKiY,gBACtB+qE,GAAkBhjF,KAAK0kL,aAAe1hG,EAAe/2B,cACjD,YAAc4V,GACd7hE,KAAK0hF,QAAQ,CACT6sG,eAAe,IAGvBvuL,KAAK0kL,WAAa1hG,EAAe/2B,aAErCjsD,KAAKohL,sBAEToN,iCAAkC,SAAStxK,EAAKuxK,GAC5C,OAAOA,EAAiB,GAAK,CAACvxK,EAAIs9C,WAEtCk0H,YAAa,SAAStgI,GACdpuD,KAAKihL,WAAW3iL,QAAQ8vD,GAAY,IACpCpuD,KAAKihL,WAAWh+K,KAAKmrD,GACrBA,EAASy0B,OAAO,KACZ,IAAIzhF,EAAQpB,KAAKihL,WAAW3iL,QAAQ8vD,GAChChtD,GAAS,GACTpB,KAAKihL,WAAW58G,OAAOjjE,EAAO,OAK9CutL,eAAgB,SAAS74K,EAASjU,EAAOtF,GACrC,IAAIqyL,EACAtC,EAAU,GACVj3D,EAAU,QAAUu5D,EAAe94K,EAAQoH,WAAQ,IAAW0xK,OAAe,EAASA,EAAaxqL,KACnGyqL,EAAS/4K,EAAQhb,IACjBszD,EAAW,IAAI,cACnB,QAAI,IAAWygI,EAAQ,CACnB/4K,EAAQjU,MAAQA,EAChB,IAAIitL,EAAqB,yBAAYh5K,EAAQyE,OAAO0jC,aAAaquI,EAASzqL,EAAO,OAAApH,EAAA,YAAO,EAAM,GAAI46H,GAAU94H,IAC5GuyL,EAAmBzwK,MAAK,WACpB+vC,EAASztC,QAAQ,CACbvc,KAAMkoL,EACNxxL,IAAK+zL,EACLx5D,QAASA,EACT52H,KAAMohL,QAEV/+J,KAAK0/J,GAAqBpyH,IAAWttC,KAAK88E,GAAO59F,KAAKuiL,uBAAuB3kF,IAC7E,eAAUrhG,IAASuZ,EAAQyE,OAAOK,kBAClC9E,EAAQyE,OAAOK,gBAAgB/Y,GAAStF,GAE5CyD,KAAK+uL,iBAAiBj5K,GACtB9V,KAAK0uL,YAAYtgI,GAErB,OAAOA,GAEX2gI,iBAAkB,SAASj5K,GACvB,GAAIA,EAAQkR,OAAQ,CAChB,IAAIg8D,EAAiBhjF,KAAKiY,gBACtBuiD,EAAWwoB,EAAe6W,iBAAiB/jF,EAAQhb,KACnDoiB,EAAM8lE,EAAeiV,iBAAiBz9B,GACtCt9C,IACApH,EAAQkR,OAAS9J,EAAI8J,QAEzBlR,EAAQkR,OAAOlR,EAAQP,aAAeO,EAAQjU,QAGtDmtL,iBAAkB,SAASl5K,EAASjU,EAAOtF,EAAM0yL,GAC7C,IAAIJ,EAAS/4K,EAAQhb,IACjBszD,EAAW,IAAI,cAanB,YAZI,IAAWygI,GACX7uL,KAAKiY,gBAAgB+6E,UAAU,SAE/Bl9E,EAAQyE,OAAO0jC,aACfj+C,KAAK2uL,eAAe74K,EAASjU,EAAOtF,GAAM8hB,KAAKsyD,IAC3C,kBAAK3wE,KAAKw0F,aAAa1+E,EAAS66D,EAAQs+G,IAAiBpsG,OAAO,KAC5Dz0B,EAASztC,cAIjBytC,EAASztC,UAENytC,EAAS3sC,WAEpBytK,gCAAiC,SAASp5K,GACtC,GAAI9V,KAAKsuL,gBAAkBtuL,KAAKolL,WAAWtvK,EAAQ0kD,SAAU1kD,EAAQP,aAGjE,OAFAvV,KAAKsrL,oBACLtrL,KAAKmvL,eAAer5K,EAAQoH,KAAK,IAC1B,GAGfkyK,eAAgB,SAAS70K,GACrB,IAAI8iD,EAAiBr9D,KAAKs9D,mBAAmBC,oBACxChjD,IACDA,EAASva,KAAKspL,kBAElB,IAAI+F,EAAuB90K,GAAUA,EAAO0jC,eAAiB1jC,EAAOw/D,oBAChEu1G,EAA6BjyH,EAAez+C,KAAKolE,GAAiBA,EAAcnvE,qBAAuBmvE,EAAc/jE,2BACzH,OAAOovK,GAAwBC,GAEnC96F,aAAc,SAAS1+E,EAAS66D,EAAQs+G,GACpC,IAAIM,EAAgB,eAAS,GAAIz5K,EAAS,CACtCm5K,eAAgBA,IAIpB,OAFAjvL,KAAKmoL,WAAWx3G,EAAQ4+G,GACxBvvL,KAAKohL,qBACEphL,KAAKwvL,iBAAiB15K,EAASy5K,EAAcN,iBAExDO,iBAAkB,SAAS15K,EAASm5K,GAChC,IAAII,EAAuBv5K,EAAQyE,OAAO0jC,eAAiBnoC,EAAQyE,OAAOw/D,oBACtE78D,EAAMpH,EAAQoH,IACdA,IACI+xK,GAAkBI,EAClBrvL,KAAKmvL,eAAejyK,EAAK+xK,EAAgBI,GAClCnyK,EAAIonD,QACXpnD,EAAIonD,WAIhBmrH,mBAAoB,SAASvyK,EAAKuxK,EAAgBY,GAC9CrvL,KAAKiY,gBAAgBg6E,YAAY,CAC7BpwB,WAAY,SACZgzB,WAAY70F,KAAKwuL,iCAAiCtxK,EAAKuxK,MAG/DU,eAAgB,SAASjyK,EAAK+xK,EAAgBI,GACtCJ,EACAjvL,KAAK0vL,sBAAsBxyK,EAAK+xK,EAAgBI,GAEhDrvL,KAAK2vL,oBAAoBzyK,EAAKmyK,IAGtCK,sBAAuB,SAASxyK,EAAK+xK,EAAgBI,GACjDrvL,KAAKyvL,mBAAmBvyK,GAAM+xK,EAAgBI,GAC9CrvL,KAAK4vL,6BAA6B1yK,EAAKmyK,GAClCJ,GACDjvL,KAAKsrL,qBAGbqE,oBAAqB,SAASzyK,EAAKmyK,GAC/B,IAAIjhI,EAAW,IAAI,cACnBpuD,KAAK0uL,YAAYtgI,GACjB1uB,WAAW,KACP,IAAI66I,EAAkB,eAAE,aAAW37D,oBAC/BrpG,EAAcvV,KAAKw6G,UAAU31C,aAAa01G,EAAiBr9J,EAAIs9C,UAC/D/8C,EAAiB88J,EAAgB78K,IAAI,GACrCmgB,EAAiB,OAAcL,kBAAkBC,GAGrD,GAFAzd,KAAKyvL,mBAAmBvyK,GAAK,EAAOmyK,GACpCrvL,KAAK4vL,6BAA6B1yK,EAAKmyK,GACnC95K,GAAe,EAAG,CAClB,IAAI67F,EAAepxG,KAAKw6G,UAAUvzC,gBAAgB/pD,EAAIs9C,SAAUjlD,GAChEvV,KAAKgpL,mBAAmB53E,EAAc,KAClC1xE,WAAW,KACPjiB,EAAiB,aAAWmhG,mBACxB/gG,EAAeH,gBAAkB,GACjC,OAAcE,kBAAkBH,EAAgBI,OAKhEuwC,EAASztC,aAGjBivK,6BAA8B,OAC9BzH,WAAY,SAAS0H,EAAc/5K,GAC/B,IAAIg6K,EACA5yK,EAAM,OAASpH,QAAW,IAAWA,OAAU,EAASA,EAAQoH,IAChEpD,EAAU,IAAI9Z,KAAK0hL,cACnBtgL,EAAQ,OAAckY,cAAcu2K,EAAa/0L,IAAKgf,GACtD1Y,EAAQ,IACRA,EAAQ0Y,EAAQlgB,OAChBoG,KAAK+hL,iBAAiB,CAClBjnL,IAAK+0L,EAAa/0L,IAClBu6H,QAASw6D,EAAax6D,iBAEnBw6D,EAAax6D,QACpBv7G,EAAQ7W,KAAK4sL,IAEjB,IAAItuI,EAAS,eAAS,GAAIznC,EAAQ1Y,IAkBlC,OAjBImgD,IACIsuI,EAAazrL,OACbm9C,EAAOn9C,KAAO,gBAAwBm9C,EAAOn9C,KAAMyrL,EAAazrL,OAE9Dm9C,EAAO9iD,MAASoxL,EAAazrL,OAASyrL,EAAapxL,OACrD8iD,EAAO9iD,KAAOoxL,EAAapxL,MAE3Bye,IACAA,EAAIm4G,QAAUr1H,KAAKiiL,YAAY/kK,EAAIpiB,KACnCoiB,EAAI9Y,KAAO,gBAAwB8Y,EAAI9Y,KAAMyrL,EAAazrL,QAGlE0V,EAAQ1Y,GAASmgD,EACjBvhD,KAAK+wD,cAAcwvH,GAA6BzmK,GAC5ChE,GAAWyrC,KAAY,QAAUuuI,EAAmB9vL,KAAK0hL,oBAAiB,IAAWoO,OAAmB,EAASA,EAAiB1uL,MAClI0U,EAAQm5K,gBAAiB,GAEtB1tI,GAEXwuI,yBAA0B,SAASvyH,EAAajjD,GAC5C,OAAOA,EAAOhP,kBAAoBvL,KAAKwhL,6BAE3CwO,kBAAmB,SAASl6K,GACxB,IAEIimC,EAIAk0I,EANA11K,EAASzE,EAAQyE,OACjBigD,EAAW1kD,EAAQoH,KAAOpH,EAAQoH,IAAIs9C,SAEtC01H,EAAYlwL,KAAKwjL,qBACjB2M,EAAenwL,KAAKirI,UAAUzwE,GAC9BshC,EAAgB97F,KAAKolL,WAAW5qH,EAAU1kD,EAAQP,aAEtD,KAAKgF,EAAO2jC,kBAAoB3jC,EAAO0jC,eAAiBkyI,GAAgB51K,EAAOjP,cAAgBwwF,KAAoB,SAAWhmF,EAAQ6E,SAAW,mBAAqB7E,EAAQ6E,SAAaJ,EAAOsE,QAmBvL,WAAatE,EAAOsE,SAAW,WAAa/I,EAAQ6E,SAAWw1K,IACtEp0I,EAAW,OAAS/7C,WAAQ,IAAWA,UAAO,EAASA,KAAKowL,oBAAoBt6K,QApBuH,CACvM,IAAI8qC,EAAgB5gD,KAAK4gD,cAAc9qC,MACjC8qC,GAAiBuvI,IAAiB51K,EAAOjP,cAAgBwwF,KAAmBq0F,GAAiBD,IAC3F31K,EAAO2jC,mBAAqBgyI,IAC5BD,EAAsB,CAClB1vI,QAAQ,EACRzlD,IAAKgb,EAAQoH,IAAIC,cAAW,EAASrH,EAAQoH,IAAIpiB,IACjDsJ,KAAM0R,EAAQoH,IAAI9Y,KAClBmW,OAAQA,GAEZva,KAAKipL,gBAAgBgH,IAEpBA,GAAwBA,EAAoB1vI,SAC7CzqC,EAAQijH,SAAW,CAACl3H,EAAOtF,KACvByD,KAAKgvL,iBAAiBl5K,EAASjU,EAAOtF,MAIlDw/C,EAAWxhC,EAAOhP,kBAAoBvL,KAAKwhL,4BAI/C,OAAOzlI,GAEXunI,cAAe,SAAS7tK,EAAYipC,EAAQ5oC,EAASyrC,GACjD,IAAI1F,EAAOskI,GAAgBzhI,EAAO98C,MAC9B0/C,EAAWthD,KAAK4Y,OAAO,oBACvBy3K,EAAgCrwL,KAAK4Y,OAAO,iCAC5CyvG,EAAU,eAAE,OAAO32D,KAAK,OAAQ,KAAKv5C,SAASgnK,IAAYhnK,SAASumC,EAAO9C,UAC9E,GAAI8C,EAAO3C,UAAYs0I,EACnBrwL,KAAKw6G,UAAUn6C,eAAe5qD,EAAYipC,EAAO3C,SAAUjmC,GAAS,OACjE,CACH,GAAI4oC,EAAO3C,SACPssE,EAAU,eAAE,UAAUlwG,SAASumC,EAAO9C,eACnC,GAAI0F,GAAYzF,GAAQ6C,EAAO7C,KAAM,CACxCA,EAAO6C,EAAO7C,MAAQA,EACtB,IAAIy0I,EAAW,QAA6Bz0I,GACxC,UAAYy0I,GAAY,QAAUA,EAClCjoE,EAAU,QAA4BxsE,GAAM1jC,SAASumC,EAAO9C,UAE5DysE,EAAQlwG,SAAS,WAAa,WAAam4K,EAAW,IAAM,KAAOz0I,GAAM6V,KAAK,QAAShT,EAAOniD,MAElG8rH,EAAQlwG,SAAS,gBACjB1C,EAAW0C,SAASonK,IACpB,IAAIgR,EAAmBvwL,KAAKwwL,6BAA6B9xI,EAAO98C,MAChE2uL,GAAoBloE,EAAQ32D,KAAK,aAAc,OAAoBr4D,OAAOk3L,SAE1EloE,EAAQ9rH,KAAKmiD,EAAOniD,MAEpB,eAAUmiD,EAAO7I,OACjBwyE,EAAQ32D,KAAK,QAAShT,EAAO7I,MAE7B71C,KAAK6iL,kBAAkBnkI,EAAQ5oC,GAC/BuyG,EAAQlwG,SAAS,qBACTumC,EAAO3C,WAAY2C,EAAO5C,SAClC,OAAahyC,GAAGu+G,EAAS,gBAAa,QAASu3D,IAAoB5/K,KAAKmxD,cAAa,SAAUvtD,GAC3F,IAAI6sL,EACJ,QAAUA,EAAkB/xI,EAAO5C,eAAY,IAAW20I,GAA2BA,EAAgBr6K,KAAKsoC,EAAQ,OAAAjkD,EAAA,WAAO,GAAImJ,EAAG,CAC5HsZ,IAAKpH,EAAQoH,IACb3C,OAAQzE,EAAQyE,UAEpB3W,EAAEouD,MAAMmL,iBACRv5D,EAAEouD,MAAMo4C,sBAGhB30F,EAAWskB,OAAOsuF,EAAS,UACvB3pE,EAAO3C,UACP/7C,KAAKw6G,UAAUn6C,eAAegoD,EAAS3pE,EAAO3C,SAAUjmC,GAAS,EAAMyrC,KAInFivI,2BAA4B,KAAM,CAC9BxQ,KAAM,4BACNpvD,KAAM,mCACNsvD,OAAQ,8BACRD,SAAU,gCACV1/H,OAAQ,uCAEZmwI,kBAAmB,SAASr0F,EAAaz6F,EAAMsY,EAAYmkC,GACvD,IAAImD,EAAexhD,KAAK4Y,OAAO,kBAAoB,GAC/C+3K,EAA8B,CAC9BC,OAAQpvI,EAAaE,iBACrBkvE,KAAMpvE,EAAaQ,eACnBP,OAAQD,EAAaC,QAErB4Q,EAAY,CACZu+H,OAAQ,SACRhgE,KAAM,OACNnvE,OAAQ,UACT7/C,GACC67H,EAAWkzD,EAA4B/uL,GACvCmsL,GAAoB,SAAW17H,GAAa,WAAaA,IAAcryD,KAAK6tL,wBAChF,MAAO,CACH1iI,OAAQ,WACRr1C,QAAS,CACL2hC,cAAe7zC,IACX,eAAEA,EAAE8T,SAASS,SAASkkF,EAAY2xB,uBAAuBqxD,GAAoB,IAAMr/K,KAAK4X,gBAAgBy6C,GAAa,aAEzHxW,KAAM,eAAiBwW,EACvB1d,SAAUo5I,EACVjyI,QAAS,KACLpc,WAAW,KACP1/B,KAAKka,QAGb3d,KAAMkhI,EACN5nF,KAAM4nF,GAEVvyE,SAAU,SACVtpD,KAAMA,EAAO,SACbopD,SAAU,QACVD,aAAc,OACd1M,UAAWA,IAGnBwyI,mBAAoB,SAASx0F,GACzB,IAAI2mF,EAAiBhjL,KAAK4Y,OAAO,YAAc,GAC3Ck4K,EAAc,GAIlB,OAHI9N,EAAetiI,aACfowI,EAAY7tL,KAAKjD,KAAK0wL,kBAAkBr0F,EAAa,SAAU,SAAU,KAEtEy0F,GAEXC,kBAAmB,SAASl5H,EAAO8Y,GAC/B3wE,KAAKgxL,oBAAoBrgH,IAAW9Y,EAAM1/C,SAASwnK,KAEvDgJ,gBAAiB,OACjB0D,oBAAqB,SAAS9qI,GAC1B,GAAIA,IAAW,eAAUA,EAAOzmD,MAAQ,eAAUymD,EAAO9iD,MACrD,OAAO,GAGf4uL,mBAAoB,OACpBc,sBAAuB,OACvB8C,iBAAkB,SAAS3/H,EAAYx7C,GACnC,IAAIo7K,EAAkBlxL,KAAK4Y,OAAO,WAAa04C,GAO/C,OANI,eAAW4/H,KACXA,EAAkBA,EAAgB,CAC9Bt/K,UAAW5R,KAAK4R,UAChBsL,IAAKpH,EAAQoH,OAGdg0K,GAEXtwI,cAAe,SAAS9qC,EAAS69F,GAC7B,IAAItyD,EAAkBrhD,KAAK4Y,OAAO,4BAA8BknK,GAC5DqR,IAAejxL,UAAUtG,OAAS,KAAIynD,IAAoBsyD,GAAa,SAAWA,GACtF,OAAOw9E,GAAgBnxL,KAAKixL,iBAAiB,gBAAiBn7K,IAElE6qC,cAAe,SAAS7qC,GACpB,OAAO9V,KAAKixL,iBAAiB,gBAAiBn7K,IAElDmgF,eAAgB,SAASn/B,GACrB,IAAIvhD,EAAcuhD,EAAWvhD,YACzB2gF,EAAiBp/B,EAAW55C,MAAQ45C,EAAW55C,IAAIC,SAAW25C,EAAW55C,IAAI8J,OAAS8vC,EAAW55C,IAAIg5E,gBACzG,QAASA,QAAkB,IAAWA,EAAe3gF,IAEzD67K,mBAAoB,WAChB,IAAIC,EAAsBrxL,KAAKilL,0BAC3BljH,EAAO/hE,KAAKiY,gBAAgB1N,QAChC,OAAO8mL,GAAuB,GAAItvH,EAAKsvH,GAAqBl0K,UAEhE6zK,oBAAqB,SAASl6H,GAC1B,IAAIw6H,EAAetxL,KAAKi2F,eAAen/B,GACvC,OAAOw6H,GAAgBx6H,EAAWv8C,OAAO0jC,eAAiBj+C,KAAKshL,gBAAkBjD,KAAkBvnH,EAAW55C,IAAI8gD,aAvxDvE,IA2xD5CuzH,GAAgB,CACvB5zL,eAAgB,WACZ,MAAO,CACHi3C,QAAS,CACLtI,KAAM,MACN6U,YAAa,OACbF,eAAgB69H,GAChBp+H,aAAa,EACbE,eAAe,EACfD,eAAe,EACfW,UAAU,EACVF,uBAAuB,EACvBP,eAAe,EACfpB,MAAO,CACHsC,QAAS,OAAoB1oD,OAAO,6BACpC2oD,eAAgB,OAAoB3oD,OAAO,oCAC3C4oD,eAAgB,OAAoB5oD,OAAO,oCAC3CqoD,iBAAkB,OAAoBroD,OAAO,sCAC7CsoD,iBAAkB,OAAoBtoD,OAAO,sCAC7CooD,OAAQ,OAAoBpoD,OAAO,4BACnCyoD,UAAW,OAAoBzoD,OAAO,+BACtC6oD,YAAa,OAAoB7oD,OAAO,iCACxCuoD,qBAAsB,OAAoBvoD,OAAO,0CACjDwoD,mBAAoB,IAExBb,KAAM,CACFwG,SAAU,GAEdtG,MAAO,GACPG,gBAAiB,QACjBN,WAAY,KACZD,eAAgB,KAChBhnC,QAAS,IAEbu2K,+BAA+B,IAGvC76H,YAAa,CACT5gB,QAASisI,IAEbjrH,UAAW,CACPJ,YAAa,CACTpxD,KAAM,CACFqsD,KAAM,WACFzwD,KAAKwxL,mBAAqBxxL,KAAK2xD,cAAc,WAC7C3xD,KAAKC,YAETomF,OAAQ,SAASqJ,EAAMx2C,GAEnB,OADCA,GAAsBl5C,KAAKwxL,mBAAmB9vG,UACxC1hF,KAAKC,SAASnB,MAAMkB,KAAME,YAErCs6F,YAAa,WACT,IAAIx6F,KAAK2xD,cAAc,WAAWq7H,WAGlC,OAAOhtL,KAAKC,SAASnB,MAAMkB,KAAME,YAErCivL,eAAgB,SAAS5kL,GACrB,IAIQknL,EAJJ1wI,EAAa/gD,KAAK4Y,OAAOmlK,IACzBmK,EAAe,OAAc5uK,cAAcynC,EAAYx2C,GACvD28K,EAAW38K,EAAM29K,GACjBhB,IAEAA,EAASlpH,WAAY,EACrB,QAAUyzH,EAAwBzxL,KAAK0xL,uBAAoB,IAAWD,GAAiCA,EAAsBr7K,KAAKpW,KAAMknL,KAGhJrvF,iBAAkB,SAASt2C,GACvBvhD,KAAKC,SAASshD,GACdvhD,KAAKmvL,eAAenvL,KAAKuK,OAAM,KAEnCkqF,mBAAoB,SAASlzC,GACzBvhD,KAAKmvL,eAAe5tI,EAAOh3C,OAC3BvK,KAAKC,SAASshD,IAElBmzC,kBAAmB,SAASnzC,GACxBvhD,KAAKmvL,eAAe5tI,EAAOh3C,OAC3BvK,KAAKC,SAASshD,IAElBuyC,cAAe,SAASvpF,EAAOg3C,GAE3B,OADAh3C,EAAQvK,KAAKwxL,mBAAmBp3D,aAAa7vH,EAAOg3C,GAC7CvhD,KAAKC,SAASsK,EAAOg3C,IAEhC6yC,iBAAkB,SAASC,EAAUv+E,GAEjC,OADA9V,KAAKwxL,mBAAmBpL,gBAAgB/xF,EAAUv+E,EAAS9V,KAAKs0F,oBACzDt0F,KAAKC,SAASo0F,EAAUv+E,IAEnCo+E,aAAc,SAASrqF,EAAMiM,GAMzB,OALAjM,EAAO7J,KAAKC,SAAS4J,EAAMiM,GACvBjM,EAAKsT,WACLrH,EAAQ+mD,mBACDhzD,EAAKgzD,WAEThzD,GAEXssF,yBAA0B,SAASb,EAASE,EAASh7B,EAAUw7B,GAC3D,GAAIV,EAAQn4E,WAAaq4E,EAAQr4E,UAAYm4E,EAAQixF,UAAY/wF,EAAQ+wF,QAGzE,OAAOvmL,KAAKC,SAASnB,MAAMkB,KAAME,YAErC01F,eAAgB,SAASC,EAAQC,EAAQC,EAAiBxgF,EAAaygF,GACnE,IAAI4F,EAAoB57F,KAAK2xD,cAAc,WACvCqJ,EAAO66B,EAAOp9B,OAASo9B,EAAOp9B,MAAMljD,GACpCyoD,EAAY49B,GAAqBA,EAAkBwpF,WAAWrvF,EAAiBxgF,GACnF,QAAIygF,IAAgBh4B,QAGhBhD,IAAQA,EAAKzgD,QAAWygD,EAAKzgD,OAAO2jC,kBAAoB8c,EAAKgD,YAAcA,IAGxEh+D,KAAKC,SAASnB,MAAMkB,KAAME,aAErCkxF,gCAAiC,SAAS/hD,GACtC,IAAIusD,EAAoB57F,KAAK2xD,cAAc,WACvCggI,EAAmB9yL,MAAMuY,QAAQi4B,EAAKxtC,QAAUwtC,EAAKxtC,QAAUwtC,EAAKktC,eAAiBqf,EAAkBoxF,WAC3G,OAAQ2E,GAEZ,wBAAwBtiJ,GACpB,IAAIpwC,EAASe,KAAKC,SAASovC,GACvBv1B,EAAU9Z,KAAK4Y,OAAO,mBACtBwB,EAAai1B,EAAKxtC,MACtB,GAAIhD,MAAMuY,QAAQgD,IAAeN,EAAQlgB,OAAQ,CAC7C,IAAIg4L,EAAiBx3K,EAAWte,IAAI+N,GAAQ7J,KAAKwrF,MAAM3hF,IACnDgoL,EAAa/3K,EAAQ1b,OAAOmjD,GAAU,WAAaA,EAAO9iD,MAAQmzL,EAAehzK,KAAK9jB,GAAO,eAAaymD,EAAOzmD,IAAKA,KACtH+2L,EAAWj4L,SAAWkgB,EAAQlgB,QAC9BoG,KAAK4Y,OAAO,kBAAmBi5K,GAEnC,IAAI9wI,EAAa/gD,KAAK4Y,OAAO,sBACzBk5K,EAAgBD,EAAWjzK,KAAK2iC,GAAU,WAAaA,EAAO9iD,MAAQ,eAAasiD,EAAYQ,EAAOzmD,OACrGg3L,GAAiBF,EAAejoK,MAAM7uB,IAAQ,eAAaimD,EAAYjmD,KACxEkF,KAAK4Y,OAAO,qBAAsB,MAG1C,OAAO3Z,KAInBy2D,MAAO,CACHt4C,SAAU,CACNqzC,KAAM,WACFzwD,KAAKC,WACLD,KAAKwxL,mBAAqBxxL,KAAK2xD,cAAc,YAEjDkT,aAAc,SAAShN,EAAO2C,GAC1B,IAAK3C,EAAMjqE,GAAG,OAAS4sE,GAAY,EAAG,CAClC,IAAIyL,EAAgBjmE,KAAK8mE,gBAAgBtM,GACrCgJ,GAAa,EAMjB,OALA,eAAKyC,GAAe,SAAU7kE,EAAOw9D,GAC7B,eAAEA,GAAa9mD,KAAK+/C,GAAOj+D,SAC3B4pE,EAAYpiE,MAGboiE,EAEX,OAAOxjE,KAAKC,SAASnB,MAAMkB,KAAME,YAErCwwD,cAAe,WACX,OAAO1wD,KAAKC,WAAW0nB,OAAO,CAAC,eAEnCi8C,iBAAkB,SAAS9tD,GACvB,IAAIimC,EAAW/7C,KAAKwxL,mBAAmBxB,kBAAkBl6K,GACzD,OAAOimC,GAAY/7C,KAAKC,SAAS6V,IAErC2mD,WAAY,SAASv/C,GACjB,IAAIkgD,EAAOp9D,KAAKC,SAASnB,MAAMkB,KAAME,WACrC,GAAIgd,EAAK,CACL,IAAI60K,IAAiB70K,EAAIqpK,QACrByL,IAAkB90K,EAAIC,SACtB80K,IAAkB/0K,EAAIopK,SAC1B0L,GAAiB50H,EAAKjlD,SAASsnK,IAC/BwS,GAAiB70H,EAAKjlD,SAASunK,KAC3BsS,GAAiBD,IACjB30H,EAAK/kD,YAAY+mK,IAGzB,OAAOhiH,GAEX80H,yBAA0B,SAASr7K,GAC/B,IAAIiqD,EAAgBjqD,EAASsH,QAAQ,SACjCmpD,EAAiBtnE,KAAK8kE,mBAC1B,MAAOhE,EAAclnE,SAAW0tE,EAAelpE,OAAO0iE,GAAelnE,OACjEid,EAAWiqD,EAAc3iD,QAAQ,MACjC2iD,EAAgBjqD,EAASsH,QAAQ,SAErC,OAAOne,KAAKmyL,6BAA6Bt7K,IAE7Cs7K,6BAA8B,SAASt7K,GACnC,IAAIs0D,EAAiBt0D,EAASsH,QAAQ,IAAM,GAAY,oCACxD,OAAOne,KAAK6kE,aAAasG,IAE7BinH,iBAAkB,SAASxuL,EAAG+vG,GAC1B,IAAI/X,EAAoB57F,KAAKwxL,mBACzBrmH,EAAiB,eAAEvnE,EAAEouD,MAAM97C,QAC3BX,EAAcvV,KAAKkyL,yBAAyB/mH,GAC5CjuD,EAAMld,KAAKiY,gBAAgB1N,QAAQ3G,EAAE42D,UACrC5Z,EAAgBg7C,EAAkBh7C,cAAc,CAChD1jC,IAAKA,GACNy2F,IAAcz2F,GAAOA,EAAIC,SACxB5C,EAASva,KAAKs9D,mBAAmBC,oBAAoBhoD,GACrD88K,EAAez2F,EAAkBwpF,WAAWxhL,EAAE42D,SAAUjlD,GACxDjK,EAAes1C,GAAiBrmC,IAAWA,EAAOjP,cAAgB+mL,GAClEhxI,EAAkBrhD,KAAK4Y,OAAO,4BAA8B,QAChE,GAAI,SAAW+6F,EAIX,OAHK/J,GAAA,KAAQC,OAAOouE,MAAOruE,GAAA,KAAQC,OAAOw1D,SAAagzB,GACnD,kBAEG93K,GAAUA,EAAO2jC,kBAAoB5yC,GAAgBswF,EAAkB02F,SAAS1uL,EAAE42D,SAAUjlD,GAEvG,GAAI,UAAYo+F,GAAa,aAAetyD,IAAoBgxI,EAAc,CAC1E,IAAIE,EAAsB,OAASr1K,QAAO,IAAWA,OAAM,EAASA,EAAIC,SACxEy+E,EAAkB42F,eAAc,EAAOD,GAE3C,OAAIjnL,GAAgBqoG,IAActyD,EACvBu6C,EAAkB02F,SAAS1uL,EAAE42D,SAAUjlD,IAAgBqmF,EAAkBqvC,UAAUrnI,EAAE42D,eADhG,GAIJG,gBAAiB,SAAS/2D,GACtB5D,KAAKyyL,oBAAsB/yJ,WAAW,KAClC1/B,KAAKoyL,iBAAiBxuL,EAAG,WAGjCg3D,UAAW,SAASh3D,GAChB,IAAI8uL,EAAa,eAAE9uL,EAAE82D,YAAYzD,SAASj3D,KAAK4X,gBAAgB8lK,KAC/D95K,EAAEouD,MAAMisH,IAAyBj+K,KAAK4R,UACjC5R,KAAKoyL,iBAAiBxuL,EAAG,UAAa8uL,GACvC1yL,KAAKC,SAASnB,MAAMkB,KAAME,YAGlC26D,aAAc,SAASj3D,GACd5D,KAAKoyL,iBAAiBxuL,EAAG,aAC1B5D,KAAKC,SAASnB,MAAMkB,KAAME,YAGlCi8D,cAAe,SAAStE,EAAOf,GAC3B,IAAI67H,EACA/2F,EAAoB57F,KAAKwxL,mBACzB7Q,IAAkB7pH,EAAWv8C,OAAOsE,QACpC+zK,EAAiB97H,EAAWiiE,SAC5BkS,EAAYrvC,EAAkBqvC,UAAUn0E,EAAW0D,UACnDwD,EAAYyiH,GAAcx1C,EAAWn0E,GACzC,GAAI4pH,GAAoCz1C,EAAWn0E,GAAa,CAC5D,IAAI1rD,EAAY0rD,EAAWv8C,OAAOnP,UAClCysD,EAAMtD,YAAYv0D,KAAK4X,gBAAgBsnK,KAAkB0T,GAAgBr+H,YAAY,IAA4Bq+H,GAC7GxnL,GACAysD,EAAM//C,KAAKomK,IAAwB3zG,QAAQ9tD,IAAI,YAAarR,GAGhE4yD,GACAh+D,KAAK6yL,kBAAkBh7H,GAE3B,IAAIi7H,IAAiB,QAAUH,EAAqB77H,EAAWv8C,cAAW,IAAWo4K,IAAsBA,EAAmBxnL,eAC1H2rD,EAAWv8C,QAAWomK,GAAmBmS,IAAel3F,EAAkBo1F,oBAAoBl6H,IAC9F8kC,EAAkBm1F,kBAAkBl5H,EAAOf,GAE/C92D,KAAKC,SAASnB,MAAMkB,KAAME,YAE9B2yL,kBAAmB,OACnBE,kBAAmB,OACnBxvH,gBAAiB,SAASztD,GACtB,IAAI0nD,EAAcx9D,KAAKC,SAAS6V,GAEhC,OADA0nD,EAAYQ,UAAYh+D,KAAKwxL,mBAAmBpM,WAAW5nH,EAAYhD,SAAUgD,EAAYjoD,aACtFioD,GAEXpB,YAAa,SAAStmD,GAClB,IAAI+hD,EAAQ73D,KAAKC,SAAS6V,GACtBm1H,EAAYjrI,KAAKwxL,mBAAmBvmD,UAAUn1H,EAAQ0kD,UAE1D,OADAkmH,GAAoCz1C,EAAWn1H,IAAY+hD,EAAM1/C,SAAS,IACnE0/C,GAEXm7H,UAAW,SAASx4H,EAAU0M,EAAkBrlE,EAAOtF,GACnD,IAAIihE,EAAcx9D,KAAK4hG,eAAepnC,EAAU0M,GAChD,GAAI1J,EAAa,CACb,QAAI,IAAW37D,EACX,OAAO27D,EAAY37D,MAEnB7B,KAAKwxL,mBAAmBxC,iBAAiBxxH,EAAa37D,EAAOtF,GAAM,KAI/E41D,QAAS,WACLnyD,KAAKC,SAASnB,MAAMkB,KAAME,WAC1Bk6D,aAAap6D,KAAKyyL,sBAEtBh/H,YAAa,WACTzzD,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAKwxL,mBAAmBxH,uBAGhC3tF,YAAa,CACT0wB,iBAAkB,WACd,IAAIxiH,EAAQvK,KAAKC,WACbgzL,EAAkBjzL,KAAK2xD,cAAc,WAAWk/H,mBAAmB7wL,MACvE,OAAOizL,EAAgBtrK,OAAOpd,IAElC2mD,cAAe,SAAS7hB,GACpB,IAAImtC,EAAWntC,EAAKmtC,SACpB,OAAQntC,EAAKztC,MACT,IAAK,UACD,IAAIsxL,EAAkB,CAACrV,GAA2B0C,GAA6BvC,GAAoCD,IAC/GoV,EAAmB32G,IAAa02G,EAAgBt0K,KAAKq8B,GAAcA,IAAeuhC,GACtF22G,GAAoBnzL,KAAKszD,cACzBtzD,KAAKC,SAASovC,GACd,MACJ,IAAK,gCACDA,EAAK+hB,SAAU,EACf,MACJ,QACIpxD,KAAKC,SAASovC,KAG1Br3B,UAAW,WACP,IAAIgrK,EAAiBhjL,KAAK2xD,cAAc,WAAW/4C,OAAO,WAC1D,OAAO5Y,KAAKC,aAAe,OAAS+iL,QAAkB,IAAWA,OAAiB,EAASA,EAAetiI,kBC7sE9H,EAAS0V,eAAe,UAAW,OAAA37D,EAAA,YAAO,EAAM,GAAI82L,GAAe,CAC/D37H,UAAW,CACPJ,YAAa,CACTpxD,KAAM,CACFmjI,qBAAsB,SAASzsI,GAC3B,IAAI8gG,EAAoB57F,KAAKwxL,mBAI7B,OAHI3yL,MAAMuY,QAAQtc,IACd8gG,GAAqBA,EAAkBla,UAEpC1hF,KAAKC,SAASnB,MAAMkB,KAAME,kBCXrD,IAAIkzL,GAAW,cACJC,GAAwB,CAC/Bz9H,UAAW,CACPJ,YAAa,CACT5gB,QAAS,CACL0+I,cAAe,WACX,OAAOtzL,KAAKshL,gBAAkBjD,IAElC+P,qBAAsB,SAAS5zH,GAC3B,IAAIwoB,EAAiBhjF,KAAKiY,gBACtBjY,KAAKwjL,sBAAwBhpH,GAAY,EACzCwoB,EAAeiP,YAAY,CACvBpwB,WAAY,SACZgzB,WAAY,CAACr6B,EAAUA,EAAW,KAGtCx6D,KAAKC,SAASnB,MAAMkB,KAAME,YAGlCyiL,wBAAyB,SAASjkI,EAAQ5oC,GACtC,IAAIo6K,EAAYlwL,KAAKwjL,qBACjBv4C,EAAYn1H,EAAQoH,KAAOpH,EAAQoH,IAAIs9C,WAAax6D,KAAKilL,0BAC7D,GAAIiL,EACA,OAAQxxI,EAAO98C,MACX,IAAK,OACD,OAAQqpI,GAAajrI,KAAK4gD,cAAc9qC,GAC5C,IAAK,SACD,OAAO9V,KAAKC,SAASnB,MAAMkB,KAAME,aAAe+qI,EACpD,IAAK,OACL,IAAK,SACD,OAAOA,EACX,QACI,OAAOjrI,KAAKC,SAASnB,MAAMkB,KAAME,WAG7C,OAAOF,KAAKC,SAASnB,MAAMkB,KAAME,YAErC+qI,UAAW,SAASzwE,GAChB,OAAOx6D,KAAKwjL,sBAAwBxjL,KAAKqlL,iBAAiB7qH,IAE9D+yH,cAAe,WACPvtL,KAAKwjL,uBACAxjL,KAAK67G,cACN77G,KAAKkuL,uBAGbluL,KAAKC,SAASnB,MAAMkB,KAAME,YAE9BykL,aAAc,SAASh0G,GACnB,IACIg3G,mBAAoBA,GACpB,OAASh3G,QAAU,IAAWA,EAASA,EAAS,GACpD,GAAI3wE,KAAKwjL,qBAAsB,CAC3B,IAAI+P,EAAmBvzL,KAAK0hL,aAAatjL,OAAOvQ,GAAM,WAAaA,EAAG4Q,MAAM7E,OAAS,EACrFoG,KAAKywD,OACLk3H,GAAsB4L,GAAoBvzL,KAAKkuL,sBAEnDluL,KAAKC,SAASnB,MAAMkB,KAAME,YAE9B0tL,qBAAsB,WAClB,IAAI3uL,EAASe,KAAKC,SAASnB,MAAMkB,KAAME,WACnC8iL,EAAiBhjL,KAAK4Y,OAAO,WAC7B06K,EAAgBtzL,KAAKszL,gBACrBE,EAAyBxQ,EAAepiI,eAAiBoiI,EAAetiI,YAC5E,OAAOzhD,GAAUq0L,GAAiBE,GAEtCxJ,mBAAoB,WAChB,IAAIzI,EAAWvhL,KAAKshL,cACpB,GAAIthL,KAAK+pL,iBAAkB,CACvB,IAAK,IAAM9K,GAAyB3gL,QAAQijL,GAAW,CACnD,IAAIkS,EAAezzL,KAAK2jL,oBAAoB3jL,KAAKilL,2BACjDjlL,KAAKgpL,mBAAmByK,EAAc,KAClCA,GAAgBzzL,KAAK4R,UAAU+iD,MAAM8+H,KAG7CzzL,KAAK+pL,kBAAmB,KAIpC3lL,KAAM,CACF+xF,yBAA0B,SAASb,EAASE,EAASh7B,EAAUw7B,GAC3D,IAAI4F,EAAoB57F,KAAK2xD,cAAc,WAC3C,IAAIiqC,EAAkB4nF,sBAAwBluF,EAAQt3B,YAAcw3B,EAAQx3B,UAG5E,OAAOh+D,KAAKC,SAASnB,MAAMkB,KAAME,cAI7Cw1D,MAAO,CACHt4C,SAAU,CACNq/C,WAAY,SAASv/C,GACjB,IAAIkgD,EAAOp9D,KAAKC,SAASnB,MAAMkB,KAAME,WACrC,GAAIgd,EAAK,CACL,IAAI0+E,EAAoB57F,KAAKwxL,mBACzBvmD,EAAYrvC,EAAkBqvC,UAAU/tH,EAAIs9C,UAC5CywE,IACA7tE,EAAKjlD,SAASi7K,IACdh2H,EAAK/kD,YAAYolK,IACb,WAAavgK,EAAIvC,SACjByiD,EAAKjlD,SAASnY,KAAK4X,gBAAgB8lK,MAI/C,OAAOtgH,GAEXmgC,QAAS,SAASh8C,GACdvhD,KAAKC,SAASshD,GACV,oBAAsBA,EAAOsgB,YAC7B7hE,KAAK8kE,mBAAmB9M,SAAS,SAASA,SAAS,IAAMo7H,IAAU/6K,YAAYolK,SC/GvG,EAASrnH,eAAe,kBAAmBi9H,I,8BCM5B,MAAM,GACjB,cACIrzL,KAAK0zL,KAAO,GAEhB,oBAAoBtsK,GAChB,IAAInoB,EAWJ,OAVA,eAAKe,KAAK0zL,MAAM,SAAUC,EAAMxjL,GAC5B,IACIyjL,eAAgBA,EAChB/pL,KAAMA,GACNsG,EACJ,GAAIiX,EAAUvd,GAEV,OADA5K,EAAS20L,GACF,KAGR30L,EAEX,sBAAsB+J,EAAUkY,GAC5B,IAAIjiB,EAOJ,OANA,eAAKe,KAAK0zL,MAAM,SAAU54L,EAAK+G,GAC3B,GAAImH,EAASnH,GAET,OADA5C,EAAS,SAAWiiB,EAAYpmB,EAAM+G,EAAMqf,IACrC,KAGRjiB,EAEX,QACIe,KAAK0zL,KAAO,GAEhB,mBAAmBG,GACf,eAAKA,EAAiBC,WAAYH,GAAQ3zL,KAAK+zL,gBAAgBJ,IAEnE,gBAAgB74L,UACLkF,KAAK0zL,KAAK54L,GAErB,IAAIgb,GACA,IAAIhb,EAAMgb,EAAQ69K,MAAQ,IAAI,QAE9B,OADA3zL,KAAK0zL,KAAK54L,GAAOgb,EACVhb,EAEX,qBAAqB+4L,GACjBA,EAAiB1xB,KAAK,CAACrnK,EAAKk5L,KACpBh0L,KAAK0zL,KAAK54L,IACNk5L,EAAgBJ,iBAChB5zL,KAAK0zL,KAAK54L,GAAK84L,eAAiBI,EAAgBJ,gBAEpD5zL,KAAK0zL,KAAK54L,GAAKitG,eAAiBisF,EAAgBjsF,gBAEhD/nG,KAAK8P,IAAI,CACLjG,KAAMmqL,EAAgBnqL,KACtB+pL,eAAgBI,EAAgBJ,eAChCD,KAAM74L,EACNitG,eAAgBisF,EAAgBjsF,mBAKhD,2BAA2BjtG,EAAKgb,GACxB9V,KAAK0zL,KAAK54L,KACVkF,KAAK0zL,KAAK54L,GAAO,OAAAL,EAAA,WAAOuF,KAAK0zL,KAAK54L,GAAMgb,IAGhD,yBAAyBjM,GACrB,OAAO7J,KAAKi0L,oBAAoBC,GAAcA,IAAerqL,GAEjE,kCAAkCsqL,GAC9B,OAAOn0L,KAAKo0L,sBAAsBxjL,IAC9B,IACIopE,KAAMA,GACNppE,EACJ,OAAOopE,IAASm6G,GACjB,iBAEP,cAAcA,GACV,OAAOn0L,KAAKo0L,sBAAsBnmG,IAC9B,IACIjU,KAAMA,GACNiU,EACJ,OAAOjU,IAASm6G,GACjB,QAEP,yBAAyBvyL,GACrB,OAAO5B,KAAKi0L,oBAAoBpqL,GAAQjI,IAASiI,EAAKjI,MAE1D,8BAA8ByZ,GAC1B,OAAOrb,KAAKi0L,oBAAoBpqL,GAAQwR,KAAe,eAASxR,GAAQA,EAAOA,EAAKwR,YAExF,wBAAwBxR,GACpB,IAAK,IAAI/O,KAAOkF,KAAK0zL,KACjB,GAAI1zL,KAAK0zL,KAAK54L,GAAK+O,OAASA,EACxB,OAAO7J,KAAK0zL,KAAK54L,GAAKitG,eAG9B,OAAO,KAEX,oBAAoBssF,GAChB,OAAOr0L,KAAKo0L,sBAAsBjmG,IAC9B,IACItkF,KAAMA,GACNskF,EACJ,OAAOtkF,IAASwqL,GACjB,aAEP,uBAAuBxqL,GACnB,OAAO7J,KAAKo0L,sBAAsBjoG,IAC9B,IACItiF,KAAMwuH,GACNlsC,EACJ,OAAOksC,IAAgBxuH,GACxB,gBAEP,WACI,OAAO7J,KAAK0zL,KAEhB,KAAKr/E,GACD,eAAKr0G,KAAK0zL,MAAM,SAAU54L,EAAKk5L,GAC3B3/E,EAAQv5G,EAAKk5L,MAGrB,2BAA2Bh6G,GACvB,IAAIxyD,EAAOhqB,OAAOgqB,KAAKxnB,KAAK0zL,MACxBY,EAAe9sK,EAAKppB,OAAOtD,KACvBkF,KAAK0zL,KAAK54L,GAAKk/E,MACRh6E,KAAK0zL,KAAK54L,GAAKk/E,KAAK17E,QAAQ07E,EAAM,IAAM,GAIvDs6G,EAAapzL,QAAQpG,GAAOkF,KAAK+zL,gBAAgBj5L,KCvIlD,IAAIy5L,GAAc,CACrB,KAAK19K,EAAUsuC,GACX,gBAAKtuC,EAAU,CACX8F,KAAMwoC,MAIP,GAAY,CACnB,OAAOtuC,EAAUsuC,EAAUuF,EAAU8pI,GACjCx9E,GAAA,KAAGG,QAAQtgG,EAAU,CACjBpY,KAAM,QACN/F,GAAI,CACAikB,KAAMwoC,GAEVuF,SAAUA,EACVF,SAAUgqI,KAGlB,SAAS39K,GACLmgG,GAAA,KAAG9nG,KAAK2H,GAAU,K,aCctB49K,GAAkB,eAClBC,GAA0B,uBAC1BC,GAAiC,8BACjCC,GAAuB,oBACvBC,GAA8B,2BAC9BC,GAA0B,sBAC1BC,GAA+B,IAC/BC,GAAWnzL,IAAUA,EACrB,GAAWgV,GAAY,gBAAOA,GAAU8F,KACxCs4K,GAAY,QAAiBllI,QAAQ,CACrC23C,iBAAkB,IAAMktF,GACxBxtF,eAAgB,WACZ,OAAO,OAAA3sG,EAAA,WAAOuF,KAAKC,WAAY,CAC3BunG,OAAQ,OACRC,SAAU,UAGlBd,mBAAoB,WAChB,OAAO,OAAAlsG,EAAA,WAAOuF,KAAKC,WAAY,CAC3B4sG,cAAe,EACfqoF,cAAc,EACdC,kBAAkB,EAClBC,MAAM,EACNnxI,gBAAgB,EAChB8iD,gBAAiB,CACbC,KAAM,YAEVquF,eAAe,EACfC,eAAe,EACfxuE,cAAe,SACfyuE,mBAAmB,EACnBC,kBAAkB,KAG1B/kF,qBAAsB,WAClB,OAAOzwG,KAAKC,WAAW0nB,OAAO,CAAC,CAC3B+oF,OAAQ,WACJ,MAAO,YAAc9G,GAAA,KAAQC,OAAOC,aAAeF,GAAA,KAAQyd,eAE/DvxG,QAAS,CACL2/B,mBAAmB,OAI/Bu1D,WAAY,WACR,OAAO4pF,IAEXhqF,aAAc,WACV,OAAOkqF,IAEX5tF,eAAgB,WACZ,OAAOlnG,KAAKy1L,iBAEhBrnF,cAAe,WACX,OAAOpuG,KAAKknG,iBAAiBlvC,SAASh4D,KAAK6jH,kBAE/C6xE,WAAY,WAIR,OAHK11L,KAAK21L,kBACN31L,KAAK21L,gBAAkB,eAAS31L,KAAKw8J,YAElCx8J,KAAK21L,iBAEhBC,qBAAsB,kBACX51L,KAAK21L,iBAEhBE,YAAa,WACT,OAAO71L,KAAK4Y,OAAO,SAAShf,QAEhCk8L,gBAAiB,SAAS10L,GACtB,IAAIgR,EAAQpS,KAAK61L,cAOjB,OANIz0L,EAAQ,IACRA,GAASgR,GAEThR,GAASgR,IACThR,GAASgR,GAENhR,GAEX20L,sBAAuB,WACnB,OAAO/1L,KAAK4Y,OAAO,eAAiB,EAAI,GAE5C+uF,MAAO,WACH3nG,KAAKC,SAASnB,MAAMkB,KAAME,WAC1B,IAAI2W,EAAW7W,KAAK6W,WACpBA,EAASsB,SAASs8K,IAClBz0L,KAAKw8J,UAAY,eAAE,SAASrkJ,SAASu8K,IACrC10L,KAAKw8J,UAAUpkJ,SAASvB,GACxB7W,KAAKy1L,gBAAkB,eAAE,SAASt9K,SAASw8K,IAC3C30L,KAAKy1L,gBAAgBr9K,SAASpY,KAAKw8J,WACnCx8J,KAAK4Y,OAAO,gBAAiB5Y,KAAK4Y,OAAO,SACzC5Y,KAAKg2L,kBAET3sF,YAAa,WACTrpG,KAAKi2L,eAAiB,GACtBj2L,KAAKC,WACL,IAAIi2L,EAAsBl2L,KAAKm2L,0BAC/Bn2L,KAAKo2L,uBAAuBF,EAAoB,KAEpDG,yBAA0B,SAASp6F,EAAOq6F,GACtCt2L,KAAKC,SAASg8F,EAAOq6F,GACjBt2L,KAAKi2L,gBACLj2L,KAAKi2L,eAAe5xH,OAAOiyH,EAAkB9xF,UAAW,IAGhE+xF,2BAA4B,SAASh1I,GACjCvhD,KAAKC,SAASnB,MAAMkB,KAAME,WACtBF,KAAKi2L,gBACLj2L,KAAKi2L,eAAe5xH,OAAO9iB,EAAOngD,MAAO,EAAG,OAGpDo1L,yBAA0B,SAASp1L,EAAOyvE,EAAUi6B,GAChD1pG,GAASpB,KAAK4Y,OAAO,UAAY,IAAIta,QAAQuyE,GAC7C7wE,KAAKC,SAASmB,EAAOyvE,EAAUi6B,IAEnCm6D,mBAAoB,SAAS51H,GACzB,IAAIonJ,EAAwB,IAAI,cAC5B9yL,EAAO3D,KACPC,EAAWD,KAAKC,SAChBmuD,EAAW,IAAI,cAOnB,OANAA,EAAS/vC,MAAK,WACV,IAAIsuF,EAAe1sG,EAASmW,KAAKzS,EAAM0rC,GACvConJ,EAAsB91K,QAAQgsF,MAElC3sG,KAAKi2L,eAAe5mJ,EAAKjuC,OAASgtD,EAClCpuD,KAAK4Y,OAAO,mBAAqBw1C,EAASztC,UACnC81K,EAAsBh1K,WAEjCqxF,QAAS,WACL9yG,KAAKC,WACL,eAAY,KACR,IAAIi2L,EAAsBl2L,KAAKm2L,0BAC/Bn2L,KAAK02L,aAAaR,EAAoB,OAG9CQ,aAAc,SAAS7pF,EAAe8pF,GAClC32L,KAAK42L,qBAAqB/pF,EAAe8pF,GACzC32L,KAAKo2L,uBAAuBvpF,EAAe8pF,IAE/CE,iBAAkB,WACd72L,KAAKC,SAASnB,MAAMkB,KAAME,WAC1B,IAAIg2L,EAAsBl2L,KAAKm2L,0BAC/Bn2L,KAAKo2L,uBAAuBF,EAAoB,KAEpDU,qBAAsB,SAAS/pF,EAAe8pF,GAC1C,IAAIlsF,EAAgBzqG,KAAKouG,gBACrB0oF,EAAe,eAAUH,IAAa32L,KAAK+2L,oBAAoBJ,EAAU9pF,QAAiB,EAC1FmqF,EAAgBvsF,EAAcjuF,GAAGqwF,GACrC0nF,GAAY0C,KAAKD,EAAe,GAC5B,eAAUL,IACVpC,GAAY0C,KAAKxsF,EAAcjuF,GAAGm6K,GAAW,IAAMG,EAAe,MAG1EV,uBAAwB,SAASvpF,EAAe8pF,GAC5C,IAAIlsF,EAAgBzqG,KAAKouG,gBACzB3D,EAAc03D,KAAK,SAAS39D,EAAW36F,GACnC,IAAIoyF,EAAQ,eAAEpyF,GACVqtL,EAAW1yF,IAAcqI,GAAiBrI,IAAcmyF,EACvDO,GACDl3L,KAAKm3L,oBAAoB3yF,GAE7BvI,EAAM1nC,YAAYsgI,GAA6BqC,GAC/Cl3L,KAAKsd,QAAQ,SAAU45K,QAAY,EAAQj7F,IAC7CzgF,KAAKxb,QAEXm3L,oBAAqB,SAAS/1L,GAC1B,IAAI66F,EAAQj8F,KAAKouG,gBAAgB5xF,GAAGpb,GAChCg2L,EAAiBn7F,EAAMnkF,KAAK9X,KAAKq3L,qBAAqBz9L,OAAS,EAC/D,eAAUwH,KAAWg2L,IACrBp3L,KAAKi2L,eAAe70L,GAAOuf,UAC3B,gBAAmBs7E,KAG3Bq7F,aAAc,SAASr7F,EAAOpyF,GAC1B7J,KAAKC,SAASg8F,EAAOpyF,GACrB7J,KAAKo2L,uBAAuBp2L,KAAK4Y,OAAO,mBAE5Cq0F,iBAAkB,OAClBsqF,iBAAkB,SAAShpF,EAAgBC,GACvC,IAAImoF,EAAWpoF,EAAe,GAC1BvZ,EAAYwZ,EAAiB,GACjC,GAAUhkD,SAASxqD,KAAKy1L,iBACxBz1L,KAAK02L,aAAa1hG,EAAW2hG,GAC7B,IAAIa,EAAqBx3L,KAAK+2L,oBAAoBJ,EAAU3hG,GAC5Dh1F,KAAKy3L,sBAAsBD,EAAqBx3L,KAAK01L,aAAc,WAC/DnB,GAAY0C,KAAKj3L,KAAKy1L,gBAAiB,GACvCz1L,KAAK02L,aAAaC,GAClB,eAAS32L,KAAKy1L,kBAChBj6K,KAAKxb,QAEXy3L,sBAAuB,SAAStyI,EAAUuyI,GACtC,IAAIhtI,EAAW1qD,KAAK4Y,OAAO,oBAAsBm8K,GAA+B,EAChF,GAAU4C,OAAO33L,KAAKy1L,gBAAiBtwI,EAAUuF,EAAUgtI,IAE/DX,oBAAqB,SAASJ,EAAU3hG,GACpC,IAAI4iG,EAAoB,GAAS53L,KAAKy1L,iBAClCoC,GAAmB7iG,EAAY2hG,GAAY32L,KAAK+1L,wBAA0B/1L,KAAK83L,kCAC/EC,EAAiB,IAAMH,EACvBI,EAAwBD,EAAiBH,EAAoBC,EACjE,OAAO,gBAAKG,IAEhB,yBACI,OAAQh4L,KAAK4Y,OAAO,iBAAmB5Y,KAAK61L,eAAiB,GAEjE,iBACI71L,KAAKiZ,iBAAiBjZ,KAAK6W,WAAY,GAAW,CAC9C89B,SAAU30C,KAAKi4L,yBACf50C,SAAS,EACTC,aAActjJ,KAAK01L,WAAWl6K,KAAKxb,MACnCgjJ,QAAS3zG,GAAQrvC,KAAK4yJ,mBAAmBvjH,EAAK2iB,OAC9CkxF,UAAW7zG,GAAQrvC,KAAK6yJ,oBAAoBxjH,EAAK2iB,OACjDlvB,MAAOuM,GAAQrvC,KAAK8yJ,iBAAiBzjH,EAAK2iB,UAGlD4gG,mBAAoB,SAAShvJ,GACzB,GAAU4mD,SAASxqD,KAAKy1L,iBACxB,IAAI5oF,EAAgB7sG,KAAK4Y,OAAO,iBAC5Bw8K,EAAOp1L,KAAK4Y,OAAO,QACnBs/K,EAAYl4L,KAAK61L,cAAgB,EACjCsC,EAAMn4L,KAAK4Y,OAAO,cACtBhV,EAAEovJ,cAAgBgiC,GAASI,IAAS+C,EAAMtrF,EAAgB,EAAIA,EAAgBqrF,IAC9Et0L,EAAEqvJ,eAAiB+hC,GAASI,IAAS+C,EAAMtrF,EAAgBqrF,EAAYrrF,EAAgB,IACvF7sG,KAAKo4L,gBAAkB,MAE3BvlC,oBAAqB,SAASjvJ,GAC1B,IAAIwY,EAASxY,EAAEwY,OACXi8K,EAAiB,gBAAKj8K,GAAUpc,KAAK+1L,wBAEzC,GADAxB,GAAY0C,KAAKj3L,KAAKy1L,gBAAiBr5K,EAASpc,KAAK01L,cACjD2C,IAAmBr4L,KAAKo4L,gBAAiB,CACzCp4L,KAAKo4L,gBAAkBC,EACvB,IAAIxrF,EAAgB7sG,KAAK4Y,OAAO,iBAC5B+9K,EAAW32L,KAAK81L,gBAAgBjpF,EAAgBwrF,GACpDr4L,KAAK02L,aAAa7pF,EAAe8pF,KAGzC7jC,iBAAkB,SAASlvJ,GACvB,IAAIwvJ,EAAexvJ,EAAEwvJ,aAAepzJ,KAAK+1L,wBACzC,GAAI3iC,EAAc,CACdpzJ,KAAK4Y,OAAO,gBAAiB5Y,KAAK81L,gBAAgB91L,KAAK4Y,OAAO,iBAAmBw6I,IACjF,IAAIklC,EAAmBt4L,KAAKu4L,eAAen6L,OAAO,qBAClD4B,KAAK4Y,OAAO,sBAAwB5Y,KAAK4Y,OAAO,iBAAkB,eAAiB0/K,SAEnFt4L,KAAKy3L,sBAAsB,EAAG,SAGtCK,gCAAiC,WAC7B,OAAO93L,KAAKw4L,kBAAoB,EAAI,GAExCrmF,WAAY,WACRnyG,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAKw4L,kBAAmB,GAE5B1mF,UAAW,SAASL,GAChB,IAAIgnF,EAAUz4L,KAAKC,SAASnB,MAAMkB,KAAME,WAExC,OADAF,KAAKw4L,iBAAmBC,EAAQ7qM,GAAG6jH,EAAO15F,QACnC0gL,GAEXzmF,UAAW,SAASP,GAChB,IAAIgnF,EAAUz4L,KAAKC,SAASnB,MAAMkB,KAAME,WAExC,OADAF,KAAKw4L,iBAAmBC,EAAQ7qM,GAAG6jH,EAAOlnC,SACnCkuH,GAEX5sE,kBAAmB,WACf7rH,KAAK41L,wBAETr0F,mBAAoB,SAAShnD,GACrBA,GACAv6C,KAAK6rH,qBAGb,4BACI,IAAIl3E,EAAW30C,KAAKi4L,yBACpB,GAAUt0F,YAAY3jG,KAAK6W,YAAY+B,OAAO,WAAY+7B,IAE9Du5D,eAAgB,SAAS7+D,GACrB,IAAIxtC,EAAQwtC,EAAKxtC,MACjB,OAAQwtC,EAAKztC,MACT,IAAK,OACD5B,KAAK4Y,OAAO,gBAAiB/W,GAC7B,MACJ,IAAK,mBACD,MACJ,IAAK,eACD7B,KAAK04L,4BACL,MACJ,IAAK,iBACD14L,KAAKszD,cACL,MACJ,IAAK,QACDtzD,KAAK04L,4BACL14L,KAAKC,SAASovC,GACd,MACJ,QACIrvC,KAAKC,SAASovC,OAI9B,eAAkB,cAAe4lJ,IAClB,UC5UX0D,GAAwB,qBACxBC,GAAc,WACdC,GAAW,QAAqB9oI,QAAQ,CACxC+oI,gBAAiB,WACb94L,KAAKC,WACLD,KAAK+4L,cAAc,QAAS/4L,KAAKg5L,aAAax9K,KAAKxb,QAEvDg5L,aAAc,SAASC,GAEnB,GADAj5L,KAAK8zD,UAAUkE,SAAS,IAAM4gI,IAAajgL,SACtCsgL,EAAL,CAGA,IAAIC,EAAS,eAAE,SAAS/gL,SAASwgL,IAAuBxgL,SAASygL,IAAar8L,KAAK08L,GACnFj5L,KAAK8zD,UAAU/5B,OAAOm/J,OAGf,MClBJC,GAAsB,mB,aCA1B,SAASC,GAAiB1hL,GAC7B,OAAOA,EAAQ4mD,YAAc5mD,EAAQ6mD,YCQlC,SAAS86H,GAAcC,EAAkBC,GAC5C,OAAO/nL,KAAKyrF,MAAMq8F,IAAqBC,EAEpC,SAASC,GAAe9hL,EAAS4hL,EAAkBC,GACtD,OAAO/nL,KAAKyrF,MAAMm8F,GAAiB1hL,GAAW4hL,IAAqBC,EC0CvE,IAAIE,GAAa,UACbC,GAAqB,kBACrBC,GAAuB,oBACvBC,GAAwB,qBACxBC,GAAyB,sBACzBC,GAAwB,qBACxBC,GAAkB,SAClBC,GAA2B,kBAC3BC,GAAwB,qBACxBC,GAA6B,0BAC7BC,GAA8B,2BAC9BC,GAAuB,cACvBC,GAAqB,YACrBC,GAAmB,cACnBC,GAAmB,cACnBC,GAAwB,IACxBC,GAA6B,EAC7BC,GAA0B,IAC1BC,GAAa,GACbC,GAAO,QAAiB7qI,QAAQ,CAChC23C,iBAAkB,IAAMqyF,GACxBpzF,mBAAoB,WAChB,OAAO,OAAAlsG,EAAA,WAAOuF,KAAKC,WAAY,CAC3B61C,mBAAmB,EACnB+kJ,gBAAgB,EAChBltI,iBAAiB,EACjBrF,kBAAkB,EAClBw+D,cAAe,SACfpzE,oBAAoB,EACpB6hJ,mBAAmB,EACnBD,eAAe,EACfD,eAAe,EACfpuF,cAAc,EACd6zF,UAAW,SAAS12L,GAChB,OAAOA,EAAOA,EAAK60L,WAAQ,GAE/BlyF,gBAAiB,CACbC,KAAM,UAIlByJ,qBAAsB,WAClB,IAAIorB,EAAY,iBAChB,OAAO77H,KAAKC,WAAW0nB,OAAO,CAAC,CAC3B+oF,OAAQ,WACJ,MAAO,YAAc9G,GAAA,KAAQC,OAAOC,YAExCh0F,QAAS,CACL+kL,gBAAgB,IAErB,CACCnqF,OAAQ,CACJ5G,WAAY,WAEhBh0F,QAAS,CACL63C,iBAAiB,IAEtB,CACC+iD,OAAQ,WACJ,MAAO,YAAc9G,GAAA,KAAQC,OAAOC,aAAeF,GAAA,KAAQyd,eAE/DvxG,QAAS,CACL2/B,mBAAmB,IAExB,CACCi7D,OAAQ,WACJ,OAAO,eAAWmrB,IAEtB/lH,QAAS,CACLmxF,cAAc,EACdquF,eAAe,OAI3B3tF,MAAO,WACH3nG,KAAKC,WACLD,KAAKsd,QAAQ,OAAQ,WACrBtd,KAAK6W,WAAWsB,SAASshL,IACzBz5L,KAAK+6L,iBACL/6L,KAAKg7L,kBACLh7L,KAAKi7L,qBAAuBT,IAEhC5yE,eAAgB,WACZ5nH,KAAKC,WACLD,KAAK6nH,iBAAiBC,oBAAoB,CACtCj+G,KAAM,IAAI,QAAiB,SAAS4L,EAAYrR,GACxC,eAAcA,GACdpE,KAAKk7L,4BAA4B92L,EAAMqR,GAEvCA,EAAWlZ,KAAK5C,OAAOyK,IAE3B,IAAI+2L,EAAe,gBAAkB/2L,EAAKy3C,MAC1Cs/I,GAAgBA,EAAa37F,UAAU/pF,GACvCA,EAAW2lL,UAAU,eAAE,UAAUjjL,SAASiiL,MAC5C5+K,KAAKxb,MAAO,CAAC,OAAQ,OAAQ,QAASA,KAAK4Y,OAAO,sCAG5DysJ,sBAAuB,SAAS3+C,EAAc20E,GAC1C,IACIxqH,SAAUA,EACV73D,UAAWA,EACX5X,MAAOA,GACPi6L,EAEJ,OADAr7L,KAAKs7L,mBAAmBl6L,GAAS,IAAI,cAC9BslH,EAAa3+G,OAAO,CACvBgB,MAAO8nE,EACP73D,UAAWA,EACX5X,MAAOA,EACPo/D,WAAY,IAAMxgE,KAAKs7L,mBAAmBl6L,GAAOuf,aAGzDqqF,WAAY,WACR,OAAO+uF,IAEX/sF,mBAAoB,WAChB,OAAOgtF,IAEXpvF,aAAc,WACV,OAAOyvF,IAEXhxF,YAAa,WACTrpG,KAAKs7L,mBAAqB,GAC1Bt7L,KAAKC,WACLD,KAAK4Y,OAAO,iBAAmB5Y,KAAKspG,mBACpCtpG,KAAK6W,WAAWsB,SAAS2hL,KAE7BhnF,QAAS,WACL9yG,KAAKC,WACLD,KAAKu7L,yBAET,wBACI,UAAKz8L,MAAMkB,KAAMA,KAAKs7L,oBAAoBj9K,KAAK,IAAMre,KAAKw7L,qBAE9DA,iBAAkB,WACd,IAAIC,EAAgB,CAAC9B,GAAsBR,GAAqBW,IAEhE,GADA95L,KAAK6W,WAAWwB,YAAYojL,EAAcz/L,KAAK,MAC3CgE,KAAK4Y,OAAO,qBAAuB5Y,KAAK07L,wBAAyB,CAC5D17L,KAAK8+F,cACN9+F,KAAK+9F,oBACL/9F,KAAK27L,qBAET,IAAI3+F,EAAah9F,KAAKk+F,gBAEtB,GADAlB,EAAW14B,SACPtkE,KAAK4Y,OAAO,cAAe,CAC3B,IAAIo6I,EAAgBomC,GAAiB,eAAEp5L,KAAKk+F,gBAAgBllF,aAAatb,IAAI,IAC7Es/F,EAAWt7B,SAAS,CAChB/kD,KAAMq2I,IAGdhzJ,KAAK47L,8BACL57L,KAAK67L,cAAc77L,KAAK4Y,OAAO,iBAE7B5Y,KAAK4Y,OAAO,qBAAuB5Y,KAAK07L,0BAC1C17L,KAAK87L,kBACD97L,KAAK+7L,sBAAwB/7L,KAAK07L,yBAClC17L,KAAK6W,WAAWsB,SAASwhL,IAE7B35L,KAAK6W,WAAWwB,YAAYwhL,IAAwB1hL,SAASghL,MAGrEuC,sBAAuB,WACnB,IAAIM,EAAgBh8L,KAAKqsH,sBAAsBrsH,KAAKi8L,oBAAoB,GACxE,OAAOD,EAAgB,EAAI,eAASh8L,KAAK6W,aAE7CklL,kBAAmB,WACf,IAAIG,EAAgBl8L,KAAKi8L,mBACrBzvE,EAAe,eAASxsH,KAAK6W,YAC7B61G,EAAa,GACjB,eAAKwvE,EAAe,CAACn9L,EAAG8K,KACpB6iH,EAAWzpH,KAAK,eAAc4G,GAAM,MAExC,IAAIsyL,EAAc3qL,KAAK1I,IAAIhK,MAAM,KAAM4tH,GACvC,OAAOyvE,EAAc3vE,EAAe0vE,EAActiM,QAEtDwiM,iBAAkB,WACTp8L,KAAKq8L,aAAgBr8L,KAAKs8L,eAG/Bt8L,KAAKq8L,YAAYxlL,WAAW8B,SAC5B3Y,KAAKs8L,aAAazlL,WAAW8B,SAC7B3Y,KAAKq8L,YAAc,KACnBr8L,KAAKs8L,aAAe,OAExBR,gBAAiB,WACR97L,KAAK8+F,cAGV9+F,KAAKw8J,UAAUpkJ,SAASpY,KAAK6W,YAC7B7W,KAAK8+F,YAAYjoF,WAAW8B,SAC5B3Y,KAAK8+F,YAAc,KACnB9+F,KAAKo8L,qBAET9yF,iBAAkB,WACdtpG,KAAKupG,WAAa,mBAEtBC,mBAAoB,SAAS3yF,EAAUhV,EAAO+B,GAE1C,GADA5D,KAAKC,SAASnB,MAAMkB,KAAME,WACrBF,KAAKupG,WAAV,CAGA,IAAI13C,EAAS,CACTn6C,QAASb,EACTm7C,MAAOpuD,GAEP/B,EACA7B,KAAKupG,WAAWE,SAAS53C,GAEzB7xD,KAAKupG,WAAWG,SAAS73C,KAGjCmpI,gBAAiB,WACT,aAAeh7L,KAAK4Y,OAAO,kBAC3B5Y,KAAK4Y,OAAO,iBAAiB,IAGrCmiL,eAAgB,WACZ/6L,KAAKw8J,UAAY,eAAE,SAASrkJ,SAASuhL,IACrC15L,KAAK6W,WAAWkjB,OAAO/5B,KAAKw8J,YAEhCt1D,eAAgB,WACZ,OAAOlnG,KAAKw8J,WAEhBz+D,kBAAmB,WACf,IAAIgK,EAAiB/nG,KAAK6W,WAAWukL,UAAU,eAAE,SAASjjL,SAASyhL,KAAwB5hI,WAC3Fh4D,KAAK8+F,YAAc9+F,KAAKiZ,iBAAiB8uF,EAAgB,QAAY,CACjEt9C,UAAW,aACXoD,cAAe,QACfmO,aAAa,EACblO,WAAW,EACXH,gBAAiB3tD,KAAK4Y,OAAO,mBAC7BimF,SAAU,KACN7+F,KAAK47L,iCAGb57L,KAAK6W,WAAWkjB,OAAO/5B,KAAK8+F,YAAYjoF,aAE5CglL,cAAe,SAAShrH,GACpB,GAAK7wE,KAAK8+F,YAAV,CAGA,IAAI7C,EAAQj8F,KAAKgqG,cAAcuyF,eAAe1rH,GAC9C7wE,KAAK8+F,YAAYoG,gBAAgBjJ,KAErC0/F,kBAAmB,WAEf,GADA37L,KAAK6W,WAAW09C,YAAYslI,GAAwB75L,KAAK4Y,OAAO,mBAC3D5Y,KAAK4Y,OAAO,kBAAjB,CAGA,IAAIyD,EAAarc,KAAK4Y,OAAO,cAC7B5Y,KAAKq8L,YAAcr8L,KAAKw8L,kBAAkB7B,GAAYt+K,EAAai+K,GAAmBC,IACtF,IAAIkC,EAAcz8L,KAAKq8L,YAAYxlL,WACnC4lL,EAAYtkL,SAAS+hL,IACrBl6L,KAAK6W,WAAW2kF,QAAQihG,GACxBz8L,KAAKs8L,aAAet8L,KAAKw8L,iBAAiB7B,GAAYt+K,EAAak+K,GAAmBD,IACtF,IAAIoC,EAAe18L,KAAKs8L,aAAazlL,WACrC6lL,EAAavkL,SAASgiL,IACtBn6L,KAAK6W,WAAWkjB,OAAO2iK,KAE3Bd,4BAA6B,WACzB,IAAI5+F,EAAah9F,KAAKk+F,gBACtBl+F,KAAKq8L,aAAer8L,KAAKq8L,YAAYzjL,OAAO,WAAYygL,GAAcr8F,EAAWx7B,aAAc,IAC/FxhE,KAAKs8L,cAAgBt8L,KAAKs8L,aAAa1jL,OAAO,WAAY4gL,GAAe,eAAEx8F,EAAWhkF,aAAatb,IAAI,GAAIs/F,EAAWx7B,aAAc,KAExIm7H,sBAAuB,SAASvgL,EAAQsuC,GACpC1qD,KAAK8+F,YAAYx6B,SACjBtkE,KAAK8+F,YAAY89F,SAASxgL,EAASsuC,IAEvC8xI,iBAAkB,SAASpgL,EAAQy/B,GAC/B,IAAIl4C,EAAO3D,KACP68L,EAAal5L,EAAKouD,eAAc,WAChCpuD,EAAKm5L,cAAgBvtD,aAAY,WAC7B5rI,EAAKg5L,sBAAsBvgL,EAAQq+K,MACnCA,OAEJsC,EAAgB,gBAAa/wJ,GAAA,KAAUpqC,KAAM,eAC7Co7L,EAAqB,gBAAa1iI,EAAA,KAAcu0E,GAAI,eACpDouD,EAAsB,gBAAa3iI,EAAA,KAAc4iI,IAAK,eACtDC,EAAYn9L,KAAKiZ,iBAAiB,eAAE,SAASd,SAAS8hL,IAAwB,cAAQ,CACtFxkJ,mBAAmB,EACnBoG,KAAMA,EACNC,QAAS,WACLn4C,EAAKg5L,sBAAsBvgL,EAAQ,IAEvC4+G,mBAAoB,KAEpBoiE,EAAaD,EAAUtmL,WAc3B,OAbA,OAAa/M,GAAGszL,EAAYL,EAAe,CACvC5iI,QAASugI,IACV,SAAS92L,GACRi5L,EAAW,CACP7qI,MAAOpuD,KAEb4X,KAAKxb,OACP,OAAa8J,GAAGszL,EAAYJ,GAAoB,WAC5Cr5L,EAAK05L,oBAET,OAAavzL,GAAGszL,EAAYH,GAAqB,WAC7Ct5L,EAAK05L,oBAEFF,GAEXE,eAAgB,WACRr9L,KAAK88L,eACLttD,cAAcxvI,KAAK88L,gBAG3BvF,iBAAkB,SAAShpF,GACvBvuG,KAAK8+F,aAAe9+F,KAAK8+F,YAAYoG,gBAAgBllG,KAAKu4L,eAAe/7K,GAAG+xF,EAAe,IAAK,CAC5F5xF,KAAM,EACNwgH,MAAO,KAGf57B,mBAAoB,SAAShnD,GACrBA,GACAv6C,KAAK6rH,qBAGbA,kBAAmB,WACf7rH,KAAKw7L,oBAET8B,mBAAoB,SAAS15L,GACrB,WAAa5D,KAAK4Y,OAAO,kBAAoB5Y,KAAKk1H,eAAetxH,EAAEy2D,gBAGvEr6D,KAAKC,SAAS2D,IAElBujG,OAAQ,WACJnnG,KAAKs7L,mBAAqB,GAC1Bt7L,KAAK87L,kBACL97L,KAAKC,YAETiuG,eAAgB,SAAS7+D,GACrB,OAAQA,EAAKztC,MACT,IAAK,eACL,IAAK,mBACL,IAAK,iBACD5B,KAAKszD,cACL,MACJ,IAAK,kBACDtzD,KAAK8+F,aAAe9+F,KAAK8+F,YAAYlmF,OAAOy2B,EAAKztC,KAAMytC,EAAKxtC,OAC5D,MACJ,IAAK,QACD7B,KAAKC,SAASovC,GACdrvC,KAAK6rH,oBACL,MACJ,IAAK,gBACD7rH,KAAKg7L,kBACLh7L,KAAKC,SAASovC,GACd,MACJ,IAAK,YACDrvC,KAAKszD,cACL,MACJ,QACItzD,KAAKC,SAASovC,KAG1B,4BACIrvC,KAAKC,WACLD,KAAKu7L,yBAET,yBAAyBt/F,EAAOq6F,GAC5Bt2L,KAAKC,SAASg8F,EAAOq6F,GACrBt2L,KAAKw7L,oBAET,gBACI,OAAOx7L,KAAK8+F,eAGpB87F,GAAK/rF,UAAY,GACjB,eAAkB,SAAU+rF,IACb,UCraA,MAAM,WAAqB,QACtC,kBAEI,OADA56L,KAAK+4L,cAAc,QAAS,QACrBryF,MAAMoyF,mBC2BrB,IAAIyE,GAAiB,cACjBC,GAAsB,mBACtBC,GAA2B,wBAC3B,GAAuB,cACvBC,GAAW,GAAU3tI,QAAQ,CAC7B42C,mBAAoB,WAChB,OAAO,OAAAlsG,EAAA,WAAOuF,KAAKC,WAAY,CAC3B09L,kBAAmB,QACnB7nJ,mBAAmB,EACnB+kJ,gBAAgB,EAChBltI,iBAAiB,EACjBrF,kBAAkB,EAClBs1I,aAAc,KACdC,YAAa,KACb34I,gBAAiB,KACjB41I,UAAW,SAAS12L,GAChB,OAAOA,EAAOA,EAAK60L,WAAQ,MAIvCxoF,qBAAsB,WAClB,OAAOzwG,KAAKC,WAAW0nB,OAAO,CAAC,CAC3B+oF,OAAQ,WACJ,MAAO,YAAc9G,GAAA,KAAQC,OAAOC,aAAeF,GAAA,KAAQyd,eAE/DvxG,QAAS,CACL2/B,mBAAmB,IAExB,CACCi7D,OAAQ,WACJ,OAAQ,YAEZ56F,QAAS,CACLo/K,cAAc,IAEnB,CACCxkF,OAAQ,CACJj+E,SAAU,WAEd3c,QAAS,CACLq/K,kBAAkB,OAI9BxtF,MAAO,WACH3nG,KAAKC,WACLD,KAAK6W,WAAWsB,SAASolL,IACzBv9L,KAAKsd,QAAQ,OAAQ,aAEzB+rF,YAAa,WACTrpG,KAAKC,WACLD,KAAK89L,sBACL99L,KAAK+9L,iBAETn2E,eAAgB,WACZ5nH,KAAKC,WACLD,KAAK6nH,iBAAiBC,oBAAoB,CACtCtoE,MAAO,IAAI,SAAiB,SAAU/pC,EAAYrR,GAC9C,GAAI,eAAcA,GAAO,CACrB,IAAI+2L,EAAe,gBAAkB/2L,EAAKy3C,MACtCs/I,GACA1lL,EAAWskB,OAAOohK,GAElB,eAAU/2L,EAAKo7C,SAAW,eAAcp7C,EAAKo7C,QAC7C/pC,EAAWskB,OAAO,aAAWiF,eAAe56B,EAAKo7C,aAE9C,eAAUp7C,IACjBqR,EAAWlZ,KAAK5C,OAAOyK,IAE3BqR,EAAW2lL,UAAU,eAAE,UAAUjjL,SAAS,OAC1C,CAAC,QAAS,QAASnY,KAAK4Y,OAAO,sCAG3CklL,oBAAqB,WACjB99L,KAAKg+L,0BACLh+L,KAAKi+L,yBACLj+L,KAAKk+L,8BAETF,wBAAyB,WACrBh+L,KAAKm+L,kBAAoBn+L,KAAKiyD,sBAAsB,iBAExDgsI,uBAAwB,WACpBj+L,KAAKo+L,iBAAmBp+L,KAAKiyD,sBAAsB,gBAEvDisI,2BAA4B,WACxBl+L,KAAKq+L,qBAAuBr+L,KAAKiyD,sBAAsB,oBAE3D+sC,eAAgB,WACZ,IAAIr7F,EAAO3D,KACXA,KAAKC,WACDD,KAAK4Y,OAAO,mCACZ5Y,KAAKs+L,kBAAoB5+J,YAAW,WAChC/7B,EAAK46L,kBACL,KAGZR,cAAe,WACX,GAAI/9L,KAAKw+L,MACLx+L,KAAKu+L,oBADT,CAIA,IAAI1nL,EAAW7W,KAAK6W,WACpB7W,KAAKy+L,eAAiB,eAAE,SAAStmL,SAASqlL,IAAqBplL,SAASvB,GACxE,IAAI6nL,EAAQ,eAAE,SAAStmL,SAASpY,KAAKy+L,gBACrCz+L,KAAKw+L,MAAQx+L,KAAKiZ,iBAAiBylL,EAAO,GAAM1+L,KAAK2+L,cACrD3+L,KAAK4+L,YAAc,eAAE,SAASzmL,SAASslL,IAA0BrlL,SAASvB,GAC1E7W,KAAK4+L,YAAY7kK,OAAO/5B,KAAKw8J,WAC7Bx8J,KAAKu+L,kBAETA,cAAe,WACX,GAAI,iBAAa,CACb,IAAIM,EAAa,eAAe7+L,KAAKy+L,gBACrCz+L,KAAK4+L,YAAYniL,IAAI,CACjBu3C,WAAY6qI,EACZ1iF,WAAY0iF,MAIxBxsF,yBAA0B,WACtB,GAAKryG,KAAKw+L,MAAV,CAGA,IAAIM,EAAO9+L,KAAKw+L,MACZO,EAAWD,EAAKvG,eAChByG,EAAa,eAAED,EAASD,EAAKlmL,OAAO,mBACpC9pB,EAAKkR,KAAKi/L,mBACdj/L,KAAKsd,QAAQ,gBAAY,EAAQ,eAAEyhL,IACnC/+L,KAAKsd,QAAQ,WAAYxuB,EAAIkwM,KAEjCL,WAAY,WACR,MAAO,CACHrJ,eAAe,EACf7/I,kBAAmBz1C,KAAK4Y,OAAO,qBAC/Bk9B,kBAAmB91C,KAAK4Y,OAAO,qBAC/BsgC,mBAAoBl5C,KAAK4Y,OAAO,sBAChCwhC,SAAUp6C,KAAK4Y,OAAO,YACtBi0F,cAAe7sG,KAAK4Y,OAAO,iBAC3BkiL,UAAW96L,KAAK4Y,OAAO,aACvB83D,YAAa1wE,KAAKm+L,kBAAkB3iL,KAAKxb,MACzC2kK,WAAY3kK,KAAKo+L,iBAAiB5iL,KAAKxb,MACvC0kK,gBAAiB1kK,KAAK4Y,OAAO,mBAC7BigC,mBAAoB,SAASj1C,GACzB5D,KAAK4Y,OAAO,gBAAiBhV,EAAEgO,UAAUgH,OAAO,kBAChD5Y,KAAKqyG,4BACP72F,KAAKxb,MACPknH,eAAgBlnH,KAAKq+L,qBAAqB7iL,KAAKxb,MAC/C0mH,aAAc1mH,KAAK4qH,qBAAqB,qBACxCrgH,MAAOvK,KAAK4Y,OAAO,SACnBu9B,WAAY,KACZmS,iBAAkBtoD,KAAK4Y,OAAO,oBAC9B+0C,gBAAiB3tD,KAAK4Y,OAAO,mBAC7BiiL,eAAgB76L,KAAK4Y,OAAO,kBAC5BsmL,qBAAsB,cACtB7J,cAAer1L,KAAK4Y,OAAO,QAC3B28K,mBAAmB,EACnB39I,gBAAiB,SAASvI,GACtB,GAAI,mBAAqBA,EAAKztC,KAC1B,GAAIytC,EAAKxtC,MAAO,CACZ,IAAIs9L,EAAS,eAAE9vJ,EAAKxtC,OAChBu9L,EAAWp/L,KAAKouG,gBAAgB5xF,GAAG2iL,EAAO/9L,SAC9CpB,KAAK4Y,OAAO,iBAAkB,eAAiBwmL,SAE/Cp/L,KAAK4Y,OAAO,iBAAkBy2B,EAAKxtC,QAG7C2Z,KAAKxb,MACPyjD,UAAW,SAASpU,GAChBrvC,KAAKw3I,gBAAgBnoG,EAAK2iB,QAC5Bx2C,KAAKxb,MACP0jD,WAAY,SAASrU,GACZrvC,KAAKq/L,6BACNr/L,KAAK+3I,iBAAiB1oG,EAAK2iB,QAEjCx2C,KAAKxb,QAGf4oJ,mBAAoB,WAChB5oJ,KAAKmzG,eAAezhD,KAAK,YAAa,IAE1C4tI,kBAAmB,SAAS17L,EAAGma,GAC3B/d,KAAKC,SAAS2D,EAAGma,GACbna,EAAEsS,SAAWlW,KAAKw+L,MAAMrrF,eAAez1G,IAAI,IAC3CsC,KAAKu/L,kBAAkBxhL,EAAW/d,KAAKmzG,iBAG/C4kC,iBAAkB,SAASn0I,GACvB5D,KAAKq/L,6BAA8B,EACnCr/L,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAKw+L,MAAMzmD,iBAAiBn0I,GAC5B5D,KAAKq/L,6BAA8B,GAEvCG,eAAgB,SAAS59L,EAAMC,GACvB7B,KAAKw+L,OACLx+L,KAAKw+L,MAAM5lL,OAAOhX,EAAMC,IAGhC0/F,mBAAoB,SAAShnD,GACrBA,IACAv6C,KAAKw+L,MAAM3yE,oBACX7rH,KAAKu+L,kBAGbpmC,mBAAoB,SAASr9J,EAAKu5G,GAC9Br0G,KAAKC,SAASnF,EAAKu5G,GACfr0G,KAAKw+L,OACLx+L,KAAKw+L,MAAMrmC,mBAAmBr9J,EAAKu5G,IAG3CkZ,QAAS,WACLvtH,KAAKC,WACLD,KAAKw+L,MAAMjxE,WAEfrf,eAAgB,SAAS7+D,GACrB,IAAIztC,EAAOytC,EAAKztC,KACZC,EAAQwtC,EAAKxtC,MACb26E,EAAWntC,EAAKmtC,SACpB,OAAQ56E,GACJ,IAAK,aACD5B,KAAKC,SAASovC,GACd,MACJ,IAAK,QACDrvC,KAAKw/L,eAAe59L,EAAM5B,KAAK4Y,OAAOhX,IACtC5B,KAAKu+L,gBACAv+L,KAAK4Y,OAAO,uBACb5Y,KAAKw+L,MAAMjxE,UAEfvtH,KAAKC,SAASovC,GACd,MACJ,IAAK,QACDrvC,KAAKC,SAASovC,GACdrvC,KAAKw+L,MAAMjxE,UACX,MACJ,IAAK,gBACL,IAAK,eAGD,GAFAvtH,KAAKw/L,eAAehjH,EAAU36E,GAC9B7B,KAAKC,SAASovC,IACV,IAASrvC,KAAK4Y,OAAO,qBAAsB,CAC3C,IAAIi0F,EAAgB7sG,KAAK4Y,OAAO,iBAC5B6mL,EAAqBz/L,KAAKouG,gBAAgB5xF,GAAGqwF,GACjD7sG,KAAK4Y,OAAO,iBAAkB,eAAiB6mL,IAEnD,MACJ,IAAK,kBACL,IAAK,oBACL,IAAK,oBACDz/L,KAAKw/L,eAAehjH,EAAU36E,GAC9B7B,KAAKC,SAASovC,GACd,MACJ,IAAK,mBACL,IAAK,kBACL,IAAK,iBACDrvC,KAAKw/L,eAAehjH,EAAU36E,GAC9B,MACJ,IAAK,iBACD,IAAI/S,EAAK+S,EAAQ,eAAEA,GAAOT,QAAUS,EAChC2zF,EAAU3zF,EAAQ7B,KAAKw+L,MAAMpwF,gBAAgB5xF,GAAG1tB,GAAM+S,EAC1D7B,KAAKw/L,eAAe,iBAAkB,eAAiBhqG,IACvDx1F,KAAKC,SAASovC,GACd,MACJ,IAAK,oBACDrvC,KAAKw/L,eAAe,eAAgBx/L,KAAK4qH,qBAAqB,sBAC9D,MACJ,IAAK,eACD5qH,KAAKg+L,0BACLh+L,KAAKw/L,eAAe,cAAex/L,KAAKm+L,kBAAkB3iL,KAAKxb,OAC/D,MACJ,IAAK,cACDA,KAAKi+L,yBACLj+L,KAAKw/L,eAAe,aAAcx/L,KAAKo+L,iBAAiB5iL,KAAKxb,OAC7D,MACJ,IAAK,kBACDA,KAAKk+L,6BACLl+L,KAAKw/L,eAAe,iBAAkBx/L,KAAKq+L,qBAAqB7iL,KAAKxb,OACrE,MACJ,IAAK,OACDA,KAAKw/L,eAAe,gBAAiB39L,GACrC,MACJ,IAAK,YACD7B,KAAKszD,cACL,MACJ,QACItzD,KAAKC,SAASovC,KAG1B83D,OAAQ,WACJ/sC,aAAap6D,KAAKs+L,mBAClBt+L,KAAKC,cAGby9L,GAAS7uF,UAAY,GACrB,eAAkB,aAAc6uF,IACjB,UCpUA,MAAM,GACjB,YAAY5nL,GACR9V,KAAKohK,SAAWtrJ,EAChB9V,KAAK0/L,kBAAoB1/L,KAAKohK,SAASyyB,iBAE3C,eACI,OAAO7zL,KAAK0/L,kBAAkBC,yBAAyB3/L,KAAKohK,SAASv3J,MAEzE,oBACI,OAAO7J,KAAK0/L,kBAAkBE,wBAAwB5/L,KAAKohK,SAASv3J,MAExE,mBACI,OAAO7J,KAAK0/L,kBAAkBG,uBAAuB7/L,KAAKohK,SAASv3J,MAEvE,aACI,OAAMo7I,YCVP,IAAI66C,GAAwB,CAAC1+L,EAAO2+L,IAAW,GAAGp4K,OAAOo4K,EAAS,OAAS,QAAS,KAAKp4K,OAAOvmB,EAAO,KACnG4+L,GAAc,CAACr/D,EAAOC,IACzB,eAAUD,IAAU,eAAUC,GACvB,GAAGj5G,OAAOg5G,EAAO,KAAKh5G,OAAOi5G,GAEjCD,GAASC,EAETq/D,GAAuB1jM,GAAQA,EAAOA,EAAKpB,QAAQ,MAAO,SAAM,EAChE+kM,GAA2C,CAACr2L,EAAMstE,MACrDttE,IACOA,EAAKwR,YAAc87D,GAAattE,EAAKjI,OAASu1E,GAAa8oH,GAAqBp2L,EAAK21C,SAAW23B,GAAa,UAAYttE,EAAKs/C,UAAY82I,GAAqBp2L,EAAKqB,WAAaisE,GAIrLgpH,GAAoB,CAACnmH,EAAM/+B,IAAe,GAAGtzB,OAAOqyD,EAAM,KAAKryD,OAAOszB,GACtEmlJ,GAA4B5jH,IACnC,IAAIr+E,EAAQq+E,EAAS3gF,MAAM,KAC3B,OAAOsC,EAAMA,EAAMvE,OAAS,GAAGuB,QAAQ,SAAU,KAE1CklM,GAAgBC,IAGvB,IAFA,IAAIC,EAAYD,EAASzkM,MAAM,KAC3B2kM,EAAkB,IAAID,GACjB9kM,EAAI8kM,EAAU3mM,OAAS,EAAG6B,GAAK,EAAGA,IAAK,CAC5C,GAAIglM,GAAuBF,EAAU9kM,IACjC,OAAO+kM,EAAgBxkM,KAAK,KAEhCwkM,EAAgBn8H,OAAO5oE,EAAG,GAE9B,MAAO,IAEAglM,GAAyBH,GAAYA,EAAShiM,QAAQ,SAAW,EACjEoiM,GAAc,CAACn2L,EAAOV,EAAMk2L,KACnC,IAAI3+L,EAAQmJ,EAAMjM,QAAQuL,GAC1B,GAAIzI,GAAS,EACT,OAAO0+L,GAAsB1+L,EAAO2+L,GAExC,IAAK,IAAItkM,EAAI,EAAGA,EAAI8O,EAAM3Q,OAAQ6B,IAAK,CACnC,IAAI44L,EAAa9pL,EAAM9O,GACnBklM,EAAkBtM,EAAWyK,MAAQzK,EAAW9pL,MACpD,GAAIo2L,EAAiB,CACjB,IAAIC,EAAWF,GAAYC,EAAiB92L,EAAMwqL,EAAWyK,MAC7D,GAAI8B,EACA,OAAOZ,GAAYF,GAAsBrkM,EAAGskM,GAASa,MAK9D,SAASC,GAA8B1wL,GAC1C,IACI6wC,KAAMA,EACN8/I,aAAcA,EACdC,YAAaA,EACbx2L,MAAOA,EACPo+C,gBAAiBA,EACjBq4I,6BAA8BA,EAC9Bh5I,mBAAoBA,EACpBvR,eAAgBA,EAChBG,YAAaA,EACbqqJ,oBAAqBA,GACrB9wL,EACA+wL,EAAc,CACdlgJ,KAAMA,EACNz2C,MAAOA,EACPu2L,aAAcA,EACdn4I,gBAAiBA,EACjBX,mBAAoBA,EACpBvR,eAAgBA,EAChBG,YAAaA,EACbqqJ,oBAAqBA,EACrBE,mBAAoBJ,EAAYz4I,iBAAmBw4I,OAAe,EAClEx4I,iBAAkBy4I,EAAYz4I,iBAC9BG,iBAAkBs4I,EAAYt4I,iBAC9BD,iBAAkBu4I,EAAYv4I,iBAC9BL,aAAc44I,EAAY54I,aAC1BF,aAAc84I,EAAY94I,aAC1BG,gBAAiB24I,EAAY34I,gBAC7BC,cAAe04I,EAAY14I,cAC3B+4I,WAAYL,EAAYp5I,SACxBC,cAAem5I,EAAYn5I,cAC3BF,cAAeq5I,EAAYr5I,cAC3BI,YAAai5I,EAAYj5I,YACzBS,oBAAqBw4I,EAAYx4I,oBACjCR,iBAAkBg5I,EAAYh5I,iBAC9BF,UAAWk5I,EAAYl5I,WAEvB5oD,EAAS,OAAAxE,EAAA,WAAOymM,EAAa,CAC7BG,OAAQL,EAA6BK,OACrC75I,SAAUw5I,EAA6Bx5I,SACvCF,gBAAiB05I,EAA6B15I,gBAC9Cg6I,aAAcN,EAA6BM,aAC3C75I,iBAAkBu5I,EAA6Bv5I,iBAC/C85I,gBAAiBP,EAA6BO,gBAC9Cl2L,MAAO21L,EAA6B31L,QAExC,OAAOpM,EC1FX,MAAM,WAAqC,GACvC,aACI,IACI4C,MAAOA,GACP7B,KAAKohK,SACLhzJ,EAAWpO,KAAKwhM,eACpB,QAAIpzL,IACAA,EAASwK,OAAO/W,IACT,IAKnB,MAAM,WAAkC,GACpC,aACI,IAAI4/L,EAAWzhM,KAAKwhM,eACpB,GAAIC,EAAU,CACV,IACIxmJ,WAAYA,EACZpxC,KAAMA,EACNhI,MAAOA,GACP7B,KAAKohK,SACL58D,EAAYxkG,KAAK0/L,kBAAkBgC,oBAAoB73L,GAC3D,GAAI26F,GAAa,EAEb,OADAi9F,EAAS7oL,OAAOunL,GAAkB,SAASx4K,OAAO68E,EAAW,KAAMvpD,GAAap5C,IACzE,EAGf,OAAO,GAGf,MAAM,WAAwC,GAC1C,aACI,OAAO,GAGf,MAAM,WAAuC,GACzC,aACI,IAAI8/L,EAAe3hM,KAAK4hM,mBACxB,QAAI,MAAQD,IAAgBA,EAAaE,4BAA6BF,EAAaG,+BAC/EH,EAAaE,0BAA0B7hM,KAAKohK,SAASv3J,KAAKkyC,UAC1D4lJ,EAAaG,+BACN,IAKnB,MAAM,WAAmC,GACrC,aACI,IAAIL,EAAWzhM,KAAKwhM,eACpB,GAAIC,EAAU,CACV,IACI5/L,MAAOA,GACP7B,KAAKohK,SAET,OADAqgC,EAAS7oL,OAAO,aAAc/W,IACvB,EAEX,OAAO,GAGf,MAAM,WAAwC,GAC1C,aACI,IACIgI,KAAMA,GACN7J,KAAKohK,SACLhzJ,EAAWpO,KAAKwhM,eAChBO,EAAY3zL,GAAY,eAAKA,EAASyI,WAAW,GAAI,eACzD,GAAIkrL,GAAal4L,EAAM,CACnB,IAAIm4L,EAAiBn4L,GAAQ,aAAeA,EAAKpL,KAC7CwjM,GAAuBF,EAAUnpL,OAAO,oBAAsB,IAAIgG,KAAKojL,GACvEE,GAAuBr4L,EAAK00C,iBAAmB,IAAI3/B,KAAKojL,GAC5D,IAAKC,IAAwBC,GAAuBD,GAAuBC,EAEvE,OADAH,EAAUnpL,OAAO,kBAAmB/O,EAAK00C,kBAClC,EAGf,OAAO,GAGf,MAAM,WAAiC,GACnC,aACI,IAAIwpD,EAAiB/nG,KAAKmiM,qBAEtB5lH,cAAeA,EACf16E,MAAOA,GACP7B,KAAKohK,SACT,QAAIr5D,IACAA,EAAe1vF,YAAYkkE,GAAepkE,SAAStW,IAC5C,IAKnB,IAAIugM,GAA4B,CAACnnJ,EAAYonJ,KACzC,OAAQpnJ,GACJ,IAAK,gBACL,IAAK,gBACD,OAAO,IAAI,GAA6BonJ,GAC5C,IAAK,kBACD,OAAO,IAAI,GAAgCA,GAC/C,IAAK,WACD,OAAO,IAAI,GAAyBA,GACxC,IAAK,QACL,IAAK,WACL,IAAK,OACL,IAAK,cACL,IAAK,QACD,OAAO,IAAI,GAA0B,OAAA5nM,EAAA,WAAO4nM,EAAmB,CAC3DpnJ,WAAYA,KAEpB,IAAK,OACD,OAAO,IAAI,GAA2BonJ,GAC1C,IAAK,WACD,IAAIC,EAAuBC,EAAwBC,EAC/Cr5I,EAAW,QAAUm5I,EAAwB,OAASD,QAAqB,IAAWA,GAA6B,QAAUE,EAAyBF,EAAkBx4L,YAAS,IAAW04L,OAAlF,EAAoHA,EAAuBp5I,gBAAa,IAAWm5I,EAAwBA,EAAwB,QAAUE,EAAyBH,EAAkBxO,iBAAiBgM,uBAAuB,OAASwC,QAAqB,IAAWA,OAAoB,EAASA,EAAkBx4L,aAAU,IAAW24L,OAAyB,EAASA,EAAuBr5I,SACpkB,MAAI,WAAaA,EACN,IAAI,GAAgCk5I,GACpC,UAAYl5I,EACZ,IAAI,GAA+Bk5I,GAEvC,IAAI,GAA0B,OAAA5nM,EAAA,WAAO4nM,EAAmB,CAC3DpnJ,WAAYA,KAEpB,QACI,OAAO,OAGJ,MCrHX,GAAS,iBAWTwnJ,GAAuB,mBACvBC,GAA2BD,GAAuB,WAClD,GAAiB,cACjB,GAAoB,gBACpBE,GAAkB,KAClBC,GAAgB,QAAiB7yI,QAAQ,CACzC42C,mBAAoB,WAChB,OAAO,OAAAlsG,EAAA,WAAOuF,KAAKC,WAAY,CAC3B8hE,KAAM,GACN8gI,KAAM,GACNx6I,cAAe,KACfy6I,mBAAoB,GACpBjmL,OAAQ,OACRxR,MAAO,OACPqoC,oBAAoB,EACpB+B,mBAAmB,EACnBquH,wBAAoB,EACpBy9B,gBAAiB,KACjBwB,yBAAqB,EACrBh/B,qBAAiB,KAGzBp8D,MAAO,WACE3nG,KAAK4Y,OAAO,kBACb5Y,KAAKohK,SAAS0jB,OAAO,gBAAiB,QAE1C9kL,KAAKC,WACLD,KAAKgjM,4BAETA,yBAA0B,WACtBhjM,KAAKijM,qBAAuBjjM,KAAKiyD,sBAAsB,kBAAmB,CACtEgT,kBAAmB,CAAC,WAAY,eAGxC+lC,WAAY,WACR,OAAO,IAEXJ,aAAc,WACV,OAAO,IAEXvB,YAAa,WACTrpG,KAAKC,WACLD,KAAK6W,WAAWsB,SAASsqL,IACzBziM,KAAKkjM,kBAETA,eAAgB,WACZ9oI,aAAap6D,KAAK6kK,cAClB7kK,KAAK6kK,aAAenlI,WAAW,WACvB1/B,KAAKmjM,QACL,OAAat/B,eAAe7jK,KAAKmjM,OAAQ,aAE/C3nL,KAAKxb,QAEXkrG,aAAc,WACVlrG,KAAKojM,iBACLpjM,KAAKqjM,aAAerjM,KAAKsjM,iBACzBtjM,KAAKujM,eACLvjM,KAAKwjM,eACLxjM,KAAKyjM,eACLzjM,KAAK0jM,mBAETx6E,mBAAoB,SAASr/G,GACzB,IAAIoyF,EAAQj8F,KAAK6kH,uBAAuBh7G,GACnCoyF,EAAMriG,SAGXoG,KAAKs3L,aAAar7F,EAAOpyF,GACzB7J,KAAK2jM,0BACL3jM,KAAKu9F,SAAQ,KAEjB6lG,eAAgB,WACZ,IAAIQ,EAAgB5jM,KAAK6jM,oBACzB7jM,KAAK8jM,yBACL9jM,KAAK6W,WAAWsB,SAASuqL,GAA2BkB,GACpD5jM,KAAK4Y,OAAO,sBAAuBgrL,IAEvCE,uBAAwB,WACpB,IAAIf,EAAsB/iM,KAAK4Y,OAAO,uBACtCmqL,GAAuB/iM,KAAK6W,WAAWwB,YAAYqqL,GAA2BK,IAElFQ,aAAc,WACV,IAAIQ,EAAO/jM,KAAKgkM,MAAQ,GACxBhkM,KAAKikM,sBACL,eAAKjkM,KAAKkkM,MAAO,WACb,IAAIhnL,EAAM,GACV6mL,EAAK9gM,KAAKia,GACV,eAAKld,KAAKmkM,MAAO,WACbjnL,EAAIja,KAAKjD,KAAKokM,qBAChB5oL,KAAKxb,QACTwb,KAAKxb,QAEXqkM,oBAAqB,WACjB,IAAItiI,EAAO/hE,KAAK4Y,OAAO,QACnB0rL,EAAoBtkM,KAAKqjM,aAAazpM,OAC1C,GAAImoE,EAAKnoE,OAAQ,CAGb,IAFA,IAAI2qM,EAAevkM,KAAKwkM,gBAAgBziI,GACpC9iE,EAAS,GACJxD,EAAI,EAAGA,EAAI6oM,EAAmB7oM,IAAK,CACxC,IAAIgpM,EAAazkM,KAAK0kM,qBAClBjpM,EAAI8oM,EAAa3qM,QAAU,eAAU2qM,EAAa9oM,GAAGymK,UACrDuiC,EAAWviC,OAASqiC,EAAa9oM,GAAGymK,QAExCjjK,EAAOgE,KAAKwhM,GAEhB,OAAOxlM,EAEP,OAAOe,KAAK0kM,mBAAmBJ,IAGvCL,oBAAqB,WACbjkM,KAAK2kM,yBACL3kM,KAAK4kM,kCACL5kM,KAAKkkM,MAAQlkM,KAAKqkM,sBAClBrkM,KAAKmkM,MAAQnkM,KAAK0kM,mBAAmB,KAErC1kM,KAAKkkM,MAAQlkM,KAAK6kM,eAAe7kM,KAAK4Y,OAAO,SAC7C5Y,KAAKmkM,MAAQnkM,KAAK6kM,eAAe7kM,KAAK4Y,OAAO,WAGrD+rL,sBAAuB,WACnB,OAAO3kM,KAAK8kM,gBAAgBhhL,KAAK9jB,KAAK4Y,OAAO,yBAA2B5Y,KAAK4Y,OAAO,QAAQhf,SAAWoG,KAAK4Y,OAAO,QAAQhf,QAE/HgrM,gCAAiC,WAC7B5kM,KAAKqjM,aAAavhM,MAAK,SAAUqzF,EAAOC,GACpC,OAAOD,EAAMnqC,SAAS9tC,IAAMk4E,EAAMpqC,SAAS9tC,KAAOi4E,EAAMnqC,SAASkU,IAAMk2B,EAAMpqC,SAASkU,OAE1F,eAAKl/D,KAAKqjM,cAAc,SAAUjiM,EAAOyI,GACrC,OAAApP,EAAA,WAAOoP,EAAKmhD,SAAU,CAClB9tC,IAAK9b,EACL89D,IAAK,EACLyP,QAAS,EACTpS,QAAS,QAIrBsoI,eAAgB,SAASE,GACrB,OAAO,eAAI/kM,KAAKwkM,gBAAgBO,GAAc,SAASN,GACnD,OAAO,OAAAhqM,EAAA,WAAOuF,KAAK0kM,qBAAsBD,IAC3CjpL,KAAKxb,QAEXglM,yBAA0B,WACtB,MAAO,CACHzkF,MAAO,EACP0hD,SAAU,EACVD,QAAS,EACTD,QAAS,IAGjB2iC,mBAAoB,SAASjrK,GACzB,IAAIwrK,EAAoBjlM,KAAKglM,2BAC7B,IAAK9kM,UAAUtG,OACX,OAAOqrM,EAGX,IADA,IAAIhmM,EAAS,GACJxD,EAAI,EAAGA,EAAIg+B,EAAMh+B,IACtBwD,EAAOgE,KAAKgiM,GAEhB,OAAOhmM,GAEXulM,gBAAiB,SAASj6L,GACtB,IAAI26L,EAAellM,KAAK8kM,gBACxB,OAAO,eAAKv6L,GAAO,SAAUV,GACzB,OAAQA,EAAKs7L,QAAUD,EAAaphL,KAAKja,EAAKs7L,YAGtDL,cAAe,WACX,IAAIK,EAASnlM,KAAK6jM,oBAClB,OAAO,IAAIv6K,OAAO,UAAY67K,EAAS,UAAW,MAEtDtB,kBAAmB,WACf,IAAIx4L,EAAQrL,KAAKolM,eACjB,OAAOplM,KAAK4Y,OAAO,gBAAZ5Y,CAA6BqL,IAExC+5L,aAAc,WACV,OAAO,iBAAc,eAAS,IAAUzC,IAE5CyB,iBAAkB,WACd,MAAO,CACHv6L,KAAM,GACNmhD,SAAU,CACNuR,QAAS,EACToS,QAAS,KAIrB60H,aAAc,WACV,eAAKxjM,KAAKqjM,aAAc,SAAStkM,EAAGsmM,GAChC,IAAIr6I,EAAWq6I,EAASr6I,UAAY,GAChCs6I,EAAUt6I,EAASkU,IACnBqmI,EAAUv6I,EAAS9tC,IACnBA,EAAMld,KAAKgkM,MAAMuB,GACjBC,EAAWtoL,GAAOA,EAAIooL,GAC1BtlM,KAAKylM,aAAaD,EAAUH,IAC9B7pL,KAAKxb,QAEXsjM,eAAgB,WACZ,OAAOtjM,KAAK4Y,OAAO,SAASsP,OAAO,CAACjpB,EAAQ4K,KACxC,IAAI67L,EAAY77L,EAAKmhD,UAAY,GAWjC,OAVA06I,EAAY,eAAcA,GAAa,CAACA,GAAaA,EACrD1lM,KAAKwkM,gBAAgBkB,GAAWxkM,QAAQ8pD,IACpC/rD,EAAOgE,KAAK,CACR4G,KAAMA,EACNmhD,SAAU,OAAAvwD,EAAA,WAAO,CACbk0E,QAAS,EACTpS,QAAS,GACVvR,OAGJ/rD,GACR,KAEPwmM,aAAc,SAASD,EAAUH,GACxBG,IAAYxlM,KAAK2lM,oBAAoBH,EAAUH,KAGpD,OAAA5qM,EAAA,WAAO+qM,EAAUH,GACjBrlM,KAAK4lM,kBAAkBJ,KAE3BG,oBAAqB,SAASH,EAAUH,GACpC,IAAK,eAAcG,EAAS37L,MACxB,OAAO,EAEX,IAAI5K,GAAS,EAIb,OAHAe,KAAK6lM,kBAAkBR,EAASr6I,UAAU,SAAUgQ,GAChD/7D,EAASA,IAAW,eAAc+7D,EAAKnxD,SAEpC5K,GAEX4mM,kBAAmB,SAAS76I,EAAUhiD,GAClC,IAAI88L,EAAS96I,EAAS9tC,IAAM8tC,EAAS2jB,QAAU,EAC3Co3H,EAAS/6I,EAASkU,IAAMlU,EAASuR,QAAU,EAC3CypI,EAAcx0L,KAAK3I,IAAIi9L,EAAQ9lM,KAAKkkM,MAAMtqM,OAAS,GACnDqsM,EAAcz0L,KAAK3I,IAAIk9L,EAAQ/lM,KAAKmkM,MAAMvqM,OAAS,GACvDoxD,EAAS2jB,SAAWm3H,EAASE,EAC7Bh7I,EAASuR,SAAWwpI,EAASE,EAC7B,IAAK,IAAIzrI,EAAWxP,EAAS9tC,IAAKs9C,GAAYwrI,EAAaxrI,IACvD,IAAK,IAAIksF,EAAW17F,EAASkU,IAAKwnF,GAAYu/C,EAAav/C,IACnDlsF,IAAaxP,EAAS9tC,KAAOwpI,IAAa17F,EAASkU,KACnDl2D,EAAShJ,KAAKgkM,MAAMxpI,GAAUksF,KAK9Ck/C,kBAAmB,SAASJ,GACxBxlM,KAAK6lM,kBAAkBL,EAASx6I,UAAU,SAAUgQ,GAChD,OAAAvgE,EAAA,WAAOugE,EAAM,CACTnxD,KAAM27L,EAAS37L,KACfq8L,aAAcV,QAI1B9B,gBAAiB,WACb,eAAK1jM,KAAKouG,iBAAiB,SAAUrvG,EAAGonM,GACpC,IAAIlqG,EAAQ,eAAEkqG,GACVt8L,EAAOoyF,EAAM73F,KAAK,IACjByF,EAAKs7J,MACNt7J,EAAKo/F,KAAOhN,EAAMjkC,gBAI9ByrI,aAAc,WACV,IAAI2C,EAAYpmM,KAAKgkM,MAAMpqM,OACvBysM,EAAYD,GAAapmM,KAAKgkM,MAAM,GAAGpqM,OAC3C,GAAKwsM,GAAcC,EAAnB,CAGA,IAAIpnM,EAASe,KAAKsmM,aAAa,CAC3B77I,UAAW,MACXvtC,IAAK,CACD2tC,MAAO,EACP14B,IAAKi0K,EAAY,GAErBlnI,IAAK,CACDrU,MAAO,EACP14B,IAAKk0K,EAAY,KAGrBE,EAAUvmM,KAAKwmM,kBAAkBvnM,EAAOkmK,KAAO,CAC/C16G,UAAW,MACXlgD,MAAO,CAAC,OAAA9P,EAAA,WAAOwE,EAAQ,CACnBshH,MAAO,OAGf,OAAA9lH,EAAA,WAAO8rM,EAASvmM,KAAKymM,eAAeF,EAAQh8L,QAC5CvK,KAAKmjM,OAAS,eAAE,SAAS/qL,SAASpY,KAAKknG,kBACvClnG,KAAKiZ,iBAAiBjZ,KAAKmjM,OAAQ,GAAKoD,KAE5CE,eAAgB,SAASl8L,GACrB,IAAIm8L,EAAY,eAAKn8L,EAAO,SAASnJ,EAAOyI,GACxC7J,KAAK2mM,uBAAuB98L,IAAS,OAAApP,EAAA,WAAOoP,EAAM,CAC9Co4J,SAAU,UAEhBzmJ,KAAKxb,OACP,OAAO,OAAAvF,EAAA,WAAO,CACV4Q,MAAO,OACPwR,OAAQ,OACRtS,MAAOm8L,EACPhgF,aAAc1mH,KAAK4qH,qBAAqB,gBACxC85C,gBAAiB1kK,KAAK4Y,OAAO,mBAC7B+rJ,WAAY3kK,KAAKiyD,sBAAsB,cACvCye,YAAa1wE,KAAKiyD,sBAAsB,eACxC2yG,kBAAmB5kK,KAAKiyD,sBAAsB,qBAC9Ci1D,eAAgBlnH,KAAKiyD,sBAAsB,mBAC5C,CACC8xG,gBAAiB/jK,KAAK4Y,OAAO,sBAGrC+tL,uBAAwB,SAAS98L,GAC7B,OAAQA,EAAKo4J,YAAcp4J,EAAKm4J,SAAW,SAAWn4J,EAAKm4J,YAAcn4J,EAAKk4J,SAAW,SAAWl4J,EAAKk4J,UAE7GykC,kBAAmB,SAAS30I,GACxB,OAAO,OAAAp3D,EAAA,WAAOo3D,GAAU,GAAI,CACxBgwG,WAAY,UACZiC,mBAAoB9jK,KAAK4Y,OAAO,yBAGxC0tL,aAAc,SAASxwL,GACnB,OAAI9V,KAAK4mM,cAAc9wL,GACZ9V,KAAK6mM,YAAY/wL,EAAQoH,IAAI2tC,MAAO/0C,EAAQopD,IAAIrU,OAEpD7qD,KAAK8mM,iBAAiBhxL,IAEjC8wL,cAAe,SAAS9wL,GACpB,IAAIixL,EAAoB/mM,KAAKgkM,MAAMluL,EAAQoH,IAAI2tC,OAAO/0C,EAAQopD,IAAIrU,OAAOG,SACrEg8I,EAAmBlxL,EAAQoH,IAAIiV,IAAMrc,EAAQoH,IAAI2tC,QAAUk8I,EAAkBp4H,QAAU,EACvFs4H,EAAmBnxL,EAAQopD,IAAI/sC,IAAMrc,EAAQopD,IAAIrU,QAAUk8I,EAAkBxqI,QAAU,EAC3F,OAAOyqI,GAAoBC,GAE/BJ,YAAa,SAASrsI,EAAUksF,GAC5B,IAAI8+C,EAAWxlM,KAAKgkM,MAAMxpI,GAAUksF,GACpC,OAAO8+C,EAASU,aAAe,KAAOV,EAAS37L,MAEnDi9L,iBAAkB,SAAShxL,GACvB,IAGIoxL,EAHA38L,EAAQ,GACRkgD,EAAY30C,EAAQ20C,UACpB08I,EAAiBnnM,KAAKonM,gBAAgB38I,GAE1C,MAAOy8I,EAAQlnM,KAAKqnM,WAAWvxL,GAAU,CACrC,GAAI9V,KAAKsnM,oBAAoBxxL,EAAQyxL,iBAAkBL,GACnD,MAAM,OAAOx7K,MAAM,SAEvB,IAAI7hB,EAAO7J,KAAKsmM,aAAa,CACzB77I,UAAW08I,EACXjqL,IAAKgqL,EAAMhqL,IACXgiD,IAAKgoI,EAAMhoI,IACXqoI,iBAAkBzxL,IAElBjM,IACA,OAAApP,EAAA,WAAOoP,EAAM7J,KAAKwnM,WAAWN,EAAOC,IACpC58L,EAAMtH,KAAK4G,IAEfiM,EAAQqxL,GAAgBt8I,MAAQq8I,EAAMC,GAAgBh1K,IAAM,EAEhE,MAAO,CACHgzI,IAAKnlK,KAAKwmM,kBAAkB,CACxB/7I,UAAWA,EACXlgD,MAAOA,MAInB+8L,oBAAqB,SAASxxL,EAASoxL,GACnC,OAAOpxL,GAAWA,EAAQopD,IAAIrU,QAAUq8I,EAAMhoI,IAAIrU,OAAS/0C,EAAQopD,IAAI/sC,MAAQ+0K,EAAMhoI,IAAI/sC,KAAOrc,EAAQoH,IAAI2tC,QAAUq8I,EAAMhqL,IAAI2tC,OAAS/0C,EAAQoH,IAAIiV,MAAQ+0K,EAAMhqL,IAAIiV,KAE3Ki1K,gBAAiB,SAAS38I,GACtB,MAAO,QAAUA,EAAY,MAAQ,OAEzC48I,WAAY,SAASvxL,GACjB,IAAI20C,EAAY30C,EAAQ20C,UACpB08I,EAAiBnnM,KAAKonM,gBAAgB38I,GACtCg9I,EAAa3xL,EAAQ20C,GAAWI,MAChC68I,EAAW5xL,EAAQ20C,GAAWt4B,IAC9Bw1K,EAAkB7xL,EAAQqxL,GAAgBt8I,MAC9C,GAAI88I,EAAkB7xL,EAAQqxL,GAAgBh1K,IAC1C,OAAO,KAGX,IADA,IAAIy1K,EAAY,EACPC,EAAaF,EAAiBE,EAAaF,EAAkBC,EAAWC,IAAc,CAE3F,IADA,IAAIC,EAAgB,EACX1mM,EAAQqmM,EAAYrmM,GAASsmM,EAAUtmM,IAAS,CACrD,IAAI45D,EAAOh7D,KAAK+nM,iBAAiBt9I,EAAWrpD,EAAOymM,GACnDC,EAAgBt2L,KAAK1I,IAAIg/L,EAAe9sI,EAAKhQ,SAASm8I,EAAiB,SAE3E,IAAIa,EAAoBH,EAAaC,EACjCG,EAAgBN,EAAkBC,EAClCI,EAAoBC,IACpBL,GAAaI,EAAoBC,GAGzC,IAAIhpM,EAAS,GASb,OARAA,EAAOwrD,GAAa,CAChBI,MAAO48I,EACPt1K,IAAKu1K,GAETzoM,EAAOkoM,GAAkB,CACrBt8I,MAAO88I,EACPx1K,IAAKw1K,EAAkBC,EAAY,GAEhC3oM,GAEX8oM,iBAAkB,SAASt9I,EAAWrpD,EAAOymM,GACzC,MAAO,QAAUp9I,EAAYzqD,KAAKgkM,MAAM6D,GAAYzmM,GAASpB,KAAKgkM,MAAM5iM,GAAOymM,IAEnFL,WAAY,SAASN,EAAOz8I,GAMxB,IALA,IAAIy9I,EAAiB,QAAUz9I,EAAY,OAAS,EAChDs6I,EAAc,QAAUt6I,EAAYzqD,KAAKkkM,MAAQlkM,KAAKmkM,MACtDllM,EAAS,OAAAxE,EAAA,WAAOuF,KAAKglM,2BAA4B,CACjDzkF,MAAO,IAEFn/G,EAAQ8lM,EAAMz8I,GAAWI,MAAOzpD,GAAS8lM,EAAMz8I,GAAWt4B,IAAK/wB,IAAS,CAC7E,IAAIqjM,EAAaM,EAAY3jM,GAC7BnC,EAAOshH,OAASkkF,EAAWlkF,MAC3BthH,EAAOgjK,UAAYwiC,EAAWxiC,SAC9BhjK,EAAO+iK,SAAWyiC,EAAWziC,QAC7B/iK,EAAO8iK,SAAW0iC,EAAW1iC,QACzB,eAAU0iC,EAAWviC,UACrBjjK,EAAOijK,OAASuiC,EAAWviC,QAMnC,OAHAjjK,EAAO+iK,QAAU/iK,EAAO+iK,QAAU/iK,EAAO+iK,QAAUkmC,EACnDjpM,EAAO8iK,QAAU9iK,EAAO8iK,QAAU9iK,EAAO8iK,QAAU,OACnD/hK,KAAK2kM,0BAA4B1lM,EAAOgjK,SAAW,QAC5ChjK,GAEXs+F,QAAS,SAAS4qG,GACd,IAAIC,EAAgBpoM,KAAKmjM,OACzBnjM,KAAKkrG,eACDk9F,IACID,EACAC,EAAczvL,UAEdyvL,EAAcrnF,SACd/gH,KAAKqoM,mBAAmBD,KAGhCpoM,KAAKijM,uBACLjjM,KAAKkjM,kBAETmF,mBAAoB,SAAS1mI,GACzB3hE,KAAKsoM,gBAAkBtoM,KAAKsoM,iBAAmB,GAC/CtoM,KAAKsoM,gBAAgBrlM,KAAK0+D,IAE9BkuD,SAAU,WACNz1D,aAAap6D,KAAK6kK,cAClB7kK,KAAK2jM,0BACL3jM,KAAKuoM,oBACLvoM,KAAKC,SAASnB,MAAMkB,KAAME,YAE9BqoM,kBAAmB,WACVvoM,KAAKsoM,iBAGV,eAAKtoM,KAAKsoM,iBAAiB,SAAUvpM,EAAG8K,GACpC,eAAEA,GAAM8O,aAGhBgrL,wBAAyB,WACrB,eAAK3jM,KAAK4Y,OAAO,UAAU,kBAChB5Y,KAAKipG,SAGpBugB,kBAAmB,SAASjvE,GACxBv6C,KAAKC,SAASs6C,GACVA,GACAv6C,KAAKkjM,kBAGb5qF,kBAAmB,OACnBpK,eAAgB,SAAS7+D,GACrB,OAAQA,EAAKztC,MACT,IAAK,OACL,IAAK,OACL,IAAK,gBACL,IAAK,kBACL,IAAK,qBACD5B,KAAK2jM,0BACL3jM,KAAKszD,cACL,MACJ,IAAK,QACL,IAAK,SACDtzD,KAAKC,SAASovC,GACdrvC,KAAKu9F,UACL,MACJ,IAAK,kBACDv9F,KAAKgjM,2BACL,MACJ,IAAK,eACDhjM,KAAK2jM,0BACL3jM,KAAKC,SAASovC,GACd,MACJ,IAAK,sBACD,MACJ,QACIrvC,KAAKC,SAASovC,KAG1Bw8E,kBAAmB,WACX7rH,KAAK6jM,sBAAwB7jM,KAAK4Y,OAAO,wBACzC5Y,KAAKu9F,WAGbgwB,QAAS,WACLvtH,KAAKu9F,aAGb,eAAkB,kBAAmBqlG,IACtB,UCxhBJ,GAAe,YACf4F,GAAa,UACbC,GAAmB,gBACnBC,GAA2B,wBAC3BC,GAA4B,UAC5BC,GAAmB,gBACnBC,GAA4B,4BAC5BC,GAAiC,8BACjCC,GAA4B,oBAC5BC,GAAyB,sBACzBC,GAA2B,wBAC3BC,GAA6B,gCAC7BC,GAAyB,sBACzBC,GAA2B,wBAC3BC,GAAqC,0BACrCC,GAAoC,yBACpCC,GAAgC,6BAChCC,GAAuB,oBACvBC,GAAwB,qBACxBC,GAAuB,kBACvBC,GAA0B,6BAC1BC,GAAwB,kCACxBC,GAAmB,SCrB1BC,GAAiB,OAAM/5I,QAAQ,CAC/B,KAAK7xC,EAAQ6jL,GACT/hM,KAAKke,OAASA,EACdle,KAAK+hM,UAAYA,EACjB/hM,KAAK+pM,4BAA8B,GACnC,IAAI11F,EAAUhlE,IACVrvC,KAAK+pM,4BAA4B7oM,QAAQ2I,GAAQA,EAAKwlC,KAE1DnxB,EAAO42H,kBAAkBhlI,IAAIukG,GAC7Bn2F,EAAOpU,GAAG,aAAa,WACnBoU,EAAO42H,kBAAkBn8H,OAAO07F,OAGxC,WACI,OAAOr0G,KAAKke,OAAOtF,OAAO,UAE9B,4BACI,OAAO5Y,KAAKke,OAAOtF,OAAO,oBAE9B,SACI,OAAO5Y,KAAKke,OAAOtF,OAAO,aAE9B,uBAAuB+3D,GACnB3wE,KAAKke,OAAOtF,OAAO,CACfoxL,iBAAkBr5H,EAAOs5H,YACzBC,iBAAkBv5H,EAAOhwC,UAGjC,QACI3gC,KAAKke,OAAOk/D,SAEhB,QACIp9E,KAAKke,OAAOy2C,WAGL,MCjBXw1I,GAAkB,eAClBC,GAA0B,QAC1BC,GAA4B,UAC5BC,GAA4B,UAC5BC,GAAY,QAAax6I,QAAQ,CACjCu3D,aAAc,SAASxxG,GACnB9V,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAK4Y,OAAO,QAAiB4xL,sBAAsB10L,KAEvD,qBACI,OAAO,OAAArb,EAAA,WAAOuF,KAAKC,WAAY,CAC3Bs+C,gBAAiB,MAGzB,QACIv+C,KAAKC,WACLD,KAAKyqM,yBACLzqM,KAAKy7K,QAAU,uBACfz7K,KAAK0qM,eACL1qM,KAAK2qM,gBAAkB,CACnB1rM,OAAQ,KACRmvD,SAAU,KACVw8I,gBAAgB,IAGxB,yBACI,IAAIrzL,EAAQvX,KAAK6qM,aACZ7qM,KAAK8qM,eACN9qM,KAAK8J,GAAG,aAAa,SAAUulC,GAC3B,QAAiB07J,0BAA0B17J,EAAKz9B,UAAUo5L,iBAAkB37J,EAAKz9B,cAGpF5R,KAAK8qM,eAAiB9qM,KAAKgrM,mBAAqBzzL,IACjD,QAAiBwzL,0BAA0B/qM,KAAKgrM,iBAAkBhrM,MAClEA,KAAK8qM,eAAgB,EACrB9qM,KAAKgrM,iBAAmBzzL,EACxB,QAAiB0zL,yBAAyB1zL,EAAOvX,QAGzD,yBACIA,KAAKC,WACL,OAAAxF,EAAA,WAAOuF,KAAKgxG,oBAAqB,CAC7BroD,iBAAiB,KAGzB,aACI,IAAIjxC,EAAU1X,KAAK6W,WAAW,GAC9B,OAAO,eAAYa,EAAS,yBAEhC,eACI,IAAIwzL,EAAmBlrM,KAAKmrM,aACxBC,EAAUprM,KAAK4Y,OAAO,WAC1B,IAAKwyL,EAAS,CACV,GAAIF,EASA,OARAE,EAAU,IAAI,GAAeF,EAAkBlrM,MAC/CorM,EAAQrB,4BAA4B9mM,KAAKosC,IACjCrvC,KAAK2qM,gBAAgBC,gBAGzB5qM,KAAKqrM,SAASh8J,UAElBrvC,KAAK4Y,OAAO,UAAWwyL,GAG3B,MAAM,OAAO1/K,MAAM,SAEvB,IAAI4/K,EAAYF,EAAQrB,4BACpBuB,GACAA,EAAUroM,KAAKosC,IACXrvC,KAAKqrM,SAASh8J,MAI1B,oBAAoB6jH,GAChB,IAAIq4C,EAAuBC,EAAcC,EACrCpvL,EAAa,QAAUkvL,EAAwB,QAAUC,EAAexrM,KAAK4Y,OAAO,kBAAe,IAAW4yL,GAAwB,QAAUC,EAAsBD,EAAattL,cAAW,IAAWutL,OAA5E,EAA2GA,EAAoB7yL,OAAO,qBAAkB,IAAW2yL,EAAwBA,EAAwBr4C,EACpVlzJ,KAAKC,SAASoc,IAElB,cACIrc,KAAK6W,WAAWsB,SAASgyL,IACzBnqM,KAAKC,YAET,UACID,KAAKC,WACLD,KAAK0rM,kCAET,iCACI,IAAIR,EAAmBlrM,KAAKmrM,aAC5B,GAAID,EAAkB,CAClB,IAAIS,EAAQ3rM,KAAK4Y,OAAO,oBAAsB,GAC1CswC,EAAayiJ,EAAM/sL,KAAKzO,IACxB,IACI1R,KAAMA,GACN0R,EACJ,MAAO,aAAe1R,KACpB,KACFysM,EAAiBzyH,iBACjByyH,EAAiB5tL,QAAQ,WAAY4rC,GAEzCgiJ,EAAiBtyL,OAAO,oBAAqB,KACzCsyL,EAAiB5tL,QAAQ,WAAY4rC,OAIjD,mBAAmB3O,GACXA,GACAv6C,KAAKyqM,0BAGb,eAAep7J,GACX,OAAQA,EAAKztC,MACT,IAAK,kBAED,YADA5B,KAAKyqM,yBAET,IAAK,kBAID,OAHAzqM,KAAK4rM,wBACL5rM,KAAK0rM,2CACL,IAAW1rM,KAAK4Y,OAAO,YAAc5Y,KAAKqrM,YAE9C,IAAK,UACDrrM,KAAK0qM,eACL,MACJ,IAAK,UACL,IAAK,mBACD1qM,KAAK4Y,OAAO,QAAiBizL,6BAA6Bx8J,EAAMrvC,KAAK4Y,WACrE,MACJ,QACI5Y,KAAKC,SAASovC,KAG1B,sBAOI,OANKrvC,KAAK8rM,mBACN9rM,KAAK8rM,iBAAmB,eAAI9rM,KAAK4Y,OAAO,mBAAoB,CAACmzL,EAAM3qM,IAAU,OAAA3G,EAAA,WAAO,GAAIsxM,EAAM,CAC1FhK,UAAW/hM,KACXoB,MAAOA,MAGRpB,KAAK8rM,kBAEhB,aACI,IAAIj1L,EAAW7W,KAAK6W,WACpB,OAAO7W,KAAK4Y,OAAO,oBAAsB,QAAiBozL,UAAUn1L,EAAU7W,KAAKisM,gBAAgBp1L,KAEvG,+BACW7W,KAAK8rM,kBAEhB,SAASz8J,GACL,IAUIpwC,EAVAmsM,EAAUprM,KAAK4Y,OAAO,WACtBhX,EAAO5B,KAAK4Y,OAAO,QACnBszL,EAASd,EAAQc,QAAUd,EAAQc,SACnCrqM,EAAQwtC,QAAQ,IAAWA,EAAKxtC,MAAQwtC,EAAKxtC,MAAQupM,EAAQh0C,WAC7D+0C,EAAef,EAAQgB,2BAA6BhB,EAAQgB,4BAC5DT,EAAQ3rM,KAAKqsM,sBACbC,EAAgBtsM,KAAK2qM,iBAAmB3qM,KAAK2qM,gBAAgB1rM,OACjE,OAAIqtM,GAAiBA,EAAc3rK,SAAW2pK,IAA6BgC,EAAczqM,QAAUA,EACxF,OAAApH,EAAA,WAAO,GAAI6xM,IAGlBJ,EACAjtM,EAAS,CACL02I,SAAS,EACTh1G,OAAQypK,IAEL+B,GAAgBA,EAAar2D,gBACpCq2D,EAAapK,UAAY/hM,KACzBf,EAAS,CACL02I,SAAS,EACTh1G,OAAQ0pK,GACRkC,WAAYJ,EACZlC,YAAa,CAACkC,KAGlBltM,EAAS,QAAiBosM,SAASxpM,EAAO8pM,EAAO/pM,GAErD3C,EAAOnQ,IAAK,IAAK,SAAM6iB,WACvB3R,KAAKwsM,uBAAuBvtM,EAAQmsM,GACpCnsM,EAAOurD,UAAYvrD,EAAOurD,SAAS9lD,KAAKqK,IAChCA,EAAIjgB,KAAOkR,KAAK2qM,gBAAgB1rM,OAAOnQ,IACvCkR,KAAKwsM,uBAAuBz9L,EAAKq8L,KAGlC,OAAA3wM,EAAA,WAAO,GAAIuF,KAAK2qM,gBAAgB1rM,UAE3C,QACI,IAAImsM,EAAUprM,KAAK4Y,OAAO,WACtB3Z,EAAS,CACTnQ,GAAI,KACJ6mJ,SAAS,EACT42D,WAAY,KACZtC,YAAa,KACbwC,aAAc,KACd9rK,OAAQypK,GACR5/I,SAAU,MAEdxqD,KAAK2qM,gBAAgBC,gBAAiB,EACtCQ,EAAQhuH,QACRp9E,KAAK2qM,gBAAgBC,gBAAiB,EACtC5qM,KAAK4rM,wBACL5rM,KAAKwsM,uBAAuBvtM,EAAQmsM,IAExC,wBAAwBnsM,GACpB,GAAKe,KAAK2qM,gBAAgB1rM,QAAUe,KAAK2qM,gBAAgB1rM,OAAOnQ,KAAOmQ,EAAOnQ,GAM1E,IAAK,IAAIwkJ,KAAQr0I,EACT,OAASq0I,GAAQ,aAAeA,IAChCtzI,KAAK2qM,gBAAgB1rM,OAAOq0I,GAAQr0I,EAAOq0I,QAR2B,CAC9E,IAAI9oF,EAAWxqD,KAAK2qM,gBAAgBv8I,UAAYpuD,KAAK2qM,gBAAgB1rM,OAAOurD,SAC5ExqD,KAAK2qM,gBAAgB1rM,OAAS,OAAAxE,EAAA,WAAO,GAAIwE,EAAQ,CAC7CurD,SAAUA,MAUtB,uBAAuBvrD,EAAQmsM,GAC3B,IAAIsB,EAAkB1sM,KAAKiyD,sBAAsB,cAAe,CAC5DgT,kBAAmB,CAAC,cAQxB,GANAhmE,EAAO8iM,UAAY/hM,KACnBA,KAAK2sM,wBAAwB1tM,GAC7BmsM,EAAQwB,wBAA0BxB,EAAQwB,uBAAuB5sM,KAAK2qM,gBAAgB1rM,QACtFe,KAAK4Y,OAAO,CACRsxL,iBAAkBlqM,KAAK2qM,gBAAgB1rM,OAAO0hC,SAE9C3gC,KAAK2qM,gBAAgB1rM,OAAO0hC,SAAW2pK,GAMvC,OALKtqM,KAAK2qM,gBAAgBv8I,WACtBpuD,KAAK2qM,gBAAgBv8I,SAAW,IAAI,cACpCpuD,KAAK2qM,gBAAgB1rM,OAAOurD,SAAWxqD,KAAK2qM,gBAAgBv8I,SAAS3sC,gBAEzEzhB,KAAK+oF,gBAAgB0G,UAAU,aAAc,CAACzvF,KAAK2qM,gBAAgB1rM,SAGnEe,KAAK2qM,gBAAgB1rM,OAAO0hC,SAAW2pK,KACvCoC,EAAgBztM,GACZe,KAAK2qM,gBAAgBv8I,WACrBpuD,KAAK2qM,gBAAgBv8I,SAASztC,QAAQ1hB,GACtCe,KAAK2qM,gBAAgBv8I,SAAW,QAI5C,QACI,IAAIg9I,EAAUprM,KAAK4Y,OAAO,WAC1BwyL,GAAWA,EAAQz2I,OAASy2I,EAAQz2I,SAExC68E,cAAe,WACX,OAAO,KAGf,eAAkB,cAAe+4D,IAClB,U,aC5PXsC,GAA2B,CAAC,WAAY,iBACjCC,GAAyB,CAAC,aAAc,aAAc,eAAgB,eAAgB,gBAAiB,WAAY,YACvH,SAASC,GAAgC58L,GAC5C,IACImkD,QAASA,EACT04I,wBAAyBA,EACzBC,oBAAqBA,EACrBC,wBAAyBA,EACzBC,cAAeA,EACftjM,KAAMA,EACNkyC,SAAUA,EACVn6C,KAAMA,EACNwrM,kBAAmBA,EACnBC,wBAAyBA,EACzB1kJ,gBAAiBA,EACjB2kJ,YAAaA,EACbC,gCAAiCA,EACjCC,yBAA0BA,EAC1BC,kBAAmBA,EACnBllJ,oBAAqBA,EACrBmlJ,qBAAsBA,EACtBC,OAAQA,EACRC,mBAAoBA,EACpB/lJ,UAAWA,GACX13C,EACA+4C,EAAa,eAAUr/C,EAAKq/C,YAAcr/C,EAAKq/C,aAAe2kJ,GAAsBhkM,EAAK00C,iBACzFuvJ,EAAejkM,EAAKs/C,WAAa0gJ,GACjCkE,EAASlkM,EAAKo/C,SAAW,MAAQ,IAAI,QAAO,KAC5C+kJ,EAAeC,GAAuB,CACtCpkM,KAAMA,EACN/a,GAAI6+M,EACJzkJ,WAAYA,EACZ0kJ,mBAAoBA,EACpBrlJ,oBAAqBA,EACrBX,cAAe8lJ,EACfQ,cAAermJ,IAEfsmJ,EAAkBH,EAAazzJ,SAAWyzJ,EAAazxM,MAEvDyuD,SAAUpD,EACVwmJ,QAASA,GACTJ,EACAK,EAAyB,QAAUzmJ,MAAoB/9C,EAAKo/C,WAAakkJ,GAAiB,CAAC,aAAc,eAAgB,aAAc,gBAAgBnqM,SAAS6G,EAAKm/C,aACrKx9C,EAAgB8iM,GAAwB,CACxCtlJ,WAAYn/C,EAAKm/C,WACjBskJ,YAAaA,EACbiB,kBAAmB1kM,EAAKwR,UACxBkyL,gCAAiCA,EACjCiB,sBAAuB3kM,EAAK2B,cAC5BijM,cAAed,EACfH,yBAA0BA,EAC1BC,kBAAmBA,EACnBS,cAAermJ,EACf6mJ,UAAWV,EAAaW,iBACxBC,UAAWZ,EAAaa,YAAYpmJ,iBAAmB9uD,OAAO01B,aAAa,KAAO2+K,EAAaa,YAAY1mJ,aAAe,KAE1H2mJ,EAAmCd,EAAaa,YAAYrmJ,mBAAqBwlJ,EAAazzJ,SAAW,WAAa/uC,EAAcq8C,YAAc,eAAUh+C,EAAKo/C,UACjKA,EAAW6lJ,EAAmCd,EAAaa,YAAY5mJ,aAAep+C,EAAKo/C,SAC/F,MAAO,CACHqL,QAASA,EACT04I,wBAAyBA,EACzBC,oBAAqBA,EACrBC,wBAAyBA,EACzBC,cAAeA,EACfa,aAAcA,EACdK,uBAAwBA,EACxBzmJ,cAAeA,EACfumJ,gBAAiBA,EACjBtkM,KAAMA,EACNikM,aAAcA,EACd5kJ,WAAYA,EACZnN,SAAUA,EACVgyJ,OAAQA,EACRK,QAASA,EACTxsM,KAAMA,EACNqnD,SAAUA,EACVmkJ,kBAAmBA,EACnBC,wBAAyBA,EACzB1kJ,gBAAiBA,EACjBn9C,cAAeA,GAGhB,SAASujM,GAAiBn+L,GAC7B,IACI63C,iBAAkBA,EAClBN,aAAcA,EACdK,iBAAkBA,EAClBP,aAAcA,GACdr3C,EACJ,OAAK63C,GAAqBD,EAGnB7uD,OAAO01B,aAAa,MAAQo5B,EAAmBN,EAAeF,GAF1D,GAIR,SAAS+mJ,GAA0B/gH,EAAO/kC,GAC7C,IACIT,iBAAkBA,EAClBN,aAAcA,EACdK,iBAAkBA,EAClBP,aAAcA,GACdgmC,EACJ,MAAO,CACHxlC,iBAAkBA,GAAoBS,EACtCf,aAAcA,EACdK,iBAAkBA,IAAqBU,EACvCjB,aAAcA,GAItB,SAASqmJ,GAAwBngH,GAC7B,IACInlC,WAAYA,EACZulJ,kBAAmBA,EACnBjB,YAAaA,EACbC,gCAAiCA,EACjCiB,sBAAuBA,EACvBC,cAAeA,EACfjB,yBAA0BA,EAC1BC,kBAAmBA,EACnBS,cAAeA,EACfQ,UAAWA,EACXE,UAAWA,GACXzgH,EACA8gH,EAAyB,SACzB,IAAW3B,GAAeC,KAC1B0B,EAAuBptM,MAAQyrM,IAE9B,IAAMT,GAAyBvuM,QAAQ0qD,KACxCimJ,EAAuBptM,MAAQotM,EAAuBptM,OAAS,IAEnE,IAAIgmD,EAAY,OAAS2mJ,QAAyB,IAAWA,OAAwB,EAASA,EAAsB3mJ,UAC/G,eAAUA,KACXA,EAAY,YAAcqmJ,EAAgB,SAAWA,GAEzD,IAAI1nC,GAAe,OAASgoC,QAAyB,IAAWA,OAAwB,EAASA,EAAsBhoC,cAAgBinC,EACnIxuM,EAAS,OAAAxE,EAAA,YAAO,EAAMw0M,EAAwBT,EAAuB,CACrEz2B,UAAW,CACPjpL,GAAI2/M,GAERtN,mBAAoBqM,EACpBhnC,YAAaA,EACb54J,MAAO8gM,EACP7mJ,UAAWA,EACX+mJ,UAAWA,IAaf,OAXIJ,IACIvvM,EAAOmb,aACPnb,EAAOmb,WAAao0L,EAAsBp0L,YAE1Cnb,EAAOsL,QACPtL,EAAOsL,MAAQikM,EAAsBjkM,QAGzCgkM,IAAsBtvM,EAAO2C,OAC7B3C,EAAO2C,KAAO2sM,GAEXtvM,EAGX,SAAS4uM,GAAsBlC,GAC3B,IAAIuD,EASJ,OARIvD,GAASA,EAAM/xM,QACf,eAAK+xM,GAAO,SAAUvqM,EAAO2qM,GACzB,GAAI,aAAeA,EAAKttM,KAEpB,OADAywM,GAAkB,GACX,KAIZA,EAGX,SAASjB,GAAuB9hH,GAC5B,IACItiF,KAAMA,EACN/a,GAAIA,EACJo6D,WAAYA,EACZ0kJ,mBAAoBA,EACpBrlJ,oBAAqBA,EACrBX,cAAeA,EACfsmJ,cAAeA,GACf/hH,EACAgjH,EAAwBrC,GAAuB9pM,SAAS6G,EAAKm/C,YAC7DglJ,EAAe,OAAAvzM,EAAA,WAAO,CACtB8wD,UAAWhD,EACXyC,SAAUpD,EACV94D,GAAIA,EACJyrD,QAAS,YAAc2zJ,GAAiBiB,GAAyB,WAAajB,EAC9EhlJ,WAAYA,GACbr/C,EAAOA,EAAK+D,MAAQ,GAAI,CACvBihM,YAAaG,GAA0BpB,EAAoB1kJ,KAY/D,MAVI,CAAC,eAAgB,aAAc,WAAY,WAAY,gBAAiB,WAAY,gBAAgBlmD,SAAS6G,EAAKm/C,cAClHglJ,EAAaI,QAAU,YAAYzmL,OAAO,IAAI,WAE7CqmL,EAAazxM,MAAQsN,EAAKwR,YAC3B2yL,EAAazxM,KAAO,gBAAWsN,EAAKwR,YAEpC2yL,EAAazxM,OACbyxM,EAAaW,iBAAmBX,EAAazxM,KAC7CyxM,EAAazxM,MAAQyxM,EAAaziJ,UAAY,IAAM,IAEjDyiJ,ECzNX,IAAIoB,GAAY,CAAC,mCAgBNC,GAAgC,iCAChCC,GAAiC,8BACjCC,GAAkC,gCAClCC,GAAiC,8BACjCC,GAA8B,2BAClC,SAASC,GAAYv/L,GACxB,IACI5T,KAAMA,EACNzN,GAAIA,EACJk8D,SAAUA,EACV5/C,UAAWA,EACXgjM,QAASA,EAAU,KACnBS,YAAaA,EAAc,IAC3B1+L,EACJ,OAAK,eAAU5T,IAASA,EAAK3C,QAAU,EAC5B,KAEJ,eAAE,WAAWue,SAAS6wL,GAAyB,IAAMuG,GAAkCvkJ,GAAU0G,KAAK,MAAO5iE,GAAI4iE,KAAK,KAAM08I,GAAS3xL,IAAI,YAAarR,GAAW2uB,OAAO,eAAE,UAAU5hB,SAAS2wL,IAAgC/uK,OAAO,eAAE,UAAU5hB,SAASs3L,IAA6BlzM,KAAKA,GAAOozM,GAAiBd,KAG9T,SAASc,GAAiBd,GACtB,IAAIe,EAAWb,GAAiBF,GAChC,MAAI,KAAOe,EACA,KAEJ,eAAE,UAAUz3L,SAAS02L,EAAYpmJ,iBAAmB6mJ,GAAiCE,IAAgCjzM,KAAKqzM,GAE9H,SAASC,GAA6BC,EAAkBC,EAAgBC,GAC3E,IAGIC,EACAx0M,EAJAy0M,EAA0C,GAAGvoL,OAAOooL,EAAgB,QAAQpoL,OAAOqhL,GAAwB,UAAUrhL,OAAO4nL,GAAiC,YAAY5nL,OAAOmhL,IAChLqH,EAAwCL,EAAiBh4L,KAAKo4L,GAC9DE,EAAwCD,EAAsCv2M,OAG9E6qD,EAAW,EACf,IAAKhpD,EAAI,EAAGA,EAAI20M,EAAuC30M,IACnDw0M,EAAaI,GAAyB,CAClCC,gCAAiCH,EAAsC10M,GACvEuvD,SAAU,OACV6jJ,YAAamB,IAEbC,EAAaxrJ,IACbA,EAAWwrJ,GAGnB,IAAKx0M,EAAI,EAAGA,EAAI20M,EAAuC30M,IACnD00M,EAAsC10M,GAAGw/D,MAAM5vD,MAAQo5C,EAAW,KAI1E,SAAS4rJ,GAAyBv6L,GAC9B,IACIw6L,gCAAiCA,GACjCx6L,EAASy6L,EAAqB,gBAA8Bz6L,EAASs5L,IACrEoB,EAAmB,eAAE,SAASr4L,SAAS,IAAcA,SAASk3L,IAA+Bj3L,SAAS,QAC1Gm4L,EAAmBh0M,KAAO,IAC1B,IAAIk0M,EAASf,GAAYa,GAAoBn4L,SAASo4L,GAClDE,EAAmBD,EAAO34L,KAAK,IAAM23L,IAA6B,GACtEiB,EAAiBrzG,UAAYszG,GAAkBL,GAC/C,IAAIrxM,EAASyxM,EAAiBxqI,YAE9B,OADAsqI,EAAiB73L,SACV1Z,EAGX,SAAS0xM,GAAkBL,GACvB,IACIM,EAEAn1M,EAHA7B,EAAS02M,EAAgCt4I,SAASp+D,OAElDqF,EAAS,GAEb,IAAKxD,EAAI,EAAGA,EAAI7B,EAAQ6B,IACpBm1M,EAAQN,EAAgCt4I,SAASv8D,GACjDwD,GAAW,gBAAQ2xM,EAAMC,WAA+BD,EAAMvzG,UAAxBuzG,EAAMC,UAEhD,OAAO5xM,ECnEJ,IAAI6xM,GAAoB,iBACpBC,GAA4B,yBAC5BC,GAA4B,yBAC5BC,GAAmC,gCACnCC,GAAoC,kCACpCC,GAA+B,4BAC/BC,GAA6B,0BAC7BC,GAAiC,mBACjCC,GAAmC,mBAI1CC,GAAyB,sBACzBC,GAA0B,uBAC1BC,GAAgB,aACb,SAASC,GAAgBvhM,GAC5B,IACImkD,QAASA,EACT04I,wBAAyBA,EACzBC,oBAAqBA,EACrBC,wBAAyBA,EACzBC,cAAeA,EACfa,aAAcA,EACdK,uBAAwBA,EACxBzmJ,cAAeA,EACfumJ,gBAAiBA,EACjBf,kBAAmBA,EACnBvjM,KAAMA,EACN2B,cAAeA,EACfsiM,aAAcA,EACd5kJ,WAAYA,EACZnN,SAAUA,EACVgyJ,OAAQA,EACRK,QAASA,EACTxsM,KAAMA,EACNqnD,SAAUA,EACVokJ,wBAAyBA,EACzB1kJ,gBAAiBA,GACjBx4C,EACA6rF,EAAe,eAAE,SAAS7jF,SAAS60L,EAAwBhxM,KAAK,MAAMoc,SAASk8C,GACnF0nC,EAAa7jF,SAAS+wC,EAAa8nJ,GAA4BD,IAC3DjD,GAAgBX,GAChBnxG,EAAa7jF,SAAS24L,IAEtBhD,GAAgBO,GAChBryG,EAAa7jF,SAASg5L,IAE1B,IAAIQ,EAAwB,eAAE,SAC9BA,EAAsBvtM,KAAK,eAAgByF,GAC3C8nM,EAAsBx5L,SAAS8wL,IAA0B9wL,SAAS+4L,GAAoC,CAClG/zE,MAAO,OACPxgH,KAAM,QACNC,IAAK,UACNwwL,IACH,IAsBIxZ,EAtBA6c,EAAStC,EAAkBuB,GAAY1B,GAAgB,KAuB3D,GAtBIyC,GACAz0G,EAAajiE,OAAO02K,GAChB,QAAU7oJ,GAAiB,SAAWA,GACtCo0C,EAAajiE,OAAO43K,GAEpB,UAAY/pJ,GACZo0C,EAAaR,QAAQm2G,GAErB,QAAU/pJ,EACVo0C,EAAa7jF,SAASk5L,IAEtBr1G,EAAa7jF,SAASm5L,IAEtB,eAAiBznM,EAAKm/C,YAAc,aAAen/C,EAAKm/C,YACxD,OAAal/C,GAAG2mM,EAAQ,QAAgB,WACpC,OAAazyL,QAAQ2zL,EAAsB35I,WAAY,YAI/DgkC,EAAajiE,OAAO43K,GAGpB51J,EACAA,EAASh0C,OAAO,CACZiR,UAAW,eAAiB24L,GAC5B5oM,MAAO,CACHsS,UAAWxR,EAAKwR,UAChB2tC,WAAYn/C,EAAKm/C,WACjBx9C,cAAeA,EACfoG,UAAWq7L,EACXrrM,KAAMiI,EAAKjI,MAEf,aACI,IAAIgwM,EAAoBC,GAAoBF,GACxCG,EAA2BC,GAA+BH,GAC9DI,GAAmCF,UAGxC,CACH,IAAIG,EAAO,eAAE,SAAS75L,SAASu5L,GAC/B,IACI/d,EAAiBsZ,EAAwB+E,EAAMpoM,EAAKm/C,WAAYx9C,GAChEooL,EAAet2K,QAAQ,cAAeywL,GAClCK,GACAxa,EAAet2K,QAAQ,aAAc8wL,GAEzCxa,EAAet2K,QAAQ,WAAY4rC,GACrC,MAAOtlD,GACL,OAAOE,IAAI,QAASF,EAAEmV,UAG9B,IAAI64L,EAAoBC,GAAoBF,GACxCG,EAA2BF,GAAqBA,EAAkBxtM,KAAKotM,IAC3E,GAAIM,EAA0B,CAC1B,IAGIvzJ,EAHA2zJ,EAAwBroM,EAAK+D,OAAS/D,EAAK+D,MAAMrR,KACjD41M,EAAWD,EAAwB,KAAOtwM,EAC1Cu1E,EAAY+6H,EAAwBroM,EAAK+D,MAAMrR,KAAO41M,GAAY,gBAAWA,GAEjF,GAAIrE,EACA,GAAIjkM,EAAK00C,gBACLA,EAAkB10C,EAAK00C,oBACpB,CACH,IAAI6J,EAAkB,gBAAOilJ,EAAyBl2H,GAAa,IACnE54B,EAAkB10C,EAAKq/C,WAAa,CAAC,CACjCzqD,KAAM,WACNsa,QAASqvC,IACR,KAGTvpD,MAAMuY,QAAQmnC,IAAoBA,EAAgB3kD,QAClDszM,EAAwB0E,EAAmB,GAAW,CAClDrzJ,gBAAiBA,EACjBoK,gBAAiBA,EACjBypJ,WAAY,WACR,MAAO,CACH70J,SAAU1zC,MAK1BmoM,GAAmCF,GAEvC,GAAI7oJ,GAAY6kJ,EAAc,CAC1B,IAAIuE,EAAgBV,EAAsBvyL,SAC1CizL,EAAct4K,OAAO,eAAE,SAAS5hB,SAAS84L,IAAkCl3K,OAAO43K,GAAuB53K,OAAO,eAAE,SAAS5hB,SAASi5L,IAA4B1/I,KAAK,KAAMq8I,GAAQxxM,KAAK0sD,KAE5L,MAAO,CACH0oJ,sBAAuBA,EACvB31G,aAAcA,EACd43F,eAAgBA,GAIxB,SAASie,GAAoBF,GACzB,IAAIn5E,EAAUm5E,EAAsB35I,WAAWuS,QAC/C,OAAOiuD,EAAQvhE,SAASs6I,IAA0B/4E,EAAQxgE,WAAWuS,QAAUiuD,EAGnF,SAASu5E,GAA+BH,GACpC,IAAIU,EAAuBC,EAC3B,OAAQ,OAASX,QAAqB,IAAWA,OAAoB,EAASA,EAAkBxtM,KAAKotM,OAA8B,OAASI,QAAqB,IAAWA,GAA6B,QAAUU,EAAwBV,EAAkBxyL,cAAW,IAAWkzL,GAAiC,QAAUC,EAAyBD,EAAsBl8L,KAAKw7L,UAAuB,IAAWW,OAApN,EAAsPA,EAAuBnuM,KAAKotM,KAGtd,SAASQ,GAAmCF,GACxC,GAAIA,GAA4B,iBAAc,CAC1C,IAAIU,EAAe,IAAI7qL,OAAOspL,IAC1BwB,EAAqB7hM,IACrB,IACI8G,QAASA,EACT9F,UAAWA,GACXhB,GAEA+kI,QAASA,EACT+8D,sBAAuBA,GACvB9gM,EAAUgH,SACd,eAAElB,GAAS+tE,QAAQ+sH,GAAcj+I,YAAYk9I,IAAe,IAAU97D,IAAY/jI,EAAU+gM,cAAgB,WAAaD,KAE7HZ,EAAyBhoM,GAAG,gBAAiBlG,IACrC,YAAcA,EAAEhC,MAGpB6wM,EAAmB7uM,KAEvBkuM,EAAyBhoM,GAAG,UAAW2oM,GAAoB3oM,GAAG,WAAY2oM,GAAoB3oM,GAAG,WAAY2oM,ICjMrH,IAAIG,GAA0B,uBACvB,SAASC,GAAiB1iM,GAC7B,IACItG,KAAMA,EACNyqD,QAASA,EACT04I,wBAAyBA,EACzBrkJ,gBAAiBA,EACjBukJ,wBAAyBA,GACzB/8L,EACA6rF,EAAe,eAAE,SAAS5jF,SAASk8C,GAASn8C,SAAS60L,EAAwBhxM,KAAK,MAAMmc,SAASy6L,IAAyBn2L,IAAI,YAAaq2L,GAA4BjpM,EAAKkpM,sBAChLz+I,EAAQ73C,IAAI,iBAAkBu2L,GAAiCnpM,EAAKopM,oBACpE,IAAI5qF,EAAU,eAAE,SAASjwG,SAAS4jF,GAClC,MAAO,CACHA,aAAcA,EACdk3G,eAAgBhG,EAAwB7kF,EAAS,WAAY,OAAA5tH,EAAA,WAAO,CAChEkuD,gBAAiBA,GAClB9+C,EAAKspM,iBAIhB,SAASL,GAA4BC,GACjC,OAAO,eAAUA,GAAuBA,EAAsB,QAGlE,SAASC,GAAiCC,GACtC,OAAQA,GACJ,IAAK,SACD,MAAO,SACX,IAAK,SACD,MAAO,WACX,QACI,MAAO,cCrCZ,IAAIG,GAAyB,sBAC7B,SAASC,GAAgBljM,GAC5B,IACImkD,QAASA,EACT04I,wBAAyBA,GACzB78L,EACJ,OAAO,eAAE,SAASgI,SAASi7L,IAAwBtoJ,KAAK,UAAU3yC,SAAS60L,EAAwBhxM,KAAK,MAAMoc,SAASk8C,GC4D3H,IAAIg/I,GAAyB,YACzBC,GAAiC,eACjCC,GAAgC,cAChCC,GAAiC,eACjCC,GAAgC,cAChCC,GAAuB,OACvBC,GAA2B,WAC3BC,GAAgB,OAAO9jJ,QAAQ,CAC/B42C,mBAAoB,WAChB,OAAO,OAAAlsG,EAAA,WAAOuF,KAAKC,WAAY,CAC3BmhM,WAAY,GACZl5I,UAAU,EACVV,SAAU,EACVC,sBAAkB,EAClBG,cAAe,OACfI,mBAAoB,KACpBD,iBAAkB,KAClBL,cAAe,KACfJ,iBAAiB,EACjBQ,YAAa,IACbW,kBAAkB,EAClBJ,cAAe,KACfG,kBAAkB,EAClBL,aAAc,IACdN,UAAW,UACXI,aAAc,OAAoB5uD,OAAO,uBACzC+uD,gBAAiB,OAAoBvtD,aAAa,6BAG1Dk2G,uBAAwB,WACpB/wG,KAAKC,WACL,OAAAxF,EAAA,WAAOuF,KAAKgxG,oBAAqB,CAC7BowF,YAAY,EACZz4I,iBAAiB,KAGzBg/C,MAAO,WACH,IAAIy5F,EAAaphM,KAAK4Y,OAAO,cAC7B5Y,KAAKC,WACLD,KAAK8zM,cAAgB,GACrB9zM,KAAK0/L,kBAAoB,IAAI,GAC7B1/L,KAAK+zM,yBAAyB3S,GAC9BphM,KAAKg0M,kBAAkB5S,IAE3BvxE,SAAU,WACN7vH,KAAKC,WACLD,KAAKi0M,sBAETD,kBAAmB,SAASE,GACxBl0M,KAAKm0M,qBACLn0M,KAAK02L,aAAawd,IAEtBC,mBAAoB,WAChB,IAAI/S,EAAaphM,KAAK4Y,OAAO,cACzB21G,EAAYvuH,KAAK4Y,OAAO,SACxB,eAAU21G,IACVA,EAAUrtH,QAAQ2I,IAEV,IAAIhI,EADJgI,EAAKwR,gBAAa,IAAWrb,KAAKo0M,gBAAgBvqM,EAAKwR,aAEnDxR,EAAK2B,gBACL3J,EAAQgI,EAAK2B,cAAc3J,QAE3B,eAAUA,IAAUgI,EAAKwR,aAAa+lL,IACtCphM,KAAKq0M,kBAAkBxqM,EAAKwR,UAAWxZ,OAM3DuyM,gBAAiB,SAAS/4L,GACtB,OAAOA,EAAYrb,KAAK4Y,OAAO,cAAgByC,GAAa,MAEhEi5L,iCAAkC,SAASnkM,GACvC,IACIokM,wBAAyBA,EACzBvrJ,WAAYA,EACZ3tC,UAAWA,GACXlL,EACJ,IAAI,IAASokM,GAA2B,eAAiBvrJ,EAAY,CACjE,IAAIwrJ,EAAY,CAAC,gBAAiBn5L,EAAUxf,MAAM,MAC9C44M,EAAeD,EAAUrxL,MACzBi+K,EAAaphM,KAAK4Y,OAAO47L,EAAUx4M,KAAK,MAC5C,OAAOolM,GAAcqT,KAAgBrT,EAEzC,OAAO,GAEXiT,kBAAmB,SAASh5L,EAAWxZ,GACnC,IAAIu/L,EAAaphM,KAAK4Y,OAAO,cACzBwrD,EAAWviE,GACV,QAAgBke,UAAUqhL,EAAW/lL,KAAe,eAAUA,GAC/Drb,KAAK4Y,OAAO,cAAgByC,EAAW+oD,GAChC,QAAgBswI,kBAAkBtT,EAAW/lL,MACpD+oD,EAAW,eAAWA,GAAYA,IAAaA,EAC/Cg9H,EAAW/lL,GAAW+oD,IAE1BpkE,KAAK20M,2BAA2B,CAC5Bt5L,UAAWA,EACXxZ,MAAOuiE,KAGfuwI,2BAA4B,SAAStlK,GACjCrvC,KAAKiyD,sBAAsB,qBAA3BjyD,CAAiDqvC,IAErDqnJ,aAAc,SAAS0K,GACnB,IAAIz9L,EAAO3D,KACPuuH,EAAYvuH,KAAK4Y,OAAO,SACxBg8L,EAAmB,eAAUrmF,GAC7B7mE,EAAgB/jD,EAAKiV,OAAO,iBAC5BrO,EAAQqqM,EAAmBrmF,EAAYvuH,KAAK60M,qBAAqBzT,GACrE,GAAI,eAAU72L,GAAQ,CAClB,IAAIuqM,EAAiB,GACrB,eAAKvqM,GAAO,SAAUnJ,EAAOyI,GACrBlG,EAAKoxM,kBAAkBlrM,KACvBA,EAAOlG,EAAKuwF,aAAarqF,GACzB69C,GAAiBA,EAAc79C,GAC3B,eAASA,KAAS,IAAU,QAAgBmrM,OAAOnrM,EAAK0wC,UACxDu6J,EAAe7xM,KAAK4G,OAI3BlG,EAAKmwM,cAAcl6M,QAAWg7M,GAC/BjxM,EAAKsxM,oBAAoB1qM,GAE7BvK,KAAKk1M,UAAUJ,GACf90M,KAAKm1M,eAGblB,mBAAoB,WAChBj0M,KAAK8zM,cAAc5yM,SAAQ,SAAUixD,GACjCA,OAEJnyD,KAAK8zM,cAAgB,IAEzBmB,oBAAqB,SAAS1qM,GAC1B,IAAI5G,EAAO3D,KACP+jE,EAAQpgE,EAAKyxM,YACjB7qM,EAAMrJ,SAAQ,SAAU2I,GAChB,eAASA,IAAS,eAAUA,EAAK0wC,UAAY,eAAWwpB,IACxDpgE,EAAKmwM,cAAc7wM,KAAK8gE,GAAM,WAC1B,OAAO,QAAgBixI,OAAOnrM,EAAK0wC,YACnC,WACA52C,EAAK+yL,aAAa/yL,EAAKiV,OAAO,eAC9BjV,EAAK4pH,YACL,CACAzvB,eAAe,SAK/B+2G,qBAAsB,SAASzT,GAC3B,IAAIniM,EAAS,GAQb,OAPI,eAAUmiM,IACV,eAAKA,GAAY,SAAU/lL,GACvBpc,EAAOgE,KAAK,CACRoY,UAAWA,OAIhBpc,GAEX81M,kBAAmB,SAASlrM,GACxB,IAAIwrM,EAAYxrM,EAAKwR,WAAaxR,EAC9BgnE,EAAW7wE,KAAKo0M,gBAAgBiB,GACpC,QAAS,eAAWxkI,KAAc,QAAgB9wD,UAAU8wD,KAEhEqjB,aAAc,SAASrqF,GASnB,GARI,kBAAoBA,IACpBA,EAAO,CACHwR,UAAWxR,IAGf,kBAAoBA,GAASA,EAAKs/C,WAClCt/C,EAAKs/C,SAAW0gJ,KAEf,eAAUhgM,EAAKm/C,aAAe,eAAUn/C,EAAKwR,WAAY,CAC1D,IAAIxZ,EAAQ7B,KAAKo0M,gBAAgBvqM,EAAKwR,WACtCxR,EAAKm/C,WAAa,eAAUnnD,GAAS7B,KAAKs1M,yBAAyB,eAAKzzM,IAAUyxM,GAGlF,IAAIiC,EADJ,eAAiB1rM,EAAKm/C,aAEtBn/C,EAAK0qM,wBAA0B,QAAUgB,EAAwB1rM,EAAK0qM,+BAA4B,IAAWgB,GAAwBA,GAEzI,OAAO1rM,GAEXyrM,yBAA0B,SAASvgM,GAC/B,OAAQA,GACJ,IAAK,SACD,MAAO,cACX,IAAK,OACD,MAAO,YACX,IAAK,UACD,MAAO,aACX,QACI,MAAO,cAGnBogM,WAAY,WACR,gBAAiBn1M,KAAKgsF,OAAQ,gBAC9BhsF,KAAKw1M,gBAETA,aAAc,WACVx1M,KAAKgsF,OAAOlqF,MAAK,SAAU2zM,EAAOC,GAC9B,IAEIz2M,EAFA02M,EAASF,EAAMj3J,aACfo3J,EAASF,EAAMl3J,aASnB,OANIv/C,EADA02M,EAASC,EACA,EACFD,EAASC,GACN,EAED,EAEN32M,MAGfoqG,YAAa,WACTrpG,KAAK0/L,kBAAkBmW,QACvB71M,KAAK6W,WAAWsB,SAAS4wL,IACzB/oM,KAAKC,WACLD,KAAK81M,wBAETC,gBAAiB,WACb,OAAO,eAAUpC,MAA0BA,IAE/CmC,qBAAsB,WAClB,IAAIE,EAAgB,GACpB,GAAIh2M,KAAKgsF,QAAUhsF,KAAKgsF,OAAOpyF,OAAQ,CACnC,IAAI4tD,EAAWxnD,KAAKi2M,eAChBxgM,EAAa,eAAE,SAAS2C,SAASpY,KAAK6W,YAC1C7W,KAAKk2M,yBAAyB1uJ,GAC9B,IAAI2uJ,EAAcn2M,KAAKo2M,uBACvBp2M,KAAKq2M,eAAiBr2M,KAAKiZ,iBAAiBxD,EAAY,GAAezV,KAAKs2M,wBAAwBH,EAAa3uJ,EAAUwuJ,IACtH,kBACDh2M,KAAKu2M,iBAAiBP,KAIlCQ,yBAA0B,SAAS5yM,GAC/B5D,KAAK+4G,YAETw9F,iBAAkB,SAASP,GACvB,IAAIryM,EAAO3D,KACX,eAAKg2M,GAAe,SAAUj3M,EAAG03M,GAC7B,OAAQA,EAAKttJ,UACT,IAAK,QACDkqJ,GAAgBoD,GAChB,MACJ,IAAK,SACD9yM,EAAK+yM,kBAAkBD,GACvB,MACJ,QACI9yM,EAAKgzM,iBAAiBF,QAItCH,wBAAyB,SAASH,EAAa3uJ,EAAUwuJ,GACrD,IAAIryM,EAAO3D,KACPynD,EAAmB9jD,EAAKiV,OAAO,oBAC/Bg+L,EAAanvJ,GAAoBA,EAAiBrL,GACtD,MAAO,CACH0nH,mBAAoB9jK,KAAKw2M,yBAAyBh7L,KAAKxb,MACvD+jK,gBAAiBpgK,EAAKoyM,kBAAoBpC,GAAuBC,GACjErS,gBAAiB,WACb,IAAIA,EAAkB59L,EAAKiV,OAAO,mBAC9Bi+L,EAAqBlzM,EAAKkzM,qBAC1BtV,IACA59L,EAAKkT,WAAW09C,YAAYs0I,GAA2BgO,GACvDtV,EAAgBsV,KAGxBpgK,eAAgB,SAAS7yC,GACjB,kBACAD,EAAK4yM,iBAAiBP,GAEtBryM,EAAKiV,OAAO,oBACZjV,EAAKkT,WAAW09C,YAAYs0I,GAA2BllM,EAAKkzM,mBAAmBjzM,EAAEgO,aAGzF80G,aAAc,SAAS9iH,EAAGitE,EAAUi6B,GAChC,GAAKlnG,EAAEonD,SAAP,CAGA,IAAIi/C,EAAe,eAAEa,GACjBgsG,EAAkClzM,EAAEonD,SAAS9tC,IAAMsqC,EACnD39C,EAAOlG,EAAKqoF,OAAOpoF,EAAEonD,SAASkU,IAAM43I,GACxC,GAAKjtM,EAAL,CAGA,IAAIktM,EAAmB,CAACltM,EAAK+xC,UAC7BquD,EAAa11C,YAAY20I,GAA4BvlM,EAAKkzM,mBAAmB72M,OACzE,IAAM4D,EAAEonD,SAAS9tC,KACjB65L,EAAiB9zM,KAAKswM,IAEtB,IAAM3vM,EAAEonD,SAASkU,KACjB63I,EAAiB9zM,KAAKwwM,IAEtB5pM,EAAKs/C,WAAa0gJ,IAAoBlmM,EAAKiV,OAAO,WAClDqxF,EAAa9xF,SAASgxL,IAE1B,IAAI6N,EAAepzM,EAAEonD,SAASkU,MAAQ1X,EAAW,GAAK5jD,EAAEonD,SAASkU,IAAMt7D,EAAEonD,SAASuR,UAAY/U,EAC1F4+I,EAAYziM,EAAKszM,gBACjBC,EAAYtzM,EAAEonD,SAAS9tC,MAAQkpL,EAAY,EAC3C4Q,GACAD,EAAiB9zM,KAAKywM,IAEtBwD,GACAH,EAAiB9zM,KAAKuwM,IAEtB,UAAY3pM,EAAKs/C,WACjB4tJ,EAAiB9zM,KAAK2lM,IACtBmO,EAAiB9zM,KAAKU,EAAKiV,OAAO,iBAC9B,eAAU/O,EAAKq1D,MACf63I,EAAiB9zM,KAAK,UAAY4G,EAAKq1D,MAG/C82I,EAAc/yM,KAAK,CACfkmD,SAAUt/C,EAAKs/C,SACft/C,KAAMA,EACNyqD,QAAS21C,EACT+iG,wBAAyB+J,OAGjClU,KAAMl/L,EAAKwzM,eAAe3vJ,GAC1Bua,KAAMp+D,EAAKwzM,eAAexzM,EAAKszM,iBAAiB,GAChD78L,WAAY+7L,EACZ9tJ,cAAe1kD,EAAKiV,OAAO,iBAC3BkqL,oBAAoB8T,GAAqB,OAGjDX,aAAc,WACV,IAAIzuJ,EAAWxnD,KAAK4Y,OAAO,YACvB6uC,EAAmBznD,KAAK4Y,OAAO,oBACnC,GAAI6uC,EAAkB,CAClB,IAAI2vJ,EAAep3M,KAAK4Y,OAAO,QAAQy+L,wBAClCD,IACDA,EAAe,iBAAc,eAAuBp3M,KAAK4Y,OAAO,kBAAoB,MAExF4uC,EAAWC,EAAiB2vJ,IAAiB5vJ,EAEjD,GAAI,SAAWA,EAAU,CACrB,GAAIxnD,KAAKs3M,gBACL,OAAOt3M,KAAKs3M,gBAEhBt3M,KAAKs3M,gBAAkB9vJ,EAAWxnD,KAAKu3M,kBAE3C,OAAO/vJ,EAAW,EAAI,EAAIA,GAE9B+vJ,gBAAiB,WACb,IAAK,iBACD,OAAO,EAEX,IAAIzvJ,EAAc9nD,KAAK4Y,OAAO,eAC1BvN,EAAQ,eAASrL,KAAK6W,YACtBi1E,EAAa9rF,KAAKgsF,OAAOpyF,OACzB49M,EAAchmM,KAAKE,MAAMrG,EAAQy8C,IAAgB,EACrD,OAAOgkC,EAAa0rH,EAAc1rH,EAAa0rH,GAEnDC,yBAA0B,WACtB,OAAOz3M,KAAKs3M,iBAAmBt3M,KAAKu3M,oBAAsBv3M,KAAKs3M,iBAEnEpB,yBAA0B,SAAS1uJ,GAC/B,IACI39C,EACA6tM,EAEAhsM,EACAjQ,EALA8O,EAAQvK,KAAKgsF,OAAOh4E,MAAM,GAG1B/U,EAAS,GAGb,IAAKxD,EAAI,EAAGA,EAAI8O,EAAM3Q,OAAQ6B,IAM1B,GALAoO,EAAOU,EAAM9O,GACbwD,EAAOgE,KAAK4G,IACR7J,KAAK4Y,OAAO,oBAAsB/O,EAAKy9C,iBAAmBz9C,EAAKk/C,WAC/Dl/C,EAAKq1D,IAAMl/D,KAAK23M,eAAe14M,EAAOrF,OAAS,EAAG4tD,IAElD39C,EAAKk/C,QAAU,GAAKl/C,EAAKq1D,IAAMr1D,EAAKk/C,SAAWvB,EAAU,CAEzD,IADAkwJ,EAAmB,GACdhsM,EAAI,EAAGA,EAAI7B,EAAKk/C,QAAU,EAAGr9C,IAC9BgsM,EAAiBz0M,KAAK,CAClB20M,QAAQ,IAGhB34M,EAASA,EAAO0oB,OAAO+vL,eAEhB7tM,EAAKk/C,QAGpB/oD,KAAKk1M,UAAUj2M,IAEnB04M,eAAgB,SAASv2M,EAAOomD,GAC5B,OAAOpmD,EAAQomD,GAEnB0tJ,UAAW,SAAS3qM,GAChBvK,KAAKgsF,OAASzhF,EACdvK,KAAKs3M,gBAAkB,MAE3BlB,qBAAsB,WAClB,IAGIvsM,EACApO,EAJA8O,EAAQvK,KAAKgsF,OACbxkC,EAAWxnD,KAAKi2M,eAChBh3M,EAAS,GAGb,IAAKxD,EAAI,EAAGA,EAAI8O,EAAM3Q,OAAQ6B,IAE1B,GADAoO,EAAOU,EAAM9O,IACRoO,EAAK+tM,OAAQ,CACd,IAAIC,EAAgB,CAChB7sJ,SAAU,CACN9tC,IAAK3b,SAAS9F,EAAI+rD,GAClB0X,IAAKl/D,KAAK23M,eAAel8M,EAAG+rD,KAGhC,eAAU39C,EAAK8qC,YACfkjK,EAAcljK,SAAW9qC,EAAK8qC,UAE9B,eAAU9qC,EAAK0wC,WACfs9J,EAAct9J,QAAU1wC,EAAK0wC,SAE7B,eAAU1wC,EAAKk/C,WACf8uJ,EAAc7sJ,SAASuR,QAAU1yD,EAAKk/C,SAEtC,eAAUl/C,EAAKiuM,WACfD,EAAc7sJ,SAAS2jB,QAAU9kE,EAAKiuM,SAE1C74M,EAAOgE,KAAK40M,GAGpB,OAAO54M,GAEX84M,iBAAkB,SAAStiM,GACvB49L,GAAgB,CACZ59L,WAAYA,KAGpBihM,kBAAmB,SAAS9lM,GACxB,IACI/G,KAAMA,EACNyqD,QAASA,EACT04I,wBAAyBA,GACzBp8L,GAEAorF,aAAcA,EACdk3G,eAAgBA,GAChBL,GAAiB,CACjBhpM,KAAMA,EACNyqD,QAASA,EACT04I,wBAAyBA,EACzBrkJ,gBAAiB3oD,KAAK4Y,OAAO,mBAC7Bs0L,wBAAyBltM,KAAKiZ,iBAAiBuC,KAAKxb,QAExDA,KAAK0/L,kBAAkB5vL,IAAI,CACvBjG,KAAMA,EACN+pL,eAAgBsf,EAChBvf,KAAM9pL,EAAK8pL,KACX5rF,eAAgB/L,KAGxB26G,iBAAkB,SAAS1oH,GACvB,IAAIu9G,GAEA3hM,KAAMA,EACNyqD,QAASA,EACT04I,wBAAyBA,GACzB/+G,EACAq/G,EAActtM,KAAKo0M,gBAAgBvqM,EAAKwR,WACxCkyL,GAAkC,EACtC,QAAI,IAAWD,EAAa,CACxB,IACIiH,wBAAyBA,EACzBvrJ,WAAYA,EACZ3tC,UAAWA,GACXxR,EACJ0jM,EAAkCvtM,KAAKs0M,iCAAiC,CACpEC,wBAAyBA,EACzBvrJ,WAAYA,EACZ3tC,UAAWA,IAGnB,IAAIzZ,EAAOiI,EAAKwR,WAAaxR,EAAKjI,MAE9B+vM,sBAAuBA,EACvB/d,eAAgBA,EAChB53F,aAAcA,GACd01G,GAAgB3E,GAAgC,CAChDz4I,QAASA,EACT04I,wBAAyBA,EACzBnjM,KAAMA,EACNjI,KAAMA,EACN0rM,YAAaA,EACbC,gCAAiCA,EACjCN,oBAAqBjtM,KAAKg4M,iBAC1B9K,wBAAyBltM,KAAKiZ,iBAAiBuC,KAAKxb,MACpDmtM,cAAentM,KAAK+1M,kBACpB3I,kBAAmBptM,KAAK4Y,OAAO,iBAC/By0L,wBAAyBrtM,KAAK4Y,OAAO,mBACrC+vC,gBAAiB3oD,KAAK4Y,OAAO,mBAC7B40L,yBAA0BxtM,KAAK4Y,OAAO,sBACtC60L,kBAAmBztM,KAAK4Y,OAAO,SAAW5Y,KAAK4Y,OAAO,QAAQA,OAAO,eACrE2vC,oBAAqBvoD,KAAK4Y,OAAO,uBACjC80L,qBAAsB1tM,KAAK4Y,OAAO,iBAClCmjC,SAAUlyC,EAAKkyC,SAAW/7C,KAAKq0D,aAAaxqD,EAAKkyC,UAAY,KAC7D4xJ,OAAQ3tM,KAAK4Y,OAAO,SAAW5Y,KAAK4Y,OAAO,QAAQq/L,UAAUr2M,GAC7DgsM,mBAAoB5tM,KAAKk4M,kBACzBrwJ,UAAW7nD,KAAK4Y,OAAO,gBAE3B,QAAU4yL,EAAexrM,KAAK4Y,OAAO,8BAA2B,IAAW4yL,GAAwBA,IAC/F5X,GAAkB/pL,EAAKwR,WACvBrb,KAAKm4M,eAAevkB,EAAgB/pL,EAAKwR,UAAWxR,EAAKm/C,WAAY2oJ,GAEzE3xM,KAAK0/L,kBAAkB5vL,IAAI,CACvBjG,KAAMA,EACN+pL,eAAgBA,EAChBD,KAAM9pL,EAAK8pL,KACX5rF,eAAgB/L,KAGxBk8G,gBAAiB,WACb,MAAO,CACHzvJ,iBAAkBzoD,KAAK4Y,OAAO,oBAC9BuvC,aAAcnoD,KAAK4Y,OAAO,gBAC1B4vC,iBAAkBxoD,KAAK4Y,OAAO,oBAC9BqvC,aAAcjoD,KAAK4Y,OAAO,kBAGlCo/L,eAAgB,WACZ,OAAOh4M,KAAK4Y,OAAO,SAAW5Y,MAElCm4M,eAAgB,SAASC,EAAgB/8L,EAAW2tC,EAAYvzC,GAC5D,IAAI4iM,EAAar4M,KAAKg4M,iBACtBI,EAAetuM,GAAG,YAAY,SAAUulC,GACpCgpK,EAAWpmJ,sBAAsB,mBAAjComJ,CAAqD,OAAA59M,EAAA,WAAO40C,EAAM,CAC9Dh0B,UAAWA,QAGnBrb,KAAKs4M,eAAeF,EAAgB3iM,EAAY4F,GAChDrb,KAAKu4M,sBAAsBH,EAAgB/8L,EAAW2tC,IAE1DsvJ,eAAgB,SAASF,EAAgB3iM,EAAY4F,GACjD,IAAI1X,EAAO3D,KACP+jE,EAAQpgE,EAAKyxM,YACjB,GAAK,eAAWrxI,GAAhB,CAGA,IAAI5R,EAAU4R,GAAM,WAChB,OAAOpgE,EAAKywM,gBAAgB/4L,MAC5B,WACA,IAAIm9L,EAAa70M,EAAKywM,gBAAgB/4L,GACtC,GAAI,aAAe+8L,EAAe7lJ,KAAM,CACpC,IAAI+6I,EAAc8K,EAAex/L,OAAO,SACxC,GAAI4/L,IAAelL,GAAe,SAASmL,EAAQC,GAC3C,IAAK75M,MAAMuY,QAAQqhM,KAAY55M,MAAMuY,QAAQshM,IAAWD,EAAO7+M,SAAW8+M,EAAO9+M,OAC7E,OAAO,EAEX,IAAK,IAAI6B,EAAI,EAAGA,EAAIg9M,EAAO7+M,OAAQ6B,IAC/B,GAAIg9M,EAAOh9M,KAAOi9M,EAAOj9M,GACrB,OAAO,EAGf,OAAO,EATmB,CAU5B+8M,EAAYlL,GACd,OAGR8K,EAAex/L,OAAO,QAAS4/L,KAC/B,CACA36G,MAAM,EACNC,eAAe,IAEnB,OAAah0F,GAAG2L,EAAYkD,GAAA,KAAaw5C,KAE7CijJ,UAAW,WACP,IAAK,eAAUp1M,KAAK24M,QAAS,CACzB,IAAIC,EAAe54M,KAAK4Y,OAAO,QAC/B5Y,KAAK24M,OAASC,GAAgBA,EAAahgM,OAAO,kCAEtD,OAAO5Y,KAAK24M,QAEhB1/L,iBAAkB,SAASu/G,EAAS/5H,EAAM+M,GACtC,IAAIqtM,EAAgB74M,KAAK4Y,OAAO,YAC5BxK,EAAWpO,KAAKC,SAASu4H,EAAS/5H,EAAM+M,GAO5C,OANAqtM,GAAiBzqM,EAASwK,OAAO,WAAYigM,GAC7C74M,KAAK8J,GAAG,iBAAiB,SAAUulC,GAC3B,aAAeA,EAAKztC,MAAS,eAAU4J,EAAc08C,WACrD95C,EAASwK,OAAOy2B,EAAKztC,KAAMytC,EAAKxtC,UAGjCuM,GAEX+oM,eAAgB,SAAS/kM,EAAO0mM,GAC5B,IACIv4F,EACA9kH,EAFAwD,EAAS,GAGb,IAAKxD,EAAI,EAAGA,EAAI2W,EAAO3W,IACnB8kH,EAAQ,CACJA,MAAO,GAEPu4F,IACAv4F,EAAM0hD,SAAW,QAErBhjK,EAAOgE,KAAKs9G,GAEhB,OAAOthH,GAEXg4M,cAAe,WACX,OAAOzlM,KAAKy9E,KAAKjvF,KAAKgsF,OAAOpyF,OAASoG,KAAKi2M,iBAE/ClC,yBAA0B,SAASgF,GAC/B,IAAI3X,EAAaphM,KAAK4Y,OAAO,cACzB,eAASwoL,IACT5jM,OAAOw7M,oBAAoB5X,GAAYlgM,QAAQioH,UAAmBnpH,KAAKgxG,oBAAoB,cAAgBmY,IAE3G,eAAS4vF,IACTv7M,OAAOw7M,oBAAoBD,GAAe73M,QAAQioH,GAAYnpH,KAAKgxG,oBAAoB,cAAgBmY,IAAY,IAG3H,aAAa/6G,GACTpO,KAAKi5M,mCAAoC,EACzC7qM,EAASgvE,QACTp9E,KAAKi5M,mCAAoC,EACzC7qM,EAASwK,OAAO,WAAW,IAE/B,eAAey2B,GACX,GAAI,IAAMA,EAAKmtC,SAASs9D,OAAO,eAG/B,OAAQzqG,EAAKztC,MACT,IAAK,mBACL,IAAK,mBACL,IAAK,eACL,IAAK,eACD5B,KAAKk5M,sBAAwB,KAC7Bl5M,KAAKszD,cACL,MACJ,IAAK,aACDtzD,KAAK+zM,yBAAyB1kK,EAAKxtC,OAC/B7B,KAAK4Y,OAAO,SACP,eAAcy2B,EAAKxtC,QACpB7B,KAAK0/L,kBAAkBv9B,KAAK,CAACpjK,EAAGi1L,KAC5B,GAAI,eAAUA,EAAgBnqL,MAAO,CACjC,IAAIwR,EAAY24K,EAAgBnqL,KAAKwR,UACrC,GAAIA,GAAa,eAAU24K,EAAgBJ,gBAAiB,CACxD,IAAIulB,EAAc,gBAAc99L,GAC5B+9L,EAAYD,EAAY9pK,EAAKxtC,QAE7B0yM,wBAAyBA,EACzBvrJ,WAAYA,GACZgrI,EAAgBnqL,UAChB,IAAWuvM,GAAap5M,KAAKs0M,iCAAiC,CAC1DC,wBAAyBA,EACzBvrJ,WAAYA,EACZ3tC,UAAWA,IAEf24K,EAAgBJ,eAAeh7K,OAAO,QAASwgM,GAE/Cp5M,KAAKq5M,aAAarlB,EAAgBJ,qBAOtD5zL,KAAKg0M,kBAAkB3kK,EAAKxtC,OAC5B7B,KAAKszD,eAET,MACJ,IAAK,QACDtzD,KAAKi0M,qBACLj0M,KAAKg0M,kBAAkB3kK,EAAKxtC,OAC5B7B,KAAKszD,cACL,MACJ,IAAK,kBACL,IAAK,gBACL,IAAK,YACL,IAAK,kBACDtzD,KAAKszD,cACL,MACJ,IAAK,gBACDtzD,KAAK02L,aAAa12L,KAAK4Y,OAAO,eAC9B5Y,KAAKszD,cACL,MACJ,IAAK,WACDtzD,KAAKs5M,iBACL,MACJ,IAAK,cACG,SAAWt5M,KAAK4Y,OAAO,aACvB5Y,KAAKs5M,iBAET,MACJ,IAAK,WACD,MACJ,IAAK,QACDt5M,KAAKC,SAASovC,GACV,SAAWrvC,KAAK4Y,OAAO,aACvB5Y,KAAKs5M,iBAET,MACJ,IAAK,qBACD,MACJ,QACIt5M,KAAKC,SAASovC,KAG1BiqK,eAAgB,WACZt5M,KAAKs3M,gBAAkB,KACvBt3M,KAAKszD,eAET,sBAAsB8kJ,EAAgB/8L,GAClCrb,KAAK8J,GAAG,gBAAiBulC,IACjBA,EAAKmtC,WAAa,cAAc70D,OAAOtM,IACvC+8L,EAAepnJ,8BAA8B,QAAS3hB,EAAKxtC,SAGnEu2M,EAAetuM,GAAG,eAAgBulC,IAC9B,IAAIkqK,EAAuB,eAASlqK,EAAKxtC,QAAUhD,MAAMuY,QAAQi4B,EAAKxtC,OACjE7B,KAAKi5M,mCAAuCM,GAAwBlqK,EAAKxtC,QAAUwtC,EAAKktC,eACzFv8E,KAAKq0M,kBAAkBh5L,EAAWg0B,EAAKxtC,UAInDgqH,kBAAmB,WACX,SAAW7rH,KAAK4Y,OAAO,aAAe5Y,KAAKy3M,4BAC3Cz3M,KAAK+oF,gBAAgB0G,UAAU,wBAGvC+pH,WAAY,SAASp1M,EAAMvC,GACvB,IAAI8B,EAAO3D,KACP,eAASoE,GACT,eAAKA,GAAM,SAAUiX,EAAWm9L,GAC5B70M,EAAK0wM,kBAAkBh5L,EAAWm9L,MAE/B,kBAAoBp0M,GAC3BT,EAAK0wM,kBAAkBjwM,EAAMvC,IAGrC43M,UAAW,SAASzuM,GAChB,OAAOhL,KAAK0/L,kBAAkBga,8BAA8B1uM,IAAUhL,KAAK0/L,kBAAkBia,yBAAyB3uM,IAE1H6rM,mBAAoB,SAASjlM,GACzB,IAAIgoM,EAAgB55M,KAAKq2M,gBAAkBzkM,EAC3C,GAAIgoM,EACA,OAAOA,EAAchhM,OAAO,yBAA2BghM,EAAchhM,OAAO,uBAGpFihM,oBAAqB,WACjB,OAAO75M,KAAK0/L,qBAGpB,eAAkB,kBAAmBmU,IACtB,IC9xBXiG,GAA2B,uBAC3B,GAAaA,GAA2B,QACxCC,GAAgBD,GAA2B,aAC3CE,GAAoB,QAAiBjqJ,QAAQ,CAC7C,qBACI,OAAO,OAAAt1D,EAAA,WAAOuF,KAAKC,WAAY,CAC3Bw1C,mBAAmB,EACnBU,WAAY,QAGpB,yBACIn2C,KAAKC,WACL,OAAAxF,EAAA,WAAOuF,KAAKgxG,oBAAqB,CAC7BroD,iBAAiB,KAGzB,QACI3oD,KAAKC,WACLD,KAAKyqM,0BAET,yBACI,IAAI5zL,EAAW7W,KAAK6W,WAChBU,EAAQvX,KAAK4Y,OAAO,oBAAsB,QAAiBozL,UAAUn1L,EAAU7W,KAAKisM,gBAAgBp1L,IACpGojM,EAAc,QAAiBC,SAAS3iM,GAC5CvX,KAAKm6M,oBACLn6M,KAAK8qM,eAAgB,EACrB9qM,KAAKgrM,iBAAmBzzL,EACxBvX,KAAKo6M,kBAAoBp6M,KAAKq6M,wBAAwB7+L,KAAKxb,MAC3Di6M,EAAYnwM,GAAG,YAAa9J,KAAKo6M,oBAErC,oBACI,IAAIH,EAAc,QAAiBK,eAAet6M,KAAKgrM,kBACvDiP,GAAeA,EAAYhpJ,IAAI,YAAajxD,KAAKo6M,oBAErD,iBAAiBG,EAAYhwM,GACzB,IAAIiwM,EAAe,GAWnB,OAVA,eAAKD,GAAY,SAAUx7M,EAAGgjM,GAC1B,IAAI0Y,EAAa,eAAKlwM,GAAO,SAAUV,GACnC,GAAIA,EAAKk4L,YAAcA,EACnB,OAAO,KAGX0Y,EAAW7gN,SACX4gN,EAAeA,EAAa7yL,OAAO8yL,OAGpCD,GAEX,wBAAwB7pI,GACpB,IAAIpmE,EAAQvK,KAAK06M,iBAAiB/pI,EAAO4pI,WAAY,eAAI5pI,EAAOs5H,aAAa,SAAU8B,GACnF,MAAO,CACHxvM,KAAMwvM,EAAKhzL,QACXgpL,UAAWgK,EAAKhK,UAChB3gM,MAAO2qM,EAAK3qM,WAGpBpB,KAAKu6M,WAAa5pI,EAAO4pI,WACzB,eAAKv6M,KAAKu6M,WAAY,CAACx7M,EAAGgjM,KACtB,GAAIA,EAAU4Y,qBAAuB36M,KAAM,CACvC,IAAIq0G,EAAUr0G,KAAK46M,uBAAuBp/L,KAAKxb,MAC/C+hM,EAAUj4L,GAAG,YAAauqG,GAC1B0tF,EAAUj4L,GAAG,aAAa,WACtBi4L,EAAU9wI,IAAI,YAAaojD,GAC3B0tF,EAAU4Y,mBAAqB,KAC/BtmG,EAAU,QAEd0tF,EAAU4Y,mBAAqB36M,QAGvCA,KAAK4Y,OAAO,QAASrO,IAEzB,uBAAuB4F,GACnB,IACIwlI,QAASA,EACTosD,UAAWA,EACXkI,YAAaA,GACb95L,EACA5F,EAAQvK,KAAK4Y,OAAO,SACpBiiM,GAAe,EACfr2G,EAAY,EACZkb,EAAQ,WACR,IAAI71G,EAAOU,EAAMi6F,GACjB,GAAI36F,EAAKk4L,YAAcA,EAAW,CAC9B,IAAI+Y,EAAY,eAAK7Q,GAAe,IAAI,SAAU8B,GAC9C,OAAOA,EAAK3qM,QAAUyI,EAAKzI,SAC3B,GACJ,GAAIu0I,IAAYmlE,EAGZ,OAFAvwM,EAAM85D,OAAOmgC,EAAW,GACxBq2G,GAAe,EACR,WAEPC,EAAU/hM,UAAYlP,EAAKtN,OAC3BsN,EAAKtN,KAAOu+M,EAAU/hM,QACtB8hM,GAAe,GAGvBr2G,KAEJ,MAAOA,EAAYj6F,EAAM3Q,OACV8lH,IAKf,eAAKuqF,GAAa,SAAUlrM,EAAGgtM,GAC3B,IAAIgP,EAAY,eAAKxwM,GAAO,SAAUV,GAClC,OAAOA,EAAKk4L,YAAcA,GAAal4L,EAAKzI,QAAU2qM,EAAK3qM,SAC3D,GACC25M,IACDxwM,EAAMtH,KAAK,CACP1G,KAAMwvM,EAAKhzL,QACXgpL,UAAWA,EACX3gM,MAAO2qM,EAAK3qM,QAEhBy5M,GAAe,MAGnBA,IACAtwM,EAAQvK,KAAK06M,iBAAiB16M,KAAKu6M,WAAYhwM,GAC/CvK,KAAK4Y,OAAO,QAASrO,KAG7B,cACIvK,KAAK6W,WAAWsB,SAAS2hM,IACzB95M,KAAKC,YAET,eAAeovC,GACX,OAAQA,EAAKztC,MACT,IAAK,kBACD5B,KAAKyqM,yBACL,MACJ,QACIzqM,KAAKC,SAASovC,KAG1B27D,WAAY,IAAM,GAClBJ,aAAc,IAAMmvG,GACpB,uBAAuBppI,GACnB,OAAa7mE,GAAG6mE,EAAOm6B,YAAa,SAAS,WACzCn6B,EAAOE,SAASkxH,WAAapxH,EAAOE,SAASkxH,UAAUptI,OAASgc,EAAOE,SAASkxH,UAAUptI,YAGlG,WACI30D,KAAKC,WACLD,KAAKm6M,qBAET,yBACIn6M,KAAKyqM,4BAGb,eAAkB,sBAAuBuP,IAC1B,UC/JXgB,GAA0B,qBAC1B,GAAkB,eAClB,GAA2B,uBAC/B,MAAM,WAAwB,QAC1B,qBACI,OAAOt0G,MAAMC,qBAEjB,QACID,MAAMiB,QACN,QAAiBuyG,SAASl6M,MAE9B,cACI,IAAI6W,EAAW7W,KAAK6W,WACpBA,EAASsB,SAAS6iM,IAClBnkM,EAASiB,KAAK,IAAI6P,OAAO,KAAkBw6I,MAAK,SAAUpjK,EAAGk8M,GACzD,GAAUt3G,YAAY,eAAEs3G,IAAqBxQ,4BAEjD5zL,EAASiB,KAAK,IAAI6P,OAAO,KAA2Bw6I,MAAK,SAAUpjK,EAAGm8M,GAClE,GAAkBv3G,YAAY,eAAEu3G,IAAmBC,4BAEvDz0G,MAAM2C,cAEV,WACI,OAAO,QAAiB+xG,cAAcp7M,MAE1C,QACI,OAAO,QAAiBq7M,WAAWr7M,MAEvC,WACI,QAAiBs7M,YAAYt7M,MAC7BA,KAAK6W,WAAWwB,YAAY2iM,IAC5Bt0G,MAAMmpB,WAEV,gBACI,OAAO,GAGf,eAAkB,oBAAqB,IACxB,I,aC+CX,GAAsB,mBACtB0rF,GAAuC,CAAC,QAAS,aAAc,kBAAmB,WAClFC,GAAO,OAAOzrJ,QAAQ,CACtB43C,MAAO,WACH3nG,KAAKC,WACLD,KAAKy7M,uBAAyB,GAC9Bz7M,KAAK0/L,kBAAoB,IAAI,GAC7B1/L,KAAK07M,gBAAkB,GACvB17M,KAAK27M,4BAETh1G,mBAAoB,WAChB,OAAO,OAAAlsG,EAAA,WAAOuF,KAAKC,WAAY,CAC3B27M,OAAQ,MAAQ,IAAI,QACpBj0J,SAAU,GACVH,SAAU,EACVa,cAAe,OACfZ,sBAAkB,EAClBG,cAAe,OACfM,UAAU,EACVF,mBAAoB,KACpBN,cAAe,KACfK,iBAAkB,KAClBD,YAAa,IACbR,iBAAiB,EACjBC,4BAA4B,EAC5Bs0J,qBAAqB,EACrBtzJ,qBAAqB,EACrBE,kBAAkB,EAClBD,kBAAkB,EAClBL,aAAc,IACdF,aAAc,OAAoB5uD,OAAO,uBACzC+uD,gBAAiB,OAAoBvtD,aAAa,0BAClD6tD,uBAAuB,EACvBn+C,WAAO,EACP+9C,kBAAkB,EAClBK,qBAAiB,EACjB69G,YAAa,kBAASinC,kBACtB5lJ,UAAW,aAGnB4oD,qBAAsB,WAClB,OAAOzwG,KAAKC,WAAW0nB,OAAO,CAAC,CAC3B+oF,OAAQ,WACJ,OAAO,kBAEX56F,QAAS,CACLyyC,qBAAqB,EACrBX,cAAe,WAI3BmpD,uBAAwB,WACpB/wG,KAAKC,WACL,OAAAxF,EAAA,WAAOuF,KAAKgxG,oBAAqB,CAC7BrpD,UAAU,EACVgB,iBAAiB,KAGzBmzJ,kBAAmB,SAASjlM,GACxB,OAAOtV,SAASsV,EAAS66C,KAAKg4I,MAElCqS,uBAAwB,SAAStmM,EAAYrU,GACzC,IAAI0U,EAAU5V,UAAUtG,OAAS,QAAK,IAAWsG,UAAU,GAAKA,UAAU,GAAK,GAC3E8vM,EAAmB9vM,UAAUtG,OAAS,EAAIsG,UAAU,QAAK,EACzD87M,EAAiBlmM,EAAQmmM,YAAcrT,GAAmBD,GAA4BvnM,EACtF86M,EAA2BpmM,EAAQqmM,cAAgB,SAASx0L,OAAO6hL,GAAsB,KAAO,GACpGqG,GAA6Bp6L,EAAY,IAAIkS,OAAOq0L,GAAgBr0L,OAAOu0L,GAA2BlM,IAG1GoM,kBAAmB,SAAS3mM,EAAY0mM,EAAeF,EAAaz0J,EAAUwoJ,GAC1ExoJ,EAAWy0J,EAAc,EAAIz0J,GAAYxnD,KAAK87M,kBAAkBrmM,GAChE,IAIIha,EAJA4gN,EAAqB,CACrBF,cAAeA,EACfF,YAAaA,GAGjB,IAAKxgN,EAAI,EAAGA,EAAI+rD,EAAU/rD,IACtBuE,KAAK+7M,uBAAuBtmM,EAAYha,EAAG4gN,EAAoBrM,IAGvEsM,0BAA2B,SAAS7mM,EAAYF,EAAaiyC,GACzD,IAAI+0J,EAAsB,eAAU/0J,GAAY,IAAMiiJ,GAAwBjiJ,EAAW,GACrFg1J,EAAgB,IAAM7T,GAA4BpzL,EAAc,OAAS0zL,GAA2B,OAASR,GAAmB8T,EACpI,OAAO9mM,EAAWqC,KAAK0kM,IAE3BC,4BAA6B,SAAShnM,EAAY+xC,EAAU20J,EAAenM,GACvE,IAAI,IAAShwM,KAAK4Y,OAAO,uBAErB,IADA,IAAI8jM,EAAmBjnM,EAAWqC,KAAK,IAAI6P,OAAOwhL,KACzCziD,EAAW,EAAGA,EAAWl/F,EAAUk/F,IACxC1mJ,KAAK+7M,uBAAuBW,EAAkBh2D,EAAUy1D,EAAenM,GAG/E,IAAIzoJ,EAA6BvnD,KAAK4Y,OAAO,8BAC7C,GAAI2uC,EACAvnD,KAAK28M,kCAAkClnM,EAAY+xC,EAAU20J,EAAenM,OACzE,CACH,IACIv0M,EADAmhN,EAAU58M,KAAK6W,WAAWiB,KAAK,IAAM2wL,IAEzC,IAAKhtM,EAAI,EAAGA,EAAImhN,EAAQhjN,OAAQ6B,IAC5BuE,KAAKo8M,kBAAkBQ,EAAQpgM,GAAG/gB,GAAI0gN,OAAe,OAAQ,EAAQnM,KAIjF2M,kCAAmC,SAASlnM,EAAY+xC,EAAU20J,EAAenM,GAC7E,IAGItpD,EACAm2D,EACAC,EACAC,EANAV,EAAqB,CACrBF,cAAeA,GAMnB,IAAKz1D,EAAW,EAAGA,EAAWl/F,EAAUk/F,IAGpC,IAFAq2D,EAAe/8M,KAAKs8M,0BAA0B7mM,EAAYixI,GAC1D1mJ,KAAK+7M,uBAAuBgB,EAAc,EAAGV,EAAoBrM,GAC5D6M,EAAiB,EAAGA,EAAiB78M,KAAK07M,gBAAgB9hN,OAAQijN,IAAkB,CACrFE,EAAe/8M,KAAKs8M,0BAA0B7mM,EAAYixI,EAAU1mJ,KAAK07M,gBAAgBmB,IACzF,IAAIG,EAAgBh9M,KAAK87M,kBAAkBiB,GAC3C,IAAKD,EAAgB,EAAGA,EAAgBE,EAAeF,IACnD98M,KAAK+7M,uBAAuBgB,EAAcD,EAAeT,EAAoBrM,KAK7FiN,eAAgB,WACZ,OAAOj9M,KAAK4Y,OAAO,kBAEvBskM,qBAAsB,SAAS/sM,GAC3B,IACIgtM,cAAeA,EACflB,YAAaA,EACbxmM,WAAYA,EACZ0mM,cAAeA,EACf5xM,MAAOA,GACP4F,EACJ,GAAK,kBAAe,QAAUnQ,KAAKi9M,iBAAnC,CAGA,IAAIjN,EAAmBhB,GAA0BmO,EAAcjF,mBAC3D+D,EACAj8M,KAAKo8M,kBAAkB3mM,EAAY0mM,GAAe,OAAM,EAAQnM,GACzDhwM,KAAKo9M,eAAe7yM,GAC3BvK,KAAKy8M,4BAA4BhnM,EAAY0nM,EAAclH,eAAgBkG,EAAenM,GAE1FhwM,KAAKo8M,kBAAkB3mM,EAAY0mM,GAAe,EAAOgB,EAAclH,eAAgBjG,KAG/FqN,iBAAkB,WACT,eAAUr9M,KAAK4Y,OAAO,cACvB5Y,KAAK4Y,OAAO,WAAY,KAGhC0kM,qBAAsB,WACd,eAAiBt9M,KAAK4Y,OAAO,gBAC7B5Y,KAAK6W,WAAWsB,SAASyxL,KAGjCvgG,YAAa,WACT,QAAiB6wG,SAASl6M,KAAKu9M,uBAC/Bv9M,KAAKw9M,wBACLx9M,KAAKq9M,mBACLr9M,KAAK6W,WAAWsB,SAASqwL,IACzBxoM,KAAKs9M,uBACLt9M,KAAKC,WACLD,KAAKsd,QAAQ,OAAQ,OAAQtd,KAAK6W,YAC9B7W,KAAK4Y,OAAO,qBACZ5Y,KAAK+9F,oBAET/9F,KAAK+9L,gBACL/9L,KAAKy9M,2BACLz9M,KAAK09M,wBAA0B19M,KAAK29M,qBAAuB39M,KAAK49M,2BAEpEA,wBAAyB,WACrB,OAAO,iBAAc,eAAuB59M,KAAK4Y,OAAO,kBAAoB,MAEhF4kM,sBAAuB,WACnBx9M,KAAK0/L,kBAAkBmW,QACvB71M,KAAK69M,sBAAwB,IAEjCC,aAAc,SAASX,EAAelB,GAClCj8M,KAAKk9M,qBAAqB,CACtBznM,WAAYzV,KAAK6W,WACjBsmM,cAAeA,EACfhB,eAAe,EACf5xM,MAAOvK,KAAK4Y,OAAO,SACnBqjM,YAAaA,IAEjB,gBAAmBj8M,KAAK6W,WAAWiB,KAAK,IAAI6P,OAAO,YAEvDw/E,OAAQ,WACJnnG,KAAK+9M,0BACL/9M,KAAKC,WACLD,KAAK07M,gBAAkB,GACvB17M,KAAKy7M,uBAAyB,GAC9Bz7M,KAAK09M,6BAA0B,GAEnC3/G,kBAAmB,WACf,IAAIjiC,EAAqB97D,KAAK4Y,OAAO,sBACrC5Y,KAAK8+F,YAAc,IAAI,QAAW9+F,KAAK6W,WAAY,CAC/Ci3C,YAAagO,EACbG,uBAAwBH,EACxBE,aAAa,EACbvR,UAAW,OACXsR,eAAe,KAGvBiiJ,YAAa,WACT,OAAOh+M,KAAK4Y,OAAO,oBAAsB,eAAE5Y,KAAK8+F,YAAYllC,WAAa55D,KAAK6W,YAElFknM,wBAAyB,WACrB,IAAIE,EACJ,QAAUA,EAAwBj+M,KAAKk+M,2BAAwB,IAAWD,GAAiCA,EAAsBtlM,SACjI3Y,KAAKk+M,yBAAsB,EAC3Bl+M,KAAK26M,wBAAqB,GAE9B8C,yBAA0B,WACtBz9M,KAAK+9M,0BACD/9M,KAAK4Y,OAAO,2BACZ5Y,KAAKk+M,oBAAsB,eAAE,SAAS/lM,SAASwxL,IAAyBvxL,SAASpY,KAAKg+M,eACtFh+M,KAAK26M,mBAAqB36M,KAAKk+M,oBAAoBC,oBAAoB,CACnEx1J,gBAAiB3oD,KAAKu9M,wBACvBY,oBAAoB,cAG/B,cAAc5zM,EAAO6zM,EAAoBC,EAAate,GAClD,GAAIx1L,EAAO,CAEP,IADA,IAAItL,EAAS,GACJxD,EAAI,EAAGA,EAAI8O,EAAM3Q,OAAQ6B,IAAK,CACnC,IAAIoO,EAAOU,EAAM9O,GACbu+E,EAAOgmH,GAAYqe,EAAave,GAAsBrkM,EAAGskM,IACzD/L,EAAkB,CAClBnqL,KAAMA,EACN26F,UAAW/oG,EACXu+E,KAAMA,GAEN25G,EAAO3zL,KAAK0/L,kBAAkB5vL,IAAIkkL,GAMtC,GALI,eAASnqL,KACTA,EAAO,CACHwR,UAAWxR,IAGf,eAASA,GAAO,CAChB,IAAI83L,EAAe,eAAS,GAAI93L,GAChCmqL,EAAgB2N,aAAeA,EAC/BA,EAAahO,KAAOA,EACpB3zL,KAAKs+M,qBAAqB3c,GAC1B3hM,KAAKu+M,sBAAsB5c,EAAc3nH,GACzCh6E,KAAKw+M,wBAAwB7c,GACzByc,IACAzc,EAAaL,aAAekI,IAE5B7H,EAAap3L,QACbo3L,EAAap3L,MAAQvK,KAAKy+M,cAAc9c,EAAap3L,MAAO6zM,EAAoBpkI,IAEpF/6E,EAAOgE,KAAK0+L,QAEZ1iM,EAAOgE,KAAK4G,GAGpB,OAAO5K,IAGfq/M,qBAAsB,SAASz0M,GACvB,UAAYA,EAAKs/C,WACjBt/C,EAAKy9C,gBAAkB,eAAcz9C,EAAKy9C,iBAAiB,GAC3Dz9C,EAAKg4L,0BAA4Bn7E,IACzB78G,EAAKkyC,WACLlyC,EAAK60M,qBAAuB1+M,KAAKq0D,aAAaqyD,IAElD78G,EAAKkyC,SAAW/7C,KAAK2+M,mBAAmBnjM,KAAKxb,KAAM6J,IAEvDA,EAAKg4L,0BAA0Bh4L,EAAKkyC,YAG5CwiK,sBAAuB,SAAS10M,EAAMmwE,GAC9B,WAAanwE,EAAKs/C,WAClBt/C,EAAKkyC,SAAW/7C,KAAK4+M,oBAAoBpjM,KAAKxb,KAAM6J,GACpDA,EAAKi1L,KAAO9+L,KAAKy+M,cAAc50M,EAAKi1L,MAAM,EAAM9kH,GAAM,KAG9DwkI,wBAAyB,SAAS30M,GAC1BA,EAAKkyC,WACLlyC,EAAKkyC,SAAW/7C,KAAKq0D,aAAaxqD,EAAKkyC,YAG/CqhK,eAAgB,SAAS7yM,GACrB,GAAIA,EACA,IAAK,IAAI9O,EAAI,EAAGA,EAAI8O,EAAM3Q,OAAQ6B,IAAK,CACnC,IAAIoO,EAAOU,EAAM9O,GACjB,GAAI,UAAYoO,EAAKs/C,SACjB,OAAO,IAKvB40I,cAAe,WACX,IAAIp6L,EAAO3D,KACPuK,EAAQ5G,EAAKiV,OAAO,SACpB80D,EAAW/pE,EAAKq6M,cACpBzzM,EAAQ5G,EAAK86M,cAAcl0M,GAC3B5G,EAAKk7M,mBAAqBl7M,EAAKm7M,qBAAqBpxI,EAAU1tE,KAAK++M,4BAA4Bx0M,EAAO,CAClG82L,QAAQ,EACR75I,SAAU7jD,EAAKiV,OAAO,YACtB0uC,gBAAiB3jD,EAAKiV,OAAO,mBAC7ByvC,cAAeroD,KAAK4Y,OAAO,iBAC3B6uC,iBAAkBznD,KAAK4Y,OAAO,oBAC9B2oL,gBAAiB,SAAS0a,GACtBt4M,EAAKm6M,aAAatiM,KAAK7X,EAAvBA,CAA6BA,EAAKk7M,mBAAoB5C,IAE1DxlK,eAAgB,SAAS7yC,GACrBD,EAAKm6M,aAAal6M,EAAEgO,UAAWhO,EAAEgO,UAAUilM,2BAIvDmI,wBAAyB,SAASn1M,GAC9B,OAAOA,EAAKU,OAAS,IAEzBq0M,oBAAqB,SAAS/0M,EAAMjG,EAAG6R,GACnC,IAAIwpM,EAAY,eAAE,SAAS7mM,SAAS3C,GAChCypM,EAAkB,OAAAzkN,EAAA,WAAO,GAAIoP,EAAKq1M,gBAAiB,CACnD9kM,WAAYvQ,EAAKi1L,KACjB53E,eAAgB73E,GAAQ,gBAAkBA,EAAKy7D,aAC/C4b,aAAc,CAAC71C,EAAUjtE,EAAGoV,KACxB,IAAIvD,EAAa,eAAEuD,GACfsuC,EAAkB,eAAcupB,EAASvpB,iBAAiB,GAC1D61J,EAAgBn9M,KAAK8+M,qBAAqBrpM,EAAYzV,KAAK++M,4BAA4B/+M,KAAKg/M,wBAAwBnuI,GAAW,CAC/HrpB,SAAUqpB,EAASrpB,SACnBF,gBAAiBA,EACjBe,cAAeroD,KAAK4Y,OAAO,iBAC3B6uC,iBAAkBopB,EAASppB,iBAC3B65I,aAAczwH,EAASywH,aACvBC,gBAAiB0a,IACbj8M,KAAKk9M,qBAAqB,CACtBznM,WAAYA,EACZ0nM,cAAeA,EACf5yM,MAAOsmE,EAAStmE,MAChB0xM,YAAaA,QAIrBj8M,KAAK0/L,mBACL1/L,KAAK0/L,kBAAkByf,2BAA2BtuI,EAAS8iH,KAAM,CAC7DwpB,cAAeA,IAGnB71J,GACAtnD,KAAKk9M,qBAAqB,CACtBznM,WAAYA,EACZ0nM,cAAeA,EACf5yM,MAAOsmE,EAAStmE,MAChB0xM,YAAakB,EAActG,0BAKvCuI,EAA4B,CAAC70M,EAAO6D,KAChCvP,MAAMuY,QAAQ7M,IACdA,EAAMrJ,QAAQ2I,GAAQ7J,KAAK0/L,kBAAkByf,2BAA2Bt1M,EAAK8pL,KAAM,CAC/EC,eAAgBxlL,MAIxBqzL,EAAWzhM,KAAKiZ,iBAAiBgmM,EAAW,GAAUC,GAC1D,eAAEzpM,GAAY2J,SAASjH,SAASmxL,IAChC7H,EAAS33L,GAAG,gBAAiBlG,IACrB,eAAiBA,EAAE44E,UACnB4iI,EAA0Bx7M,EAAE/B,MAAO+B,EAAEgO,aAG7CwtM,EAA0B,CAAC,CACvBzrB,KAAM9pL,EAAK8pL,SACT9pL,EAAKi1L,MAAO2C,IAEtBkd,mBAAoB,SAAS90M,EAAMjG,EAAG6R,GAClC,IAEI+xC,EACA21J,EAHAkC,EAAS,eAAE,SAAS9qJ,YAAYg1I,GAA+B,eAAU1/L,EAAKqB,UAAYrB,EAAKqB,QAAQtR,QAAQue,SAASswL,IAAkBrwL,SAAS3C,GACvJ,eAAEA,GAAY2J,SAASjH,SAASkxL,IAG5Bx/L,EAAKqB,SACL,eAAE,UAAUiN,SAASuwL,IAA0BnsM,KAAKsN,EAAKqB,SAASkN,SAASinM,GAE/E,IAAIC,EAAgB,eAAE,SAASnnM,SAASixL,IAA0BhxL,SAASinM,GACvEx1M,EAAK60M,sBACL70M,EAAKi4L,4BAA8B,KAC/Bwd,EAAcltJ,QACd,IAAIhuD,EAAO,CACPujD,SAAU3nD,KAAK4Y,OAAO,YACtBhH,UAAW5R,MAEf6J,EAAK60M,qBAAqB32M,OAAO,CAC7BgB,MAAO3E,EACP4U,UAAW,eAAiBsmM,MAGpCz1M,EAAKi4L,gCAELqb,EAAgBn9M,KAAK8+M,qBAAqBQ,EAAet/M,KAAK++M,4BAA4B/+M,KAAKg/M,wBAAwBn1M,GAAO,CAC1H29C,SAAU39C,EAAK29C,SACfC,iBAAkB59C,EAAK49C,iBACvBH,gBAAiBz9C,EAAKy9C,gBACtBg6I,aAAcz3L,EAAKy3L,gBAEvBthM,KAAK0/L,mBAAqB1/L,KAAK0/L,kBAAkByf,2BAA2Bt1M,EAAK8pL,KAAM,CACnFwpB,cAAeA,IAEnB31J,EAAW21J,EAAclH,eACpBj2M,KAAK07M,gBAAgB14M,SAASwkD,IAC/BxnD,KAAK07M,gBAAgBz4M,KAAKukD,GAE9B63J,EAAOlnM,SAASsxL,GAAwBjiJ,GACxC63J,EAAO3tJ,KAAKg4I,GAAsBliJ,KAG1Cu3J,4BAA6B,SAASx0M,EAAOy2L,GACzC,OAAOH,GAA8B,CACjC7/I,KAAMhhD,KACN+gM,YAAa/gM,KAAK4Y,SAClBkoL,aAAc9gM,KAAK6W,WACnBtM,MAAOA,EACPo+C,gBAAiB3oD,KAAKu9M,sBACtBvc,6BAA8BA,EAC9Bh5I,mBAAoB3Y,IACXrvC,KAAKu/M,iBACNv/M,KAAK20M,2BAA2BtlK,IAGxCoH,eAAgBpH,IACZrvC,KAAK0/L,kBAAkB8f,qBAAqBnwK,EAAKz9B,UAAU8tL,mBAC3DsB,EAA6BvqJ,gBAAkBuqJ,EAA6BvqJ,eAAepH,IAE/FuH,YAAahmC,IACT,IACIgB,UAAWA,GACXhB,EACA6uM,EAAyB7tM,EAAUioM,sBACvC75M,KAAK0/L,kBAAkBggB,mBAAmBD,IAE9Cxe,oBAAqB,KACjB,IAAI0e,EACJ,QAAUA,EAAwB3/M,KAAK26M,0BAAuB,IAAWgF,GAAiCA,EAAsBxE,6BAI5I2D,qBAAsB,SAASxqJ,EAASsrJ,GACpC,IAAIC,EAAuB,CACvB9oN,GAAI6oN,EAAqBp4J,SACzBtL,GAAI0jK,EAAqBp4J,SACzBrL,GAAIyjK,EAAqBp4J,SACzBpL,GAAI,GAERp8C,KAAKy7M,uBAAuBx4M,KAAK,CAC7BwkD,iBAAkB,OAAAhtD,EAAA,WAAOolN,EAAsBD,EAAqBn4J,oBAExE,IAAI5wC,EAAW,eAAE,SACjBA,EAASuB,SAASk8C,GAClB,IAAIlmD,EAAWpO,KAAKiZ,iBAAiBpC,EAAU,kBAAmB+oM,GAMlE,OALAxxM,EAAStE,GAAG,sBAAuB,KAC/B9J,KAAK8/M,mCACL9/M,KAAK+/M,6BAA+BrgL,WAAW,KAAO1/B,KAAKy2K,WAAaz2K,KAAK+4G,WAAY,KAE7F/4G,KAAK69M,sBAAsB56M,KAAKmL,GACzBA,GAEXmvM,oBAAqB,WACjB,OAAOv9M,KAAK4Y,OAAO,oBAAsB5Y,MAE7CiZ,iBAAkB,SAASpC,EAAUpY,EAAMozD,GAKvC,OAJAA,EAASA,GAAU,GACnB7xD,KAAKggN,cAAcnuJ,EAAQ,CACvB3J,SAAUloD,KAAK4Y,OAAO,cAEnB5Y,KAAKC,SAAS4W,EAAUpY,EAAMozD,IAEzC8pJ,yBAA0B,WACtB,IAAIh4M,EAAO3D,KACX2D,EAAKmG,GAAG,iBAAiB,SAAUulC,GAC/B,IAAI4wK,EAAiB5wK,EAAKmtC,SACtB,aAAeyjI,IACV,eAAU5wK,EAAKxtC,QAChB8B,EAAKy9J,SAAS0jB,OAAO,WAAYz1I,EAAKxtC,MAAQ,IAElD8B,EAAKu8M,oCAAoC7wK,EAAKxtC,QAE9C8B,EAAKk6M,sBAAsBjkN,QAC3B,eAAK+J,EAAKk6M,uBAAuB,SAAUz8M,EAAO+7M,GAC1C,aAAe8C,IACft8M,EAAK47M,iBAAkB,EACvBpC,EAAcvkM,OAAO,aAAcy2B,EAAKxtC,OACxC8B,EAAK47M,iBAAkB,GAEvB,aAAelwK,EAAKztC,MAAQ,aAAeytC,EAAKztC,MAChDu7M,EAAcvkM,OAAOqnM,EAAgB5wK,EAAKxtC,cAM9DqsG,eAAgB,SAAS7+D,GACrB,IAAI8wK,EAAgB9wK,EAAKmtC,SAAS3gF,MAAM,KACpCskN,EAAcvmN,OAAS,IAAM,IAAMumN,EAAc,GAAGrmE,OAAO,UAAY95I,KAAKogN,2BAA2B/wK,IAGvG8wK,EAAcvmN,OAAS,IAAM,IAAMumN,EAAc,GAAGrmE,OAAO,aAAe95I,KAAKqgN,8BAA8BhxK,IAGjHrvC,KAAKsgN,6BAA6BjxK,IAEtCixK,6BAA8B,SAASjxK,GACnC,OAAQA,EAAKztC,MACT,IAAK,WACI5B,KAAK4Y,OAAO,SAEN,eAAcy2B,EAAKxtC,QAC1B7B,KAAKugN,eAFLvgN,KAAKszD,cAIT,MACJ,IAAK,qBACD,MACJ,IAAK,QACL,IAAK,WACL,IAAK,mBACL,IAAK,gBACL,IAAK,YACL,IAAK,kBACL,IAAK,sBACL,IAAK,gBACL,IAAK,6BACL,IAAK,mBACL,IAAK,mBACL,IAAK,eACL,IAAK,eACL,IAAK,kBACL,IAAK,mBACL,IAAK,SACL,IAAK,mBACL,IAAK,gBACL,IAAK,cACDtzD,KAAKszD,cACL,MACJ,IAAK,wBACDtzD,KAAKy9M,2BACL,MACJ,IAAK,cACG,SAAWz9M,KAAK4Y,OAAO,aACvB5Y,KAAKszD,cAET,MACJ,IAAK,sBACL,IAAK,WACD,MACJ,IAAK,QACDtzD,KAAKC,SAASovC,GACdrvC,KAAK6+M,mBAAmBjmM,OAAOy2B,EAAKztC,KAAMytC,EAAKxtC,OAC/C7B,KAAK89M,aAAa99M,KAAK6+M,mBAAoB7+M,KAAK6+M,mBAAmBhI,sBACnE,MACJ,IAAK,UACD72M,KAAKC,SAASovC,GACVA,EAAKxtC,OACL,gBAAkB7B,KAAK6W,YAE3B,MACJ,IAAK,kBACD,QAAiBykM,YAAYjsK,EAAKktC,eAAiBv8E,MACnDA,KAAKszD,cACL,MACJ,QACItzD,KAAKC,SAASovC,KAG1B+wK,2BAA4B,SAAS/wK,GACjC,IAAImlK,EAAYnlK,EAAKmtC,SAAS3gF,MAAM,KAChCgG,EAAQwtC,EAAKxtC,MACb++L,EAAW5gM,KAAKwgN,aAAahM,GAC7B3qM,EAAO7J,KAAK4Y,OAAOgoL,GACnB6f,EAAwBpxK,EAAKmtC,SAASrhF,QAAQylM,EAAW,IAAK,IAC9D8f,EAAmBD,EAAsB5kN,MAAM,KAAK,GAAGV,QAAQ,SAAU,IACzEwlN,EAAa3gN,KAAK4gN,2BAA2BF,EAAkB72M,EAAMA,EAAK62M,GAAmBrxK,EAAKktC,cAAeqkH,GACjH3hM,EAASe,KAAK6gN,4BAA4BF,IAAe3gN,KAAK8gN,kCAAkCzxK,EAAKmtC,SAAU36E,GACnH,IAAK5C,GAAU4K,EAAM,CACjB7J,KAAK+gN,kBAAkBl3M,EAAM42M,EAAuB5+M,GACpD,IAAI0I,EAAQvK,KAAKghN,uBAAuBhhN,KAAK4Y,OAAO,UACpD5Y,KAAK4Y,OAAO,QAASrO,GACrBtL,GAAS,EAEb,OAAOA,GAEXohN,8BAA+B,SAAShxK,GACpC,IAAImlK,EAAYnlK,EAAKmtC,SAAS3gF,MAAM,KAChCgG,EAAQwtC,EAAKxtC,MACbwZ,EAAYm5L,EAAUxgM,MAAM,GAAGhY,KAAK,KACpCkiB,EAASle,KAAKy5M,UAAUp+L,GAS5B,OARI6C,EACAA,EAAOtF,OAAO,QAAS/W,GAEvB7B,KAAK20M,2BAA2B,CAC5Bt5L,UAAWA,EACXxZ,MAAOA,KAGR,GAEX++M,2BAA4B,SAAS3lK,EAAYpxC,EAAMhI,EAAO06E,EAAeqkH,GAKzE,MAJI,SAAW3lJ,IACXj7C,KAAK0/L,kBAAkBuhB,2BAA2B,GAAGt5L,OAAOi5K,EAAU,UACtE/+L,EAAQ7B,KAAKy+M,cAAc58M,GAAO,EAAM++L,GAAU,IAE/C,GAA0B3lJ,EAAY,CACzCpxC,KAAMA,EACNhI,MAAOA,EACP06E,cAAeA,EACfs3G,iBAAkB7zL,KAAK0/L,qBAG/BmhB,4BAA6B,SAAS/uJ,GAClC,OAAOA,GAAUA,EAAOovJ,cAE5BC,yCAA0C,SAAS3kI,GAC/C,IAIY4kI,EAJRnmK,EAAamlJ,GAA0B5jH,GACvC++H,GAAqCj9M,QAAQ28C,IAAe,IAC5D,QAAiBi/J,SAASl6M,KAAKu9M,uBAC3Bv9M,KAAK4Y,OAAO,2BAEZ,QAAUwoM,EAAyBphN,KAAK26M,0BAAuB,IAAWyG,GAAkCA,EAAuBjG,4BAI/I,4BAA4BgC,EAAeliK,EAAYp5C,EAAOm4E,GAC1D,GAAIh6E,KAAKkwD,iBAAmB,EAAG,EAC1BitJ,EAAcjtJ,kBAAoBitJ,EAAcxsJ,cACjD,IAAI71D,EAAMkF,KAAK0/L,kBAAkB2hB,cAAcrnI,GAC/Ch6E,KAAKshN,oBAAoBxxM,IAAIhV,EAAK,MAC7BqiN,EAAc1mC,WAAa0mC,EAAcvsJ,aACnC,IAAK,eAAUjwC,YAG9B,IAAI4gM,EAAsB39M,IAEtB,GADAA,EAAEgO,UAAUq/C,IAAI,eAAgBswJ,GAC5B9gB,GAAuBzmH,GAAO,CAC9B,IAAIwnI,EAAUnhB,GAAcrmH,GACxBynI,EAAmBzhN,KAAK0/L,kBAAkBgiB,kCAAkCF,GAC5EC,GACAzhN,KAAKk9M,qBAAqB,CACtB3yM,MAAOk3M,EAAiB7oM,OAAO,SAC/BukM,cAAesE,EACfhsM,WAAYgsM,EAAiB5qM,WAC7BolM,YAAawF,EAAiB5K,4BAItC72M,KAAK89M,aAAa99M,KAAK6+M,mBAAoB7+M,KAAK6+M,mBAAmBhI,uBAG3EsG,EAAcrzM,GAAG,eAAgBy3M,GACjCpE,EAAcvkM,OAAOqiC,EAAYp5C,GACjC7B,KAAKmhN,yCAAyClmK,IAElD,kCAAkCuhC,EAAU36E,GACxC,IAAI2yM,EAAYh4H,EAAS3gF,MAAM,KAC3Bo/C,EAAamlJ,GAA0B5jH,GAC3C,GAAI,UAAYvhC,GAAcu5J,EAAU56M,OAAS,EAAG,CAChD,IAAIgnM,EAAW5gM,KAAKwgN,aAAahM,GAC7B2I,EAAgBn9M,KAAK0/L,kBAAkBgiB,kCAAkC9gB,GAC7E,GAAIuc,EAAe,CACfn9M,KAAK0/L,kBAAkBggB,mBAAmBvC,EAActD,uBACxD,IAAItvM,EAAQvK,KAAKy+M,cAAc58M,GAAO,EAAO++L,GAE7C,OADA5gM,KAAK2hN,4BAA4BxE,EAAeliK,EAAY1wC,EAAOq2L,IAC5D,QAER,GAAI4T,EAAU56M,OAAS,EAAG,CAC7B,IAAIgoN,EAAepN,EAAU56M,OAAS,EAClCioN,EAAY7hN,KAAKwgN,aAAahM,EAAUxgM,MAAM,EAAG4tM,IACjDE,EAAiB9hN,KAAK0/L,kBAAkBgiB,kCAAkCG,GAC9E,GAAIC,EAAgB,CAChB,IAAI3oI,EAAiBgnH,GAAkBqU,EAAUoN,GAAe3mK,GAChE,GAAI,eAAiBA,GACb6mK,EAAelpM,OAAOugE,KAAoBt3E,EAC1C,OAAO,EAGf,GAAI,YAAco5C,EAAY,CAC1B,IAAI8mK,EAAY/hN,KAAK4Y,OAAOunL,GAAkB0hB,EAAW,UACzD,GAAIE,GAAaA,EAAUnoN,OAAQ,CAC/B,IAAIooN,EAAqBF,EAAelpM,OAAO,SAC/CmpM,EAAU7gN,QAAQ,CAAC2I,EAAMzI,KACrB,IAAI6gN,EAAaD,EAAmB5gN,GACpC6gN,EAAWzjK,aAAe30C,EAAK20C,gBAK3C,OADAx+C,KAAK2hN,4BAA4BG,EAAgB3oI,EAAgBt3E,EAAOggN,IACjE,GAGf,OAAO,GAEX,mCAAmCjhB,EAAU9qL,GACzC,IAAI7W,EASJ,OARAe,KAAK2wD,cACL,eAAK76C,EAAS,CAACmlC,EAAYwyC,KAEvB,GADAxuF,EAASe,KAAK8gN,kCAAkC3gB,GAAkBS,EAAU3lJ,GAAawyC,IACpFxuF,EACD,OAAO,IAGfe,KAAK4wD,YACE3xD,GAEXuhN,aAAc,SAAShM,GACnB,IACI/4M,EADAmlM,EAAW4T,EAAU,GAEzB,IAAK/4M,EAAI,EAAGA,EAAI+4M,EAAU56M,OAAQ6B,IAAK,CACnC,IAAK,IAAM+4M,EAAU/4M,GAAGq+I,OAAO,0BAG3B,MAFA8mD,GAAY,IAAM4T,EAAU/4M,GAKpC,OAAOmlM,GAEX+T,2BAA4B,SAAStlK,GACjCrvC,KAAKiyD,sBAAsB,qBAA3BjyD,CAAiDqvC,IAErD6wK,oCAAqC,SAAS97M,GAC1C,IAAIT,EAAO3D,KACPoE,GAAQ,eAASA,IACjB,eAAKA,GAAM,SAAUiX,EAAWxZ,GAC5B8B,EAAKgxM,2BAA2B,CAC5Bt5L,UAAWA,EACXxZ,MAAOA,QAKvBwyM,kBAAmB,SAASh5L,EAAWxZ,GACnC,GAAI,eAAU7B,KAAK4Y,OAAO,aAAc,CACpC,IAAIsF,EAASle,KAAKy5M,UAAUp+L,GAE5B,GADArb,KAAK4Y,OAAO,YAAcyC,EAAWxZ,GACjCqc,EAAQ,CACR,IAAIovL,EAAcpvL,EAAOtF,OAAO,SAC5B00L,IAAgBzrM,GAChBqc,EAAOtF,OAAO,QAAS/W,MAKvCm/M,uBAAwB,SAASz2M,GAC7B,IAAIo9C,EAAW3nD,KAAK4Y,OAAO,YACvB3Z,EAAS,GAmBb,OAlBKsL,GAAS,eAAUo9C,IACpB,eAAKA,GAAU,SAAUtsC,GACrBpc,EAAOgE,KAAK,CACRoY,UAAWA,OAInB9Q,GACA,eAAKA,GAAO,SAAUnJ,EAAOyI,GACrB,eAASA,GACT5K,EAAOgE,KAAK4G,GAEZ5K,EAAOgE,KAAK,CACRoY,UAAWxR,OAKpB5K,GAEXijN,gBAAiB,SAASl3M,EAAOT,GAC7B,IAII43M,EAJAx+M,EAAO3D,KACPoiN,EAAa,eAASp3M,GAASA,EAAQrH,EAAK0+M,eAAer3M,GAC3DmsE,EAAYirI,EAAWjrI,UACvBmrI,EAAYF,EAAWE,UAsB3B,OApBI/3M,EAAM3Q,QACN,eAAK2Q,GAAO,SAAUnJ,EAAOyI,GACzB,IAAIs/C,EAAWt/C,EAAKs/C,SACpB,GAAIm5J,EAAU1oN,OAAQ,CAClB,IAAIogF,EAAOsoI,EAAUtuM,QACrBnK,EAAOlG,EAAK4+M,oBAAoBvoI,EAAM7C,EAAWttE,QAC9C,GAAI,UAAYs/C,IAAct/C,EAAKqB,UAAWrB,EAAKjI,MAAS,WAAaunD,IAAat/C,EAAKjI,KAAM,CACpG,IAAI4gN,EAAgB7+M,EAAK8+M,iBAAiBt5J,GAC1Ct/C,EAAKU,MAAQ5G,EAAKq9M,uBAAuBn3M,EAAKU,OAC9CV,EAAOlG,EAAKu+M,gBAAgB,CACxB/qI,UAAWA,EACXmrI,UAAWA,GACZz4M,EAAK24M,IAEZ,GAAItiB,GAAyCr2L,EAAMstE,GAE/C,OADAgrI,EAAat4M,GACN,KAIZs4M,GAEXE,eAAgB,SAASr3M,GACrB,IAAImsE,EAAYnsE,EACZ03M,EAAiBvrI,EAAU74E,QAAQ,KACnCqkN,EAAa,GACjB,OAAQ,IAAMD,EACVC,EAAW1/M,KAAKk0E,EAAUnkE,OAAO,EAAG0vM,IACpCvrI,EAAYA,EAAUnkE,OAAO0vM,EAAiB,GAC9CA,EAAiBvrI,EAAU74E,QAAQ,KAEvC,MAAO,CACH64E,UAAWA,EACXmrI,UAAWK,EAAWx7H,YAG9Bo7H,oBAAqB,SAASvoI,EAAM7C,EAAWttE,GAC3C,IAGI5K,EAHAkqD,EAAWt/C,EAAKs/C,SAChBq5J,EAAgBxiN,KAAKyiN,iBAAiBt5J,GACtCy5J,EAAqB,UAAYz5J,GAAY,WAAaA,GAAYt/C,EAAK21C,MAE/E,EAAG,CACC,IAAIojK,EAqBA,MApBA,IAAIhhN,EAAOiI,EAAKjI,MAAQiI,EAAKqB,SAAWrB,EAAK21C,MACzCqjK,EAAkB,eAAUjhN,GAC5BkhN,EAAoB7iB,GAAqBr+L,GACzCmhN,OAAW,EAKf,GAJAl5M,EAAK24M,GAAiBxiN,KAAKghN,uBAAuBn3M,EAAK24M,IACnDK,IACAE,EAAW/oI,EAAK72D,QAEf62D,EAAKpgF,SACNqF,EAASe,KAAKkiN,gBAAgB/qI,EAAWttE,EAAK24M,IAC1CvjN,GACA,QAGH4jN,GAAmBA,GAAmBC,IAAsBC,IACzD/oI,EAAKpgF,SACLqF,EAASe,KAAKgjN,0BAA0BhpI,EAAM7C,EAAWttE,EAAK24M,WAMrExoI,EAAKpgF,SAAW,eAAUqF,IACnC,OAAOA,GAEXwjN,iBAAkB,SAASt5J,GACvB,MAAO,WAAaA,EAAW,OAAS,SAE5C65J,0BAA2B,SAAShpI,EAAM7C,EAAW5sE,GACjD,IACItL,EADA0E,EAAO3D,KAWX,OATA,eAAKuK,GAAO,SAAUnJ,EAAOiuD,GAEzB,GADApwD,EAAS0E,EAAK4+M,oBAAoBvoI,EAAKhmE,QAASmjE,EAAW9nB,GACvDpwD,EACA,OAAO,KAGVA,IACDA,GAAS,GAENA,GAEX8hN,kBAAmB,SAASl3M,EAAM+O,EAAQ/W,GAClC,eAASgI,KACTA,EAAK+O,GAAU/W,IAGvBgqH,kBAAmB,WACf,IAAIk3E,EAAsB/iM,KAAK49M,0BAC3B59M,KAAK09M,0BAA4B3a,IAC7B/iM,KAAKijN,mBAAmBjjN,KAAK09M,wBAAyB3a,KACtD/iM,KAAK29M,oBAAsB5a,EAC3B/iM,KAAK+4G,WACL/4G,KAAK29M,yBAAsB,GAE/B39M,KAAK09M,wBAA0B3a,IAGvCkgB,mBAAoB,SAASC,EAAeC,GACxC,IAAIC,GAAY,EAOhB,OANA,eAAKpjN,KAAKy7M,wBAAwB,SAAUr6M,EAAOyI,GAC/C,GAAIA,EAAK49C,iBAAiBy7J,KAAmBr5M,EAAK49C,iBAAiB07J,GAE/D,OADAC,GAAY,GACL,KAGRA,GAEXrqG,SAAU,WACN,IAAIsqG,EAAiB,IAAM,GAAsB,YAAc,GAAsB,YACrF,OAAarlM,QAAQhe,KAAK6W,WAAWiB,KAAKurM,GAAiB,UAC3DrjN,KAAKC,YAETsgN,aAAc,WACVvgN,KAAK0/L,kBAAkBv9B,MAAK,SAAUpjK,EAAGi1L,GACjC,eAAUA,EAAgBJ,iBAAmB,QAAO0vB,SAAStvB,EAAgBJ,kBAC7EI,EAAgBJ,eAAex2G,QAC/B42G,EAAgBJ,eAAeh7K,OAAO,WAAW,OAGzD,QAAiByiM,WAAWr7M,KAAKu9M,wBAErCgG,YAAa,SAASn/M,EAAMvC,EAAO2hN,GAC/B,IAAI7/M,EAAO3D,KACPs+B,EAAQklL,EAAgB3hN,EAAQuC,EAChC,eAASk6B,GACT,eAAKA,GAAO,SAAUjjB,EAAWm9L,GAC7B70M,EAAK4/M,YAAYC,EAAgBp/M,EAAO,IAAMiX,EAAYA,EAAWm9L,EAAY,eAASA,OAEvF,eAASp0M,IAChBT,EAAK0wM,kBAAkBjwM,EAAMvC,IAGrCs2J,mBAAoB,SAASr9J,EAAKu5G,GAC9Br0G,KAAKC,SAASnF,EAAKu5G,GACnBr0G,KAAK0/L,kBAAkBv9B,MAAK,SAAUpjK,EAAGi1L,GACjC,eAAUA,EAAgBJ,iBAC1BI,EAAgBJ,eAAez7B,mBAAmBr9J,EAAKu5G,OAInElB,aAAc,WACV,OAAOnzG,KAAK6W,WAAWiB,KAAK,IAAMmxL,GAA2B,eAAe1+H,SAEhFg3B,mBAAoB,aACpBu+G,iCAAkC,WAC1B9/M,KAAK+/M,+BACL3lJ,aAAap6D,KAAK+/M,8BAClB//M,KAAK+/M,kCAA+B,IAG5ClwF,SAAU,WACN7vH,KAAK8/M,mCACL,QAAiBxE,YAAYt7M,KAAKu9M,uBAClCv9M,KAAKC,YAETwjN,YAAa,WACTzjN,KAAKugN,gBAET/G,WAAY,SAASp1M,EAAMvC,GACvB7B,KAAKujN,YAAYn/M,EAAMvC,IAE3B43M,UAAW,SAASp+L,GAChB,OAAOrb,KAAK0/L,kBAAkBga,8BAA8Br+L,IAAcrb,KAAK0/L,kBAAkBia,yBAAyBt+L,IAE9H+jJ,UAAW,SAASx9J,GAChB,OAAO5B,KAAK0/L,kBAAkBia,yBAAyB/3M,IAE3Do/G,iBAAkB,WACd,IAAIr9G,EAAO3D,KACPouD,EAAW,IAAI,cAQnB,OAPIzqD,EAAKm7F,YACLn7F,EAAKm7F,YAAYx6B,SAASjmD,MAAK,WAC3B+vC,EAASs1J,YAAY//M,MAGzByqD,EAASs1J,YAAY//M,GAElByqD,EAAS3sC,WAEpB4rG,WAAY,SAASv+H,EAAI8pB,EAAQ/W,GAC7B,IAAI0I,EAAQvK,KAAKghN,uBAAuBhhN,KAAK4Y,OAAO,UAChD/O,EAAO7J,KAAKkiN,gBAAgBpzN,EAAIyb,GAChCyvE,EAAO0mH,GAAYn2L,EAAOV,GAC9B,GAAKA,EAGL,OAAQ3J,UAAUtG,QACd,KAAK,EACD,OAAOiQ,EACX,KAAK,EACD,IAAI82M,EAAa3gN,KAAK4gN,2BAA2BhoM,EAAQ/O,EAAMhI,EAAOgI,EAAK+O,GAASohE,GACpFh6E,KAAK+gN,kBAAkBl3M,EAAM+O,EAAQ/W,GACrC,IAAI26E,EAAW2jH,GAAkBnmH,EAAMphE,GAClC5Y,KAAK6gN,4BAA4BF,IAAgB3gN,KAAK8gN,kCAAkCtkI,EAAU36E,IACnG7B,KAAK4Y,OAAO,QAASrO,GAEzB,MACJ,QAGY,IAAIo5M,EAFZ,GAAI,eAAS/qM,GACT,IAAK5Y,KAAK4jN,mCAAmC5pI,EAAMphE,GAE/C,eAAKA,EAAQ,CAACqiC,EAAYwyC,KACtB,IAAIkzH,EAAa3gN,KAAK4gN,2BAA2B3lK,EAAYpxC,EAAM4jF,EAAa5jF,EAAKoxC,GAAa++B,GAClGh6E,KAAK+gN,kBAAkBl3M,EAAMoxC,EAAYwyC,GACpCk2H,GAAqB3jN,KAAK6gN,4BAA4BF,KACvDgD,GAAmB,KAG3BA,GAAoB3jN,KAAK4Y,OAAO,QAASrO,KAK7D8gM,SAAU,WACN,OAAO,QAAiB+P,cAAcp7M,KAAKu9M,wBAE/CtF,UAAW,SAASr2M,GAChB,MAAO,MAAQ5B,KAAK4Y,OAAO,UAAY,KAAOhX,GAAQ,IAAI,UAE9Dy1M,sBAAuB,WACnB,OAAOr3M,KAAK29M,uBAGpB,eAAkB,SAAUnC,IACb,UCnkCA,MCmCXqI,KAA0B,QAAWC,oBACrCC,GAAuB,iBACvBC,GAAmB,aACnBC,GAAwB,kBACxBC,GAA0BL,GAAwB,gBAAkB,0BACpEM,GAAe,YACfC,GAA+B,yBAC/BC,GAAgBx6M,IAChB,IAAIy6M,EACA/pM,EAAS1Q,EAAK0Q,OAClB,OAAO1Q,EAAK06M,mBAAqB16M,EAAKm/C,WAAa,QAAUs7J,EAAmB/pM,EAAOgjC,gBAAa,IAAW+mK,OAAmB,EAASA,EAAiBt7J,YAE5Jw7J,GAAmB,CAACj6M,EAAOk6M,KAC3Bl6M,EAAMrJ,QAAQ2I,IACNA,EAAKU,OAASV,EAAKi1L,KACnB0lB,GAAiB36M,EAAKU,OAASV,EAAKi1L,KAAM2lB,GAE1CA,EAAS56M,MAIV66M,GAAyB,CAChC9uJ,UAAW,CACPJ,YAAa,CACT5gB,QAAS,CACL6b,KAAM,WACFzwD,KAAK2kN,UAAY,KACjB3kN,KAAK4kN,wBAA0B,KAC/B5kN,KAAKC,SAASnB,MAAMkB,KAAME,YAE9B2kN,sBAAuB,WACnB,OAAO7kN,KAAK8kN,mBAAqB9kN,KAAK+kN,kBAE1CD,gBAAiB,WACb,IAAIvjC,EAAWvhL,KAAK4Y,OAAO,gBAC3B,OAAO2oK,IAAa/C,IAExBumC,eAAgB,WACZ,IAAIxjC,EAAWvhL,KAAK4Y,OAAO,gBAC3B,OAAO2oK,IAAahD,IAExBkF,4BAA6B,WACzB,IAAIuhC,EAAgBhlN,KAAKilN,eACzB,GAAIjlN,KAAK+kN,kBAAoBC,EAAe,CACxC,IAAIjkK,EAAa/gD,KAAK4Y,OAAOmlK,IACzBmK,EAAeloL,KAAKiY,gBAAgB4hF,iBAAiB94C,GACrDmkK,EAAoBllN,KAAKw6G,UAAU1zC,gBAAgBohH,GACvD,OAAOloL,KAAKw6G,UAAU2qG,+BAA+BD,EAAmBF,EAAczqM,QAE1F,OAAOva,KAAKC,SAASnB,MAAMkB,KAAME,YAErCglL,oBAAqB,WACjB,OAAOllL,KAAK6kN,wBAA0B7kN,KAAKilL,0BAA4BjlL,KAAKC,SAASnB,MAAMkB,KAAME,YAErG0tL,qBAAsB,WAClB,IAAI3uL,EAASe,KAAKC,SAASnB,MAAMkB,KAAME,WACnC8iL,EAAiBhjL,KAAK4Y,OAAO,WACjC,OAAO5Y,KAAK6kN,yBAA0B7hC,EAAepiI,eAA0B3hD,GAEnFsmE,mBAAoB,SAASl2B,GACzB,GAAIrvC,KAAK8kN,kBAAmB,CACxB,IAAIM,EAAaC,EACbtkK,EAAa/gD,KAAK4Y,OAAO,sBACzB0sM,EAAa,OAASj2K,QAAQ,IAAWA,GAAgB,QAAU+1K,EAAc/1K,EAAK9kC,aAAU,IAAW66M,OAA3D,EAAkFA,EAAYxmM,KAAK/U,GAAQ,eAAaA,EAAK/O,IAAKimD,IAClLwkK,GAAqB,QAAUF,EAAoBh2K,EAAK6yB,mBAAgB,IAAWmjJ,OAAoB,EAASA,EAAkBzrN,SAAWy1C,EAAK6yB,YAAYv4C,MAAM9f,GAAQ,WAAaA,GACxL,YAAcwlC,EAAKwyB,aAAcyjJ,GAAgBC,GAClDvlN,KAAKkqL,oBAGblqL,KAAKC,SAASnB,MAAMkB,KAAME,YAE9BsiL,gBAAiB,WACb,IAAIgjC,EACAC,EAAe,QAAUD,EAAmBxlN,KAAK0lN,kBAAe,IAAWF,OAAmB,EAASA,EAAiB5sM,OAAO,WACnI,GAAI5Y,KAAK8kN,mBAAqBW,EAC1B,OAAOzlN,KAAK2lN,gBAGpBj9B,cAAe,SAASluH,GAChBx6D,KAAK8kN,kBACL9kN,KAAKiqL,eAAezvH,GAEpBx6D,KAAKC,SAASnB,MAAMkB,KAAME,YAGlCguL,oBAAqB,WACjBluL,KAAKC,SAASnB,MAAMkB,KAAME,WACtBF,KAAK8kN,mBACL9kN,KAAKquL,kBAGboB,mBAAoB,SAASvyK,EAAKuxK,EAAgBY,GAC9C,IAGYu2B,EAHRC,EAAW7lN,KAAK2kN,UAChB3kN,KAAK8kN,kBACD9kN,KAAK4Y,OAAO,uBAEZ,QAAUgtM,EAAc1oM,EAAIonD,cAAW,IAAWshJ,GAAuBA,EAAYxvM,KAAK8G,EAAKA,GAC/Fld,KAAKw6G,UAAUr7C,0BACR0mJ,IACP7lN,KAAK4kN,yBAA0B,IAAK,eAAUvmM,KAAK,IAAMwnM,EAASt4F,WAC7DvtH,KAAKkwD,kBACNlwD,KAAK4kN,wBAAwBjkM,WAIrC3gB,KAAKC,SAASnB,MAAMkB,KAAME,YAGlC+pL,eAAgB,SAASzvH,EAAUsrJ,GAC/B,IAAIC,EAAiB,YAAcn8G,GAAA,KAAQiK,UAAU/J,WACjDyzE,EAAe,OAAA9iL,EAAA,WAAO,CACtB+qD,WAAW,EACXnB,WAAY0hK,EACZ/hK,0BAA0B,EAC1Bi4E,4CAA4C,EAC5Cv2E,aAAc,CAAC,CACXrL,QAAS,SACT2Q,SAAU,QACVG,OAAQ,WACRr1C,QAAS9V,KAAKqqL,wBACf,CACChwI,QAAS,SACT2Q,SAAU,QACVG,OAAQ,WACRr1C,QAAS9V,KAAKuqL,2BAElBxmI,gBAAiB/jD,KAAKoqL,0BAA0B5vH,IACjDx6D,KAAK4Y,OAAOilK,KACf,IAAK79K,KAAK0lN,WAAY,CAClB,IAAIM,EAAkB,eAAE,SAAS5tM,SAASpY,KAAK4R,UAAUiF,YAAYsB,SAASnY,KAAK4X,gBAAgBosM,KACnGhkN,KAAK0lN,WAAa1lN,KAAKiZ,iBAAiB+sM,EAAiB,QAAO,CAC5DhiK,0BAA0B,EAC1Bi4E,4CAA4C,IAEhDj8H,KAAK0lN,WAAW57M,GAAG,SAAU9J,KAAKmqL,8BAClCnqL,KAAK0lN,WAAW57M,GAAG,QAASlG,IAGpB,IAAIqiN,GAFR,OAAajoM,QAAQpa,EAAEgO,UAAU87D,WAAW51D,KAAKqmK,IAA4Bv9G,IAAI,IAAIj5C,OAAOu8L,KAA0B35I,QAAS,SAC3Hu7I,KAEA,QAAUG,EAAkBjmN,KAAK2kN,iBAAc,IAAWsB,GAA2BA,EAAgB14F,aAIjHvtH,KAAK0lN,WAAW9sM,OAAO2kK,GACvBv9K,KAAK0lN,WAAWrqK,OAChBr7C,KAAKC,SAASnB,MAAMkB,KAAME,YAE9BkqL,0BAA2B,SAAS5vH,GAChC,IAAIt9C,EAAMld,KAAK4R,UAAUqmF,iBAAiBz9B,GACtC+F,EAAkB,CAClBrjD,IAAKA,EACL8J,OAAQ9J,EAAI8J,OACZrM,QAASuC,EAAIvC,QACb7f,IAAKoiB,EAAIpiB,IACT0/D,SAAUA,GAGd,OADAx6D,KAAKw6G,UAAUl4C,gBAAgB/B,EAAiBrjD,GACzClE,IACH,IAAIktM,EAAelmN,KAAKowL,sBACpBpzF,EAAah9F,KAAKiZ,iBAAiB,eAAE,SAASb,SAASY,GAAY,SACvEhZ,KAAK2lN,eAAiB,eAAE3oH,EAAWpjC,WACnCssJ,EAAalmN,KAAK2lN,eAAgBplJ,EAAiB,CAC/C4lJ,aAAa,IAEjBnmN,KAAKw6G,UAAUr7C,2BAGvB+qH,kBAAmB,WACf,IAAI1vH,EAAWx6D,KAAKilL,0BACpB,GAAIzqH,GAAY,EAAG,CACf,IAAI4rJ,EAAmBC,EACnBC,EAAmB,QAAUF,EAAoBpmN,KAAK0lN,kBAAe,IAAWU,OAAoB,EAASA,EAAkBxtM,OAAO,aAC1I,QAAUytM,EAAoBrmN,KAAK0lN,kBAAe,IAAWW,GAA6BA,EAAkBztM,OAAO,YAAa,MAChI5Y,KAAKiqL,eAAezvH,GAAU,QAC1B,IAAW8rJ,GACXtmN,KAAK0lN,WAAW9sM,OAAO,YAAa0tM,KAIhDj4B,eAAgB,WACZ,IAAIk4B,EACJ,QAAUA,EAAoBvmN,KAAK0lN,kBAAe,IAAWa,GAA6BA,EAAkB3tM,OAAO,WAAW,IAElIs4C,cAAe,SAAS7hB,GACpB,GAAI,YAAcA,EAAKztC,MAAQ5B,KAAK6kN,wBAAyB,CACzD,IAAIroI,EAAWntC,EAAKmtC,SAChB,IAAMA,EAASl+E,QAAQw/K,KACvB99K,KAAKwmN,wBAAwBn3K,GAC7BA,EAAK+hB,SAAU,GACR,IAAMorB,EAASl+E,QAAQu/K,MAC9B79K,KAAKymN,yBAAyBp3K,GAC9BA,EAAK+hB,SAAU,GAGvBpxD,KAAKC,SAASnB,MAAMkB,KAAME,YAE9BsmN,wBAAyB,SAASn3K,GAC9B,IAAIq3K,EACJ,GAAI1mN,KAAK+kN,iBAAkB,CACvB,IAAI78B,EAAeloL,KAAKilL,0BACpBiD,GAAgB,GAChBloL,KAAKiY,gBAAgBg6E,YAAY,CAC7BpwB,WAAY,SACZgzB,WAAY,CAACqzF,UAGd,QAAUw+B,EAAoB1mN,KAAK0lN,kBAAe,IAAWgB,GAAqBA,EAAkB9tM,OAAO,YAAc,IAAMy2B,EAAKmtC,SAASl+E,QAAQw/K,KAC5J99K,KAAKkqL,qBAGbu8B,yBAA0B,SAASp3K,GAC/B,IAAIs3K,EAAY3mN,KAAK0lN,WACrB,GAAIiB,EAAW,CACX,IAAIC,EAAkBv3K,EAAKmtC,SAASxoE,MAAM6pK,GAA0BjkL,OAAS,GACzEgtN,EACAD,EAAU/tM,OAAOguM,EAAiBv3K,EAAKxtC,OAEvC8kN,EAAU/tM,OAAOy2B,EAAKxtC,SAIlCglN,uBAAwB,SAASC,EAAmBj9M,EAAMk9M,EAAqB/tM,EAAWguM,GACtF,IAAIrjN,EAAO3D,KACPyV,EAAa,eAAEuD,GACfuB,EAAS1Q,EAAK0Q,OACdyuC,EAAaq7J,GAAcx6M,GAC3By8I,EAAU,OAASwgE,QAAqB,IAAWA,OAAoB,EAASA,EAAkB5pM,IAAI9Y,KACtG48C,EAAO+lK,EAAoBn1M,WAE3BhE,MAAOA,EACPghM,UAAWA,EACX/mJ,UAAWA,GACXk/J,EAAoBv7M,eAAiB,GACrCgyD,EAAc,OAAA/iE,EAAA,WAAO,GAAIqsN,EAAmB,CAC5C1iN,KAAMkiJ,EACN1nF,YAAa,KACb26G,UAAU,EACV1vK,KAAMA,EACN/a,GAAIkyD,EAAKi3J,UAAUpuM,EAAKjI,MAAQiI,EAAKwR,WACrCd,OAAQ,OAAA9f,EAAA,WAAO,GAAI8f,EAAQ,CACvByuC,WAAYA,EACZx9C,cAAe,OAAA/Q,EAAA,WAAO,CAClBmT,MAAOA,EACPghM,UAAWA,EACX/mJ,UAAWA,GACZttC,EAAO/O,cAAe3B,EAAK2B,iBAElC+J,YAAagF,EAAOnZ,MACpB23H,UAAWiuF,GAAczsM,EAAOjP,cAAgB,SAASzJ,GACrD8B,EAAKqrL,iBAAiBxxH,EAAa37D,MAG3C27D,EAAY37D,MAAQ0Y,EAAO1F,mBAAmByxI,GAC9C,IAAIvqG,EAAW/7C,KAAK+vL,yBAAyBv0K,KAAKxb,KAAnCA,CAAyCw9D,EAAajjD,GAIrE,OAHAva,KAAKw6G,UAAUn6C,eAAe5qD,EAAYsmC,EAAUyhB,IAAe/nD,EAAW0I,QAAQ,iBAAY4gB,UAAUnlC,QAAQykB,KAAK,KACrHre,KAAKw6G,UAAUt+C,YAAYzmD,EAAY+nD,KAEpCA,GAEXypJ,sBAAuB,SAASzpJ,EAAa3zD,GACzC,IAAI0Q,EAASva,KAAK4R,UAAU81D,aAAa79D,EAAKwR,WAC9C,MAAO,CAACvF,EAASkD,KACb,IAAIkuM,EAAuBC,EACvB1xM,EAAa,eAAEuD,GACnB,QAAUkuM,GAAyBC,EAAmB3pJ,EAAYtgD,KAAK6mD,aAAU,IAAWmjJ,GAAiCA,EAAsB9wM,KAAK+wM,GAAkB,WACtK,OAAO5sM,EAAO/C,SAASgmD,EAAYtgD,IAAI9Y,QACvC,KACA,IAAIgjN,EACA3tC,EAAiBhkK,EAAWqC,KAAK,cAAcyyD,QAC/Cw3H,EAAYtoB,EAAer1K,KAAK,eAChCijN,EAAmB,QAAUD,EAAarlB,SAAc,IAAWqlB,OAAa,EAASA,EAAWxuM,SACxGnD,EAAW6xM,WAAW3uM,SACtB6kD,EAAcx9D,KAAK6mN,uBAAuBrrM,KAAKxb,KAAjCA,CAAuCw9D,EAAa3zD,EAAMiM,EAASL,GACjFgkK,EAAiBhkK,EAAWqC,KAAK,cAAcyyD,QAC/Cw3H,EAAYtoB,EAAer1K,KAAK,eAC5BijN,IAAqBtlB,GACrBtoB,EAAe8tC,YAAY,CACvBhpK,gBAAiB8oK,EAAiB9oK,gBAClCoK,gBAAiB0+J,EAAiB1+J,gBAClCypJ,WAAYiV,EAAiBjV,eAIzC50I,EAAcx9D,KAAK6mN,uBAAuBrrM,KAAKxb,KAAjCA,CAAuCw9D,EAAa3zD,EAAMiM,EAASL,KAGzF+xM,mBAAoB,SAASC,GACzB,IAAIC,EACAC,EAAkB,QAAUD,EAAwB1nN,KAAK4nN,kCAA+B,IAAWF,OAAwB,EAASA,EAAsBtxM,KAAKpW,KAAMynN,GACrKI,EAAoB7nN,KAAK4Y,OAAO,8BAChCkvM,EAAoB9nN,KAAK4X,gBAAgBmsM,IACzCx5M,EAAQvK,KAAK4Y,OAAO,sBACpB2rM,EAAqB,GACzB,GAAKh6M,EAaDi6M,GAAiBj6M,EAAOV,IACpB,IAAI8jM,GAAU,OAAS9jM,QAAQ,IAAWA,OAAO,EAASA,EAAKjI,QAAU,OAASiI,QAAQ,IAAWA,OAAO,EAASA,EAAKwR,WACtHsyL,IACA4W,EAAmB5W,KAAY9jM,EAAKm/C,kBAhBpC,CACR,IAAIxqC,EAAUxe,KAAK2xD,cAAc,WAAWyG,aAC5C7tD,EAAQ,GACR,eAAKiU,GAAS,SAAUzf,EAAGwb,GAClBA,EAAOsjC,QAAWtjC,EAAO9b,MAC1B8L,EAAMtH,KAAK,CACPsX,OAAQA,EACR3Y,KAAM2Y,EAAO3Y,KACbyZ,UAAWd,EAAOc,eAYlC,OAAO,OAAA5gB,EAAA,WAAO,GAAIktN,EAAiB,CAC/Bp9M,MAAOA,EACPqxM,OAAQ,MAAQ,IAAI,QACpBl0J,cAAe79C,IACX,IAAI0Q,EACAozL,EAAS9jM,EAAKjI,MAAQiI,EAAKwR,UAI/B,IAHIxR,EAAK0Q,QAAUozL,KACfpzL,EAAS1Q,EAAK0Q,QAAUva,KAAKs9D,mBAAmBoK,aAAa79D,EAAKjI,KAAO,QAAUiI,EAAKjI,KAAO,aAAeiI,EAAKwR,YAEnHd,EAAQ,CAGR,GAFA1Q,EAAK+D,MAAQ/D,EAAK+D,OAAS,GAC3B/D,EAAK+D,MAAMrR,KAAOsN,EAAK+D,MAAMrR,MAAQge,EAAOrP,QACxC,YAAcqP,EAAOxF,eAAY,IAAWlL,EAAK+D,MAAM2sC,QAAS,CAChE,IAAIsN,EAAY7nD,KAAK4Y,OAAO,0BACxB,aAAeivC,GAAa,WAAaA,IACzCh+C,EAAK+D,MAAM2sC,SAAU,GAG7B1wC,EAAKkyC,SAAWlyC,EAAKkyC,UAAY/7C,KAAKinN,sBAAsBQ,EAAe59M,GAC3EA,EAAK0Q,OAASA,EACd1Q,EAAK06M,mBAAqBA,EAAmB5W,GACzCpzL,EAAOgjC,UACP,OAAA9iD,EAAA,WAAOoP,EAAM0Q,EAAOgjC,eAEpB,IAAW1zC,EAAKq/C,YAAc3uC,EAAOgkC,kBACrC10C,EAAKq/C,WAAa3uC,EAAOgkC,gBAAgB3/B,MAAK,SAAUmtL,GACpD,MAAO,aAAeA,EAAKttM,QAE/BoL,EAAK00C,gBAAkB,IAE3B,IAAI6sE,GAAc,eAAUvhH,EAAK0wC,UAAW1wC,EAAK0wC,SAC5Cv6C,KAAKilN,gBAAkB75F,IACxBprH,KAAKilN,eAAiBp7M,GAG9B,OAASg+M,QAAqB,IAAWA,GAA6BA,EAAkBzxM,KAAKpW,KAAM6J,GACnGA,EAAK+xC,SAAW,eAAS/xC,EAAK+xC,UAAY/xC,EAAK+xC,SAAW,IAAMksK,EAAoBA,MAIhG13B,oBAAqB,WACjB,MAAO,CAAC36K,EAAYgyM,EAAe3xM,KAC/B,IAAI6xM,EAAkB3nN,KAAK4Y,OAAOklK,IAC9BiqC,EAAsB/nN,KAAKwnN,mBAAmBC,GAC9CO,EAAiB,eAAE,SAAS5vM,SAAS3C,GACrC0wM,EAAc,OAASrwM,QAAW,IAAWA,OAAU,EAASA,EAAQqwM,YAM5E,GALAnmN,KAAKilN,oBAAiB,EAClBkB,GACA6B,EAAe7vM,SAASnY,KAAK4X,gBAAgBqsM,KAEjDjkN,KAAK2kN,UAAY3kN,KAAKiZ,iBAAiB+uM,EAAgB,GAAM,OAAAvtN,EAAA,WAAO,GAAIktN,EAAiBI,KACpF5B,EAAa,CACd,IAAI8B,EAAoB,eAAE,SAAS9vM,SAASnY,KAAK4X,gBAAgBwsM,KAA+BhsM,SAAS3C,GACzGzV,KAAKiZ,iBAAiB,eAAE,SAASb,SAAS6vM,GAAoB,cAAQjoN,KAAKqqL,wBAC3ErqL,KAAKiZ,iBAAiB,eAAE,SAASb,SAAS6vM,GAAoB,cAAQjoN,KAAKuqL,0BAE/EvqL,KAAK2kN,UAAU76M,GAAG,eAAgB,KAC9B,IAAIo+M,EACJloN,KAAKw6G,UAAUr7C,yBACf,QAAU+oJ,EAAoBloN,KAAK0lN,kBAAe,IAAWwC,GAA6BA,EAAkB36F,cAIxH46F,YAAa,WACT,OAAOnoN,KAAK2kN,WAEhB30J,eAAgB,WACZ,IAAIo4J,EACJ,QAAUA,EAAwBpoN,KAAK4kN,+BAA4B,IAAWwD,GAAiCA,EAAsBznM,WAEzI6sK,iBAAkB,WAGV,IAAI66B,GAFRroN,KAAKC,SAASnB,MAAMkB,KAAME,WACtBF,KAAK8kN,qBAEL,QAAUuD,EAAoBroN,KAAK0lN,kBAAe,IAAW2C,GAA6BA,EAAkBjtK,SAGpHirI,qBAAsB,SAASx8K,EAAMsG,GACjC,IACI1R,KAAMA,GACN0R,EACAnQ,KAAK8kN,mBAAqBrmN,IAASk/K,KACnC9zK,EAAK0wC,SAAU,GAEnBv6C,KAAKC,SAASnB,MAAMkB,KAAME,YAE9B2pL,8BAA+B,SAASh1F,EAAYr6B,GAChD,IAAIsqJ,EAAkB9kN,KAAK8kN,kBAC3B9kN,KAAKC,SAAS40F,EAAYr6B,EAAUsqJ,GAChCA,GACA9kN,KAAKiqL,eAAezvH,KAIhCp2D,KAAM,CACFstL,gBAAiB,SAAS7nL,GAClB7J,KAAKwxL,mBAAmBuzB,mBACxBl7M,EAAK8Q,QAAU,WAGvBw7E,yBAA0B,SAASb,EAASE,EAASO,EAAiBC,GAClE,IAAI,IAAUA,IAAgBR,EAAQx3B,YAAah+D,KAAKwxL,mBAAmBuzB,iBAG3E,OAAO/kN,KAAKC,SAASnB,MAAMkB,KAAME,cAI7Cw1D,MAAO,CACHt4C,SAAU,CACNsmD,mBAAoB,SAAS7L,EAAO/hD,GAC5B,SAAWA,EAAQ6E,SAAW3a,KAAKwxL,mBAAmBszB,oBAAqB,IAAUhvM,EAAQoH,IAAIq9B,SAGrGv6C,KAAKC,SAASnB,MAAMkB,KAAME,YAE9B4mE,gBAAiB,SAAStM,GACtB,IAAIyL,EAAgBjmE,KAAKC,SAASu6D,GAC9BohC,EAAoB57F,KAAKwxL,mBACzBq0B,EAAWjqH,EAAkBusH,cAC7BG,EAAmB1sH,EAAkBspF,sBACzC,OAAIojC,IAAqB9tJ,GAAYyL,GAAiB4/I,EAC3CA,EAAShvM,WAAWiB,KAAK,IAAM9X,KAAK4X,gBAAgBmsM,IAAwB,MAAQI,IAExFl+I,GAEXmB,uBAAwB,SAAS/O,EAAQmC,EAAU0M,GAC/C,IAAIohJ,EAAmBtoN,KAAKwxL,mBAAmBtM,sBAC/C,GAAIojC,IAAqB9tJ,GAAY,eAAS0M,GAAmB,CAC7D,IAAI3sD,EAASva,KAAKs9D,mBAAmBoK,aAAaR,GAClD,OAAOlnE,KAAKmlN,+BAA+B9sJ,EAAQ99C,GAEvD,OAAOva,KAAKC,SAASnB,MAAMkB,KAAME,YAErCilN,+BAAgC,SAAS9sJ,EAAQ99C,GAC7C,IAAIikC,GAAgB,EAQpB,OAPA,eAAK6Z,GAAQ,SAAUj3D,EAAOw9D,GAC1B,IAAI/0D,EAAO,eAAE+0D,GAAa9mD,KAAK,0BAA0B1T,KAAK,gBAC9D,GAAI,OAASyF,QAAQ,IAAWA,GAAQA,EAAK0Q,QAAUA,GAAU1Q,EAAK0Q,OAAOnZ,QAAUmZ,EAAOnZ,MAE1F,OADAo9C,EAAep9C,GACR,KAGRo9C,GAEX+pK,YAAa,SAASzxJ,GAClB,IAAI0xJ,EAAc,WAAa1xJ,EAAWn8C,SAAW,mBAAqBm8C,EAAWn8C,QACjF8tM,EAAiB,SAAW3xJ,EAAWn8C,SAAW3a,KAAKwxL,mBAAmBszB,kBAC9E,OAAQ0D,GAAeC,IAAmB3xJ,EAAWjtD,MAEzDqyD,YAAa,SAASrE,EAAOf,GACrB92D,KAAKuoN,YAAYzxJ,GACjB92D,KAAK+yL,kBAAkBj8H,EAAYe,GAEnC73D,KAAKC,SAAS43D,EAAOf,QCnf7C,EAASV,eAAe,mBAAoBsuJ,IC6B5C,IAAI,GAAsB,gBACtBgE,GAAuB,gBACvBC,GAAgC,4BAChC,GAAoB,iBACpB,GAAY,SACZ,GAAsB,mBACtB,GAAiB,cACjBC,GAAc,iBACd,GAAiC,qBACjC,GAAqC,yBACrC,GAA6B,SAClB,IACXhzJ,UAAW,CACPJ,YAAa,CACT5gB,QAAS,CACL6b,KAAM,WACF,IAGQo4J,EACAn0J,EAJJo0J,GAAsB9oN,KAAKkhL,oBAC/BlhL,KAAKC,SAASnB,MAAMkB,KAAME,WACtB4oN,KAGA9oN,KAAK6jL,wBAA0B,KAC3B,IAAIklC,EACJr0J,EAAa,QAAUq0J,EAAsB/oN,KAAK2xD,cAAc,yBAAsB,IAAWo3J,OAAsB,EAASA,EAAoBr0J,cAExJ10D,KAAK8jL,0BAA4BlgL,GAAKilN,EAAqB,eAAEjlN,EAAEsS,QAC/DlW,KAAKkhL,mBAAqBlhL,KAAKmxD,cAAa,SAAUvtD,GAClD,IAAIouD,EAAQpuD,EAAEouD,MACVT,EAAU,eAAES,EAAM97C,QAClB8yM,EAAkBh3J,EAAMisH,IACxBrsK,EAAY5R,KAAK4R,UACrB,KAAIi3M,IAAsBA,EAAmBj7N,GAAG,UAAai7N,EAAmBj7N,GAAG2jE,KAY/EvxD,KAAKipN,0BAA4BjpN,KAAK+oL,oBAAqB,CAC3D,IAAImgC,EAAgBC,EAAiB53J,IAAY43J,EAAiB,OAASH,QAAmB,IAAWA,OAAkB,EAASA,EAAgBnyM,YAChJuyM,IAAiB73J,EAAQpzC,QAAQ,iBAAY4gB,UAAUnlC,OACvDyvN,EAAqBL,IAAoBA,EAAgBvyC,WAAauyC,IAAoBhpN,KAAK4R,UAC/F03M,IAAmB/3J,EAAQpzC,QAAQ,IAAIwJ,OAAO3nB,KAAK4X,gBAAgB8wM,MAAwB9uN,OAC3FmhL,EAAiBxpH,EAAQ0F,SAASj3D,KAAK4X,gBAAgB,KACvD2xM,EAAiBvpN,KAAKupN,iBACrB70J,GAAew0J,GAAkBnuC,GAAoBuuC,GAAkBC,GAAkBvpN,KAAKg+D,cAAiBorJ,IAAgBC,GAChIrpN,KAAK0iL,eAAelnK,KAAKxb,KAAzBA,CAA+BuxD,GAhBvC,SAAS43J,EAAiBtyM,GACtB,IAAKA,EACD,OAAO,EAEX,IAAI2yM,EAAyB3yM,EAASsH,QAAQ,IAAIwJ,OAAOghM,KACrDc,EAAoB73M,EAAUiF,WAClC,OAAO2yM,EAAuB5vN,OAAS,GAAK,IAAM6vN,EAAkBtrM,QAAQqrM,GAAwB5vN,WAc5G,OAAakQ,GAAG,aAAWg2D,cAAexF,EAAA,KAAcu0E,GAAI7uI,KAAK6jL,yBACjE,OAAa/5K,GAAG,aAAWg2D,cAAexF,EAAA,KAAcC,KAAMv6D,KAAK8jL,2BACnE,OAAah6K,GAAG,aAAWg2D,cAAe,OAAgB9/D,KAAKkhL,sBAGvEqoC,eAAgB,WACZ,OAAOvpN,KAAK4Y,OAAO,kBAAoB0lK,IAE3CorC,gBAAiB,WACb,OAAO1pN,KAAK4Y,OAAO,kBAAoBwlK,IAE3C6qC,sBAAuB,WACnB,OAAOjpN,KAAKupN,kBAAoBvpN,KAAK0pN,mBAEzCjnC,yBAA0B,SAASt3G,GAC/B,IAAIt0D,EAAW7W,KAAK4R,UAAUiF,WAC1B5X,EAASe,KAAKg+D,YACd2rJ,GAA6B9yM,KAAcs0D,EAAehtD,QAAQtH,GAAUjd,OAChF,GAAI+vN,EAA2B,CAC3B,IAAIjsJ,EAAYyN,EAAehtD,QAAQ,IAAM,IAAgBvkB,OAC7D,GAAI8jE,EAAW,CACX,IAAItgD,EAAWpd,KAAKqd,QAAQ,YACxBusM,EAAcz+I,EAAehtD,QAAQ,IAAM,GAAY,QACvDq8C,EAAWp9C,EAASq9C,YAAYmvJ,EAAYxqM,UAC5C7J,EAAc6H,EAAS0pD,gBAAgBtM,GAAUp5D,MAAMwoN,GACvDvsJ,EAAiBr9D,KAAKs9D,mBAAmBC,oBACzCjyD,EAAe+xD,EAAe9nD,IAAgB8nD,EAAe9nD,GAAajK,aAC9ErM,EAASA,IAAWqM,IAAiBtL,KAAKolL,WAAW5qH,EAAUjlD,IAGvE,OAAOtW,GAAUe,KAAKC,SAASnB,MAAMkB,KAAME,YAE/CwiL,eAAgB,SAASv3G,GACjBnrE,KAAKyiL,yBAAyBt3G,IAC9BnrE,KAAKwyL,iBAGbxI,mBAAoB,WAChB,GAAIhqL,KAAK+pL,kBAAoB/pL,KAAKipN,wBAAyB,CACvD,IAAIY,EACAr+B,EAAkBxrL,KAAKslL,6BACvBztH,EAAQ,QAAUgyJ,EAAkB7pN,KAAKw6G,iBAAc,IAAWqvG,OAAkB,EAASA,EAAgB5iJ,gBAAgBjnE,KAAKilL,0BAA2BuG,GAC7J3zH,IAAUA,EAAM//C,KAAK,UAAUle,OAC/BoG,KAAKsrL,kBAAkB,KACnBtrL,KAAK+oL,qBAAsB,GAC5BlxH,GAAO,GAEV73D,KAAK+oL,qBAAsB,EAE/B/oL,KAAK+pL,kBAAmB,OAExB/pL,KAAKC,SAASnB,MAAMkB,KAAME,YAGlC89D,UAAW,WACP,GAAIh+D,KAAKipN,wBAAyB,CAC9B,IAAIrkC,EAAsB,eAAU5kL,KAAK4Y,OAAO,KAC5CkxM,EAA0B,eAAU9pN,KAAK4Y,OAAO,KACpD,OAAOgsK,GAAuBklC,EAElC,OAAO9pN,KAAKC,SAASnB,MAAMkB,KAAME,YAErC6pN,4BAA6B,SAAS16K,GAClC,IAAIg1I,EAAcrkL,KAAKilL,wBAAwB51I,EAAKktC,eACpD,GAAIv8E,KAAKipN,0BAA4B,IAAM5kC,GAAe,eAAUh1I,EAAKxtC,QAAUwtC,EAAKxtC,QAAUwtC,EAAKktC,cAAe,CAClH,IAAIhnE,EAAcvV,KAAKs9D,mBAAmBmJ,sBAAsBp3B,EAAKxtC,OACjEmoN,EAAiBhqN,KAAKs9D,mBAAmBmJ,sBAAsBp3B,EAAKktC,eACxEv8E,KAAKiqN,2BAA2B10M,EAAay0M,EAAgB3lC,KAGrEmD,QAAS,SAASb,EAAWv4H,GACzB,GAAIpuD,KAAKupN,kBAAoBvpN,KAAK67G,aAAc,CAC5C,IAAIquG,EAAY,IAAI,cAQpB,OAPAlqN,KAAKsqL,eAAejsK,KAAK,KAChBre,KAAK67G,aAGNquG,EAAUr2L,OAAO,UAFjB7zB,KAAKyhD,OAAOklI,GAAWtoK,KAAK6rM,EAAUvpM,SAASG,KAAKopM,EAAUr2L,UAK/Dq2L,EAAUzoM,UAErB,OAAOzhB,KAAKC,SAASnB,MAAMkB,KAAME,YAErCoyL,SAAU,SAAS93H,EAAUjlD,GACzB,OAAOvV,KAAKmqN,UAAU,CAClB3vJ,SAAUA,EACVjlD,YAAaA,KAGrB40M,UAAW,SAASr0M,GAChB,IACIs0M,EADAl5M,EAAI,IAAI,cAMZ,OAJAlR,KAAK4qL,iBAAiB15K,EAAG,KACrBk5M,EAAapqN,KAAKqqN,cAAcv0M,GAChC,kBAAKs0M,GAAY/rM,KAAKnN,EAAEyP,SAASG,KAAK5P,EAAE2iB,eAErC,IAAWu2L,EAAaA,EAAal5M,EAAEuQ,WAElD4oM,cAAe,SAASv0M,GACpB,IAAIktE,EAAiBhjF,KAAKiY,gBACtBqyM,EAAwB,eAAUx0M,EAAQk0M,iBAAmB,eAAUl0M,EAAQuuK,cAE/E9uK,YAAaA,EACbilD,SAAUA,EACVjgD,OAAQA,EACR1Q,KAAMA,GACN7J,KAAKuqN,8BAA8Bz0M,GACnC66D,EAAS,CACTvsE,KAAM,OAASyF,QAAQ,IAAWA,OAAO,EAASA,EAAKzF,KACvDm8C,QAAQ,EACRhmC,OAAQA,GAEZ,QAAI,IAAW1Q,EAAK/O,IAApB,CAIA,GAAIyf,IAAW,SAAW1Q,EAAK8Q,SAAW,mBAAqB9Q,EAAK8Q,WAAa9Q,EAAK08K,SAAWvmL,KAAKipN,wBAAyB,CAC3H,IAAKqB,GAAyBtqN,KAAKolL,WAAW5qH,EAAUjlD,GACpD,OAAO,EAEX,IAAI2yK,EAAe1tH,EAAWwoB,EAAe0U,oBAC7C,OAAO,kBAAK13F,KAAKwqN,gBAAgBhwJ,EAAUjlD,EAAa1L,IAAOwU,KAAKkiC,IAC5DA,GAGCvgD,KAAKyqN,iBAAiB95I,EAAQ9mE,EAAM0L,EAAa2yK,IAClDloL,KAAK8qL,gCAIjB,OAAO,EAjBH9qL,KAAKiY,gBAAgB+6E,UAAU,UAmBvCw3H,gBAAiB,SAAShwJ,EAAUjlD,EAAa1L,GAC7C,GAAI7J,KAAKupN,mBAAqB1/M,EAAKsT,UAAYnd,KAAK67G,aAAc,CAC9D,IAAI3qG,EAAI,IAAI,cAIZ,OAHAlR,KAAKsqL,eAAeznG,OAAO,KACvB3xE,EAAEyP,QAAQ3gB,KAAK67G,gBAEZ3qG,IAGfw/C,cAAe,WACX,IAAIA,EAAgB1wD,KAAKC,SAASnB,MAAMkB,KAAME,WAC9C,OAAOwwD,EAAc/oC,OAAO,CAAC,WAAY,mBAE7C4iM,8BAA+B,SAASp6M,GACpC,IAUI66K,GATAg/B,eAAgBA,EAChB3lC,YAAaA,EACb9uK,YAAaA,EACbilD,SAAUA,GACVrqD,EACAmnD,EAAoBt3D,KAAKs9D,mBACzBD,EAAiB/F,EAAkBiG,oBACnChzD,EAAQvK,KAAKiY,gBAAgB1N,QAC7BV,EAAOU,EAAMiwD,GAGbwwH,EADA,eAAUg/B,GACE3sJ,EAAe2sJ,GAEfhqN,KAAKspL,iBAEhB,eAAUjF,KACXA,EAAcrkL,KAAKilL,2BAEnB,eAAS1vK,KACTA,EAAc+hD,EAAkBoQ,aAAanyD,EAAa,SAC1DA,EAAc+hD,EAAkByH,gBAAgBxpD,IAEpD,IAAIgF,EAAS8iD,EAAe9nD,GAC5B,MAAO,CACHy1K,UAAWA,EACXz1K,YAAaA,EACb8uK,YAAaA,EACb7pH,SAAUA,EACVjgD,OAAQA,EACR1Q,KAAMA,IAGd4gN,iBAAkB,SAAS95I,EAAQ9mE,EAAM2hL,EAAiBtD,GAItD,GAHKr+K,EAAKsT,WACNwzD,EAAO71E,IAAM+O,EAAK/O,KAElBkF,KAAKipL,gBAAgBt4G,GACrB,OAAO,EAMP,IAAIi5G,GAJR5pL,KAAK0kL,WAAa1kL,KAAKiY,gBAAgBg0C,YACvCjsD,KAAK6kL,eAAeh7K,EAAK/O,KACzBkF,KAAKmpL,0BAA0BqC,GAC1B76G,EAAOp2D,OAAO2jC,mBAEfl+C,KAAK+hL,iBAAiB,CAClBjnL,IAAK+O,EAAK/O,IACVu6H,QAAS,QAAUu0D,EAAgB//K,EAAKwrH,eAAY,IAAWu0D,EAAgBA,EAAgB//K,EAAKzF,OAG5G,OAAO,GAEXouL,cAAe,SAAS1F,EAASyF,GAC7B,IAAItzL,EAAS,oBACTyoL,EAAkB1nL,KAAKilL,0BAC3B,GAAIjlL,KAAKipN,wBAAyB,CAC9B,IAAI76J,EAAW,IAAI,cACnBnvD,EAAS,IAAI,cACbe,KAAK4qL,iBAAiBx8H,EAAU,KAC5BpuD,KAAK0qN,mBAAmB59B,EAASpF,EAAiB6K,GAAqB1vG,OAAO5jF,EAAO0hB,WAG7F,OAAO1hB,EAAOwiB,WAElBipM,mBAAoB,SAAS59B,EAASpF,EAAiB6K,GACnD,IAAIvvG,EAAiBhjF,KAAKiY,gBACtBm2C,EAAW,IAAI,cACf3sC,EAAU2sC,EAAS3sC,UACvB,GAAIzhB,KAAKupN,kBAAoBvpN,KAAK67G,cAC9B,IAAK02E,EAQD,OAPAvyL,KAAKsqL,eAAejsK,KAAK+T,IAChBpyB,KAAK67G,aAIVztD,EAASztC,UAHL3gB,KAAKwyL,gBAAgBpgK,GAAOywD,OAAOz0B,EAASztC,WAK7Cc,OAKX,GAFAzhB,KAAKkkL,mBACLlkL,KAAKikL,uBACDyD,GAAmB,EAAG,CACtB,IAAI7yF,EAAa,CAAC6yF,GAClB1nL,KAAKiuL,gCAAgCp5F,GAChCi4F,GACD9pG,EAAeiP,YAAY,CACvBpwB,WAAY,SACZgzB,WAAYA,IAM5B,OADAzmC,EAASztC,UACFc,GAEXkpM,yBAA0B,SAAS7wM,GAC/B,GAAI9Z,KAAK0pN,kBAAmB,CACxB,IAAIkB,EAAe5qN,KAAKs9D,mBAAmBC,oBAAoB3jE,OAC/DkgB,EAAQ5Y,QAAQ0P,IACZ,IACI9V,IAAKA,GACL8V,EACA4pD,EAAWx6D,KAAKiY,gBAAgB4hF,iBAAiB/+F,GACrD,IAAK,IAAM0/D,EACP,IAAK,IAAIjlD,EAAc,EAAGA,EAAcq1M,EAAcr1M,IAClDvV,KAAKw6G,UAAUvzC,gBAAgBzM,EAAUjlD,GAAa8C,YAAY,QAMtFs2K,eAAgB,SAAS74K,EAASjU,EAAOtF,GACrC,IAAImyE,EAAe,eAAE54D,EAAQ8oD,aAI7B,OAHI5+D,KAAK0pN,wBAAqB,IAAW5zM,EAAQhb,KAC7CkF,KAAKguL,eAAet/G,EAAc54D,GAE/B9V,KAAKC,SAASnB,MAAMkB,KAAME,YAErCqtL,cAAe,WACX,IAAIvqG,EAAiBhjF,KAAKiY,gBACtBjY,KAAKipN,0BACDjpN,KAAK0pN,mBACL1pN,KAAK2pL,oBAET3mG,EAAeiP,eAEnBjyF,KAAKC,SAASnB,MAAMkB,KAAME,YAE9BgxD,cAAe,SAAS7hB,GACpB,IAAImtC,EAAWntC,EAAKmtC,SAChB,YAAcntC,EAAKztC,MAAQ46E,IAAa,IACxCx8E,KAAK+pN,4BAA4B16K,GACjCA,EAAK+hB,SAAU,GAEfpxD,KAAKC,SAASovC,IAGtB46K,2BAA4B,SAAS10M,EAAay0M,EAAgB3lC,GAC9D,IAAI7lK,EAAUxe,KAAKs9D,mBAAmBC,oBAClChoD,GAAe,GACf,eAAY,KACRvV,KAAK+qL,iBAAiBvsK,EAAQjJ,GAAciJ,EAAQwrM,GAAiB3lC,MAIjFN,wBAAyB,SAAS10I,GAC9B,GAAIrvC,KAAKipN,wBAAyB,CAC9B,IAIQ4B,EAJJt1M,EAAcvV,KAAKslL,6BACnBnB,EAAwBnkL,KAAKokL,6BAC7BC,EAAcrkL,KAAKiY,gBAAgB4hF,iBAAiBxqD,EAAKktC,eAAiB4nG,EAC9E,GAAI,eAAU90I,EAAKxtC,QAAUwtC,EAAKxtC,QAAUwtC,EAAKktC,cAE7C,QAAUsuI,EAAwB7qN,KAAKiqN,kCAA+B,IAAWY,GAAiCA,EAAsBz0M,KAAKpW,KAAMuV,EAAaA,EAAa8uK,QAGjLrkL,KAAKC,SAASnB,MAAMkB,KAAME,YAGlC4hD,UAAW,SAAS0Y,GAChB,GAAIx6D,KAAKupN,kBAAoBvpN,KAAKg+D,YAAa,CAC3C,IAAI7gD,EAAWnd,KAAKiY,gBAAgB1N,QAAQiwD,GAAUr9C,SAClD0xK,EAAS7uL,KAAKiY,gBAAgB0hF,iBAAiBn/B,GACnDx6D,KAAKwyL,cAAc,KAAMr1K,GAAU0lE,OAAO,KACtCroB,EAAWx6D,KAAKiY,gBAAgB4hF,iBAAiBg1F,GACjD7uL,KAAKyrL,mBAAmBjxH,UAG5Bx6D,KAAKC,SAASnB,MAAMkB,KAAME,YAGlCurL,mBAAoB,SAASjxH,GACrBx6D,KAAK0pN,kBACL1pN,KAAK4rL,eAAepxH,GAEpBx6D,KAAKC,SAASnB,MAAMkB,KAAME,YAGlCykL,aAAc,SAASh0G,GACnB,IACI49G,cAAeA,GACf,OAAS59G,QAAU,IAAWA,EAASA,EAAS,GAChDm6I,EAAmB9qN,KAAK0pN,mBAAqBn7B,GAAiB,YAAcvuL,KAAK4Y,OAAO,kBACxF5Y,KAAKipN,wBACD6B,IACA9qN,KAAKikL,uBACLjkL,KAAKkkL,oBAGTlkL,KAAKC,SAASnB,MAAMkB,KAAME,YAGlC0nL,gBAAiB,SAASj3G,GACtB,QAAI3wE,KAAK0pN,mBAGF1pN,KAAKC,SAASnB,MAAMkB,KAAME,YAErC2rL,gBAAiB,SAASrxH,EAAUktH,GAChC,IAAI1kG,EAAiBhjF,KAAKiY,gBAC1B,OAAIjY,KAAK0pN,mBACL1mI,EAAeiP,YAAY,CACvBpwB,WAAY,SACZgzB,WAAY,CAAC6yF,EAAiBltH,MAE3B,IAAK,eAAU75C,WAEnB3gB,KAAKC,SAASnB,MAAMkB,KAAME,YAErCivL,eAAgB,SAASjyK,EAAK+xK,EAAgBI,GACtCrvL,KAAKipN,wBACLjpN,KAAK0vL,sBAAsBxyK,EAAK+xK,EAAgBI,GAEhDrvL,KAAKC,SAASnB,MAAMkB,KAAME,YAGlCyiL,wBAAyB,SAASjkI,EAAQ5oC,GACtC,GAAI9V,KAAKipN,wBAAyB,CAC9B,IAAI8B,EAAc/qN,KAAK0pN,kBACvB,OAAQhrK,EAAO98C,MACX,IAAK,OACL,IAAK,SACL,IAAK,OACD,OAAO,EACX,IAAK,SACD,OAAO5B,KAAKC,SAASnB,MAAMkB,KAAME,cAAgB6qN,IAAgBj1M,EAAQoH,IAAIqpK,SACjF,IAAK,WACD,OAAOwkC,GAAe/qN,KAAK2gD,cAAc7qC,IAAYA,EAAQoH,IAAIqpK,QACrE,QACI,OAAOvmL,KAAKC,SAASnB,MAAMkB,KAAME,YAG7C,OAAOF,KAAKC,SAASnB,MAAMkB,KAAME,YAErC8qN,oBAAqB,WACjB,IAAI/qN,EAAWD,KAAKC,SAASnB,MAAMkB,KAAME,WACzC,OAAOD,GAAYD,KAAK0pN,mBAE5Bl8B,iBAAkB,SAAS1zK,GAEnB,IAAImxM,EADJjrN,KAAKupN,iBAED,YAAc,QAAU0B,EAAYnxM,EAAQ,UAAO,IAAWmxM,OAAY,EAASA,EAAUxsN,OAC7FuB,KAAKC,SAASnB,MAAMkB,KAAME,YAG1BF,KAAK0pN,mBACL1pN,KAAK2qN,yBAAyB7wM,GAElC9Z,KAAKC,SAASnB,MAAMkB,KAAME,aAGlC2wL,mBAAoB,SAASx0F,GACzB,IAAI2mF,EAAiBhjL,KAAK4Y,OAAO,YAAc,GAC3Ck4K,EAAc9wL,KAAKC,SAASnB,MAAMkB,KAAME,WAK5C,OAJK8iL,EAAepiI,eAAiBoiI,EAAetiI,aAAesiI,EAAeriI,gBAAkB3gD,KAAK0pN,oBACrG54B,EAAY7tL,KAAKjD,KAAK0wL,kBAAkBr0F,EAAa,OAAQ,eAAgB,KAC7Ey0F,EAAY7tL,KAAKjD,KAAK0wL,kBAAkBr0F,EAAa,SAAU,iBAAkB,MAE9Ey0F,GAEX3D,mBAAoB,WAChB,IAAI+9B,EAKA98J,EAJArM,EAAU/hD,KAAKiY,gBAAgBggF,iBAAiBj4F,KAAKglL,mBACrDwE,EAAaxpL,KAAKspL,iBAClBprI,EAAmB,OAASsrI,QAAc,IAAWA,OAAa,EAASA,EAAWtrI,iBACtFitK,EAAqBnrN,KAAKupN,oBAAsB,OAASxnK,QAAW,IAAWA,GAAWA,EAAQ5kC,UAMtG,OAJIguM,GAAsBjtK,IACtBkQ,EAAW,IAAI,cACfpuD,KAAK0uL,YAAYtgI,IAEdpuD,KAAKC,SAASnB,MAAMkB,KAAME,WAAW2iF,OAAO,QAAUqoI,EAAa98J,SAAa,IAAW88J,OAAa,EAASA,EAAWvqM,UAEvI6zE,aAAc,SAAS1+E,EAAS66D,EAAQs+G,GACpC,IAAIk8B,EAAqBnrN,KAAKupN,kBAAoBzzM,EAAQoH,MAAQpH,EAAQoH,IAAIC,SAC1E+gC,EAAmBpoC,EAAQyE,OAAO2jC,iBAClCmxI,EAAuBv5K,EAAQyE,OAAO0jC,eAAiBnoC,EAAQyE,OAAOw/D,oBACtEqxI,EAA2BltK,IAAqB+wI,GAAkBk8B,GAAsBnrN,KAAKsuL,gBAAkBtuL,KAAKolL,WAAWtvK,EAAQ0kD,SAAU1kD,EAAQP,aAC7J,OAAI61M,GACAprN,KAAKsrL,yBACLtrL,KAAKmvL,eAAer5K,EAAQoH,KAAK,EAAMmyK,IAGpCrvL,KAAKC,SAASnB,MAAMkB,KAAME,YAErCsvL,iBAAkB,SAAS15K,EAASm5K,GAChC,IAAI/wI,EAAmBpoC,EAAQyE,OAAO2jC,iBAClCitK,EAAqBnrN,KAAKupN,kBAAoBzzM,EAAQoH,MAAQpH,EAAQoH,IAAIC,SAC9E,GAAI+gC,IAAqB+wI,EAAgB,CACrC,GAAIk8B,EAGA,OAFAnrN,KAAK6kL,eAAe/uK,EAAQoH,IAAIpiB,KAAK,GACrCkF,KAAKmpL,0BAA0BrzK,EAAQP,aAAa,GAC7CvV,KAAKsqL,eACT,GAAItqL,KAAK0pN,kBAEZ,OADAz6B,EAAiBjvL,KAAKovL,eAAet5K,EAAQyE,QACtCva,KAAKC,SAAS6V,EAASm5K,GAGtC,OAAOjvL,KAAKC,SAASnB,MAAMkB,KAAME,YAErCmmL,qBAAsB,SAASx8K,EAAMokF,GACjC,IACI7pF,KAAMA,EACN3F,KAAMA,GACNwvF,EACAjuF,KAAK0pN,mBAAqBjrN,IAAS,KACnCoL,EAAKzF,KAAO,gBAAwByF,EAAKzF,KAAMA,IAEnDpE,KAAKC,SAASnB,MAAMkB,KAAME,YAE9BwsL,mBAAoB,SAAS5yK,EAASsoK,EAAWipC,GAC7C,IAAIrrN,KAAK0pN,mBAAsB2B,EAG/B,OAAOrrN,KAAKC,SAASnB,MAAMkB,KAAME,YAErCssL,sBAAuB,WACnB,IAAIxsL,KAAK0pN,kBAGT,OAAO1pN,KAAKC,SAASnB,MAAMkB,KAAME,YAErC2oL,yBAA0B,SAASruH,GAC/Bx6D,KAAKC,SAASnB,MAAMkB,KAAME,WAC1B,IAAIgoL,EAAe1tH,GAAY,EAAIA,EAAW,EAC1CjlD,EAAcvV,KAAKyjL,8BACvBluK,GAAe,GAAKvV,KAAKsyL,SAASpK,EAAc3yK,MAI5DmgD,MAAO,CACHt4C,SAAU,CACN0/C,aAAc,WACV,IAAIhD,EAAS95D,KAAKC,SAASnB,MAAMkB,KAAME,WACnC07F,EAAoB57F,KAAKwxL,mBAQ7B,OAPI51F,EAAkBqtH,yBAA2BjpN,KAAK4Y,OAAO,0BACzD,OAAa9O,GAAGgwD,EAAQ,gBAAa9tB,GAAA,KAAUpqC,KAAM,sBAAuB,WAAa,GAAoB,IAAK5B,KAAKmxD,aAAa,KAC5HyqC,EAAkB59B,aAClB49B,EAAkB42F,mBAIvB14H,GAEX2C,WAAY,SAASv/C,GACjB,IAAIkgD,EAAOp9D,KAAKC,SAASnB,MAAMkB,KAAME,WACrC,GAAIgd,EAAK,CACL,IAAI0+E,EAAoB57F,KAAKwxL,mBACzBO,IAAiB70K,EAAIqpK,QACrB3qF,EAAkB8tH,mBAClB33B,GAAgB30H,EAAKjlD,SAASywM,IAGtC,OAAOxrJ,IAGfi/B,YAAa,CACTrkF,UAAW,WACP,IAAIgrK,EAAiBhjL,KAAK2xD,cAAc,WAAW/4C,OAAO,WAC1D,OAAO5Y,KAAKC,YAAc+iL,IAAmBA,EAAepiI,eAAiBoiI,EAAeriI,gBAAkBqiI,EAAe12I,OAAS8xI,QChlB1J,EAAShoH,eAAe,mBAAoB,I,8BC+CxCk1J,GAAmB,UACnBC,GAAuB,iBACvB,GAAkB,WAClBC,GAAwB,qBACxBC,GAA+B,kBAC/BC,GAA+B,4BAC/BC,GAAsB,mBACtB,GAAkB,YAClBC,GAA0B,uBAC1BC,GAA2B,wBAC3B,GAAgB,UAChB,GAAe,sBACfC,GAA2B,EAC3B,GAAgB,MAChB,GAAiB,OACjB,GAAkB,QAClB,GAAiB,OACjB,GAAkB,QAClB,GAAmB,gBACnBC,GAAmB,CAAC,GAAiB,IACrCC,GAAsB,cACtBC,GAAoB,CACpBC,MAAO,QACPC,QAAS,UACTzlL,QAAS,WAET0lL,GAAwB,SACxBC,GAAwB,SACxBC,GAAuB,SACvBC,GAA0B,SAASttN,GACnC,OAAO,eAAUA,IAAWA,IAAWqtN,IAEvCE,GAA6B,SAAS3qN,EAAO22D,GAC7C,YAAO,IAAW32D,QAAS,IAAWA,GAAS22D,IAAeA,EAAWr7C,UAEzEsvM,GAAuB,EAAQ95J,WAAW5C,QAAQ,CAClDU,KAAM,WACFzwD,KAAKwxL,mBAAqBxxL,KAAK2xD,cAAc,WAC7C3xD,KAAKmxD,aAAa,mBACbnxD,KAAK0sN,kBACN1sN,KAAK2sN,uBAGb,sBACI3sN,KAAK0sN,iBAAmB,GACxB1sN,KAAK4sN,sBAAwB,IAEjCC,gBAAiB,SAAStrK,GACtB,IAAIurK,EAAiB9sN,KAAK+sN,mBAAmB,OAASxrK,QAAU,IAAWA,OAAS,EAASA,EAAOzmD,KACpG,QAASgyN,KAAoBA,EAAeE,WAEhDD,mBAAoB,SAASjyN,EAAK+3B,GAC9B,IAEIi6L,EAFAG,EAAU,eAAWnyN,GACrBoyN,EAAkB,eAASD,GAiB/B,OAdIH,EADAI,EACiBltN,KAAK0sN,iBAAiBtuN,OAAOgG,GAAQ,eAAaA,EAAKtJ,IAAKA,IAAM,GAElEkF,KAAK4sN,sBAAsBK,IAE3CH,GAAkBj6L,IACnBi6L,EAAiB,CACbhyN,IAAKA,EACL66I,SAAS,GAEb31I,KAAK0sN,iBAAiBzpN,KAAK6pN,GACtBI,IACDltN,KAAK4sN,sBAAsBK,GAAWH,IAGvCA,GAEXK,gBAAiB,SAASL,EAAgBM,GACtC,IAAInjB,EAMJ,OAJIA,EADAmjB,EACcA,EAAkBnjB,aAAemjB,EAAkB7gB,YAAc,CAAC6gB,EAAkB7gB,YAEpFugB,EAAe7iB,aAAe,GAEzCA,GAEXojB,eAAgB,SAASP,EAAgBM,GACrC,IAAIh/J,EAAW,IAAI,cACf7M,EAASvhD,KAAKwxL,mBAAmB87B,eAAe,OAASR,QAAkB,IAAWA,OAAiB,EAASA,EAAehyN,KAC/HmvM,EAAcjqM,KAAKmtN,gBAAgBL,EAAgBM,GACnDz3E,EAAUy3E,EAAoBA,EAAkBz3E,QAAUm3E,EAAen3E,QACzE7+E,EAAa,CACbmzI,YAAaA,EACbt0D,QAASA,EACT76I,IAAKymD,EAAOzmD,IACZwxL,QAAS/qI,EAAOn9C,KAChBixH,QAASr1H,KAAKwxL,mBAAmBvP,YAAY1gI,EAAOzmD,KACpD2mB,QAAS,KACT8rM,UAAWvtN,KAAKwtN,6BAA6BvjB,IAQjD,OANAjqM,KAAKkyD,cAAc,kBAAmB4E,GACtC,kBAAK,yBAAYA,EAAWr1C,UAAUohE,QAAO,WACzCiqI,EAAen3E,QAAU7+E,EAAW6+E,QACpCm3E,EAAeS,UAAYz2J,EAAWy2J,UACtCn/J,EAASztC,QAAQm2C,MAEd1I,EAAS3sC,WAEpB+rM,6BAA8B,SAASvjB,GACnC,IAAIwjB,EAAsB,GAS1B,OARA,eAAKxjB,GAAa,SAAUlrM,EAAGwtM,GAC3B,IAAIhyL,EAASgyL,EAAWhyL,OACpBmzM,EAAsBnzM,QAAU,IAAWA,EAAOmjC,aAAenjC,EAAO6jC,gBACxEuvK,EAAkBpzM,GAAUA,EAAOggC,QAClCgyJ,EAAWxK,UAAUlrL,WAAWuI,SAASxlB,QAAY+zN,IAAmBD,GACzED,EAAoBxqN,KAAKspM,EAAWxzL,YAGrC00M,EAAoBzxN,KAAK,OAEpCqvM,SAAU,SAASuiB,GACf,IAAIj4E,GAAU,EACV/5C,EAAoB57F,KAAKwxL,mBACzBpjI,EAAW,IAAI,cACfy/J,EAAe,GACftsC,EAAW3lF,EAAkB0lF,cAEjC,GADAssC,EAASA,GAAUrsC,IAAa,GAC5BvhL,KAAK8tN,wBACL,OAAO1/J,EAASztC,SAAQ,GAAOc,UAGnC,GADAzhB,KAAK8tN,yBAA0B,EAC3BF,EAAQ,CACRhyH,EAAkB8yF,YAAYtgI,GAC9B,IAAIt0C,EAAU8hF,EAAkB8lF,aAChC,eAAK5nK,EAAS,CAAC1Y,EAAO+O,KAClB,IACI1R,KAAMA,EACN3D,IAAKA,GACLqV,EACJ,GAAI,WAAa1R,EAAM,CACnB,IAAIquN,EAAiB9sN,KAAK+sN,mBAAmBjyN,GAAK,GAC9CizN,EAAmB/tN,KAAKo7M,cAAc0R,GAC1Ce,EAAa5qN,KAAK8qN,GAClBA,EAAiB1vM,KAAK0vM,IAClBjB,EAAeE,WAAY,EAC3Br3E,EAAUA,GAAWo4E,EAAiBp4E,kBAI/C,GAAI31I,KAAKguN,sBAAuB,CACnC,IAAID,EAAmB/tN,KAAKo7M,cAAcp7M,KAAKguN,sBAAsBnjB,cACrEgjB,EAAa5qN,KAAK8qN,GAClBA,EAAiB1vM,KAAK0vM,IAClBp4E,EAAUo4E,EAAiBp4E,UAOnC,OAJA,qBAAQk4E,GAAcxvM,KAAK,KACvBre,KAAK8tN,yBAA0B,EAC/B1/J,EAASztC,QAAQg1H,KAEdvnF,EAAS3sC,WAEpB25L,cAAe,SAAS0R,GACpB,IAAImB,EAGAF,EAFA9uN,EAAS,IAAI,cACbm8M,EAAgB0R,GAAkB,QAAiBxS,eAAewS,GAStE,OAPI,OAAS1R,QAAiB,IAAWA,GAAiBA,EAAcb,WAAW3gN,SAC/EoG,KAAKkuN,0BAA0BpB,GAC/BiB,EAAmB,QAAiB3S,cAAc0R,IAEtD,mBAAM,QAAUmB,EAAoBF,SAAqB,IAAWE,OAAoB,EAASA,EAAkBzjK,WAAaujK,GAAkB1vM,KAAK0vM,IACnJ,kBAAK/tN,KAAKqtN,eAAeP,EAAgBiB,IAAmB1vM,KAAKpf,EAAO0hB,WAErE1hB,EAAOwiB,WAElB0sM,kBAAmB5sK,IAAW,eAAcA,EAAOn9C,MACnDgqN,sBAAuB,SAAS7sK,GAC5B,IAAIggI,EAAWvhL,KAAKwxL,mBAAmBlQ,cACnCxmL,EAAMymD,EAAOzmD,IACbgyN,EAAiB9sN,KAAK+sN,mBAAmBjyN,GAAK,GAClD,IAAK,IAAMixN,GAAiBztN,QAAQijL,GAAW,CAC3C,GAAIhgI,EAAO9iD,OAAS2tN,KAA0BpsN,KAAKmuN,kBAAkB5sK,GAEjE,YADAurK,EAAen3E,SAAU,GAG7B31I,KAAKquN,kCAAiC,GACtC,IAAIpU,EAAc,QAAiBK,eAAewS,GAClD,GAAI7S,EAAa,CACb,IAAI8T,EAAmB,QAAiB3S,cAAc0R,GACtD,kBAAKiB,EAAiBvjK,UAAYujK,GAAkB1vM,KAAK0vM,IACrDjB,EAAen3E,QAAUo4E,EAAiBp4E,QAC1Cm3E,EAAe7iB,YAAc8jB,EAAiB9jB,mBAE1C6iB,EAAe7iB,aAAgB6iB,EAAe7iB,YAAYrwM,SAClEkzN,EAAen3E,SAAU,GAE7B31I,KAAKquN,kCAAiC,QAEtCvB,EAAen3E,SAAU,GAGjC24E,aAAc,SAASvsB,GACnB/hM,KAAKguN,sBAAwBjsB,GAEjCwsB,2BAA4B,SAAS94M,GACjC,IAAIwiD,EAAaxiD,EAAWqC,KAAK,IAAM8zM,IACvC,IAAK3zJ,EAAWr+D,OAAQ,CACpB,IAAIm+D,EAAsBtiD,EAC1BwiD,EAAa,eAAE,SAAS7/C,SAAS2/C,GAAqB5/C,SAASyzM,IAC/D5rN,KAAKiZ,iBAAiBg/C,EAAY,SAClCxiD,EAAW0C,SAAS0zM,MAG5B2C,4BAA6B,SAAS/4M,GAClC,IAAIwiD,EAAaxiD,EAAWqC,KAAK,IAAM8zM,IACvC,GAAI3zJ,EAAWr+D,OAAQ,CACnB,IAAI69D,EAAY,QAAcksC,YAAY1rC,GACtCR,IACAA,EAAUtF,UACVsF,EAAU5gD,WAAW8B,UAEzBlD,EAAW4C,YAAYwzM,MAG/B4C,wBAAyB,SAASxvN,GAC9B,IAAI8iM,EAAY9iM,EAAO8iM,UACnBp5I,EAAkBo5I,EAAUnpL,OAAO,mBACnC2B,EAASwnL,EAAUnpL,OAAO,aAAjBmpL,GAAiCxnL,OAC9Cva,KAAK0uN,2BAA2B,CAC5B7/B,OAAQlmI,EAAgB7tD,IACxBya,YAAagF,EAAOnZ,MACpB2sN,iBAAkB9uN,KAG1B0vN,qBAAsB,SAAS/wH,GAC3BA,EAAIhsF,UAAU9H,GAAG,aAAc9J,KAAKyuN,wBAAwBjzM,KAAKxb,OACjE49F,EAAIhsF,UAAU9H,GAAG,YAAa9J,KAAKyuN,wBAAwBjzM,KAAKxb,QAEpE4uN,mBAAoB,SAAShxH,GACzB,IAAImkG,EAAYnkG,EAAIhsF,UAChB+2C,EAAkBo5I,EAAUnpL,OAAO,mBACnC2B,EAASwnL,EAAUnpL,OAAO,aAAjBmpL,GAAiCxnL,OAC1Ctb,EAASe,KAAK6uN,wBAAwB,CACtChgC,OAAQ,OAASlmI,QAAmB,IAAWA,OAAkB,EAASA,EAAgB7tD,IAC1Fya,YAAagF,EAAOnZ,QAEpBmrN,GAAwBttN,IAAWA,EAAO0hC,SAAWsrL,GAAkBvlL,SACvE1mC,KAAK8uN,2BAA2B,CAC5BvtK,OAAQoH,EACRpzC,YAAagF,EAAOnZ,SAIhC2tN,sBAAuB,SAASt5M,EAAYxW,GACxC,IAAI8iM,EAAY9iM,EAAO8iM,UACnBp5I,EAAkBo5I,EAAUnpL,OAAO,mBACnC2B,EAASwnL,EAAUnpL,OAAO,aAAjBmpL,GAAiCxnL,OAK9C,GAJAtb,EAAOgrM,aAAehrM,EAAOgrM,YAAY/oM,QAAQ6qM,IAC7CA,EAAKx2L,YAAcgF,EAAOnZ,MAC1B2qM,EAAKxxL,OAASA,IAEd9E,EAAY,CACZ,IAAIs4M,EAAmB/tN,KAAK6uN,wBAAwB,CAChDhgC,OAAQlmI,EAAgB7tD,IACxBya,YAAagF,EAAOnZ,QAEpB4tN,EAAoBzC,GAAwBwB,IAAqBA,EAAiBkB,oBAAsBhwN,EAAOnQ,GACnH,GAAIkR,KAAKkvN,gCAAkCF,EACvC,OAEJ,GAAI/vN,EAAO0hC,SAAWsrL,GAAkBE,QAAS,CAC7C,IAAIvxC,EAASnlK,EAAWqC,KAAK,UACxB,gBAAQ8iK,KACT,OAAa58J,QAAQ48J,EAAQ,SAC7B,OAAa58J,QAAQ48J,EAAQtgH,EAAA,KAAcC,OAGnD,IAAIr8C,GAAU3D,EAAOhP,kBAAoBvL,KAAK2xD,cAAc,iBAAiBw9J,kBAAkB15M,GAC3FxW,EAAO0hC,SAAWsrL,GAAkBvlL,QAChCxoB,EACAA,EAAOtF,OAAO,mBAAoBqzM,GAAkBvlL,SAEpD1mC,KAAKuuN,2BAA2B94M,GAE7ByI,EACPA,EAAOtF,OAAO,mBAAoBqzM,GAAkBC,OAEpDlsN,KAAKwuN,4BAA4B/4M,GAErCA,EAAW8+C,YAAYv0D,KAAK4X,gBAAgB0zM,IAAmBrsN,EAAO0hC,SAAWsrL,GAAkBE,WAG3GiD,yBAA0B,SAASt4J,GAC/B,IAAIu4J,EACAzzH,EAAoB57F,KAAKwxL,mBACzBjwI,EAASq6C,EAAkB0xH,eAAex2J,EAAWh8D,KACrDw0N,EAAmB1zH,EAAkBqmF,YAAYnrH,EAAWh8D,KAC5Du6H,EAAU,QAAUg6F,EAAkBv4J,EAAW55C,WAAQ,IAAWmyM,OAAkB,EAASA,EAAgBh6F,QAC/G9zE,GAAU8zE,IAAYi6F,GACtB1zH,EAAkBmmF,iBAAiB,CAC/BjnL,IAAKg8D,EAAWh8D,IAChBu6H,QAASA,KAIrBk6F,gBAAiB,SAASz4J,EAAYrhD,GAClC,IAAImmF,EAAoB57F,KAAKwxL,mBACzBj3K,EAASu8C,EAAWv8C,OACpB2jC,EAAmB3jC,EAAO2jC,iBAC9B,IAAI,eAAU3jC,EAAOsE,UAAatE,EAAOgkC,iBAAoB1/C,MAAMuY,QAAQmD,EAAOgkC,kBAAqBhkC,EAAOgkC,gBAAgB3kD,OAA9H,CAGA,IAAIwoL,EAAYxmF,EAAkBtiF,cAAcw9C,EAAWh8D,IAAK8gG,EAAkB8lF,cAC9E8tC,EAAsBptC,GAAa,EACvC,IAAKotC,EAAqB,CACtB,IAAKtxK,EAAkB,CACnB,IAAIoZ,EAAoBt3D,KAAK2xD,cAAc,WACvC0L,GAAkB,OAAS/F,QAAqB,IAAWA,OAAoB,EAASA,EAAkBiG,sBAAwB,GACtIrf,EAAmBmf,EAAez+C,MAAK,SAAUrE,GAC7C,OAAOA,EAAO2jC,oBAGtB,IAMQuxK,EAAuBC,EAN3BzkF,EAAY,eAAajrI,KAAK4Y,OAAO,sBAAuBk+C,EAAWh8D,KACvE60N,EAA8B/zH,EAAkBqtH,yBAA2BrtH,EAAkBh7C,cAAc,CAC3G1jC,IAAK45C,EAAW55C,MAGpB,GADAsyM,EAAsBvkF,GAAa0kF,GAA+BzxK,EAC9DyxK,GAA+BzxK,EAE/B09C,EAAkBmmF,iBAAiB,CAC/BjnL,IAAKg8D,EAAWh8D,IAChBu6H,QAAS,QAAUo6F,EAAwB,QAAUC,EAAmB54J,EAAW55C,WAAQ,IAAWwyM,OAAmB,EAASA,EAAiBr6F,eAAY,IAAWo6F,EAAwBA,EAAwB34J,EAAW1yD,OAIjP,GAAIorN,EAAqB,CACrB,GAAI/5M,IAAeA,EAAW7b,OAE1B,YADA,OAAOkK,IAAI,SAGf9D,KAAKovN,yBAAyBt4J,GAC9B,IAAIg2J,EAAiB9sN,KAAK+sN,mBAAmBj2J,EAAWh8D,KAAK,GACzDs8J,EAAW,KACX,IAAI71G,EAASq6C,EAAkB0xH,eAAe,OAASR,QAAkB,IAAWA,OAAiB,EAASA,EAAehyN,KACzH+G,EAAQ0Y,EAAO1F,oBAAoB,OAAS0sC,QAAU,IAAWA,OAAS,EAASA,EAAOn9C,OAAS,IACvG,YAAO,IAAWvC,EAAQA,EAAQi1D,EAAWj1D,OAE7C+tN,EAAsBn6M,GAAcA,EAAWwhD,SAAS,aAC5DxhD,GAAcA,EAAW0C,SAASnY,KAAK4X,gBAAgB,KACvD,IAAImqL,EAAY,IAAI,GAAUtsL,GAAc,eAAE,SAAU,CACpD7T,KAAM2Y,EAAOrP,QACbqzC,gBAAiB,OAAA9jD,EAAA,YAAO,EAAM,GAAI8f,EAAOgkC,iBACzCoK,gBAAiBmkK,EACjB1hB,QAASwkB,EAAsB,KAAO,CAClCx4D,SAAUA,EACVw1C,uBAAwB3tM,IACpBe,KAAK+uN,sBAAsBt5M,EAAYxW,KAG/CmzM,WAAY,WACR,IAAIt3M,EAAM,OAASgyN,QAAkB,IAAWA,OAAiB,EAASA,EAAehyN,IACrFymD,EAASq6C,EAAkB0xH,eAAexyN,GAC1Cu6H,EAAUz5B,EAAkBqmF,YAAYnnL,GAC5C,MAAO,CACHsJ,KAAM,gBAAwBixH,EAAS,OAAS9zE,QAAU,IAAWA,OAAS,EAASA,EAAOn9C,MAC9FmW,OAAQA,IAGhBk9B,cAAez3C,KAAK2uN,qBAAqBnzM,KAAKxb,MAC9C42C,YAAa52C,KAAK4uN,mBAAmBpzM,KAAKxb,QAE9C,GAAI4vN,EAAqB,CACrB,IAAIxkB,EAAUrJ,EAAUnpL,OAAO,WAC3BwyL,IACAA,EAAQh0C,SAAWA,EACnBg0C,EAAQrB,4BAA8B,GACtCqB,EAAQc,OAAS,IAAMp1I,EAAW55C,IAAIC,WAAand,KAAK8tN,0BAA4BlyH,EAAkB3F,eAAen/B,IAG7H,OAAOirI,KAGfssB,iCAAkC,SAASwB,GACvC7vN,KAAKkvN,+BAAiCW,GAE1CC,iCAAkC,WAC9B,OAAO9vN,KAAKkvN,gCAEhBa,6BAA8B,SAASn/M,GACnC,IACIi+K,OAAQA,EACRt5K,YAAaA,GACb3E,EACJ,OAAO5Q,KAAKguN,uBAAyB,eAAahuN,KAAKguN,sBAAsBp1M,OAAO,mBAAmB9d,IAAK+zL,IAAW7uL,KAAKguN,sBAAsBp1M,OAAO,aAAlC5Y,GAAkDua,OAAOnZ,QAAUmU,GAE9Ly6M,aAAc,SAASjuB,GACnB,IAAIkuB,EAAa,CACbphC,OAAQkT,EAAUnpL,OAAO,mBAAmB9d,IAC5Cya,YAAawsL,EAAUnpL,OAAO,aAAjBmpL,GAAiCxnL,OAAOnZ,OAErD2sN,EAAmB/tN,KAAK6uN,wBAAwBoB,GAChDC,EAAgB3D,GAAwBwB,GACvCmC,IACDnC,EAAmBhsB,EAAUsJ,YAEjC,IAAIj9I,EAAW,IAAI,cACfg9I,EAAUrJ,EAAUnpL,OAAO,WAS/B,OARIs3M,GAAiBnC,EAAiBptL,SAAWsrL,GAAkBvlL,UAC/D1mC,KAAK0uN,2BAA2BuB,GAChC7kB,EAAQwB,uBAAuBmhB,IAEnC,kBAAKA,EAAiBvjK,UAAYujK,GAAkB1vM,KAAK0vM,IACrDmC,GAAiB9kB,EAAQwB,uBAAuBmhB,GAChD3/J,EAASztC,QAAQotM,KAEd3/J,EAAS3sC,WAEpBitM,2BAA4B,SAASzgI,GACjC,IACI4gG,OAAQA,EACRt5K,YAAaA,EACbw4M,iBAAkBA,GAClB9/H,EACA6+H,EAAiB9sN,KAAK+sN,mBAAmBl+B,GAC7C,GAAKi+B,EAAL,CAMA,IAAI7tN,EACJ,GAJK6tN,EAAeM,oBAChBN,EAAeM,kBAAoB,IAGnCW,GAGA,GAFA9uN,EAAS,OAAAxE,EAAA,WAAO,GAAIszN,GACpBjB,EAAeM,kBAAkB73M,GAAetW,EAC5C8uN,EAAiBptL,SAAWsrL,GAAkBvlL,UAC1C1mC,KAAKwxL,mBAAmBlQ,gBAAkB,KAC1CriL,EAAOmvD,SAAW,IAAI,cACtBnvD,EAAOurD,SAASq4B,OAAO,KACnB5jF,EAAOmvD,SAASztC,YAEpB3gB,KAAKwxL,mBAAmB9C,YAAYzvL,EAAOmvD,WAE3CpuD,KAAKkvN,gCAEL,YADAjwN,EAAOgwN,kBAAoBlB,EAAiBj/N,SAKpDmQ,EAAS6tN,EAAeM,kBAAkB73M,GAE1CtW,GAAUA,EAAOgwN,0BACVhwN,EAAOgwN,oBAGtBJ,wBAAyB,SAAS1gI,GAC9B,IAAIgiI,GAEAthC,OAAQA,EACRt5K,YAAaA,GACb44E,EACA2+H,EAAiB9sN,KAAK+sN,mBAAmBl+B,GAAQ,GACrD,OAAO,OAASi+B,QAAkB,IAAWA,GAA0B,QAAUqD,EAAwBrD,EAAeM,yBAAsB,IAAW+C,OAA3F,EAA4HA,EAAsB56M,IAEpN66M,2BAA4B,SAASjkI,GACjC,IACI5qC,OAAQA,EACRhsC,YAAaA,GACb42E,EACA2gI,EAAiB9sN,KAAK+sN,mBAAmB,OAASxrK,QAAU,IAAWA,OAAS,EAASA,EAAOzmD,KAChGgyN,GAAkBA,EAAeM,oBACjCptN,KAAK8uN,2BAA2B,CAC5BvtK,OAAQA,EACRhsC,YAAaA,WAEVu3M,EAAeM,kBAAkB73M,KAGhDu5M,2BAA4B,SAASuB,GACjC,IACI9uK,OAAQA,EACRhsC,YAAaA,GACb86M,EACAvD,EAAiB9sN,KAAK+sN,mBAAmBxrK,EAAOzmD,KACpD,GAAIymD,GAAUurK,EAAeM,kBAAmB,CAC5C,IAAInuN,EAAS6tN,EAAeM,kBAAkB73M,GAC1CtW,IACAA,EAAOmvD,UAAYnvD,EAAOmvD,SAASv6B,OAAOy4L,IAC1CQ,EAAeM,kBAAkB73M,GAAe+2M,MAI5D4B,0BAA2B,SAASpB,GAC5BA,IACAA,EAAeM,0BAA4BN,EAAeM,yBACnDN,EAAeE,YAG9BsD,cAAe,SAASC,GACpB,IACI1hC,OAAQA,EACRt5K,YAAaA,GACbg7M,EACAtxN,EAASe,KAAK6uN,wBAAwB,CACtChgC,OAAQA,EACRt5K,YAAaA,IAEjB,OAAOg3M,GAAwBttN,IAAWA,EAAO0hC,SAAWsrL,GAAkBE,SAElFqE,iBAAkB,SAASC,GACvB,IACI5hC,OAAQA,EACRt5K,YAAaA,GACbk7M,EACA3D,EAAiB9sN,KAAK+sN,mBAAmBl+B,GACzCorB,EAAc6S,GAAkB,QAAiBxS,eAAewS,GAChEvS,EAAaN,GAAeA,EAAYM,WAC5C,OAAOA,GAAcA,EAAWn8M,OAAOuxB,IACnC,IAAIpV,EAASoV,EAAE/W,OAAO,aAAT+W,GAAyBpV,OACtC,QAAOA,GAASA,EAAOnZ,QAAUmU,IAClC,IAEPm7M,wBAAyB,SAASlzJ,GAC9B,IAAIuwJ,EAAmB/tN,KAAK6uN,wBAAwB,CAChDhgC,OAAQrxH,EAAY1iE,IACpBya,YAAaioD,EAAYjjD,OAAOnZ,QAEhC,eAAU2sN,GACVvwJ,EAAY0sI,iBAAmB6jB,IAAqBzB,GAAuByB,EAAiBptL,OAAS2rL,UAE9F9uJ,EAAY0sI,oBAIpBymB,GAAmB,CAC1BhzN,eAAgB,WACZ,MAAO,CACHi3C,QAAS,CACL6K,MAAO,CACH0C,wBAAyB,OAAoB9oD,OAAO,0CAKpEm8D,YAAa,CACTo7J,WAAYnE,IAEhB72J,UAAW,CACPJ,YAAa,CACT5gB,QAAS,CACLuzI,WAAY,SAAS0H,GACjB,IAAItuI,EAASvhD,KAAKC,SAASnB,MAAMkB,KAAME,WACnC2wN,EAAuB7wN,KAAK2xD,cAAc,cAI9C,OAHIpQ,GAAUsuI,EAAapxL,OAAS4tN,IAChCwE,EAAqBzC,sBAAsB7sK,GAExCA,GAEXyiI,qBAAsB,SAAS30I,GAC3BrvC,KAAKC,SAASnB,MAAMkB,KAAME,WAC1B,IAAI2wN,EAAuB7wN,KAAK2xD,cAAc,cAC9CtiB,EAAKxtC,MAAMX,QAAQqgD,SACX,IAAWsvK,EAAqB9D,mBAAmBxrK,EAAOzmD,MAC1D+1N,EAAqBzC,sBAAsB7sK,MAIvDuvK,yBAA0B,WACtB,IAAIntN,EAAO3D,KACP+wN,EAAmBptN,EAAK0Z,QAAQ,YAAYynF,yBAC5CtqC,EAAWu2J,EACf,eAAKptN,EAAK+9K,aAAc,CAAC3iL,EAAGiyN,KACxB,IACIl2N,IAAKA,EACL2D,KAAMA,GACNuyN,EACAlE,EAAiB9sN,KAAK2xD,cAAc,cAAco7J,mBAAmBjyN,GACrEgyN,IAAmBA,EAAen3E,SAAWm3E,EAAe7gK,YAActoD,EAAK+gL,aAC/EooC,EAAe7gK,UAAYtoD,EAAK+gL,WAE5BooC,EAAetyJ,SADf/7D,IAAS2tN,GACiB2E,EAEAv2J,EAE9BA,QAIZotJ,2BAA4B,SAASH,GACjC,IAAIoJ,EAAuB7wN,KAAK2xD,cAAc,cAC1Cm7J,EAAiB+D,EAAqB9D,mBAAmBtF,EAAc3sN,KAAK,GAChF,MAAO,CACH6tD,gBAAiBmkK,IAGzBl9B,6BAA8B,SAAS1yK,EAAKmyK,GACpCA,GAAwBrvL,KAAK2kN,WAC7B3kN,KAAK2kN,UAAUtZ,WAEnBrrM,KAAKC,SAASnB,MAAMkB,KAAME,YAE9BuqN,iBAAkB,SAAS95I,GACvB,IAAIsgJ,EAAgBjxN,KAAKC,SAASnB,MAAMkB,KAAME,WAC1C2wN,EAAuB7wN,KAAK2xD,cAAc,cAM9C,OALIs/J,GAAiBtgJ,EAAOp2D,OAAO2jC,kBAC/B2yK,EAAqBzC,sBAAsB,CACvCtzN,IAAK61E,EAAO71E,MAGbm2N,GAEX72F,aAAc,SAAS7vH,EAAOs3D,GAC1B,IAAI/nD,EAAU9Z,KAAK0hL,aACf1+F,EAAiBhjF,KAAK2xD,cAAc,QACpCk/J,EAAuB7wN,KAAK2xD,cAAc,cAC9CpnD,EAAQvK,KAAKC,SAASsK,EAAOs3D,GAC7B,IAAIiqB,EAAavhF,EAAM3Q,OACnBs3N,EAAiB,SAAS3vK,EAAQurK,GAClC,IAAI1oN,EAAO,CACPtJ,IAAKymD,EAAOzmD,KAEZsG,EAAQ,SAASmgD,EAAQh3C,GACzB,IAAInJ,GAAS,EACT+kL,EAAW5kI,EAAO9iD,OAAS2tN,GAC3BtxN,EAAMymD,EAAOzmD,IAOjB,OANA,eAAKyP,GAAO,SAAU9O,EAAGoO,GACrB,GAAI,eAAa/O,EAAKqrL,EAAWt8K,EAAK/O,IAAMkoF,EAAewI,MAAM3hF,IAE7D,OADAzI,EAAQ3F,GACD,KAGR2F,EAVC,CAWVmgD,EAAQh3C,GACV,KAAInJ,GAAS,GAAb,CAGA0rN,EAAetyJ,SAAWsyJ,EAAetyJ,SAAWsxB,EAAaghI,EAAetyJ,SAAWsxB,EAAaghI,EAAetyJ,SACvH,IAAIA,EAAWsyJ,EAAetyJ,SAC9Bp2D,EAAK,IAAgB,EACrBmG,EAAM85D,OAAO7J,EAAU,EAAGp2D,KAW9B,OATIpE,KAAKshL,gBAAkB,IAAmB,YAAcz/G,GAAc,WAAaA,GACnF/nD,EAAQ5Y,QAAQqgD,IACZ,IAAIzmD,EAAMymD,EAAOzmD,IACbgyN,EAAiB+D,EAAqB9D,mBAAmBjyN,GACzDgyN,GAAkBvrK,EAAO9iD,MAAQquN,EAAe7gK,YAAcjsD,KAAK0kL,aAAe,OAASnjI,QAAU,IAAWA,OAAS,EAASA,EAAO0K,aAAejsD,KAAK0kL,YAC7JwsC,EAAe3vK,EAAQurK,KAI5BviN,GAEX67K,gBAAiB,SAASv8K,GACtB,IAAIsnN,EAAatnN,EAAKzF,KAAK,IACvBtJ,EAAMq2N,EAAatnN,EAAKzF,KAAKtJ,IAAM+O,EAAK/O,IACxCymL,EAAWvhL,KAAKshL,cACpB,GAAIC,IAAa,IAAmB4vC,GAAcr2N,EAAK,CACnD,IAAIgf,EAAU9Z,KAAK0hL,aACfU,EAAY,OAAc9oK,cAAcxe,EAAKgf,GACjD,GAAIsoK,GAAa,EAAG,CAChB,IAAI7gI,EAASznC,EAAQsoK,GACrB,GAAI7gI,EAAO9iD,OAAS2tN,GAAuB,CACvC,IAAI/2F,EAAUr1H,KAAKiiL,YAAY1gI,EAAOzmD,KACtC+O,EAAKzF,KAAO,OAAA3J,EAAA,YAAO,EAAM,GAAI46H,EAAS9zE,EAAOn9C,MAC7CyF,EAAK/O,IAAMA,IAIvBkF,KAAKC,SAASnB,MAAMkB,KAAME,YAE9BkxN,iCAAkC,SAASt3M,GACvC,IAAInW,EAAO3D,KACP6wN,EAAuB7wN,KAAK2xD,cAAc,cAC1C2F,EAAoBt3D,KAAK2xD,cAAc,WACvCnzC,EAAU84C,EAAkBc,aAC5Bi5J,EAAmB/5J,EAAkByoB,sBAAsB3hF,OAAOmc,IAAWA,EAAOsjC,QACpFojC,EAAe3pB,EAAkBgf,kBAAkBl4E,OAAOmc,IAAWA,EAAO6jC,kBAAoB,IAAMizK,EAAiB/yN,QAAQic,IAC/H+2M,EAA4B,GAC5BC,EAAgB,CAACh3M,EAAQs0K,IAAW7uL,KAAKiY,gBAAgB4hF,iBAAiBg1F,IAAW,GAAKwiC,EAAiB/yN,QAAQic,GAAU,EA4BjI,OA3BA82M,EAAiBpuN,QAAQg+E,IACpB,IAAM8qI,GAAiBztN,QAAQ0B,KAAKshL,gBACrC,eAAK9iK,GAAS,SAAUzf,EAAGwb,GACvBT,EAAQ5Y,SAAQ,SAAUqgD,GACtB,IAAIn9C,EACJ,IAAImtN,EAAch3M,EAAQgnC,EAAOzmD,KAAjC,CAGA,GAAIymD,EAAO9iD,OAAS2tN,GAChBhoN,EAAOm9C,EAAOn9C,UACX,GAAI,WAAam9C,EAAO9iD,KAAM,CACjC,IAAI42H,EAAU1xH,EAAKs+K,YAAY1gI,EAAOzmD,KACtCsJ,EAAO,gBAAwBixH,EAAS9zE,EAAOn9C,MAEnD,GAAIA,EAAM,CACN,IAAI29L,EAAY8uB,EAAqBtB,gBAAgB,CACjDh1M,OAAQA,EACRzf,IAAKymD,EAAOzmD,IACZ+G,MAAO0Y,EAAO1F,mBAAmBzQ,KAEjC29L,GACAuvB,EAA0BruN,KAAK8+L,WAM5C,WACHuvB,EAA0BpwN,SAAQ,SAAU6gM,GACxCA,EAAU5vI,eAItBk6H,oBAAqB,SAAS9qI,EAAQ6gI,GAClC,IAAInjL,EAASe,KAAKC,SAASnB,MAAMkB,KAAME,WACnC2wN,EAAuB7wN,KAAK2xD,cAAc,cAC1Cm7J,EAAiB+D,EAAqB9D,mBAAmB,OAASxrK,QAAU,IAAWA,OAAS,EAASA,EAAOzmD,KACpH,GAAIymD,EAAQ,CACR,IAAIo0F,EAAU,WAAap0F,EAAO9iD,MAAQquN,EAAen3E,QACzD12I,EAASA,IAAW02I,MACjB,CACH,IAAI67E,EAAoBxxN,KAAKoxN,iCAAiCpxN,KAAK0hL,cACnEziL,EAAS,IAAI,cACbe,KAAK4qL,iBAAiB3rL,EAAQ,KAC1B4xN,EAAqBxlB,UAAS,GAAMhtL,KAAKozM,IAGrC,OAFAD,IACAxxN,KAAK8wN,2BACG9wN,KAAKshL,eACT,KAAK,GACImwC,GACDzxN,KAAKsrL,oBAET,MACJ,KAAK,GACImmC,IACDzxN,KAAKkkL,mBACLlkL,KAAKikL,uBACLjkL,KAAK2xD,cAAc,QAAQsgC,eAGvChzF,EAAO0hB,SAAS8wM,OAI5B,OAAOxyN,EAAOwiB,QAAUxiB,EAAOwiB,UAAYxiB,GAE/CurN,gBAAiB,SAAShwJ,EAAUjlD,EAAa1L,GAC7C,IAAI5K,EAASe,KAAKC,SAASu6D,EAAUjlD,EAAa1L,GAClD,GAAI7J,KAAKshL,gBAAkB,GAAgB,CACvC,IAAIzpH,EAAQ73D,KAAKw6G,UAAUvzC,gBAAgBzM,EAAUjlD,GACjDwsL,EAAYlqI,GAASA,EAAMzzD,KAAK,eAChCo0D,EAAaX,GAASA,EAAM15C,QAAQ,WAAW/Z,KAAK,WACpDvC,EAAQkgM,GAAaA,EAAUnpL,OAAO,WAAWw+I,WACrD,GAAI2qC,GAAayqB,GAA2B3qN,EAAO22D,GAAa,CAC5D,IAAIq4J,EAAuB7wN,KAAK2xD,cAAc,cAC1CvD,EAAW,IAAI,cAInB,OAHA,kBAAKyiK,EAAqBb,aAAajuB,GAAY9iM,GAAQof,KAAK,CAAC0vM,EAAkB9uN,KAC/EmvD,EAASztC,QAAQotM,EAAiBptL,SAAWsrL,GAAkBC,OAASjtN,KAErEmvD,EAAS3sC,UACb,IAAKsgL,EACR,OAAO9iM,IAInBouL,mBAAoB,SAAS9sI,GACzB,IAAI+6D,EACAiuG,EAAiBvpN,KAAKshL,gBAAkB,GAK5C,GAJA,eAAKthL,KAAK0hL,aAAc,CAAC3iL,EAAGwiD,KACxB,IAAIm5D,EAAY16G,KAAK0xN,cAAcnwK,GACnC+5D,EAAiBA,GAAkBZ,IAEnCY,EAAgB,CAChB,IAAIte,EAAah9F,KAAKw6G,UAAUtc,gBAC5BlB,IACAA,EAAW14B,SACX04B,EAAWkI,gBAAgBoW,IAGnC,GAAI/6D,GAAUgpK,GAAkBvpN,KAAKovL,iBAAkB,CACnD,IAAIlH,EAAeloL,KAAKglL,kBACxBhlL,KAAKiY,gBAAgBg6E,YAAY,CAC7BpwB,WAAY,SACZgzB,WAAY,CAACqzF,KAEjBloL,KAAKsrL,yBACF,IAAK/qI,EAAQ,CAChB,IAAIoxK,GAA6B,EACjC,GAAIpI,EAAgB,CAChB,IAAI/qM,EAAUxe,KAAK2xD,cAAc,WAAWyG,aACxCw5J,EAA+BpzM,EAAQpgB,OAAO8gE,IAC9C,IAAI2yJ,EACJ,OAAO3yJ,EAAIhhB,mBAAqB,QAAU2zK,EAAuB3yJ,EAAI3gB,uBAAoB,IAAWszK,OAAuB,EAASA,EAAqBj4N,QAAU,IACpKA,OAAS,EACZ+3N,GAA8BC,EAE9BD,GACA3xN,KAAK2xD,cAAc,cAAcg7J,wBAI7CpnJ,mBAAoB,SAASl2B,GACzB,IAAIyiL,EAAkB9xN,KAAK2xD,cAAc,cAAc+6J,iBACnD,aAAe1sN,KAAK4Y,OAAO,mBAC3B5Y,KAAK+xN,yBAEL,YAAc1iL,EAAKwyB,YACnB,eAAKiwJ,GAAiB,SAAU/yN,EAAG+tN,GAC/BA,EAAetyJ,UAAYnrB,EAAK9kC,MAAM3Q,UAG9CoG,KAAKC,SAASovC,IAElB0iL,uBAAwB,WACpB,IAAID,EAAkB9xN,KAAK2xD,cAAc,cAAc+6J,iBACvD,eAAKoF,EAAiB,CAAC/yN,EAAG+tN,KAClBA,EAAe7gK,YAAcjsD,KAAK0kL,oBAC3BooC,EAAe7gK,iBACf6gK,EAAetyJ,aAIlC2zH,sBAAuB,WACnBnuL,KAAK2xD,cAAc,cAAcg7J,sBACjC3sN,KAAKC,YAETyxN,cAAe,SAASnwK,GACpB,IAAI65D,EACAO,EAAgB37G,KAAK2xD,cAAc,iBACnCpnD,EAAQvK,KAAK2xD,cAAc,QAAQpnD,QACnCiwD,EAAWx6D,KAAKsZ,cAAcioC,EAAOzmD,IAAKyP,GAC1CuiN,EAAiB9sN,KAAK2xD,cAAc,cAAco7J,mBAAmBxrK,EAAOzmD,KAChF,IAAM,OAASgyN,QAAkB,IAAWA,IAAkBA,EAAen3E,UAAY,OAASm3E,QAAkB,IAAWA,GAAkBA,EAAeS,WAAa/yJ,GAAY,EAErL,OADA4gD,EAAgBp7G,KAAKwiL,kBACd7mE,GAAiBA,EAAcR,eAAe,OAAS2xG,QAAkB,IAAWA,OAAiB,EAASA,EAAeS,UAAW/yJ,EAAU4gD,IAGjK4zE,iBAAkB,SAASprL,GACvB,IAAIitN,EAAuB7wN,KAAK2xD,cAAc,cAC1CvD,EAAW,IAAI,cAenB,OAdAyiK,EAAqBT,2BAA2B,CAC5C7uK,OAAQvhD,KAAKstN,eAAe1pN,EAAE9I,KAC9Bya,YAAa3R,EAAE2W,OAAOnZ,QAE1BpB,KAAKC,SAASnB,MAAMkB,KAAME,WAAWme,KAAK,KACtC,IAAI2zM,EAAmBnB,EAAqBL,iBAAiB,CACzD3hC,OAAQjrL,EAAE9I,IACVya,YAAa3R,EAAE2W,OAAOnZ,QAE1B,kBAAK4wN,GAAoBnB,EAAqBb,aAAagC,IAAmB3zM,KAAK0vM,IAC/E/tN,KAAK2xD,cAAc,iBAAiB+pH,UACpCttH,EAASztC,QAAQotM,OAGlB3/J,EAAS3sC,WAEpBsvK,kBAAmB,SAASl5H,EAAOf,GAC/B92D,KAAKC,SAASnB,MAAMkB,KAAME,WAC1B,IAAI2wN,EAAuB7wN,KAAK2xD,cAAc,cAC9Ck/J,EAAqBH,wBAAwB55J,GAC7C,IAAI87H,IAAmB97H,EAAWiiE,SAC9Bu4D,EAAetxL,KAAKi2F,eAAen/B,GACnCm7J,EAAc,eAAUn7J,EAAWozI,kBACnCgoB,EAAiB5gC,GAAgBx6H,EAAWv8C,OAAO0jC,cAAgB20I,IAAmBtB,KAAkBx6H,EAAW55C,IAAIC,WAAa80M,GACxI,GAAIC,EAAgB,CAChB,IAAInwB,EAAYlqI,EAAMzzD,KAAK,eACvB29L,GACA,kBAAK/hM,KAAK2xD,cAAc,cAAcq+J,aAAajuB,IAAY1jL,KAAK,KAChEwyM,EAAqBH,wBAAwB55J,OAK7Dw2J,eAAgB,SAASxyN,GACrB,IAAIgf,EAAU9Z,KAAK0hL,aACnB,OAAO5nK,EAAQ,OAAcR,cAAcxe,EAAKgf,KAEpDm8E,eAAgB,SAASn/B,GACrB,IAAIw6H,EAAetxL,KAAKC,SAAS62D,GAC7BvV,EAASvhD,KAAKstN,eAAex2J,EAAWh8D,KACxCq3N,IAAkBr7J,EAAW55C,KAAOld,KAAK2xD,cAAc,cAAc2+J,cAAc,CACnFzhC,OAAQ/3H,EAAWh8D,IACnBya,YAAauhD,EAAWv8C,OAAOnZ,QAEnC,OAAOkwL,GAAgBtxL,KAAK2xD,cAAc,cAAck7J,gBAAgBtrK,IAAW4wK,IAG3FjwG,cAAe,CACXkwG,kBAAmB,SAAS38M,GACxB,GAAKA,GAAeA,EAAW7b,OAA/B,CAGA,IAAIy4N,EAAkBryN,KAAKw6G,UAAU9iG,UAAUI,KAAK,IAAM9X,KAAK4X,gBAAgB2zM,KAC3E+G,EAAoB78M,EAAW0I,QAAQ,IAAIwJ,OAAO3nB,KAAK4X,gBAAgB,MAC3Ey6M,GAAmBA,EAAgB15M,SACnC05M,EAAkB,eAAE,SAASl6M,SAASnY,KAAK4X,gBAAgB2zM,KAAuBnzM,SAAS3C,GAC3F,IAAI88M,EAAiB,CACjB1uK,UAAW,KACXtJ,SAAS,EACTlvC,MAAO,OACPwR,OAAQ,OACR/D,SAAS,EACTE,UAAWs5M,EACX19G,uBAAuB,EACvBtwD,oBAAoB,EACpBN,0BAA0B,EAC1Bi4E,4CAA4C,EAC5Cl4E,gBAAiB,KACb,IAAIyuK,EAAiB,eAAE,SAASr6M,SAASwzM,IACrCxY,EAAgB,CAChBt3J,KAAM,SACNhG,KAAM71C,KAAK4Y,OAAO,yCAClBkjC,QAAS,KACL97C,KAAKwxL,mBAAmBjN,mBAGhC,OAAO,IAAI,cAAOiuC,EAAgBrf,GAAet8L,YAErDsuC,SAAU,CACNmH,GAAI,WACJF,GAAI,YACJhwC,OAAQ,MACR/C,UAAW,OACXgzC,eAAgB,MAChBjzC,SAAUpZ,KAAKw6G,UAAU9iG,UACzByB,GAAI1D,GAERg9M,aAAczyN,KAAK0yN,mBAAmBl3M,KAAKxb,OAE/C,OAAO,IAAI,QAAQqyN,EAAiBE,KAExCI,oBAAqB,SAAS96J,EAAOw7C,GACjC,IAAIu/G,EACAC,EACAroF,EAAiBxqI,KAAKw6G,UAAUgwB,iBAChCq6E,EAAwB7kN,KAAKwxL,mBAAmBqzB,wBACpD,GAAIr6E,IAAmBq6E,EAAuB,CAC1C,IAAIiO,EAAiBj7J,EAAM15C,QAAQ,WAAWrP,OAAO1K,KAAK,WACtD0uN,GAAkB,UAAYA,EAAen4M,UAC7Ci4M,EAAuB,eAAE5yN,KAAKw6G,UAAUhzC,cAAcsrJ,EAAet4J,WAAWziD,OAChF86M,EAAoBD,EAAqB96M,KAAK,IAAM,IAChD+6M,EAAkBj5N,QAAU,WAAai5N,EAAkBn1N,IAAI,GAAGu9D,MAAM83J,aACxEF,EAAkBp2M,IAAI,aAAc,UACpC42F,EAAez8D,YAAc,WACzBi8K,EAAkBp2M,IAAI,aAAc,SAMxDi2M,mBAAoB,SAAS9uN,EAAGovN,GAC5B,IAAKpvN,EAAEgO,UAAUqhN,yBAA0B,CACvC,IAAIC,EAAiB,eAAEtvN,EAAE8T,SAASu/C,SAASj3D,KAAK4X,gBAAgB2zM,KAC5D4H,GAAeD,GAAkBlzN,KAAKw6G,UAAUrZ,2BAChDiyH,EAAqBpzN,KAAKqzN,+CAA+CzvN,EAAGsvN,EAAgBF,GAChGpvN,EAAEgO,UAAUqhN,4BAA8BE,IAAeC,GACrDA,EACAxvN,EAAEgO,UAAUgH,OAAOw6M,GACZD,GACPvvN,EAAEgO,UAAU27G,YAIxB+lG,uBAAwB,SAASz7J,EAAO07J,EAAUnoN,EAAWooN,GACzD,IAAIC,EAAc57J,EAAM//C,KAAK,8BAA8B1T,KAAK,WAC5D4uN,EAAmBS,GAAeA,EAAY76M,OAAO,WACrD86M,EAAaV,EAAmB,YAAc,OAAS5nN,EACvDuoN,EAAaX,EAAmB,WAAa,UAAY5nN,EACzDknN,EAAoBz6J,EAAM15C,QAAQ,IAAIwJ,OAAO3nB,KAAK4X,gBAAgB,MAClEg8M,EAAmB,GACvBL,GAAYA,EAASryN,SAAQ,SAAU6X,GACnC66M,IAAqBA,EAAiBh6N,OAAS,QAAU,IAAM,gBAAWmf,MAE9E,IAAI86M,EAAsB7zN,KAAK4X,gBAAgB6zM,IAC/CzrN,KAAKw6G,UAAU9iG,UAAUI,KAAK,IAAM+7M,GAAqBl7M,SACzD,IAAIm7M,EAAkB,eAAE,SAAS37M,SAASqzM,IAAuBrzM,SAASuzM,IAA8BvzM,SAAS07M,GAAqB/oK,KAAK8oK,GAAkBx7M,SAASy/C,GAClKw7C,EAAiB,CACjBr6F,UAAWs5M,EACXx5M,SAAS,EACTzN,MAAO,OACPwR,OAAQ,OACR09B,SAAS,EACTsJ,WAAW,EACX+wD,uBAAuB,EACvBtwD,oBAAoB,EACpBN,0BAA0B,EAC1Bi4E,4CAA4C,EAC5C92E,SAAU,CACN9rC,UAAW,OACXD,SAAUpZ,KAAKw6G,UAAU9iG,UACzB20C,eAAgB,MAChBjwC,OAAQ,CACJnJ,EAAG,EACHd,GAAI6gN,GAAoBpzM,EAAA,KAAQC,SAAW,EAAI,GAEnDysC,GAAIonK,EACJtnK,GAAIunK,EACJx6M,GAAI0+C,GAER46J,aAAc7uN,IACV5D,KAAK0yN,mBAAmB9uN,EAAGovN,GAC3BhzN,KAAK+zN,8BAA8BnwN,EAAEgO,UAAU87D,WAAY8lJ,GAAiBA,EAAc9lJ,WAAY7V,KAG9G73D,KAAK2yN,oBAAoB96J,EAAOw7C,GAChC,IAAI,QAAQygH,EAAiBzgH,IAEjCggH,+CAAgD,SAASv9M,EAASo9M,EAAgBF,GAC9E,IAAIgB,EAAeh0N,KAAKs9D,mBAAmB2gB,kBAC3C,GAAK+1I,GAAiBA,EAAap6N,OAAnC,CAGA,IAAIurD,EAEAxhD,EAAM+T,EAAS8iD,EAAUyL,EADzBguJ,GAAqBf,IAAmBvvN,EAAO3D,KAAM0X,EAAU5B,EAAQ4B,QAAS8iD,EAAW,eAAE9iD,GAASyG,QAAQ,MAAM/c,QAAS6kE,EAAgB,eAAEtiE,EAAK62G,UAAUhzC,cAAchN,IAAW+P,QAAQvS,WAAW55D,OAAO,yBAA0BuF,EAAK62G,UAAUx0C,WAAWC,GAAe/9C,OAAO,CAACgsM,EAAIC,IAAOD,EAAKC,EAAI,IAEhTC,EAAyBt+M,EAAQlE,UAAU87D,WAC3C2mJ,EAAyB,eAAcD,GAAwB,GAC/DE,GAAgBpB,GAAkBmB,EAAyBJ,EAC3D1+M,EAAcvV,KAAKw6G,UAAU31C,aAAa,eAAE/uD,EAAQ4B,SAASyG,QAAQ,OACrEo2M,EAA8B,SAASP,GACvC,IAAIQ,EACAC,EAQJ,OAPAT,EAAap1M,KAAK,CAACrE,EAAQnZ,KACvB,GAAImZ,EAAOsE,UAAYmtM,GAGnB,OAFAwI,EAA2B,IAAMpzN,GAAS,EAAIA,EAC9CqzN,EAA0BrzN,IAAU4yN,EAAap6N,OAAS,GAAK,EAAIwH,EAAQmZ,EAAOgiD,QAAU,GACrF,IAGR,CACHpgD,iBAAkBq4M,EAClBE,eAAgBD,GAZU,CAchCT,GAiBF,OAhBKd,GAAmB39M,IAAgBg/M,EAA4Bp4M,mBAAoBm4M,EAM7E/+M,IAAgBg/M,EAA4BG,iBACnDvvK,EAAW,CACP9rC,UAAW,YACXizC,GAAI,YACJF,GAAI8mK,GAAkBF,EAAmB,WAAa,gBAEtDE,IACA/tK,EAAS/oC,OAAS,SAZtB+oC,EAAW,CACP9rC,UAAW,YACXizC,GAAI,WACJF,GAAI4mK,EAAmB,YAAc,eAYtC7tK,GAAY,CACfA,SAAUA,EACVV,SAAU6vK,EAAeL,EAAoB,OAAI,KAGzDF,8BAA+B,SAASrmJ,EAAUinJ,EAAgB98J,GAC9D,GAAK88J,EAAL,CAGA,IAAIC,EAAgBlnJ,EAAStxD,SACzBy4M,EAAsBF,EAAev4M,SACzC,GAAIw4M,EAAch4M,MAAQi4M,EAAoBj4M,KAAOg4M,EAAcj4M,KAAO,eAAS+wD,GAAYmnJ,EAAoBl4M,KAAM,CACrH,IAAIA,EAAO,eAASg4M,GAAkB7I,GACtCp+I,EAASjxD,IAAI,OAAQo4M,EAAoBl4M,KAAOk7C,EAAMz7C,SAASO,MAAQA,EAAOA,MAGtFm4M,qBAAsB,WAClB,IAAIjB,EAAsB7zN,KAAK4X,gBAAgB6zM,IAC3CsJ,EAAqB/0N,KAAK4X,gBAAgB2zM,IAC9C,MAAO,oBAAsBwJ,EAAqB,sBAAwBlB,EAAsB,wBAA0BA,GAE9HpjK,KAAM,WACFzwD,KAAKC,WACLD,KAAKwxL,mBAAqBxxL,KAAK2xD,cAAc,WAC7C3xD,KAAKs9D,mBAAqBt9D,KAAK2xD,cAAc,WAC7C3xD,KAAKw6G,UAAYx6G,KAAKqd,QAAQ,aAElCw9J,UAAW,SAASm6C,GACXA,GACDh1N,KAAK2xD,cAAc,cAAc28J,aAAa,MAElDtuN,KAAKC,YAETg1N,gBAAiB,SAASp+M,EAAUk3M,EAAkB1yC,GAClD,IAAI65C,EAOA1B,EANA54C,EAAS,OAAS/jK,QAAY,IAAWA,OAAW,EAASA,EAASsH,QAAQne,KAAKw6K,yBACnF3iH,EAAQ,OAAS+iH,QAAU,IAAWA,GAAUA,EAAOhtL,GAAG,MAAQgtL,EAAS,KAC3EpiH,EAAa,OAASoiH,QAAU,IAAWA,OAAS,EAASA,EAAOz8J,QAAQ,WAAW/Z,KAAK,WAC5Fm9C,EAASiX,EAAax4D,KAAK2xD,cAAc,WAAW27J,eAAe90J,EAAW19D,KAAO,KACrFyf,EAASs9C,GAAS73D,KAAK2xD,cAAc,WAAW4L,oBAAoB1F,EAAMz2D,SAC1E60F,OAAiB,KAAY,OAAS10C,QAAU,IAAWA,GAAkB,QAAU2zK,EAAe3zK,EAAOn9C,YAAS,IAAW8wN,OAA7D,EAAqFA,EAAa,OAAS36M,QAAU,IAAWA,OAAS,EAASA,EAAO3Y,SAAW5B,KAAKwxL,mBAAmBxE,aAE/P,OAAS+gC,QAAoB,IAAWA,OAAmB,EAASA,EAAiBptL,UAAYsrL,GAAkBE,SAAWl2H,IAC3Hj2F,KAAKwxL,mBAAmBlQ,gBAAkB,KAC1CkyC,EAAgBxzN,KAAKoyN,kBAAkBx3C,IAG/C,IAAIu6C,EAAwBpH,GAAoBA,EAAiBptL,SAAWsrL,GAAkBE,QAC9F,GAAIgJ,GAAyBt9J,GAASt9C,GAAUwzM,GAAoBA,EAAiB9jB,YAAa,CAC9F,IAAImrB,EAAgB,GACpBrH,EAAiB9jB,YAAY/oM,SAAQ,SAAU6qM,GACvCA,EAAKhzL,SACLq8M,EAAcnyN,KAAK8oM,EAAKhzL,YAG5Bq8M,EAAcx7N,QACdoG,KAAKszN,uBAAuB14C,EAAQw6C,EAAe76M,EAAOnP,WAAa,OAAQooN,IAErFn4C,GAAcr7K,KAAKw6G,UAAU9iG,WAAa1X,KAAKw6G,UAAUrZ,4BAE/DxsC,MAAO,SAAS99C,EAAUwkK,GACtB,IAAKn7K,UAAUtG,OACX,OAAOoG,KAAKC,WAEhB,IAAIo1N,EAAYx+M,GAAYA,EAASsH,QAAQ,IAAMne,KAAK4X,gBAAgB,KAAkBE,KAAK9X,KAAK80N,wBAEpG,GADAO,GAAaA,EAAU18M,SACnB,OAAS9B,QAAY,IAAWA,GAAYA,EAASogD,SAAS,UAC9D,OAAOj3D,KAAKC,SAAS4W,EAAUwkK,GAEnC,IAMI0yC,EANAnzC,EAAS,OAAS/jK,QAAY,IAAWA,OAAW,EAASA,EAASsH,QAAQne,KAAKw6K,yBACnFv6K,EAAWD,KAAKC,SAChB8hM,EAAYnnB,IAAWA,EAAOx2K,KAAK,gBAAkByS,EAASiB,KAAK,IAAM9X,KAAK4X,gBAAgB,KAAkB4E,GAAG,GAAGpY,KAAK,gBAC3Ho0D,EAAaoiH,GAAUA,EAAOz8J,QAAQ,WAAW/Z,KAAK,WACtDw3F,EAAoB57F,KAAK2xD,cAAc,WACvCpQ,EAASiX,EAAaojC,EAAkB0xH,eAAe90J,EAAW19D,KAAO,KAEzE+1N,EAAuB7wN,KAAK2xD,cAAc,cAC9C,GAAIowI,EAAW,CACX8uB,EAAqBvC,aAAavsB,GAClC,IAAIlgM,EAAQkgM,EAAUnpL,OAAO,WAAWw+I,WACxC,GAAIo1D,GAA2B3qN,EAAO22D,IAAeq4J,EAAqBhE,gBAAgBtrK,GAkBtF,OAjBAq6C,EAAkBivF,4BAA4BxsK,KAAK,KAC/C,kBAAKwyM,EAAqBb,aAAajuB,IAAY1jL,KAAKpf,IACpD8uN,EAAmB9uN,EACnB,IAAIsb,EAASwzM,EAAiBhsB,UAAUnpL,OAAO,aAAlCm1M,GAAkDxzM,OAC3DgnC,GAAUhnC,IAAWs2M,EAAqBd,6BAA6B,CACnElhC,OAAQttI,EAAOzmD,IACfya,YAAagF,EAAOnZ,UAIxB2sN,EAAiBptL,SAAWsrL,GAAkBE,UAC9C9wC,GAAa,GAEjBr7K,KAAKi1N,gBAAgBp+M,EAAUk3M,EAAkB1yC,GACjDp7K,EAASmW,KAAKpW,KAAM6W,EAAUwkK,QAG/Br7K,KAAKC,SAAS4W,EAAUwkK,GAIvC,OADAr7K,KAAKi1N,gBAAgBp+M,EAAUk3M,EAAkB1yC,GAC1Cr7K,KAAKC,SAAS4W,EAAUwkK,IAEnC8zC,kBAAmB,SAAS15M,GACxB,IAAI+iH,EAAU/iH,EAAWqC,KAAK,kBAAkB0E,GAAG,GACnD,OAAO,OAAc5F,kBAAkB4hH,KAG/Cp0H,KAAM,CACFwxF,eAAgB,SAASC,EAAQC,EAAQC,EAAiBxgF,EAAaygF,GACnE,IAAIs/H,EAAeC,EACfv6J,EAAO,QAAUs6J,EAAgBz/H,EAAOp9B,aAAU,IAAW68J,OAAgB,EAASA,EAAc//M,GACpGigN,EAAsBx6J,GAAQA,EAAKkvI,iBACnC2mB,EAAuB7wN,KAAK2xD,cAAc,cAC1Co8J,EAAmB8C,EAAqBhC,wBAAwB,CAChEhgC,OAAQh5F,EAAO/6F,IACfya,YAAaA,IAEbu3M,EAAiB+D,EAAqB9D,mBAAmBl3H,EAAO/6F,KAChE26N,EAAsBlJ,GAAwBwB,GAAoBA,EAAiBptL,OAASotL,EAC5F2H,EAAgB36N,KAAKC,UAAU86F,EAAOI,kBAAoBn7F,KAAKC,UAAU66F,EAAOK,gBAChFy/H,EAAwB,eAAE,OAAS36J,QAAQ,IAAWA,OAAO,EAASA,EAAK4D,aAAa3H,SAASj3D,KAAK4X,gBAAgB0zM,KACtHsK,EAAiB//H,EAAO73B,YAAc83B,EAAO93B,UAC7C63J,EAAqB,OAAS76J,QAAQ,IAAWA,GAAgB,QAAUu6J,EAAwBv6J,EAAKzgD,OAAOgkC,uBAAoB,IAAWg3K,OAAtF,EAAuHA,EAAsB37N,OACzM,SAAIg8N,GAAkBC,GAAsBL,IAAwBC,GAAuBC,GAAiB5I,EAAen3E,SAAWggF,IAG/H31N,KAAKC,SAASnB,MAAMkB,KAAME,cAI7Cw1D,MAAO,CACHt4C,SAAU,CACN+jF,yBAA0B,SAASrnC,GAC/B,IAAIwmC,EACAL,EACA61H,EACAj/M,EAAW7W,KAAK0X,UAChBq+M,EAAkBl/M,GAAYA,EAASiB,KAAK,IAAM9X,KAAK4X,gBAAgB6zM,IAAgC,wBAE3G,GADAzrN,KAAKC,SAAS65D,GACVi8J,GAAmBA,EAAgBn8N,SACnC0mG,EAAetgG,KAAKgnE,kBACpB8uJ,EAAwB91N,KAAKygG,yBAAyB3mC,GACtDmmC,EAAuB61H,EAAsBvrJ,QACzC01B,GAAwB,IAAMK,EAAa1mG,UAAYqmG,EAAqBryG,GAAG,aAAe,eAAemoO,GAAmB,eAAe91H,KAG/I,OAFA61H,EAAsBz6K,OACtB,eAAUy6K,EAAuB,eAAeC,KACzC,GAInBhjC,kBAAmB,SAASv1H,EAAa/nD,GACrCzV,KAAKC,SAASnB,MAAMkB,KAAME,WAC1B,eAAY,KACR,IAAIs4H,EAAU/iH,EAAWqC,KAAK,cAAcyyD,QACxCyrJ,EAAmBx9F,EAAQ5+H,SAAW4+H,EAAQxgE,WAAWp+D,OACxDo8N,GACDh2N,KAAK2xD,cAAc,cAAc49J,gBAAgB/xJ,EAAag7D,MAI1Er8D,cAAe,SAAStE,EAAOf,GACtB92D,KAAK2xD,cAAc,WAAWkzJ,yBAC/B7kN,KAAK2xD,cAAc,cAAc49J,gBAAgBz4J,EAAYe,GAEjE73D,KAAKC,SAASnB,MAAMkB,KAAME,YAE9BilG,iBAAkB,SAAS8wH,GACvB,IAAIr6H,EAAoB57F,KAAK2xD,cAAc,WAC3CiqC,GAAqBA,EAAkBigB,cAAgB77G,KAAKgnE,gBAAgBivJ,GAAc9zD,KAAK,CAACpjK,EAAG8K,KAC/F,IAAI2uD,EAAa,eAAE3uD,GAAMzF,KAAK,WAC9B,GAAIo0D,EAAY,CACZ,IAAIjX,EAASq6C,EAAkB0xH,eAAe90J,EAAW19D,KACzDymD,GAAUq6C,EAAkB81H,cAAcnwK,WC/uCtE,EAAS6U,eAAe,aAAcu6J,ICItC,IAAIn8M,GAAwB,uBACxB0hN,GAAsBvyN,GAAQA,EAAKiV,OAAO,kCAAoCjV,EAAKwyN,YAAYC,aAAezyN,EAAKwyN,YAAYE,uBAAyB,EACxJC,GAAoB3yN,GAAQA,EAAK4yN,OAAO38N,OAAS+J,EAAK4yN,OAAO,GAAGtqK,WAAa,EAC7EuqK,GAAkB7yN,GAAQA,EAAK4yN,OAAO38N,OAAS+J,EAAK4yN,OAAO5yN,EAAK4yN,OAAO38N,OAAS,GAAGqyD,WAAa,EAChGwqK,GAAc,CAAC9yN,EAAM2hE,EAASj2B,KAC9B1rC,EAAK+yN,kBAAmB,EACxBpxJ,EAAQj2B,GACR1rC,EAAK+yN,kBAAmB,GAExBC,GAAsB,CAAChzN,EAAM2hE,EAASj2B,KACtC,GAAI1rC,EAAKizN,gBAGL,OAFAjzN,EAAKizN,iBAAkB,EACvBH,GAAY9yN,EAAM2hE,EAASj2B,IACpB,GAGXwnL,GAAuBlzN,IACvB,IAAIuoD,EAAWvoD,EAAKmzN,aAAa5qK,WAC7B6qK,EAAiBpzN,EAAKiV,OAAO,4BACjC,GAAIm+M,EACA,OAAO,EAEX,IAAIC,EAAmBrzN,EAAKwyN,YAAYc,eACxC,GAAItzN,EAAKwyN,YAAY52M,iBAAmB5b,EAAKiV,OAAO,kCAAmC,CACnFo+M,EAAmB,EAMnB,IALA,IAAIC,EAAetzN,EAAKwyN,YAAYc,eAAiBtzN,EAAKwyN,YAAYe,mBAClE96M,EAASzY,EAAKwyN,YAAYgB,mBAC1BhyK,EAAWxhD,EAAKwyN,YAAYiB,sBAC5BC,EAAoB1zN,EAAKwyN,YAAYkB,oBACrCroI,EAAkBrrF,EAAKmzN,aAAa9nI,kBAC/BwV,EAAY6yH,EAAkBC,MAAO9yH,EAAYxV,EAAiBwV,IAAa,CACpF,GAAIpoF,GAAU+oC,EAAW8xK,EACrB,MAEJ,IAAIp0D,EAAWl/J,EAAKwyN,YAAYoB,eAAe/yH,IAAc7gG,EAAKwyN,YAAYe,mBAC9E96M,GAAUymJ,EACNzmJ,GAAU+oC,GACV6xK,KAIZ,OAAO9qK,GAAY8qK,EAAmB,EAAIxlN,KAAKy9E,KAAK+nI,EAAmB9qK,GAAY,GAEnFsrK,GAAsB,CAAC7zN,EAAMmuB,KAC7B,IAAI47B,EAAiB/pD,EAAKiV,OAAO,4BAC7B61E,EAAYooI,GAAqBlzN,GACjC6b,EAAe7b,EAAKwyN,YAAY32M,eAapC,OAZIivE,IACI38D,EACA28D,EAAY/gC,EAAiB,EAAI,GAE7BA,GACA+gC,KAEAjvE,GAAiB02M,GAAoBvyN,IACrC8qF,MAILA,GAEPgpI,GAAsB9zN,IACtB,IAAI1E,GAAU,EACVojI,EAAiBi0F,GAAkB3yN,GACnC+zN,EAAc/zN,EAAKmzN,aACvB,GAAIz0F,EAAiB,EACjBpjI,EAAS0E,EAAK+gL,gBACX,GAAK/gL,EAAK4yN,OAAO5yN,EAAK+gL,WAAariD,IAEnC,GAAIA,GAAkB,GAAK1+H,EAAKwyN,YAAYc,gBAAkB,EAAG,CACpE,GAAI50F,EAAiB,EAAG,CACpB,IAAIs1F,EAA2BnB,GAAgB7yN,GAAQ,IAAM+zN,EAAYjpI,aAAe9qF,EAAK4yN,OAAO38N,OAAS49N,GAAoB7zN,GAAQ,EACrIi0N,EAAqBD,GAA4Bh0N,EAAK+gL,aAAeriD,GAAkBm1F,GAAoB7zN,GAAM,GACjHi0N,IACA34N,EAASojI,EAAiB,GAGlC,GAAIpjI,EAAS,EAAG,CACZ,IAAI44N,EAAqBx1F,EAAiB1+H,EAAK4yN,OAAO38N,QAAU+J,EAAK+gL,WAAa8yC,GAAoB7zN,GAClGk0N,IACA54N,EAASojI,EAAiB1+H,EAAK4yN,OAAO38N,eAZ9CqF,EAAS0E,EAAK+gL,WAmBlB,OAHI/gL,EAAKm0N,oBAAoB74N,KACzBA,GAAU,GAEPA,GAEP84N,GAAW,CAACp0N,EAAMsoD,KAClB,IAAIyrK,EAAc/zN,EAAKmzN,aACvB,GAAI7qK,IAActoD,EAAKsoD,cAAgByrK,EAAYrtN,aAAe4hD,EAAYyrK,EAAYjpI,cAAgBipI,EAAYxoI,oBAAsBjjC,IAAcyrK,EAAYjpI,YAGlK,OAFAipI,EAAYzrK,UAAUA,GACtBtoD,EAAKm0N,oBAAoB7rK,IAAa,EAC/B,kBAAKyrK,EAAYj3M,QAAQoiE,OAAO,KACnCl/E,EAAKm0N,oBAAoB7rK,IAAa,KAI9C+rK,GAAiB,CAACr0N,EAAM2hE,EAASzD,EAAYo2J,EAAgBC,KAC7D,IAAIR,EAAc/zN,EAAKmzN,aACnBvsN,EAAQmtN,EAAYntN,QAAQyJ,QAC5ButC,EAAS,eAASsgB,GAAcA,OAAa,EAC7Cs2J,EAAY,YAAct2J,EAC1Bu2J,EAAgBV,EAAYU,gBAC5Bv2J,GAAc,eAASA,KAAgBl+D,EAAKizN,kBAC5Cr1K,EAAS,CACLsgB,WAAYA,EACZt3D,MAAOA,GAEP2tN,IACA32K,EAAO82K,YAAcH,EAAgBpsI,WACjCvqC,EAAO82K,aAAeX,EAAYY,eAClC/2K,EAAO82K,YAAcX,EAAYY,aAAaF,EAAe72K,EAAO82K,YAAaF,MAI7F,IAAII,EAAkBL,EAAkBA,EAAgBM,YAAc,EAClED,GAAmBb,EAAYY,eAC/BC,EAAkBb,EAAYY,aAAaF,EAAeG,EAAiBJ,IAE3E,WAAat2J,GACbu2J,EAAcn1N,KAAKnE,MAAMs5N,EAAe7tN,GACpC2tN,GACAE,EAAc/zJ,OAAO,EAAGk0J,IAErBJ,GACPC,EAAcz1M,QAAQ7jB,MAAMs5N,EAAe7tN,GACvC2tN,GACAE,EAAc/zJ,QAAQk0J,IAG1B50N,EAAKmzN,aAAasB,cAAc7tN,GAEpCmtN,EAAYe,gBACZ90N,EAAK+0N,eAAiB/0N,EAAKsoD,YAC3BtoD,EAAKizN,gBAAkBqB,EAClBA,GACDxB,GAAY9yN,EAAM2hE,EAAS/jB,IAG5B,MAAM,GACT,YAAYtiC,EAAYy4M,GACpB13N,KAAKm2N,YAAcl3M,EACnBjf,KAAK82N,aAAeY,EACpB13N,KAAK0kL,WAAa1kL,KAAK04N,eAAiBhB,EAAYzrK,YACpDjsD,KAAKu2N,OAAS,GACdv2N,KAAK83N,oBAAsB,GAE/B,SACI,OAAO93N,KAAKm2N,YAAYv9M,OAAO9Z,MAAMkB,KAAKm2N,YAAaj2N,WAE3D,yBAAyBskG,GACrB,IAKIm0H,EALAzsK,EAAWlsD,KAAK82N,aAAa5qK,WAC7BuiC,EAAYzuF,KAAK82N,aAAaroI,YAC9B2E,EAAcpzF,KAAKm2N,YAAY52M,gBAC/B4zE,EAAanzF,KAAKm2N,YAAY32M,eAC9BwvE,EAAkBhvF,KAAK82N,aAAa9nI,kBAExC,GAAI9iC,IAAaknC,GAAeD,IAAenE,GAAmB,EAAG,CACjE,IAAIioI,EAAej3N,KAAKm2N,YAAYc,eACpC,GAAIA,GAAgBzyH,EAAYyyH,GAAgBjoI,IAAoBhvF,KAAKm2N,YAAYC,YACjF,GAAIp2N,KAAK82N,aAAa5nI,mBAAoB,CACtCypI,EAAelqI,EAAY,EAC3B,IAAImqI,EAAe5pI,EAAkB9iC,EACjCysK,EAAe,GAAKC,EAAe,GAAKA,EAAe3B,GACvD0B,SAGJA,EAAelqI,MAEhB,CACHkqI,EAAennN,KAAKE,MAAM8yF,EAAYt4C,GACtC,IAAI2sK,EAAepqI,EAAY,EAC/BkqI,EAAennN,KAAK1I,IAAI6vN,EAAc,GACtCA,EAAennN,KAAK3I,IAAI8vN,EAAcE,GAG1C,OADA74N,KAAKisD,UAAU0sK,GACR34N,KAAKygB,QAGpB,UAAUwrC,GACN,IAAI1sC,EAAgBvf,KAAKm2N,YAAY52M,gBACjCC,EAAexf,KAAKm2N,YAAY32M,eACpC,OAAI,IAAUxf,KAAK4Y,OAAOpE,MAA2B+K,GAAiBC,SAC9D,IAAWysC,IACXjsD,KAAK0kL,WAAaz4H,GAEfjsD,KAAK0kL,YAEL1kL,KAAK82N,aAAa7qK,UAAUA,GAG3C,eAAe6sK,GACX,IAAIz2F,EAAiBi0F,GAAkBt2N,MAIvC,OAHIqiI,EAAiB,IACjBA,OAAiB,IAAWy2F,EAAmBA,EAAmB94N,KAAKisD,aAEpEo2E,EAEX,eACI,IAAI02F,EAAevC,GAAgBx2N,MACnC,OAAO+4N,EAAe,EAAIA,EAAe/4N,KAAK04N,eAElD,WACI,OAAO14N,KAAK82N,aAAa5qK,WAE7B,OACI,IACIjtD,EADAy4N,EAAc13N,KAAK82N,aAEnBv3M,EAAgBvf,KAAKm2N,YAAY52M,gBACjCC,EAAexf,KAAKm2N,YAAY32M,eACpC,IAAI,IAAUxf,KAAK4Y,OAAOpE,MAA2B+K,GAAiBC,GAAe,CACjF,IAAIw5M,EAAmBvB,GAAoBz3N,MAC3C,GAAIg5N,GAAoB,EAAG,CACvB,IAAI3pI,EAAa0oI,GAAS/3N,KAAMg5N,GAC5B3pI,IACApwF,EAAS,IAAI,cACbowF,EAAWhxE,KAAK,KACZ,IAAI46M,EAAgBj5N,KAAKk5N,eACrBD,EACAA,EAAc56M,KAAKpf,EAAO0hB,SAASG,KAAK7hB,EAAO40B,QAE/C50B,EAAO0hB,YAEZG,KAAK7hB,EAAO40B,QACf6jM,EAAYe,uBAIpBx5N,EAASy4N,EAAYj3M,OAOzB,OALKxhB,GAAUe,KAAK04N,iBAAmB14N,KAAKisD,aACxCjsD,KAAK82N,aAAaqC,UAAU,CACxBt3J,WAAY,cAGb5iE,IAAU,IAAK,eAAU0hB,UAEpC,aACI,IAAIpB,EAAgBvf,KAAKm2N,YAAY52M,gBACjCC,EAAexf,KAAKm2N,YAAY32M,eACpC,IAAKD,GAAiBC,KAAkBxf,KAAK82N,aAAazsN,eAAiBrK,KAAK02N,kBAAoB12N,KAAKm2N,YAAYC,aAAc,CAC/H,IAAIjxK,EAAWnlD,KAAKm2N,YAAYiB,sBAC5BjyK,EAAW,EACXnlD,KAAKm2N,YAAYiD,yBAAyBj0K,GAE1CnlD,KAAKygB,QAIjB,kBAAkBxgB,EAAU2D,GACxB,IAEIi+D,EACAw3J,EAHA3B,EAAc13N,KAAK82N,aACnBwC,EAAkBt5N,KAAKu2N,OAAO38N,OAG9B2lB,EAAgBvf,KAAKm2N,YAAY52M,gBACjCC,EAAexf,KAAKm2N,YAAY32M,eACpC,GAAI5b,GAAKA,EAAEkW,QACP28M,GAAYz2N,KAAMC,EAAU2D,QACzB,IAAI,IAAU5D,KAAK4Y,OAAOpE,MAA2B+K,GAAiBC,GAAe,CACxF,IAAI6iH,EAAiBi0F,GAAkBt2N,MACvC,GAAIqiI,GAAkB,IACd9iH,GAAiB8iH,EAAiBriI,KAAKu2N,OAAO38N,SAAW89N,EAAYzrK,aAAeo2E,EAAiB,IAAMq1F,EAAYzrK,cACvHqtK,EAAkB,EAClBt5N,KAAKu2N,OAAS,IAEd/2M,GACA,GAAI,IAAMk4M,EAAYzrK,YAClBjsD,KAAKu2N,OAAS,QACX,GAAImB,EAAYzrK,YAAcuqK,GAAgBx2N,MAKjD,YAJAy2N,GAAYz2N,KAAMC,EAAU,CACxB4hE,WAAY,SACZt3D,MAAO,KAMvB,IAYI2tN,EAZAtwI,EAAY,CACZ37B,UAAWyrK,EAAYzrK,YACvBusK,YAAad,EAAYntN,OAAM,GAAM3Q,OACrCkyF,WAAY9rF,KAAK8rF,YAAW,IAE5B9rF,KAAK4Y,OAAO,mCAAqC2G,EACjD85M,EAAuBr5N,KAAKu2N,OAAO38N,OAAS4X,KAAK1I,IAAI0uN,GAAoBx3N,OAASA,KAAK4Y,OAAO,4BAA8B,EAAI,GAAI,GAEpI+9M,GAAoB32N,KAAMC,EAAU,CAChC2yF,WAAW,IAIfyvC,IAAmBq1F,EAAYzrK,YAAc,GACzCotK,IACAnB,EAAkBl4N,KAAKu2N,OAAOpzM,OAElC0+C,EAAa,UACb7hE,KAAKu2N,OAAO5zM,QAAQilE,KAEhByxI,IACAnB,EAAkBl4N,KAAKu2N,OAAO5kM,SAElCkwC,EAAa,SACb7hE,KAAKu2N,OAAOtzN,KAAK2kF,IAErB,IAAIqwI,EAAiB14M,GAAiB,IAAM+5M,GAAmBpD,GAAoBl2N,MACnFg4N,GAAeh4N,KAAMC,EAAUD,KAAKu2N,OAAO38N,OAAS,EAAIioE,OAAa,EAAQo2J,EAAgBC,GAC7Fl4N,KAAKk5N,eAAiBl5N,KAAKygB,OAAOpC,KAAK,KAC/Bs4M,GAAoB32N,KAAMC,IAC1BD,KAAKygB,cAIbu3M,GAAeh4N,KAAMC,EAAU2D,GAGvC,mBACI,OAAO5D,KAAKk5N,eAEhB,WAAWK,GACP,IAAIztI,EAAa,EACbvsE,EAAgBvf,KAAKm2N,YAAY52M,gBAQrC,OAPKg6M,GAAUh6M,EACXvf,KAAKu2N,OAAOr1N,QAAQ0mF,IAChBkE,GAAclE,EAAUkE,aAG5BA,EAAa9rF,KAAK82N,aAAahrI,aAE5BA,EAEX,oBACI,IAAI7/B,EAAYqqK,GAAkBt2N,MAC9BisD,EAAY,IACZA,EAAYjsD,KAAK82N,aAAa7qK,aAElC,IAAIutK,EAAkBvtK,EAAYjsD,KAAK82N,aAAa5qK,WAChD4/B,EAAa9rF,KAAKu2N,OAAO38N,OAASoG,KAAK82N,aAAa5qK,WACpDutK,EAAgBjoN,KAAK1I,IAAI,EAAG9I,KAAK82N,aAAa9nI,kBAAoBlD,EAAa0tI,GACnF,MAAO,CACHlC,MAAOkC,EACPrnM,IAAKsnM,GAGb,QACIz5N,KAAK83N,oBAAsB,GAC3B93N,KAAKu2N,OAAS,IC5UtB,IAAIjiN,GAA0B,WAC1BC,GAAyB,UACzB,GAAwB,uBACxBmlN,GAAiB/1N,GAAQA,EAAKiV,OAAO,oBAAsBrE,IAA0B5Q,EAAKg2N,WAC1FC,GAAgBj2N,GAAQA,EAAKiV,OAAO,oBAAsBtE,KAA4B3Q,EAAKg2N,WACxF,SAASE,GAA6BhjN,EAAUijN,EAAsB3uJ,GACzE,IAAI4uJ,EACAC,EAAkB,GAClBC,EAAgB,GAChBC,EAAe,GAGnB,SAASC,EAAiBn9H,GACtB,IAAIo9H,EAAqBp9H,EAAWtlF,QAAUslF,EAAWnmF,WAAammF,EAClEq9H,EAAmB,QAAcj+M,OAAOg+M,GAC5C,OAAKC,EAGEr9H,EAAWwkB,aAAe64G,EAAiBz9M,IAAM/F,EAASuF,SAASQ,KAF/D/F,EAASuF,SAASQ,IANjCuuD,EAAiBA,GAAkBt0D,EAUnC,IAAIyjN,EAAuB,CACvBxwN,GAAI,SAASkzF,EAAY2W,EAAWU,GAChCrX,EAAWlzF,GAAG,SAAUuqG,IAE5BpjD,IAAK,SAAS+rC,EAAY2W,EAAWU,GACjCrX,EAAW/rC,IAAI,SAAUojD,KAIjC,SAASkmH,EAAwBR,GAC7B,IAAI5kH,EAAa,cAAgB4kH,EAAer8N,IAAI,GAAG69D,SACnDyhC,EAAa+8H,EAAe31N,KAAK,gBACjCo2N,EAAiBF,EACrB,GAAKt9H,IACDA,EAAamY,GAAc,eAAE,mBAAgB,SAAW4kH,EAAet9M,IAAI,cAAgBs9M,EAC3FS,EAAiB,OACZx9H,GAHT,CAOA,IAAIqX,EAAU,SAASrX,GACnB,OAAO,WACH,IAAIwkB,EAAYxkB,EAAWwkB,YAAc24G,EAAiBn9H,GAC1DwkB,EAAYA,EAAY,EAAIA,EAAY,EACxCs4G,EAAqBt4G,IAJf,CAMZxkB,GACFw9H,EAAe1wN,GAAGkzF,EAAY,SAAUqX,GACxC4lH,EAAch3N,MAAK,SAAUwiE,GACzB,IAAIg1J,EAAYN,EAAiBn9H,GAC7B09H,EAAe19H,EAAWt7B,SAAW,WAAa,YAClD+D,EAAMg1J,GAAa,GACnBz9H,EAAW09H,GAAcj1J,EAAMg1J,MAGvCT,EAAgB/2N,KAAK+5F,GACrBk9H,EAAaj3N,MAAK,WACdu3N,EAAevpK,IAAI+rC,EAAY,SAAUqX,OAGjD,IAAK0lH,EAAiB5uJ,EAAe/rD,SAAU26M,EAAengO,OAAQmgO,EAAiBA,EAAe36M,SAClGm7M,EAAwBR,GAE5B,MAAO,CACHr4J,SAAU,SAAS+D,GACf,eAAKw0J,GAAe,SAAUl7N,EAAG2iE,GAC7BA,EAAS+D,OAGjBtT,QAAS,WACL,eAAK+nK,GAAc,SAAUn7N,EAAGozD,GAC5BA,SAKT,IAAIwoK,GAA0B,OAAM5qK,QAAQ,WAC/C,IAAIsgC,EAAU,CACVpgC,KAAM,SAASr+C,EAAW8lN,EAAatB,GACnCp2N,KAAK82N,aAAeY,EACpB13N,KAAK4R,UAAYA,EACjB5R,KAAK46N,eAAgB,IAAUhpN,EAAUgH,OAAO,IAAyB,GAAK,EAC9E5Y,KAAK66N,kBAAoB,GACzB76N,KAAK86N,mBAAqB,EAC1B96N,KAAK+6N,UAAY,EACjB/6N,KAAKg7N,kBAAmB,EACxBh7N,KAAKsjK,aAAe,EACpBtjK,KAAKi7N,WAAa,GAClBj7N,KAAKk7N,WAAa,EAClBl7N,KAAK25N,WAAavD,EAClBp2N,KAAKm7N,gBAAkB,uBACvBn7N,KAAKo7N,YAAc,IAAI,GAAkBp7N,KAAMA,KAAK82N,eAExDS,aAAc,WACV,OAAOv3N,KAAKi7N,YAEhBriN,OAAQ,WACJ,OAAO5Y,KAAK4R,UAAUgH,OAAO9Z,MAAMkB,KAAK4R,UAAW1R,YAEvDk2N,UAAW,WACP,OAAOp2N,KAAK25N,YAEhBtC,kBAAmB,WACf,GAAIqC,GAAe15N,MAAO,CACtB,IAAI03N,EAAc13N,KAAK82N,aACnB9nI,EAAkB0oI,EAAY1oI,kBAClC,IAAI,IAAUhvF,KAAK4Y,OAAO,MAA2B,IAAMo2E,EAAiB,CACxE,IAAIqsI,EAAiBr7N,KAAKs7N,oBACtBC,EAAe7D,EAAY6D,eAC3BC,EAAkB9D,EAAY8D,kBAC9B36M,EAAOrP,KAAK1I,IAAIuyN,EAAex6M,KAAM06M,GACrC36M,EAAOpP,KAAK3I,IAAIwyN,EAAez6M,KAAM46M,GACrC/B,EAAgBjoN,KAAK1I,IAAIkmF,GAAmBnuE,EAAOD,GAAO,GAC9D,MAAO,CACH02M,MAAOz2M,EACPsR,IAAKsnM,GAGb,OAAOz5N,KAAKo7N,YAAY/D,kBAAkBv4N,MAAMkB,KAAKo7N,YAAal7N,aAG1Eu7N,oBAAqB,WACjB,IAAIxiL,EAAcj5C,KAAK4Y,OAAO,yBAC1B8iN,EAAmB,EACvB,GAAK,eAAUziL,IAKR,GAAIA,EAAa,CACpB,IAAIuyJ,EACJkwB,EAAmB,QAAUlwB,EAAexrM,KAAK4Y,OAAO,4BAAyB,IAAW4yL,EAAeA,EAAe,QAN1HkwB,EAAmBlqN,KAAK3I,IAAI7I,KAAK4Y,OAAO,sBAAwB,EAAG5Y,KAAK82N,aAAa6E,oBACjFD,EAAmB17N,KAAK4Y,OAAO,kCAC/B8iN,EAAmB17N,KAAK4Y,OAAO,yBAA2B,GAMlE,OAAO8iN,GAEXE,oBAAqB,SAASz2K,GAC1B,IAAIlmD,EAAS,IAAI,cACby8N,EAAmB17N,KAAKy7N,sBAW5B,OAVArhK,aAAap6D,KAAK67N,kBACdH,EAAmB,EACnB17N,KAAK67N,iBAAmBn8L,WAAW,KAC/B1/B,KAAKo5N,yBAAyBj0K,GAC9BlmD,EAAO0hB,WACR+6M,IAEH17N,KAAKo5N,yBAAyBj0K,GAC9BlmD,EAAO0hB,WAEJ1hB,EAAOwiB,WAElB21M,oBAAqB,WACjB,OAAOp3N,KAAK+6N,WAEhBe,uBAAwB,SAAS32K,EAAU42K,EAAmBl/M,GAC1D,IAAIk+M,EACJ51K,EAAW,QAAU41K,EAAY51K,SAAa,IAAW41K,EAAYA,EAAY/6N,KAAK+6N,UAKtF,IAJA,IAAIiB,EAAkBh8N,KAAKi8N,cACvB7/M,EAAS,EACT8/M,EAAa,EACbC,EAAsB3+N,OAAOgqB,KAAKxnB,KAAKi7N,YAAYtzM,QAAQ,GACtDlsB,EAAI,EAAGA,EAAI0gO,EAAoBviO,QAAUwiB,EAAS+oC,EAAU1pD,IAAK,CACtE,IAAI2gO,EAAqB76N,SAAS46N,EAAoB1gO,IAClD4gO,GAAkBl3K,EAAW/oC,GAAU4/M,EAC3C,GAAII,EAAqB,GAAKF,EAAaG,EAAiBD,EAAoB,CAC5EF,GAAcG,EACVr8N,KAAKk7N,WAAa,GAAK,eAAUa,KACjCG,EAAaH,EAAoBl/M,EAAS7c,KAAK66N,mBAEnD,MAEAwB,EAAiBD,EAAqBF,EACtC9/M,GAAUigN,EAAiBL,EAC3BE,GAAcG,EAElB,IAAIx5D,EAAW7iK,KAAKi7N,WAAWmB,GAC/BhgN,GAAUymJ,EACVq5D,GAAc9/M,EAAS+oC,EAAW,GAAKA,EAAW/oC,EAASymJ,GAAYA,EAE3E,OAAOrxJ,KAAKyrF,MAAM,GAAKi/H,GAAc,IAEzCI,gBAAiB,WACb,OAAOt8N,KAAKg7N,kBAEhB5B,yBAA0B,SAASj0K,GAC/B,IAAIo3K,EAAev8N,KAAK+6N,WAAa,EACrC/6N,KAAK+6N,UAAY51K,EACbo3K,IAAiBv8N,KAAK+6N,YACtB/6N,KAAKg7N,iBAAmBh7N,KAAK+6N,UAAYwB,GAE7C,IAAI/3H,EAAYxkG,KAAK87N,yBACjB78N,EAASe,KAAKw8N,qBAAqBh4H,GAEvC,OADAxkG,KAAKm7N,gBAAgB3mK,OACdv1D,GAEXw9N,oBAAqB,SAASC,GAC1B,IAAIrF,EAAoBr3N,KAAKq3N,oBAE7B,GADAr3N,KAAKsjK,aAAeo5D,EAAMx0M,OAAO,CAACnmB,EAAGC,IAAMD,EAAIC,EAAG,GAC9Cq1N,EAAmB,CACnBqF,EAAMx7N,QAAQ,CAACu4B,EAAMr4B,KACjBpB,KAAKi7N,WAAW5D,EAAkBC,MAAQl2N,GAASq4B,IAEvD,IAAIkjM,GAAsBtF,EAAkBC,MAAQD,EAAkBllM,IAAMnyB,KAAK8rF,cAAgB9rF,KAAK66N,kBAClG+B,EAAqB,OAAcv+G,sBAAsBz+F,EAAA,MAEzD5f,KAAKk7N,WADLyB,EAAqBC,EACHA,EAAqBD,EAErB,IAI9BV,YAAa,WACT,OAAOj8N,KAAK66N,kBAAoB76N,KAAKk7N,YAEzC2B,cAAe,SAASr4H,EAAWs4H,GAC/B,IAAIzF,EAAoBr3N,KAAKq3N,oBACzBv1H,EAAY0C,EAChB,IAAK6yH,EACD,OAAO,EAEX,IAAIj7M,EAAS,EACT4yE,EAAkBhvF,KAAK82N,aAAa9nI,kBAUxC,OATAxxF,OAAOgqB,KAAKxnB,KAAKi7N,YAAY/5N,QAAQ67N,IAC5Bj7H,IAGDg7H,EAAQC,GAAoB/tI,EAAkBwV,EAAYu4H,EAAmBv4H,KAC7EpoF,GAAUpc,KAAKi7N,WAAW8B,GAC1Bj7H,OAGDtwF,KAAKE,MAAM0K,EAAS0lF,EAAY9hG,KAAK66N,kBAAoB76N,KAAKk7N,aAEzE/D,iBAAkB,SAAS14N,GACvB,IAAIq+N,EAAQ,QAAUr+N,EAClB44N,EAAoBr3N,KAAKq3N,oBAC7B,OAAKA,EAGEr3N,KAAK68N,cAAcC,EAAQzF,EAAkBllM,IAAMklM,EAAkBC,MAAOwF,GAFxE,GAIfE,sBAAuB,WACnB,IAAI3F,EAAoBr3N,KAAKq3N,oBAC7B,OAAOA,EAAoBr3N,KAAKm3N,iBAAiB,SAAWn3N,KAAKm3N,iBAAiB,OAASn3N,KAAKsjK,aAAe,GAEnH+yD,qBAAsB,WAClB,OAAOr2N,KAAK86N,oBAEhB0B,qBAAsB,SAASh4H,GAE3B,GADAxkG,KAAK86N,mBAAqBt2H,GACtB,IAAUxkG,KAAK4Y,OAAO,IAG1B,OAAO5Y,KAAKo7N,YAAY6B,yBAAyBn+N,MAAMkB,KAAKo7N,YAAal7N,YAE7Eg3N,iBAAkB,SAASz9L,GAIvB,YAHI,IAAWA,IACXz5B,KAAK66N,kBAAoBphM,GAEtBz5B,KAAK66N,mBAEhB5D,aAAc,SAASx9L,GAInB,YAHI,IAAWA,IACXz5B,KAAK46N,cAAgBnhM,GAElBz5B,KAAK46N,eAEhBsC,eAAgB,SAASrgN,EAAQ2kG,GAC7B,IAAIr8D,EAAW,OAASq8D,QAAa,IAAWA,EAAYA,EAAYxhH,KAAK+6N,UACzEzD,EAAQt3N,KAAK87N,uBAAuB32K,GACpChzB,EAAMnyB,KAAK87N,uBAAuB32K,EAAWtoC,EAAQy6M,EAAOz6M,GAChE7c,KAAKi3N,aAAazlN,KAAKy9E,KAAK98D,EAAMmlM,IAC7B,eAAU91G,IAAcxhH,KAAK86N,qBAAuBxD,GACrDt3N,KAAKo5N,yBAAyBj0K,IAGtCi4B,MAAO,SAAS+/I,GACZn9N,KAAKo7N,YAAYh+I,QACZ+/I,IACDn9N,KAAKi7N,WAAa,KAG1BmC,8BAA+B,SAASvmN,GACpC7W,KAAKq9N,cAAgBr9N,KAAKq9N,eAAiBxD,GAA6BhjN,EAAU2qG,IAC1ExhH,KAAKk3N,oBACLl3N,KAAK47N,oBAAoBp6G,MAIrCrvD,QAAS,WACLiI,aAAap6D,KAAK67N,kBAClB77N,KAAKq9N,eAAiBr9N,KAAKq9N,cAAclrK,UACzCnyD,KAAKq9N,cAAgB,MAEzB37J,SAAU,SAAS+D,GACfzlE,KAAKq9N,eAAiBr9N,KAAKq9N,cAAc37J,SAAS+D,IAEtDlmD,cAAe,WACX,OAAOm6M,GAAe15N,OAE1Bwf,aAAc,WACV,OAAOo6M,GAAc55N,OAEzBs7N,kBAAmB,WACf,IAAIgC,EACAlqI,EAAcpzF,KAAK4Y,OAAO,oBAAsBrE,GAChDy6E,EAAkBhvF,KAAK82N,aAAa9nI,kBACpCE,EAAmBlvF,KAAK82N,aAAa5nI,mBACrCquI,EAAWruI,GAAoBlvF,KAAK86N,mBAAqB9rI,EAAkBA,EAAkBhvF,KAAK86N,mBAClG0C,EAAcx9N,KAAK46N,cAAgB2C,EACnCE,EAASz9N,KAAK4Y,OAAO,sCAAwC,EAC7D0jN,EAAkBt8N,KAAKs8N,kBACvBoB,EAAS,QAAUJ,EAAgBt9N,KAAK4Y,OAAO,wCAAqC,IAAW0kN,EAAgBA,EAAgB,EAC/HK,EAAYrB,EAAkBoB,EAAS,EACvCE,EAAetB,EAAkB,EAAIoB,EACrC78M,EAAOrP,KAAKE,MAAMF,KAAK1I,IAAI,EAAGy0N,EAAWI,GAAaF,GAAUA,EAChE78M,EAAOpP,KAAKy9E,MAAMuuI,EAAcI,EAAe/8M,GAAQ48M,GAAUA,EACrE,GAAIrqI,EAAa,CACb,IAAIyqI,EAAgBrsN,KAAK1I,IAAI,EAAGkmF,EAAkBnuE,GAClDD,EAAOpP,KAAK3I,IAAI+X,EAAMi9M,GAE1B,MAAO,CACHh9M,KAAMA,EACND,KAAMA,IAGdkrE,WAAY,WACR,IAAI7sF,EAAS,EAMb,OAJIA,EADAe,KAAK4Y,OAAO,IACH5Y,KAAKo7N,YAAYtvI,WAAWhtF,MAAMkB,KAAKo7N,YAAal7N,WAEpDF,KAAK82N,aAAahrI,aAExB7sF,IAQf,MALA,CAAC,YAAa,iBAAkB,eAAgB,WAAY,OAAQ,aAAc,oBAAqB,oBAAoBiC,SAAQ,SAAUU,GACzIyuF,EAAQzuF,GAAQ,WACZ,OAAO5B,KAAKo7N,YAAYx5N,GAAM9C,MAAMkB,KAAKo7N,YAAal7N,eAGvDmwF,EAxQwC,ICvE/CytI,GAA0B,oBAC1BC,GAAsB,gBACtB,GAAoB,cACpB,GAAgB,UAChBC,GAAkB,mBAClB,GAAqB,kBACrBC,GAAoB,iBACpB,GAAe,kBACf,GAA0B,WAC1B,GAAyB,UACzBC,GAAe,IACf,GAAwB,uBACxBC,GAAqB,mBACrB,GAAgB,SAASx6N,GACzB,OAAOA,EAAKiV,OAAO,oBAAsB,IAEzC,GAAe,SAASjV,GACxB,OAAOA,EAAKiV,OAAO,oBAAsB,IAEzCwsH,GAAkB,SAASzhI,GAC3B,OAAO,GAAcA,IAAS,GAAaA,IAE3Cy6N,GAAgB,SAAS7zN,EAAO6H,EAAOg1E,EAASi3I,GAChD,IAAK,IAAI5iO,EAAI,EAAGA,EAAI2W,EAAQ,EAAG3W,IAAK,CAChC,IAAIoO,EAAOU,EAAM68E,EAAU78E,EAAM3Q,OAAS,EAAI6B,EAAIA,GAC9CoO,IAASw0N,EAAoBx0N,EAAMpO,IAAM2W,EAAOg1E,IAChDh1E,IAGR,OAAOA,GAEPksN,GAA8B,SAASz0N,EAAMuQ,GAC7C,MAAO,SAAWvQ,EAAK8Q,UAAY9Q,EAAKsT,UAAY,UAAYtT,EAAK8Q,SAAWP,EAAWukH,qBAAqB90H,EAAKzF,OAErHm6N,GAAoB,SAASh0N,GAI7B,OAHAA,EAAMrJ,SAAQ,SAAU2I,EAAMzI,GAC1ByI,EAAK2wD,SAAWp5D,KAEbmJ,GAEPi0N,GAA4C,WAC5C,IAAIC,EAAiB,SAAS96N,GAC1B,IAAI0+H,EAAiB1+H,EAAK+6N,yBAAyBr8F,gBAAgB,GAC/D,GAAc1+H,KACV0+H,EAAiB,GAAK1+H,EAAKszN,gBAAkB,GAAKtzN,EAAK0yN,wBAA0B,IAAMh0F,EAAiB1+H,EAAKuoD,WAAavoD,EAAK0yN,wBAA0Bh0F,EAAiB1+H,EAAKuoD,WAAavoD,EAAKmoF,aAAenoF,EAAK0yN,uBAAyB1yN,EAAKszN,iBAAmBtzN,EAAK0W,YAAYhQ,YAClR1G,EAAKitF,aACNjtF,EAAKitF,YAAa,EAClBjtF,EAAKulF,eAAe10B,MAAK,IAEtB7wD,EAAKitF,aACZjtF,EAAKitF,YAAa,EAClBjtF,EAAKulF,eAAe10B,MAAK,MAIjCv1D,EAAS,CACTwxD,KAAM,WACFzwD,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAKgsF,OAAS,GACdhsF,KAAK2+N,aAAe,EACpB3+N,KAAKywH,WAAY,EACjBzwH,KAAK4+N,eAAiB,EACtB5+N,KAAK0+N,yBAA2B,IAAI/D,GAAwB36N,KAAK4R,UAAW5R,KAAK6+N,iCAErFA,6BAA8B,WAC1B,IAAIl7N,EAAO3D,KACX,MAAO,CACHksD,SAAU,WACN,OAAOvoD,EAAKuoD,YAEhB8iC,gBAAiB,WACb,OAAOrrF,EAAKqrF,mBAEhBE,iBAAkB,WACd,OAAOvrF,EAAKurF,oBAEhBjjC,UAAW,SAAS7qD,GAChB,OAAOuC,EAAK0W,YAAY4xC,UAAU7qD,IAEtCiJ,UAAW,WACP,OAAO1G,EAAK0W,YAAYhQ,cAAgB1G,EAAKipF,mBAEjD6B,UAAW,WACP,OAAO9qF,EAAK8qF,aAEhBhuE,KAAM,WACF,OAAO9c,EAAK0W,YAAYoG,QAE5Bg4M,cAAe,WACXgG,EAAe96N,IAEnBmoF,WAAY,WACR,OAAOnoF,EAAKmoF,YAAW,IAE3BvhF,MAAO,WACH,OAAO5G,EAAK0W,YAAY9P,SAE5B6tN,cAAe,SAAS7tN,GAIpB,OAHIA,IACA5G,EAAKqoF,OAASzhF,GAEX5G,EAAKqoF,QAEhBmtI,UAAW,SAASv1N,GAChBD,EAAK2hE,QAAQ9Q,KAAK5wD,IAEtB+3N,iBAAkB,SAAS/3N,GACvB,OAAID,EAAK0G,YACE6zN,GAEJv6N,EAAKm7N,aAAe,KAIvCj1I,sBAAuB,SAASx/E,IACxB,IAAUrK,KAAK4Y,OAAO,KAIrB,GAAc5Y,QAASA,KAAKipF,gBAC7BjpF,KAAK4wF,WAAavmF,EAClBrK,KAAKC,SAASnB,MAAMkB,KAAME,YAG1BF,KAAK++N,eADL10N,EACsB,IAAItQ,UAEJ,GAVtBiG,KAAKC,SAASnB,MAAMkB,KAAME,YAalC6pF,iBAAkB,YACV,IAAU/pF,KAAK4Y,OAAO,MACtB5Y,KAAK4wF,YAAa,EAClB5wF,KAAKkpF,eAAe10B,MAAK,IAE7Bx0D,KAAKC,SAASnB,MAAMkB,KAAME,YAE9BqlE,mBAAoB,SAAS3hE,GACzB,IAAI,IAAU5D,KAAK4Y,OAAO,IAItB,OAHA5Y,KAAKgsF,OAAShsF,KAAKqa,YAAY9P,QAAQyJ,QACvChU,KAAK2+N,YAAc3+N,KAAK8uF,uBAAsB,QAC9C9uF,KAAKC,SAASnB,MAAMkB,KAAME,WAG9B,IAAID,EAAWD,KAAKC,SAASub,KAAKxb,MAClCA,KAAK0+N,yBAAyBM,kBAAkB/+N,EAAU2D,IAE9D6oF,2BAA4B,SAAS32E,EAASswE,GAC1C,IAAI64I,GAAU,IAAUj/N,KAAK4Y,OAAO,IAChCqgC,EAAcj5C,KAAK4Y,OAAO,yBACzB,eAAUqgC,KACXA,EAAcj5C,KAAK8+N,aAAe9+N,KAAK4Y,OAAO,mCAE7C,GAAc5Y,OAAS,GAAaA,OAASi/N,IAAa74I,EAAeC,SAAWD,EAAevlE,OAAQo+M,GAAahmL,IACzHnjC,EAAQkiB,WAAQ,GAEpBh4B,KAAKC,SAASnB,MAAMkB,KAAME,YAE9BqK,MAAO,WACH,OAAOvK,KAAKgsF,QAEhB8C,sBAAuB,SAASyqI,GAC5B,OAAO,IAAUv5N,KAAK4Y,OAAO,KAA0B,GAAc5Y,QAAUu5N,EAASv5N,KAAK2+N,YAAc3+N,KAAKC,YAEpH6rF,WAAY,SAASytI,GACjB,OAAIA,IAAU,IAAUv5N,KAAK4Y,OAAO,IACzB5Y,KAAKC,WAETD,KAAK0+N,yBAAyB5yI,cAEzCrrE,KAAM,SAASC,GACX,OAAI,IAAU1gB,KAAK4Y,OAAO,KAA0B8H,EACzC1gB,KAAKC,SAASygB,GAElB1gB,KAAK0+N,yBAAyBj+M,QAEzCpW,UAAW,WACP,OAAO,IAAUrK,KAAK4Y,OAAO,IAAyB5Y,KAAKqa,YAAYhQ,YAAcrK,KAAK4wF,YAE9FtiB,SAAU,WACN,OAAOtuE,KAAKqa,YAAYi0D,YAActuE,KAAKywH,WAE/C9lC,gBAAiB,SAASqL,GACjBA,GACDh2F,KAAK0+N,yBAAyBthJ,OAAM,GAExCp9E,KAAKC,SAASnB,MAAMkB,KAAME,YAE9BqnI,qBAAsB,WAClB,IAAItoI,EAASe,KAAKC,SAASnB,MAAMkB,KAAME,WACvC,OAAI,IAAUF,KAAK4Y,OAAO,MAG1B5Y,KAAK2qF,kBACL8zI,EAAez+N,OAHJf,GAMfonF,OAAQ,WACJrmF,KAAKqa,YAAY4xC,UAAUjsD,KAAKisD,aAChC,IAAIizK,EAA0Bl/N,KAAK0+N,yBACnC,IAAI,IAAU1+N,KAAK4Y,OAAO,KAA0BsmN,EAAyB,CACzE,IAAIhuN,EAAI,IAAI,cASZ,OARAlR,KAAKC,SAASnB,MAAMkB,KAAME,WAAWme,MAAK,SAAU9M,GAChD,IAAI0nN,EAAgBiG,EAAwBC,mBACxClG,EACAA,EAAc56M,KAAKnN,EAAEyP,SAASG,KAAK5P,EAAE2iB,QAErC3iB,EAAEyP,QAAQpP,MAEduP,KAAK5P,EAAE2iB,QACJ3iB,EAEP,OAAOlR,KAAKC,SAASnB,MAAMkB,KAAME,YAGzCwhF,QAAS,SAAS5rE,EAASswE,GACvB,IAAI,IAAUpmF,KAAK4Y,OAAO,IAAwB,CAC9C,IAAI2I,EAAmBzL,EAAQyL,iBAC3BnH,EAAapa,KAAKqa,YAClB+rE,EAAeC,QACfrmF,KAAK0+N,yBAAyBthJ,QAC9BhjE,EAAW7P,QAAQ3Q,OAAS,EAC5BoG,KAAKywH,WAAY,EACjBguG,EAAez+N,MACfA,KAAKywH,WAAY,EACb,GAAazwH,OACbA,KAAKisD,UAAU,GACf7xC,EAAW6xC,UAAU,GACrB1qC,EAAiB0qC,UAAY,EAC7Bn2C,EAAQm2C,UAAY,EACpB1qC,EAAiBV,KAAO,IAExBzG,EAAW6xC,UAAUjsD,KAAKisD,aACtB7xC,EAAWkrE,aACXxvE,EAAQm2C,UAAYjsD,KAAKisD,YACzB1qC,EAAiBV,KAAO7gB,KAAKisD,YAAcjsD,KAAKksD,cAGjD,GAAalsD,OAASuhB,EAAiBV,MAAQ7gB,KAAKgpF,sBAAwB,IACnFznE,EAAiBV,MAAQ7gB,KAAKgpF,uBAGtC,OAAOhpF,KAAKC,SAASnB,MAAMkB,KAAME,YAErCiyD,QAAS,WACLnyD,KAAK0+N,yBAAyBvsK,UAC9BnyD,KAAKC,SAASnB,MAAMkB,KAAME,YAE9Bk/N,cAAe,SAAShtN,GACpB,IAAK,eAAUA,GACX,OAAOpS,KAAK4+N,eAEhB5+N,KAAK4+N,eAAiBxsN,GAE1B06E,mBAAoB,SAASh3E,GACzB,IAAIspN,EAAgBp/N,KAAKo/N,gBACrBlzK,EAAWlsD,KAAKksD,WAChB+yK,GAAU,IAAUj/N,KAAK4Y,OAAO,IAChC2I,EAAmBzL,EAAQyL,iBAC3B89M,EAAgB,eAAU99M,EAAiBX,MAC/C9K,EAAQspN,cAAgBA,GACnBtpN,EAAQ82E,iBAAmBqyI,GAAWI,GAAiBD,EAAgB,GAAKlzK,EAAW,IACxF3qC,EAAiBX,KAAOw+M,EAAgBlzK,GAE5ClsD,KAAKC,SAASnB,MAAMkB,KAAME,YAE9BouF,cAAe,WACX,OAAOtuF,KAAKC,SAASnB,MAAMkB,KAAME,WAAaF,KAAKo/N,kBAmB3D,MAhBA,CAAC,iBAAkB,eAAgB,aAAal+N,SAAQ,SAAUU,GAC9D3C,EAAO2C,GAAQ,WACX,IAAI,IAAU5B,KAAK4Y,OAAO,IAAwB,CAC9C,IAAIwB,EAAapa,KAAKqa,YACtB,OAAOD,EAAW6xC,UAAUntD,MAAMsb,EAAYla,WAElD,IAAIg/N,EAA0Bl/N,KAAK0+N,yBACnC,OAAOQ,EAAwBt9N,GAAM9C,MAAMogO,EAAyBh/N,eAG5E,CAAC,oBAAqB,mBAAoB,wBAAyB,sBAAuB,sBAAuB,uBAAwB,uBAAwB,yBAA0B,eAAgB,mBAAoB,cAAe,eAAgB,cAAcgB,SAAQ,SAAUU,GAC1R3C,EAAO2C,GAAQ,WACX,IAAIs9N,EAA0Bl/N,KAAK0+N,yBACnC,OAAOQ,EAAwBt9N,GAAM9C,MAAMogO,EAAyBh/N,eAGrEjB,EArPqC,GAuP5CqgO,GAAmC,WACnC,IAAIC,EAAkB,SAASC,EAAYntK,GACvC,IAAI0V,EAAUy3J,EAAWjwJ,UAAUzzE,IAAIohB,GAAO,eAAEA,GAAKkC,OAAO,IAAMizC,GAAW30D,IAAI,IAAIU,OAAO8e,GAAOA,GAC/F6qD,EAAQnuE,SACR4lO,EAAa,eAAEz3J,IAGnB,IADA,IAAI6G,EAAWvc,IAAc2rK,GAAkBwB,EAAW5lO,OAAS,EAAI4lO,EAAW5lO,OACzE6B,EAAI,EAAGA,EAAImzE,EAAUnzE,IAC1B+jO,EAAWhjN,GAAG/gB,GAAGkd,UAGzB,MAAO,CACH83C,KAAM,WACF,IAAIgvK,EACAz8I,EAAiBhjF,KAAK2xD,cAAc,QACxC3xD,KAAKC,WACL+iF,EAAeoN,YAAYtgF,IAAIm8C,IAC3B,IAAIu1D,EAAYxhH,KAAKw+F,WACrBx+F,KAAK0/N,aAAa,OAASzzK,QAAa,IAAWA,EAAYA,EAAY+2B,EAAe/2B,cACtF,IAAUjsD,KAAK4Y,OAAO,KAA0B5Y,KAAKw+F,aAAegjB,GACpEx+B,EAAe28I,mBAGvB38I,EAAegW,kBAAkBlpF,IAAI,MAChC9P,KAAKw+F,YAAcx+F,KAAK4/N,iCAE7B,QAAUH,EAAwBz8I,EAAe+uC,mBAAgB,IAAW0tG,GAAiCA,EAAsB3vN,IAAI,KACnI9P,KAAK4/N,iCAET5/N,KAAK4/N,gCAETA,6BAA8B,WAC1B,IAAI58I,EAAiBhjF,KAAK2xD,cAAc,QACxC,GAAIqxB,EAAe/2B,YAAc,EAAG,CAChC,IAAI4zK,EAAgB,KAChB7/N,KAAK6zD,gBAAgBl7C,OAAOknN,GAC5B7/N,KAAK0/N,aAAa18I,EAAe/2B,cAErCjsD,KAAK6zD,gBAAgB/jD,IAAI+vN,KAGjCH,aAAc,SAASzzK,GACnB,IAEI6zK,EAFA98I,EAAiBhjF,KAAKiY,gBACtBi0C,EAAW82B,EAAiBA,EAAe92B,WAAa,EAE5D,GAAI,GAAclsD,OAAS,GAAaA,MAAO,CAC3C,IAAI6iK,EAAW7/E,EAAei5I,cAC1B8D,EAAY/8I,EAAeu0I,eAC3B/yH,EAAYv4C,EAAYC,EAE5B,IAAK,IAAI9qD,KADT0+N,EAAiBt7H,EAAYq+D,EACXk9D,EACV3+N,EAAQojG,IACRs7H,GAAkBC,EAAU3+N,GAASyhK,QAI7Ci9D,EAAiB,EAErB9/N,KAAK0hE,SAAS,CACVvvD,EAAG2tN,EACH7sN,EAAGjT,KAAKyhE,eAGhBtC,uBAAwB,SAASv7D,GAC7B5D,KAAKggO,wBAAuB,GAC5BhgO,KAAKC,SAASnB,MAAMkB,KAAME,YAE9BuzD,YAAa,SAAS7vD,GAClB,IAAIq8N,EAAkB,IAAIlmO,KAC1BiG,KAAKC,SAASnB,MAAMkB,KAAME,WAC1B,IAAIka,EAAapa,KAAKiY,gBAAgBoC,YACtC,GAAID,GAAcxW,EAAG,CACjB,IAAIk+F,EAAYl+F,EAAE2G,MAAQ3G,EAAE2G,MAAM3Q,OAAS,GACvCq9N,EAAej3N,KAAKiY,gBAAgBg/M,gBAAkB,GACtD,OAAc53M,sBAAsBrf,OAAS8hG,EAAY,IAAK,IAAU9hG,KAAK4Y,OAAO,IACpFwB,EAAW0kN,aAAe,IAAI/kO,KAAOkmO,GAAmBhJ,EAAen1H,EAEvE1nF,EAAW0kN,YAAc,IAAI/kO,KAAOkmO,IAIhDj5J,gBAAiB,SAASrG,GACtB,IAAI2F,EAAQtmE,KAAKC,SAAS0gE,GAC1B,OAAO2F,GAASA,EAAM1F,IAAI,IAAMq9J,KAEpCiC,oBAAqB,SAASjK,EAAcoC,EAAax2J,GACrD,IAAIgjC,EAAc7kG,KAAKgnE,gBAAgBivJ,GAAc1mJ,UAEjDs1B,EADA,WAAahjC,EACCgjC,EAAY7wF,MAAM,EAAGqkN,GAErBxzH,EAAY7wF,OAAOqkN,GAErC,IAAIz8G,EAA0B57G,KAAK2xD,cAAc,iBACjDkzC,EAAY/oG,IAAI4+D,IACZ,IAAImI,EAAc,eAAEnI,GACpBkhD,GAA2BA,EAAwBb,eAAel4C,EAAY/zD,QAC9E+zD,EAAYlqD,YAGpBktD,eAAgB,SAASlF,EAAcpf,GACnC,IAAIu0K,EACA72H,EAAiBj/F,KAAK+lE,sBACtBlE,EAAatgB,GAAUA,EAAOsgB,WAC9Bo0J,EAAeh3H,EAAejnC,WAAWuS,QAC7C,GAAI,WAAa1I,GAAc,YAAcA,EAAY,CACrD,IAAIg+B,EAAW7/F,KAAK0gE,WAAWC,GAC3B,IAAMk/B,EAASjmG,OACfoG,KAAK0gE,WAAWu1J,GAAc,WAAap0J,EAAa,SAAW,WAAWg+B,EAAS7nC,YAEvF6nC,EAAS,WAAah+B,EAAa,WAAa,aAAao0J,GAEjEt1J,EAAahoD,SACbm9M,EAAwB91N,KAAKygG,yBAAyBw1H,GACtDsJ,EAAgBzJ,EAAuBkI,IACnCz8K,EAAO82K,aACPr4N,KAAKkgO,oBAAoBjK,EAAc10K,EAAO82K,YAAax2J,GAE/D7hE,KAAKmlG,iBAAiB8wH,QAEtBj2N,KAAKC,SAASnB,MAAMkB,KAAME,WACtB,WAAa2hE,GACb7hE,KAAKmlG,iBAAiB8wH,GAG9Bj2N,KAAKmgO,wBAETC,eAAgB,SAAStmK,EAAQ4lC,EAAS10C,EAAU7F,GAChD,GAAKA,EAAL,CAGA,IAAIk7K,EAAcrgO,KAAKy/F,gBAAgBw+H,GAAmBv+H,EAASv6C,GACnEk7K,EAAcrgO,KAAKihE,eAAenH,EAAQumK,GAC1CrgO,KAAK2/F,gBAAgB7lC,EAAQumK,EAAar1K,KAE9Cs1K,wBAAyB,WACrB,IAAIC,EAAavgO,KAAKwgO,iBAClBC,EAAsBzgO,KAAK0gO,mBAAmBH,GAClDvgO,KAAKiY,gBAAgBwkN,oBAAoBgE,IAE7CE,oBAAqB,SAASzD,EAAgB17G,GACrC,eAAU07G,KACXA,EAAiBl9N,KAAKo+F,WAAa,eAAep+F,KAAK0X,WAAa,eAAe,mBAEvF1X,KAAKiY,gBAAgBilN,eAAeA,EAAgB17G,IAExDg/G,eAAgB,WACZ,IAAIzX,EAAqB6X,EACrB9b,EAAkB,QAAUiE,EAAsB/oN,KAAK2xD,cAAc,kBAAe,IAAWo3J,GAA+B,QAAU6X,EAAwB7X,EAAoBjE,uBAAoB,IAAW8b,OAA9F,EAA+HA,EAAsBxqN,KAAK2yM,GAC/QlkH,EAAc7kG,KAAKgnE,gBAAgBhnE,KAAKmhE,eAAeoO,UAI3D,OAHIu1I,IACAjgH,EAAcA,EAAYzmG,OAAO8e,IAAQ,eAAEA,GAAK+5C,SAAS,MAEtD4tC,EAAY/oG,IAAIohB,GAAO,eAAgBA,GAAKL,SAEvD6jN,mBAAoB,SAASH,GAQzB,IAPA,IAAIv9I,EAAiBhjF,KAAKiY,gBACtBmC,EAAa4oE,EAAe3oE,YAC5BomN,EAAsB,GACtBI,EAAc79I,EAAeiV,iBAC7B4qE,EAAW,EACXi+D,GAAqB,EACrBC,GAAiB,EACZtlO,EAAI,EAAGA,EAAI8kO,EAAW3mO,OAAQ6B,IAAK,CACxC,IAAI48H,EAAcwoG,EAAYplO,GACzB,eAAU48H,MAGX,IAAUr4H,KAAK4Y,OAAO,KAClBmoN,GAAiB,GAAKA,IAAkB1oG,EAAYrgC,YACpDyoI,EAAoBx9N,KAAK4/J,GACzBA,EAAW,GAEfk+D,EAAgB1oG,EAAYrgC,WACrBsmI,GAA4BjmG,EAAaj+G,KAC5C0mN,EACAA,GAAqB,GAErBL,EAAoBx9N,KAAK4/J,GACzBA,EAAW,IAGnBA,GAAY09D,EAAW9kO,IAG3B,OADAonK,EAAW,GAAK49D,EAAoBx9N,KAAK4/J,GAClC49D,GAEXT,uBAAwB,SAASgB,GAC7B,IAAIh+I,EAAiBhjF,KAAKiY,gBACtBgpN,EAAYjhO,KAAKogG,YAAc,GAEnC,GADApd,EAAek0I,iBAAiB+J,GAC5B,GAAcjhO,OAAS,OAAcqf,sBAAsBrf,MAAO,CAC7DghO,GACDhhO,KAAKsgO,0BAET,IAAI1jN,EAAMomE,EAAem0I,iBAAiB,SACtCp4G,EAAS/7B,EAAem0I,iBAAiB,OACzCxsF,EAAU3qI,KAAK8kE,mBACfo8J,EAAev2F,EAAQ3yE,SAAS,SAASA,SAAS,IAAMimK,IAC5DsB,EAAgB2B,EAAcjD,IAC9BtzF,EAAQw3B,KAAK,CAAC/gK,EAAOsW,KACjB,IAAIgoF,EAAUt+F,EAAQ,EAClB+/N,EAAYnhO,KAAKohO,uBACrBphO,KAAKohO,uBAAyB1hI,EAC9B1/F,KAAKogO,eAAe,eAAE1oN,GAAUgoF,EAAS,MAAO9iF,GAChD5c,KAAKogO,eAAe,eAAE1oN,GAAUgoF,EAAS,SAAUqf,GACnD/+G,KAAKohO,uBAAyBD,MAI1CE,6BAA8B,SAASC,GACnC,IAAIC,EAAiBD,EAAMxpN,KAAK,IAAM,IAAoBle,OAAS,EACnE,OAAO2nO,IAAmBvhO,KAAK4Y,OAAO,oBAE1C4oN,uBAAwB,SAASC,EAAUC,GACvC,IAAIziO,EAASwiO,EAAS7nO,SAAW8nO,EAAgB9nO,OASjD,OARIqF,GACA,eAAKwiO,GAAU,SAAUrgO,EAAOsW,GAC5B,GAAIA,EAAQujD,MAAM5vD,QAAUq2N,EAAgBtgO,GAAO65D,MAAM5vD,MAErD,OADApM,GAAS,EACFA,KAIZA,GAEX0iO,gBAAiB,SAASpnN,GACtB,IAAIqnN,EAAU,GACVhmL,EAAWrhC,EAAOqhC,SAClBimL,EAAiB,WAAatnN,EAAOsE,QAGzC,OAFA+8B,GAAYgmL,EAAQ3+N,KAAK24C,GACzBimL,GAAkBD,EAAQ3+N,KAAKjD,KAAK4X,gBAAgB,KAC7CgqN,GAEXE,qBAAsB,SAASn9H,GAC3B,IAAI9tF,EAAW8tF,GAAmB3kG,KAAK0X,UACnCqqN,EAAmBlrN,GAAYA,EAASiB,KAAK,IAAM9X,KAAK4X,gBAAgBkmN,KAC5E,GAAIiE,GAAoBA,EAAiBnoO,OACrC,OAAOmoO,GAGf5B,qBAAsB,WAClB,IAAI/sI,EAAc,GAAcpzF,MAC5BmzF,EAAa,GAAanzF,MAC1BgiO,GAAqBhiO,KAAKiY,gBAAgBi3E,oBAAsBlvF,KAAKiY,gBAAgBq2D,aAAe8kB,GAAeD,GACnHwR,EAAkB3kG,KAAK+lE,sBACvBk8J,EAAyBjiO,KAAK8hO,qBAAqBn9H,GACnDq9H,EACKC,GACD,eAAE,SAAS9pN,SAASnY,KAAK4X,gBAAgBkmN,KAA0B/jM,OAAO/5B,KAAKiZ,iBAAiB,eAAE,SAAU,SAAepC,YAAYuB,SAASusF,GAE7Is9H,GACPA,EAAuBtpN,UAG/B2lF,cAAe,SAAS16F,GACpB,IAAI8wH,GAAsB,IAAS10H,KAAK4Y,OAAO,IAC3CspN,EAAkB,IAAMt+N,EAAE66F,aAAa7hF,KACtC5c,KAAKo+F,aAAes2B,GAAuBwtG,IAAoBliO,KAAKogG,aACrEpgG,KAAKw+F,WAAa56F,EAAE66F,aAAa7hF,IAC7B,GAAc5c,QAAS,IAAUA,KAAK4Y,OAAO,MAC7C5Y,KAAKsgO,0BACLtgO,KAAK2gO,oBAAoB,KAAM3gO,KAAKw+F,aAExCx+F,KAAKiY,gBAAgB2jN,oBAAoBh4N,EAAE66F,aAAa7hF,MAE5D5c,KAAKC,SAASnB,MAAMkB,KAAME,YAE9BigG,qBAAsB,SAASrU,GAC3B,OAAO9rF,KAAKC,SAASnB,MAAMkB,KAAME,YAAc4rF,EAAa,GAAK,GAAa9rF,QAAU,OAAcqf,sBAAsBrf,OAEhIugG,iBAAkB,WAEd,GADAvgG,KAAKC,SAASnB,MAAMkB,KAAME,WACtBF,KAAKogG,WAAY,CACjBpgG,KAAKggO,yBACL,IAAI9C,EAAiBl9N,KAAKo+F,WAAa,eAAep+F,KAAK0X,WAAa,eAAe,kBACnFsrE,EAAiBhjF,KAAKiY,iBACtB,IAAUjY,KAAK4Y,OAAO,KACtB5Y,KAAK2gO,oBAAoBzD,GACzBl6I,EAAe28I,kBAEf38I,EAAei0I,aAAazlN,KAAKy9E,KAAKiuI,EAAiBl9N,KAAKogG,eAIxEe,yBAA0B,WACtB,IAAIliG,EAASe,KAAKC,SAASnB,MAAMkB,KAAME,WAIvC,OAHIjB,GACAe,KAAKggO,yBAEF/gO,GAEXkkG,WAAY,SAAS94F,EAAW8vF,GAC5B,IAAInX,EAAiBhjF,KAAKiY,gBACtBkqN,EAAqBn/I,EAAe/2B,YAAc,GAAK+2B,EAAe1U,cAAgBtuE,KAAK8hO,wBAC3F,IAAU9hO,KAAK4Y,OAAO,KAA0BvO,GAAa24E,EAAeo/I,uBAG5ED,IACA93N,GAAY,GAEhBrK,KAAKC,SAASmW,KAAKpW,KAAMqK,EAAW8vF,KAExCzmC,YAAa,WACT,IAAI/vD,EAAO3D,KACP6W,EAAWlT,EAAK+T,UACpB/T,EAAK1D,WACD0D,EAAKiO,UAAUiF,aAAelT,EAAK05N,eAAiBxmN,EAASsH,QAAQ,iBAAY4gB,UAAUnlC,SAC3F+J,EAAK05N,cAAgBxD,GAA6BhjN,GAAU,SAAUwrN,IAC7D1+N,EAAKy6F,YAAcz6F,EAAKy8F,YACzBz8F,EAAKsU,gBAAgB2jN,oBAAoByG,KAE7C1+N,EAAKiO,UAAUiF,YACnBlT,EAAKmG,GAAG,aAAa,WACjBnG,EAAK05N,cAAclrK,eAGvB,IAAUnyD,KAAK4Y,OAAO,KACtBjV,EAAK2+N,cAGbA,WAAY,WACR,IAAIC,EACAv/I,EAAiBhjF,KAAKiY,gBAC1B,OAAS+qE,QAAkB,IAAWA,GAA0B,QAAUu/I,EAAwBv/I,EAAes/I,kBAAe,IAAWC,GAAiCA,EAAsBnsN,KAAK4sE,IAE3Mpe,gBAAiB,SAASF,GACtB,IACIgJ,EADAsvB,EAAah9F,KAAKk+F,gBAEtBl+F,KAAKC,SAASnB,MAAMkB,KAAME,WACtB,YAAcF,KAAK4Y,OAAO,oBAC1B80D,EAAWsvB,EAAa,eAAEA,EAAWpjC,WAAa55D,KAAK0X,UACvD1X,KAAKC,SAASykE,EAAQgJ,EAAS1V,SAAS,IAAMh4D,KAAK4X,gBAAgB,KAAgBogD,SAAS,SAAWh4D,KAAK4X,gBAAgBmmN,IAAuB,QAG3J54H,iBAAkB,WACd,IAAI,IAAUnlG,KAAK4Y,OAAO,IAAwB,CAC9C,IAAI+iG,EAAgB37G,KAAK2xD,cAAc,iBACvC,OAASgqD,QAAiB,IAAWA,GAAyBA,EAAcZ,iBAEhF/6G,KAAKC,SAASnB,MAAMkB,KAAME,YAE9BiyD,QAAS,WACLiI,aAAap6D,KAAK67N,kBAClB77N,KAAKC,aAvVsB,GA2V5BuiO,GAAyB,CAChC7kO,eAAgB,WACZ,MAAO,CACH27C,UAAW,CACP6gB,QAAS,IACTsoK,cAAe,IACfC,WAAY,EACZC,mBAAoB,IACpBtJ,sBAAsB,EACtBuJ,YAAa,EACbC,wBAAyB,EACzBv2L,KAAM,WACNohB,gBAAgB,EAChBpuC,iBAAkB,WAClBwjN,qBAAqB,EACrBC,YAAY,EACZC,oBAAqB,KAIjCptK,UAAW,CACPwjC,kBAAmBolI,GACnBhpK,YAAa,CACTpxD,KAAM,WACF,IAAIisF,EAAU,CACVW,mBAAoB,WAChB,IAAIiyI,EAAajjO,KAAKC,SAASnB,MAAMkB,KAAME,aAAc,IAAK,eAAUygB,UAAUc,UAElF,OADAwhN,EAAW5kN,KAAKre,KAAKkjO,gBAAgB1nN,KAAKxb,OACnCijO,GAEXtvI,gBAAiB,WACb,GAAI3zF,KAAKmjO,uBAAyB/9F,GAAgBplI,MAAO,CACrD,IAAIojO,GAEAhE,cAAeA,GACf,eAAUp/N,KAAKqjO,qBAAuBrjO,KAAKsjO,oBAAsB,GACrElE,GAAiB,IAAM,QAAUgE,EAAoBpjO,KAAKqa,mBAAgB,IAAW+oN,GAA6BA,EAAkBhE,cAAcA,IAEtJ,OAAOp/N,KAAKC,SAASnB,MAAMkB,KAAME,YAErCqjO,eAAgB,WACZ,IAAIX,EAAc5iO,KAAK4Y,OAAO,yBAC1BszC,EAAWlsD,KAAKksD,WACpB,OAAOA,GAAYA,EAAW02K,EAAc12K,EAAW02K,GAE3Dv8I,OAAQ,WACJ,IAAIm9I,EAAuBxjO,KAAKmjO,uBAAyBnjO,KAAKqa,YAC1DmqF,EAAYg/H,GAAwBA,EAAqB1H,yBACzD78N,EAASe,KAAKC,SAASnB,MAAMkB,KAAME,WACvC,OAAOjB,GAAUA,EAAOof,KAAK,KACzB,GAAI,GAAcre,OAAS,OAAcqf,sBAAsBrf,MAAO,CAClE,IAAIy3F,EAAiBz3F,KAAK03F,oBACtBl9B,EAAWhpD,KAAKE,MAAM8yF,GAAa/M,EACnC7lF,EAAY5R,KAAK4R,UACjBorF,EAAaprF,EAAUssF,eAAiBtsF,EAAUssF,gBAClDulI,EAAqBzjO,KAAKoa,aAAagsE,iBAAiBpsC,QAC5D,GAAIgjD,IAAeymI,GAAsBjpK,GAAY,EAAG,CACpD,IAAIE,EAAa9oD,EAAU41D,cAAchN,GACrCqI,EAAcnI,GAAcA,EAAW,IAAM,eAAEA,EAAW,IAC1D99C,EAAMimD,GAAeA,EAAY1d,WAAWvoC,IAC5CkmF,EAAiBljF,EAAA,KAAQmjF,QAAUnjF,EAAA,KAAQuT,SAAW,GACtDuwM,EAAmB9jN,EAAA,KAAQC,SAAWijF,EAAiB,EAAI,EAC3DlmF,EAAM8mN,IACN9mN,EAAMpL,KAAKyrF,MAAMrgF,EAAM,eAAeimD,IAAgB2hC,EAAY,IAClExH,EAAWt7B,SAAS,CAChBvvD,EAAGyK,UAO3BsmN,gBAAiB,WACb,IAAIS,EAAuB,OAActkN,sBAAsBrf,MAG/D,GAFAA,KAAK4jO,UAAY,KACjB5jO,KAAKqjO,oBAAsB,KACvB,YAAcrjO,KAAK4Y,OAAO,oBAAqB,IAAS+qN,IAAwB,IAAUA,IAAwB,IAAU3jO,KAAK4Y,OAAO,MAA2B5Y,KAAK4Y,OAAO,yBAG/K,OAFA5Y,KAAK6jO,cAAgB,UACrB7jO,KAAKmjO,sBAAwB,MAGjC,IAAIl3K,GAAa,GAAcjsD,OAASA,KAAKisD,aAAejsD,KAAKyuF,YAAczuF,KAAKyuF,YAAc,EAAIzuF,KAAKisD,YAC3GjsD,KAAK8jO,cAAgBtyN,KAAKy9E,KAAKhjC,EAAYjsD,KAAKksD,WAAalsD,KAAKujO,kBAClEvjO,KAAK6jO,eAAgB,IAAU7jO,KAAK4Y,OAAO,IAAyB,KAAO,GAC3E5Y,KAAK+jO,mBAAoB,EACzB/jO,KAAKgkO,iCAAkC,EAClChkO,KAAKmjO,wBACNnjO,KAAKmjO,sBAAwB,IAAIxI,GAAwB36N,KAAK4R,UAAW5R,KAAKikO,6BAA6B,GAC3GjkO,KAAKmjO,sBAAsBhI,gBAAgBrrN,IAAI,KAC3C,IAAIo0N,EACJ,IAAI,IAAUlkO,KAAK4Y,OAAO,IAItB,OAHA5Y,KAAK+jO,mBAAoB,EACzB/jO,KAAKmkO,oBACLnkO,KAAK+jO,mBAAoB,GAG7B,QAAUG,EAAqBlkO,KAAKqa,mBAAgB,IAAW6pN,GAA8BA,EAAmB1H,qBAAqBx8N,KAAKmjO,sBAAsB9M,4BAGpK,IAAUr2N,KAAK4Y,OAAO,KACtB5Y,KAAKokO,4BAELpkO,KAAKsuE,aAAc,IAAUtuE,KAAK4Y,OAAO,KACzC5Y,KAAKmjO,sBAAsB1iN,QAGnC2hN,mBAAoB,WAChB,OAAOpiO,KAAK+jO,mBAEhBE,0BAA2B,WACvB,IAAItgO,EAAO3D,KACPqkO,EAAkB,SAASx6N,GAC3B,OAAOy0N,GAA4Bz0N,EAAMlG,EAAK0W,cAElD,MAAO,CACH6xC,SAAU,WACN,OAAOvoD,EAAK4/N,kBAEhBhI,aAAc,WACV,IAAI+I,EACJ,OAAO,GAAc3gO,KAAU,QAAU2gO,EAAoB3gO,EAAK0W,mBAAgB,IAAWiqN,OAAoB,EAASA,EAAkB1hJ,kBAAkB/hE,OAAS,GAE3K26M,gBAAiB,WACb,OAAO73N,EAAK4gO,YAEhBv1I,gBAAiB,WACb,OAAIo2C,GAAgBzhI,GACTA,EAAKqrF,mBAET,IAAUrrF,EAAKiV,OAAO,IAAyBjV,EAAK4gO,WAAa5gO,EAAKqoF,OAAO5tF,OAAOimO,GAAiBzqO,QAEhHs1F,iBAAkB,WACd,OAAO,IAAUvrF,EAAKiV,OAAO,KAAyBjV,EAAKurF,oBAE/DjjC,UAAW,SAAS7qD,GAIhB,YAHI,IAAWA,IACXuC,EAAKmgO,cAAgB1iO,GAElBuC,EAAKmgO,eAEhBz5N,UAAW,WACP,OAAO1G,EAAK0G,aAEhBokF,UAAW,WACP,IAAIA,EAAYj9E,KAAKy9E,KAAKjvF,KAAKgvF,kBAAoBhvF,KAAKksD,YACxD,OAAOuiC,GAAwB,GAEnChuE,KAAM,WACE9c,EAAKw/N,sBAAsBl3K,aAAejsD,KAAKyuF,cAC/C9qF,EAAKmgO,cAAgB9jO,KAAKyuF,YAAc,EACxC9qF,EAAKw/N,sBAAsBl3K,UAAUtoD,EAAKmgO,iBAEzC9jO,KAAKuK,QAAQ3Q,QAAUoG,KAAKgvF,mBAGjCrrF,EAAKw/N,sBAAsBnE,kBAAkBz9K,IACzCA,EAASA,GAAU,GACnBA,EAAOsgB,WAAatgB,EAAOsgB,YAAc,UACzCtgB,EAAOh3C,MAAQg3C,EAAOh3C,OAAS5G,EAAKkgO,cACpClgO,EAAKkgO,cAAc3iO,QAAQ,CAAC2I,EAAMzI,KAC9ByI,EAAK2wD,SAAWp5D,IAEpBuC,EAAK20F,aAAa/2C,MAG1Bk3K,cAAe,aACf3sI,WAAY,WACR,OAAO9rF,KAAKuK,OAAM,GAAM3Q,QAE5B0+N,aAAc,SAAS/tN,EAAO6H,EAAOg1E,GACjC,OAAOg3I,GAAc7zN,EAAO6H,EAAOg1E,EAAS,CAACv9E,EAAM26N,EAAiBp9I,IAC5Dv9E,EAAKsT,SACEqnN,IAAoBp9I,EAE3Bo9I,GAAmBp9I,GACXv9E,EAAKsT,SAEVknN,EAAgBx6N,KAG/BU,MAAO,SAASk6N,GACZ,IAAIxlO,EAAS0E,EAAKqoF,OAClB,GAAIroF,EAAKiV,OAAO,IAAwB,CACpC,IAAIwB,EAAazW,EAAKyW,aAClBi9M,EAAoB,OAASj9M,QAAc,IAAWA,OAAa,EAASA,EAAWi9M,oBACvFC,EAAQD,EAAoBA,EAAkBC,MAAQ,EACtDsL,EAAcj/N,EAAK4/N,iBACnB1iN,EAAOld,EAAKmgO,cAAgBlB,EAActL,EAC1C12M,EAAOgiN,EACX,GAAI/hN,EAAO,EACP,MAAO,GAEPA,IACAA,EAAO7gB,KAAKs4N,aAAar5N,EAAQ4hB,GACjC5hB,EAASA,EAAO+U,MAAM6M,IAEtBD,IACAA,EAAO5gB,KAAKs4N,aAAar5N,EAAQ2hB,GACjC3hB,EAASA,EAAO+U,MAAM,EAAG4M,IAGjC,OAAO6jN,EAAgBxlO,EAAOb,OAAOimO,GAAmBplO,GAE5Dm5N,cAAe,SAAS7tN,GAIpB,OAHIA,IAAS,IAAU5G,EAAKiV,OAAO,MAC/BjV,EAAKkgO,cAAgBt5N,GAElB5G,EAAKkgO,eAEhB1K,UAAW,aACXwC,iBAAkB,SAAS/3N,GACvB,IAAIwW,EAAazW,EAAKyW,aACtB,OAAI,OAASA,QAAc,IAAWA,GAAcA,EAAW/P,cAAe,IAAU1G,EAAKiV,OAAO,IACzFslN,IAEH,OAAS9jN,QAAc,IAAWA,OAAa,EAASA,EAAW0kN,cAAgB,KAIvGjnI,iBAAkB,SAASt2C,GACvB,IAAIkxF,EAAQzyI,KAAK6zF,mBAEjB,GADA7zF,KAAKC,SAASnB,MAAMkB,KAAME,YACtB,IAAUF,KAAK4Y,OAAO,KAA0B,OAAcyG,sBAAsBrf,MAChF,WAAauhD,EAAOsgB,YAAc,IAAMtgB,EAAOszC,WAAWj7F,QAAU2nD,EAAOmjL,qBAC3EnjL,EAAOhB,QAAS,OAFxB,CAMA,IAAIijL,EAAuBxjO,KAAKmjO,sBAChC,GAAIK,EAAsB,CACtB,IAAIxvI,EAAeh0F,KAAK6jO,cACpB1G,EAAY,YAAc57K,EAAOsgB,YAActgB,EAAOy0C,aAC1D,GAAI,WAAaz0C,EAAOsgB,YAActgB,EAAOh3C,QAAUg3C,EAAOh3C,MAAM3Q,OAChE,OAEAujO,GAAa,WAAa57K,EAAOsgB,YAAc,YAActgB,EAAOsgB,YACpEtgB,EAAOhB,QAAS,EAChB48K,GAAaqG,EAAqBpmJ,OAAM,GACxComJ,EAAqB/iN,SAEjB,WAAa8gC,EAAOsgB,WACpBtgB,EAAOszC,WAAW3zF,QAAQ,CAACs5D,EAAUp5D,KACjC,IAAIygE,EAAatgB,EAAO2gB,YAAY9gE,GAChCo0F,EAAUj0C,EAAOh3C,MAAMnJ,GACvB,WAAaygE,EACbmyB,EAAax5B,GAAYg7B,EAClB,WAAa3zB,EACpBmyB,EAAa3vB,OAAO7J,EAAU,EAAGg7B,GAC1B,WAAa3zB,GACpBmyB,EAAa3vB,OAAO7J,EAAU,MAItCw5B,EAAa9yF,QAAQ,CAAC2I,EAAMzI,KACxB4yF,EAAa5yF,GAASpB,KAAKgsF,OAAO5qF,EAAQqxI,IAAUz+C,EAAa5yF,KAErEmgD,EAAOh3C,MAAQypF,GAEnBuqI,GAAkBvqI,OAI9BowI,0BAA2B,WACvB,IAAI/I,EAAiBr7N,KAAKmjO,sBAAsB7H,oBAC5CpvK,EAAWlsD,KAAKksD,WACpB,GAAImvK,IAAmBj2F,GAAgBplI,OAASksD,EAAW,EAAG,CAC1D,IAAIw2E,EAAa1iI,KAAKisD,YAAcC,EACpCmvK,EAAex6M,MAAQ6hH,EAE3B1iI,KAAKqjO,oBAAsBhI,GAE/BvnI,cAAe,SAASvpF,GACpB,IAAIo6N,EAAW3kO,KAAKC,SAASnB,MAAMkB,KAAME,WACzC,IAAI,IAAUF,KAAK4Y,OAAO,IAAwB,CAC9C,IAAIgsN,EAGAC,EACAC,EACAC,EAJA3qN,EAAapa,KAAKqa,YAClB2qN,EAAe,QAAUJ,EAAwB,OAASxqN,QAAc,IAAWA,OAAa,EAASA,EAAWwoE,kBAAkB/hE,YAAS,IAAW+jN,EAAwBA,EAAwB,EAI1MK,GAAmB,EACvBN,EAASzjO,QAAQ2I,IACb,IAAI8Q,EAAU9Q,EAAK8Q,QACfuqN,EAAgB5G,GAA4Bz0N,EAAMuQ,GAClD+qN,EAAkB,UAAYxqN,IAAYkqN,GAAiBK,GAAiB,UAAYJ,GAAeE,EAAe,GACtHI,EAAiB,SAAWzqN,GAAWuqN,IAAkBL,GAAiB,UAAYC,GAC1F,IAAKj7N,EAAKsT,UAAY,eAAU0nN,GAAgB,CAC5C,IAAIQ,EAAoBN,IAAiBE,GACpCE,IAAmBC,GAAoBC,GACxCL,KAGJG,GAAmBC,KACnBH,GAAmB,GAEvBp7N,EAAKmuF,UAAYgtI,EACjBH,EAAgBK,EAChBJ,EAAcnqN,EACdoqN,EAAel7N,EAAKsT,WAG5B,OAAOwnN,GAEX/sI,mBAAoB,SAASrtF,GAEzB,GADAvK,KAAKukO,WAAah6N,EAAMnM,OAAOyL,GAAQy0N,GAA4Bz0N,EAAM7J,KAAKqa,cAAczgB,OACxF,eAAUoG,KAAKqjO,qBAAsB,CACrCrjO,KAAKokO,4BACL,IAAInlO,EAASsL,EAEb,GADAvK,KAAK4jO,UAAYr5N,EACbA,EAAM3Q,OAAQ,CACd,IACI0rO,mBAAoBA,GACpBtlO,KAAKsjO,mBAAkB,GACvBziN,EAAOtW,EAAM,GAAGytF,UAAYstI,EAC5B1kN,EAAO5gB,KAAKqjO,oBAAoBziN,KACpC3hB,EAASsL,EAAMnM,OAAOvQ,IAClB,IAAI03O,EAAkB13O,EAAGsvB,UAAYtvB,EAAGmqG,WAAan3E,EAAO,EACxD2kN,EAAsB33O,EAAGsvB,UAAYtvB,EAAGmqG,YAAcn3E,GAAQ,IAAMD,EACpE6kN,EAA0B53O,EAAGmqG,WAAan3E,GAAQ0kN,EAClDG,EAAqB73O,EAAGmqG,UAAYn3E,EAAOD,GAAQ4kN,EACvD,OAAOC,GAA2BC,IAG1C,OAAOzmO,EAEX,OAAOe,KAAKC,SAASnB,MAAMkB,KAAME,YAErCs0F,aAAc,SAASjzC,GACnB,IAAI59C,EAAO3D,KACPuK,EAAQg3C,EAAOh3C,MACfs3D,EAAatgB,EAAOsgB,WACpBw2J,EAAc92K,EAAO82K,YACzB,GAAIA,EAAa,CACb,IAAIjxI,EAAU,YAAcvlB,EAC5Bw2J,EAAc+F,GAAcz6N,EAAKqoF,OAAQqsI,EAAajxI,GAAS,SAAUv9E,EAAM26N,GAC3E,MAAO,SAAW36N,EAAK8Q,UAAY9Q,EAAKsT,UAAY,UAAYtT,EAAK8Q,UAAYhX,EAAK0W,YAAYskH,qBAAqB90H,EAAKzF,OAASogO,MAEzIjjL,EAAO82K,YAAcA,EAEzB,OAAQx2J,GACJ,IAAK,UACDl+D,EAAKqoF,OAAOrpE,QAAQ7jB,MAAM6E,EAAKqoF,OAAQzhF,GACnC8tN,GACA10N,EAAKqoF,OAAO3nB,QAAQg0J,GAExB,MACJ,IAAK,SACD10N,EAAKqoF,OAAO/oF,KAAKnE,MAAM6E,EAAKqoF,OAAQzhF,GAChC8tN,GACA10N,EAAKqoF,OAAO3nB,OAAO,EAAGg0J,GAE1B,MACJ,QACI10N,EAAK1D,SAASshD,KAG1Bh3C,MAAO,SAASu8K,GACZ,OAAOA,EAAW9mL,KAAK4jO,WAAa5jO,KAAKgsF,OAAShsF,KAAK6jO,eAAiB7jO,KAAKgsF,QAEjF6H,iBAAkB,WACd,IAAI4+C,EAAQ,EACZ,GAAIzyI,KAAK4Y,OAAO,IAAwB,CACpC,IAAIo7E,EAAeh0F,KAAK6jO,cACpB7vI,GAAgBA,EAAa,KAC7By+C,EAAQzyI,KAAKgsF,OAAO1tF,QAAQ01F,EAAa,KAGjD,OAAOy+C,EAAQ,EAAI,EAAIA,GAE3B/6C,kBAAmB,SAASiuI,GACxB,IAAIvpN,EAAS,EACThC,EAAapa,KAAKoa,aAClBopN,EAAuBxjO,KAAKmjO,sBAC5BlE,GAAU,IAAUj/N,KAAK4Y,OAAO,IAChC67G,EAAgB2Q,GAAgBplI,MACpC,GAAIwjO,IAAyBmC,EACzB,GAAI1G,GAAW,eAAUj/N,KAAKqjO,qBAAsB,CAChD,IACIiC,mBAAoBA,EACpBr5K,UAAWA,GACXjsD,KAAKsjO,mBAAkB,GACvB/4N,EAAQvK,KAAKuK,OAAM,GAEvB,GADA6R,EAASq4G,EAAgBxoE,EAAYjsD,KAAKksD,WAAa,EACnD3hD,EAAM3Q,OAAQ,CACd,IAAIgsO,EAAiBr7N,EAAM,GAAGytF,UAC9B57E,GAAU7R,EAAMnM,OAAOyL,GAAQA,EAAKmuF,UAAY4tI,EAAiBN,GAAoB1rO,aAGzFwiB,EAASonN,EAAqBnhG,iBAAmBmhG,EAAqBt3K,gBAEvE,GAAIuoE,GAAiBwqG,GAAW7kN,EAAY,CAC/C,IAAIyrN,EACJzpN,EAAS,QAAUypN,EAAyBzrN,EAAWwoE,kBAAkB/hE,YAAS,IAAWglN,EAAyBA,EAAyB,OACxI,GAAc7lO,OAASoa,IAC9BgC,EAAShC,EAAWioH,iBAAmBjoH,EAAW8xC,YAEtD,OAAO9vC,GAEX66M,aAAc,WACV,IAAIuM,EAAuBxjO,KAAKmjO,sBAC5B/oN,EAAapa,KAAKqa,YAClBpb,EAAS,OAASukO,QAAwB,IAAWA,OAAuB,EAASA,EAAqBvM,aAAan4N,MAAM0kO,EAAsBtjO,WACvJ,OAAI,IAAUF,KAAK4Y,OAAO,IACf3Z,EAEJ,OAASmb,QAAc,IAAWA,OAAa,EAASA,EAAW68M,aAAan4N,MAAMsb,EAAYla,YAE7Gg9N,eAAgB,SAASrgN,EAAQ2kG,GAC7B,IAAIskH,EACJ,QAAUA,EAAwB9lO,KAAKmjO,6BAA0B,IAAW2C,GAAiCA,EAAsB5I,eAAergN,EAAQ2kG,IAE9J01G,iBAAkB,WACd,IAAIsM,EAAuBxjO,KAAKmjO,sBAC5B/oN,EAAapa,KAAKqa,YAClBpb,EAAS,OAASukO,QAAwB,IAAWA,OAAuB,EAASA,EAAqBtM,iBAAiBp4N,MAAM0kO,EAAsBtjO,WAC3J,OAAI,IAAUF,KAAK4Y,OAAO,IACf3Z,EAEJ,OAASmb,QAAc,IAAWA,OAAa,EAASA,EAAW88M,iBAAiBp4N,MAAMsb,EAAYla,YAEjH07N,oBAAqB,WACjB,IAAI4H,EAAuBxjO,KAAKmjO,sBAC5B/oN,EAAapa,KAAKqa,YACtBra,KAAKmwF,WAAY,EACbqzI,EACAA,EAAqB5H,oBAAoB98N,MAAM0kO,EAAsBtjO,WAErE,OAASka,QAAc,IAAWA,GAAsBA,EAAWwhN,oBAAoB98N,MAAMsb,EAAYla,YAGjHu8N,oBAAqB,SAASC,GAC1B,IAAI8G,EAAuBxjO,KAAKmjO,sBAC5B/oN,EAAapa,KAAKqa,YAClBpb,EAAS,OAASukO,QAAwB,IAAWA,OAAuB,EAASA,EAAqB/G,oBAAoBC,GAClI,OAAI,IAAU18N,KAAK4Y,OAAO,IACf3Z,EAEJ,OAASmb,QAAc,IAAWA,OAAa,EAASA,EAAWqiN,oBAAoBC,IAElGqJ,qBAAsB,WAClB,IAAIC,EAAehmO,KAAK4Y,OAAO,+BAC3B80C,EAAiB1tD,KAAK4Y,OAAO,4BACjC,GAAI,eAAUotN,GACV,OAAOA,EAEX,IAAI/O,EAAej3N,KAAKi3N,eACxB,OAAOvpK,EAAiB,EAAIupK,EAAeA,GAE/CqM,kBAAmB,SAAS2C,GACxB,IAAIC,EAAoBC,EACpBj6K,EAAWlsD,KAAKksD,WAChBmvK,EAAiBr7N,KAAKqjO,oBACtBzgJ,EAAkB,QAAUsjJ,EAAqBlmO,KAAKqa,mBAAgB,IAAW6rN,OAAqB,EAASA,EAAmBtjJ,kBAClIwjJ,GAAmB,OAASxjJ,QAAmB,IAAWA,OAAkB,EAASA,EAAgB32B,YAAc,EACnHo6K,GAAc,OAASzjJ,QAAmB,IAAWA,OAAkB,EAASA,EAAgBhiE,OAAS,EACzG07M,EAAkBt8N,KAAKmjO,sBAAsB7G,kBAC7CgK,EAAkBhK,EAAkBt8N,KAAK+lO,uBAAyB,EAClEQ,EAAqBjK,EAAkB,EAAIt8N,KAAK+lO,uBAChDh3I,GAAwB,QAAUo3I,EAAqBnmO,KAAKqa,mBAAgB,IAAW8rN,OAAqB,EAASA,EAAmBp3I,yBAA2B,EACnKy3I,EAAkBh1N,KAAK1I,IAAI,EAAGuyN,EAAex6M,KAAOylN,GACpDr6K,EAAYg6K,EAAeG,EAAkB50N,KAAKE,MAAMw6C,EAAWs6K,EAAkBt6K,EAAW,GAChGw2E,EAAaz2E,EAAYC,EACzBo5K,EAAqBjK,EAAex6M,KAAO6hH,EAC3C+jG,EAAcpL,EAAez6M,KAAO0kN,EAAqBiB,EAAqBx3I,EAC9EnuE,EAAOqlN,EAAeI,EAAaI,EACnCrH,EAAgB5tN,KAAKy9E,KAAK/iC,EAAWtrC,EAAOsrC,EAAW,GAC3D,MAAO,CACHD,UAAWA,EACXmzK,cAAe5tN,KAAK1I,IAAI,EAAGs2N,GAC3BkG,mBAAoB9zN,KAAK1I,IAAI,EAAGw8N,KAGxCoB,wBAAyB,SAASC,GAC9B,GAAK3mO,KAAKmjO,sBAAV,CAGA,GAAI,eAAUwD,GAGV,OAFA3mO,KAAK+wD,cAAcotK,GAAoBwI,QACvC3mO,KAAKowF,YAAY57B,OAGrB,IAAIoyK,EAAoB5mO,KAAKmjO,sBAAsB9M,uBAC/CsC,EAAennN,KAAKE,MAAMk1N,EAAoB5mO,KAAKksD,YACnDlsD,KAAKisD,cAAgB0sK,IACrB34N,KAAK+wD,cAAcotK,GAAoBxF,GACvC34N,KAAKiyF,YAAY,CACbpwB,WAAY,iBAIxBglK,sBAAuB,WACnB,IAAIC,EAAmB9mO,KAAKsjO,mBAAkB,IAE1Cr3K,UAAWA,EACXmzK,cAAeA,GACfp/N,KAAKsjO,oBACLyD,EAAmB/mO,KAAKgnO,kBAAkB/6K,GAC1ChtD,EAAS,KAOb,OANKe,KAAK4wF,aAAcm2I,GAAqB96K,IAAc66K,EAAiB76K,WAAamzK,IAAkB0H,EAAiB1H,gBACxHngO,EAAS,CACLgtD,UAAWA,EACXmzK,cAAeA,IAGhBngO,GAEX+nO,kBAAmB,SAAS/6K,GACxB,IAAIhtD,GAAS,EAIb,OAHI,GAAae,OAASA,KAAKkvF,oBAAsB,GAAclvF,SAC/Df,EAASgtD,EAAYjsD,KAAKksD,WAAalsD,KAAKgvF,mBAEzC/vF,GAEXgoO,WAAY,SAASC,EAAcC,GAC/B,IAAIC,EAAuBC,EACvB5yG,EAAgB2Q,GAAgBplI,MAChCo5F,EAAoBp5F,KAAKqa,YACzBitN,EAAgBtnO,KAAK6mO,wBACrBU,EAAuB,QAAUH,EAAwB,OAAShuI,QAAqB,IAAWA,OAAoB,EAASA,EAAkBgmI,uBAAoB,IAAWgI,EAAwBA,EAAwB,EAChOI,EAAwBxnO,KAAKksD,WAAaq7K,EAC1CZ,EAAmB,QAAUU,EAAwB,OAASjuI,QAAqB,IAAWA,OAAoB,EAASA,EAAkBntC,mBAAgB,IAAWo7K,EAAwBA,EAAwB,EACxNI,GAAuB,OAASH,QAAiB,IAAWA,OAAgB,EAASA,EAAcr7K,aAAe06K,EAClHe,EAAwB,GAAa1nO,OAASA,KAAKgvF,kBAAoBw4I,EACvEG,EAAgB,YAAc3nO,KAAK4Y,OAAO,uBAC1CgvN,GAAsB,OAASN,QAAiB,IAAWA,OAAgB,EAASA,EAAcr7K,WAAa06K,EAC/G1nO,GAAS,EACb,IAAKm6F,GAAqBq7B,GAAiByyG,IAAiBS,GAAiBR,GAAoBS,GAAsBH,GAAuBC,GAC1I,OAAOzoO,EAKX,GAHIw1H,GAAiBz0H,KAAK4wF,aACtB5wF,KAAKgkO,iCAAkC,GAEvCvvG,GAAiB6yG,EAAe,CAChCroO,GAAS,EACTm6F,EAAkBntC,UAAUq7K,EAAcr7K,WAC1CmtC,EAAkBgmI,cAAckI,EAAclI,eAC9Cp/N,KAAK6wF,qBAAsB,EAC3B7wF,KAAKq4F,uBAAwB,EAC7B,IAAIwvI,EAAmB7nO,KAAK+jO,kBAC5B/jO,KAAKygB,OAAOoiE,OAAO,KACf7iF,KAAK6wF,yBAAsB,EAC3B7wF,KAAKq4F,2BAAwB,IAC9Bh6E,KAAK,KACJ,IAAIqqE,EAAa1oF,KAAKyuF,YAAc,GAAKzuF,KAAKisD,cAAgBjsD,KAAKyuF,YAAc,GAChFo5I,GAAoBn/I,IAAe1oF,KAAK0mO,0BACrC1mO,KAAKgkO,kCACLhkO,KAAKgkO,iCAAkC,EACvChkO,KAAKmkO,aAAa,CACd2D,uBAAuB,OAKvC,OAAO7oO,GAEXklO,aAAc,SAASxzJ,GACnB,IACIm3J,sBAAuBA,EACvBZ,aAAcA,EACda,oBAAqBA,GACrB,OAASp3J,QAAU,IAAWA,EAASA,EAAS,GAChD8jD,EAAgB2Q,GAAgBplI,MACpC,GAAIy0H,GAAiB,OAAcp1G,sBAAsBrf,MAAO,CAC5DA,KAAKokO,4BACL,IAAI4D,EAAsBhoO,KAAKinO,WAAWC,GAAea,GACpDC,GAAyBhoO,KAAK4wF,YAAcs2I,GAAkBY,GAC/D9nO,KAAKiyF,YAAY,CACb/4C,oBAAoB,EACpBk/C,sBAAsB,EACtBL,wBAAwB,EACxB2sI,oBAAoB,MAKpC/E,eAAgB,WACZ,IAAIsI,EAAuBC,EACvBjR,EAAej3N,KAAKi3N,eACpBn1H,EAAY9hG,KAAKuK,QAAQ3Q,OACzBmuO,EAAsB9Q,EAAen1H,EACrCqmI,EAAc,QAAUF,EAAwB,QAAUC,EAAyBloO,KAAKqjO,2BAAwB,IAAW6E,OAAyB,EAASA,EAAuBtnN,YAAS,IAAWqnN,EAAwBA,EAAwB,EACxPzE,EAAuBxjO,KAAKmjO,sBAC5BiF,EAAU,OAAS5E,QAAwB,IAAWA,OAAuB,EAASA,EAAqBlI,oBAAoB16M,MAClImnN,GAAuBI,EAAcC,KAAapoO,KAAKmwF,WAAa2R,GAAa9hG,KAAKmkO,aAAa,CAChG+C,cAAc,EACda,oBAAqBA,KAG7BzF,WAAY,WACR,IAAI,IAAUtiO,KAAK4Y,OAAO,IAA1B,CAGA,IAAI4qN,EAAuBxjO,KAAKmjO,sBAChCK,GAAwBA,EAAqBlB,aAC7C,IAAIloN,EAAapa,KAAKqa,YACtB,OAAOD,GAAcA,EAAWkoN,eAEpCrG,YAAa,WACT,IAAIuH,EAAuBxjO,KAAKmjO,sBAChC,GAAIK,EACA,OAAOA,EAAqBvH,YAAYn9N,MAAM0kO,EAAsBtjO,WAExE,IAAIka,EAAapa,KAAKqa,YACtB,OAAOD,GAAcA,EAAW6hN,YAAYn9N,MAAMsb,EAAYla,YAElEq3N,aAAc,WACV,IAAIiM,EAAuBxjO,KAAKmjO,sBAChC,GAAIK,EACA,OAAOA,EAAqBjM,aAAaz4N,MAAM0kO,EAAsBtjO,WAEzE,IAAIka,EAAapa,KAAKqa,YACtB,OAAOD,GAAcA,EAAWm9M,aAAaz4N,MAAMsb,EAAYla,YAEnEi3N,iBAAkB,WACd,IAAIqM,EAAuBxjO,KAAKmjO,sBAChC,GAAIK,EACA,OAAOA,EAAqBrM,iBAAiBr4N,MAAM0kO,EAAsBtjO,WAE7E,IAAIka,EAAapa,KAAKqa,YACtB,OAAOD,GAAcA,EAAW+8M,iBAAiBr4N,MAAMsb,EAAYla,YAEvEwhF,QAAS,SAAS5rE,GACd,IAAIsE,EAAapa,KAAKqa,YAItB,OAHID,GAActE,GAAWA,EAAQ2K,MAAQ,GAAazgB,OACtDoa,EAAWmwE,yBAERvqF,KAAKC,SAASnB,MAAMkB,KAAME,YAErCiyD,QAAS,WACL,IAAIqxK,EAAuBxjO,KAAKmjO,sBAChCK,GAAwBA,EAAqBrxK,UAC7CnyD,KAAKC,SAASnB,MAAMkB,KAAME,YAE9BmoO,aAAc,WACV,IAAIC,EACJ,OAAO,QAAUA,EAAyBtoO,KAAKqjO,2BAAwB,IAAWiF,OAAyB,EAASA,EAAuBznN,MAE/I0nN,gBAAiB,WACb,IAAIlN,EAAiBr7N,KAAKqjO,oBAC1B,OAAOhI,GAAkBA,EAAex6M,KAAOw6M,EAAez6M,MAElEy2M,kBAAmB,WACf,IAAImM,EAAuBxjO,KAAKmjO,sBAChC,GAAIK,EACA,OAAOA,EAAqBnM,kBAAkBv4N,MAAM0kO,EAAsBtjO,WAE9E,IAAIka,EAAapa,KAAKqa,YACtB,OAAO,OAASD,QAAc,IAAWA,OAAa,EAASA,EAAWi9M,kBAAkBv4N,MAAMsb,EAAYla,YAElH+rD,UAAW,SAASy4H,GAChB,IAIY8mB,EAJR/2E,EAAgB2Q,GAAgBplI,MAChCwjO,EAAuBxjO,KAAKmjO,sBAChC,IAAI,IAAUnjO,KAAK4Y,OAAO,KAA0B67G,GAAiB+uG,QAC7D,IAAW9+C,EAEX,OAAO,QAAU8mB,EAAexrM,KAAK4Y,OAAOulN,WAAwB,IAAW3yB,EAAeA,EAAe,EAGrH,OAAOxrM,KAAKC,SAASnB,MAAMkB,KAAME,YAErCo4F,aAAc,SAAS10F,GACnB5D,KAAKC,SAASnB,MAAMkB,KAAME,WAC1B,IACIkmF,eAAgBA,GAChBxiF,EACJ,IAAI,IAAU5D,KAAK4Y,OAAO,KAA0BwsH,GAAgBplI,OAASomF,EAAgB,CACzF,IACIE,WAAYA,EACZr6B,UAAWA,GACXm6B,EACAxiF,EAAEs0F,gBAAkB5R,GAAcr6B,GAClCjsD,KAAK0mO,wBAAwB1mO,KAAKqa,YAAY4xC,eAI1DgkC,sBAAuB,SAASh1C,GAC5B,IAAIh8C,EAASe,KAAKC,SAASnB,MAAMkB,KAAME,WAIvC,OAHI,IAAUF,KAAK4Y,OAAO,KAA0BwsH,GAAgBplI,QAChEf,EAASe,KAAKi7C,MAEXh8C,GAEXiZ,QAAS,WACL,OAAO,IAAUlY,KAAK4Y,OAAO,KAA0B5Y,KAAKuK,OAAM,GAAM3Q,OAASoG,KAAKC,SAASD,KAAME,YAEzG06F,iBAAkB,WACd,IAAI37F,GAAS,EACb,IAAI,IAAUe,KAAK4Y,OAAO,KAA0BwsH,GAAgBplI,MAAO,CACvE,IACIisD,UAAWA,EACXmzK,cAAeA,GACfp/N,KAAKsjO,mBAAkB,GACvB70I,EAAYzuF,KAAKyuF,YACrBxvF,EAASgtD,EAAYmzK,GAAiB3wI,OAEtCxvF,EAASe,KAAKC,SAASnB,MAAMkB,KAAME,WAEvC,OAAOjB,GAEXm+E,MAAO,WACHp9E,KAAKukO,WAAa,EAClBvkO,KAAK4jO,UAAY,KACjB5jO,KAAKC,SAASnB,MAAMkB,KAAME,YAE9BmyF,aAAc,WACV,IAAIm2I,EACJ,QAAUA,EAAqBxoO,KAAKqa,mBAAgB,IAAWmuN,GAA8BA,EAAmBpJ,cAAc,GAC9Hp/N,KAAKC,SAASnB,MAAMkB,KAAME,aAKlC,OAFA,OAAc+Z,YAAYo2E,EAAS,yBACnC,OAAcp2E,YAAYo2E,EAAS,wBAC5BA,EAjrBL,GAmrBN6yB,SAAU,CACNqnB,0BAA2B,SAASD,GAChC,OAAO,kBAAKtqI,KAAKC,SAASnB,MAAMkB,KAAME,YAAYme,KAAKoqN,IACnD,IAAIC,EAAmB,GAAcp+F,KAAmB,IAAUA,EAAe1xH,OAAO,IACxF,IAAK6vN,GAAyBC,EAAkB,CAC5C,IAAI1rI,EAAastC,EAAepsC,gBAC5BlB,GACAstC,EAAetpB,uBAK/BvsD,OAAQ,WACJ,IAEIx1D,EAFA0E,EAAO3D,KACPC,EAAW0D,EAAK1D,SAEpB,GAAI,GAAc0D,IAAS,OAAc0b,sBAAsB1b,GAAO,CAClEy2D,aAAaz2D,EAAKglO,gBAClB,IAAI5kN,EAAO,IAAIhqB,KAAO4J,EAAKilO,UACvBnG,EAAgB9+N,EAAKiV,OAAO,2BAC5BjV,EAAKilO,WAAa7kN,EAAO0+M,GACzBxjO,EAAS,IAAI,cACb0E,EAAKglO,eAAiBjpM,YAAW,WAC7Bz/B,EAASnB,MAAM6E,GAAM0a,KAAKpf,EAAO0hB,SAASG,KAAK7hB,EAAO40B,QACtDlwB,EAAKilO,UAAY,IAAI7uO,OACrB0oO,GACJ9+N,EAAKilO,UAAY,IAAI7uO,OAErBkF,EAASgB,EAASnB,MAAM6E,GACpBA,EAAKsU,gBAAgBq2D,aACrB3qE,EAAKilO,UAAY,IAAI7uO,YAI7BkF,EAASgB,EAASnB,MAAM6E,GAE5B,OAAO1E,GAEXkzD,QAAS,WACLnyD,KAAKC,SAASnB,MAAMkB,KAAME,WAC1Bk6D,aAAap6D,KAAK2oO,mBAI9BjzK,MAAO,CACHt4C,SAAUkiN,MCv4CtB,EAASlpK,eAAe,mBAAoBosK,IAC5C,GAAkB/nO,OAAO+nO,GAAuB5sK,UAAUwjC,mBCK1D,IAAIyvI,GAAwB,GACjBC,GAA8B,CAACjyN,EAAUkyN,KAChD,IAIIC,EAJA9vN,EAAU,eAAE,mBAEZ0D,IAAKqsN,GACLpyN,EAASuF,SAEb,GAAI,eAAU2sN,GAAgB,CAC1B,GAAIA,EAAgBE,EAChB,OAAOA,EAAgBF,EAEvBC,EAAe,eAAe9vN,GAAW6vN,EAAgB7vN,EAAQsoG,gBAElE,CACH,IAAI0nH,EAAYD,EAAgB/vN,EAAQsoG,YACpC2nH,EAAe,eAAejwN,GAAWgwN,EAAY,eAAeryN,GACxEmyN,EAAex3N,KAAK1I,IAAIogO,EAAWC,GAEvC,OAAOH,EAAeH,I,aCXtBO,GAA0C,oCAC1C,GAAmB,aACvB,MAAM,WAAgB,GAClB,qBACI,OAAO,OAAA3uO,EAAA,WAAOisG,MAAMC,qBAAsB,CACtC0iI,YAAa,aACbjvL,SAAU,KACVkvL,aAAc,SAGtB,mBACItpO,KAAK0oG,aAAe1oG,KAAK4Y,OAAO,gBAC3B5Y,KAAK0oG,cACNhC,MAAM6iI,mBAGd,qBACIvpO,KAAKk4G,4BACLxR,MAAMkR,qBACN,IAAI3O,EAAOjpG,KAAK0oG,aAAaQ,aAAalpG,KAAK4Y,OAAO,eACtDqwF,GAAQjpG,KAAKkrG,aAAalrG,KAAKw0G,eAAevL,IAC9CjpG,KAAKwpO,mBAET,mBACIxpO,KAAKypO,kBAAoB,eAAE,SAASrxN,SAASpY,KAAKknG,kBAAkB/uF,SAASixN,IAEjF,qBACI,OAAO,OAAA3uO,EAAA,WAAOisG,MAAM4M,qBAAsB,CACtCm/G,aAAczyN,KAAK0pO,gCAAgCluN,KAAKxb,QAGhE,gCAAgC49F,GAC5B59F,KAAK2pO,eAAe/rI,GAExB,iBAAiBh6F,GACb8iG,MAAM4N,iBAAiB1wG,GACvB5D,KAAKu/L,mBAAkB,EAAO37L,EAAEy2D,eAEpC,oBACI,MAAO,eAAiBr6D,KAAK4Y,OAAO,eAExC,mBAAmBhV,GACf,IAAIgmO,EAAmB5pO,KAAK4Y,OAAO,gBACnCgxN,EAAiBhmO,GACjB8iG,MAAMmjI,mBAAmBjmO,GACzB5D,KAAKu/L,mBAAkB,EAAM37L,EAAEy2D,eAEnC,aAAaq7C,GACT11G,KAAKmwD,SAASnL,UAAU,CACpB8kL,SAAU,eAAiBp0H,GAC3Bq0H,QAAS/pO,OAEb0mG,MAAMgQ,aAAahB,GACnB11G,KAAKmwD,SAASlL,QAAQ,CAClB6kL,SAAU,eAAiBp0H,GAC3Bq0H,QAAS/pO,OAGjB,aAAa01G,GACT11G,KAAKmwD,SAASvL,SAAS,CACnBrE,QAAQ,EACRupL,SAAU,eAAiBp0H,GAC3Bq0H,QAAS/pO,OAEb0mG,MAAM+L,aAAaiD,GACnB11G,KAAKmwD,SAASxL,SAAS,CACnBmlL,SAAU,eAAiBp0H,GAC3Bq0H,QAAS/pO,OAGjB,eAAe49F,GACX,GAAK59F,KAAKypO,kBAAV,CAGA,IAAI92H,EAAW3yG,KAAKknG,iBAAiBlvC,SAAS,IAAIrwC,OAAO,KAAmBnL,GAAG,GAC3Ek5F,EAAY11G,KAAK4Y,OAAO,YAAYO,GACpCgsC,EAAW,CACXhsC,GAAIw5F,GAEJq3H,EAAkBpsI,EAAIz4C,SACtB8kL,EAAYD,EAAgBr6M,EAAEq7B,SAC9Bk/K,EAAYF,EAAgBp3N,EAAEo4C,SAC9Bm/K,EAAaz0H,EAAUt5F,SACvBguN,EAAa54N,KAAKyrF,MAAMktI,EAAWxtN,MACnCusN,EAAY13N,KAAKyrF,MAAMktI,EAAWvtN,KAClCytN,EAAY,eAAS30H,GACrB40H,EAAa,eAAU50H,GACvB60H,EAAe,eAAS53H,GACxB63H,EAAgB,eAAU73H,GAC9B3yG,KAAKypO,kBAAkBhtN,IAAI,UAAW,SACtC,eAASzc,KAAKypO,kBAAmBzpO,KAAKyqO,oBAAsBJ,EAAYE,EAAeF,EAAY,EAAIE,EAAe,GACtH,eAAUvqO,KAAKypO,kBAAmBzpO,KAAKyqO,oBAAsB,EAAIH,EAAaE,EAAgBF,EAAa,EAAIE,GAC3GxqO,KAAKyqO,oBACDR,EAAYf,EACR13N,KAAKyrF,MAAMitI,KAAeE,GAC1BjlL,EAAS/oC,OAAS,OAClB+oC,EAASiH,GAAKjH,EAASmH,GAAK,aAE5BnH,EAAS/oC,OAAS,QAClB+oC,EAASiH,GAAKjH,EAASmH,GAAK,cAGhC,eAAUtsD,KAAKypO,kBAAmB,GAC9Bj4N,KAAKyrF,MAAMitI,KAAeE,GAC1BjlL,EAAS/oC,OAAS,MAClB+oC,EAASiH,GAAKjH,EAASmH,GAAK,gBAE5BnH,EAAS/oC,OAAS,OAClB+oC,EAASiH,GAAKjH,EAASmH,GAAK,iBAG7B49K,EAAYE,EACf54N,KAAKyrF,MAAMgtI,KAAef,GAC1B/jL,EAAS/oC,OAAS,OAClB+oC,EAASiH,GAAKjH,EAASmH,GAAK,aAE5BnH,EAAS/oC,OAAS,QAClB+oC,EAASiH,GAAKjH,EAASmH,GAAK,eAEzB96C,KAAKyrF,MAAMgtI,KAAef,GACjC/jL,EAAS/oC,OAAS,MAClB+oC,EAASiH,GAAKjH,EAASmH,GAAK,cAE5BnH,EAAS/oC,OAAS,OAClB+oC,EAASiH,GAAKjH,EAASmH,GAAK,gBAEhC,QAAkB2qD,MAAMj3G,KAAKypO,kBAAmBtkL,IAEpD,0BACI,OAAOnlD,KAAK4Y,OAAO,YAEvB,mBACI,OAAO5Y,KAAKixG,SAASr4F,OAAO,WAEhC,oBACI,OAAO5Y,KAAKixG,SAASvjC,YAGd,UCtHX,GAAgB,UAChBg9J,GAAyB,GAAgB,YACzCC,GAA2B,GAAgB,cAC3C,GAAqB,GAAgB,QACrC,GAAgC,GAAgB,mBAChD,GAA8B,GAAqB,YACnD,GAAwB,kBACxBC,GAAyC,GAAwB,oBACjE,GAA0C,oCAC1C,GAAmB,aACnB,GAA0B,oBAC1B,GAAuB,iBACvBC,GAAwB,kBACxBC,GAAyB,GAAgB,iBACzCC,GAAqC,GAAgB,oBACrDC,GAAyCF,GAAyB,mBAClE,GAAW,KACX,GAAa,OACb,GAAa,OACb,GAAc,QACdG,GAAyB,cACzBC,GAAqB,WACrBC,GAAqB,WACrB,GAAgB,CAChB9vL,KAAM,GACND,KAAM,KAEN,GAAU,CAAC,mBAAoB,iBAAkB,kBAAmB,kBAAmB,oBAAqB,cAAe,qBAAsB,kBACrJ,MAAM,WAAa,GACf,qBACI,OAAO,OAAA3gD,EAAA,WAAOisG,MAAMC,qBAAsB,CACtC0iI,YAAa,aACbj5H,iBAAkB,OAClBg7H,qBAAsB,CAClBxpO,KAAM,UACNo2B,MAAO,CACHqjB,KAAM,GACND,KAAM,MAGdiwL,yBAAyB,EACzBC,iBAAkB,KAClBC,eAAgB,KAChBC,gBAAiB,KACjBC,gBAAiB,KACjBn+D,mBAAmB,IAG3B,yBACI5mE,MAAMqK,yBACN,OAAAt2G,EAAA,WAAOuF,KAAKgxG,oBAAqB,CAC7BntD,WAAW,EACX2kD,cAAc,IAGtB,gBACI,IAAIkjI,EAAmBhlI,MAAM0H,gBACzBu9H,EAAkB3rO,KAAK4rO,uBAC3B,OAAOF,EAAiB57N,IAAI67N,GAEhC,uBACI,IAAIlkK,EAAW,GACX2yF,EAAe,IAAIzyI,OAAO,IAC1BkkN,EAAiB7rO,KAAK8rO,UAAUlyO,QAAUoG,KAAK8rO,UAAU,GAI7D,OAHID,GAAkBA,EAAej6H,mBACjCnqC,EAAWokK,EAAej6H,iBAAiB95F,KAAKsiJ,IAE7C3yF,EAEX,eACI,OAAOznE,KAAK6W,WAEhB,oBACI,MAAO,eAAiB7W,KAAK4Y,OAAO,eAExC,WAAWoyC,GACP,IAGI+qE,EACAr8G,EACAqyN,EACAv6H,EANAC,EAASzxG,KAAK0qG,qBACdshI,EAAmBhsO,KAAKyqO,oBACxBr4H,EAAcpyG,KAAKuxG,gBAAe,GAKtC,OAAQvmD,GACJ,KAAK,GACDtxC,EAAYsyN,EAAmBf,GAAyBjrO,KAAKisO,6BAA6Bd,IAC1Fp1G,EAAWi2G,EAAmB55H,EAAcX,EAC5Cs6H,EAAmB/rO,KAAKksO,6BAA6BxyN,EAAWq8G,GAChEvkB,EAAau6H,IACb,MACJ,KAAK,GACDryN,EAAYsyN,EAAmBf,GAAyBjrO,KAAKisO,6BAA6Bf,IAC1Fn1G,EAAWi2G,EAAmB55H,EAAcX,EAC5Cs6H,EAAmB/rO,KAAKksO,6BAA6BxyN,EAAWq8G,GAChEvkB,EAAau6H,IACb,MACJ,KAAK,GACDryN,EAAYsyN,EAAmBhsO,KAAKisO,6BAA6Bf,IAAsBD,GACvFl1G,EAAWi2G,EAAmBv6H,EAASW,EACvC25H,EAAmB/rO,KAAKksO,6BAA6BxyN,EAAWq8G,GAChEvkB,EAAau6H,IACb,MACJ,KAAK,GACDryN,EAAYsyN,EAAmBhsO,KAAKisO,6BAA6Bd,IAAsBF,GACvFl1G,EAAWi2G,EAAmBv6H,EAASW,EACvC25H,EAAmB/rO,KAAKksO,6BAA6BxyN,EAAWq8G,GAChEvkB,EAAau6H,IACb,MACJ,QACI,OAAOrlI,MAAMyL,WAAWnnD,GAE5BwmD,GAAc,IAAMA,EAAW53G,QAC/BoG,KAAK4Y,OAAO,iBAAkB,eAAiB44F,IAGvD,6BAA6B93F,GACzB,IAAIyyN,EAAezyN,EAInB,OAHI1Z,KAAK4Y,OAAO,gBACZuzN,EAAezyN,IAAcyxN,GAAqBD,GAAqBC,IAEpEgB,EAEX,6BAA6BzyN,EAAWq8G,GACpC,IAAIjkE,EAAS,OACb,OAAQp4C,GACJ,KAAKuxN,GACIl1G,EAAS9+D,SAAS,MACnBnF,EAAS9xD,KAAKuqG,aAAa/uF,KAAKxb,KAAM+1H,IAE1C,MACJ,KAAKm1G,GACDp5K,EAAS9xD,KAAKgyG,UAAUx2F,KAAKxb,KAAM+1H,GACnC,MACJ,KAAKo1G,GACDr5K,EAAS9xD,KAAK8xG,UAAUt2F,KAAKxb,KAAM+1H,GAE3C,OAAOjkE,EAEX,SACI40C,MAAMS,SACNnnG,KAAK4Y,OAAO,kCAAoCwhD,aAAap6D,KAAKs+L,mBAEtE,mBAAmB/jJ,GACXA,IACKv6C,KAAKosO,iBACNpsO,KAAKqsO,yBAETrsO,KAAK6rH,qBAGb,uBACI,OAAO7rH,KAAK4Y,OAAO,sBAAwB,eAAiB5Y,KAAK4Y,OAAO,eAE5E,yBACI,IAAI0zN,EAAatsO,KAAK6W,WAAWiB,KAAK,MAAMyyD,QAAQvS,SAAS,MAAMA,SAAS,IAAIrwC,OAAO,KACvF3nB,KAAKosO,gBAAkBpsO,KAAKqsH,sBAAsBigH,GAAY,GAElE,oBACI,GAAKtsO,KAAKusO,uBAAV,CAGA,IAAIC,EAAiB,eAAcxsO,KAAK6W,YACxC7W,KAAKysO,oBAAoBzsO,KAAKosO,gBAAkBI,IAEpD,QACI9lI,MAAMiB,QACN3nG,KAAK8rO,UAAY,GAErB,eACI9rO,KAAKmwD,SAAW,GAChB,eAAK,GAAS,CAAC/uD,EAAO0wD,KAClB9xD,KAAKmwD,SAAS2B,GAAU9xD,KAAKiyD,sBAAsBH,KAG3D,cACI9xD,KAAK0sO,gBAAkB,KACvB1sO,KAAK6W,WAAWsB,SAAS,IACzBuuF,MAAM2C,cACNrpG,KAAKwzG,mBAAmBxzG,KAAK6W,YAC7B7W,KAAKsd,QAAQ,OAAQ,WAEzB,UACIopF,MAAMoM,UACN9yG,KAAK2sO,kBAET,yBAMI,OALA3sO,KAAK4sO,WAAa,IAAI,cAAO,eAAE,SAASz0N,SAAS4yN,IAAqC,CAClFlvL,KAAM,OACNnI,oBAAoB,EACpBoI,QAAS97C,KAAK6sO,gBAAgBrxN,KAAKxb,QAEhCA,KAAK4sO,WAAW/1N,WAE3B,gBAAgBqpB,GACR,eAAcA,KACdA,GAASlgC,KAAKixG,SAASr4F,OAAO,YAElC5Y,KAAKixG,SAASr4F,OAAO,UAAWsnB,GAChClgC,KAAK8sO,4BAA4B5sM,GAErC,4BAA4BA,GACxBlgC,KAAK4sO,YAAc5sO,KAAK4sO,WAAW/1N,WAAW09C,YAAYs2K,GAAuB3qM,GAErF,oBAAoBA,GAChB,IAAI6sM,EAAsB/sO,KAAK6W,WAAWiB,KAAK,IAAI6P,OAAOgjN,KACtDqC,EAAoBhtO,KAAK6W,WAAWiB,KAAK,IAAI6P,OAAOmjN,KACpD5qM,EACAlgC,KAAKitO,uBAELjtO,KAAKktO,WAAaltO,KAAKktO,UAAUhmG,cACjClnI,KAAKixG,UAAYjxG,KAAK6sO,gBAAgB3sM,IAE1C6sM,EAAoBztI,QAAQp/D,GAC5B8sM,EAAkB1tI,OAAOp/D,GAE7B,oBACSlgC,KAAKmtO,sBAGVntO,KAAKysO,qBAAoB,GACzBzsO,KAAKmtO,oBAAoBx0N,SACzB3Y,KAAKmtO,oBAAsB,KAC3BntO,KAAKktO,UAAY,KACjBltO,KAAK4sO,WAAa,KAClB5sO,KAAKixG,SAAW,MAEpB,0BAA0BrtG,GACtB5D,KAAKmwD,SAASugB,YAAY9sE,GACrBA,EAAEqlG,KAAKjxC,SAASp+D,QACjBoG,KAAK6sO,iBAAgB,GAG7B,6BACI,IAAI10C,EAAMn4L,KAAK4Y,OAAO,cAClBusC,EAAWgzI,EAAM,QAAU,OAC/B,MAAO,CACHi1C,iCAAiC,EACjC5oL,UAAW,IAAMskL,GAA4B9oO,KAAK6W,YAClDotC,gBAAgB,EAChBnrC,SAAS,EACT+qC,WAAW,EACXU,oBAAoB,EACpBI,SAAU,KACN3kD,KAAK8sO,6BAA4B,IAErCjwN,OAAQ,OACRynC,mBAAoB1gD,IAAM,eAAEA,EAAEsS,QAAQiI,QAAQ,IAAIwJ,OAAOojN,KAAqCnxO,OAC9FurD,SAAU,CACN9rC,UAAW,UACX+yC,GAAI,UAAYjH,EAChBmH,GAAI,OAASnH,EACbhsC,GAAInZ,KAAK4sO,WAAW/1N,aAIhC,sBACI,IAAIw2N,EAAc,GASlB,OARA,eAAK,CAAC,aAAc,QAAS,YAAa,qBAAsB,YAAa,aAAc,WAAY,cAAe,cAAe,oBAAqB,OAAQ,oBAAqB,YAAa,QAAS,eAAgB,eAAgB,gBAAiB,WAAY,WAAY,CAACtuO,EAAG6Z,KACtRy0N,EAAYz0N,GAAU5Y,KAAK4Y,OAAOA,KAEtC,eAAK,CAAC,oBAAqB,qBAAsB,kBAAmB,CAAC7Z,EAAGuyD,KACpE+7K,EAAY/7K,GAAc1tD,IACtB5D,KAAKmwD,SAASmB,GAAY1tD,MAG3B,OAAAnJ,EAAA,WAAO4yO,EAAa,CACvBjzN,WAAYpa,KAAK0xF,gBACjByjG,mBAAoBn1L,KAAK4Y,OAAO,aAChC83D,YAAa1wE,KAAKstO,0BAA0B9xN,KAAKxb,MACjDutO,eAAgB3pO,IACZ5D,KAAKixG,SAASsc,UACdvtH,KAAKmwD,SAASo7K,eAAe3nO,IAEjC4pO,gBAAiB5pO,IACb5D,KAAKixG,SAASsc,UACdvtH,KAAKmwD,SAASs7K,gBAAgB7nO,IAElC+4H,sBAAsB,EACtB91B,cAAe7mG,KAAK4Y,OAAO,iBAC3B60N,YAAa,UAGrB,kBACI,GAAKztO,KAAKusO,uBAAV,CAGAvsO,KAAKmtO,oBAAsB,eAAE,SAASh1N,SAAS2yN,IAC/C,IAAI4C,EAAa1tO,KAAK2tO,yBACtB3tO,KAAKktO,UAAYltO,KAAKiZ,iBAAiB,eAAE,SAAU,cAAUjZ,KAAK4tO,uBAClE5tO,KAAKixG,SAAWjxG,KAAKiZ,iBAAiB,eAAE,SAAU,QAASjZ,KAAK6tO,8BAChE7tO,KAAKixG,SAASvjC,WAAW3zC,OAAO/5B,KAAKktO,UAAUr2N,YAAYsB,SAAS2yN,IAAwB3yN,SAASnY,KAAK4Y,OAAO,aACjH5Y,KAAKixG,SAASjF,WAAW7zF,SAAS6yN,IAClChrO,KAAKmtO,oBAAoBpzM,OAAO2zM,GAChC1tO,KAAKmtO,oBAAoBpzM,OAAO/5B,KAAKixG,SAASp6F,YAC9C7W,KAAK6W,WAAWkjB,OAAO/5B,KAAKmtO,qBAC5BntO,KAAKqsO,yBACLrsO,KAAK6rH,qBAET,UAAUiiH,GACN,IAAI91M,EAAQh4B,KAAK4Y,OAAO,wBAAwBof,MAChD,OAAK,eAAUA,GAGJ,eAASA,GAASA,EAAM81M,GAAa91M,EAFrC,GAAc81M,GAK7B,iBAAiBlqO,GACb,OAAO8iG,MAAMqyC,iBAAiBn1I,IAAK5D,KAAK0sO,iBAE5C,mBACI,IAAI1gI,EAAW,eAAE,SAEjB,OADAA,EAAS5zF,SAASpY,KAAK6W,YAAYsB,SAASnY,KAAKyqO,oBAAsBE,GAA2BD,IAC3FhkI,MAAM8E,iBAAiBQ,GAElC,oBAAoB/C,EAAMmD,GACtB,IAAI29H,EAAU/pO,KAAK+tO,eAAe9kI,EAAMmD,GAGxC,OAFApsG,KAAK8rO,UAAU7oO,KAAK8mO,GACpB/pO,KAAKguO,qBAAqB5hI,GACnB29H,EAEX,wBACI,OAAOrjI,MAAMunI,wBAAwBtmN,OAAO3nB,KAAK0sO,iBAErD,eAAezjI,EAAMyM,GACjB,IAAIw4H,EAAoB,eAAE,SAAS/1N,SAAS,IAAuBC,SAASs9F,GACxEnrG,EAAQvK,KAAKw0G,eAAevL,GAC5BklI,EAAUnuO,KAAKiZ,iBAAiBi1N,EAAmB,GAAS,OAAAzzO,EAAA,WAAOuF,KAAKouO,qBAAsB,CAC9F1lI,aAAc1oG,KAAK0oG,aACnB2lI,WAAYplI,EAAKJ,eAAe/tG,IAChCyP,MAAOA,EACP++N,aAActpO,KAAKsuO,eAAe9yN,KAAKxb,MACvCmlD,SAAUnlD,KAAKuuO,mBAAmB74H,MAGtC,OADA11G,KAAKwuO,uBAAuB94H,EAAWy4H,GAChCA,EAEX,qBACI,IAAIM,EAAiB,eAAE,SACnBzC,EAAmBhsO,KAAKyqO,oBAC5B,MAAO,CACH/jH,aAAc1mH,KAAK4Y,OAAO,gBAC1B1C,OAAQu4N,EACRpF,YAAarpO,KAAK4Y,OAAO,eACzBkuG,cAAe9mH,KAAK4Y,OAAO,iBAC3BgjC,SAAU57C,KAAK4Y,OAAO,YACtBiuF,cAAe7mG,KAAK4Y,OAAO,iBAC3Bk9B,kBAAmB91C,KAAK4Y,OAAO,qBAC/B86B,mBAAoB1zC,KAAK4Y,OAAO,sBAChC68B,kBAAmBz1C,KAAK4Y,OAAO,qBAC/BirC,UAAW7jD,KAAK4Y,OAAO,aACvBguF,gBAAiB5mG,KAAK4Y,OAAO,mBAC7BuI,YAAanhB,KAAK4Y,OAAO,eACzB81N,aAAc1uO,KAAK4Y,OAAO,gBAC1B+1N,aAAc3uO,KAAK4Y,OAAO,gBAC1Bg2N,UAAW5uO,KAAK4Y,OAAO,aACvB+xJ,qBAAsB/mK,IACbA,EAAEgO,UAAUgH,OAAO,YAGxB5Y,KAAK4Y,OAAO,iBAAkBhV,EAAEgO,UAAUgH,OAAO,oBAErDigC,mBAAoB74C,KAAK6uO,qCAAqCrzN,KAAKxb,MACnE0wE,YAAa1wE,KAAK8uO,8BAA8BtzN,KAAKxb,MACrDknH,eAAgBlnH,KAAK+uO,iCAAiCvzN,KAAKxb,MAC3DqwG,gBAAiB27H,EAAmB,KAAOhsO,KAAKgvO,mBAAmBxzN,KAAKxb,KAAMmrO,IAC9E76H,eAAgB07H,EAAmB,KAAOhsO,KAAKgvO,mBAAmBxzN,KAAKxb,KAAMkrO,IAC7E36H,mBAAoBvwG,KAAKgvO,mBAAmBxzN,KAAKxb,KAAMgsO,EAAmBb,GAAqB,MAC/F36H,oBAAqBw7H,EAAmBhsO,KAAKgvO,mBAAmBxzN,KAAKxb,KAAMkrO,IAAsB,MAGzG,2BACI,IAAKlrO,KAAK2pG,mBACN,MAAO,UAEX,IAAIlc,EAAcztF,KAAK4Y,OAAO,wBAC9B,OAAO,eAAS60E,GAAeA,EAAY7rF,KAAO6rF,EAEtD,mBAAmBhjC,GACf,IAAIgnD,EAASzxG,KAAK0qG,qBACd5I,EAAY2P,EAAO73G,OACnBq1O,EAAex9H,EAAOrzG,OAAO,IAAIupB,OAAO,KAA8BnL,GAAG,GACzEgoF,EAAYiN,EAAOrwG,MAAM6tO,GAC7BjvO,KAAKyyG,aAAazyG,KAAK0sO,iBACvBloI,GAAa/5C,IAAc0gL,IAAsB,EAAI,EACjD3mI,GAAa1C,EACb0C,EAAY,EACLA,EAAY,IACnBA,EAAY1C,EAAY,GAE5B,IAAIs9F,EAAW3tF,EAAOj1F,GAAGgoF,GACzBxkG,KAAK4Y,OAAO,iBAAkB,eAAiBwmL,IAEnD,qCAAqC/vJ,GACjC,IAAIm5D,EAAen5D,EAAKo/D,WAAW70G,QAAUy1C,EAAKo/D,WAAW,GACzDs7H,EAAU,GAAQpmI,YAAYt0D,EAAK33B,SACnCmhC,EAAqB74C,KAAKmwD,SAAStX,mBACvCA,EAAmBxJ,GACnBm5D,GAAgBxoG,KAAKkvO,0BAA0B1mI,EAAa,GAAIuhI,GAChE/pO,KAAKmvO,sBACLnvO,KAAKgxD,8BAA8B,eAAgBw3C,GAEvD,0BAA0B3+F,EAAMulO,GAC5B,IAAIC,GAAoBnvO,UAAUtG,OAClC,eAAKoG,KAAK8rO,UAAW,CAAC1qO,EAAO2oO,KACzB,IAAIp3H,EAAWo3H,EAAQ7iI,iBACnBooI,GAAe38H,EAAS/kH,GAAGwhP,GAAiBA,EAAcloI,kBAC1D8vF,EAAgBrkF,EAAS76F,KAAK,IAAI6P,OAAO3nB,KAAKgtG,uBAClD,GAAIsiI,GAAet4C,EAAcp9L,QAAUy1O,EAAkB,CACzDr4C,EAAc3+K,YAAYrY,KAAKgtG,sBAC/B,IAAIuiI,EAAmBvvO,KAAK2uG,aAAaqoF,GACrCu4C,IACAA,EAAiB3gI,UAAW,GAEhCm7H,EAAQyF,yBAIpB,sBACI,IAAIC,EAAoBzvO,KAAK6W,WAAWiB,KAAK,IAAI6P,OAAO,KAAgC4iD,QAAQvS,WAAWA,WAAW55D,OAAO,IAAIupB,OAAO3nB,KAAKgtG,uBAC7I,GAAIyiI,EAAkB71O,OAAQ,CAC1B,IAAI81O,EAAuB1vO,KAAK2uG,aAAa8gI,GAC7CC,EAAqB9gI,UAAW,EAChC6gI,EAAkBp3N,YAAYrY,KAAKgtG,uBAG3C,8BAA8BppG,GAC1B5D,KAAKmwD,SAASugB,YAAY9sE,GAE9B,iCAAiCA,GAC7B5D,KAAKmwD,SAAS+2D,eAAetjH,GAEjC,uBAAuB8xG,EAAWq0H,GAC9B,IAAI4F,EAAyB5F,EAAQ6F,oBACjCC,EAAWF,EAAuB73N,KAAK,IAAI6P,OAAO,KAClDmoN,EAAwB,gBAAaC,GAAA,KAAe/vO,KAAKuyD,KAAO,YACpEw3K,EAAQnxN,OAAO,CACXosC,UAAWhlD,KAAKgwO,yBAAyBx0N,KAAKxb,KAAM01G,EAAWq0H,GAC/D9kL,QAASjlD,KAAKiwO,uBAAuBz0N,KAAKxb,KAAM01G,EAAWq0H,GAC3DnlL,SAAU5kD,KAAKkwO,wBAAwB10N,KAAKxb,KAAM01G,EAAWq0H,GAC7DplL,SAAU3kD,KAAKmwO,wBAAwB30N,KAAKxb,KAAM01G,EAAWq0H,KAEjE,eAAK8F,EAAU,CAACzuO,EAAO2oO,KACnB,OAAa94K,IAAI84K,EAAS+F,GAC1B,OAAahmO,GAAGigO,EAAS+F,EAAuB,KAAM9vO,KAAKowO,0BAA0B50N,KAAKxb,KAAM01G,MAGxG,yBAAyBA,EAAWq0H,GAChC,IAAIsG,EAAU36H,EAAU19C,SAAS,IAAIrwC,OAAOijN,KAC5C5qO,KAAKmwD,SAASm7K,iBAAiB,CAC3BxB,SAAU,eAAiBp0H,GAC3Bq0H,QAASA,IAEbsG,EAAQh1L,OACRq6D,EAAUv9F,SAAS,IAEvB,uBAAuBu9F,EAAWq0H,GAC9B/pO,KAAKmwD,SAASo7K,eAAe,CACzBzB,SAAU,eAAiBp0H,GAC3Bq0H,QAASA,IAGjB,wBAAwBr0H,EAAWq0H,EAASh/H,GACxC,IAAIslI,EAAU36H,EAAU19C,SAAS,IAAIrwC,OAAOijN,KACxCv7L,EAAO07D,EACX17D,EAAKy6L,SAAW,eAAiBp0H,GACjCrmE,EAAK06L,QAAUA,EACf/pO,KAAKmwD,SAASq7K,gBAAgBn8L,GAC9B07D,EAAY17D,EACP07D,EAAUxqD,SACPvgD,KAAK0sO,kBAAoB3C,IACzB/pO,KAAK0sO,gBAAkB,MAE3B2D,EAAQj1L,OACRs6D,EAAUr9F,YAAY,KAG9B,wBAAwBq9F,EAAWq0H,GAC/B/pO,KAAKmwD,SAASs7K,gBAAgB,CAC1B3B,SAAU,eAAiBp0H,GAC3Bq0H,QAASA,IAGjB,0BAA0Br0H,EAAW3K,GACjC,IAAI70F,EAAS,eAAE60F,EAAUulI,eAAe7qJ,QAAQ,IAAI99D,OAAO,KAAwB,GAC/EsyF,EAAcj6G,KAAKuwO,yBAAyB76H,GAAWk6H,oBAAoB,GAC3E5vO,KAAK4Y,OAAO,4BAA8B1C,IAAW+jG,IACrDj6G,KAAKsuO,iBACL5uM,WAAW1/B,KAAKwwO,yBAAyBh1N,KAAKxb,MAAOA,KAAKywO,UAAU,UAG5E,2BACI,GAAKzwO,KAAK0sO,gBAAV,CAGA,IAAIgE,EAAoB,eAAE1wO,KAAK0sO,gBAAgB71N,WAAWorE,SAAShrB,SAAS,IACxE05K,EAAuB3wO,KAAK0sO,gBAAgBkD,oBAAoB93N,KAAK,IAAI6P,OAAO,KAAuB/tB,OACvGg3O,EAA4B5wO,KAAK0sO,gBAAgBkD,oBAAoBlyO,IAAI,GAAGkpE,cAAc,UACzFgqK,GAA8BD,GAAyBD,GACxD1wO,KAAK0sO,gBAAgBtxL,QAG7B,yBAAyBs6D,GACrB,IAAKA,EACD,OAAO,EAEX,IAAI/C,EAAW+C,EAAU19C,SAAS,IAAIrwC,OAAO,KAC7C,OAAOgrF,EAAS/4G,QAAU,GAAQ+pG,YAAYgP,GAElD,mBAAmB+C,GACf,IAAIm7H,EAAmB7wO,KAAKyqO,oBACxBr6H,EAAmBpwG,KAAK4Y,OAAO,oBAAoB9a,cACnDue,EAAarc,KAAK4Y,OAAO,cACzBk+F,EAAkB,CAClBz9F,UAAW,OACXF,GAAIu8F,GAER,OAAQtF,GACJ,IAAK,YACD0G,EAAgB1qD,GAAK,WACrB0qD,EAAgBxqD,GAAKukL,EAAmB,cAAgB,YACxD,MACJ,IAAK,gBACD/5H,EAAgB1qD,GAAKykL,EAAmB,cAAgB,YACxD/5H,EAAgBxqD,GAAK,WACrB,MACJ,QACQukL,GACA/5H,EAAgB1qD,GAAK/vC,EAAa,eAAiB,cACnDy6F,EAAgBxqD,GAAKjwC,EAAa,YAAc,aAEhDy6F,EAAgB1qD,GAAK/vC,EAAa,WAAa,YAC/Cy6F,EAAgBxqD,GAAKjwC,EAAa,YAAc,YAG5D,OAAOy6F,EAEX,qBAAqB7a,GACjB,eAAE,SAAS7jF,SAAS6jF,GAAO9jF,SAASyyN,IAAwCxvL,OAEhF,wBAAwBx3C,GACpB,IAAI2tD,EAAU,eAAE3tD,EAAEsS,QACd46N,EAAev/K,EAAQpzC,QAAQne,KAAKouG,iBACpC0iI,EAAa75K,SAAS,4BACtBj3D,KAAK4Y,OAAO,iBAAkB,MAGlC8tF,MAAMqqI,wBAAwBntO,GAElC,mBAAmBA,GACf,IAAIotO,EAAqB,gBAAa12K,EAAA,KAAc28H,KAAMj3L,KAAKuyD,MAC3D0pC,EAAQj8F,KAAKkqG,2BAA2BtmG,GACxCqlG,EAAOjpG,KAAK0oG,aAAaC,cAAc3oG,KAAK2uG,aAAa1S,IACzDg1I,EAAoB,eAAUrtO,EAAEm5C,UAAY,IAAMn5C,EAAEm5C,UAAY,eAAUn5C,EAAEm5C,UAAY,IAAMn5C,EAAEstO,MACpG,IAAIlxO,KAAKmqG,gBAAgBlO,GAIzB,GADA,OAAahrC,IAAIgrC,EAAO+0I,GACnBhxO,KAAKmxO,aAAaloI,IAIvB,GAAI,YAAcjpG,KAAKoxO,6BAA+BH,EAAmB,CACrE,IAAIlH,EAAU/pO,KAAKqxO,qBAAqBp1I,GACxCj8F,KAAKsuO,iBACAvE,EAAQ/W,qBACT,OAAalpN,GAAGmyF,EAAO+0I,EAAoBhxO,KAAKsxO,sBAAsB91N,KAAKxb,OAC3EA,KAAKuxO,kBAAoBvxO,KAAKywO,UAAU,eAR5CzwO,KAAKuxO,kBAAoB7xM,WAAW1/B,KAAKwwO,yBAAyBh1N,KAAKxb,MAAOA,KAAKywO,UAAU,SAYrG,iBAAiBe,GACb,IAAIv1I,EAAQj8F,KAAKkqG,2BAA2BsnI,GACxClB,EAAgB,eAAEkB,EAASlB,eAC/B5pI,MAAM4N,iBAAiBk9H,GACvBxxO,KAAKsuO,iBACDtuO,KAAKmqG,gBAAgBlO,IAGrBq0I,EAAcr5K,SAAS,KAGvBj3D,KAAK4Y,OAAO,6BAA+B03N,EAAcr5K,SAAS,MAClEj3D,KAAKyxO,kBAAoB/xM,WAAW,KAChC1/B,KAAKwwO,4BACNxwO,KAAKywO,UAAU,UAG1B,sBACI,QAAKzwO,KAAK0sO,kBAGV1sO,KAAKyyG,aAAazyG,KAAK0sO,kBAChB,GAEX,aAAaziI,GACT,IAAI8/H,EAAU/pO,KAAKqxO,qBAAqBpnI,GACpCjqG,KAAK0sO,kBAAoB3C,GACzB/pO,KAAKitO,sBAELlD,IACA/pO,KAAKsuO,iBACLtuO,KAAK20D,QACLo1K,EAAQ1uL,OACRr7C,KAAK4Y,OAAO,iBAAkBmxN,EAAQnxN,OAAO,oBAEjD5Y,KAAK0sO,gBAAkB3C,EACvB/pO,KAAK0xO,iBAAmBznI,EAE5B,aAAa8/H,GACTA,GAAWA,EAAQ3uL,OACfp7C,KAAK0sO,kBAAoB3C,IACzB/pO,KAAK0sO,gBAAkB,MAE3B1sO,KAAK0xO,iBAAmB,KAE5B,sBAAsB9tO,GAClB,IAAIA,EAAE+tO,WAAY/tO,EAAE+tO,SAAS/3O,OAA7B,CAGA,IAAIqiG,EAAQ,eAAEr4F,EAAEy2D,eACX,eAAUr6D,KAAKuxO,qBAGpBvxO,KAAKsuO,iBACLtuO,KAAKuxO,kBAAoB7xM,WAAW,KAChC,IAAIqqM,EAAU/pO,KAAKqxO,qBAAqBp1I,GACpC8tI,IAAYA,EAAQ/W,oBACpBhzN,KAAKuqG,aAAatO,IAEvBj8F,KAAKywO,UAAU,WAEtB,iBACIr2K,aAAap6D,KAAKyxO,mBAClBr3K,aAAap6D,KAAKuxO,mBAEtB,qBAAqBtnI,EAAcp5B,GAC/B,IAAIk5J,EAAU/pO,KAAKuwO,yBAAyBtmI,GAC5C,GAAI8/H,EACA,OAAOA,EAEPl5J,EAAWA,GAAY7wE,KAAK2uG,aAAa1E,GACzC,IAAIhB,EAAOjpG,KAAK0oG,aAAaC,cAAc93B,GAC3C,OAAO7wE,KAAKmxO,aAAaloI,IAASjpG,KAAKw2G,oBAAoBvN,EAAMgB,GAGzE,gCAAgCsD,GAC5B,IAAIl+D,EAAOk+D,EAAWl+D,KAAKz1C,QAAU2zG,EAAWl+D,KAAK,GACrD,GAAKA,IAAQrvC,KAAK2qG,gBAAgBt7D,EAAKwhC,UAAvC,CAGA,IAAIo5B,EAAe,eAAE56D,EAAKy7D,aACtB+gI,EAAiB7rO,KAAKqxO,qBAAqBpnI,EAAc56D,EAAKwhC,UAElE,GADA7wE,KAAKwtG,2BAA2BD,GAC5BvtG,KAAK0sO,gBAAiB,CACtB,GAAI1sO,KAAK0sO,kBAAoBb,EAIzB,YAHI,YAAc7rO,KAAK4Y,OAAO,yBAC1B5Y,KAAKyyG,aAAazyG,KAAK0sO,kBAI3B1sO,KAAKyyG,aAAazyG,KAAK0sO,iBAG1Bb,IAGAA,EAAe7Y,oBAChBhzN,KAAKuqG,aAAaN,KAI1B,eAAe56D,GACX,GAAI,GAAQ/wC,QAAQ+wC,EAAKztC,OAAS,EAC9B5B,KAAK6nG,oBAGT,OAAQx4D,EAAKztC,MACT,IAAK,cACL,IAAK,mBACD5B,KAAKszD,cACL,MACJ,IAAK,uBACL,IAAK,0BACD,MACJ,IAAK,kBACDtzD,KAAK4xO,sBAAsBviM,EAAKztC,KAAMytC,EAAKxtC,OAC3C,MACJ,IAAK,oBACDwtC,EAAKxtC,MAAQ7B,KAAK2sO,kBAAoB3sO,KAAK6xO,oBAC3C,MACJ,IAAK,QACG7xO,KAAKusO,yBACLvsO,KAAKktO,UAAUt0N,OAAOy2B,EAAKztC,KAAMytC,EAAKxtC,OACtC7B,KAAKixG,SAASr4F,OAAOy2B,EAAKztC,KAAMytC,EAAKxtC,QAEzC6kG,MAAMwH,eAAe7+D,GACrBrvC,KAAK6rH,oBACL,MACJ,IAAK,YACG7rH,KAAKusO,wBACLvsO,KAAKktO,UAAUt0N,OAAO,qBAAsBy2B,EAAKxtC,OAErD6kG,MAAMwH,eAAe7+D,GACrB,MACJ,SACQrvC,KAAKusO,wBAA2Bl9L,EAAKztC,OAASytC,EAAKmtC,UAAY,UAAYntC,EAAKztC,MAChF5B,KAAKktO,UAAUt0N,OAAOy2B,EAAKmtC,SAAUntC,EAAKxtC,OAE9C6kG,MAAMwH,eAAe7+D,IAGjC,sBAAsBztC,EAAMC,GACxB,eAAK7B,KAAK8rO,UAAW,CAAC1qO,EAAO2oO,KACzBA,EAAQnxN,OAAOhX,EAAMC,KAG7B,WAAWipG,GACP9qG,KAAKyyG,aAAazyG,KAAK0sO,iBACvBhmI,MAAMa,WAAWuD,GAErB,aAAaA,GACT9qG,KAAKyyG,aAAazyG,KAAK0sO,iBACvBhmI,MAAMa,WAAWuD,IAGzB,eAAkB,SAAU,IACb,UC3vBA,MC2BXgnI,GAAkB,CAClB,IAAK,0BACL,KAAM,8BACN,IAAK,wBACL,KAAM,8BACN,IAAK,2BACL,KAAM,iCACNj3L,QAAS,2BACTk3L,YAAa,gCACblsL,SAAU,4BACVmsL,WAAY,+BACZC,SAAU,6BACVrsL,QAAS,4BAETssL,GAAwB,CACxB,IAAK,QACL,KAAM,WACN,IAAK,WACL,KAAM,kBACN,IAAK,cACL,KAAM,qBACNF,WAAY,aACZnsL,SAAU,WACVksL,YAAa,cACbE,SAAU,WACVrsL,QAAS,WAETusL,GAAoB,IACpBC,GAAqC,EACrC,GAAmB,aACnBC,GAA6B,uBAC7BC,GAA2B,qBAC3BC,GAAyB,mBACzBC,GAAa,UACbC,GAAyB,sBACzBC,GAAyB,sBACzB,GAAoB,iBACpBC,GAAc,iBACdC,GAAqB,kBACrBC,GAA0B,uBAC1BC,GAAgB,aAChB,GAA4B,yBAC5BC,GAA6B,0BAC7BC,GAAwB,qBACxB,GAAyB,6BACzBC,GAA+B,CAAC,OAAQ,WAAY,UAExD,SAASC,GAAyBvvO,GAC9B,MAAO,YAAcA,EAAKiV,OAAO,yBAErC,IAAIu2M,GAAoB,SAASgkB,GAC7B,IAAI36G,EAAU26G,GAAoBA,EAAiBn7K,WAC/Co7K,EAAiB56G,GAAWA,EAAQp0H,KAAK,gBACzC8Z,EAASk1N,GAAkBA,EAAex5O,QAAU4+H,EAAQp0H,KAAKgvO,EAAe,IACpF,GAAIl1N,aAAkB,QAClB,OAAOA,GAGXm1N,GAAqC,WACrC,IAAIC,EAA4B,SAAS3vO,EAAM4W,GAC3C,IAAItb,EAAS,GACTs0O,EAAW,GACXl8N,EAAcm8N,EAAqB7vO,EAAM4W,GACzCk5N,EAAgB,OAAcn5N,yBAAyBC,EAAQ,aAUnE,OATI1b,MAAMuY,QAAQC,IACdpY,EAAS,OAAc4W,YAAYwB,EAAY,GAAIo8N,GACnDF,EAAW,OAAc19N,YAAYwB,EAAY,GAAIo8N,GACjD,KAAOF,IACPt0O,GAAU,MAAQs0O,IAEf,eAAUl8N,KACjBpY,EAAS,OAAc4W,YAAYwB,EAAao8N,IAE7Cx0O,GAGX,SAASu0O,EAAqB7vO,EAAM4W,GAChC,GAAIA,EACA,OAAO24N,GAAyBvvO,SAAS,IAAW4W,EAAO04D,oBAAsB14D,EAAO04D,oBAAsB14D,EAAOlD,YAG7H,IAAIq8N,EAAmC,SAAS/vO,EAAM4W,GAClD,GAAIA,EACA,OAAO24N,GAAyBvvO,SAAS,IAAW4W,EAAOo5N,gCAAkCp5N,EAAOo5N,gCAAkCp5N,EAAOqM,yBAGjJgtN,EAAiB,SAASjwO,EAAM4R,EAAa49N,GAC7C,IAAI54N,EAAS5W,EAAK25D,mBAAmBoK,aAAanyD,GAC9C8B,EAAcm8N,EAAqB7vO,EAAM4W,GACzCs5N,EAAgBV,EAAiBh1N,QAAQ,IAAMxa,EAAKiU,gBAAgBy6N,KAA6Bz4O,OACjGk6O,EAAeX,EAAiBl8K,SAAStzD,EAAKiU,gBAAgB06N,KAClE,OAAIj7N,GAAexY,MAAMuY,QAAQC,IAAgB,YAAcq8N,EAAiC/vO,EAAM4W,GAC9Fu5N,EACOz8N,EAAY,GAEZA,EAAY,IAGnBw8N,GAAiB,SAASx8N,EAAakD,GAC3C,QAAIA,GAAU04N,GAA6B30O,QAAQic,EAAOxF,WAAa,GAAKlW,MAAMuY,QAAQC,UAGnF,IAAWA,EAJG,CAKvBA,EAAakD,GAAUlD,EAAc,MAEvC08N,EAAoB,SAASpwO,EAAMmS,GACnC,IAAIjU,EAAQ,KAAOiU,EAAQjU,MAAQ,KAAOiU,EAAQjU,MAC9CsxO,EAAmBr9N,EAAQkD,UAC3BuB,EAAS5W,EAAK25D,mBAAmBoK,aAAa5xD,EAAQyE,OAAOnZ,OAC7DiW,EAAcu8N,EAAejwO,EAAM4W,EAAOnZ,MAAO+xO,GACrD,GAAK,eAAU97N,IAAiB,eAAUxV,GAA1C,CAGA8B,EAAKqwO,2BAA2BC,aAAad,EAAkB97N,IAAgBxV,GAC/E,IAAI86E,EAAmBu2J,GAAyBvvO,GAAQ,sBAAwB,cAC5EuwO,EAAkB,SAASvwO,EAAM0T,EAAakD,EAAQ44N,GACtD,GAAI,YAAcO,EAAiC/vO,EAAM4W,GAAS,CAC9D,IAAI45N,EAAoBX,EAAqB7vO,EAAM4W,GACnD,OAAI44N,EAAiBl8K,SAAStzD,EAAKiU,gBAAgB06N,KACxC,CAACj7N,EAAaxY,MAAMuY,QAAQ+8N,GAAqBA,EAAkB,QAAK,GAExE,CAACt1O,MAAMuY,QAAQ+8N,GAAqBA,EAAkB,GAAKA,EAAmB98N,GAG7F,OAAOA,EATW,CAUpB1T,EAAM9B,EAAO0Y,EAAQ44N,GACnBiB,EAAY,YAAcV,EAAiC/vO,EAAM4W,GACjEi/D,EAAe1jE,EAAQ0jE,cAAgB46J,GAAav1O,MAAMuY,QAAQ88N,IAAoBA,EAAgB51O,aAAQ,IAAW,EAC7HqF,EAAK25D,mBAAmBoK,aAAantD,EAAOnZ,MAAOu7E,EAAkBu3J,EAAiB16J,KAE1F,MAAO,CACH66J,mBAAoB,SAAS95N,EAAQ44N,GACjC,IAAIj1N,EAASixM,GAAkBgkB,GAC/Bj1N,GAAUA,EAAOtF,OAAO,QAASg7N,EAAe5zO,KAAMua,EAAOnZ,MAAO+xO,KAExE3uK,qBAAsB,SAAS5gE,GAC3B,IACIi0D,EACAs7K,EACAmB,EACApqH,EAJAzlD,EAAc7gE,EAAE6gE,YAKpB,GAAI,OAAc5qD,aAAa4qD,EAAa,CAAC,cAAe,sBAAuB,0BAA2B,kCAAmC,eAAgB,qBAAkB,IAAW7gE,EAAE2R,YAAhM,CACI,IAAIipC,EAAex+C,KAAKs9D,mBAAmByB,gBAAgBn7D,EAAE2R,aACzDgF,EAASva,KAAKs9D,mBAAmBoK,aAAa9jE,EAAE2R,aAGpD,GAFAsiD,EAAQ73D,KAAKinE,gBAAgBjnE,KAAK0X,UAAUI,KAAK,IAAM9X,KAAK4X,gBAAgB,KAAmBxW,QAASo9C,IAAiB,iBACzH20L,EAAmBt7K,EAAM//C,KAAK,IAAM46N,IAAwBnoK,QACxD9F,EAAYptD,aAAeotD,EAAYwO,oBAAqB,CAC5DjzE,KAAKq0O,mBAAmB95N,EAAQ44N,GAChC,IAAIoB,EAAkB18K,EAAM//C,KAAK,IAAM9X,KAAK4X,gBAAgBy6N,KAA6BjuO,KAAK,aAC1FmwO,IACAD,EAAuBC,EAAgB7mK,WAAW51D,KAAK,IAAM46N,IAC7D1yO,KAAKq0O,mBAAmB95N,EAAQ+5N,EAAqB/pK,SACrDvqE,KAAKq0O,mBAAmB95N,EAAQ+5N,EAAqBv8N,SAEpDw8N,GAAoBA,EAAgB37N,OAAO,YAC5C5Y,KAAKw0O,0BAA0B38K,EAAOy7K,EAA0BtzO,KAAMua,KAG1EkqD,EAAY79C,yBAA2B69C,EAAYkvK,kCAC/Cn1L,GAAgB,GAAKjkC,IACrB2vG,EAAQryD,EAAM//C,KAAK,IAAM06N,IACrBtoH,EAAMtwH,SACNoG,KAAKy0O,8BAA8BvqH,EAAO3vG,EAAQ44N,GAC9C,YAAcO,EAAiC1zO,KAAMua,GACrDva,KAAK00O,0BAA0B78K,EAAOt9C,GAC/B44N,EAAiBr7N,KAAK,IAAMi7N,IAA4Bn5O,SAC/DoG,KAAK20O,cAAcxB,EAAkBnzO,KAAK40O,kBAAkBzB,EAAkB54N,IAC9Eva,KAAK60O,2BAOzB70O,KAAKC,SAAS2D,IAElB6vD,YAAa,WACTzzD,KAAK80O,4BAA8B,KACnC90O,KAAKC,SAASnB,MAAMkB,KAAME,YAE9BwzD,YAAa,WACT1zD,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAK80O,6BAA+B90O,KAAK80O,4BAA4BvnH,WAEzEwnH,mBAAoB,WAChB,OAAO/0O,KAAK8uE,kBAAkB9uE,KAAK4Y,OAAO,eAE9CZ,UAAW,WACP,OAAOhY,KAAKC,YAAcD,KAAK+0O,sBAEnCtkL,KAAM,WACFzwD,KAAKC,WACLD,KAAKg0O,2BAA6Bh0O,KAAK2xD,cAAc,gBAEzDqjL,wBAAyB,SAASn9K,EAAOt9C,GACrC,IAAI5W,EAAO3D,KACPo4K,EAAa,GACb+6D,EAAmBt7K,EAAM//C,KAAK,wBAC9Bo+F,EAAW,eAAE,SAAS/9F,SAASxU,EAAKiU,gBAAgBy6N,KAA6Bj6N,SAASy/C,GAC9F,OAAOl0D,EAAKsV,iBAAiBi9F,EAAU,QAAS,CAC5Cr5F,OAAQ,OACR/D,SAAS,EACT0sC,WAAW,EACX/P,mBAAmB,EACnB6O,oBAAoB,EACpBN,0BAA0B,EAC1Bi4E,4CAA4C,EAC5Cp4E,WAAW,EACXsB,SAAU,CACNmH,GAAI,MACJF,GAAI,MACJjzC,GAAIg6N,EAAiBv5O,QAAUu5O,GAAoBt7K,EACnDz7C,OAAQ,QAEZ2nC,gBAAiB,SAASk7C,GACtB,IAAIzzF,EACAgtH,EAAU,eAAE,SAASrgH,SAASu6N,GAAyB,IAAM/uO,EAAKiU,gBAAgB06N,KAA2Bl6N,SAAS6mF,GA2B1H,OA1BA1kF,EAAS5W,EAAK25D,mBAAmBoK,aAAantD,EAAOnZ,OACrDoK,EAAgB7H,EAAKixO,kBAAkBp8G,EAASj+G,GAChD/O,EAAc4sK,WAAaA,EAC3Bz0K,EAAKgxO,cAAcn8G,EAAShtH,GAC5B,OAAa1B,GAAG0uH,EAAQ1gH,KAAK,IAAyB,WAAW,SAAUlU,GACvE,IAAIqxO,EAAep9K,EAAM//C,KAAK,cAAc8oD,IAAIh9D,EAAEsS,QAAQq0D,QACtD,QAAU,gBAAiB3mE,IAAMA,EAAE4pE,WACnC5pE,EAAEu5D,iBACFx5D,EAAKkxO,mBACAI,EAAar7O,SACdq7O,EAAep9K,EAAMhpD,OAAOiJ,KAAK,cAAcC,QAEnD,OAAaiG,QAAQi3N,EAAc,aAG3Cz8G,EAAU,eAAE,SAASrgH,SAASu6N,GAAyB,IAAM/uO,EAAKiU,gBAAgB26N,KAAyBn6N,SAAS6mF,GACpHzzF,EAAgB7H,EAAKixO,kBAAkBp8G,EAASj+G,GAChD/O,EAAc4sK,WAAaA,EAC3Bz0K,EAAKgxO,cAAcn8G,EAAShtH,GAC5B,OAAa1B,GAAG0uH,EAAQ1gH,KAAK,IAAyB,WAAW,SAAUlU,GACnE,QAAU,gBAAiBA,IAAOA,EAAE4pE,WACpC5pE,EAAEu5D,iBACFx5D,EAAKkxO,mBACL,OAAa72N,QAAQ65C,EAAM/oD,OAAOgJ,KAAK,cAAcyyD,QAAS,aAG/D,eAAE00B,GAAgB9mF,SAASxU,EAAKwb,4BAE3C8lC,QAAS,SAASrhD,GACd,IAAI40H,EAAU50H,EAAEgO,UAAU87D,WAAW51D,KAAK,IAAM46N,IAAwBnoK,QACxE,OAAavsD,QAAQw6G,EAAQ1gH,KAAK,IAAyB,UAE/D6sC,SAAU,WACNpqC,EAAS5W,EAAK25D,mBAAmBoK,aAAantD,EAAOnZ,OACrDy2D,EAAM//C,KAAK,IAAM06N,IAAYpzN,SAASjH,SAASs6N,IAC3C,YAAciB,EAAiC/vO,EAAM4W,KACrD5W,EAAK6wO,0BAA0B38K,EAAOy7K,EAA0B3vO,EAAM4W,IACtE5W,EAAKiO,UAAUovG,wBAK/Bk0H,0BAA2B,SAASp/N,GAChC,IAAIy+N,EAAkBv0O,KAAK80O,4BAC3BP,GAAmBA,EAAgB37N,OAAO9C,IAE9Cq/N,iBAAkB,SAASt9K,EAAOt9C,GAC9B,IAAI27F,EAAWr+C,EAAMG,SAAS,IAAMh4D,KAAK4X,gBAAgBy6N,KACrDkC,EAAkBr+H,EAASt8G,QAAUs8G,EAAS9xG,KAAK,cAClDmwO,GAAmBh6N,IACpBg6N,EAAkBv0O,KAAKg1O,wBAAwBn9K,EAAOt9C,IAErDg6N,EAAgB37N,OAAO,aACxB5Y,KAAK80O,6BAA+B90O,KAAK80O,4BAA4B15L,OACrEp7C,KAAK80O,4BAA8BP,EACnCv0O,KAAKk1O,0BAA0B,CAC3B7pO,MAAO,eAAcwsD,GAAO,GAAQu6K,KAExCpyO,KAAK80O,6BAA+B90O,KAAK80O,4BAA4Bz5L,SAG7Ew5L,iBAAkB,WACd,IAAIN,EAAkBv0O,KAAK80O,4BAC3BP,GAAmBA,EAAgBn5L,QAEvCg6L,8BAA+B,WAC3B,OAAOp1O,KAAK80O,6BAEhBr4K,WAAY,SAASv/C,GACjB,IAAIkgD,EAAOp9D,KAAKC,SAASid,GAOzB,MANI,WAAaA,EAAIvC,UACjByiD,EAAKjlD,SAASnY,KAAK4X,gBAAgB,KAC9B5X,KAAK4Y,OAAO,gCACb,OAAa9O,GAAGszD,EAAM,UAAWpL,GAAS4X,GAAW,YAAa5pE,KAAMgyD,KAGzEoL,GAEX4E,SAAU,WACN,IAAI/iE,EAASe,KAAKC,WAMlB,OALID,KAAK+0O,sBACL91O,EAAOgE,KAAK,CACR0X,QAAS,WAGV1b,GAEXo2O,kBAAmB,SAASr6K,EAAMllD,GAC9B,IAAIyE,EAASzE,EAAQyE,OACjBs9C,EAAQ,eAAEmD,GACVh7D,KAAK4R,UAAUgH,OAAO,sBACtB5Y,KAAKsd,QAAQ,cAAe/C,EAAO+hD,SAAUzE,GAEjD73D,KAAKsd,QAAQ,QAAS,OAAoBjkB,OAAO,6BAA8Bw+D,GAC/EA,EAAM1/C,SAAS,IACf,IAAI1C,EAAa,eAAE,SAAS2C,SAASy/C,GACjCs7K,EAAmB,eAAE,SAASh7N,SAASu6N,IAAwBt6N,SAAS3C,GAC5E,GAAI,YAAci+N,EAAiC1zO,KAAMua,GACrDva,KAAK00O,0BAA0B78K,EAAOt9C,OACnC,CACH,IAAI/O,EAAgBxL,KAAK40O,kBAAkBzB,EAAkB54N,GAC7Dva,KAAK20O,cAAcxB,EAAkB3nO,GAEzC,IAAIJ,EAAYmP,EAAOnP,UACnBA,GAAa,WAAaA,GAC1BysD,EAAM//C,KAAK,IAAwByyD,QAAQ9tD,IAAI,YAAalC,EAAOnP,WAEnEmP,EAAO4iC,kBAAoB5iC,EAAO4iC,iBAAiBvjD,QACnDoG,KAAKs1O,8BAA8B7/N,EAAY8E,EAAQ44N,IAG/DzvK,mBAAoB,SAAS7L,EAAO/hD,GAChC,IAAInS,EAAO3D,KACPua,EAASzE,EAAQyE,OACrB,GAAI,WAAazE,EAAQ6E,QACrB,GAAIJ,EAAOsE,QACPg5C,EAAM/M,KAAK,eACR,GAAIvwC,EAAO+hC,eAId,YAHA34C,EAAK08D,eAAexI,EAAOl0D,EAAK0xO,kBAAkB75N,KAAK7X,GAAOmS,GAASuI,KAAK,KACxE1a,EAAKu4D,YAAYrE,EAAO/hD,KAKpC9V,KAAKC,SAASnB,MAAMkB,KAAME,YAE9B00O,kBAAmB,SAASzB,EAAkB54N,GAC1C,IAAI5W,EAAO3D,KACPu1O,EAAuB,CACvB/pO,cAAe,CACXusK,UAAWp0K,EAAK6xO,uCAAuCj7N,KAG3Dtb,EAAS,OAAAxE,EAAA,WAAO86O,EAAsBh7N,EAAQ,CAC9C1Y,MAAO+xO,EAAejwO,EAAM4W,EAAOnZ,MAAO+xO,GAC1Cr6G,WAAY,YACZ1xE,YAAazjD,EAAKiV,OAAO,yBACzB6/J,mBAAoB,YAAc90K,EAAKiV,OAAO,yBAA2B,EAAIu5N,GAC7E9mO,MAAO,KACP0tH,SAAU,SAASl3H,EAAO23E,GACtBu6J,EAAkBpwO,EAAM,CACpB4W,OAAQA,EACR1Y,MAAOA,EACPmX,UAAWm6N,EACX35J,aAAcA,OAW1B,MAPI,YAAck6J,EAAiC/vO,EAAM4W,KACjD44N,EAAiBl8K,SAAStzD,EAAKiU,gBAAgB06N,KAC/CrzO,EAAOgvD,YAActqD,EAAKiV,OAAO,8BAEjC3Z,EAAOgvD,YAActqD,EAAKiV,OAAO,6BAGlC3Z,GAEXu2O,uCAAwC,SAASj7N,GAC7C,IAAIk7N,EAAkB,OAAoBp8O,OAAO,6BACjD,OAAI2G,KAAK4R,UAAUgH,OAAO,qBACf,CACH,aAAc68N,EACd,mBAAoBl7N,EAAO+hD,UAG5B,CACH,aAAcm5K,IAGtBd,cAAe,SAASxB,EAAkBr9N,GACtCq9N,EAAiB/gL,QACjB,IAAIv7C,EAAW,eAAE,SAASuB,SAAS+6N,GAC/BuC,EAAmB11O,KAAK2xD,cAAc,iBACtCv3C,EAAapa,KAAK2xD,cAAc,QAAQv3C,aACxCu7N,EAAsB31O,KAAK2xD,cAAc,eAC7C,GAAI77C,EAAQgF,QAAU9a,KAAK4Y,OAAO,0BAA2B,CACzD+8N,EAAoBC,6BAA6B9/N,GACjD,IAAI1X,EAAS4B,KAAK2xD,cAAc,QAAQsxB,oBACxC0yJ,EAAoBC,6BAA6B,MACjD,IAAIp1N,EAAmB,OAAcq1N,2BAA2B//N,EAASsE,EAAYhc,GACjF03O,EAAgB,eAAS,GAAIhgO,EAAS,CACtCgF,OAAQ,eAAS,GAAIhF,EAAQgF,OAAQ,CACjCV,WAAYoG,MAGpB,OAAOk1N,EAAiB78G,aAAahiH,EAAUi/N,GAE/C,OAAOJ,EAAiB78G,aAAahiH,EAAUf,IAGvD4+N,0BAA2B,SAAS78K,EAAOt9C,GACvC,IAAI5W,EAAO3D,KACPmzO,EAAmBt7K,EAAM//C,KAAK,IAAM46N,IAAwBnoK,QAChE4oK,EAAiB/gL,QACjB,IAAI2jL,EAAsB,eAAE,SAAS59N,SAAS46N,IAA4BrhL,KAAK,WAAY1xD,KAAK4Y,OAAO,aACvG,OAAa9O,GAAGisO,EAAqB,WAAW,WAC5CpyO,EAAKwxO,iBAAiBt9K,EAAOt9C,MAEjCw7N,EAAoB39N,SAAS+6N,GAC7BxvO,EAAK6wO,0BAA0B38K,EAAOy7K,EAA0B3vO,EAAM4W,KAE1Ei6N,0BAA2B,SAAS38K,EAAOh2D,GACvC,IAAIk0O,EAAsBl+K,EAAM//C,KAAK,IAAMi7N,IACvCgD,EAAoBn8O,SAChB,KAAOiI,EACPk0O,EAAoBjrL,KAAK,UAEzBirL,EAAoBx5O,KAAKsF,KAIrC4yO,8BAA+B,SAASvqH,EAAO3vG,EAAQ44N,GACnD,IACI6C,EADAryO,EAAO3D,KAEPi2O,EAAe,WACf,IAAIC,EAAO,GAAKvyI,YAAYumB,GAC5BgsH,GAAQA,EAAKt9N,OAAO,iBAAkB,MACtCo9N,GAAoBryO,EAAKwyO,aAAahD,IAE1CxvO,EAAKsV,iBAAiBixG,EAAO,GAAM,CAC/B8Q,mBAAoB,GACpBtnF,oBAAoB,EACpBozE,cAAe,SACflrE,SAAUj4C,EAAKwb,0BAA4B,IAAM,GAA4B,IAAMwzN,GACnFvH,qBAAsB,UACtBC,yBAAyB,EACzB9gO,MAAO,CAAC,CACJoqC,UAAUp6B,EAAO4iC,mBAAoB5iC,EAAO4iC,iBAAiBvjD,OAC7DiiD,KAAMi2L,GAAgB4B,EAAiC/vO,EAAM4W,IAAW,WACxE4uF,YAAY,EACZ5+F,MAAO5G,EAAKyyO,6BAA6B77N,KAE7Cm2D,YAAa,SAAS2lK,GAClB,IAAIzvN,EAA0ByvN,EAAWxlK,SAASjvE,KAC9C00O,EAAgC5C,EAAiC/vO,EAAM4W,GACvEg8N,GAAiB,EACjBC,EAAgBtD,GAAyBvvO,GACzCmS,EAAU,GACd,KAAIugO,EAAWxlK,SAAStmE,OAASqc,GAA2BA,IAA4B0vN,GAAxF,CAeA,GAZI1vN,GACA9Q,EAAQ0gO,EAAgB,kCAAoC,2BAA6B5vN,EACrF,YAAcA,GAA2B,YAAc0vN,IACvDC,EAAiB,YAAc3vN,EAC/B9Q,EAAQ0gO,EAAgB,sBAAwB,eAAiB,QAGrE1gO,EAAQ0gO,EAAgB,sBAAwB,eAAiB,KACjE1gO,EAAQ0gO,EAAgB,kCAAoC,2BAA6Bj8N,EAAO68D,gCAAkC,MAEtIzzE,EAAK25D,mBAAmBoK,aAAantD,EAAOnZ,MAAO0U,GACnDnS,EAAKqwO,2BAA2BC,aAAad,GAAkB,IAC1DvsN,EAAyB,CAC1B,IAAI1I,EAASixM,GAAkBgkB,GAC3Bj1N,GAAU,cAAgBA,EAAOq0C,OAASr0C,EAAOtF,OAAO,aACxDsF,EAAOk/D,QACPl/D,EAAOtF,OAAO,WAAW,IAG5B29N,EAGD5yO,EAAKwxO,iBAAiBhC,EAAiBh1N,QAAQ,IAAM,IAAoB5D,GAFzE5W,EAAKwyO,aAAahD,KAK1B7H,iBAAkB,WACd0K,EAAmBryO,EAAK8yO,iBAAiBtD,GACzCxvO,EAAKguD,cAAc,iBAAiBkpH,aAExC2wD,gBAAiB,WACb,OAAaxtN,QAAQksG,EAAO,QAC5B+rH,KAEJx/L,eAAgB,SAAS7yC,GACrB,OAAakG,GAAGogH,EAAO,OAAQ,KAC3B,IAAIgsH,EAAOtyO,EAAEgO,UACbskO,EAAK1F,2BACLyF,OAGR55N,WAAY1Y,EAAKiV,OAAO,iBAGhC69N,iBAAkB,SAAShhO,GACvB,OAAOA,EAAWwhD,SAAS67K,KAAkBr9N,EAAWgwE,QAAQ,IAAMqtJ,IAAel5O,QAEzFu8O,aAAc,SAAS1gO,GACnBzV,KAAK2xD,cAAc,iBAAiBgD,MAAMl/C,GAC1C,OAAauI,QAAQvI,EAAWqC,KAAK,IAAyB,UAElEw9N,8BAA+B,SAAS7/N,EAAY8E,EAAQ44N,GACxD,IAAIjpH,EACAlqH,KAAK4Y,OAAO,oCACZnD,EAAW0C,SAASs6N,IACpBvoH,EAAQ,eAAE,SAAS1qB,UAAU/pF,GAC7BzV,KAAKy0O,8BAA8BvqH,EAAO3vG,EAAQ44N,KAG1DiD,6BAA8B,SAAS77N,GACnC,IAAI5W,EAAO3D,KACPf,EAAS,CAAC,IACVy3O,EAAmB/yO,EAAKiV,OAAO,aAC/BsuC,EAAwBwvL,GAAoBA,EAAiBxvL,uBAAyB,GAC1F,GAAI3sC,EAAO4iC,kBAAoB5iC,EAAO4iC,iBAAiBvjD,OAAQ,CAC3D,IAAI+8O,EAA4Bp8N,EAAO4iC,iBAAiB/+C,QAAO,SAAUyD,GACrE,OAAO,eAAUqwO,GAAsBrwO,OAE3C5C,EAAS,eAAI03O,GAA2B,SAAU90O,GAC9C,IAAI+0O,EAAkB1E,GAAsBrwO,GAC5C,MAAO,CACHD,KAAMC,EACN+sG,UAAW8kI,EAAiC/vO,EAAM4W,IAAWA,EAAOwoC,0BAA4BlhD,EAChGtF,KAAM2qD,EAAsB0vL,GAC5B/6L,KAAMi2L,GAAgBjwO,OAG9B5C,EAAOgE,KAAK,CACRrB,KAAM,KACNrF,KAAMm6O,GAAoBA,EAAiBvvL,mBAC3CtL,KAAMi2L,GAAgBj3L,UAG9B,OAAO57C,GAEXsmE,mBAAoB,SAAS3hE,GACzB,IAAIizO,EAAmBC,EACvB92O,KAAKC,SAASnB,MAAMkB,KAAME,YACtB,QAAU22O,EAAoBjzO,EAAEwiF,sBAAmB,IAAWywJ,GAAqBA,EAAkBtqL,WAAa,QAAUuqL,EAAqBlzO,EAAEwiF,sBAAmB,IAAW0wJ,GAAsBA,EAAmBxwJ,aAC1NtmF,KAAK+2O,0BAGbA,uBAAwB,WACpB,GAAK/2O,KAAK4Y,OAAO,2BAGZ5Y,KAAK0X,UAAV,CAGA,IAAI8G,EAAUxe,KAAKs9D,mBAAmBC,oBAClCnjD,EAAapa,KAAKiY,gBAAgBmC,aAClC48N,EAA4Bh3O,KAAKg0O,2BACjCx5K,EAAWx6D,KAAK0X,UAAUI,KAAK,IAAM9X,KAAK4X,gBAAgB,KAAmBxW,SAC5E,IAAMo5D,GAGXh8C,EAAQtd,QAAQ,CAACqZ,EAAQnZ,KACrB,GAAKmZ,EAAOO,QAAUP,EAAO1F,qBAAuB0F,EAAO0F,0BAA3D,CAGA,IAAI43C,EAAQ73D,KAAKinE,gBAAgBzM,EAAUp5D,GACvC8c,EAASixM,GAAkB,OAASt3J,QAAS,IAAWA,OAAQ,EAASA,EAAM//C,KAAK,yBACxF,GAAIoG,EAAQ,CACR84N,EAA0BpB,6BAA6Br7N,GACvD,IAAInc,EAAS4B,KAAKiY,gBAAgBgrE,oBAClC+zJ,EAA0BpB,6BAA6B,MACvD,IAAIp1N,EAAmB,OAAcq1N,2BAA2Bt7N,EAAQH,EAAYhc,GACpF8f,EAAOtF,OAAO,aAAc4H,SAIxC0wC,cAAe,SAAS7hB,GACpB,OAAQA,EAAKztC,MACT,IAAK,YACL,IAAK,kBACD5B,KAAKszD,aAAY,GAAM,GACvBjkB,EAAK+hB,SAAU,EACf,MACJ,IAAK,yBACG/hB,EAAKxtC,MACL7B,KAAK+2O,yBAEL/2O,KAAK+H,SAETsnC,EAAK+hB,SAAU,EACf,MACJ,QACIpxD,KAAKC,SAASovC,MAxhBO,GA6hBrC4nM,GAAkC,CAClCC,2BAA4B,WACxB,OAAO,GAEXplJ,2BAA4B,WACxB,GAAI9xF,KAAKk3O,6BACL,OAAOl3O,KAAKC,WAEhB,IAAIwZ,EAAU,CAACzZ,KAAKC,YAChBue,EAAUxe,KAAKs9D,mBAAmBC,kBAAkB,MAAM,GAC1Do4K,EAAsB31O,KAAK2xD,cAAc,eAS7C,OARA,eAAKnzC,GAAS,WACV,IAAI24N,EACAC,GAAc,QAAUD,EAAwBxB,EAAoB0B,sCAAmC,IAAWF,OAAwB,EAASA,EAAsB/1O,SAAWpB,KAAKoB,MAC7L,GAAIpB,KAAKs8C,gBAAkBt8C,KAAKg9C,2BAA6B,eAAUh9C,KAAKqX,eAAiB+/N,EAAY,CACrG,IAAIh5O,EAAS4B,KAAKglF,uBAAuBhlF,KAAKqX,YAAarX,KAAK4mB,yBAA2B5mB,KAAK+iD,uBAAwB,aACxHtpC,EAAQxW,KAAK7E,OAGd,OAAcob,eAAeC,KAGxC69N,GAA4B,EAAQ1kL,eAAe7C,QAAQ,CAC3DwnL,gBAAiB,WAIb,OAHKv3O,KAAKw3O,eACNx3O,KAAKw3O,aAAex3O,KAAKqd,QAAQ,gBAE9Brd,KAAKw3O,cAEhBvD,aAAc,SAASp9N,EAAUhV,GACzBqxO,GAAyBlzO,QACzB6W,GAAYA,EAAS09C,YAAYs+K,GAAyBhxO,IAAUgV,EAASsH,QAAQ,IAAM,IAAmBo2C,YAAYy+K,GAAuBnxO,GACjJ7B,KAAKu3O,kBAAkBE,kBAAkB51O,KAGjDilD,YAAa,WACT,IAAIwQ,EAAoBt3D,KAAK2xD,cAAc,WACvCnzC,EAAU84C,EAAkBc,aAChCd,EAAkB3G,cAClB,IAAK,IAAIl1D,EAAI,EAAGA,EAAI+iB,EAAQ5kB,OAAQ6B,IAAK,CACrC,IAAI8e,EAASiE,EAAQ/iB,QACjB,IAAW8e,EAAO04D,sBAClB3b,EAAkBoQ,aAAajsE,EAAG,cAAe8e,EAAO04D,qBACxD14D,EAAO04D,yBAAsB,QAE7B,IAAW14D,EAAOo5N,kCAClBr8K,EAAkBoQ,aAAajsE,EAAG,0BAA2B8e,EAAOo5N,iCACpEp5N,EAAOo5N,qCAAkC,GAGjDr8K,EAAkB1G,YAClB5wD,KAAK03O,oBAETA,iBAAkB,WACd,GAAIxE,GAAyBlzO,MAAO,CAChC,IAAI23O,EAA2B33O,KAAKqd,QAAQ,qBAAqB3F,UACjEigO,EAAyB7/N,KAAK,IAAM9X,KAAK4X,gBAAgB,IAAoB,KAAOi7N,IAAyBx6N,YAAYw6N,IACzH8E,EAAyB7/N,KAAK,IAAM9X,KAAK4X,gBAAgB,IAAoB,KAAOo7N,IAAuB36N,YAAY26N,IACvHhzO,KAAKu3O,kBAAkBE,mBAAkB,KAGjD7B,6BAA8B,SAASr7N,GACnCva,KAAK43O,eAAiBr9N,GAE1B88N,6BAA8B,WAC1B,OAAOr3O,KAAK43O,kBAGTC,GAAkB,CACzBl6O,eAAgB,WACZ,MAAO,CACHw8C,wBAAwB,EACxBhF,UAAW,CACPoF,SAAS,EACT8M,sBAAsB,EACtBD,YAAa,OAAoB/tD,OAAO,mCACxC8tD,mBAAoB,OAAoB9tD,OAAO,0CAC/CytD,YAAa,OACbC,gBAAiB,OAAoB1tD,OAAO,8BAC5C6tD,sBAAuB,CACnBnB,MAAO,OAAoB1sD,OAAO,uCAClCktD,SAAU,OAAoBltD,OAAO,0CACrC+sD,SAAU,OAAoB/sD,OAAO,qCACrCgtD,gBAAiB,OAAoBhtD,OAAO,6CAC5C2sD,YAAa,OAAoB3sD,OAAO,wCACxC4sD,mBAAoB,OAAoB5sD,OAAO,gDAC/CmtD,WAAY,OAAoBntD,OAAO,2CACvCwsD,SAAU,OAAoBxsD,OAAO,yCACrCitD,YAAa,OAAoBjtD,OAAO,4CACxCysD,SAAU,OAAoBzsD,OAAO,yCACrCusD,QAAS,OAAoBvsD,OAAO,wCACpC6sD,QAAS,OAAoB7sD,OAAO,0CACpC8sD,WAAY,OAAoB9sD,OAAO,8CAE3C4tD,iBAAkB,OAAoB5tD,OAAO,iDAC7C2tD,eAAgB,OAAoB3tD,OAAO,kDAIvDm8D,YAAa,CACT1O,YAAawwL,IAEjB1hL,UAAW,CACPJ,YAAa,CACTpxD,KAAM6yO,GACNa,eAAgB,CACZC,eAAgB,WACZ,IAAIp0O,EAAO3D,KAEX,GADA2D,EAAK1D,SAASnB,MAAM6E,EAAMzD,WACtByD,EAAK+wD,aAAc,CACnB,IAAI6/K,EAAkB5wO,EAAK42G,mBAAmB66H,gCAC9C,GAAIb,EAAiB,CACjB,IAAI/wK,EAAY+wK,EAAgB19N,WAAWsH,QAAQ,MAAM/c,QACrDoiE,IAAc7/D,EAAKq0O,aAAaziO,aAAeiuD,IAAc7/D,EAAKq0O,aAAaziO,YAAc,GAC7Fg/N,EAAgB7mK,WAAWtyB,UAK3C68L,aAAc,WACV,IACIpgL,EADAl0D,EAAO3D,KAEX,GAAI2D,EAAK+wD,aAAc,CACnB,IAAI6/K,EAAkB5wO,EAAK42G,mBAAmB66H,gCAC1Cb,IACA18K,EAAQ08K,EAAgB19N,WAAWsH,QAAQ,MAC3Cxa,EAAK42G,mBAAmB26H,0BAA0B,CAC9C7pO,MAAO,eAAcwsD,GAAO,GAAQu6K,KAExCmC,EAAgB7mK,WAAWryB,QAGnC13C,EAAK1D,SAASnB,MAAM6E,EAAMzD,aAGlC00C,QAAS,CACL,iBAAiB9+B,GAIb,OAHIA,EAAQyE,OAAOO,SACf9a,KAAKk4O,6BAA8B,GAEhCl4O,KAAKC,SAASnB,MAAMkB,KAAME,YAErC,mBAAmBqgD,GAEX,IAAI43L,EADJn4O,KAAKk4O,8BAAgC33L,IAErC,QAAU43L,EAAgBn4O,KAAKqd,QAAQ,4BAAyB,IAAW86N,GAAyBA,EAAcpB,0BAGtH,OADA/2O,KAAKk4O,6BAA8B,EAC5Bl4O,KAAKC,SAASnB,MAAMkB,KAAME,YAErC,uBAEI,OADAF,KAAKk4O,6BAA8B,EAC5Bl4O,KAAKC,SAASnB,MAAMkB,KAAME,cAI7Cw1D,MAAO,CACHkX,kBAAmBymK,GACnBh3I,YAAa,CACT0wB,iBAAkB,WACd,IAAIxiH,EAAQvK,KAAKC,WACbm4O,EAAap4O,KAAKq4O,mBAAmB9tO,GACzC,OAAO6tO,EAAWzwN,OAAOpd,IAE7B8tO,mBAAoB,WAChB,IAAI10O,EAAO3D,KACPo4O,EAAa,GACjB,GAAIz0O,EAAK20O,2BAA4B,CACjC,IAAI76G,EAAW95H,EAAKiV,OAAO,6BACvB4F,EAAU7a,EAAK25D,mBAAmBlF,aAClCzjB,GAAYn2B,EAAQpgB,QAAO,SAAUmc,GACrC,YAAO,IAAWA,EAAO04D,uBACzBr5E,OACAuyD,EAAc,CACdhB,OAAQ,WACRr1C,QAAS,CACL+lC,KAAM,eACNlH,SAAUA,EACVmH,QAAS,WACLn4C,EAAKqwO,2BAA2BltL,eAEpCjR,KAAM4nF,EACNlhI,KAAMkhI,EACNhmF,cAAe,SAAS7zC,GACpB,eAAEA,EAAE8T,SAASS,SAASxU,EAAKqqH,uBAAuB4kH,OAG1D1nL,SAAU,SACVtpD,KAAM,oBACNopD,SAAU,QACVD,aAAc,OACd1M,UAAW,IAEf+5L,EAAWn1O,KAAKkpD,GAEpB,OAAOisL,GAEXE,yBAA0B,WACtB,IAAI5B,EAAmB12O,KAAK4Y,OAAO,aACnC,OAAO89N,GAAoBA,EAAiBn8L,SAAW,YAAcm8L,EAAiB5vL,aAE1F2J,KAAM,WACFzwD,KAAKC,WACLD,KAAKiY,gBAAkBjY,KAAK2xD,cAAc,QAC1C3xD,KAAKg0O,2BAA6Bh0O,KAAK2xD,cAAc,gBAEzD8lL,kBAAmB,SAAS51O,GACxB7B,KAAKgvH,uBAAuB,qBAAsBntH,IAEtDmW,UAAW,WACP,OAAOhY,KAAKC,YAAcD,KAAKs4O,4BAEnCpnL,cAAe,SAAS7hB,GAChB,cAAgBA,EAAKztC,MACrB5B,KAAKszD,cACLjkB,EAAK+hB,SAAU,GAEfpxD,KAAKC,SAASovC,QCx0BtC,EAAK+mB,eAAe,YAAayhL,I,cCe7BU,GAAsB,mBACtBC,GAA2B,wBAC3BC,GAA4B,OAEhC,SAASC,GAA2BnuO,GAChCA,EAAQA,GAAS,GACjB,IAAK,IAAI9O,EAAI,EAAGA,EAAI8O,EAAM3Q,OAAQ6B,IAC9B8O,EAAM9O,GAAGmzG,UAAW,EACpB8pI,GAA2BnuO,EAAM9O,GAAG8O,OAI5C,SAASouO,GAAqB/0O,EAAGy5C,GAC7B,IAAIz5C,EAAEgO,UAAUgH,OAAO,eAAvB,CAGA,IAAIggO,EAAoB,eAAEh1O,EAAE8T,SAASI,KAAK,gCAAgC1T,KAAK,cAC3Ew0O,GAAqBv7L,GAAgBA,EAAazjD,QAClDg/O,EAAkBhgO,OAAO,aAAS,IAI1C,SAASigO,GAAgBl1O,EAAMmS,GAC3B,IAAIsQ,EAAetQ,EAAQsQ,aAC3B,OAAIA,GAAgB,eAAUA,EAAaw2B,aAChCx2B,EAAaw2B,YAEjBj5C,EAAKiV,OAAO,4BAEhB,SAASkgO,GAAqCjvO,EAAMkvO,EAAmBC,GAC1E,GAAID,EAAoBC,GAEpB,GADAnvO,EAAK+kG,UAAW,EACZoqI,GAAmBnvO,EAAKU,MACxB,IAAK,IAAImB,EAAI,EAAGA,EAAI7B,EAAKU,MAAM3Q,OAAQ8R,IACnC,IAAK7B,EAAKU,MAAMmB,GAAGkjG,SAAU,CACzB/kG,EAAK+kG,cAAW,EAChB,YAILoqI,GAAmBnvO,EAAK+kG,YAC/B/kG,EAAK+kG,UAAW,EAChB8pI,GAA2B7uO,EAAKU,QAGjC,IAAI0uO,GAAmB,EAAQlmL,KAAKhD,QAAQ,CAC/CmpL,kBAAmB,WACf,OAAOl5O,KAAKs7H,iBAEhB69G,iBAAkB,WACd,OAAOn5O,KAAKo5O,gBAEhBC,kBAAmB,SAASvjO,GACxB,IAAIw2J,EAAOtsK,KAAKm5O,mBACZ5wI,EAAc+jE,EAAK1zJ,OAAO,eAC1Bw+G,GAAe7uB,IAAgBzyF,EAAQwjO,iBAAmBhtE,EAAKz1J,WAAWiB,KAAK,gBAAgB0E,GAAG,GAAGy6C,SAAS,uBAC9G5Z,EAAe,GACd+5E,GAuBG,SAAWthH,EAAQrX,OACnBqX,EAAQsnC,WAAa,WAErBv+C,MAAMuY,QAAQtB,EAAQunC,gBACtBvnC,EAAQunC,aAAe,KA1BvB,SAAWvnC,EAAQrX,OACfqX,EAAQsnC,aACRtnC,EAAQsnC,WAAa,WACtB,SAASm8L,EAAqBl8L,EAAc9yC,EAAOivO,GAClD,eAAKjvO,GAAO,SAAUxL,EAAG8K,GACrB,QAAI,IAAWA,EAAK+kG,YAAc/kG,EAAK+kG,SAAW4qI,EAAW,CACzD,IAAIvwI,EAAOqjE,EAAKmtE,SAAS5vO,GACrB6vO,EAAcptE,EAAK6kE,aAAaloI,GAChC0wI,EAA2BD,GAAe7vO,EAAKU,OAASV,EAAKU,MAAMqU,KAAK/U,GAAQA,EAAK+kG,UACzF,IAAKrG,IAAgBoxI,EAEjB,YADAt8L,EAAap6C,KAAK4G,EAAKhI,OAI3BgI,EAAKU,OAASV,EAAKU,MAAM3Q,QACzB2/O,EAAqBl8L,EAAcxzC,EAAKU,MAAOivO,MAZxD,CAeDn8L,EAAcivH,EAAK1zJ,OAAO,UAAU,GACtC9C,EAAQunC,aAAeA,GAU3BvnC,EAAQunC,eAAiBvnC,EAAQunC,aAAazjD,SAC9Ckc,EAAQunC,aAAe,MAE3BvnC,EAAQhX,QACRkB,KAAK45O,wBAETxrK,qBAAsB,SAASyrK,EAAgB/jO,GAC3C,GAAIA,EAAS,CACT9V,KAAK27H,0BAA0B7lH,GAC/B,IAAIunH,EAAiBr9H,KAAKk5O,oBAC1Bl5O,KAAK45O,uBACL55O,KAAK85O,YAAYD,EAAgB/jO,GACjCunH,EAAehiF,SAGvBu+L,qBAAsB,WAClB,IAAIG,EAAmB/5O,KAAKk5O,oBAC5Ba,GAAoBA,EAAiB3+L,QAEzC0+L,YAAa,SAASjjO,EAAUf,GAC5B,IAAI+jC,EAAkB75C,KAAK4Y,OAAO,mBAC9BxN,EAAY,UAAY0K,EAAQ1K,WAAayuC,EAAkB,OAAS,QAC5E75C,KAAKs7H,gBAAgBh+G,QAAQ,CACzB0pF,KAAM,SACNp5F,MAAO,OAAoBvU,OAAO,kCAElC2G,KAAKs7H,kBACLt7H,KAAKg6O,qBACLh6O,KAAKs7H,gBAAgB1iH,OAAO,WAAY,CACpC0zC,GAAIlhD,EAAY,OAChBghD,GAAIhhD,EAAY,UAChB+N,GAAItC,EACJwC,UAAW,eAIvB4gO,eAAgB,SAASnkO,GACrB,IAAIgF,EAAShF,EAAQgF,OACjBo/N,EAAuBpkO,EAAQokO,qBAC/BC,EAAyBrkO,EAAQsQ,cAAgBtQ,EAAQsQ,aAAahM,WAC1E,GAAI8/N,GAAwB,eAAUC,KAA4B,eAAWA,GACzE,OAAO1B,GAEX,GAAI39N,EACA,OAAOA,EAAOqG,aAAe,OAEjC,GAAIrL,EAAQsE,WAAY,CACpB,IAAI7C,EAAQzB,EAAQsE,WAAW7C,MAC/B,GAAI1Y,MAAMuY,QAAQG,IAAUA,EAAM3d,OAAS,EACvC,OAAO2d,EAAM,GAAGC,SACb,GAAI,eAAWD,KAAWzB,EAAQ6tE,gBACrC,OAAOpsE,EAGf,OAAOzB,EAAQuF,WAAavF,EAAQ0B,UAExCwiO,mBAAoB,WAChBh6O,KAAKs7H,iBAAmBt7H,KAAKs7H,gBAAgB5tD,WAAWtb,SAE5DupE,0BAA2B,SAAS7lH,GAChC,IAAInS,EAAO3D,KACP6W,EAAWlT,EAAK+T,UAChB0iO,EAAsBz2O,EAAKiV,OAAO,gBAClCvN,EAAQyK,EAAQsQ,cAAgBtQ,EAAQsQ,aAAa/a,OAAS+uO,GAAuBA,EAAoB/uO,MACzGwR,EAAS/G,EAAQsQ,cAAgBtQ,EAAQsQ,aAAavJ,QAAUu9N,GAAuBA,EAAoBv9N,OAC3Gm/G,EAAiB,CACjB3wH,MAAOA,EACPwR,OAAQA,EACR09B,SAAS,EACTzhC,SAAS,EACT0sC,WAAW,EACXD,iBAAiB,EACjBhB,oBAAoB,EACpBJ,aAAa,EACbG,oBAAoB,EACpB7O,mBAAmB,EACnBuO,0BAA0B,EAC1Bi4E,4CAA4C,EAC5Cv2E,aAAc,CAAC,CACXrL,QAAS,SACT2Q,SAAU,QACVG,OAAQ,WACRr1C,QAAS,CACLvZ,KAAM69O,EAAoB36L,MAAMgB,GAChC3E,QAAS,WACLn4C,EAAK01O,kBAAkBvjO,MAGhC,CACCukC,QAAS,SACT2Q,SAAU,QACVG,OAAQ,WACRr1C,QAAS,CACLvZ,KAAM69O,EAAoB36L,MAAMc,OAChCzE,QAAS,WACLn4C,EAAKi2O,2BAIjBx0L,eAAe,EACfJ,UAAW,SAASphD,GAChBA,EAAEgO,UAAU87D,WAAWtuD,SAASjH,SAAS,6BACzCxU,EAAK02O,yBAAyBvkO,GAC9BA,EAAQkvC,WAAalvC,EAAQkvC,UAAUphD,IAE3CqhD,QAAS,WACLthD,EAAKw1O,mBAAmBxkL,SAE5BhQ,SAAU7uC,EAAQ6uC,SAClBlN,cAAe,SAAS7zC,GACpB,IAAIgO,EAAYhO,EAAEgO,UAClBA,EAAUgH,OAAO,YAAahH,EAAU+0F,qBAAqB9iD,aAGhE,eAAUlgD,EAAK23H,iBAGhB33H,EAAK23H,gBAAgB1iH,OAAOojH,GAF5Br4H,EAAK23H,gBAAkB33H,EAAKsV,iBAAiBpC,EAAU,QAAOmlH,IAKtEq+G,yBAA0B,SAASvkO,GAC/B,IAAInS,EAAO3D,KACP0tE,EAAW/pE,EAAK23H,gBAAgB5tD,WAChCkoF,EAAgB,CAChBv5B,cAAew8G,GAAgBl1O,EAAMmS,GACrCypC,cAAe57C,EAAKiV,OAAO,8BAC3BmnC,WAAYjqC,EAAQsQ,cAAgBtQ,EAAQsQ,aAAa25B,YAAc,GACvE3lC,WAAYtE,EAAQsE,WACpBq8B,eAAgB,WACZ9yC,EAAKiwD,gBAAgBY,QAEzBkyD,aAAc,SAAStiH,EAAMrF,EAAG2Y,GAC5B,IAAIb,EAAW,eAAEa,GACjB,OAAI5B,EAAQonC,WACDrmC,EAASta,KAAK6H,EAAK7H,MAEvBsa,EAASi0C,KAAK1mD,EAAK7H,QAIlC,SAASq7C,EAAgBh0C,GACjB,gBAAkBA,EAAE44E,UAAa1mE,EAAQwjO,kBAAmB,IAAU31O,EAAKiV,OAAO,wCAC9E,SAAW9C,EAAQrX,KACnBmF,EAAEgO,UAAUgH,OAAO,qBAAsBhV,EAAE/B,MAAQ,SAAW,aAE9D+B,EAAEgO,UAAUgH,OAAO,gBAAiBhV,EAAE/B,MAAQ,WAAa,QAInE,SAAWiU,EAAQrX,KACnBkF,EAAKy1O,eAAiBz1O,EAAKsV,iBAAiB,eAAE,SAASb,SAASs1D,GAAW,cAAU,OAAAjzE,EAAA,WAAOm7J,EAAe,CACvGrnG,mBAAoBz4C,EAAQwjO,gBAAkB,SAAW,YACzD1hM,gBAAiBA,EACjB5B,QAAS,QAGbryC,EAAKy1O,eAAiBz1O,EAAKsV,iBAAiB,eAAE,SAASb,SAASs1D,GAAW,QAAM,OAAAjzE,EAAA,WAAOm7J,EAAe,CACnGsjB,WAAYv1K,EAAKs2O,eAAenkO,GAChCuzG,aAAc,eACdixH,uBAAuB,EACvBxzH,cAAehxG,EAAQwjO,gBAAkB,WAAa,MACtD1hM,gBAAiBA,EACjBiB,mBAAoB,SAASj1C,GACzB,IAAI2G,EAAQ3G,EAAEgO,UAAUgH,OAAO,SAC3Bg+G,EAAgBhzH,EAAEgO,UAAUgH,OAAO,iBACvC,IAAKhV,EAAEgO,UAAU2oO,yBAA2B32O,EAAEgO,UAAUgH,OAAO,iBAAmB9C,EAAQwjO,gBAAiB,CACvG,IAAIj8L,EAAevnC,EAAQunC,cAAgB,GACvCm8L,EAAY,YAAc1jO,EAAQsnC,WAClC,IAAMw5E,EAAch9H,QAAU2Q,EAAM3Q,SAAWyjD,EAAazjD,QAAU,GAAK4/O,GAAan8L,EAAazjD,SAAW2Q,EAAM3Q,OAAS,IAC/Hkc,EAAQsnC,WAAa,UACrBtnC,EAAQunC,aAAe,IAChBu5E,EAAch9H,SAAW2Q,EAAM3Q,SACtCkc,EAAQsnC,WAAa,UACrBtnC,EAAQunC,aAAe,IAG/B,eAAK9yC,GAAO,SAAUnJ,EAAOyI,GACzB,IAAI+kG,EAAW,OAAct1F,cAAczP,EAAM+sH,EAAe,OAAS,EACrE4jH,IAAgB3wO,EAAK+kG,SACzB,GAAI4rI,IAAgB5rI,EAAU,CAC1B/kG,EAAK+kG,SAAWA,EAChB94F,EAAQunC,aAAevnC,EAAQunC,cAAgB,GAC/C,IAAIo9L,EAAmB,OAAcnhO,cAAczP,EAAKhI,MAAOiU,EAAQunC,aAAc,MACjFo9L,GAAoB,GACpB3kO,EAAQunC,aAAagnB,OAAOo2K,EAAkB,GAE9C7rI,EAAW,YAAc94F,EAAQsnC,YACjCtnC,EAAQunC,aAAap6C,KAAK4G,EAAKhI,WAI3C82O,GAAqB/0O,EAAGkS,EAAQunC,eAEpC5G,eAAgB,SAAS7yC,GACrB,IAAIgO,EAAYhO,EAAEgO,UACdrH,EAAQqH,EAAUgH,OAAO,SACzBg+G,EAAgB,GACpB,eAAKrsH,GAAO,WACJvK,KAAK4uG,UACLgoB,EAAc3zH,KAAKjD,SAG3B4R,EAAU2oO,wBAAyB,EACnC3oO,EAAUgH,OAAO,gBAAiBg+G,GAClChlH,EAAU2oO,wBAAyB,EACnC5B,GAAqB/0O,EAAGkS,EAAQunC,mBAKhDoW,YAAa,WACTzzD,KAAK0X,UAAUS,SAASqgO,OAGrB/7L,GAAuB,SAASliC,GACvC,OAAO,eAAUA,EAAOkiC,sBAAwBliC,EAAOkiC,qBAAuBliC,EAAO+hC,gBAE9Eo+L,GAAoB,CAC3BhkL,kBAAmB,SAAS5gD,GACxB,IAAI6kO,EACA3jL,EAAclhD,EAAQkhD,YACtBz8C,EAASzE,EAAQyE,OACrB,GAAI,iBAAmBzE,EAAQlU,KAAM,CAEjC,GADAo1D,EAAYl/C,KAAK,IAAMygO,IAAqB5/N,SACxC8jC,GAAqBliC,GAAS,CAC9BogO,EAAyB36O,KAAKC,SAAS6V,GAASy+C,YAAY,yBAA0Bv0D,KAAK46O,qBAAqBrgO,IAC3Gva,KAAK4Y,OAAO,gCACb+hO,EAAuBjpL,KAAK,WAAY1xD,KAAK4Y,OAAO,aAAe,GAEvE,IAAIiiO,EAAiB,OAAoBxhP,OAAO,wCAAyCkhB,EAAOrP,SAChGyvO,EAAuBjpL,KAAK,aAAcmpL,GAC1CF,EAAuBjpL,KAAK,gBAAiB,UAC7CipL,EAAuBjpL,KAAK,OAAQ,UAExC,OAAOipL,EAEX,OAAO36O,KAAKC,SAAS6V,IAEzB8kO,qBAAsB,SAASrgO,GAC3B,OAAQA,EAAO8iC,eAAiB9iC,EAAO8iC,aAAazjD,QAExDy9D,uBAAwB,SAASz1D,GAC7B,MAAI,iBAAmBA,EACZ22O,GAEJv4O,KAAKC,SAAS2B,IAEzB81D,iBAAkB,SAAS5hD,GACvB,IAAIL,EAAaK,EAAQkD,UACrBi/C,EAAaniD,EAAQ2hD,UACzB,GAAI,iBAAmB3hD,EAAQlU,KAAM,CACjC,IAAIya,EAAarc,KAAK4Y,OAAO,cAC7B,GAAInD,EAAWuiD,WAAWp+D,UAAYyiB,GAAc,UAAYvG,EAAQ8gD,iBAAmBv6C,GAAc,SAAWvG,EAAQ8gD,iBAExH,YADAnhD,EAAW+lF,QAAQvjC,GAI3Bj4D,KAAKC,SAAS6V,IAElBo7C,cAAe,SAAS7hB,GACpB,GAAI,iBAAmBA,EAAKztC,KAAM,CAC9B,IAAI4xD,EAAe,sBAAwBxzD,KAAK4B,KAChD5B,KAAKszD,YAAYE,EAAcA,GAC/BnkB,EAAK+hB,SAAU,OAEfpxD,KAAKC,SAASovC,KCvUtByrM,GAAwB,CACxBj+O,MAAO,SAASgF,GACZ,OAAO,QAAiBrD,gBAAgBqD,EAAQ,IAEpDS,QAAS,SAAST,GACd,OAAO,QAAiBxI,OAAO,IAAIU,KAAK,IAAK,EAAI8H,EAAQ,GAAI,aAIrE,SAASk5O,GAAgBxwO,EAAO/J,EAAWw6O,GAkBvC,OAjBAx6O,EAAYA,GAAa,GACzBw6O,EAAQA,GAAS,GACjBzwO,EAAMrJ,QAAQ2I,IACV,GAAI,eAAUA,EAAK/O,KAAM,CACrB,IAAImgP,EAAc,IAAMz6O,EAAU5G,OAElC,GADA4G,EAAUyC,KAAKg4O,EAAcpxO,EAAK/O,IAAM,EAAI+O,EAAK/O,KAC7C+O,EAAKU,MACLwwO,GAAgBlxO,EAAKU,MAAO/J,EAAWw6O,OACpC,CACH,IAAI1hP,EAAO,IAAIS,KAAKA,KAAKC,IAAI8E,MAAM/E,KAAMyG,IACzCw6O,EAAM/3O,KAAK3J,GAEfkH,EAAU2iB,WAEV63N,EAAM/3O,KAAK,QAGZ+3O,EAGX,SAASE,GAA0B92O,EAAMmW,GACrC,IAAIygO,EAAQD,GAAgB32O,GACxBs9H,EAAQ,gBAAUs5G,GAClBzjO,EAAQ,OAAc4D,+BAA+B,eAAS,GAAIZ,EAAQ,CAC1E1F,mBAAoBvb,GAAQA,KAEhC,OAAO,QAAY6hP,eAAez5G,EAAO,CACrCnqH,MAAOA,IACRg4D,UAGP,SAAS6rK,GAAY/hP,GACjB,MAAO,OAAS,OAASA,QAAU,IAAWA,OAAS,EAASA,EAAO2a,OAAO,KAAO,SAAW,OAAS3a,QAAU,IAAWA,OAAS,EAASA,EAAO2a,OAAO,IAElK,IAAIqnO,GAAyB,EAAQzoL,eAAe7C,QAAQ,CACxDU,KAAM,WACFzwD,KAAKs9D,mBAAqBt9D,KAAK2xD,cAAc,WAC7C3xD,KAAKiY,gBAAkBjY,KAAK2xD,cAAc,QAC1C3xD,KAAKs7O,kBAAoBt7O,KAAKqd,QAAQ,qBAE1Ck+N,qBAAsB,SAAShxO,EAAOgQ,GAClC,IAAI9e,EAAI8O,EAAM3Q,OACV4/O,EAAY,YAAcj/N,EAAO6iC,WACrC,MAAO3hD,IAAK,CACR,IAAIoO,EAAOU,EAAM9O,GACb,UAAW8O,EAAM9O,IACjBuE,KAAKu7O,qBAAqBhxO,EAAM9O,GAAG8O,MAAOgQ,GAE9Cu+N,GAAqCjvO,EAAM,OAAcyP,cAAc/O,EAAM9O,GAAGoG,MAAO0Y,EAAO8iC,aAAc,OAAS,EAAGm8L,KAGhIgC,oBAAqB,SAAS3xO,EAAM4xO,EAAc3lO,GAC9C,IAAIjU,EACAujF,EACApL,EAAOlkE,EAAQkkE,KACf0hK,EAAgB5lO,EAAQ4lO,cACxBC,EAAkB7lO,EAAQ6lO,gBAC1BphO,EAASzE,EAAQyE,OAoBrB,OAnBImhO,GAAiBC,GACjB95O,EAAQ65O,EAAc7xO,GACtBu7E,EAAeu2J,EAAgB9xO,KAE/BhI,EAAQgI,EAAK/O,IACbsqF,EAAevjF,GAKfgI,EAHC,eAASA,GAGH,OAAApP,EAAA,WAAO,GAAIoP,GAFX,GAIXmwE,EAAK/2E,KAAKpB,GACN,IAAMm4E,EAAKpgF,OACXiQ,EAAKhI,MAAQm4E,EAAK,GAElBnwE,EAAKhI,MAAQm4E,EAAKh+E,KAAK,KAE3B6N,EAAKtN,KAAOyD,KAAK47O,kBAAkBx2J,EAAc7qE,EAAQkhO,EAAc3lO,EAAQskO,qBACxEvwO,GAEX+xO,kBAAmB,SAASx2J,EAAc7qE,EAAQkhO,EAAcrB,GAC5D,IAAI79O,EAAO,OAAcsZ,YAAYuvE,EAAc,SAASvjF,EAAO0Y,EAAQkhO,GACvE,IAAIxmO,EAAgB,QAAYqG,iBAAiBf,GAC7Ctb,EAAS,OAAcqb,yBAAyBC,EAAQ,gBAkB5D,OAjBItF,IACAhW,EAAOgW,cAAgBA,EAAcwmO,GACjC,OAAc3mO,WAAWyF,EAAOxF,UAChC9V,EAAO5F,OAASyhP,GAAsB7lO,EAAcwmO,IAC7C,WAAalhO,EAAOxF,WAC3B9V,EAAOgX,iBAAmB,WACtB,IAAIw9N,EAAgB,CAChBp6O,OAAQkhB,EAAOlhB,OACf6c,OAAQ,gBAER2lO,EAAiB,OAAchmO,YAAYhU,EAAO4xO,GAClDqI,EAAcj6O,EAAQoT,EAAcwmO,GACpCM,EAAkB,OAAclmO,YAAYimO,EAAarI,GAC7D,OAAOoI,GAAkBE,EAAkBF,EAAiB,MAAQE,EAAkB,MAI3F98O,EApBwC,CAqBjDmmF,EAAc7qE,EAAQkhO,IAIxB,OAHKl/O,IACDA,EAAO69O,EAAoB36L,MAAMe,YAE9BjkD,GAEXorI,mBAAoB,SAASz4E,EAAYusL,EAAczhK,EAAMlkE,GACzD,IAAI6lO,EACAD,EACAnhO,EAASzE,EAAQyE,OACjBO,EAASP,EAAOO,OAChBkU,EAAQlZ,EAAQkZ,MACpBgrD,EAAOA,GAAQ,GACfyhK,EAAeA,GAAgB,EAC3B3gO,IACA6gO,EAAkB,gBAAc7gO,EAAOqG,aACvCu6N,EAAgB,gBAAc5gO,EAAOoG,YAEzC,IAAK,IAAIzlB,EAAI,EAAGA,EAAIyzD,EAAWt1D,OAAQ6B,IACnCyzD,EAAWzzD,GAAKuE,KAAKw7O,oBAAoBtsL,EAAWzzD,GAAIggP,EAAc,CAClElhO,OAAQzE,EAAQyE,OAChB6/N,oBAAqBtkO,EAAQskO,oBAC7BuB,gBAAiBA,EACjBD,cAAeA,EACf1hK,KAAMA,IAEN,UAAW9qB,EAAWzzD,KAClBggP,IAAiBzsN,GAAU,eAAUkgC,EAAWzzD,GAAGoG,OAGnD7B,KAAK2nI,mBAAmBz4E,EAAWzzD,GAAG8O,MAAOkxO,EAAe,EAAGzhK,EAAMlkE,UAF9Do5C,EAAWzzD,GAAG8O,OAK7ByvE,EAAK72D,OAGbuuE,cAAe,SAASn3E,GACpB,IAAIyhO,EACA5hO,EAAapa,KAAKiY,gBAAgBmC,aAClCgB,EAAiB,OAAShB,QAAc,IAAWA,OAAa,EAASA,EAAWgG,mBAAmBs1B,SACvGn+B,EAAQ,OAAc4D,+BAA+BZ,EAAQa,GAC7D++N,EAAyB,QAAU6B,EAAuBzhO,EAAO6L,oBAAiB,IAAW41N,OAAuB,EAASA,EAAqB5hO,WAClJggO,EAAsBp6O,KAAK4Y,OAAO,gBAClCqjO,GAAW,EACXnmO,EAAU,CACVlE,UAAW5R,KAAK4R,WAEpB,GAAKwI,EAAL,CAGA,GAAI,eAAU+/N,KAA4B,eAAWA,GACjDrkO,EAAQsE,WAAa,gBAA2B+/N,QAC7C,GAAI5/N,EAAOO,OAEd,GADAmhO,GAAW,EACPj8O,KAAK4Y,OAAO,0BAA2B,CACvC5Y,KAAK43O,eAAiBr9N,EACtB,IAAInc,EAAS4B,KAAKiY,gBAAgBgrE,oBAClCjjF,KAAK43O,eAAiB,KACtB9hO,EAAQsE,WAAa,OAAcy7N,2BAA2Bt7N,EAAQH,EAAYhc,QAElF0X,EAAQsE,WAAa,OAAc4F,0BAA0BzF,EAAOO,YAErE,CACH,IAAIohO,EAAcr9O,MAAMuY,QAAQG,GAASA,EAAM3d,OAAS,EAAI,EAC5DoG,KAAK43O,eAAiBr9N,EACtB,IAAI8G,EAAUrhB,KAAKiY,gBAAgBgrE,oBACnCjjF,KAAK43O,eAAiB,KACtB9hO,EAAQsE,WAAa,CACjBhc,OAAQijB,EACR9J,MAAOA,EACP4kO,kBAAkB,EAClB17N,KAAM3K,IACF,IAAI5E,EAAI,IAAI,cAcZ,OAbA4E,EAAQuF,UAAYd,EAAOc,WAAad,EAAO3Y,KAC/CwY,EAAWqG,KAAK3K,GAASuI,MAAK,SAAUja,GACpC,IAAIg4O,EAAkBhhO,GAAkBggO,GAAY7gO,EAAOo4D,sBAAwBupK,EAAc,EAC7FE,IACAh4O,EAAO82O,GAA0B92O,EAAMmW,IAE3C5W,EAAKgkI,mBAAmBvjI,EAAM,KAAM,KAAM,CACtC4qB,MAAOktN,EACP3hO,OAAQA,EACR6/N,oBAAqBA,IAEzBlpO,EAAEyP,QAAQvc,MACV0c,KAAK5P,EAAE2iB,QACJ3iB,IAIf,eAAWipO,IACXA,EAAuB/jO,KAAKmE,EAAQzE,GAExC,IAAIumO,EAAkBvmO,EAAQsE,WAAW2+J,YACrCp1K,EAAO3D,KAkBX,OAjBA8V,EAAQsE,WAAW2+J,YAAc,SAAS30K,GACtC,IAAImG,EAAQnG,EAcZ,OAbI63O,IACI,IAAMj8O,KAAKisD,aAAgBjsD,KAAKuoG,gBAChCh+F,EAAQA,EAAMyJ,MAAM,GACpBzJ,EAAMoY,QAAQ,OAElBhf,EAAKgkI,mBAAmBp9H,EAAO,KAAM,KAAM,CACvCykB,MAAO,EACPzU,OAAQA,EACR6/N,oBAAqBA,KAG7B7vO,EAAQ8xO,GAAmBA,EAAgBjmO,KAAKpW,KAAMuK,IAAUA,EAChE5G,EAAK43O,qBAAqBhxO,EAAOgQ,GAC1BhQ,GAEJuL,EAAQsE,aAEnBkiO,iBAAkB,WACd,OAAOt8O,KAAK43O,gBAEhBxpK,qBAAsB,SAAS74D,EAAagnO,GACxC,IAAIjlL,EAAoBt3D,KAAKs9D,mBACzB/iD,EAAS,OAAA9f,EAAA,YAAO,EAAM,GAAIuF,KAAKs9D,mBAAmBlF,aAAa7iD,IACnE,GAAIgF,EAAQ,CACR,IAAIikC,EAAe8Y,EAAkByH,gBAAgBxpD,GACjDkkG,EAAO8iI,EAAev8O,KAAKqd,QAAQ,eAAiBrd,KAAKqd,QAAQ,qBACjEw8N,EAAiBA,GAAkBpgI,EAAKnhD,oBAAoB97C,GAAG+/N,EAAehiO,EAAOmjC,WAAac,GACtGx+C,KAAKw8O,yBAAyB,CAC1BC,cAAe5C,EACft/N,OAAQA,EACRusC,aAAa,EACbhoD,MAAO,WACHw4D,EAAkBoQ,aAAanyD,EAAa,CACxC8nC,aAAcr9C,KAAKq9C,aACnBD,WAAYp9C,KAAKo9C,kBAMrCo/L,yBAA0B,SAAS1mO,GAC/B,IAAInS,EAAO3D,KACPua,EAASzE,EAAQyE,OACrB,GAAIA,EAAQ,CACR,IAAItF,EAAgB,QAAYqG,iBAAiBf,GAC7CH,EAAazW,EAAKsU,gBAAgBmC,aAClCupE,EAAkBvpE,GAAcA,EAAWgG,mBAAmBmsC,UAClE,OAAA9xD,EAAA,WAAOqb,EAASyE,EAAQ,CACpB9b,KAAMwW,GAAiBA,EAAcrb,OAAS,EAAI,OAAS,OAC3D+pF,gBAAiBA,EACjB3+B,UAAW,SAASphD,GAChB,IAAI84O,EAAsB94O,EAAEgO,UAAU2hG,kBAAkBopI,YAAY,YACpED,GAAuBA,EAAoB9jO,OAAO,eAAe,SAAUhV,GACvE,IAAI0zD,EAAoB3zD,EAAKguD,cAAc,WACvCirL,EAAuBtlL,EAAkBoQ,aAAa5xD,EAAQuF,UAAW,gBAC7EuhO,EAAuBA,GAAwB,GAC/CA,EAAqBvxO,MAAQzH,EAAEyH,MAC/BuxO,EAAqB//N,OAASjZ,EAAEiZ,OAChCy6C,EAAkBoQ,aAAa5xD,EAAQuF,UAAW,eAAgBuhO,GAAsB,OAGhGj4L,SAAU,IAAM,GAAa3kD,QAEjC8V,EAAQsE,WAAazW,EAAK+tF,cAAc57E,GACpCA,EAAQwjO,kBACRxjO,EAAQsE,WAAWhc,OAAS,KAC5B0X,EAAQ1K,UAAY,SAExBzH,EAAK23O,kBAAkBltK,qBAAqBt4D,EAAQ2mO,cAAe3mO,KAG3E8jO,qBAAsB,WAClB55O,KAAKs7O,kBAAkB1B,0BAG3BiD,GAAwC,OAAApiP,EAAA,WAAO,GAAIigP,GAAmB,CACtEh3K,mBAAoB,SAAS7L,EAAO/hD,GAChC,IACI6kO,EADAh3O,EAAO3D,KAEPua,EAASzE,EAAQyE,QAChBA,EAAOsE,SAAW49B,GAAqBliC,IAAW5W,EAAKiV,OAAO,yBAA2B,WAAa9C,EAAQ6E,UAC/GggO,EAAyBh3O,EAAK+yD,kBAAkB,CAC5C90D,KAAM,eACNo1D,YAAaa,EACbt9C,OAAQA,EACRs/B,gBAAiBl2C,EAAKiV,OAAO,qBAEjC+hO,GAA0Bh3O,EAAKm5O,2BAA2BnC,EAAwBpgO,EAAQ,iBAE9Fva,KAAKC,SAASnB,MAAMkB,KAAME,YAE9B48O,2BAA4B,SAAS7kL,EAAY19C,EAAQ49C,GACrD,IAAIx0D,EAAO3D,KACP,iBAAmBm4D,GACnB,OAAaruD,GAAGmuD,EAAY,OAAgBt0D,EAAKwtD,cAAa,SAAUvtD,GACpEA,EAAEouD,MAAMo4C,kBACRzmG,EAAKguD,cAAc,gBAAgByc,qBAAqB7zD,EAAOnZ,OAAO,QAIlFm3D,iBAAkB,SAASV,EAAOt9C,EAAQ49C,GACtC,IAAIF,EAAaj4D,KAAKC,SAAS43D,EAAOt9C,EAAQ49C,GAC9CF,GAAcj4D,KAAK88O,2BAA2B7kL,EAAY19C,EAAQ49C,IAEtE4kL,8BAA+B,WACvB/8O,KAAK4Y,OAAO,yBACZ5Y,KAAKk4D,kBAAkB,iBAG/B8kL,4BAA6B,WACzB,OAAO,GAEXx4K,qBAAsB,SAAS5gE,GAC3B,IAAI6gE,EAAc7gE,EAAE6gE,YAChB,OAAc5qD,aAAa4qD,EAAa,CAAC,eAAgB,eACrDzkE,KAAKg9O,+BACLh9O,KAAK+8O,gCAIb/8O,KAAKC,SAAS2D,MAGlBq5O,GAAkC,OAAAxiP,EAAA,WAAO,GAAIigP,GAAmB,CAChEhyG,sBAAuB,SAAS1sC,EAAcxtC,GAC1C,IAEImsL,EAFAh3O,EAAO3D,KACPi8F,EAAQt4F,EAAK1D,SAASnB,MAAM6E,EAAMzD,WAmBtC,OAjBKsuD,EAAY3vC,SAAW49B,GAAqB+R,IAAgB7qD,EAAKiV,OAAO,0BACzE+hO,EAAyBh3O,EAAK+yD,kBAAkB,CAC5C90D,KAAM,eACNo1D,YAAailC,EACb1hF,OAAQ,CACJnP,UAAW,eAAoBzH,EAAKiV,OAAO,eAC3CykC,aAAcmR,EAAYnR,aAC1BZ,sBAAsB,GAE1B5C,iBAAiB,IAErB8gM,GAA0B,OAAa7wO,GAAG6wO,EAAwB,OAAgBh3O,EAAKwtD,cAAa,SAAUvtD,GAC1G,IAAIouD,EAAQpuD,EAAEouD,MACdA,EAAMo4C,kBACNzmG,EAAKguD,cAAc,gBAAgByc,qBAAqB5f,EAAYptD,OAAO,QAG5E66F,KAMf,IAAI,GAAkC,CAClCi7I,2BAA4B,WACxB,OAAO,GAEXplJ,2BAA4B,WACxB,GAAI9xF,KAAKk3O,6BACL,OAAOl3O,KAAKC,WAEhB,IAAIwZ,EAAU,CAACzZ,KAAKC,YAChBue,EAAUxe,KAAKs9D,mBAAmBC,kBAAkB,MAAM,GAC1D0Q,EAAyBjuE,KAAK2xD,cAAc,gBAC5CykB,EAAgBnI,EAAuBquK,mBA0B3C,OAzBA,eAAK99N,GAAS,SAAUzf,EAAGwb,GACvB,IAAInc,EACJ,KAAIg4E,GAAiBA,EAAch1E,QAAUmZ,EAAOnZ,QAGhDq7C,GAAqBliC,IAAWA,EAAOyiC,2BAA6Bn+C,MAAMuY,QAAQmD,EAAO8iC,eAAiB9iC,EAAO8iC,aAAazjD,OAAQ,CACtI,IAAIyjD,EAAe,GACnB,eAAK9iC,EAAO8iC,cAAc,SAAUt+C,EAAGsY,GAC/BxY,MAAMuY,QAAQC,GACdjZ,EAASiZ,GAELkD,EAAOs7D,mBAAqB,OAAc/gE,WAAWyF,EAAOxF,WAAa,WAAawF,EAAOxF,WAC7FsC,EAAckD,EAAOs7D,iBAAiBx+D,IAE1CjZ,EAASmc,EAAOyqE,uBAAuB3tE,EAAa,IAAK,iBAEzDjZ,IACAA,EAAOmX,YAAcgF,EAAOnZ,OAEhCi8C,EAAap6C,KAAK7E,MAEtBi/C,EAAe,OAAc7jC,eAAe6jC,EAAc,MAC1D5jC,EAAQxW,KAAK,YAAcsX,EAAO6iC,WAAa,CAAC,IAAKC,GAAgBA,OAGtE,OAAc7jC,eAAeC,KAGjCyjO,GAAqB,CAC5Bv/O,eAAgB,WACZ,MAAO,CACHw8C,wBAAwB,EACxB/zB,aAAc,CACVm0B,SAAS,EACTlvC,MAAO,IACPwR,OAAQ,IACR+/B,aAAa,EACb2C,cAAe,IACfE,MAAO,CACHe,WAAY,OAAoBnnD,OAAO,qCACvConD,GAAI,OAAoBpnD,OAAO,6BAC/BknD,OAAQ,OAAoBlnD,OAAO,qCAKnDm8D,YAAa,CACTpvC,aAAci1N,IAElB3lL,MAAO,CACHynL,iBAAkBlE,IAEtBrjL,UAAW,CACPJ,YAAa,CACTpxD,KAAM,IAEVsxD,MAAO,CACHkX,kBAAmBiwK,GACnBxgJ,YAAa4gJ,MCrdzB,EAAK7mL,eAAe,eAAgB8mL,I,iBCAhCE,GAA6B,yBAC7BC,GAAmCD,GAA6B,SAChEE,GAAiCF,GAA6B,OAC9DG,GAAuCH,GAA6B,aACpEI,GAAY,IAEhB,SAAS,GAAeC,EAAezkO,GACnC,IAAI0kO,EAAe,eAAE,SAASvlO,SAASklO,IACnCM,EAAa,eAAE,SAASxlO,SAASmlO,IACjCt2N,EAASy2N,EAAc57O,OAAS,GAChC+7O,EAAgB,SAAS52N,GACzB,OAAOA,GAAUA,EAAOptB,OAAS,EAAIotB,EAAO,GAAK,MAEjD62N,EAAc,SAAS72N,GACvB,OAAOA,GAAU,IAAMA,EAAOptB,OAASotB,EAAO,GAAK,MAEvDhO,EAAU+gB,OAAO2jN,GACjB1kO,EAAU+gB,OAAO,eAAE,UAAU5hB,SAASolO,IAAsChhP,KAAKihP,KACjFxkO,EAAU+gB,OAAO4jN,GACjB3kO,EAAUb,SAASilO,IACnBp9O,KAAK89O,eAAejlH,aAAaziH,KAAKpW,KAAM09O,EAAc,OAAAjjP,EAAA,WAAO,GAAIgjP,EAAczyO,MAAOyyO,EAAe,CACrG57O,MAAO+7O,EAAc52N,GACrB8xG,WAAY,gBACZC,SAAU,SAASl3H,GACfmlB,EAAS,CAACnlB,EAAOg8O,EAAY72N,IAC7By2N,EAAc1kH,SAAS/xG,OAG/BhnB,KAAK89O,eAAejlH,aAAaziH,KAAKpW,KAAM29O,EAAY,OAAAljP,EAAA,WAAO,GAAIgjP,EAAczyO,MAAOyyO,EAAe,CACnG57O,MAAOg8O,EAAY72N,GACnB8xG,WAAY,gBACZC,SAAU,SAASl3H,GACfmlB,EAAS,CAAC42N,EAAc52N,GAASnlB,GACjC47O,EAAc1kH,SAAS/xG,OAI5B,SAAS+2N,GAAU7yO,EAAS+2E,GAC/B,MAAO,CACHrgF,KAAM,UACNsJ,QAASA,EACT2wC,KAAM,QACNmiM,eAAgBR,GAChBr9L,UAAW,CAAC,SAAU,OAAQ,YAC9BC,eAAgB,GAAe5kC,KAAKymE,GACpCg8J,cAAc,GCjDtB,IAAI,GAAkB,CAClB,IAAK,QACL,KAAM,WACN,IAAK,OACL,KAAM,cACN,IAAK,UACL,KAAM,iBACNlM,YAAa,iBACblsL,SAAU,WACVmsL,WAAY,aACZC,SAAU,WACViM,QAAS,UACTC,WAAY,cAEZC,GAAiB,CACjB,IAAK,QACL,KAAM,WACN,IAAK,WACL,KAAM,kBACN,IAAK,cACL,KAAM,qBACNpM,WAAY,aACZnsL,SAAU,WACVksL,YAAa,cACbE,SAAU,WACViM,QAAS,UACTC,WAAY,aACZv4L,QAAS,WAEE,IACXy4L,yBAA0B,SAASC,GAC/B,OAAO,GAAgBA,IAE3BC,yBAA0B,SAASD,GAC/B,OAAOF,GAAeE,KCF1BE,GAAoB,SACpBC,GAAkB,YAClBC,GAAsB,MACtBC,GAAkB,IAClBC,GAAsB,KACtB,GAAsB,CACtBvjP,OAAQ,CAAC,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,UAAW,cACrD89B,OAAQ,CAAC,WAAY,cAAe,aAAc,WAAY,IAAK,KAAM,UAAW,cACpF7/B,KAAM,CAAC,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,UAAW,cACnDs6E,SAAU,CAAC,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,UAAW,cACvDirK,QAAS,CAAC,IAAK,KAAM,UAAW,cAChCC,OAAQ,CAAC,UAAW,eAEpBC,GAAiB,CACjBzlP,KAAM,YACNs6E,SAAU,sBAEVorK,GAAoB,CAAC,IAAK,KAAM,UAAW,cAC3CC,GAA6B,CAAC,UAAW,gBAAiB,YAAa,WAAY,iBAAkB,YAAa,gBAAiB,mBAAoB,SAAU,SAAU,WAAY,4BAA6B,QACpNC,GAAuB,mBACvBC,GAAiCD,GAAuB,QACxDE,GAAsCD,GAAiC,QACvEE,GAA2CF,GAAiC,aAC5EG,GAAiDD,GAA2C,SAEhG,SAASE,GAAsBv0O,EAAOnJ,GAClC,IAAI29O,EAAcx0O,EAAM3R,QAAU0lP,GAAe/zO,EAAM+J,UACvD,OAAO,QAAa1b,OAAOwI,EAAO29O,GAGtC,SAASC,GAAgBloO,GACrB,OAAOA,GAASA,EAAM3d,OAAS,GAAK,MAAQ2d,EAAM,KAAOmoO,GAAYnoO,GAElE,SAASooO,GAAiBpoO,GAC7B,OAAOkoO,GAAgBloO,GAASA,EAAM,GAAKA,EAG/C,SAASqoO,GAAiBroO,EAAOsoO,GAM7B,OALIJ,GAAgBloO,GAChBA,EAAM,GAAKsoO,EAEXtoO,EAAQsoO,EAELtoO,EAGX,SAASuoO,GAA2BvoO,EAAO1V,IACnC,SAASA,GACL,OAAQ,IAAMA,EAAMvD,QAAQ,KADhC,CAEEuD,GAQK49O,GAAgBloO,IACrB,SAASA,GACP,IAAIsoO,EAAWF,GAAiBpoO,GAChCA,EAAM3d,OAAS,EACf,GAAGqJ,KAAKnE,MAAMyY,EAAOsoO,GAHvB,CAIAtoO,GAZGkoO,GAAgBloO,IACf,SAASA,GACP,IAAIsoO,EAAWtoO,EAAMvD,MAAM,GAC3BuD,EAAM3d,OAAS,EACf2d,EAAMtU,KAAK,IAAK48O,GAHlB,CAIAtoO,GAUP,SAASwoO,GAAcxoO,EAAO1V,GACjCi+O,GAA2BvoO,EAAO1V,GAClC,IACIpG,EADAokP,EAAWF,GAAiBpoO,GAYhC,OAVA1V,EAAQ,SAASA,GACb,OAAQ,IAAMA,EAAMvD,QAAQ,KAAOuD,EAAQA,EAAMyzB,UAAU,GADvD,CAENzzB,GACA,SAASg+O,EAAUh+O,GACjB,IAAKpG,EAAI,EAAGA,EAAIokP,EAASjmP,OAAQ6B,IACxBoD,MAAMuY,QAAQyoO,EAASpkP,MACxBokP,EAASpkP,GAAKoG,GAHxB,CAMAg+O,EAAUh+O,GACL0V,EAEJ,SAASyoO,GAAiBzoO,EAAO0oO,GACpC,IAAIC,EAAaC,GAAc5oO,GAC/B,OAAO0oO,EAAgB7hP,QAAO,SAAUyL,GACpC,OAAOA,EAAKhI,QAAUq+O,KACtB,GAGR,SAASE,GAAqBP,GAC1B,GAAIH,GAAYG,GACZ,OAAOnB,GAGX,IADA,IAAI78O,EAAQ,GACHpG,EAAI,EAAGA,EAAIokP,EAASjmP,OAAQ6B,IAAK,CACtC,IAAIoO,EAAOg2O,EAASpkP,GACpB,IAAKoD,MAAMuY,QAAQvN,GAAO,CACtB,GAAIhI,GAASA,IAAUgI,EACnB,MAAM,IAAI,QAAW6hB,MAAM,SAE3B,MAAQ7hB,IACRhI,EAAQgI,IAIpB,OAAOhI,EAEJ,SAASs+O,GAAc5oO,GAC1B,IAAIsoO,EAAWF,GAAiBpoO,GAC5B1V,EAAQu+O,GAAqBP,GAOjC,OANKh+O,IACDA,EAAQ68O,IAERmB,IAAatoO,IACb1V,EAAQ,IAAMA,GAEXA,EAGX,SAASw+O,GAA2Br1O,GAChC,OAAOA,EAAM8P,QAAUkkO,IAAqB,GAAoBh0O,EAAM+J,UAAYypO,IAGtF,SAAS8B,GAAaC,GAClB,OAAO1hP,MAAMuY,QAAQmpO,IAAWA,EAAO3mP,OAEpC,SAAS4mP,GAAoBx1O,GAChC,IAAI/L,EAASqhP,GAAat1O,EAAMmyC,kBAAoBnyC,EAAMmyC,iBAAmBkjM,GAA2Br1O,GACxG,OAAO,OAAAvQ,EAAA,WAAO,GAAIwE,GAEf,SAASwhP,GAAsB/mO,EAAW2pC,GAC7C,IAAI0nC,EAAgB,GAA2BwzJ,yBAAyB7kO,GACxE,OAAO2pC,GAA+BA,EAA4B0nC,GAAiB1nC,EAA4B0nC,GAAiBA,EAE7H,SAAS21J,GAA0BhnO,EAAWinO,GACjD,IAAK,IAAIllP,EAAI,EAAGA,EAAIklP,EAAoB/mP,OAAQ6B,IAC5C,GAAIklP,EAAoBllP,GAAGoG,QAAU6X,EACjC,OAAOinO,EAAoBllP,GAGnC,MAAM,IAAI,OAAOiwB,MAAM,QAAShS,GAE7B,SAASknO,GAAmBz9L,EAAkBvhD,GACjD,IAAIi/O,EAAqB19L,EAAiB/kD,QAAO,SAAUyL,GACvD,OAAOA,EAAKjI,OAASA,KAEzB,OAAOi/O,EAAmBjnP,OAASinP,EAAmB,GAAK,KAExD,SAASC,GAAuB91O,EAAOq4C,EAA6BF,GACvE,IAAIhG,EAAmBqjM,GAAoBx1O,GACvC+1O,IAAkB/1O,EAAM8P,OAU5B,OATAqoC,EAAiBjiD,SAAQ,SAAU0iD,GAC/B,IAAK54C,EAAMmyC,mBAAqB,IAAMA,EAAiB7+C,QAAQslD,EAAgBhiD,MAAO,CAClF,IAAIu+C,EAAYyD,GAAmBA,EAAgBzD,UAC/C6gM,IAAuBD,KAAkBn9L,EAAgBq6L,cACxD+C,GAAwB7gM,GAAaA,EAAU7hD,QAAQ0M,EAAM+J,UAAYypO,KAAsB,GAChGrhM,EAAiBl6C,KAAK2gD,EAAgBhiD,UAI3Cu7C,EAAiBrhD,KAAI,SAAU4d,GAClC,IAAIkqC,EAAkBg9L,GAAmBz9L,EAAkBzpC,GAC3D,OAAIkqC,EACO,CACH/H,KAAM+H,EAAgB/H,MAAQ4iM,GAC9BliP,KAAMqnD,EAAgB14C,SAAW,gBAAW04C,EAAgBhiD,MAC5DC,MAAO+hD,EAAgBhiD,KACvBq/O,UAAU,GAGP,CACHplM,KAAM,GAA2BwiM,yBAAyB3kO,IAAc+kO,GACxEliP,KAAMkkP,GAAsB/mO,EAAW2pC,GACvCxhD,MAAO6X,MAKhB,SAASwnO,GAAoBl2O,GAChC,OAAOA,EAAM+3C,wBAA0By9L,GAAoBx1O,GAAO,GAE/D,SAASm2O,GAAgBn2O,EAAOm4C,GACnC,IAAI/7B,EAAY,CAACpc,EAAMqQ,UAAW,GAAI,IAClCijO,EAAkB4C,GAAoBl2O,GAE1C,OADAo2O,GAA2Bh6N,EAAWk3N,EAAiBn7L,GAChD/7B,EAEJ,SAASi6N,GAAW9pO,EAAO1N,GAC9B,IAAIg2O,EAAWF,GAAiBpoO,GAC5BnW,EAAQy+O,EAASvhP,QAAQuL,GAK7B,OAJAg2O,EAASx7K,OAAOjjE,EAAO,GACnB,IAAMy+O,EAASjmP,QACfimP,EAASx7K,OAAOjjE,EAAO,GAEpBmW,EAEJ,SAAS+pO,GAAiBz/O,GAC7B,IAAI0/O,EAAaC,GAAyB3/O,GACtC4/O,EAAiBF,EAAaG,GAAuC7/O,GAASA,EAClF,OAAO0/O,EAAa,CAAC,IAAK,CAACE,IAAmB,CAACA,GAY5C,SAAS,GAAQ53O,EAAM0N,GAC1B,IAAIsoO,EAAWF,GAAiBpoO,GAC5B2oO,EAAaC,GAAcN,GAE/B,OADA,IAAMA,EAASjmP,OAASimP,EAASl9N,QAAQ9Y,GAAQg2O,EAAS58O,KAAK4G,EAAMq2O,GAC9D3oO,EAEJ,SAASoqO,GAAStmO,EAAW+nC,GAChC,IAAK,IAAI3nD,EAAI,EAAGA,EAAI2nD,EAAOxpD,OAAQ6B,IAAK,CACpC,GAAI2nD,EAAO3nD,GAAGmG,OAASyZ,EACnB,OAAO+nC,EAAO3nD,GAElB,GAAI2nD,EAAO3nD,GAAG4f,UAAUvd,gBAAkBud,EAAUvd,cAChD,OAAOslD,EAAO3nD,GAGtB,IAAImmP,EAAiB9tD,GAAS1wI,GAAQ,GAAMhlD,QAAO,SAAUyL,GACzD,OAAOA,EAAKwR,UAAUvd,gBAAkBud,EAAUvd,iBAEtD,GAAI8jP,EAAehoP,OAAS,EACxB,OAAOgoP,EAAe,GAE1B,MAAM,IAAI,OAAOl2N,MAAM,QAASrQ,GAE7B,SAAS,GAAQwkO,GACpB,QAAKhhP,MAAMuY,QAAQyoO,KAGZA,EAASjmP,OAAS,GAAKiF,MAAMuY,QAAQyoO,EAAS,KAAOhhP,MAAMuY,QAAQyoO,EAAS,KAEhF,SAASH,GAAYG,GACxB,QAAKhhP,MAAMuY,QAAQyoO,KAGZA,EAASjmP,OAAS,IAAMiF,MAAMuY,QAAQyoO,EAAS,MAAQhhP,MAAMuY,QAAQyoO,EAAS,KAGzF,SAASgC,GAAoBtqO,EAAO4rC,EAAkB2+L,GAClDA,EAAwBA,GAAyBpD,GAGjD,IAFA,IAAI+C,EAAiBrB,GAAqB7oO,GAAOzZ,eAAiBgkP,EAC9DC,EAAa,GACRtmP,EAAI,EAAGA,EAAI8b,EAAM3d,OAAQ6B,IAC1B,GAAQ8b,EAAM9b,KACdsmP,EAAW9+O,KAAK++O,GAAwBzqO,EAAM9b,GAAI0nD,EAAkB2+L,IACpEC,EAAaE,GAA4BF,EAAYN,IAC9C/B,GAAYnoO,EAAM9b,MACzBsmP,EAAW9+O,KAAKi/O,GAAwB3qO,EAAM9b,GAAI0nD,IAClD4+L,EAAaE,GAA4BF,EAAYN,IAM7D,OAHI,IAAMM,EAAWnoP,SACjBmoP,EAAaE,GAA4BF,EAAYN,IAElDM,EAGX,SAASI,GAA4B/6N,EAAW+7B,GAC5C,IAAIS,EAAkBg9L,GAAmBz9L,EAAkB/7B,EAAU,IACrE,OAAOw8B,GAAmBA,EAAgBhiD,OAASwlB,EAAU,GAGjE,SAAS86N,GAAwB96N,EAAW+7B,GACxC,OAAIg/L,GAA4B/6N,EAAW+7B,IAGvC/7B,EAAUxtB,OAAS,IACnBwtB,EAAU,GAAKA,EAAU,GACzBA,EAAU,GAAKu3N,IAJRv3N,EASf,SAASo6N,GAAyB9nO,GAC9B,OAAQ,IAAMA,EAAUpb,QAAQ,OAGpC,SAASojP,GAAuChoO,GAC5C,OAAOA,EAAU4b,UAAU,GAAGx3B,cAGlC,SAASskP,GAA+BvC,EAAU4B,GAC9C,IAAIF,EAAaC,GAAyBC,GAE1C,OADAA,EAAiBF,EAAaG,GAAuCD,GAAkBA,EAChFF,EAAa,CAAC,IAAK1B,EAAU4B,GAAkB,CAAC5B,EAAU4B,GAGrE,SAASQ,GAA4B1qO,EAAOkqO,GACxC,IAAIF,EAAaC,GAAyBC,GAC1CA,EAAiBF,EAAaG,GAAuCD,GAAkBA,EACvFlqO,EAAMtU,KAAKw+O,GACX,IAAIxiP,EAASsY,EAIb,OAHIgqO,IACAtiP,EAAS,CAAC,IAAKA,IAEZA,EAEJ,SAAS+iP,GAAwBngP,EAAOshD,EAAkB2+L,GAE7D,OADAA,EAAwBA,GAAyBpD,GAC5C78O,GAGLA,EAAQ,OAAApH,EAAA,YAAO,EAAM,GAAIoH,GACrB69O,GAAY79O,GACLugP,GAA+BF,GAAwBrgP,EAAOshD,GAAmB2+L,GAExFrC,GAAgB59O,GACT,CAAC,IAAK69O,GAAY79O,EAAM,IAAMugP,GAA+BF,GAAwBrgP,EAAM,GAAIshD,GAAmB2+L,GAAyBrC,GAAgB59O,EAAM,IAAMugP,GAA+BJ,GAAwBngP,EAAM,GAAIshD,GAAmB2+L,GAAyBD,GAAoBhgP,EAAM,GAAIshD,EAAkB2+L,IAExUD,GAAoBhgP,EAAOshD,EAAkB2+L,IATzCR,GAAiBQ,GAWzB,SAASO,GAAoBj/L,GAChC,OAAOA,EAAOl7B,QAAO,SAAUjpB,EAAQ+L,GACnC,GAAI,eAAUA,EAAMqQ,WAAY,CAC5B,IAAIinO,EAAkB,GACtB,IAAK,IAAIxnP,KAAOkQ,EACRA,EAAMlQ,IAAQmkP,GAA2B3gP,QAAQxD,IAAQ,IACzDwnP,EAAgBxnP,GAAOkQ,EAAMlQ,IAGrCwnP,EAAgBj7N,iCAAmC,QAAYA,iCAC1D,eAAUi7N,EAAgBvtO,YAC3ButO,EAAgBvtO,SAAWypO,IAE1B,eAAU8D,EAAgB9nO,YAC3B8nO,EAAgB9nO,SAAW,OAAoBnhB,OAAO,wBAErD,eAAUipP,EAAgB7nO,aAC3B6nO,EAAgB7nO,UAAY,OAAoBphB,OAAO,yBAE3D4F,EAAOgE,KAAKq/O,GAEhB,OAAOrjP,IACP,IAGR,SAASsjP,GAA6Bn7N,EAAWg8B,EAAQD,EAAkBjtC,GACvE,IAAIlL,EAAQ22O,GAASv6N,EAAU,GAAIg8B,GAC/Bo/L,EAAmBN,GAAwB96N,EAAW+7B,GACtDS,EAAkBT,EAAiBvpD,QAAUgnP,GAAmBz9L,EAAkBq/L,EAAiB,IACvG,OAAI5+L,GAAmBA,EAAgB5G,0BAC5B4G,EAAgB5G,0BAA0Bl+C,MAAM8kD,EAAiB,CAAC4+L,EAAiB,GAAIx3O,EAAOo4C,IAC9Fp4C,EAAMg6E,uBACNh6E,EAAMg6E,uBAAuBlmF,MAAMkM,EAAO,CAACw3O,EAAiB,GAAIA,EAAiB,GAAItsO,IACrFlL,EAAMgyC,0BACNhyC,EAAMgyC,0BAA0Bl+C,MAAMkM,EAAO,CAACw3O,EAAiB,GAAIA,EAAiB,GAAItsO,IAExFlL,EAAMqc,iCAAiCvoB,MAAMkM,EAAO,CAACw3O,EAAiB,GAAIA,EAAiB,GAAItsO,IAGvG,SAASusO,GAAoB5gP,EAAOuhD,EAAQD,EAAkBjtC,GACjE,IAAK,eAAUrU,GACX,OAAO,KAEX,GAAI49O,GAAgB59O,GAAQ,CACxB,IAAI2gP,EAAmBC,GAAoB5gP,EAAM,GAAIuhD,EAAQD,EAAkBjtC,GAC/E,MAAO,CAAC,IAAKssO,GAEjB,IAAI3C,EAAWF,GAAiB99O,GAChC,GAAI69O,GAAYG,GACZ,OAAO0C,GAA6B1C,EAAUz8L,EAAQD,EAAkBjtC,IAAW,KAKnF,IAHA,IACIwsO,EADAzjP,EAAS,GAETihP,EAAaC,GAAcN,GACtBpkP,EAAI,EAAGA,EAAIokP,EAASjmP,OAAQ6B,IAC7B,GAAQokP,EAASpkP,KACjBinP,EAAoBD,GAAoB5C,EAASpkP,GAAI2nD,EAAQD,EAAkBjtC,GAC3EwsO,IACAjnP,GAAKwD,EAAOgE,KAAKi9O,GACjBjhP,EAAOgE,KAAKy/O,KAEThD,GAAYG,EAASpkP,MAC5BinP,EAAoBH,GAA6B1C,EAASpkP,GAAI2nD,EAAQD,EAAkBjtC,GACpFwsO,IACAzjP,EAAOrF,QAAUqF,EAAOgE,KAAKi9O,GAC7BjhP,EAAOgE,KAAKy/O,KAOxB,OAHI,IAAMzjP,EAAOrF,SACbqF,EAASA,EAAO,IAEbA,EAAOrF,OAASqF,EAAS,KAGjC,SAAS0jP,GAAoBprO,GAChC,IACI9b,EADAokP,EAAWF,GAAiBpoO,GAEhC,GAAI,IAAMsoO,EAASjmP,OACf,OAAO,KAEX,IAAIgpP,EAAiB,GACrB,IAAKnnP,EAAI,EAAGA,EAAIokP,EAASjmP,OAAQ6B,IAC7B,GAAI,GAAQokP,EAASpkP,IAAK,CACtB,IAAIonP,EAAuBF,GAAoB9C,EAASpkP,IACpDonP,EACAhD,EAASpkP,GAAKonP,EAEdD,EAAe3/O,KAAK48O,EAASpkP,SAE1BikP,GAAYG,EAASpkP,MACvBqnP,GAAiBjD,EAASpkP,KAC3BmnP,EAAe3/O,KAAK48O,EAASpkP,KAIzC,IAAKA,EAAI,EAAGA,EAAImnP,EAAehpP,OAAQ6B,IACnC4lP,GAAWxB,EAAU+C,EAAennP,IAExC,OAAI,IAAMokP,EAASjmP,OACR,MAEXimP,EAASx7K,OAAOw7K,EAASjmP,OAAS,EAAG,GACjC,IAAMimP,EAASjmP,SACf2d,EAAQqoO,GAAiBroO,EAAOsoO,EAAS,KAEzC,IAAMtoO,EAAM3d,OACL,KAEJ2d,GAEJ,SAASwrO,GAA0B/3O,EAAOnJ,EAAOwyG,GACpD,GAAI,KAAOxyG,EAAX,CAIA,IAAIiZ,EAAS9P,EAAM8P,OACnB,GAAIA,EAAOvQ,MACP8pG,EAAQv5F,EAAOjG,mBAAmBhT,IAAU,QACzC,CACH,IAAI2e,EAAmB,eAAW1F,EAAOV,YAAcU,EAAOV,WAAW,IAAMU,EAAOV,WAClFA,EAAa,IAAI,QAAWoG,GAChCpG,EAAW4oO,WAAWloO,EAAOoG,UAAWrf,GAAOwc,MAAK,SAAUpf,GAC1D,IAAI8W,EAAY,GACZ9W,IACA8W,EAAY+E,EAAOqG,YAAc,gBAAcrG,EAAOqG,YAArB,CAAkCliB,GAAUA,GAE7E+L,EAAMmL,gBACNJ,EAAY/K,EAAMmL,cAAc,CAC5BtU,MAAOA,EACPkU,UAAWA,KAGnBs+F,EAAQt+F,MACR+K,MAAK,WACLuzF,EAAQ,aAtBZA,EAAQ,IA2BhB,SAAS4uI,GAAsBj4O,EAAOnJ,EAAO+hD,EAAiB1tC,EAAQJ,GAClE,IAAIC,EAuBJ,OArBIA,GADA,IAASlU,EACGmJ,EAAMwP,UAAY,OAAoBnhB,OAAO,wBAClD,IAAUwI,EACLmJ,EAAMyP,WAAa,OAAoBphB,OAAO,wBAE9CkmP,GAAsBv0O,EAAOnJ,GAEzCmJ,EAAMmL,gBACNJ,EAAY/K,EAAMmL,cAAcC,KAAKpL,EAAO,CACxCnJ,MAAOA,EACPkU,UAAWA,EACXG,OAAQA,KAGZ0tC,GAAmBA,EAAgBztC,gBACnCJ,EAAY6tC,EAAgBztC,cAAcC,KAAKwtC,EAAiB,CAC5D/hD,MAAOA,EACPkU,UAAWA,EACX/K,MAAOA,EACPkL,OAAQA,GACTJ,IAEAC,EAGX,SAASmtO,GAAkBl4O,EAAOnJ,EAAO+hD,EAAiB1tC,GACtD,IAAIJ,EAAU,CACVkR,OAAQnlB,GAEZ,OAAOA,EAAM/F,IAAI6zB,GAAKszN,GAAsBj4O,EAAO2kB,EAAGi0B,EAAiB1tC,EAAQJ,IAGnF,SAASqtO,GAAkBthP,GACvB,MAAO,KAAOA,GAAS,OAASA,EAE7B,SAASuhP,GAAoBp4O,EAAOnJ,EAAO+hD,GAC9C,IAAI1tC,EAAShW,UAAUtG,OAAS,QAAK,IAAWsG,UAAU,GAAKA,UAAU,GAAK,gBAC9E,GAAIijP,GAAkBthP,GAClB,MAAO,GAEX,GAAIhD,MAAMuY,QAAQvV,GAAQ,CACtB,IAAI5C,EAAS,IAAI,cAQjB,OAPA,UAAKH,MAAMkB,KAAMkjP,GAAkBl4O,EAAOnJ,EAAO+hD,EAAiB1tC,IAASmI,MAAK,WAC5E,IAAK,IAAI+hI,EAAOlgJ,UAAUtG,OAAQy1C,EAAO,IAAIxwC,MAAMuhJ,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC7EhxG,EAAKgxG,GAAQngJ,UAAUmgJ,GAE3B,IAAI9jJ,EAAO8yC,EAAKzwB,KAAK/U,IAASs5O,GAAkBt5O,IAASwlC,EAAKvzC,IAAI+N,GAASs5O,GAAkBt5O,GAAe,IAAPA,GAAc,GACnH5K,EAAO0hB,QAAQpkB,MAEZ0C,EAEP,OAAOgkP,GAAsBj4O,EAAOnJ,EAAO+hD,EAAiB1tC,GAIpE,SAASmtO,GAAWpuH,EAAYuF,GAC5B,OAAOvF,EAAWr2G,MAAK,SAAU/U,GAC7B,OAAOA,EAAKwR,YAAcm/G,KAIlC,SAAS8oH,GAAuBC,EAAetuH,EAAYprH,GACvD,IAAIwR,EAAYxR,EAAKwR,UACjBmoO,GAAUnoO,KACVxR,EAAK2wH,SAAWipH,GAA6BpoO,GACxCgoO,GAAWpuH,EAAYprH,EAAK2wH,WAAc6oH,GAAWE,EAAe15O,EAAK2wH,WAC1E8oH,GAAuBC,EAAetuH,EAAY,CAC9CnmI,GAAI+a,EAAK2wH,SACTzlH,SAAU,SACVsG,UAAWxR,EAAK2wH,SAChBtvH,QAASw4O,GAA2B75O,EAAK2wH,UAAU,GACnDr9E,iBAAkB,CAAC,UAAW,iBAI1C83E,EAAWhyH,KAAK4G,GAGpB,SAAS65O,GAA2BroO,EAAW4nC,GAC3C,IAAI/3C,EAAU,GACd,GAAI+3C,EACA5nC,EAAYA,EAAUia,UAAUja,EAAUka,YAAY,KAAO,QAC1D,GAAIiuN,GAAUnoO,GAOjB,OANAA,EAAUxf,MAAM,KAAKqF,SAAQ,SAAU8J,EAAO5J,EAAOogB,GACjDtW,GAAW,gBAAWF,GAClB5J,IAAUogB,EAAI5nB,OAAS,IACvBsR,GAAW,QAGZA,EAEX,OAAO,gBAAWmQ,GAEf,SAASy4K,GAAS1wI,EAAQH,GAE7B,IADA,IAAI14C,EAAQ,GACH9O,EAAI,EAAGA,EAAI2nD,EAAOxpD,OAAQ6B,IAAK,CACpC,IAAIoO,EAAO,OAAApP,EAAA,YAAO,EAAM,CACpByQ,QAASw4O,GAA2BtgM,EAAO3nD,GAAG4f,UAAW4nC,IAC1DG,EAAO3nD,IACVoO,EAAK/a,GAAK+a,EAAKjI,MAAQiI,EAAKwR,UACxB4nC,EACAqgM,GAAuBlgM,EAAQ74C,EAAOV,GAEtCU,EAAMtH,KAAK4G,GAGnB,OAAOU,EAGX,SAASi5O,GAAUnoO,GACf,OAAQ,IAAMA,EAAUka,YAAY,KAGxC,SAASkuN,GAA6BpoO,GAClC,OAAOA,EAAUia,UAAU,EAAGja,EAAUka,YAAY,MAEjD,SAASouN,GAAsB95O,EAAMorH,GACxC,GAAIuuH,GAAU35O,EAAKwR,WAEf,IADA,IAAIm/G,EAAWipH,GAA6B55O,EAAKwR,WACxC5f,EAAI,EAAGA,EAAIw5H,EAAWr7H,OAAQ6B,IACnC,GAAIw5H,EAAWx5H,GAAG4f,YAAcm/G,EAC5B,OAAOmpH,GAAsB1uH,EAAWx5H,GAAIw5H,GAAc,IAAMprH,EAAKqB,QAIjF,OAAOrB,EAAKqB,QAET,SAASk2O,GAA2Bh6N,EAAW1N,EAAWypC,GAC7D,IAAIS,EAAkBg9L,GAAmBz9L,EAAkBzpC,GAC3D,OAAIkqC,IACI,IAAUA,EAAgBvD,UAC1Bj5B,EAAU,GAAK1N,EACf0N,EAAUxtB,OAAS,IAEnBwtB,EAAU,GAAK1N,EACf0N,EAAU,GAAK,IAEZA,IAEP,YAAc1N,GACd0N,EAAU,GAAKu3N,GACfv3N,EAAU,GAAK,MACR,eAAiB1N,GACxB0N,EAAU,GAAKw3N,GACfx3N,EAAU,GAAK,OAEfw8B,EAAkBg9L,GAAmBz9L,EAAkB/7B,EAAU,KAC7Dw8B,GAAmB,IAAMx8B,EAAUxtB,QAAU,OAASwtB,EAAU,MAChEA,EAAU,GAAK,IAEnBA,EAAU,GAAK1N,GAEZ0N,GAEJ,SAASw8N,GAAkBx8N,GAC9B,IAAIlc,EAUJ,OAPQA,EAFJ,OAASkc,EAAU,GACfA,EAAU,KAAOu3N,GACP,UAEA,aAGJv3N,EAAU,GAEjBlc,EAEJ,SAAS43O,GAAiB17N,GAC7B,MAAO,KAAOA,EAAU,GAErB,SAASy8N,GAAoB1gM,EAAkB2gM,EAAgB7hK,GAClE,IAAIhjF,EAAS,OAAAxE,EAAA,YAAO,EAAM,GAAI0oD,GAC1B4gM,GAAgB,EAYpB,OAXA9kP,EAAO2f,MAAK,SAAUglC,EAAiBxiD,GACnC,GAAI,YAAcwiD,EAAgBhiD,KAE9B,OADAmiP,EAAe3iP,GACR,MAGV,IAAM2iP,EACP9kP,EAAO8kP,GAAgB,OAAAtpP,EAAA,WAAOsjP,GAAU+F,EAAgB7hK,GAAUhjF,EAAO8kP,IAEzE9kP,EAAO0jB,QAAQo7N,GAAU+F,EAAgB7hK,IAEtChjF,EAGX,SAAS+kP,GAAmB5lP,EAAQ6lP,GAChC,OAAO7lP,EAAO,KAAO6lP,EAElB,SAASC,GAAgC9lP,EAAQid,GACpD,IAAKjd,GAAU,IAAMA,EAAOxE,OACxB,OAAO,KAEX,GAAI8lP,GAAYthP,GAAS,CACrB,IAAI+lP,EAAsBH,GAAmB5lP,EAAQid,GACrD,OAAQ8oO,EAA+B,KAAT/lP,EAE9B,OAAOgmP,GAAuBhmP,EAAQ,CAACid,IAAY,GAI3D,SAAS+oO,GAAuBhmP,EAAQimP,EAAaC,GACjD,IAAIrlP,EAAS,GAiBb,OAhBAb,EAAO8C,SAAQ,SAAU2I,GACjB61O,GAAY71O,GACRm6O,GAAmBn6O,EAAMw6O,EAAY,IACjCC,GACArlP,EAAOgE,KAAKohP,GACZC,GAAU,GAEVrlP,EAAOolE,OAAOplE,EAAOrF,OAAS,EAAG,GAGrCqF,EAAOgE,KAAK4G,IAGf5K,EAAOrF,QAAU,GAAQiQ,KAAU5K,EAAOgE,KAAK4G,MAGpD,IAAM5K,EAAOrF,OACN,MAEP0qP,IACArlP,EAAOgE,KAAKy7O,IACZz/O,EAAOgE,KAAKohP,IAET,IAAMplP,EAAOrF,OAASqF,EAAO,GAAKA,GAEtC,SAASslP,GAAYnmP,EAAQimP,GAChC,GAAI,OAASjmP,GAAU,IAAMA,EAAOxE,OAChC,OAAOyqP,EAEX,GAAI3E,GAAYthP,GACZ,OAAI4lP,GAAmB5lP,EAAQimP,EAAY,IAChCA,EAEA,CAACjmP,EAAQsgP,GAAqB2F,GAG7C,IAAInE,EAAaC,GAAc/hP,GAC/B,OAAI8hP,IAAexB,GACR,CAAC2F,EAAa,MAAOjmP,GAEzBgmP,GAAuBhmP,EAAQimP,GAAa,GAEhD,SAASG,GAAqBpmP,EAAQid,GACzC,GAAI,OAASjd,GAAU,IAAMA,EAAOxE,OAChC,MAAO,GAEX,GAAI8lP,GAAYthP,GACZ,OAAI4lP,GAAmB5lP,EAAQid,GACpB,CAACjd,GAED,GAGf,IAAI8hP,EAAaC,GAAc/hP,GAC/B,GAAI8hP,IAAexB,GACf,MAAO,GAEX,IAAIz/O,EAASb,EAAOA,QAAO,SAAUyL,GACjC,OAAO61O,GAAY71O,IAASm6O,GAAmBn6O,EAAMwR,MAEzD,OAAOpc,EAEJ,SAASwlP,GAAermP,EAAQid,GACnC,OAAI,OAASjd,GAAU,IAAMA,EAAOxE,SAGhC8lP,GAAYthP,GACLA,EAAO,KAAOid,EAElBjd,EAAOwgB,MAAK,SAAU/U,GACzB,OAAQ61O,GAAY71O,IAAS,GAAQA,KAAU46O,GAAe56O,EAAMwR,OAGrE,IAAIqpO,GAAkB,SAASjvO,EAAY5T,EAAO+hD,GACrD,GAAI/kD,MAAMuY,QAAQvV,GAAQ,CACtB,IAAI8iP,EAAgB9iP,EAAMjI,OAAS,EACnC6b,EAAW28C,QACXvwD,EAAMX,QAAQ,CAACoqB,EAAG7vB,KACd,eAAE,UAAU0c,SAASinO,IAAqC7iP,KAAK+uB,GAAGlT,SAAS3C,GACvEha,IAAMkpP,GACN,eAAE,UAAUxsO,SAASknO,IAA0C9iP,KAAKqnD,GAAmBA,EAAgBo6L,eAAiBp6L,EAAgBo6L,eAAiB,KAAK7lO,SAASmnO,IAAgDlnO,SAAS3C,UAGjO5T,EACP4T,EAAWlZ,KAAKsF,GAEhB4T,EAAWlZ,KAAK,OAAoBlD,OAAO,oCC5vBnD,SAASurP,GAAc7gD,GACnB,IAAI8gD,EAAc,SAAS/8I,EAAUg9I,GACjC,OAAOA,EAAaA,EAAa,IAAMh9I,EAAWA,GAElD75B,EAAyB81H,GAAQA,EAAKpyI,cAAc,gBACxD,MAAO,CACHxR,UAAW,CAAC,SAAU,OAAQ,WAAY,SAAU,UAAW,UAC/DnD,0BAA2B,SAAS3lC,EAAarM,EAAOo4C,GACpD,IAAInkD,EAAS,GACTi5L,EAAY7gL,EAAYzd,OAAS,EAarC,OAZAyd,GAAeA,EAAYnW,SAAQ,SAAUW,EAAOT,GAChD,GAAIs+O,GAAY79O,IAAU,GAAQA,GAAQ,CACtC,IAAI2gP,EAAmBC,GAAoB5gP,EAAOuhD,EAAQ,GAAI,gBAC9DnkD,EAAOgE,KAAKu/O,QAEZvjP,EAAOgE,KAAKw/O,GAAoB,CAACz3O,EAAMqQ,UAAW,IAAKxZ,GAAQuhD,EAAQ,GAAI,iBAE/EhiD,IAAU82L,GAAaj5L,EAAOgE,KAAK,SAEnC,IAAMhE,EAAOrF,SACbqF,EAASA,EAAO,IAEbA,GAEXmhD,eAAgB,SAASq9L,EAAezkO,GACpC,IAAI+rO,EAAM,eAAE,SAAS5sO,SAAS,oCAAoCC,SAASY,GACvEuB,EAAS,OAAA9f,EAAA,YAAO,EAAM,GAAIspM,EAAKr8H,aAAa+1K,EAAczyO,MAAMqQ,YAkBpE,OAjBAqpO,GAAgBK,EAAKtH,EAAclhP,MAAQkhP,EAAclhP,KAAKV,MAAM,MACpE0e,EAAO6iC,WAAa,UACpB7iC,EAAO8iC,aAAeogM,EAAc57O,MAAQ47O,EAAc57O,MAAMmS,QAAU,GAC1Ei6D,EAAuBuuK,yBAAyB,CAC5CC,cAAesI,EACfxqO,OAAQA,EACRzb,MAAO,WAEH,IAAI+C,EADJA,EAAQ7B,KAAKq9C,aAAmBogM,EAAc1kH,SAASl3H,GAEvDosE,EAAuB2rK,uBACvB6D,EAAcuH,eAElBrgM,SAAU,WACN84L,EAAcuH,eAElB1L,iBAAiB,IAEdtgO,GAEX7C,cAAe,SAAS8uO,EAAWnvO,GAC/BA,EAAUA,GAAW,GACrB,IAAIjU,EAAQojP,EAAUpjP,MAClB0Y,EAASwpL,EAAKr8H,aAAau9K,EAAUj6O,MAAMqQ,WAC3C+K,EAAe7L,GAAUA,EAAO6L,aAChCtL,EAASP,GAAUA,EAAOO,OAC1BkM,EAASlR,EAAQkR,QAAU,CAACnlB,GAChC,GAAIukB,GAAgBA,EAAahM,YAAcU,GAAUA,EAAOV,WAAY,CACxE,IAAInb,EAAS,IAAI,cACbimP,EAAgBpvO,EAAQvL,OAAS,IAAI,cACzC,IAAKuL,EAAQvL,MAAO,CAChBgQ,EAAS,OAAA9f,EAAA,WAAO,GAAI8f,EAAQ,CACxB6iC,WAAY,UACZC,aAAcr2B,IAElB,IAAIq+D,EAAoBpX,EAAuByjB,cAAcn3E,GAC7D8qE,EAAkBC,UAAW,EAC7B,IAAIlrE,EAAa,IAAI,QAAWirE,GAC5BvqF,EAAMsf,EAAWgH,QAAQtmB,MAC7B,GAAIA,EAAK,CACL,IACIksB,OAAQm+N,GACRrvO,EACJ,GAAIqvO,GAAWA,EAAQvrP,OAAS,EAAG,CAC/B,IAAIwE,EAAS+mP,EAAQj9N,OAAO,CAACjpB,EAAQ4C,KAC7B5C,EAAOrF,QACPqF,EAAOgE,KAAK,MAEhBhE,EAAOgE,KAAK,CAACnI,EAAK,IAAK+G,IAChB5C,GACR,IACHmb,EAAWhc,OAAOA,QAElBgc,EAAWhc,OAAO,CAACtD,EAAK,IAAKmqP,EAAUpjP,aAEpCojP,EAAUj6O,MAAM6P,uBACvB,OAAO/W,IAAI,SAEfgS,EAAQvL,MAAQ26O,EAChB9qO,EAAWqG,OAAOpC,KAAK6mO,EAAcvkO,SAgBzC,OAdAukO,EAAc7mO,KAAK9T,IACf,IAAInJ,EAAQ4lB,EAAO1oB,QAAQ2mP,EAAUpjP,OACrC5C,EAAO0hB,QAAQ,SAASykO,EAAsB76O,EAAOu6O,GACjD,IAAI7lP,EAAS,GAQb,OAPAsL,EAAMrJ,SAAQ,SAAU2I,GACpB,GAAIA,EAAKU,MAAO,CACZ,IAAI86O,EAAqBD,EAAsBv7O,EAAKU,MAAOs6O,EAAYh7O,EAAKtN,KAAMuoP,IAClF7lP,EAASA,EAAO0oB,OAAO09N,GAE3Bx7O,EAAK+kG,UAAY3vG,EAAOgE,KAAK4hP,EAAYh7O,EAAKtN,KAAMuoP,OAEjD7lP,EATI,CAUbsL,GAAOnJ,MAENnC,EAEP,IAAI1C,EAAO0xE,EAAuB2tK,kBAAkB/5O,EAAO0Y,EAAQ,EAAGwpL,EAAKnrL,OAAO,iBAClF,OAAOrc,IAKhB,SAAS+oP,GAAMvhD,GAClB,OAAO,OAAAtpM,EAAA,WAAOmqP,GAAc7gD,GAAO,CAC/BniM,KAAM,QACNi6C,KAAM,YACN3wC,QAAS,OAAoB7R,OAAO,0CAGrC,SAASksP,GAAOxhD,GACnB,IAAIyhD,EAASZ,GAAc7gD,GAC3B,OAAO,OAAAtpM,EAAA,WAAO,GAAI+qP,EAAQ,CACtBxoM,0BAA2B,SAAS3lC,EAAarM,EAAOo4C,GACpD,IAAIqiM,EAAaD,EAAOxoM,0BAA0B3lC,EAAarM,EAAOo4C,GACtE,OAAKqiM,GAAc,IAAMA,EAAW7rP,OAG7B,MAAQ6rP,EAAW,GAAKA,EAAa,CAAC,IAAKA,GAFvC,MAIf7jP,KAAM,SACNi6C,KAAM,cACN3wC,QAAS,OAAoB7R,OAAO,2CC9H5C,IAAIqsP,GAAwB,CAAC,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,cAAe,WAAY,aAAc,WAAY,WAC/GC,GAAuB,UACvBC,GAAuB,UAE3B,SAASC,GAAoBtrO,GACzB,OAAOA,EAAO3Y,MAAQ2Y,EAAOc,UAGjC,SAASyqO,GAAetnO,GACpBA,EAAQtd,QAAQqZ,IACZ,IAAIihE,EAAaqqK,GAAoBtrO,GACrC,IAAK,eAAUihE,IAAejhE,EAAO+hC,eACjC,MAAM,IAAI,OAAO5wB,MAAM,QAASnR,EAAOrP,WAInD,IAAI66O,GAAuB,EAAQpzL,WAAW5C,QAAQ,WAClD,IAAIi2L,EAAuB,WACvB,MAAO,CACH5oM,WAAYuoM,GACZtoM,kBAAc,IAGlB4oM,EAAmC,SAAS1rO,GAC5C,IAAI8iC,EAAe9iC,EAAO8iC,cAAgB,GAC1C,OAAQ,QAAY/hC,iBAAiBf,MAAaA,EAAO6L,cAAgB7L,EAAO6L,aAAahM,aAAe,IAAMijC,EAAazjD,QAAU,OAASyjD,EAAa,IAE/J6oM,EAA4B,SAAS3rO,GACrC,IAAI1Y,EAAQ0Y,EAAOlD,YACnB,GAAI,eAAUxV,GAAQ,CAClB,IAAI6X,EAAYa,EAAOqM,yBAA2BrM,EAAOwoC,wBAA0Bm+L,GAAoB3mO,GACnGnc,EAAS,CAACynP,GAAoBtrO,GAASb,EAAWa,EAAOlD,aAC7D,OAAOjZ,EAEP,OAAO,MAGX+nP,EAA+B,SAAS5rO,GACxC,IAAI6rO,EACAvkP,EACAw7C,EAAe9iC,EAAO8iC,aAC1B,OAAKA,GAGD,IAAMA,EAAazjD,QAAUqsP,EAAiC1rO,KAAY1b,MAAMuY,QAAQimC,EAAa,KACxD+oM,EAA7C7rO,EAAO6iC,aAAewoM,GAA2C,KAA2B,IAC5F/jP,EAAQw7C,EAAa,KAEwB+oM,EAA7C7rO,EAAO6iC,aAAewoM,GAA2C,SAA+B,QAChG/jP,EAAQw7C,GAEL,CAACwoM,GAAoBtrO,GAAS6rO,EAAmBvkP,IAT7C,MAWXwkP,EAA8B,SAAS/uL,EAAmB/8C,EAAQ+rO,GAClE,IAAIlgO,EAAe,SAASkgO,EAAuB/rO,GAC/C,IAAK+rO,EACD,OAAON,IAEX,IAAI5oM,EACAx2B,EAA0B0/N,EAAsB,GAChDzkP,EAAQykP,EAAsB,GAC9BC,EAAgB1nP,MAAMuY,QAAQvV,GAClC,IAAK0kP,IACIN,EAAiC1rO,GAClC,OAAOyrO,IAGf,OAAQp/N,GACJ,IAAK,QACL,IAAK,IACDw2B,EAAauoM,GACb,MACJ,IAAK,SACL,IAAK,KACDvoM,EAAawoM,GACb,MACJ,QACI,OAAOI,IAEf,MAAO,CACH5oM,WAAYA,EACZC,aAAckpM,EAAgB1kP,EAAQ,CAACA,IA3B5B,CA6BjBykP,EAAuB/rO,GACzB+8C,EAAkBoQ,aAAam+K,GAAoBtrO,GAAS6L,IAE5DogO,EAA2B,SAASlvL,EAAmB/8C,EAAQ6M,GAC/D,IAAIsvN,EACA9vN,EAA0B,OAASQ,QAAa,IAAWA,OAAY,EAASA,EAAU,GAC1F/P,EAAc,OAAS+P,QAAa,IAAWA,OAAY,EAASA,EAAU,GAC9E+1B,EAAmB5iC,EAAO4iC,kBAAoB5iC,EAAOw5D,0BACnD52B,GAAoBA,EAAiB7+C,QAAQsoB,IAA4B,GAAKA,IAA4BrM,EAAOwoC,yBAA2B2iM,GAAsBpnP,QAAQsoB,IAA4B,GAAK,OAASvP,GAClNuP,IAA4BrM,EAAOwoC,wBAA2B,eAAUxoC,EAAOqM,2BAC/EA,EAA0BrM,EAAOqM,yBAErC8vN,EAAmB,CACfr/N,YAAaA,EACbuP,wBAAyBA,IAG7B8vN,EAAmB,CACfr/N,iBAAa,EACbuP,6BAAyB,GAGjC0wC,EAAkBoQ,aAAam+K,GAAoBtrO,GAASm8N,IAEhE,MAAO,CACH+P,gBAAiB,WACb,IAAI9iP,EAAO3D,KACPs3D,EAAoB3zD,EAAKguD,cAAc,WACvCnzC,EAAU84C,EAAkB6mB,sBAChCn+E,KAAK0mP,wBAAyB,EAC9BloO,EAAQtd,SAAQ,SAAUqZ,GACtB,IAAIosO,EAAmBnC,GAAqB7gP,EAAKiV,OAAO,eAAgBitO,GAAoBtrO,IAC5F,GAAI,IAAMosO,EAAiB/sP,OAAQ,CAC/B,IAAIgtP,EAAkBD,EAAiB,GACvCN,EAA4B/uL,EAAmB/8C,EAAQqsO,GACvDJ,EAAyBlvL,EAAmB/8C,EAAQqsO,QAEpD,eAAUrsO,EAAO8iC,eAAiBgpM,EAA4B/uL,EAAmB/8C,GACjF,eAAUA,EAAOlD,cAAgBmvO,EAAyBlvL,EAAmB/8C,MAGrFva,KAAK0mP,wBAAyB,GAElCG,UAAW,WACP,IAAIroO,EAAUxe,KAAK2xD,cAAc,WAAWyG,aACxC4qB,EAAiBhjF,KAAK2xD,cAAc,QACpC1F,EAAY+2B,EAAe/2B,YAE/B,GADA65L,GAAetnO,IACVxe,KAAK4Y,OAAO,eAAgB,CAC7B,IAAIkuO,EAAmB9mP,KAAK2xD,cAAc,WAAWwsB,sBACjD9mE,EAAcrX,KAAK6xH,0BAA0Bi1H,GACjD9mP,KAAK4Y,OAAO,cAAevB,GAE/BrX,KAAKymP,kBACLzjK,EAAe/2B,UAAUA,IAE7BwE,KAAM,WACF,IAAIuyB,EAAiBhjF,KAAK2xD,cAAc,QACpCqxB,EAAe+jK,uBACX/mP,KAAK2xD,cAAc,WAAWwrB,wBAC9Bn9E,KAAK6mP,YAEL7jK,EAAegW,kBAAkBlpF,IAAI,IAAM9P,KAAK6mP,eAI5DG,kBAAmB,SAAS3vO,EAAakD,GACrC,IAAInc,EAAS8nP,EAA0B3rO,GACvC,OAAI,eAAUnc,GACHmmP,GAAYltO,EAAajZ,GAEzB8lP,GAAgC7sO,EAAawuO,GAAoBtrO,KAGhF0sO,qBAAsB,SAAS5vO,EAAakD,GACxC,IAAInc,EAAS+nP,EAA6B5rO,GAC1C,OAAInc,EACOmmP,GAAYltO,EAAajZ,GAEzB8lP,GAAgC7sO,EAAawuO,GAAoBtrO,KAGhFs3G,0BAA2B,SAASrzG,GAChC,IAAKxe,KAAK2xD,cAAc,QAAQo1L,qBAC5B,OAAO,KAEX,IAAI1vO,EAAc,CAAC,OAOnB,OANAmH,GAAWA,EAAQtd,QAAQqZ,IACvB,IAAI6L,EAAe+/N,EAA6B5rO,GAC5C46B,EAAY+wM,EAA0B3rO,GAC1C6L,GAAgB,GAAQA,EAAc/O,GACtC89B,GAAa,GAAQA,EAAW99B,KAE7BsrO,GAAoBtrO,IAE/B6vO,cAAe,SAAS3sO,EAAQ1Y,GAC5B7B,KAAK4Y,OAAO,cAAe5Y,KAAKgnP,kBAAkBhnP,KAAK4Y,OAAO,eAAgB2B,KAElF4sO,iBAAkB,SAAS5sO,GACvBva,KAAK4Y,OAAO,cAAe5Y,KAAKinP,qBAAqBjnP,KAAK4Y,OAAO,eAAgB2B,KAErF6sO,0BAA2B,WACvB,IAAIC,EAAgCrnP,KAAK4Y,OAAO,mCAAqC,GACrF,MAAO,CAAC0sO,GAAMtlP,KAAK4R,WAAY2zO,GAAOvlP,KAAK4R,YAAY+V,OAAO0/N,IAElE32L,cAAe,WACX,MAAO,CAAC,+BA7KkC,IAiLlD42L,GAAmC,CACnCP,mBAAoB,WAChB,IAAIQ,EAAyBvnP,KAAK4Y,OAAO,qBACzC,MAAO,SAAW2uO,EAAyBvnP,KAAK4Y,OAAO,uBAAyB2uO,GAEpFrQ,2BAA4B,WACxB,OAAO,eAAUl3O,KAAK4Y,OAAO,iBAAmB5Y,KAAK+mP,sBAEzDj1J,2BAA4B,WACxB,IAAI,IAAU9xF,KAAK4Y,OAAO,6BACtB,OAAO5Y,KAAKC,WAEhB,IAAIwZ,EAAU,CAACzZ,KAAKC,YAChBue,EAAUxe,KAAK2xD,cAAc,WAAWwsB,sBACxC9mE,EAAcrX,KAAK4Y,OAAO,eAC9B,GAAI5Y,KAAK+mP,qBAAsB,CAC3B,IAAI3wK,EAAgBp2E,KAAK2xD,cAAc,gBAAgB2qL,mBACnDlmK,GAAiB/+D,IACjBA,EAAc6sO,GAAgC7sO,EAAawuO,GAAoBzvK,KAGvF,IAAIjzB,EAAmBnjD,KAAK2xD,cAAc,cAAcy1L,4BACpDI,EAAwB/E,GAAoBprO,EAAamH,EAAS2kC,EAAkB,iBAIxF,OAHIqkM,GACA/tO,EAAQxW,KAAKukP,GAEV,OAAchuO,eAAeC,IAExCguO,yBAA0B,SAASjrK,GAC/B,IAAIkrK,EAAUlrK,EAASj5D,MAAM,YAC7B,OAAImkO,EACOA,EAAQ,GAER,MAGf/gM,YAAa,SAASgyC,GAClB34F,KAAK4R,UAAU++C,cACXzwD,UAAUtG,OAAS,GACf,gBAAkB++F,GAClB34F,KAAK4Y,OAAO,cAAe,MAE/B5Y,KAAKC,SAAS04F,KAEd34F,KAAK4Y,OAAO,cAAe,MAC3B5Y,KAAKC,YAETD,KAAK4R,UAAUg/C,aAEnBM,cAAe,SAAS7hB,GACpB,OAAQA,EAAKztC,MACT,IAAK,cACD5B,KAAKqyF,eACLryF,KAAK+mP,sBAAwB/mP,KAAK2xD,cAAc,cAAc80L,kBAC9Dp3M,EAAK+hB,SAAU,EACf,MACJ,IAAK,oBACD/hB,EAAK+hB,SAAU,EACf,MACJ,IAAK,UACD,GAAIpxD,KAAK+mP,qBAAsB,CAC3B,IAAIxsO,EAASva,KAAK2xD,cAAc,WAAWmoB,gBAAgBzqC,EAAKmtC,UAC5Dm1C,EAAuB3xH,KAAK2xD,cAAc,cAC9C,GAAIp3C,IAAWo3G,EAAqB+0H,uBAAwB,CACxD,IAAIjyC,EAAez0M,KAAKynP,yBAAyBp4M,EAAKmtC,UACtDm1C,EAAqB+0H,wBAAyB,EAC1C,eAAiBjyC,EACbmxC,KAAyBv2M,EAAKxtC,OAAS+jP,KAAyBv2M,EAAKktC,eACrEo1C,EAAqBw1H,iBAAiB5sO,GAEnC,iBAAmBk6L,EAC1B9iF,EAAqBw1H,iBAAiB5sO,GAC/B,CAAC,cAAe,2BAA2Bjc,QAAQm2M,IAAiB,GAC3E9iF,EAAqBu1H,cAAc3sO,EAAQA,EAAOlD,aAEtDs6G,EAAqB+0H,wBAAyB,GAGtD1mP,KAAKC,SAASovC,GACd,MACJ,QACIrvC,KAAKC,SAASovC,MAI1Bs4M,GAAsC,CACtC/M,qBAAsB,SAASrgO,GAC3B,OAAIva,KAAK2xD,cAAc,QAAQo1L,sBACnBtC,GAAezkP,KAAK4Y,OAAO,eAAgBitO,GAAoBtrO,IAEpEva,KAAKC,SAASsa,IAEzByiO,4BAA6B,WACzB,OAAQh9O,KAAK2xD,cAAc,QAAQo1L,sBAEvC71L,cAAe,SAAS7hB,GAChB,gBAAkBA,EAAKztC,KACvB5B,KAAK+8O,gCAEL/8O,KAAKC,SAASovC,KAIfu4M,GAAmB,CAC1BjqP,eAAgB,WACZ,MAAO,CACH0Z,YAAa,KACb+9B,kBAAmB,SAG3BogB,YAAa,CACTqyL,WAAY9B,IAEhBnwL,UAAW,CACPJ,YAAa,CACTpxD,KAAMkjP,IAEV5xL,MAAO,CACHkX,kBAAmB+6K,MCxU/B,EAAKvxL,eAAe,aAAcwxL,ICkDlC,IAAI,GAAuB,mBACvBE,GAA6B,GAAuB,SACpDC,GAAkCD,GAA6B,QAC/DE,GAAqCF,GAA6B,WAClEG,GAAwCH,GAA6B,cACrEI,GAAuCJ,GAA6B,aACpEK,GAA8B,GAAuB,UACrDC,GAA6BD,GAA8B,QAC3DE,GAAiC,eACjCC,GAAoC,iBACpC,GAAiC,GAAuB,QACxDC,GAAkC,GAAuB,cACzDC,GAAsC,GAAuB,kBAC7DC,GAAkC,GAAuB,cACzDC,GAAuC,GAAuB,mBAC9DC,GAA+B,GAAuB,WACtDC,GAAyC,GAAuB,cAChEC,GAA8B,GAAuB,UACrDC,GAAqC,GAAuB,iBAC5DC,GAAe,kBACfC,GAA6C,GAAuB,yBACpEC,GAAS,gBACTC,GAAuB,oBACvBC,GAAU,MACVC,GAAY,QACZC,GAAa,SACb,GAAU,CAAC,CACXznP,KAAM,oBACNiwD,OAAQ,CACJoT,kBAAmB,CAAC,WAAY,YAChCC,SAAU,cAEf,CACCtjE,KAAM,mBACNiwD,OAAQ,CACJoT,kBAAmB,CAAC,WAAY,YAChCC,SAAU,cAEf,CACCtjE,KAAM,iBACNiwD,OAAQ,CACJoT,kBAAmB,CAAC,WAAY,eAGpCqkL,GAAY,CACZl/L,IAAK,MACLn5D,GAAI,KACJo5D,OAAQ,OACRC,MAAO,OAEP,GAAgB,OAAMyF,QAAQ,IAC9Bw5L,GAAgB,OAAOx5L,QAAQ,CAC/B42C,mBAAoB,WAChB,OAAO,OAAAlsG,EAAA,WAAOuF,KAAKC,WAAY,CAC3Bg3C,kBAAmB,KACnBD,iBAAkB,KAClB2M,eAAgB,KAChBP,OAAQ,GACRG,gBAAiB,CAAC,MAAO,KAAM,SAAU,SACzCC,mBAAe,EACf3hD,MAAO,KACPohD,yBAAyB,EACzBK,2BAA4B,CACxB8G,IAAK,OAAoB/wD,OAAO,uBAChCpI,GAAI,OAAoBoI,OAAO,sBAC/BgxD,OAAQ,OAAoBhxD,OAAO,0BACnCixD,MAAO,OAAoBjxD,OAAO,0BAEtC8pD,iBAAkB,GAClBqmM,0BAA0B,EAC1BnmM,4BAA6B,CACzBuC,QAAS,OAAoBvsD,OAAO,0CACpC0sD,MAAO,OAAoB1sD,OAAO,yCAClCktD,SAAU,OAAoBltD,OAAO,4CACrC+sD,SAAU,OAAoB/sD,OAAO,uCACrCgtD,gBAAiB,OAAoBhtD,OAAO,+CAC5C2sD,YAAa,OAAoB3sD,OAAO,0CACxC4sD,mBAAoB,OAAoB5sD,OAAO,kDAC/CmtD,WAAY,OAAoBntD,OAAO,6CACvCwsD,SAAU,OAAoBxsD,OAAO,2CACrCitD,YAAa,OAAoBjtD,OAAO,8CACxCysD,SAAU,OAAoBzsD,OAAO,2CACrC6sD,QAAS,OAAoB7sD,OAAO,0CACpC8sD,WAAY,OAAoB9sD,OAAO,iDAInD60G,eAAgB,SAAS7+D,GACrB,OAAQA,EAAKztC,MACT,IAAK,2BACD,MACJ,IAAK,oBACL,IAAK,mBACL,IAAK,iBACD5B,KAAK6nG,eACL,MACJ,IAAK,mBACD7nG,KAAKypP,wBACLzpP,KAAKszD,cACL,MACJ,IAAK,SACL,IAAK,gBACL,IAAK,kBACL,IAAK,0BACL,IAAK,6BACL,IAAK,8BACDtzD,KAAKszD,cACL,MACJ,IAAK,QACD,GAAIjkB,EAAKxtC,QAAUwtC,EAAKktC,cAAe,CACnC,IAAImtK,EAA4B1pP,KAAK2pP,2BAChCD,IACD1pP,KAAK4pP,aACL5pP,KAAKszD,eAETtzD,KAAK2pP,4BAA6B,EAClC3pP,KAAKkyD,cAAc,iBAAkB,CACjCrwD,MAAOwtC,EAAKxtC,MACZ06E,cAAeltC,EAAKktC,gBAExBv8E,KAAK2pP,2BAA6BD,EAEtC,MACJ,QACI1pP,KAAKC,SAASovC,KAG1BozM,oBAAqB,WACjB,IAAIr/L,EAASpjD,KAAK6pP,uBACdhoP,EAAQ,OAAApH,EAAA,YAAO,EAAM,GAAIuF,KAAK8pP,QAClC,OAAO,GAAqBnH,GAAoB9gP,GAAQuhD,EAAQpjD,KAAK+pP,kBAAmBd,KAE5FY,qBAAsB,WAClB,OAAOxH,GAAoBriP,KAAK4Y,OAAO,YAE3CoxO,cAAe,WACXhqP,KAAK2pP,4BAA6B,EAClC,IAAI9nP,EAAQ,OAAApH,EAAA,YAAO,EAAM,GAAIuF,KAAK8pP,QAC9B5V,EAAkByO,GAAoB9gP,GACtC6gE,EAAWigL,GAAoB3iP,KAAKiqP,UAAUjqP,KAAK4Y,OAAO,WAC1D7d,KAAKC,UAAU0nE,KAAc3nE,KAAKC,UAAUk5O,IAC5Cl0O,KAAK4Y,OAAO,QAASs7N,GAEzBl0O,KAAK2pP,4BAA6B,EAClC3pP,KAAKk9G,2BAETvV,MAAO,WACH3nG,KAAKypP,wBACLzpP,KAAK4pP,aACL5pP,KAAKkqP,qBACLlqP,KAAK6nG,eACL7nG,KAAKC,YAETiqP,mBAAoB,WAChBlqP,KAAK89O,eAAiB,IAAI,IAE9B2L,sBAAuB,WACnBzpP,KAAK+pP,kBAAoBlG,GAAoB7jP,KAAK4Y,OAAO,oBAAqB5Y,KAAK4Y,OAAO,uCAAwC5Y,OAEtImqP,0BAA2B,WACvB,IAAIC,EAAe5+C,EACnB,OAAO,QAAU4+C,EAAgB,QAAU5+C,EAAexrM,KAAK4Y,OAAO,0BAAuB,IAAW4yL,OAAe,EAASA,EAAa,UAAO,IAAW4+C,EAAgBA,EAAgBd,GAAUl/L,KAE7M6/L,UAAW,SAASpoP,GAChB,OAAOmgP,GAAwBngP,EAAO7B,KAAK+pP,kBAAmB/pP,KAAKmqP,8BAEvEP,WAAY,WACR5pP,KAAK8pP,OAAS9pP,KAAKiqP,UAAUjqP,KAAK4Y,OAAO,WAE7CivF,aAAc,WACV,IAAIlkG,EAAO3D,KACX2D,EAAKwsD,SAAW,GAChB,GAAQjvD,SAAQ,SAAU4wD,GACtB,IAAIu4L,EAAe,OAAA5vP,EAAA,WAAO,GAAIq3D,EAAOD,QACrCluD,EAAKwsD,SAAS2B,EAAOlwD,MAAQ+B,EAAKsuD,sBAAsBH,EAAOlwD,KAAMyoP,OAG7En4L,cAAe,SAASZ,EAAYx7C,GAChC,IAAIg8C,EAAS9xD,KAAKmwD,SAASmB,GAC3B,OAAOQ,GAAUA,EAAOh8C,IAE5BuzF,YAAa,WACTrpG,KAAK6W,WAAWsB,SAAS,IACzBnY,KAAKC,WACLD,KAAKsqP,8BAA8BtqP,KAAK8pP,QAAQ1xO,SAASpY,KAAK6W,aAElE0zO,wBAAyB,SAASnjO,EAAWhI,GACzC,OAAO,eAAE,SAASjH,SAAS2vO,IAA4B/tN,OAAO/5B,KAAKwqP,qBAAqBpjO,EAAWhI,KAEvGkrO,8BAA+B,SAASzK,EAAUzgO,GAK9C,IAJA,IAAIykH,EAAa3jI,UAAUtG,OAAS,QAAK,IAAWsG,UAAU,GAAKA,UAAU,GAAK,EAC9Em/M,EAASr/M,KAAKyqP,oBAAoB5K,EAAUzgO,EAAQykH,GACpDy7E,EAAgBD,EAAOvnM,KAAK,IAAMkwO,IAClC0C,EAAgB/K,GAAiBE,GAC5BpkP,EAAI,EAAGA,EAAIivP,EAAc9wP,OAAQ6B,IAAK,CAC3C,IAAIkvP,EAAgBD,EAAcjvP,GAC9B,GAAQkvP,GACR3qP,KAAKsqP,8BAA8BK,EAAe9K,EAAUh8G,EAAa,GAAGzrH,SAASknM,GAC9EogC,GAAYiL,IACnB3qP,KAAKuqP,wBAAwBI,EAAe9K,GAAUznO,SAASknM,GAGvE,OAAOD,GAEXorC,oBAAqB,SAAS5K,EAAUzgO,EAAQykH,GAC5C,IAAI+mH,EAAa,eAAE,SAASzyO,SAAS4vO,IACjCzoC,EAAgB,eAAE,SAASnnM,SAAS6vO,IACpC3oC,EAAS,eAAE,SAASlnM,SAAS2vO,IAA4B/tN,OAAO6wN,GAAY7wN,OAAOulL,GAqBvF,OApBI,MAAQlgM,GACRpf,KAAK6qP,oBAAoB,KACrBxJ,GAAWjiO,EAAQygO,GACnBxgC,EAAO1mM,SACP3Y,KAAKgqP,kBACN5xO,SAASwyO,GAEhB5qP,KAAK8qP,4BAA4BjL,GAAUznO,SAASwyO,GACpD5qP,KAAK+qP,iBAAiB,KAClB,IAAIC,EAAW1J,GAAiBthP,KAAKmqP,6BACrC,GAAQa,EAAUnL,GAClB7/O,KAAKyqP,oBAAoBO,EAAUnL,EAAUh8G,EAAa,GAAGzrH,SAASknM,GACtEt/M,KAAKgqP,iBACN,KACC,IAAIh/O,EAAQhL,KAAK4Y,OAAO,UAAU,GAC9BqyO,EAAe9J,GAAgBn2O,EAAOhL,KAAK+pP,mBAC/C,GAAQkB,EAAcpL,GACtB7/O,KAAKuqP,wBAAwBU,EAAcpL,GAAUznO,SAASknM,GAC9Dt/M,KAAKgqP,iBACNnmH,GAAYzrH,SAASwyO,GACjBvrC,GAEX/7B,cAAe,SAASp4K,GACpB,OAAO,eAAE,SAAS3O,KAAK2O,IAE3B4/O,4BAA6B,SAASjL,GAClC,IAAIt8L,EAAkBvjD,KAAKkrP,oBAAoBrL,GAC3CsL,EAAgBnL,GAAiBH,EAAUt8L,GAC3Cr4C,EAAUigP,EAAc5uP,KACxB6uP,EAAmB7nM,GAAmBA,EAAgB3pD,OAAS,EAAIoG,KAAKsjL,cAAcp4K,GAASiN,SAAS+wO,IAAwBlpP,KAAKqrP,sBAAsB,CAC3JngP,QAASA,EACTgrO,KAAM,CACF3rO,MAAOg5C,EACPpiC,YAAa,OACb60B,QAAS,QACT06B,YAAa9sE,IACLunP,IAAkBvnP,EAAEitE,WACpBkvK,GAAcF,EAAUj8O,EAAEitE,SAAShvE,OACnCupP,EAAiB7uP,KAAKqH,EAAEitE,SAASt0E,MACjC4uP,EAAgBvnP,EAAEitE,SAClB7wE,KAAKgqP,kBAGbvzM,eAAgB,SAAS7yC,GACrBA,EAAEgO,UAAU21F,WAAW4jJ,IAE3BvvM,SAAUqsM,MAGlB,OAAOmD,EAAiBjzO,SAAS,IAAgCA,SAAS+vO,IAAsCx2L,KAAK,WAAY,IAErI25L,sBAAuB,SAASv1O,GAC5B,IAmCIu+F,EAnCA1wG,EAAO3D,KACPsrP,EAAa,WACb3nP,EAAKkT,WAAWiB,KAAK,IAAMixO,IAAc1wO,YAAY0wO,IACrDplP,EAAKkT,WAAWiB,KAAK,4BAA4Ba,SACjDhV,EAAKkT,WAAWiB,KAAK,eAAea,UAEpC0D,EAAarc,KAAK4Y,OAAO,cACzBusC,EAAW9oC,EAAa,QAAU,OAClCgsG,EAAUroH,KAAKsjL,cAAcxtK,EAAQ5K,SAgDzC,OA/CA,OAAAzQ,EAAA,WAAOqb,EAAQogO,KAAM,CACjBzgM,mBAAmB,EACnBqxE,cAAe,SACfp2C,aAAc2jC,EAAUv+F,EAAQogO,KAAKxlK,YAAa,SAAS9sE,GACvDywG,EAAQzwG,GACJ,YAAcA,EAAEouD,MAAMvzD,MACtB6sP,MAGR1mM,SAAU,SAAShhD,GACfykH,EAAQhwG,YAAY0wO,KAExB5jM,SAAU,CACNmH,GAAInH,EAAW,OACfiH,GAAIjH,EAAW,UACf/oC,OAAQ,MACRjD,GAAIkvG,EACJhvG,UAAW,QAEfwqC,UAAW,KACXc,SAAU,WACN2mM,KAEJ1vM,SAAU+sM,GAA+B,IAAM7yO,EAAQogO,KAAKt6L,SAC5Dv/B,WAAYA,IAGhBvG,EAAQorC,MAAQ,CACZ+D,QAAS,SAASwxJ,GACd,IAAI80C,EAAkB,eAAE90C,EAAK7kM,UAAUgoD,WAAW9hD,KAAK,gBACnD0zO,EAAWD,EAAgBE,WAAW,YAC1C,OAAa3hP,GAAGyhP,EAAiB,iBAAiB,SAAU3nP,GACxD,IAAI2V,EAAU,gBAAiB3V,IAC3B,YAAcA,EAAEnF,MAAQ8a,IAAY4vO,IAAW,UAAYvlP,EAAEnF,OAAS8a,IAAY8vO,IAAc9vO,IAAY6vO,OAC5G3yC,EAAK7kM,UAAUwpC,OACf,OAAap9B,QAAQlI,EAAQogO,KAAK/wL,SAAShsC,GAAI,aAGvDqyO,EAAS72L,QACT62L,EAAS5yO,OAAO,iBAAkB,QAG1C5Y,KAAK0rP,6BAA6BrjI,GAAS,WACvCijI,IACA3nP,EAAKgoP,yBAAyB71O,EAASnS,EAAKkT,YAC5CwxG,EAAQlwG,SAAS4wO,OAEd1gI,GAEXujI,gBAAiB,SAASxkO,GACtB,IAAIw8B,EAAkBg9L,GAAmB5gP,KAAK+pP,kBAAmB3iO,EAAU,IAC3E,OAAOw8B,GAAkB,IAAUA,EAAgBvD,SAAW,OAASj5B,EAAU,IAErFykO,+BAAgC,SAASzkO,EAAWpc,GAChD,IAAIrH,EAAO3D,KACP2gP,EAAsBG,GAAuB91O,EAAOhL,KAAK4Y,OAAO,+BAAgC5Y,KAAK+pP,mBACrG+B,EAAmBpL,GAA0BkD,GAAkBx8N,GAAYu5N,GAC3EyK,EAAmBprP,KAAKqrP,sBAAsB,CAC9CngP,QAAS4gP,EAAiBvvP,KAC1B25O,KAAM,CACF3rO,MAAOo2O,EACPx/N,YAAa,OACb+lG,eAAgB,SAAStjH,GACrBA,EAAEitE,SAASowK,UAAY,eAAEr9O,EAAEknG,aAAa3yF,SAAS6wO,KAErDvyM,eAAgB,SAAS7yC,GACrBA,EAAEgO,UAAU21F,WAAWukJ,IAE3Bp7K,YAAa9sE,IACT,GAAIkoP,IAAqBloP,EAAEitE,SAAU,CACjCi7K,EAAmBloP,EAAEitE,SACrBuwK,GAA2Bh6N,EAAW0kO,EAAiBjqP,MAAO8B,EAAKomP,mBACnE,IAAIgC,EAAeX,EAAiBx0I,WAAWx4G,OAAO,IAAMqqP,IACxD9kP,EAAKioP,gBAAgBxkO,IACjB,IAAM2kO,EAAanyP,QACnBmyP,EAAapzO,SAEjBhV,EAAKqoP,mBAAmB5kO,EAAWpc,GAAOoN,SAASgzO,EAAiBhsO,WAEpE2sO,EAAapzO,SAEjByyO,EAAiBtgM,KAAKghM,EAAiBvvP,MACvCyD,KAAKgqP,kBAGbpuM,SAAUgtM,MAEfzwO,SAAS,IAAgCA,SAASqwO,IAAqC92L,KAAK,WAAY,GAC3G,OAAO05L,GAEXa,gCAAiC,SAAS7kO,EAAWpc,EAAOixF,GACxDj8F,KAAK6rP,+BAA+BzkO,EAAWpc,GAAOoN,SAAS6jF,GAC3Dj8F,KAAK4rP,gBAAgBxkO,IACrBpnB,KAAKgsP,mBAAmB5kO,EAAWpc,GAAOoN,SAAS6jF,IAG3DiwJ,2BAA4B,SAAS9oM,EAAQh8B,EAAWpc,GACpD,IAAIrH,EAAO3D,KACPijD,EAA0BjjD,KAAK4Y,OAAO,2BACtCrO,EAAQupL,GAAS1wI,EAAQH,GACzBp5C,EAAO83O,GAAS32O,EAAMpJ,MAAQoJ,EAAMqQ,UAAW9Q,GAC/C4hP,EAAiB,SAAStiP,EAAMU,GAChC,OAAO04C,EAA0B0gM,GAAsB95O,EAAMU,GAASV,EAAKqB,SAE3EkhP,EAAepsP,KAAKqrP,sBAAsB,CAC1CngP,QAASihP,EAAetiP,EAAMU,GAC9B2rO,KAAM,CACF3rO,MAAOA,EACP6xH,cAAe,QACfpmF,QAAS,KACTwkF,SAAU,WACVr5G,YAAa,UACbuvD,YAAa9sE,IACT,GAAIiG,IAASjG,EAAEitE,SAAU,CACrBhnE,EAAOjG,EAAEitE,SACTzpD,EAAU,GAAKvd,EAAKjI,MAAQiI,EAAKwR,UACjC+L,EAAU,GAAK,WAAavd,EAAKkL,SAAW,KAAO,GACnDqsO,GAA2Bh6N,EAAW85N,GAAoBr3O,GAAOlG,EAAKomP,mBACtEqC,EAAax1I,WAAWx4G,OAAO,IAAM,IAAgCua,SACrEhV,EAAKsoP,gCAAgC7kO,EAAWvd,EAAMuiP,EAAahtO,UACnE,IAAIlU,EAAUihP,EAAetiP,EAAMjG,EAAEgO,UAAUgH,OAAO,UACtDwzO,EAAathM,KAAK5/C,GAClBlL,KAAKgqP,kBAGbvzM,eAAgB,SAAS7yC,GACrBA,EAAEgO,UAAU21F,WAAW19F,IAE3B+xC,SAAUitM,MAEf1wO,SAAS,IAAgCA,SAASowO,IAAiC72L,KAAK,WAAY,GACvG,OAAO06L,GAEX5B,qBAAsB,SAASpjO,EAAWhI,GACtC,IAAI68E,EAAQ,eAAE,SAAS9jF,SAAS4vO,IAC5B3kM,EAASpjD,KAAK6pP,uBACd7+O,EAAQ22O,GAASv6N,EAAU,GAAIg8B,GAanC,OAZApjD,KAAK6qP,oBAAoB,KACrBxJ,GAAWjiO,EAAQgI,GACnB,IAAIilO,EAAgB,IAAMpwJ,EAAM78E,SAAS44C,WAAWp+D,OAChDyyP,EACApwJ,EAAM78E,SAASzG,SAEfsjF,EAAMtjF,SAEV3Y,KAAKgqP,kBACN5xO,SAAS6jF,GACZj8F,KAAKksP,2BAA2B9oM,EAAQh8B,EAAWpc,GAAOoN,SAAS6jF,GACnEj8F,KAAKisP,gCAAgC7kO,EAAWpc,EAAOixF,GAChDA,GAEXivJ,oBAAqB,SAASrL,GAC1B,IAAIt8L,EAAkBvjD,KAAK4Y,OAAO,mBAC9B0qC,EAA6BtjD,KAAK4Y,OAAO,8BAI7C,OAHK2qC,GAAoBA,EAAgB3pD,SACrC2pD,EAAkB,CAAC48L,GAAcN,GAAU1kP,QAAQ,IAAK,SAErDooD,EAAgBznD,IAAI4d,IAAa,CACpCnd,KAAM+mD,EAA2B5pC,GACjC7X,MAAOynP,GAAU5vO,OAGzBmxO,oBAAqB,SAASx2I,GAC1B,IAAIi4I,EAAgB,eAAE,SAASn0O,SAASiwO,IAA4BjwO,SAASmwO,IAAmCnwO,SAASgwO,IAA6Bz2L,KAAK,WAAY,GAEvK,OADA1xD,KAAK0rP,6BAA6BY,EAAej4I,GAC1Ci4I,GAEXvB,iBAAkB,SAASwB,EAAiBC,EAAqB3oH,GAC7D,IAAIxb,EACA7kE,EAAgBxjD,KAAK4Y,OAAO,iBAsBhC,OArBI,eAAU4qC,IAAkBqgF,GAAcrgF,GAC1C6kE,EAAUroH,KAAKsjL,gBACftjL,KAAK0rP,6BAA6BrjI,EAASmkI,IAE3CnkI,EAAUroH,KAAKqrP,sBAAsB,CACjCnV,KAAM,CACF3rO,MAAO,CAAC,CACJW,QAAS,OAAoB7R,OAAO,gCACpCimK,MAAOktF,GACR,CACCthP,QAAS,OAAoB7R,OAAO,4BACpCimK,MAAOitF,IAEXprO,YAAa,UACbuvD,YAAa,SAAS9sE,GAClBA,EAAEitE,SAASyuF,SAEf1jH,SAAUktM,MAIfzgI,EAAQlwG,SAASiwO,IAA4BjwO,SAASkwO,IAAgClwO,SAASgwO,IAA6Bz2L,KAAK,WAAY,IAExJ+6L,iBAAkB,SAAS5iP,EAAMmB,EAAOyK,GACpC,IAAI9R,EAAO3D,KACP0sP,EAAQ,eAAE,SAAS5hM,KAAK,UAAU3yC,SAASuwO,IAAsCh3L,KAAK,WAAY,GAAGt5C,SAAS3C,GAC9G5T,EAAQgI,EAAK,GACb+5C,EAAkBg9L,GAAmBj9O,EAAKomP,kBAAmBlgP,EAAK,IAgBtE,OAfK+5C,GAAmB54C,EAAM8P,OAC1BioO,GAA0B/3O,EAAOnJ,GAAO,SAAU5C,GAC9CylP,GAAgBgI,EAAOztP,MAG3B,kBAAKmkP,GAAoBp4O,EAAOnJ,EAAO+hD,IAAkBvlC,KAAKpf,IAC1DylP,GAAgBgI,EAAOztP,EAAQ2kD,KAGvCjgD,EAAK+nP,6BAA6BgB,GAAO,SAAU9oP,GAC3C,UAAYA,EAAEnF,MACdmF,EAAEwmG,kBAENzmG,EAAKgpP,6BAA6B9iP,EAAMmB,EAAOyK,MAE5Ci3O,GAEXE,sBAAuB,SAAS/iP,EAAMhI,EAAOmH,GACzC,IAAI6jP,EAAqBhjP,EAAK,KAAOhI,EACjCgrP,IACAhjP,EAAK,GAAKhI,GAEdmH,IACAhJ,KAAKgqP,iBAET8C,kBAAmB,SAASt0H,EAASnkB,GACjC,IAAI04I,GAAc,EACdC,GAA0B,EAC1BjuN,EAAW,aAAW+gC,cACtBmtL,EAAuBrpP,IACnBmpP,GAAeC,EACfA,GAA0B,EAG9B34I,EAAQzwG,IAEZ,OAAakG,GAAGi1B,EAAU,QAASkuN,GACnC,IAAI1qN,EAAQi2F,EAAQ1gH,KAAK,SACzB,OAAahO,GAAGy4B,EAAO,mBAAoB,KACvCwqN,GAAc,IAElB,OAAajjP,GAAGy4B,EAAO,iBAAkB,KACrCwqN,GAAc,EACdC,GAA0B,IAE9B,OAAaljP,GAAGy4B,EAAO,UAAWyvB,IAC1B,MAAQA,EAAMk/K,QACd8b,GAA0B,KAGlChtP,KAAKktP,sBAAwBD,GAEjCE,kBAAmB,SAAS30H,EAAS40H,GACjC,IAAIruN,EAAW,aAAW+gC,cACtButL,EAAuBzpP,IAClB5D,KAAKstP,sBAAsB90H,EAAS50H,EAAEsS,UACvC,OAAa8H,QAAQw6G,EAAQ1gH,KAAK,SAAU,UAC5Cs1O,MAGR,OAAatjP,GAAGi1B,EAAU,gBAAiBsuN,GAC3CrtP,KAAKutP,sBAAwBF,GAEjCC,sBAAuB,SAAS90H,EAAStiH,GACrC,IAAIs3O,EAAgBt3O,GAAU,aAAW0oG,mBACzC,OAAO,eAAE4uI,GAAervO,QAAQq6G,EAAQxgE,YAAYp+D,QAAU,eAAE4zP,GAAervO,QAAQ,8BAA8BvkB,QAEzH6zP,cAAe,WACX,IAAI1uN,EAAW,aAAW+gC,cAC1B,eAAU9/D,KAAKktP,wBAA0B,OAAaj8L,IAAIlyB,EAAU,QAAS/+B,KAAKktP,uBAClF,eAAUltP,KAAKutP,wBAA0B,OAAat8L,IAAIlyB,EAAU,gBAAiB/+B,KAAKutP,wBAE9F19H,SAAU,WACN7vH,KAAKytP,gBACLztP,KAAKC,YAET0sP,6BAA8B,SAAS9iP,EAAMmB,EAAOyK,GAChD,IAAI5T,EAAQgI,EAAK,GACb6jP,EAAkB,KAClBj4O,EAAW28C,QACXpyD,KAAKytP,gBACEztP,KAAKysP,iBAAiB5iP,EAAMmB,EAAOyK,IAE1CuvO,EAAc,KACdhlP,KAAK4sP,sBAAsB/iP,EAAMhI,GAAO,WACpC6rP,QAGJ53O,EAAU,CACVjU,MAAO,KAAOA,EAAQ,KAAOA,EAC7By8O,gBAAiBsF,GAAkB/5O,GACnCkvH,SAAU,SAAS30H,GACfvC,EAAQ,OAASuC,EAAO,GAAKA,GAEjC4gP,YAAaA,EACbzoP,KAAMkZ,EAAWlZ,QAErBkZ,EAAW28C,QACX,IAAIomE,EAAUx4H,KAAK2tP,mBAAmBl4O,EAAYzK,EAAO8K,GACzD,OAAakI,QAAQw6G,EAAQ1gH,KAAK,SAAS8oD,IAAI,WAAWpkD,GAAG,GAAI,SACjExc,KAAKytP,gBACLztP,KAAKmtP,kBAAkB30H,EAASwsH,GAChChlP,KAAK8sP,kBAAkBt0H,EAAS50H,IAC5B,IAAI2V,EAAU,gBAAiB3V,GAC/B,GAAI2V,IAAY4vO,GAAS,CACrB,GAAInpP,KAAKstP,sBAAsB90H,GAC3B,OAEJx4H,KAAK4sP,sBAAsB/iP,EAAMhI,GAAO,WACpC6rP,IACI9pP,EAAE4pE,UACF,OAAaxvD,QAAQvI,EAAW5G,OAAQ,YAIhD0K,IAAY8vO,IACZ,OAAarrO,QAAQ0vO,IAAmB,SAExCn0O,IAAY6vO,IACZppP,KAAK4sP,sBAAsB/iP,EAAMhI,GAAO,WACpC,OAAamc,QAAQ0vO,IAAmB,cAIpD1tP,KAAKk9G,2BAET8uI,mBAAoB,SAASniP,EAAMmB,GAC/B,IAAI+gP,EAAe,eAAE,SAAS5zO,SAAS,IAAgCA,SAASswO,IAEhF,OADAzoP,KAAKysP,iBAAiB5iP,EAAMmB,EAAO+gP,GAC5BA,GAEX4B,mBAAoB,SAASl4O,EAAYzK,EAAO8K,GAC5C,IAAI0iH,EAAU,eAAE,SAAS9mE,KAAK,WAAY,GAAGt5C,SAAS3C,GAClDmuC,EAAkBg9L,GAAmB5gP,KAAK+pP,kBAAmBj0O,EAAQwoO,iBACrEl+L,EAAiBwD,GAAmBA,EAAgBxD,eAAiBwD,EAAgBxD,eAAiBp1C,EAAMo1C,eAChH,GAAIA,EAAgB,CAChB,IAAIrE,EAAW/7C,KAAKq0D,aAAajU,GACjCrE,EAASh0C,OAAO,CACZgB,MAAO,OAAAtO,EAAA,WAAO,CACVuQ,MAAOA,GACR8K,GACHkD,UAAWw/G,SAGfx4H,KAAK89O,eAAejlH,aAAaziH,KAAKpW,KAAMw4H,EAAS,OAAA/9H,EAAA,WAAO,GAAIuQ,EAAO8K,EAAS,CAC5EgjH,WAAYmwH,MAGpB,OAAOzwH,GAEXmzH,yBAA0B,SAAS71O,EAASL,GACxC,IAAI9R,EAAO3D,KACPwoH,EAAS,eAAE,SAASrwG,SAASrC,EAAQogO,KAAKt6L,UAAUxjC,SAAS3C,GACjEzV,KAAKiZ,iBAAiBuvG,EAAQ,QAAO,CACjC7iE,YAAa,CACTioM,MAAO93O,EAAQogO,KAAKt6L,UAExBgJ,SAAU9uC,EAAQogO,KAAKtxL,SACvBD,SAAU7uC,EAAQogO,KAAKvxL,SACvBtoC,WAAYvG,EAAQogO,KAAK75N,WACzB8oC,SAAUrvC,EAAQogO,KAAK/wL,SACvBtB,UAAW/tC,EAAQogO,KAAKryL,UACxBE,gBAAiB,SAASk7C,GACtB,IAAI4uJ,EAAiB,eAAE,SAASz1O,SAAS6mF,GACzCt7F,EAAKsV,iBAAiB40O,EAAgB,cAAU/3O,EAAQogO,MACxDl2O,KAAKutH,WAET6/G,iCAAiC,EACjC5oL,UAAW,WACP,OAAOskL,GAA4BhzN,EAAQogO,KAAK/wL,SAAShsC,KAE7DohC,SAAS,EACT9E,mBAAmB,EACnB8O,mBAAoBvkD,KAAK4Y,OAAO,4BAChC0rC,oBAAoB,EACpBW,QAASnvC,EAAQorC,MAAM+D,QACvBnsC,SAAS,EACTzN,MAAO,OACPwR,OAAQ,OACR2oC,WAAW,KAGnBkmM,6BAA8B,SAASrjI,EAAShU,GAC5C,OAAavqG,GAAGu+G,EAAS,UAAWhU,GACpC,OAAavqG,GAAGu+G,EAAS,SAAS,SAAUzkH,GACpC,gBAAiBA,KAAOwlP,IACxB/0I,EAAQzwG,SAKxB,eAAkB,kBAAmB2lP,IACtB,UCxsBA,M,aCWXuE,GAAoB,EAAQ/6L,KAAKhD,QAAQ,CACzC0D,YAAa,WACTzzD,KAAK+tP,uBAETA,oBAAqB,WACb/tP,KAAK4Y,OAAO,8BACZ5Y,KAAKguP,aACEhuP,KAAKiuP,qBACZjuP,KAAKiuP,oBAAoB7yM,QAGjC8yM,cAAe,WACPluP,KAAKiuP,sBACLjuP,KAAKiuP,oBAAoB97L,UACzBnyD,KAAKiuP,yBAAsB,GAE3BjuP,KAAKmuP,iBACLnuP,KAAKmuP,eAAeh8L,UACpBnyD,KAAKmuP,oBAAiB,IAG9BH,WAAY,WACR,IAAIrqP,EAAO3D,KACX2D,EAAKuqP,gBACLvqP,EAAKsqP,oBAAsBtqP,EAAKsV,iBAAiBtV,EAAK+T,UAAW,QAAO,OAAAjd,EAAA,WAAO,CAC3E+kD,MAAO,OAAoBnmD,OAAO,sCAClC0qD,gBAAiB,SAAS4gD,GACtB,OAAOhhG,EAAKyqP,yBAAyBzpJ,IAEzC/sD,gBAAiB,SAASvI,GAClB,YAAcA,EAAKztC,MACnB+B,EAAKiV,OAAO,6BAA8By2B,EAAKxtC,QAGvD6jD,aAAc/hD,EAAK0qP,yBACpB1qP,EAAKiV,OAAO,sBAAuB,CAClC+rC,SAAU,SAAS/gD,GACf,GAAaD,GACbA,EAAKuqP,qBAIjBE,yBAA0B,SAASnvJ,GAC/B,IAAI0F,EAAkB,eAAE1F,GACpBqvJ,EAA0B,eAAE,SAASl2O,SAAS,eAAE6mF,IACpDj/F,KAAKmuP,eAAiBnuP,KAAKiZ,iBAAiBq1O,EAAyB,GAAe,OAAA7zP,EAAA,WAAO,CACvFoH,MAAO7B,KAAK4Y,OAAO,eACnBwqC,OAAQpjD,KAAK2xD,cAAc,WAAWwsB,uBACvCn+E,KAAK4Y,OAAO,iBAAkB,CAC7BuqC,iBAAkBnjD,KAAK2xD,cAAc,cAAcy1L,+BAEvDpnP,KAAKiZ,iBAAiB0rF,EAAiB,QAAY,CAC/Cl6C,UAAW,UAGnB4jM,sBAAuB,WACnB,IAAI1qP,EAAO3D,KACX,MAAO,CAAC,CACJq6C,QAAS,SACT2Q,SAAU,QACVG,OAAQ,WACRr1C,QAAS,CACLvZ,KAAM,OAAoBlD,OAAO,MACjCyiD,QAAS,SAASl4C,GACd,IAAIxF,EAASuF,EAAKwqP,eAAev1O,OAAO,SACxCjV,EAAKiV,OAAO,cAAexa,GAC3BuF,EAAKsqP,oBAAoB7yM,UAGlC,CACCf,QAAS,SACT2Q,SAAU,QACVG,OAAQ,WACRr1C,QAAS,CACLvZ,KAAM,OAAoBlD,OAAO,UACjCyiD,QAAS,SAASl4C,GACdD,EAAKsqP,oBAAoB7yM,YAKzC8V,cAAe,SAAS7hB,GACpB,OAAQA,EAAKztC,MACT,IAAK,gBACL,IAAK,qBACD5B,KAAKszD,cACLjkB,EAAK+hB,SAAU,EACf,MACJ,QACIpxD,KAAKC,SAASovC,OAInBk/M,GAAsB,CAC7B5wP,eAAgB,WACZ,MAAO,CACHq3C,cAAe,CACXsO,2BAA4B,CACxB8G,IAAK,OAAoB/wD,OAAO,uBAChCpI,GAAI,OAAoBoI,OAAO,sBAC/BgxD,OAAQ,OAAoBhxD,OAAO,0BACnCixD,MAAO,OAAoBjxD,OAAO,0BAEtCgqD,4BAA6B,CACzBuC,QAAS,OAAoBvsD,OAAO,0CACpC0sD,MAAO,OAAoB1sD,OAAO,yCAClCktD,SAAU,OAAoBltD,OAAO,4CACrC+sD,SAAU,OAAoB/sD,OAAO,uCACrCgtD,gBAAiB,OAAoBhtD,OAAO,+CAC5C2sD,YAAa,OAAoB3sD,OAAO,0CACxC4sD,mBAAoB,OAAoB5sD,OAAO,kDAC/CmtD,WAAY,OAAoBntD,OAAO,6CACvCwsD,SAAU,OAAoBxsD,OAAO,2CACrCitD,YAAa,OAAoBjtD,OAAO,8CACxCysD,SAAU,OAAoBzsD,OAAO,2CACrC6sD,QAAS,OAAoB7sD,OAAO,0CACpC8sD,WAAY,OAAoB9sD,OAAO,+CAG/C47C,mBAAoB,KAG5BygB,MAAO,CACH84L,kBAAmBV,KCnI3B,EAAK13L,eAAe,gBAAiBm4L,ICyBrC,IAAIE,GAAqB,eACrBC,GAA0BD,GAAqB,QAC/CE,GAA8BF,GAAqB,YACnDG,GAAkCH,GAAqB,gBACvDI,GAA8BJ,GAAqB,QACnDK,GAAsB,cACtBC,GAAkB,EAAQh8L,KAAKhD,QAAQ,CACvC/3C,UAAW,WACP,OAAOhY,KAAK4Y,OAAO,wBAA0B5Y,KAAK2xD,cAAc,QAAQv3C,cAE5Eq2C,KAAM,WACFzwD,KAAK2xD,cAAc,QAAQqnC,kBAAkBlpF,IAAI,IAAM9P,KAAK+H,WAEhE0rD,YAAa,WACT,IAAI58C,EAAW7W,KAAK0X,UACpBb,EAASu7C,QAAQj6C,SAASnY,KAAK4X,gBAAgB62O,KAC/C,IAAIO,EAAiB,eAAE,SAAS72O,SAASnY,KAAK4X,gBAAgBi3O,KAA8Bz2O,SAASvB,GACjG7W,KAAK4Y,OAAO,gBAAkB5Y,KAAKivP,oBACnCD,EAAej1N,OAAO/5B,KAAKkvP,oBAAoBn1N,OAAO/5B,KAAKmvP,qBAAqBp1N,OAAO/5B,KAAKovP,mBAC5Fv4O,EAASkjB,OAAO/5B,KAAKqvP,4BAErBL,EAAej1N,OAAO/5B,KAAKmvP,qBAAqBp1N,OAAO/5B,KAAKovP,oBAGpEF,iBAAkB,WACd,IAAIvrP,EAAO3D,KACP6W,EAAW,eAAE,SAASsB,SAASnY,KAAK4X,gBAAgB+2O,KAQxD,OAPAhrP,EAAKsV,iBAAiBpC,EAAU,cAAU,CACtChV,MAAO8B,EAAKiV,OAAO,6BACnB+qC,eAAgB,SAAS//C,GACrBD,EAAKiV,OAAO,4BAA6BhV,EAAE/B,UAGnDgV,EAAS66C,KAAK,QAAS1xD,KAAK4Y,OAAO,wCAC5B/B,GAEXs4O,kBAAmB,WACf,IAAIxrP,EAAO3D,KACP6W,EAAW,eAAE,SAASsB,SAAS,kBAInC,OAHA,OAAarO,GAAG+M,EAAU,QAAS,IAAMlT,EAAK2rP,sBAC9C,GAAuB,cAAe3rP,EAAMkT,OAAU,EAAQ,IAAMlT,EAAK2rP,sBACzE3rP,EAAK4rP,sBAAsB14O,GACpBA,GAEXu4O,gBAAiB,WACb,IAEII,EAFA7rP,EAAO3D,KACPyvP,EAAe,eAAE,SAASt3O,SAASxU,EAAKiU,gBAAgB82O,KAExDr3O,EAAc1T,EAAKiV,OAAO,eAuB9B,OAtBIvB,EACA,kBAAK1T,EAAK+rP,cAAcr4O,EAAa1T,EAAKguD,cAAc,cAAcy1L,8BAA8B/oO,MAAK,SAAUmxO,GAC/G,IAAIr5O,EAAgBxS,EAAKiV,OAAO,6BAChC,GAAIzC,EAAe,CACf,IAAIvK,EAAauK,EAAc,CAC3BvE,UAAWjO,EAAKiO,UAChByF,YAAaA,EACb9a,KAAMizP,IAEN,kBAAoB5jP,IACpB4jP,EAAa5jP,GAGrB6jP,EAAalzP,KAAKizP,OAGtBA,EAAa7rP,EAAKiV,OAAO,kCACzB62O,EAAalzP,KAAKizP,IAEtB,OAAa1lP,GAAG2lP,EAAc,QAAS,IAAM9rP,EAAK2rP,sBAClD,GAAuB,cAAe3rP,EAAM8rP,OAAc,EAAQ,IAAM9rP,EAAK2rP,sBAC7E3rP,EAAK4rP,sBAAsBE,GACpBA,GAEXH,mBAAoB,WAChBtvP,KAAK4Y,OAAO,8BAA8B,IAE9Cy2O,wBAAyB,WACrB,IAAI1rP,EAAO3D,KACP2vP,EAAmB,IAAMhsP,EAAKiV,OAAO,cAAe,MACpD/B,EAAW,eAAE,SAASsB,SAASxU,EAAKiU,gBAAgBg3O,KAAkCryP,KAAKoH,EAAKiV,OAAO,kCAI3G,OAHA,OAAa9O,GAAG+M,EAAU,QAAS84O,GACnC,GAAuB,cAAe3vP,KAAM6W,OAAU,EAAQ84O,GAC9DhsP,EAAK4rP,sBAAsB14O,GACpBA,GAEX04O,sBAAuB,SAAS14O,GAC5B,IAAK7W,KAAK4Y,OAAO,+BAAgC,CAC7C,IAAIg3O,EAAW5vP,KAAK4Y,OAAO,aAAe,EAC1C/B,EAAS66C,KAAK,WAAYk+L,KAGlC1+L,cAAe,SAAS7hB,GACpB,OAAQA,EAAKztC,MACT,IAAK,cACD5B,KAAKszD,cACLtzD,KAAK4Y,OAAO,6BAA6B,GACzCy2B,EAAK+hB,SAAU,EACf,MACJ,IAAK,cACDpxD,KAAKszD,cACLjkB,EAAK+hB,SAAU,EACf,MACJ,QACIpxD,KAAKC,SAASovC,KAG1BwgN,kBAAmB,SAASC,EAAWC,EAAeh6O,GAClD,IAAI9W,EAAS,IAAI0oB,OAAOmoO,EAAW,MAAMnoO,OAAOooO,GAIhD,OAHI,eAAUh6O,KACV9W,GAAU8W,GAEP9W,GAEX+wP,oBAAqB,SAASnuP,GAC1B,OAAOhD,MAAMuY,QAAQvV,GAAS,KAAK8lB,OAAO9lB,EAAM7F,KAAK,QAAS,MAAQ,KAAK2rB,OAAO9lB,EAAO,MAE7FouP,cAAe,SAASjlP,EAAO44C,EAAiB/hD,GAC5C,IAAIusD,EAAW,IAAI,cACf8hM,EAAqBtsM,GAAmBA,EAAgBztC,cAC5D,GAAI,eAAUtU,IAAUquP,EACpB,IAAKA,GAAsBllP,EAAM8P,OAC7BioO,GAA0B/3O,EAAOnJ,EAAOuC,IACpCgqD,EAASztC,QAAQ3gB,KAAKgwP,oBAAoB5rP,UAE3C,CACH,IAAIghF,EAAevmF,MAAMuY,QAAQvV,GAASA,EAAQ,OAAU6Y,gBAAgB1P,EAAOnJ,GACnF,kBAAKuhP,GAAoBp4O,EAAOo6E,EAAcxhC,EAAiBkrM,KAAsBzwO,KAAKja,IACtFgqD,EAASztC,QAAQ3gB,KAAKgwP,oBAAoB5rP,WAIlDgqD,EAASztC,QAAQ,IAErB,OAAOytC,EAAS3sC,WAEpB0uO,iBAAkB,SAAS94O,EAAavB,GACpC,IAIIi6O,EAJApsP,EAAO3D,KACP0Z,EAAYrC,EAAY,GACxB+2C,EAAW,IAAI,cACfxK,EAAkBg9L,GAAmB9qO,EAAQqtC,iBAAkBzpC,GAE/D1O,EAAQ22O,GAAStqO,EAAY,GAAIvB,EAAQ0I,SACzCsxO,EAAY9kP,EAAME,SAAW,GAC7BrJ,EAAQwV,EAAY,GAWxB,OATI04O,EADAnsM,EACgBA,EAAgB14C,SAAW,gBAAW04C,EAAgBhiD,MAEtD6+O,GADT,OAAS5+O,EACsB,MAAQ6X,EAAY,UAAY,aAEhCA,EAF8C5D,EAAQutC,6BAIhGrjD,KAAKiwP,cAAcjlP,EAAO44C,EAAiB/hD,GAAOwc,KAAKtI,IACnDq4C,EAASztC,QAAQhd,EAAKksP,kBAAkBC,EAAWC,EAAeh6O,MAE/Dq4C,GAEXgiM,aAAc,SAAS/4O,EAAavB,EAASu6O,GACzC,IAAI1sP,EAAO3D,KACPf,EAAS,IAAI,cACbmuI,EAAY,GACZ8yG,EAAaC,GAAc9oO,GAwB/B,OAvBAA,EAAYnW,QAAQ2I,IACZ61O,GAAY71O,GACZujI,EAAUnqI,KAAKU,EAAKwsP,iBAAiBtmP,EAAMiM,IACpC,GAAQjM,IACfujI,EAAUnqI,KAAKU,EAAKysP,aAAavmP,EAAMiM,GAAS,MAGxD,UAAKhX,MAAMkB,KAAMotI,GAAW/uH,MAAK,WAE7B,IADA,IAAI9hB,EACK6jJ,EAAOlgJ,UAAUtG,OAAQy1C,EAAO,IAAIxwC,MAAMuhJ,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC7EhxG,EAAKgxG,GAAQngJ,UAAUmgJ,GAE3B,GAAI,MAAQ6/F,EAAW,GAAI,CACvB,IAAIoQ,EAAYx6O,EAAQwtC,2BAA2B,MAAQ48L,EAAW5qN,UAAU,EAAG,GAAGD,cAAgB6qN,EAAW5qN,UAAU,IAAIz5B,MAAM,KACrIU,EAAO,GAAGorB,OAAO2oO,EAAU,GAAI,KAAK3oO,OAAO0nB,EAAK,SAEhD9yC,EAAO8yC,EAAKrzC,KAAK,IAAI2rB,OAAO7R,EAAQwtC,2BAA2B48L,GAAa,MAE5EmQ,IACA9zP,EAAO,IAAIorB,OAAOprB,EAAM,MAE5B0C,EAAO0hB,QAAQpkB,MAEZ0C,GAEXywP,cAAe,SAASr4O,EAAa8rC,GACjC,IAAIrtC,EAAU,CACVqtC,iBAAkBA,EAClB3kC,QAASxe,KAAK2xD,cAAc,WAAWwsB,sBACvC96B,4BAA6BrjD,KAAK4Y,OAAO,6CACzC0qC,2BAA4BtjD,KAAK4Y,OAAO,6CAE5C,OAAO8mO,GAAYroO,GAAerX,KAAKmwP,iBAAiB94O,EAAavB,GAAW9V,KAAKowP,aAAa/4O,EAAavB,MAG5Gy6O,GAAoB,CAC3B5yP,eAAgB,WACZ,MAAO,CACHu3C,YAAa,CACTqF,SAAS,EACTkM,eAAe,EACfhH,MAAO,CACHmH,aAAc,OAAoBvtD,OAAO,sCACzCstD,YAAa,OAAoBttD,OAAO,qCACxCwtD,kBAAmB,OAAoBxtD,OAAO,+CAK9Dq8D,MAAO,CACH86L,gBAAiBzB,IAErBn5L,UAAW,CACPJ,YAAa,CACTpxD,KAAM,CACF8sD,cAAe,SAAS7hB,GACpB,OAAQA,EAAKztC,MACT,IAAK,cACD5B,KAAKqyF,eACLhjD,EAAK+hB,SAAU,EACf,MACJ,QACIpxD,KAAKC,SAASovC,SCxP1C,EAAK+mB,eAAe,cAAem6L,ICOnC,IAAIE,GAAqB,eACrBC,GAAoB,cACpB,GAAqB,eACrB,GAAoB,IAExB,SAAS9zM,GAAYriC,GACjB,OAAO,eAAUA,EAAOqiC,aAAeriC,EAAOqiC,YAAcriC,EAAO+hC,eAGvE,SAASuoC,GAAWtqE,EAAQhe,GACxB,IAAIue,EAASP,EAAOO,OACpB,OAAKP,EAAOsqE,WAGR/pE,EACOP,EAAOsqE,WAAWzuE,KAAK0E,EAAQve,GAEnCge,EAAOsqE,WAAWtoF,GALdA,EAOR,IAAIo0P,GAAe,CACtBhzP,eAAgB,WACZ,MAAO,CACH47C,YAAa,CACTgB,SAAS,EACTlvC,MAAO,IACP4iD,YAAa,OAAoB50D,OAAO,qCACxC20D,qBAAqB,EACrBD,wBAAwB,EACxBxxD,KAAM,GACN2xD,0BAA0B,KAItC0H,UAAW,CACPJ,YAAa,CACTpxD,KAAM,CACFssD,cAAe,WACX,OAAO1wD,KAAKC,WAAW0nB,OAAO,CAAC,kBAEnCmqE,2BAA4B,WACxB,IAAI1zF,EAAS4B,KAAKC,WACd2wP,EAAe,SAASjtP,EAAMpH,GAC9B,IAAId,EACA8e,EAGAO,EAFA0D,EAAU7a,EAAK25D,mBAAmBlF,aAClClK,EAA2BvqD,EAAKiV,OAAO,wCAEvCa,EAAU,GACd,IAAKld,EACD,OAAO,KAGX,SAASs0P,EAAYtmP,GAEjB,IADA,IAAI4uM,EAAc,gBAAcr+L,EAAOoG,WAC9B4vO,EAAK,EAAGA,EAAKvmP,EAAM3Q,OAAQk3P,IAAM,CACtC,IAAIjvP,EAAQs3M,EAAY5uM,EAAMumP,IAC9Br3O,EAAQxW,KAAKsX,EAAOyqE,uBAAuBnjF,EAAO,KAAM,YAGhE,IAAKpG,EAAI,EAAGA,EAAI+iB,EAAQ5kB,OAAQ6B,IAE5B,GADA8e,EAASiE,EAAQ/iB,KACbyyD,GAA6B3zC,EAAOggC,UAGpCqC,GAAYriC,IAAWA,EAAOyiC,0BAA2B,CACzDliC,EAASP,EAAOO,OAChB,IAAIzD,EAAcwtE,GAAWtqE,EAAQhe,GACjCue,GAAUA,EAAOvQ,MACjB,gBAAUuQ,EAAOvQ,OAAOnM,OAAOmc,EAAOyqE,uBAAuB5uE,KAAK,CAC9DiF,UAAWP,EAAOqG,YAClBpM,SAAU+F,EAAO/F,SACjBioC,0BAA2BziC,EAAOyiC,2BACnC3lC,EAAa,KAAM,WAAWuqH,YAAYvjH,KAAKwyO,QAC3C,IAAWx5O,GAClBoC,EAAQxW,KAAKsX,EAAOyqE,uBAAuB3tE,EAAa,KAAM,WAI1E,OAAI,IAAMoC,EAAQ7f,OACP,CAAC,KAEL,OAAc4f,eAAeC,EAAS,MAxC9B,CAyCjBzZ,KAAMA,KAAK4Y,OAAO,qBACpB,OAAO,OAAcY,eAAe,CAACpb,EAAQwyP,KAEjD/3J,aAAc,SAASt8F,GACnByD,KAAK4Y,OAAO,mBAAoBrc,IAEpC20D,cAAe,SAAS7hB,GACpB,OAAQA,EAAKmtC,UACT,IAAK,mBACL,IAAK,cACDx8E,KAAKqyF,eACLhjD,EAAK+hB,SAAU,EACf,MACJ,QACIpxD,KAAKC,SAASovC,OAKlCqmB,MAAO,CACH2mC,YAAa,WACT,IAAI00J,EAAwB,SAASptP,GACjC,OAAOA,EAAKiV,OAAO,gBAEvB,MAAO,CACHm0G,iBAAkB,WACd,IAAIxiH,EAAQvK,KAAKC,WACjB,OAAOD,KAAKgxP,mBAAmBzmP,IAEnCymP,mBAAoB,SAASzmP,GACzB,IAAI5G,EAAO3D,KACPgjF,EAAiBr/E,EAAKguD,cAAc,QACpCs/L,EAAqBF,EAAsBptP,GAC/C,GAAIstP,GAAsBA,EAAmB12M,QAAS,CAClD,IAAI4R,EAAc,CACdpQ,SAAU,SAAS33C,EAAMhD,EAAO4X,GAC5B,IAAIk4O,EAAU,eAAE,SAAS/4O,SAASxU,EAAKiU,gBAAgB64O,KAAqBr4O,SAASY,GACrFrV,EAAKguD,cAAc,iBAAiBknE,aAAaq4H,EAAS,CACtD7lP,MAAO4lP,EAAmB5lP,MAC1B4iD,YAAagjM,EAAmBhjM,YAChC6qE,WAAY,cACZj3H,MAAO8B,EAAKiV,OAAO,oBACnB6/J,mBAAoB,GACpB1/C,SAAU,SAASl3H,GACfmhF,EAAe6V,aAAah3F,IAEhC2J,cAAe,CACXusK,UAAW,CACP,aAAc,OAAoB1+K,OAAO,GAAGsuB,OAAOhkB,EAAKiO,UAAU2gD,KAAM,0BAIpF5uD,EAAK8wD,UAET7yD,KAAM,cACNopD,SAAU,QACVD,aAAc,QACd1M,UAAW,IAEf9zC,EAAMtH,KAAKkpD,GAEf,OAAO5hD,GAEX4mP,oBAAqB,WACjB,IAAIxtP,EAAO3D,KACP6W,EAAWlT,EAAK+T,UAChB05O,EAAev6O,EAASiB,KAAK,IAAMnU,EAAKiU,gBAAgB64O,KAAqBryP,QAAO,WACpF,OAAO,eAAE4B,MAAMme,QAAQ,IAAMxa,EAAKiU,gBAAgB,KAAqBhqB,GAAGipB,MAE9E,OAAIu6O,EAAax3P,OACNw3P,EAAaC,UAAU,YAE3B,MAEXr5O,UAAW,WACP,IAAIi5O,EAAqBF,EAAsB/wP,MAC/C,OAAOA,KAAKC,YAAcgxP,GAAsBA,EAAmB12M,SAEvE2W,cAAe,SAAS7hB,GACpB,GAAI,gBAAkBA,EAAKztC,KAAM,CAC7B,GAAI,qBAAuBytC,EAAKmtC,SAAU,CACtC,IAAIt+D,EAASle,KAAKmxP,sBACdjzO,GACAA,EAAOtF,OAAO,QAASy2B,EAAKxtC,YAGhC7B,KAAKszD,cAETjkB,EAAK+hB,SAAU,OAEfpxD,KAAKC,SAASovC,KAtEjB,GA2EbjyB,SAAU,CACNqzC,KAAM,WACFzwD,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAKsxP,cAAgB,IAEzBC,wBAAyB,SAASh3O,EAAQogF,GACtC,IAAI94F,EAAQgjF,GAAWtqE,EAAQogF,GAC3B84I,EAAgB,OAAcn5N,yBAAyBC,EAAQ,UACnE,OAAO,OAAc1E,YAAYhU,EAAO4xO,IAE5C+d,qBAAsB,WAClB,IAAIC,EAAkBzxP,KAAK4Y,OAAO,sCAClC,OAAO,SAAS1c,GACZ,OAAOu1P,EAAkBv1P,EAAMA,EAAI4B,gBAG3C4zP,2BAA4B,SAASn3O,EAAQqkD,EAAa+7B,GACtD,IAAIm/D,EAEAroD,EADAn9C,EAAUsK,EAAYx/C,SAEtBuyO,EAAmB3xP,KAAKwxP,uBACxBI,EAAuBD,EAAiBh3J,GACxCk3J,EAAkB,GACtB,GAAKv9L,EAAQ16D,QAEN,GAAI2gB,EACP,GAAIA,EAAOmjC,YAAc,IAAMnjC,EAAO6jC,gBAClCqzD,EAAS7yC,MACN,CACH,IAAIrpD,EAAcvV,KAAKs9D,mBAAmByB,gBAAgBxkD,EAAOnZ,OACjEqwG,EAASn9C,EAAQ0D,SAAS,MAAMx7C,GAAGjH,GAAauC,KAAK,WANzDw8C,EAAU,eAAE,SAASv6B,OAAO6kC,GAsBhC,OAbA6yC,EAAS,QAAUqoD,EAAUroD,SAAW,IAAWqoD,GAAWA,EAAQlgK,OAAS63G,EAASn9C,EAAQx8C,KAAK,KACrG25F,EAAO0wD,MAAK,SAAUpjK,EAAG2Y,GAErB,IADA,IAAIo6O,EAAY,eAAEp6O,GAAS4vM,WAClB7rN,EAAI,EAAGA,EAAIq2P,EAAUl4P,OAAQ6B,IAAK,CACvC,IAAIwtG,EAAO6oJ,EAAUp0P,IAAIjC,GACzB,GAAI,IAAMwtG,EAAK/oC,SAAU,CACrB,IAAIg5E,EAAiBy4G,EAAiB1oJ,EAAKvzF,aAAeuzF,EAAKvtC,WAC3Dw9E,EAAe56I,QAAQszP,IAAyB,GAChDC,EAAgB5uP,KAAKgmG,QAK9B4oJ,GAEXE,yBAA0B,SAASC,EAAWr3J,GAC1C,IAAIs3J,EAAkB,eAAE,UAAU95O,SAASnY,KAAK4X,gBAAgB84O,KAC5Dn0P,EAAOy1P,EAAUz1P,OACjB21P,EAAsBF,EAAU,GAChCL,EAAmB3xP,KAAKwxP,uBACxBpwP,EAAQuwP,EAAiBp1P,GAAM+B,QAAQqzP,EAAiBh3J,IAC5D,GAAIv5F,GAAS,EAQT,OAPI8wP,EAAoBx8O,YACpBw8O,EAAoBx8O,YAAcnZ,EAAKyW,OAAO,EAAG5R,GAEjD8wP,EAAoBx2L,UAAYn/D,EAAKyW,OAAO,EAAG5R,GAEnD4wP,EAAUG,MAAMF,EAAgB11P,KAAKA,EAAKyW,OAAO5R,EAAOu5F,EAAW/gG,UACnEo4P,EAAY,eAAE,aAAWhzN,eAAeziC,EAAKyW,OAAO5R,EAAQu5F,EAAW/gG,UAAU2lG,YAAY0yJ,GACtFjyP,KAAK+xP,yBAAyBC,EAAWr3J,IAGxDy3J,qBAAsB,SAASxzL,EAAayzL,EAAU93O,GAClD,IAAI5W,EAAO3D,KACP2xP,EAAmB3xP,KAAKwxP,uBACxB72J,EAAah3F,EAAKiV,OAAO,oBAI7B,GAHIy5O,GAAY93O,IACZogF,EAAaA,GAAch3F,EAAK4tP,wBAAwBh3O,EAAQogF,IAEhEA,GAAch3F,EAAKiV,OAAO,mCAAoC,CAC9D,IAAI05O,EAAY3uP,EAAK+tP,2BAA2Bn3O,EAAQqkD,EAAa+7B,GACrE23J,EAAUpxP,QAAQqxP,IACVF,EACIV,EAAiB,eAAEY,GAAUh2P,UAAYo1P,EAAiBh3J,IAC1D,eAAE43J,GAAUrvL,YAAY,eAAE,UAAU/qD,SAASxU,EAAKiU,gBAAgB84O,KAAoBn0P,KAAK,eAAEg2P,GAAUh2P,SAG3GoH,EAAKouP,yBAAyB,eAAEQ,GAAW53J,OAK3DlnC,YAAa,WACTzzD,KAAKC,SAASnB,MAAMkB,KAAME,YACtBF,KAAK4Y,SAASygC,aAAer5C,KAAK4Y,OAAO,sBACrC5Y,KAAK4Y,OAAO,kCACZwhD,aAAap6D,KAAKwyP,iBAClBxyP,KAAKwyP,gBAAkB9yN,WAAW,WAC9B1/B,KAAKoyP,qBAAqBpyP,KAAK+kE,oBACjCvpD,KAAKxb,QAEPA,KAAKoyP,qBAAqBpyP,KAAK+kE,qBAI3C7I,YAAa,SAASrE,EAAOf,GACzB,IAAIv8C,EAASu8C,EAAWv8C,OACpBxF,EAAWwF,EAAOO,QAAUP,EAAOO,OAAO/F,UAAYwF,EAAOxF,SAC7Ds9O,EAAW,WAAat9O,EACxB6nC,GAAYriC,KAAYu8C,EAAWyiH,WAC/Bv5K,KAAK4Y,OAAO,kCACP5Y,KAAKsxP,cAAc13P,SACpBwgE,aAAap6D,KAAKwyP,iBAClBxyP,KAAKwyP,gBAAkB9yN,WAAW,WAC9B1/B,KAAKsxP,cAAcpwP,QAAQ,SAASyvE,GAChC3wE,KAAKoyP,qBAAqBtzP,MAAMkB,KAAM2wE,IACxCn1D,KAAKxb,OACPA,KAAKsxP,cAAgB,IACvB91O,KAAKxb,QAEXA,KAAKsxP,cAAcruP,KAAK,CAAC40D,EAAOw6L,EAAU93O,KAE1Cva,KAAKoyP,qBAAqBv6L,EAAOw6L,EAAU93O,IAGnDva,KAAKC,SAAS43D,EAAOf,IAEzB3E,QAAS,WACLiI,aAAap6D,KAAKwyP,iBAClBxyP,KAAKC,gBClTzB,EAASm2D,eAAe,SAAUu6L,I,iBCH3B,MAAM,WAAyB,QAClC,eAAethN,GACX,OAAQA,EAAKztC,MACT,IAAK,YACD,IAAI6wP,EAAmBzyP,KAAK4Y,OAAO,oBAC/B65O,GACAA,EAAiBpjN,EAAKxtC,OAE1B,MACJ,IAAK,WACD,IAAI6wP,EAAkB1yP,KAAK4Y,OAAO,mBAC9B85O,GACAA,EAAgBrjN,EAAKxtC,OAGjC6kG,MAAMwH,eAAe7+D,I,qECZtB,SAASsjN,GAAgB/wP,EAAM8V,GAClC,IAAIk7O,EACAC,EAAgB,QAAUD,EAAwB,gBAAwBl7O,UAAa,IAAWk7O,EAAwBA,EAAwB,GACtJ,OAAO,gBAASC,EAAcjxP,IAE3B,SAASkxP,GAAgBp7O,GAC5B,OAAOi7O,GAAgB,QAASj7O,GAE7B,SAASq7O,GAAmBr7O,GAC/B,OAAOi7O,GAAgB,WAAYj7O,GCXvC,IAAI,GAAY,CAAC,kBAAmB,cAiBzBs7O,GAAe7iP,IACtB,IACI8iP,kBAAmBA,EACnBC,YAAaA,EACbC,gBAAiBA,EACjBC,mBAAoBA,EACpBC,aAAcA,EACdC,SAAUA,EACVC,UAAWA,EACX//M,OACIuQ,gBAAiByvM,IAErBrjP,EACJ,OAAOqjP,EAAQ,eAAS,CACpBC,eAAgBF,EAChBF,aAAcA,EACdH,YAAaA,EACbI,SAAUA,EACVH,gBAAiBA,EACjBC,mBAAoBA,GACrBH,KAEA,SAASS,GAA0B9iP,GACtC,IACI+iP,UAAWC,EACXC,MAAOC,EACP10O,OAAQ20O,GACRnjP,EACJ,OAAOmjP,GAAeH,EAAiBE,GAAc,EAElD,SAASE,GAAyB/lK,GACrC,IACIwoH,KAAMw9C,EACNN,UAAWC,EACXC,MAAOC,EACP10O,OAAQ20O,GACR9lK,EACAimK,EAAeN,EAAiBE,EAAaG,EACjD,OAAOF,EAAcG,EAAe,EAGxC,SAASC,GAAiBhmK,GACtB,IACIsoH,KAAMA,EACNk9C,UAAWA,EACXE,MAAOA,EACPz0O,OAAQA,GACR+uE,EACA4lK,EAAcjB,GAAgB1zO,GAC9Bw0O,EAAiBd,GAAgBa,GACjCM,EAAYnB,GAAgBr8C,GAC5B29C,EAAiBtB,GAAgBe,GACrC,MAAO,CACHz0O,OAAQ20O,EACRJ,UAAWC,EACXn9C,KAAMw9C,EAAYtB,GAAgB,aAAcl8C,GAAQk8C,GAAgB,cAAel8C,GACvFo9C,MAAOO,GAGR,IAAIC,GAA0B,GAIjCjgM,GAAckgM,GAAgBA,IAAiBA,EAAa5lI,aAAel7E,GAAS,gBAAe,gBAAqB,EAAG8gN,EAAc,eAAS,GAAI9gN,KAAW8gN,GAC9J,MAAM,WAA2B,QACpC,YAAY9gN,GACRkzD,MAAMlzD,GACNxzC,KAAKuzP,UAAY,kBACjBvzP,KAAKqzP,aAAe,kBACpBrzP,KAAKkzP,YAAc,kBACnBlzP,KAAKszP,SAAW,kBAChBtzP,KAAKu0P,0BAA2B,EAChCv0P,KAAKw0P,uBAAwB,EAC7Bx0P,KAAKkgC,MAAQ,CACTizN,iBAAiB,EACjBC,oBAAoB,GAExBpzP,KAAKy0P,kBAAoBz0P,KAAKy0P,kBAAkBj5O,KAAKxb,MACrDA,KAAK00P,uBAAyB10P,KAAK00P,uBAAuBl5O,KAAKxb,MAC/DA,KAAK20P,sBAAwB30P,KAAK20P,sBAAsBn5O,KAAKxb,MAEjE,gBACI,MAAO,CAAC,IAAI,QAAcA,KAAKy0P,kBAAmB,CAACz0P,KAAKkgC,MAAMizN,gBAAiBnzP,KAAKkgC,MAAMkzN,qBAAsB,IAAI,QAAcpzP,KAAK00P,uBAAwB,CAAC10P,KAAKwzC,MAAOxzC,KAAKkgC,MAAMizN,gBAAiBnzP,KAAKkgC,MAAMkzN,mBAAoBpzP,KAAKwzC,MAAMohN,WAAY50P,KAAKwzC,MAAMuQ,mBAE7Q,gBACI,IAAI8wM,EAAiBC,EACrB,QAAUD,EAAkB70P,KAAK+0P,SAAS,UAAO,IAAWF,GAA2BA,EAAgBvwL,OAAO,CAACtkE,KAAKkgC,MAAMizN,gBAAiBnzP,KAAKkgC,MAAMkzN,qBACtJ,QAAU0B,EAAmB90P,KAAK+0P,SAAS,UAAO,IAAWD,GAA4BA,EAAiBxwL,OAAO,CAACtkE,KAAKwzC,MAAOxzC,KAAKkgC,MAAMizN,gBAAiBnzP,KAAKkgC,MAAMkzN,mBAAoBpzP,KAAKwzC,MAAMohN,WAAY50P,KAAKwzC,MAAMuQ,kBAE/N,oBACI,IAAI/6C,EAAW,KACXhJ,KAAK+zP,YAAc,GAAK/zP,KAAK20P,yBAGjC,OADA,QAAgB7kP,IAAI9G,GACb,KACH,QAAgB2P,OAAO3P,IAG/B,yBACQhJ,KAAK+zP,YAAc,GACnB/zP,KAAK20P,wBAGb,wBACI,IACItiM,UAAWA,EACXzG,YAAaA,EACbopM,kBAAmBA,EACnB9lK,iBAAkBA,EAClBrjC,SAAUA,EACVj+C,MAAOA,EACPqnP,iBAAkBA,EAClBC,cAAeA,EACfv9M,UAAWA,EACX82C,UAAWA,EACXxiC,UAAWA,EACXkpM,gBAAiBA,EACjBjpM,SAAUA,EACVkpM,eAAgBA,EAChBzB,UAAWA,EACX0B,eAAgBA,EAChBC,sBAAuBA,EACvBj5O,WAAYA,EACZyvC,SAAUA,EACVC,sBAAuBA,EACvBwpM,cAAeA,EACf7pK,WAAYA,EACZnxC,QAASA,GACTv6C,KAAKwzC,MAAMohN,WACf,OAAO,eAAS,GAAI50P,KAAKw1P,eAAgB,CACrCtpM,SAAUA,EACVD,UAAWA,EACXkpM,gBAAiBA,EACjBC,eAAgBA,EAChBJ,kBAAmBA,EACnB3iM,UAAWA,EACXvG,SAAUA,EACVD,SAAUA,EACVopM,iBAAkBA,EAClBrpM,YAAaA,EACbspM,cAAeA,EACfzmK,UAAWA,EACX4mK,eAAgBA,EAChB96M,QAASA,EACT20C,iBAAkBA,EAClBomK,sBAAuBA,EACvBC,cAAeA,EACf5B,UAAWA,EACXt3O,WAAYA,EACZ0vC,sBAAuBA,EACvB2/B,WAAYA,EACZ/zC,UAAWA,EACX/pC,MAAOA,IAGf,kBACI,OAAO5N,KAAKuzP,UAAU1/I,QAAUi/I,GAAgB9yP,KAAKuzP,UAAU1/I,SAAW,EAE9E,wBACI,IAAI4hJ,EAAuBtB,GAAiB,CACxC/0O,OAAQpf,KAAKuzP,UAAU1/I,QACvB8/I,UAAW3zP,KAAKqzP,aAAax/I,QAC7B4iG,KAAMz2M,KAAKkzP,YAAYr/I,QACvBggJ,MAAO7zP,KAAKszP,SAASz/I,UAEzB,GAAI7zG,KAAKw0P,wBAA0Bx0P,KAAKkgC,MAAMizN,iBAAmBnzP,KAAKu0P,2BAA6Bv0P,KAAKkgC,MAAMkzN,mBAA9G,CAGA,IAAIl7O,GAAW,eAAUlY,KAAK01P,eAC1Bx9O,IACAlY,KAAK01P,cAAgB,KAErBx9O,GAAWlY,KAAKkgC,MAAMkzN,sBACtBpzP,KAAK01P,cAAc/B,UAAY8B,EAAqB9B,UACpD3zP,KAAK01P,cAAc7B,MAAQ4B,EAAqB5B,QAEhD37O,GAAWlY,KAAKkgC,MAAMizN,mBACtBnzP,KAAK01P,cAAcj/C,KAAOg/C,EAAqBh/C,MAEnDz2M,KAAKu0P,yBAA2Bb,GAA0B,eAAS,CAC/Dt0O,OAAQq2O,EAAqBr2O,QAC9B,CACCu0O,UAAW3zP,KAAK01P,cAAc/B,UAC9BE,MAAO7zP,KAAK01P,cAAc7B,SAE9B7zP,KAAKw0P,sBAAwBR,GAAyB,eAAS,GAAIyB,EAAsB,CACrFh/C,KAAMz2M,KAAK01P,cAAcj/C,QAE7Bz2M,KAAK21P,SAASC,IAAoB,CAC9BzC,gBAAiBnzP,KAAKw0P,yBAE1Bx0P,KAAK21P,SAASC,IAAoB,CAC9BxC,mBAAoBpzP,KAAKu0P,6BAGjC,qBACI,IAAIsB,EAAc71P,KAAKwzC,MACnBsiN,EAAY,gBAA8BD,EAAa,IAC3D,OAAOC,EAEX,SACI,IAAItiN,EAAQxzC,KAAKwzC,MACjB,OAAOw/M,GAAa,CAChBx/M,MAAO,eAAS,GAAIA,EAAO,CACvBuQ,gBAAiBqQ,GAAY5gB,EAAMuQ,mBAEvCovM,gBAAiBnzP,KAAKkgC,MAAMizN,gBAC5BC,mBAAoBpzP,KAAKkgC,MAAMkzN,mBAC/BG,UAAWvzP,KAAKuzP,UAChBF,aAAcrzP,KAAKqzP,aACnBH,YAAalzP,KAAKkzP,YAClBI,SAAUtzP,KAAKszP,SACfL,kBAAmBjzP,KAAKizP,kBACxBc,YAAa/zP,KAAK+zP,YAClBY,sBAAuB30P,KAAK20P,sBAC5Ba,eAAgBx1P,KAAKw1P,kBAIjC,GAAmB9mI,aAAe2lI,GC7O3B,IAAI0B,GAAiB,CACxBf,mBAAmB,EACnBlpM,UAAU,EACVF,YAAa,WACbspM,cAAe,GACfzmK,UAAW,GACXl0C,SAAS,EACT20C,kBAAkB,EAClBomK,sBAAuB,OACvBC,eAAe,EACf5B,UAAWn2P,OAAOw4P,OAAO,CAAC,EAAG,KAC7BjqM,uBAAuB,EACvB2/B,WAAY,EACZ,YACI,OAAO,OAAoBryF,OAAO,uBCX/B48P,GAAaz4P,OAAOq1B,OAAOr1B,OAAOkvB,UAAW,eAASlvB,OAAO04P,0BAA0BH,IAAiBv4P,OAAO04P,0BAA0B,CAChJC,gBAAiB,EACjBf,eAAgB,OAChBt8B,iBAAkB,EAClBq8B,gBAAiB,WAEViB,GAAqB54P,OAAOq1B,OAAOr1B,OAAOkvB,UAAW,eAASlvB,OAAO04P,0BAA0BH,IAAiBv4P,OAAO04P,0BAA0B,CACxJhqM,SAAU,EACVD,UAAW,MCVX,GAAY,CAAC,WAAY,YAAa,YAAa,iBAAkB,cAc9DoqM,GAAmB,UACnB,GAAelmP,IACtB,IACIqjC,OACIigN,eAAgBA,GAEpBl3P,KAAMA,GACN4T,EACJ,OAAO,gBAAY,EAAG,MAAOkmP,GAAkB95P,EAAM,EAAG,KAAM,KAAMk3P,IAGpE6C,GAAoB,CACpB,gBACI,OAAOF,GAAmBnqM,WAE9B,gBACI,OAAOmqM,GAAmB3nK,WAE9B,iBACI,OAAO2nK,GAAmB1qK,aAG3B,MAAM,WAAiB,QAC1B,YAAYl4C,GACRkzD,MAAMlzD,GACNxzC,KAAKkgC,MAAQ,GAEjB,eACI,IAAIq2N,EACJ,OAAQ,QAAUA,EAAuBv2P,KAAKwzC,MAAMqY,gBAAa,IAAW0qM,EAAuBA,EAAuB,KAAO,OAAoB17P,aAAa,mBAAjC,GAErI,WACI,IACI4zF,UAAWA,EACXxiC,UAAWA,EACXy/B,WAAYA,GACZ1rF,KAAKwzC,MACT,OAAO,gBAAOxzC,KAAK6rD,UAAWI,EAAY,GAAGt6C,WAAY88E,EAAU98E,WAAY+5E,EAAW/5E,YAE9F,qBACI,IAAIkkP,EAAc71P,KAAKwzC,MACnBsiN,EAAY,gBAA8BD,EAAa,IAC3D,OAAOC,EAEX,SACI,IAAItiN,EAAQxzC,KAAKwzC,MACjB,OAAO,GAAa,CAChBA,MAAO,eAAS,GAAIA,GACpBqY,SAAU7rD,KAAK6rD,SACftvD,KAAMyD,KAAKzD,KACXi5P,eAAgBx1P,KAAKw1P,kBAIjC,GAAS9mI,aAAe4nI,G,iBCnEbE,GAAwB,qBAAc,GCD7C,GAAY,CAAC,WAAY,YAAa,QAAS,UAAW,WAAY,YAc/D,GAAermP,IACtB,IACIqjC,OACIwkB,SAAUA,EACV3F,UAAWA,EACXzkD,MAAOA,EACPghG,SAAUA,EACVx0D,SAAUA,GAEdq8M,UAAWA,GACXtmP,EACJ,OAAO,gBAAY,EAAG,MAAOkiD,EAAW2F,EAAU,EAAG,CACjD5d,SAAUA,EACV4sD,KAAM,SACN,aAAcp5F,EACd,eAAgBghG,EAAW,YAAS,GACrC,KAAM6nJ,IAEFC,GAAmB,CAC1BrkM,UAAW,GACXzkD,MAAO,GACPwsC,SAAU,EACVw0D,UAAU,GAKP,MAAM,WAAoB,QAC7B,YAAYp7D,GACRkzD,MAAMlzD,GACNxzC,KAAKkgC,MAAQ,GACblgC,KAAKy2P,UAAY,kBACjBz2P,KAAK22P,eAAiB32P,KAAK22P,eAAen7O,KAAKxb,MAC/CA,KAAK42P,iBAAmB52P,KAAK42P,iBAAiBp7O,KAAKxb,MAEvD,sBACI,MAAI,0BAA2BA,KAAKiiF,QACzBjiF,KAAKiiF,QAAQu0K,sBAEjBA,GAEX,gBACI,MAAO,CAAC,IAAI,QAAcx2P,KAAK22P,eAAgB,CAAC32P,KAAK62P,gBAAiB72P,KAAKwzC,MAAMsI,UAAW,IAAI,QAAc97C,KAAK42P,iBAAkB,CAAC52P,KAAKwzC,MAAMsI,WAErJ,gBACI,IAAI+4M,EAAiBC,EACrB,QAAUD,EAAkB70P,KAAK+0P,SAAS,UAAO,IAAWF,GAA2BA,EAAgBvwL,OAAO,CAACtkE,KAAK62P,gBAAiB72P,KAAKwzC,MAAMsI,UAChJ,QAAUg5M,EAAmB90P,KAAK+0P,SAAS,UAAO,IAAWD,GAA4BA,EAAiBxwL,OAAO,CAACtkE,KAAKwzC,MAAMsI,UAEjI,iBACI,OAAO97C,KAAK62P,gBAAgBhsL,uBAAuB7qE,KAAKy2P,UAAU5iJ,QAAS7zG,KAAKwzC,MAAMsI,SAE1F,mBACI,OAAO,gBAAsB97C,KAAKy2P,UAAU5iJ,QAAS7zG,KAAKwzC,MAAMsI,SAEpE,qBACI,IAAI+5M,EAAc71P,KAAKwzC,MACnBsiN,EAAY,gBAA8BD,EAAa,IAC3D,OAAOC,EAEX,SACI,IAAItiN,EAAQxzC,KAAKwzC,MACjB,OAAO,GAAa,CAChBA,MAAO,eAAS,GAAIA,GACpBijN,UAAWz2P,KAAKy2P,UAChBI,gBAAiB72P,KAAK62P,gBACtBrB,eAAgBx1P,KAAKw1P,kBAIjC,GAAY9mI,aAAegoI,GCtFpB,IAAII,GAAc,WACdC,GAAmB,gBACnBC,GAAoB,WACpBC,GAA2B,kBAC3BC,GAAmB,UACnBC,GAAwB,eACxBC,GAAwB,eACxBC,GAAyB,gBACzBC,GAAiC,GAAG3vO,OAAOyvO,GAAuB,KAAKzvO,OAAOwvO,IAC9EI,GAAoB,iB,aCP3B,GAAY,CAAC,YAAa,QAAS,UAAW,YAqBvC,GAAepnP,IACtB,IACIkiD,UAAWA,EACXzkD,MAAOA,EACP4lC,OACIsI,QAASA,EACT8yD,SAAUA,GAEd/sG,MAAOA,GACPsO,EACJ,OAAO,gBAAqB,EAAG,GAAa,CACxCkiD,UAAWA,EACXzkD,MAAOA,EACPkuC,QAASA,EACT8yD,SAAUA,EACV52C,SAAUn2D,KAGP21P,GAAY,CACnBp2P,MAAO,EACPwtG,UAAU,EACVv8C,UAAW6kM,IAER,MAAM,WAAa,QACtB,YAAY1jN,GACRkzD,MAAMlzD,GACNxzC,KAAKkgC,MAAQ,GAEjB,YACI,OAAO,gBAAO,OAAoBrlC,aAAa,gBAAiBmF,KAAK6B,OAEzE,YACI,OAAO7B,KAAKwzC,MAAMpyC,MAAQ,EAE9B,gBACI,IACIwtG,SAAUA,GACV5uG,KAAKwzC,MACT,OAAO,gBAAe,CAClB,CAAC,GAAG7rB,OAAO3nB,KAAKwzC,MAAM6e,cAAeryD,KAAKwzC,MAAM6e,UAChD,CAAC8kM,MAA0BvoJ,IAGnC,qBACI,IAAIinJ,EAAc71P,KAAKwzC,MACnBsiN,EAAY,gBAA8BD,EAAa,IAC3D,OAAOC,EAEX,SACI,IAAItiN,EAAQxzC,KAAKwzC,MACjB,OAAO,GAAa,CAChBA,MAAO,eAAS,GAAIA,GACpB5lC,MAAO5N,KAAK4N,MACZ/L,MAAO7B,KAAK6B,MACZwwD,UAAWryD,KAAKqyD,UAChBmjM,eAAgBx1P,KAAKw1P,kBAIjC,GAAK9mI,aAAe8oI,G,iBChFhB,GAAY,CAAC,eACbC,GAAa,CAAC,gBAAiB,YAAa,YAAa,mBAqBzDC,GAA6B,eACtB,GAAevnP,IACtB,IACI0jP,MAAOA,GACP1jP,EACAwnP,EAAc9D,EAAM/3P,IAAI8U,IACxB,IACI9V,IAAKA,EACL88P,UAAWA,GACXhnP,EACJ,OAAOgnP,EAAY,gBAAqB,EAAG,GAAM,CAC7Cx2P,MAAOw2P,EAAUx2P,MACjBwtG,SAAUgpJ,EAAUhpJ,SACpB9yD,QAAS87M,EAAU97M,SACpBhhD,GAAO,gBAAY,EAAG,MAAO48P,GAA4B,QAAS,GAAI,KAAM58P,KAEnF,OAAO,gBAAe68P,EAAa,IAEnCE,GAAgB,EAEpB,SAASC,GAAiBrwD,EAAYswD,EAAmBtpK,GACrD,OAAI,IAAMg5G,EACC,OAEPA,EAAaswD,IAAsBtpK,EAAY,EACxC,MAEJ,OAGX,SAASupK,GAAwCC,EAAsBxpK,EAAWypK,GAC9E,IAAIC,EAAc,GACdC,EAAkB,GACtB,OAAQF,GACJ,IAAK,OACDC,EAAc,IAAIF,GAClB,MACJ,IAAK,OACDE,EAAc,CAAC,EAAG,SAAUF,EAAsB,OAAQxpK,EAAY,GACtE2pK,EAAkBH,EAAqBjkP,MAAM,GAAI,GACjD,MACJ,IAAK,OACDmkP,EAAc,CAAC,KAAMF,EAAsB,OAAQxpK,EAAY,GAC/D2pK,EAAkBH,EAAqBjkP,MAAM,GAAI,GACjD,MACJ,IAAK,MACDmkP,EAAc,CAAC,EAAG,SAAUF,EAAsBxpK,EAAY,GAC9D2pK,EAAkBH,EAAqBjkP,MAAM,GAErD,MAAO,CACHikP,qBAAsBA,EACtBG,gBAAiBA,EACjBD,YAAaA,GAIrB,SAASE,GAAkB5wD,EAAYswD,EAAmBtpK,EAAWypK,GAEjE,IADA,IAAID,EAAuB,GAClBx8P,EAAI,EAAGA,EAAIs8P,EAAmBt8P,GAAK,EACxCw8P,EAAqBh1P,KAAKxH,EAAIgsM,GAElC,OAAOuwD,GAAwCC,EAAsBxpK,EAAWypK,GAEpF,IAAII,GAAsB,CACtB,gBACI,OAAOlC,GAAmBnqM,WAE9B,oBACI,OAAOmqM,GAAmBlB,eAE9B,gBACI,OAAOkB,GAAmB3nK,YAG3B,MAAM,WAAmB,QAC5B,YAAYj7C,GACRkzD,MAAMlzD,GACNxzC,KAAKkgC,MAAQ,GACblgC,KAAKu4P,sBAAwBv4P,KAAKu4P,sBAAsB/8O,KAAKxb,MAC7DA,KAAKw4P,oBAAsBx4P,KAAKw4P,oBAAoBh9O,KAAKxb,MACzDA,KAAKy4P,oBAAsBz4P,KAAKy4P,oBAAoBj9O,KAAKxb,MACzDA,KAAK04P,YAAc14P,KAAK04P,YAAYl9O,KAAKxb,MAE7C,aACI,MAAI,kBAAmBA,KAAKiiF,QACjBjiF,KAAKiiF,QAAQ02K,cAEjB,QAEX,yBACI,IAAIC,EAAqB54P,KAAK64P,yBAC9B,OAAKD,GACM,CACHR,gBAAiB,GACjBH,qBAAsB,IAKlC,sBAAsBa,EAAkB7sM,GACpC,IACImsM,gBAAiBA,GACjBp4P,KAAK44P,mBACLG,EAA8BX,EAAgBpkP,OAAO,GAAG,GAAK8kP,EAAmB,EAChFE,EAA0BZ,EAAgBp1P,SAASipD,GACvD,OAAO8sM,GAA+BC,EAE1C,sBACI,IACIvqK,UAAWA,EACXxiC,UAAWA,GACXjsD,KAAKwzC,MACLi0J,EAAa,GAEbwwD,qBAAsBA,GACtBj4P,KAAK44P,mBAELnxD,EADAx7I,IAAcgsM,EAAqB,GACtBhsM,EAAY,EAClBA,IAAcgsM,EAAqBA,EAAqBr+P,OAAS,GAC3DqyD,EAAY,EAAI4rM,GACtB5rM,EAAY4rM,GACN,EACN5rM,GAAawiC,EAAYopK,GACnBppK,EAAYopK,GAAgB,EAE5B5rM,EAAY,EAE7B,IAAI8rM,EAAoBF,GACpBK,EAAYJ,GAAiBrwD,EAAYswD,EAAmBtpK,GAC5DwqK,EAAqBZ,GAAkB5wD,EAAYswD,EAAmBtpK,EAAWypK,IAE7EC,YAAaA,GACbc,EACJL,EAAqB,gBAA8BK,EAAoB,IAE3E,OADAj5P,KAAK64P,yBAA2BD,EACzBT,EAEX,sBACI,IACIjD,cAAeA,EACfzmK,UAAWA,GACXzuF,KAAKwzC,MACT,OAAOi7C,GAAaopK,IAAiBppK,GAAaymK,EAEtD,YAAYjpM,GACRjsD,KAAKwzC,MAAM2hN,gBAAgBlpM,GAE/B,kBACI,IACIwiC,UAAWA,GACXzuF,KAAKwzC,MACT,GAAIxzC,KAAKy4P,sBACL,OAAOJ,GAAkB,EAAG5pK,EAAWA,EAAW,QAAQ0pK,YAE9D,GAAIn4P,KAAKu4P,sBAAsB9pK,EAAWzuF,KAAKwzC,MAAMyY,WAAY,CAC7D,IACIgsM,qBAAsBA,GACtBj4P,KAAK44P,mBACLV,EAAYJ,GAAiBG,EAAqB,GAAIJ,GAAeppK,GACzE,OAAOupK,GAAwCC,EAAsBxpK,EAAWypK,GAAWC,YAE/F,OAAOn4P,KAAKw4P,sBAEhB,YACI,IAAIU,GAEAjtM,UAAWA,GACXjsD,KAAKwzC,MACL2lN,EAAa/3P,IACb,IAAIwzP,EAAa,QAAUxzP,GAAS,SAAWA,EAAQ,KAAO,CAC1DA,MAAOA,EACP06C,QAAS,IAAM97C,KAAK04P,YAAYt3P,GAChCwtG,SAAU3iD,IAAc7qD,GAE5B,MAAO,CACHtG,IAAKsG,EAAMuQ,WACXimP,UAAWhD,IAGfwE,EAAiB,QAAUF,EAAel5P,KAAK6xD,cAAW,IAAWqnM,GAAgBA,EAAa78O,WAAa,IAAIrc,KAAKm4P,aAAahxK,UAAYnnF,KAAKm4P,YAC1J,OAAOiB,EAAet9P,IAAIsF,GAAS+3P,EAAW/3P,IAElD,qBACI,IAAIy0P,EAAc71P,KAAKwzC,MACnBsiN,EAAY,gBAA8BD,EAAa4B,IAC3D,OAAO3B,EAEX,SACI,IAAItiN,EAAQxzC,KAAKwzC,MACjB,OAAO,GAAa,CAChBA,MAAO,eAAS,GAAIA,GACpBqe,OAAQ7xD,KAAK6xD,OACbsmM,YAAan4P,KAAKm4P,YAClBtE,MAAO7zP,KAAK6zP,MACZ2B,eAAgBx1P,KAAKw1P,kBAIjC,GAAW9mI,aAAe4pI,G,8BC7Nfe,GAAmB,CAC1BvjN,mBAAmB,EACnBpC,oBAAoB,EACpB,wBACI,MAAO,YAAck2D,GAAA,KAAQC,OAAOC,aAAeF,GAAA,KAAQyd,gBCDxDiyI,GAAmB,CAC1B1rP,MAAO,GACP,gBACI,OAAO,eAAW,kBAAa,WAAa,WCLhD,GAAY,CAAC,YAAa,qBAAsB,YAAa,eAAgB,WAAY,oBAAqB,SAAU,OAAQ,oBAAqB,sBAAuB,UAAW,QAAS,YAAa,MAAO,MAAO,OAAQ,OAAQ,UAAW,YAAa,YAAa,WAAY,aAAc,kBAAmB,OAAQ,WAAY,sBAAuB,kBAAmB,mBAAoB,wBAAyB,mBAAoB,QAAS,cAAe,UAAW,SAqB/d2rP,GAAgB,EACT,GAAeppP,IACtB,IACIqpP,eAAgBA,EAChBhE,eAAgBA,GAChBrlP,EACJ,OAAO,gBAAe,gBAAqB,EAAG,QAAqB,eAAS,CACxEspP,cAAe,GACfD,eAAgBA,EAChBE,cAAe,IAChBlE,MAEImE,GAAiBn8P,OAAOq1B,OAAOr1B,OAAOkvB,UAAW,eAASlvB,OAAO04P,0BAA0B,SAAc14P,OAAO04P,0BAA0B,CACjJ0D,aAAcL,GACdM,yBAAyB,MAElBC,GAAqB,CAC5B,mBACI,OAAOH,GAAeC,cAE1B,eACI,OAAOD,GAAezxM,UAE1B,WACI,OAAOyxM,GAAe/3P,MAE1B,sBACI,OAAO+3P,GAAe9jH,iBAE1B,uBACI,OAAO8jH,GAAe3vD,kBAE1B,4BACI,OAAO2vD,GAAejnD,uBAE1B,uBACI,OAAOinD,GAAezvD,kBAE1B,cACI,OAAOyvD,GAAehkH,SAE1B,gBACI,OAAOgkH,GAAetnM,WAE1B,yBACI,OAAOgnM,GAAiB3lN,oBAE5B,eACI,OAAOimN,GAAehlN,UAE1B,wBACI,OAAO0kN,GAAiB5jN,mBAE5B,wBACI,OAAO4jN,GAAiBvjN,mBAE5B,eACI,OAAO6jN,GAAev/M,UAE1B,cACI,OAAOu/M,GAAep/M,SAE1B,YACI,OAAO++M,GAAiB1rP,OAE5B,gBACI,OAAO0rP,GAAiBzxM,WAE5BgyM,yBAAyB,GAEtB,MAAM,WAAkB,QAC3B,YAAYrmN,GACRkzD,MAAMlzD,GACNxzC,KAAKkgC,MAAQ,CACTr+B,WAAO,IAAW7B,KAAKwzC,MAAM3xC,MAAQ7B,KAAKwzC,MAAM3xC,MAAQ7B,KAAKwzC,MAAMomN,cAG3E,qBACI,OAAO,eAAS,GAAI55P,KAAKwzC,MAAO,CAC5B3xC,WAAO,IAAW7B,KAAKwzC,MAAM3xC,MAAQ7B,KAAKwzC,MAAM3xC,MAAQ7B,KAAKkgC,MAAMr+B,QAG3E,qBACI,IAAIk4P,EAAoB,eAAS,GAAI/5P,KAAKwzC,MAAO,CACzC3xC,WAAO,IAAW7B,KAAKwzC,MAAM3xC,MAAQ7B,KAAKwzC,MAAM3xC,MAAQ7B,KAAKkgC,MAAMr+B,QAEvEi0P,EAAY,gBAA8BiE,EAAmB,IACjE,OAAOjE,EAEX,SACI,IAAItiN,EAAQxzC,KAAKwzC,MACjB,OAAO,GAAa,CAChBA,MAAO,eAAS,GAAIA,EAAO,CACvB3xC,WAAO,IAAW7B,KAAKwzC,MAAM3xC,MAAQ7B,KAAKwzC,MAAM3xC,MAAQ7B,KAAKkgC,MAAMr+B,QAEvE23P,eAAgBx5P,KAAKw5P,eACrBhE,eAAgBx1P,KAAKw1P,kBAIjC,GAAU9mI,aAAeorI,GC3HlB,IAAIE,GAAgB,GACpB,SAASC,GAA2Bn8M,EAAU92B,GACjD,OAAO82B,EAAWk8M,GAAgBxoP,KAAK1I,OAAOke,GAAQrV,WAAW/X,OCArE,IAAI,GAAY,CAAC,YAAa,YAAa,kBAAmB,kBA4B1DsgQ,GAAwB,GAAGvyO,OAAO0uO,GAAkB,kBACpD8D,GAAyB,gBACzBC,GAAoB,iBACpBC,GAA0B,iBACnB,GAAelqP,IACtB,IACImqP,aAAcA,EACdjF,eAAgBA,EAChB7hN,OACIi7C,UAAWA,GAEf8rK,oBAAqBA,EACrB14P,MAAOA,EACP24P,YAAaA,EACbnvP,MAAOA,GACP8E,EACJ,OAAO,gBAAY,EAAG,MAAOiqP,GAAmB,CAAC,gBAAqB,EAAG,GAAW,CAChF/nM,UAAW8nM,GACXtxP,IAAK,EACLC,IAAK2lF,EACLpjF,MAAOA,EACPxJ,MAAOA,EACP24P,YAAaA,IACb,gBAAY,EAAG,OAAQN,GAAuB7E,EAAgB,GAAI,gBAAqB,EAAG,GAAM,CAChGhjM,UAAWgoM,GACXzrJ,UAAU,EACVxtG,MAAOqtF,EAAY,EACnB3yC,QAASy+M,KACR,EAAG,KAAM,KAAMD,IAEpBG,GAAkB,CAClB,gBACI,OAAOrE,GAAmBnqM,WAE9B,gBACI,OAAOmqM,GAAmB3nK,YAM3B,MAAM,WAAmB,QAC5B,YAAYj7C,GACRkzD,MAAMlzD,GACNxzC,KAAKs6P,aAAe,kBACpBt6P,KAAKkgC,MAAQ,CACT4d,SAAU,IAEd99C,KAAK06P,YAAc16P,KAAK06P,YAAYl/O,KAAKxb,MACzCA,KAAKu6P,oBAAsBv6P,KAAKu6P,oBAAoB/+O,KAAKxb,MACzDA,KAAKw6P,YAAcx6P,KAAKw6P,YAAYh/O,KAAKxb,MAE7C,gBACI,MAAO,CAAC,IAAI,QAAcA,KAAK06P,YAAa,CAAC16P,KAAKkgC,MAAM4d,YAE5D,gBACI,IAAI+2M,EACJ,QAAUA,EAAkB70P,KAAK+0P,SAAS,UAAO,IAAWF,GAA2BA,EAAgBvwL,OAAO,CAACtkE,KAAKkgC,MAAM4d,WAE9H,cACI,IAAI68M,EACAttQ,EAAK,QAAUstQ,EAAwB36P,KAAKs6P,aAAazmJ,eAAY,IAAW8mJ,OAAwB,EAASA,EAAsB/zL,cAAc,IAAIj/C,OAAOwyO,KACpKn6P,KAAK21P,SAASC,IAAoB,CAC9B93M,SAAUzwD,GAAM0lQ,GAAmB1lQ,IAAOuoQ,EAAiB93M,YAGnE,YACI,OAAO99C,KAAKwzC,MAAMyY,UAAY,EAElC,YACI,IACIwiC,UAAWA,GACXzuF,KAAKwzC,MACT,OAAOymN,GAA2Bj6P,KAAKkgC,MAAM4d,SAAU,CAAC2wC,IAE5D,qBACI,IAAImsK,EACJ,OAAQ,QAAUA,EAAwB56P,KAAKwzC,MAAM6hN,sBAAmB,IAAWuF,EAAwBA,EAAwB,KAAO,OAAoB//P,aAAa,yBAAjC,GAE9I,sBACImF,KAAKwzC,MAAM2hN,gBAAgBn1P,KAAKwzC,MAAMi7C,UAAY,GAEtD,YAAY5sF,GACR7B,KAAKwzC,MAAM2hN,gBAAgBtzP,EAAQ,GAEvC,qBACI,IAAIg0P,EAAc71P,KAAKwzC,MACnBsiN,EAAY,gBAA8BD,EAAa,IAC3D,OAAOC,EAEX,SACI,IAAItiN,EAAQxzC,KAAKwzC,MACjB,OAAO,GAAa,CAChBA,MAAO,eAAS,GAAIA,GACpB8mN,aAAct6P,KAAKs6P,aACnBz4P,MAAO7B,KAAK6B,MACZwJ,MAAOrL,KAAKqL,MACZgqP,eAAgBr1P,KAAKq1P,eACrBkF,oBAAqBv6P,KAAKu6P,oBAC1BC,YAAax6P,KAAKw6P,YAClBhF,eAAgBx1P,KAAKw1P,kBAIjC,GAAW9mI,aAAe+rI,GCpI1B,IAAI,GAAY,CAAC,mBAAoB,qBAAsB,gBAAiB,YAAa,YAAa,kBAAmB,iBAAkB,wBAAyB,cA2BhKI,GAAwB,qBACxBC,GAA0B,iBAC1BC,GAA0B,iBACnBC,GAA6B,oBACpCC,GAAqB,IAAM,OAAoBpgQ,aAAa,mBAAjC,GAC3BqgQ,GAAqB,IAAM,OAAoBrgQ,aAAa,mBAAjC,GAC3BsgQ,GAAa,CACbC,iBAAkB,GAAGzzO,OAAOkzO,GAAuB,KAAKlzO,OAAOozO,IAC/DM,iBAAkB,GAAG1zO,OAAOkzO,GAAuB,KAAKlzO,OAAOmzO,IAC/DQ,kBAAmB,GAAG3zO,OAAOqzO,GAA4B,KAAKrzO,OAAOkzO,GAAuB,KAAKlzO,OAAOozO,IACxGQ,kBAAmB,GAAG5zO,OAAOqzO,GAA4B,KAAKrzO,OAAOkzO,GAAuB,KAAKlzO,OAAOmzO,KAExGU,GAAoB,CACpB1sP,KAAM,OACND,KAAM,QAEC,GAAesB,IACtB,IACIsrP,gBAAiBA,EACjBtG,gBAAiBA,EACjBuG,gBAAiBA,EACjBloN,OACI4/M,mBAAoBA,EACpB8B,cAAeA,EACfzmK,UAAWA,EACXxiC,UAAWA,EACXopM,eAAgBA,GAEpBsG,iBAAkBA,EAClBC,iBAAkBA,GAClBzrP,EACJ,OAAO,gBAAe,CAACyrP,GAAoB,gBAAqB,EAAG,GAAa,CAC5EhuP,MAAOstP,KACP7oM,UAAWqpM,EAAgBrpM,UAC3BjY,SAAUshN,EAAgBthN,SAC1B0B,QAAS4/M,EAAgBG,WACzBzI,GAAsB,gBAAqB,EAAG,GAAY,CAC1D8B,cAAeA,EACfzmK,UAAWA,EACXxiC,UAAWA,EACXkpM,gBAAiBA,KAChB/B,GAAsB,gBAAqB,EAAG,GAAY,CAC3D3kK,UAAWA,EACXxiC,UAAWA,EACXkpM,gBAAiBA,EACjBE,eAAgBA,IAChBsG,GAAoB,gBAAqB,EAAG,GAAa,CACzD/tP,MAAOqtP,KACP5oM,UAAWopM,EAAgBppM,UAC3BjY,SAAUqhN,EAAgBrhN,SAC1B0B,QAAS2/M,EAAgBI,YACxB,IAGT,SAASC,GAAarxM,GAClB,MAAO,SAAWA,EAAY,GAAK,EAEhC,IAAIsxM,GAAyB,CAChC3I,oBAAoB,GAEpB4I,GAA6B,CAC7B,gBACI,OAAO5F,GAAmBnqM,WAE9B,oBACI,OAAOmqM,GAAmBlB,eAE9B,gBACI,OAAOkB,GAAmB3nK,WAE9B,uBACI,OAAO2nK,GAAmBlnK,kBAE9B,4BACI,OAAOknK,GAAmBrqM,uBAE9B,iBACI,OAAOqqM,GAAmB1qK,YAE9B,yBACI,OAAOqwK,GAAuB3I,qBAG/B,MAAM,WAA0B,QACnC,YAAY5/M,GACRkzD,MAAMlzD,GACNxzC,KAAKkgC,MAAQ,GACblgC,KAAKi8P,cAAgB,GACrBj8P,KAAKm1P,gBAAkBn1P,KAAKm1P,gBAAgB35O,KAAKxb,MACjDA,KAAKk8P,eAAiBl8P,KAAKk8P,eAAe1gP,KAAKxb,MAC/CA,KAAKm8P,kBAAoBn8P,KAAKm8P,kBAAkB3gP,KAAKxb,MACrDA,KAAKo8P,iBAAmBp8P,KAAKo8P,iBAAiB5gP,KAAKxb,MACnDA,KAAKq8P,cAAgBr8P,KAAKq8P,cAAc7gP,KAAKxb,MAC7CA,KAAKs8P,eAAiBt8P,KAAKs8P,eAAe9gP,KAAKxb,MAEnD,aACI,MAAI,kBAAmBA,KAAKiiF,QACjBjiF,KAAKiiF,QAAQ02K,cAEjB,QAEX,gBAAgB1sM,GACRjsD,KAAKm8P,kBAAkBlwM,IACvBjsD,KAAKwzC,MAAM2hN,gBAAgBlpM,GAGnC,eAAexB,GACX,IAAIyuM,EACAqD,EAAoB,QAAUrD,EAAel5P,KAAK6xD,cAAW,IAAWqnM,GAAgBA,EAAa78O,WAAam/O,GAAkB/wM,GAAaA,EACjJ+xM,EAAcx8P,KAAKq8P,cAAcE,GACjClqM,EAAY8oM,GAAW,GAAGxzO,OAAO8iC,GAAW9iC,OAAO60O,EAAc,UAAY,WAAY,UAC7F,MAAO,CACHnqM,UAAWA,EACXjY,SAAUoiN,EAAc,GAAK,EAC7BX,SAAU,IAAM77P,KAAKs8P,eAAeC,IAG5C,kBAAkBtwM,GACd,OAAKjsD,KAAKwzC,MAAM07C,iBAGTjjC,GAAa,GAAKA,GAAajsD,KAAKwzC,MAAMi7C,UAAY,EAFlDxiC,GAAa,EAI5B,iBAAiBxB,GACb,OAAOzqD,KAAKwzC,MAAMyY,UAAY6vM,GAAarxM,GAE/C,cAAcA,GACV,OAAOzqD,KAAKm8P,kBAAkBn8P,KAAKo8P,iBAAiB3xM,IAExD,eAAeA,GACXzqD,KAAKm1P,gBAAgBn1P,KAAKo8P,iBAAiB3xM,IAE/C,uBACI,IACI2oM,mBAAoBA,EACpBrnM,sBAAuBA,GACvB/rD,KAAKwzC,MACT,OAAQ4/M,GAAsBrnM,EAElC,uBACI,OAAO/rD,KAAK47P,mBAAqB57P,KAAKwzC,MAAM07C,iBAEhD,sBACI,YAAI,IAAWlvF,KAAKi8P,cAAcP,gBACvB17P,KAAKi8P,cAAcP,gBAEvB17P,KAAKi8P,cAAcP,gBAAkB,KAAO17P,KAAKk8P,eAAe,QAA3B,GAEhD,sBACI,YAAI,IAAWl8P,KAAKi8P,cAAcR,gBACvBz7P,KAAKi8P,cAAcR,gBAEvBz7P,KAAKi8P,cAAcR,gBAAkB,KAAOz7P,KAAKk8P,eAAe,QAA3B,GAEhD,qBACI,IAAIrG,EAAc71P,KAAKwzC,MACnBsiN,EAAY,gBAA8BD,EAAa,IAC3D,OAAOC,EAEX,oBAAoB2G,EAAWC,EAAWz6K,GAClCjiF,KAAKiiF,QAAQ02K,gBAAkB12K,EAAQ02K,eAAiB34P,KAAKwzC,MAAM07C,mBAAqButK,EAAUvtK,kBAAoBlvF,KAAKwzC,MAAMi7C,YAAcguK,EAAUhuK,WAAazuF,KAAKwzC,MAAMyY,YAAcwwM,EAAUxwM,WAAajsD,KAAKwzC,MAAM2hN,kBAAoBsH,EAAUtH,kBAC/Pn1P,KAAKi8P,cAAcP,qBAAkB,GAErC17P,KAAKiiF,QAAQ02K,gBAAkB12K,EAAQ02K,eAAiB34P,KAAKwzC,MAAM07C,mBAAqButK,EAAUvtK,kBAAoBlvF,KAAKwzC,MAAMi7C,YAAcguK,EAAUhuK,WAAazuF,KAAKwzC,MAAMyY,YAAcwwM,EAAUxwM,WAAajsD,KAAKwzC,MAAM2hN,kBAAoBsH,EAAUtH,kBAC/Pn1P,KAAKi8P,cAAcR,qBAAkB,GAG7C,SACI,IAAIjoN,EAAQxzC,KAAKwzC,MACjB,OAAO,GAAa,CAChBA,MAAO,eAAS,GAAIA,GACpBqe,OAAQ7xD,KAAK6xD,OACbsjM,gBAAiBn1P,KAAKm1P,gBACtByG,iBAAkB57P,KAAK47P,iBACvBD,iBAAkB37P,KAAK27P,iBACvBD,gBAAiB17P,KAAK07P,gBACtBD,gBAAiBz7P,KAAKy7P,gBACtBjG,eAAgBx1P,KAAKw1P,kBAIjC,GAAkB9mI,aAAestI,GChNjC,IAAI,GAAY,CAAC,YAAa,qBAAsB,YAAa,aAAc,eAAgB,WAAY,cAAe,oBAAqB,SAAU,OAAQ,oBAAqB,UAAW,QAAS,YAAa,OAAQ,UAAW,YAAa,YAAa,WAAY,aAAc,WAAY,kBAAmB,mBAAoB,wBAAyB,mBAAoB,QAAS,cAAe,YAAa,UAAW,SAqBna,GAAe7rP,IACtB,IACIqpP,eAAgBA,EAChBhE,eAAgBA,GAChBrlP,EACJ,OAAO,gBAAe,gBAAqB,EAAG,QAAqB,eAAS,CACxEspP,cAAe,cACfD,eAAgBA,EAChBE,cAAe,CAAC,yBAA0B,gBAAiB,iBAC5DlE,MAEImH,GAAiBn/P,OAAOq1B,OAAOr1B,OAAOkvB,UAAW,eAASlvB,OAAO04P,0BAA0B,SAAc14P,OAAO04P,0BAA0B,CACjJ0D,aAAc,KACdC,yBAAyB,MAElB+C,GAAqB,CAC5B,mBACI,OAAOD,GAAe/C,cAE1B,eACI,OAAO+C,GAAez0M,UAE1B,WACI,OAAOy0M,GAAe/6P,MAE1B,sBACI,OAAO+6P,GAAe9mH,iBAE1B,uBACI,OAAO8mH,GAAe3yD,kBAE1B,4BACI,OAAO2yD,GAAejqD,uBAE1B,uBACI,OAAOiqD,GAAezyD,kBAE1B,cACI,OAAOyyD,GAAehnH,SAE1B,gBACI,OAAOgnH,GAAetqM,WAE1B,yBACI,OAAOgnM,GAAiB3lN,oBAE5B,eACI,OAAOipN,GAAehoN,UAE1B,wBACI,OAAO0kN,GAAiB5jN,mBAE5B,wBACI,OAAO4jN,GAAiBvjN,mBAE5B,eACI,OAAO6mN,GAAeviN,UAE1B,cACI,OAAOuiN,GAAepiN,SAE1B,YACI,OAAO++M,GAAiB1rP,OAE5B,gBACI,OAAO0rP,GAAiBzxM,WAE5BgyM,yBAAyB,GAEtB,MAAM,WAAkB,QAC3B,YAAYrmN,GACRkzD,MAAMlzD,GACNxzC,KAAKkgC,MAAQ,CACTr+B,WAAO,IAAW7B,KAAKwzC,MAAM3xC,MAAQ7B,KAAKwzC,MAAM3xC,MAAQ7B,KAAKwzC,MAAMomN,cAG3E,qBACI,OAAO,eAAS,GAAI55P,KAAKwzC,MAAO,CAC5B3xC,WAAO,IAAW7B,KAAKwzC,MAAM3xC,MAAQ7B,KAAKwzC,MAAM3xC,MAAQ7B,KAAKkgC,MAAMr+B,QAG3E,qBACI,IAAIk4P,EAAoB,eAAS,GAAI/5P,KAAKwzC,MAAO,CACzC3xC,WAAO,IAAW7B,KAAKwzC,MAAM3xC,MAAQ7B,KAAKwzC,MAAM3xC,MAAQ7B,KAAKkgC,MAAMr+B,QAEvEi0P,EAAY,gBAA8BiE,EAAmB,IACjE,OAAOjE,EAEX,SACI,IAAItiN,EAAQxzC,KAAKwzC,MACjB,OAAO,GAAa,CAChBA,MAAO,eAAS,GAAIA,EAAO,CACvB3xC,WAAO,IAAW7B,KAAKwzC,MAAM3xC,MAAQ7B,KAAKwzC,MAAM3xC,MAAQ7B,KAAKkgC,MAAMr+B,QAEvE23P,eAAgBx5P,KAAKw5P,eACrBhE,eAAgBx1P,KAAKw1P,kBAIjC,GAAU9mI,aAAekuI,GCxHzB,IAAI,GAAY,CAAC,WAAY,iBAAkB,YAAa,aAoBjD,GAAezsP,IACtB,IACIqjC,OACI0Y,SAAUA,EACVkpM,eAAgBA,EAChBzB,UAAWA,GAEftoP,MAAOA,GACP8E,EACJ,OAAO,gBAAqB,EAAG,GAAW,CACtCgR,YAAa,OACbD,UAAW,QACX9G,WAAYu5O,EACZ9xP,MAAOqqD,EACPsuM,YAAapF,EACb/pP,MAAOA,KAIXwxP,GAAyB,CACzB,eACI,OAAOzG,GAAmBlqM,WAG3B,MAAM,WAAsB,QAC/B,YAAY1Y,GACRkzD,MAAMlzD,GACNxzC,KAAKkgC,MAAQ,CACT4d,SAAU,IAEd99C,KAAK06P,YAAc16P,KAAK06P,YAAYl/O,KAAKxb,MAE7C,gBACI,MAAO,CAAC,IAAI,QAAcA,KAAK06P,YAAa,CAAC16P,KAAKwzC,MAAOxzC,KAAKkgC,MAAM4d,SAAU99C,KAAKwzC,MAAM0Y,SAAUlsD,KAAKwzC,MAAM4hN,eAAgBp1P,KAAKwzC,MAAMmgN,aAE7I,gBACI,IAAIkB,EACJ,QAAUA,EAAkB70P,KAAK+0P,SAAS,UAAO,IAAWF,GAA2BA,EAAgBvwL,OAAO,CAACtkE,KAAKwzC,MAAOxzC,KAAKkgC,MAAM4d,SAAU99C,KAAKwzC,MAAM0Y,SAAUlsD,KAAKwzC,MAAM4hN,eAAgBp1P,KAAKwzC,MAAMmgN,YAE/M,cACI3zP,KAAK21P,SAASC,IAAoB,CAC9B93M,SAAUi1M,GAAmB/yP,KAAKwzC,MAAM+/M,UAAU1/I,UAAY+hJ,EAAiB93M,YAGvF,YACI,OAAOm8M,GAA2Bj6P,KAAKkgC,MAAM4d,SAAU99C,KAAKwzC,MAAMmgN,UAAU73P,IAAI8vB,GAAKA,EAAE/pB,QAE3F,qBACI,IAAIg0P,EAAc71P,KAAKwzC,MACnBsiN,EAAY,gBAA8BD,EAAa,IAC3D,OAAOC,EAEX,SACI,IAAItiN,EAAQxzC,KAAKwzC,MACjB,OAAO,GAAa,CAChBA,MAAO,eAAS,GAAIA,GACpBnoC,MAAOrL,KAAKqL,MACZmqP,eAAgBx1P,KAAKw1P,kBAIjC,GAAc9mI,aAAemuI,GCjF7B,IAAI,GAAY,CAAC,WAAY,iBAAkB,aAyBpC,GAAe1sP,IACtB,IACI2sP,cAAeA,GACf3sP,EACJ,OAAO,gBAAe2sP,EAAchhQ,IAAI8U,IACpC,IACIyhD,UAAWA,EACXitG,MAAOA,EACP1xJ,MAAOA,EACPrR,KAAMA,GACNqU,EACJ,OAAO,gBAAqB,EAAG,GAAa,CACxCyhD,UAAWA,EACXzkD,MAAOA,EACPkuC,QAASwjH,EACTtnG,SAAUz7D,GACXA,KACH,IAGJwgQ,GAAyB,CACzB,eACI,OAAO3G,GAAmBlqM,WAG3B,MAAM,WAAsB,QAC/B,YAAY1Y,GACRkzD,MAAMlzD,GACNxzC,KAAKkgC,MAAQ,GACblgC,KAAKi8P,cAAgB,GACrBj8P,KAAKg9P,iBAAmBh9P,KAAKg9P,iBAAiBxhP,KAAKxb,MAEvD,oBACI,YAAI,IAAWA,KAAKi8P,cAAca,cACvB98P,KAAKi8P,cAAca,cAEvB98P,KAAKi8P,cAAca,cAAgB,MACtC,IACI5wM,SAAUA,EACVynM,UAAWA,GACX3zP,KAAKwzC,MACT,OAAOmgN,EAAU73P,IAAI,CAACmyF,EAAO7sF,KACzB,IACI7E,KAAMA,EACNsF,MAAOo7P,GACPhvK,EACA2gB,EAAWquJ,IAAsB/wM,EACjCmG,EAAY,gBAAe,CAC3B,CAACu8C,EAAW0oJ,GAAiCF,KAAwB,EACrE,CAACG,IAAoB,IAAMn2P,IAE/B,MAAO,CACHixD,UAAWA,EACXitG,MAAOt/J,KAAKg9P,iBAAiBC,GAC7BrvP,MAAO,WAAW+Z,OAAOs1O,EAAmB,kBAC5C1gQ,KAAMA,MAnBwB,GAwB9C,iBAAiB0gQ,GACb,MAAO,KACHj9P,KAAKwzC,MAAM4hN,eAAe6H,GACnBj9P,KAAKwzC,MAAM0Y,UAG1B,qBACI,IAAI2pM,EAAc71P,KAAKwzC,MACnBsiN,EAAY,gBAA8BD,EAAa,IAC3D,OAAOC,EAEX,oBAAoB2G,EAAWC,EAAWz6K,GAClCjiF,KAAKwzC,MAAM0Y,WAAauwM,EAAUvwM,UAAYlsD,KAAKwzC,MAAMmgN,YAAc8I,EAAU9I,WAAa3zP,KAAKwzC,MAAM4hN,iBAAmBqH,EAAUrH,iBACtIp1P,KAAKi8P,cAAca,mBAAgB,GAG3C,SACI,IAAItpN,EAAQxzC,KAAKwzC,MACjB,OAAO,GAAa,CAChBA,MAAO,eAAS,GAAIA,GACpBspN,cAAe98P,KAAK88P,cACpBtH,eAAgBx1P,KAAKw1P,kBAIjC,GAAc9mI,aAAequI,GC9G7B,IAAI,GAAY,CAAC,qBAAsB,WAAY,iBAAkB,YAAa,kBAsBvE,GAAe5sP,IACtB,IACI+sP,QAASA,EACTC,oBAAqBA,EACrB3pN,OACI4/M,mBAAoBA,EACpBlnM,SAAUA,EACVkpM,eAAgBA,IAEpBjlP,EACJ,OAAO,gBAAY,EAAG,MAAOknP,GAAwB,CAACjE,GAAsB,gBAAqB,EAAG,GAAe,CAC/GO,UAAWwJ,EACXjxM,SAAUA,EACVkpM,eAAgBA,KACfhC,GAAsB,gBAAqB,EAAG,GAAe,CAC9DG,UAAW2J,EACXvJ,UAAWwJ,EACXjxM,SAAUA,EACVkpM,eAAgBA,KACf,EAAG,KAAM,KAAM8H,IAGxB,SAASE,KACL,OAAO,OAAoBviQ,aAAa,2BAAjC,GAEX,IAAIwiQ,GAAwB,CACxBjK,oBAAoB,GAEpBkK,GAA4B,CAC5B,eACI,OAAOlH,GAAmBlqM,UAE9B,gBACI,OAAOkqM,GAAmBzC,WAE9B,yBACI,OAAO0J,GAAsBjK,qBAM9B,MAAM,WAAyB,QAClC,YAAY5/M,GACRkzD,MAAMlzD,GACNxzC,KAAKkgC,MAAQ,GACblgC,KAAKk9P,QAAU,kBACfl9P,KAAKi8P,cAAgB,GACrBj8P,KAAKu9P,kBAAoBv9P,KAAKu9P,kBAAkB/hP,KAAKxb,MAEzD,gBACI,MAAO,CAAC,IAAI,QAAcA,KAAKu9P,kBAAmB,KAEtD,oBACI,IACI9J,eAAgBA,GAChBzzP,KAAKwzC,MACLigN,IACAA,EAAe5/I,QAAU7zG,KAAKk9P,QAAQrpJ,SAG9C,0BACI,YAAI,IAAW7zG,KAAKi8P,cAAckB,oBACvBn9P,KAAKi8P,cAAckB,oBAEvBn9P,KAAKi8P,cAAckB,oBAAsB,MAC5C,IACIxJ,UAAWA,GACX3zP,KAAKwzC,MACT,OAAOmgN,EAAU73P,IAAI8vB,GAAK,QAAUA,GAAK,IAAMA,EAAI,CAC/CrvB,KAAM6gQ,KACNv7P,MAAO,GACP,CACAtF,KAAM5C,OAAOiyB,GACb/pB,MAAO+pB,KATiC,GAapD,qBACI,IAAIiqO,EAAc71P,KAAKwzC,MACnBsiN,EAAY,gBAA8BD,EAAa,IAC3D,OAAOC,EAEX,oBAAoB2G,EAAWC,EAAWz6K,GACtCykB,MAAM82J,sBACFx9P,KAAKwzC,MAAMmgN,YAAc8I,EAAU9I,YACnC3zP,KAAKi8P,cAAckB,yBAAsB,GAGjD,SACI,IAAI3pN,EAAQxzC,KAAKwzC,MACjB,OAAO,GAAa,CAChBA,MAAO,eAAS,GAAIA,GACpB0pN,QAASl9P,KAAKk9P,QACdC,oBAAqBn9P,KAAKm9P,oBAC1B3H,eAAgBx1P,KAAKw1P,kBAIjC,GAAiB9mI,aAAe4uI,G,iBCzH5B,GAAY,CAAC,YAAa,cAAe,oBAAqB,mBAAoB,WAAY,cAAe,kBAAmB,qBAAsB,QAAS,mBAAoB,gBAAiB,YAAa,YAAa,YAAa,kBAAmB,WAAY,iBAAkB,YAAa,eAAgB,iBAAkB,wBAAyB,WAAY,iBAAkB,aAAc,WAAY,wBAAyB,gBAAiB,aAAc,WAwC7c,GAAentP,IACtB,IACIstP,KAAMA,EACN77B,QAASA,EACT87B,YAAaA,EACbtK,mBAAoBA,EACpBuK,yBAA0BA,EAC1BC,yBAA0BA,EAC1BC,sBAAuBA,EACvBrqN,OACI07C,iBAAkBA,EAClBrjC,SAAUA,EACVqnM,YAAaA,EACbgC,cAAeA,EACfzmK,UAAWA,EACXxiC,UAAWA,EACXkpM,gBAAiBA,EACjBjpM,SAAUA,EACVkpM,eAAgBA,EAChBzB,UAAWA,EACXN,aAAcA,EACdgC,eAAgBA,EAChB/B,SAAUA,EACVj3O,WAAYA,EACZ0vC,sBAAuBA,EACvBwpM,cAAeA,EACf7pK,WAAYA,EACZnxC,QAASA,GAEbi7M,eAAgBA,EAChBsI,qBAAsBA,GACtB3tP,EACJ,OAAO,gBAAe,gBAAqB,EAAG,QAAQ,eAAS,CAC3DsjP,eAAgBqK,EAChBzhP,WAAYA,EACZulN,QAASA,EACTrnL,QAASA,EACTkjN,KAAMA,GACPjI,EAAgB,CACfx9L,SAAU,CAACu9L,GAAiB,gBAAqB,EAAG,GAAkB,CAClE9B,eAAgBJ,EAChBD,mBAAoBA,EACpBlnM,SAAUA,EACVkpM,eAAgBA,EAChBzB,UAAWA,IACXkK,GAAyB,gBAAY,EAAG,MAAO7G,GAAmB,CAAC0G,GAAe,gBAAqB,EAAG,GAAU,CACpHjK,eAAgBP,EAChBrnM,SAAUA,EACV4iC,UAAWA,EACXxiC,UAAWA,EACXy/B,WAAYA,IACZiyK,GAA4B,gBAAY,EAAG,MAAO1G,GAA0B,gBAAqB,EAAG,GAAmB,CACvH/nK,iBAAkBA,EAClBkkK,mBAAoBA,EACpB8B,cAAeA,EACfzmK,UAAWA,EACXxiC,UAAWA,EACXkpM,gBAAiBA,EACjBE,eAAgBA,EAChBtpM,sBAAuBA,EACvB2/B,WAAYA,IACZ,EAAG,KAAM,KAAM4nK,IAAY,EAAG,CAC9Br4L,MAAO,gBAAgB,CACnB83J,WAAY6qC,YAKjBG,GAAoBvgQ,OAAOq1B,OAAOr1B,OAAOkvB,UAAW,eAASlvB,OAAO04P,0BAA0BE,IAAqB54P,OAAO04P,0BAA0B,CAC3J/C,iBAAiB,EACjBC,oBAAoB,MAKjB,MAAM,WAAqB,QAC9B,YAAY5/M,GACRkzD,MAAMlzD,GACNxzC,KAAKkgC,MAAQ,GACblgC,KAAK89P,qBAAuB,kBAC5B99P,KAAKi8P,cAAgB,GACrBj8P,KAAKu9P,kBAAoBv9P,KAAKu9P,kBAAkB/hP,KAAKxb,MACrDA,KAAKg+P,mBAAqBh+P,KAAKg+P,mBAAmBxiP,KAAKxb,MAE3D,gBACI,MAAO,CAAC,IAAI,QAAcA,KAAKu9P,kBAAmB,KAEtD,kBACI,OAAO,eAAS,GAAIv9P,KAAKiiF,QAAS,CAC9Bu0K,sBAAuBx2P,KAAKi+P,iBAGpC,oBACI,IACIxK,eAAgBA,GAChBzzP,KAAKwzC,MACLigN,IACAA,EAAe5/I,QAAU7zG,KAAK89P,qBAAqBjqJ,SAG3D,qBACI,MAAO,CACHj7F,OAAQ,KAAM,EACdlB,QAAS,IAAM1X,KAAK89P,qBAAqBjqJ,QACzC5hD,sBAAuB,IAAMruD,IACzB,IAAIs6P,EAAuBrI,EAC3B,QAAUqI,GAAyBrI,EAAc71P,KAAKwzC,OAAOmE,iBAAc,IAAWumN,GAAiCA,EAAsB9nP,KAAKy/O,EAAajyP,KAI3K,qBACI,YAAI,IAAW5D,KAAKi8P,cAAcgC,eACvBj+P,KAAKi8P,cAAcgC,eAEvBj+P,KAAKi8P,cAAcgC,eAAiB,MAAO,CAC9CpzL,uBAAwB,CAACnzD,EAASo6C,KAC9B,IAAIqsM,EAAoBn+P,KAAKg+P,qBAC7B,OAAO,GAAwB,QAASG,EAAmBzmP,OAAS,EAAQo6C,MAHzC,GAO/C,kBACI,IACIqhM,gBAAiBA,EACjBrnM,SAAUA,GACV9rD,KAAKwzC,MACT,OAAOsY,GAAYqnM,EAEvB,+BACI,OAAO,IAAMnzP,KAAKwzC,MAAM0Y,SAE5B,4BACI,IACIN,YAAaA,EACbqpM,iBAAkBA,GAClBj1P,KAAKwzC,MACT,MAAI,aAAeoY,QAAe,IAAWqpM,EAClCA,EAAmB,UAAY,OAEnCrpM,EAEX,4BACI,QAAS5rD,KAAKwzC,MAAM8hN,uBAAyBt1P,KAAKwzC,MAAMi7C,UAAY,EAExE,+BACI,GAAI,SAAWzuF,KAAKwzC,MAAM8hN,uBAAyB,IAAMt1P,KAAKwzC,MAAMi7C,WAAazuF,KAAKwzC,MAAM07C,iBACxF,MAAO,SAIf,yBACI,IAAItjC,EAAc5rD,KAAKo+P,sBACnBn/P,GAAS,EAMb,OAJIA,EADA,aAAe2sD,EACN5rD,KAAKwzC,MAAM4/M,mBAEX,SAAWxnM,EAEjB3sD,EAEX,cACI,IAAIo/P,EAAa,CACb,CAAC,GAAG12O,OAAO3nB,KAAKwzC,MAAM6e,cAAeryD,KAAKwzC,MAAM6e,UAChD,CAACykM,KAAc,EACf,CAACC,KAAoB/2P,KAAKozP,oBAE9B,OAAO,gBAAeiL,GAE1B,WACI,MAAO,CACHr3J,KAAM,aACNp5F,MAAO5N,KAAKwzC,MAAM5lC,OAG1B,qBACI,IAAI0wP,EAAet+P,KAAKwzC,MACpBsiN,EAAY,gBAA8BwI,EAAc,IAC5D,OAAOxI,EAEX,oBAAoB2G,EAAWC,EAAWz6K,GACtCykB,MAAM82J,sBACFx9P,KAAKwzC,MAAMmE,YAAc8kN,EAAU9kN,YACnC33C,KAAKi8P,cAAcgC,oBAAiB,GAG5C,SACI,IAAIzqN,EAAQxzC,KAAKwzC,MACjB,OAAO,GAAa,CAChBA,MAAO,eAAS,GAAIA,GACpBsqN,qBAAsB99P,KAAK89P,qBAC3BG,eAAgBj+P,KAAKi+P,eACrBP,YAAa19P,KAAK09P,YAClBC,yBAA0B39P,KAAK29P,yBAC/BE,sBAAuB79P,KAAK69P,sBAC5BD,yBAA0B59P,KAAK49P,yBAC/BxK,mBAAoBpzP,KAAKozP,mBACzBxxB,QAAS5hO,KAAK4hO,QACd67B,KAAMz9P,KAAKy9P,KACXjI,eAAgBx1P,KAAKw1P,kBAIjC,GAAa9mI,aAAeqvI,GClP5B,IAAI,GAAY,CAAC,YAAa,mBAAoB,kBAAmB,cAAe,oBAAqB,mBAAoB,WAAY,QAAS,mBAAoB,gBAAiB,YAAa,YAAa,YAAa,kBAAmB,WAAY,iBAAkB,YAAa,iBAAkB,wBAAyB,aAAc,WAAY,wBAAyB,gBAAiB,aAAc,WAoB9Y,GAAe5tP,IACtB,IACIykP,WAAYA,EACZY,eAAgBA,GAChBrlP,EACJ,OAAO,gBAAe,gBAAqB,EAAG,GAAoB,eAAS,CACvE4zC,gBAAiB,GACjB6wM,WAAYA,GACbY,MAKA,MAAM,WAAc,QACvB,YAAYhiN,GACRkzD,MAAMlzD,GACNxzC,KAAKi8P,cAAgB,GACrBj8P,KAAKkgC,MAAQ,CACTgsB,cAAU,IAAWlsD,KAAKwzC,MAAM0Y,SAAWlsD,KAAKwzC,MAAM0Y,SAAWlsD,KAAKwzC,MAAM2iN,gBAC5ElqM,eAAW,IAAWjsD,KAAKwzC,MAAMyY,UAAYjsD,KAAKwzC,MAAMyY,UAAYjsD,KAAKwzC,MAAMslL,kBAEnF94N,KAAKm1P,gBAAkBn1P,KAAKm1P,gBAAgB35O,KAAKxb,MACjDA,KAAKo1P,eAAiBp1P,KAAKo1P,eAAe55O,KAAKxb,MAEnD,gBACI,MAAO,CAAC,mBAEZ,gBAAgB24N,GAER,IAAI4lC,EASAC,EAVJx+P,KAAKwzC,MAAMwhN,mBAEXh1P,KAAK21P,SAASC,IACV2I,EAAa5lC,EAAe,EACrB,CACH1sK,UAAWsyM,KAGnBv+P,KAAKwzC,MAAM2hN,gBAAgBoJ,KAG3Bv+P,KAAK21P,SAASC,IACV4I,EAAY7lC,EACL,CACH1sK,UAAWuyM,KAGnBx+P,KAAKwzC,MAAM2hN,gBAAgBqJ,IAGnC,gBACI,OAAIx+P,KAAKwzC,MAAMwhN,wBACH,IAAWh1P,KAAKwzC,MAAMyY,UAAYjsD,KAAKwzC,MAAMyY,UAAYjsD,KAAKkgC,MAAM+rB,WAAa,OAEtF,IAAWjsD,KAAKwzC,MAAMyY,UAAYjsD,KAAKwzC,MAAMyY,UAAYjsD,KAAKkgC,MAAM+rB,UAE/E,eAAewyM,GACX,IAAIF,EACJv+P,KAAK21P,SAASC,IACV2I,EAAaE,EACN,CACHvyM,SAAUqyM,KAGlBv+P,KAAKwzC,MAAM4hN,eAAemJ,GAE9B,gBACI,OAAIv+P,KAAKwzC,MAAMwhN,kBACJ,gBAAe,CAClB,qBAAqB,EACrB,CAAC,GAAGrtO,OAAO3nB,KAAKwzC,MAAM6e,cAAeryD,KAAKwzC,MAAM6e,YAGjDryD,KAAKwzC,MAAM6e,UAEtB,iBACI,YAAI,IAAWryD,KAAKi8P,cAAcrH,WACvB50P,KAAKi8P,cAAcrH,WAEvB50P,KAAKi8P,cAAcrH,WAAa,KAAO,eAAS,GAAI,eAAS,GAAI50P,KAAKwzC,MAAO,CAChF0Y,cAAU,IAAWlsD,KAAKwzC,MAAM0Y,SAAWlsD,KAAKwzC,MAAM0Y,SAAWlsD,KAAKkgC,MAAMgsB,SAC5ED,eAAW,IAAWjsD,KAAKwzC,MAAMyY,UAAYjsD,KAAKwzC,MAAMyY,UAAYjsD,KAAKkgC,MAAM+rB,YAC/E,CACAoG,UAAWryD,KAAKqyD,UAChBpG,UAAWjsD,KAAKisD,UAChBkpM,gBAAiBlpM,GAAajsD,KAAKm1P,gBAAgBlpM,GACnDmpM,eAAgBlpM,GAAYlsD,KAAKo1P,eAAelpM,KAPb,GAU3C,qBACI,IAAIwyM,EAAwB,eAAS,GAAI1+P,KAAKwzC,MAAO,CAC7C0Y,cAAU,IAAWlsD,KAAKwzC,MAAM0Y,SAAWlsD,KAAKwzC,MAAM0Y,SAAWlsD,KAAKkgC,MAAMgsB,SAC5ED,eAAW,IAAWjsD,KAAKwzC,MAAMyY,UAAYjsD,KAAKwzC,MAAMyY,UAAYjsD,KAAKkgC,MAAM+rB,YAEnF6pM,EAAY,gBAA8B4I,EAAuB,IACrE,OAAO5I,EAEX,oBAAoB2G,EAAWC,EAAWz6K,GACtCykB,MAAM82J,sBACFx9P,KAAKwzC,QAAUipN,GAAaz8P,KAAKwzC,MAAMwhN,oBAAsByH,EAAUzH,mBAAqBh1P,KAAKwzC,MAAM6e,YAAcoqM,EAAUpqM,WAAaryD,KAAKkgC,MAAM+rB,YAAcywM,EAAUzwM,WAAajsD,KAAKwzC,MAAMyY,YAAcwwM,EAAUxwM,WAAajsD,KAAKwzC,MAAM2hN,kBAAoBsH,EAAUtH,iBAAmBn1P,KAAKwzC,MAAM4hN,iBAAmBqH,EAAUrH,iBAChVp1P,KAAKi8P,cAAcrH,gBAAa,GAGxC,SACI,IAAIphN,EAAQxzC,KAAKwzC,MACjB,OAAO,GAAa,CAChBA,MAAO,eAAS,GAAIA,EAAO,CACvB0Y,cAAU,IAAWlsD,KAAKwzC,MAAM0Y,SAAWlsD,KAAKwzC,MAAM0Y,SAAWlsD,KAAKkgC,MAAMgsB,SAC5ED,eAAW,IAAWjsD,KAAKwzC,MAAMyY,UAAYjsD,KAAKwzC,MAAMyY,UAAYjsD,KAAKkgC,MAAM+rB,YAEnFkpM,gBAAiBn1P,KAAKm1P,gBACtBlpM,UAAWjsD,KAAKisD,UAChBmpM,eAAgBp1P,KAAKo1P,eACrB/iM,UAAWryD,KAAKqyD,UAChBuiM,WAAY50P,KAAK40P,WACjBY,eAAgBx1P,KAAKw1P,kBAIjC,GAAM9mI,aAAeunI,GCpIN,MAAM,WAAc,GAC/B,WACI,IAAIziN,EAAQkzD,MAAMi4J,WAElB,OADAnrN,EAAMmE,UAAY33C,KAAK4+P,oBAAoBprN,EAAMmE,WAC1CnE,EAEX,iBACI,MAAO,CACHqrN,OAAQ,CACJ,CAAC,WAAY,kBAAmB,kBAChC,CAAC,YAAa,mBAAoB,oBAEtCC,UAAW,GACXr3L,SAAU,GACV/H,UAAW,GACXlsB,MAAO,CAAC,kBAAmB,iBAAkB,mBAAoB,kBAAmB,oBAAqB,YAAa,WAAY,WAAY,mBAAoB,cAAe,gBAAiB,YAAa,iBAAkB,UAAW,mBAAoB,wBAAyB,gBAAiB,YAAa,aAAc,wBAAyB,aAAc,QAAS,YAAa,WAAY,cAGtZ,qBACI,OAAO,IAGf,eAAkB,UAAW,IC5Bd,UCQX,GAAc,QACdurN,GAAkB,GAClBC,GAAe,SAASh8K,GACxB,OAAO,GAAKzhF,SAASyhF,EAAe/2B,cAAgB,IAEpDgzM,GAAY,EAAQlsM,KAAKhD,QAAQ,CACjCU,KAAM,WACF,IAAIuyB,EAAiBhjF,KAAK2xD,cAAc,QACxCqxB,EAAe1d,QAAQx1D,IAAIlM,IACvB,GAAIA,GAAKA,EAAEs1C,mBAAoB,CAC3B,IAAIH,EAAQ/4C,KAAKk/P,OACbnmN,EACAA,EAAMngC,OAAO,CACTqzC,UAAW+yM,GAAah8K,GACxB92B,SAAU82B,EAAe92B,WACzBuiC,UAAWzL,EAAeyL,YAC1B/C,WAAY1I,EAAe0I,aAC3BwD,iBAAkBlM,EAAekM,qBAGrClvF,KAAK+H,eAEDnE,GAAK,WAAaA,EAAEi+D,YAAc,oBAAsBj+D,EAAEi+D,YAAc,qBAAuBj+D,EAAEi+D,cACzG7hE,KAAKk/P,OAAS,KACdl/P,KAAK+H,aAIjB0rD,YAAa,WACT,IAAI58C,EAAW7W,KAAK0X,UAAUS,SAASnY,KAAK4X,gBAAgB,KACxDunP,EAAen/P,KAAK4Y,OAAO,UAAY,GACvCoqE,EAAiBhjF,KAAK2xD,cAAc,QACpC6Z,EAAqBxrE,KAAK2xD,cAAc,sBACxC77C,EAAU,CACVo/O,cAAe6J,GACf9yM,UAAW+yM,GAAah8K,GACxByL,UAAWzL,EAAeyL,YAC1BviC,SAAU82B,EAAe92B,WACzBqpM,cAAe4J,EAAanzM,qBAC5BF,SAAUqzM,EAAarzM,SACvBF,YAAauzM,EAAavzM,YAC1B0pM,sBAAuB6J,EAAa5kN,QACpCwR,sBAAuBozM,EAAapzM,sBACpCn+C,MAAOuxP,EAAavxP,MACpB+lP,UAAW3zP,KAAK+wH,eAChBrlC,WAAY1I,EAAe0I,aAC3BwD,iBAAkBlM,EAAekM,mBACjCujK,iBAAkB,SAASxmM,GACnB+2B,EAAe/2B,cAAgBA,EAAY,GAC3C+2B,EAAe/2B,UAAUA,EAAY,IAG7CymM,gBAAiB,SAASxmM,GACtB82B,EAAe92B,SAASA,IAE5BvU,UAAW/zC,GAAK4nE,GAAsBA,EAAmBtZ,cAAc,YAAatuD,GACpFw7P,4BAA6Bp/P,KAAK4Y,OAAO,+BACzCojD,YAAah8D,KAAK4Y,OAAO,+BAEzB,eAAUumP,EAAatzM,YACvB/1C,EAAQ+1C,SAAWszM,EAAatzM,UAEhC7rD,KAAKk/P,OACLl/P,KAAKk/P,OAAO3xI,UAGZ,iBACAvtH,KAAKk/P,OAASl/P,KAAKiZ,iBAAiBpC,EAAU,GAAOf,GAErDe,EAASsB,SAAS,YAAY2yC,KAAK,4DAG3Cu0M,SAAU,WACN,OAAOr/P,KAAKk/P,QAEhBnuI,aAAc,WACV,IAAI/tC,EAAiBhjF,KAAK2xD,cAAc,QACpCwtM,EAAen/P,KAAK4Y,OAAO,SAC3B+yC,EAAmBwzM,GAAgBA,EAAaxzM,iBAChDO,EAAW82B,EAAe92B,WAW9B,OAVK,eAAUlsD,KAAKs/P,aAAgBt/P,KAAKs/P,WAAWt8P,SAASkpD,KACzDlsD,KAAKs/P,WAAa,GACdH,IACItgQ,MAAMuY,QAAQu0C,GACd3rD,KAAKs/P,WAAa3zM,EACXA,GAAoBO,EAAW,IACtClsD,KAAKs/P,WAAa,CAAC9tP,KAAKE,MAAMw6C,EAAW,GAAIA,EAAU,EAAIA,MAIhElsD,KAAKs/P,YAEhBtnP,UAAW,WACP,IAAIgrE,EAAiBhjF,KAAK2xD,cAAc,QACpCwtM,EAAen/P,KAAK4Y,OAAO,SAC3B2mP,EAAeJ,GAAgBA,EAAa5kN,QAC5CjB,EAAYt5C,KAAK4Y,OAAO,aAQ5B,MAPI,SAAW2mP,IAIPA,IAHAjmN,GAAc,YAAcA,EAAUhN,MAAQ,aAAegN,EAAUhN,QAGxD02C,EAAeyL,YAAc,GAAKzL,EAAe1U,aAAe0U,EAAekM,qBAG/FqwK,GAEXhvL,UAAW,WACP,OAAOvwE,KAAK+zD,oBAEhB7C,cAAe,SAAS7hB,GACpB,IAAIztC,EAAOytC,EAAKztC,KACZ49P,EAAU,UAAY59P,EACtB69P,EAAW,WAAa79P,EACxB89P,EAAe,eAAiB99P,EAChC+9P,EAAc,cAAgB/9P,EAC9BohF,EAAiBhjF,KAAK2xD,cAAc,QACxC,GAAI6tM,GAAWC,GAAYE,GAAeD,EAAc,CAEpD,GADArwN,EAAK+hB,SAAU,EACX4xB,EAAe0X,2BAA2BrrD,EAAKmtC,UAC/C,QAEAgjL,GAAWC,KACXz/P,KAAKs/P,WAAa,MAEjBI,IACD1/P,KAAKk/P,OAAS,KACdl/P,KAAKszD,cACD,kBAAeksM,GAAWx/P,KAAK4R,WAC/B5R,KAAK4R,UAAU6iD,YAK/BtC,QAAS,WACLnyD,KAAKk/P,OAAS,QAGXU,GAAc,CACrBjiQ,eAAgB,WACZ,MAAO,CACHo7C,MAAO,CACHwB,QAAS,OACTyR,sBAAsB,EACtBL,iBAAkB,OAClB/9C,MAAO,OAAoBvU,OAAO,wBAI9Cq8D,MAAO,CACHo7D,UAAWmuI,KC1JnB,EAAS7oM,eAAe,QAASwpM,I,8BCmC7BC,GAA0B,oBAC1BC,GAAgC,gCAChCC,GAAwB,cACxB,GAAqB,eACrBC,GAA4B,cAC5BC,GAAgB,UAChBC,GAA+B,iBAC/BC,GAAwB,qBACxB,GAAmB,gBACnB,GAAe,YACfC,GAA8B,uBAC9B,GAAmB,+BACnBC,GAAwC,GACxCC,GAAiB,EACjBC,GAAiB,GACjBxhP,GAAgB,SAASpb,GACzB,OAAOA,EAAKiV,OAAO,wBAA0BjV,EAAKguD,cAAc,WAAWye,mBAAmB,kBAE9F,GAAkB,SAASzsE,GAC3B,OAAOA,EAAKiV,OAAO,0BAA4BjV,EAAKguD,cAAc,WAAWye,mBAAmB,oBAEhGowL,GAAc,EAAQztM,KAAKhD,QAAQ,CACnC0D,YAAa,WACTzzD,KAAKC,WACLD,KAAK0X,UAAUS,SAASnY,KAAK4X,gBAAgBqoP,KAC7CjgQ,KAAKo7C,QAETqlN,yBAA0B,WAClBzgQ,KAAK0gQ,kBACL1gQ,KAAK2gQ,yBAAyBxlC,gBAAgBxiN,OAAO3Y,KAAK0gQ,mBAGlEE,qBAAsB,WAClB,IAAIj9P,EAAO3D,KACX2D,EAAK+8P,iBAAmB,SAASv7M,GAC7B,IAAItuC,EAAWlT,EAAK+T,UAChBb,GAAYA,EAASogD,SAAStzD,EAAKiU,gBAAgBqoP,OACnDppP,EAAS4F,IAAI,CACTG,IAAKuoC,EAASvoC,MAElB,eAAW/F,EAAUsuC,EAAStoC,UAGtC7c,KAAK2gQ,yBAAyBxlC,gBAAgBrrN,IAAInM,EAAK+8P,mBAE3DxvM,cAAe,SAAS7hB,GAChB,wBAA0BA,EAAKztC,OAC/B5B,KAAKygQ,2BACDpxN,EAAKxtC,QACL7B,KAAK4gQ,uBACL5gQ,KAAKszD,gBAGbtzD,KAAKC,SAASovC,IAElBohB,KAAM,WACFzwD,KAAKC,WACLD,KAAK2gQ,yBAA2B3gQ,KAAK2xD,cAAc,iBACnD3xD,KAAK4gQ,wBAET5oP,UAAW,WACP,OAAO+G,GAAc/e,OAEzBq7C,KAAM,WACFr7C,KAAK0X,UAAU2jC,QAEnBD,KAAM,WACFp7C,KAAK0X,WAAa1X,KAAK0X,UAAU0jC,QAErCylN,UAAW,SAASh/P,GAChB,eAAW7B,KAAK0X,UAAW7V,IAE/BswD,QAAS,WACLnyD,KAAKygQ,2BACLzgQ,KAAKC,cAGT6gQ,GAAgB,EAAQ/tM,KAAKhD,QAAQ,CACrC+7C,iBAAkB,aAClBr4C,YAAa,SAAS39C,GAClB9V,KAAKC,SAAS6V,GACd9V,KAAK+gQ,UAAW,EAChB/gQ,KAAK8rG,mBACL9rG,KAAKo7C,QAETC,KAAM,WACFr7C,KAAK+gQ,UAAW,GAEpB3lN,KAAM,WACFp7C,KAAK+gQ,UAAW,GAEpBlkP,OAAQ,SAAShb,GACb,IAAIgV,EAAW7W,KAAK0X,UACpB,GAAIb,EAAU,CACV,IAAI,eAAUhV,GAGV,OAAO,eAAUgV,GAFjB,eAAWA,EAAUhV,KAMjCwJ,MAAO,SAASxJ,GACZ,IAAIgV,EAAW7W,KAAK0X,UACpB,GAAIb,EAAU,CACV,IAAI,eAAUhV,GAGV,OAAO,eAASgV,GAFhB,eAASA,EAAUhV,OAO/Bm/P,GAAuBF,GAAc/wM,QAAQ,CAC7C+7C,iBAAkB,WACd9rG,KAAKC,WACL,IAAI4W,EAAW7W,KAAK0X,UACpBb,EAASsB,SAASnY,KAAK4X,gBAAgBioP,MAE3Ce,qBAAsB,WAClB,IACI/pP,EADAlT,EAAO3D,KAEX2D,EAAK+8P,iBAAmB,SAASv7M,GAC7BtuC,EAAWlT,EAAK+T,UACZb,IACAA,EAAS4F,IAAI,CACTG,IAAKuoC,EAASvoC,MAElB,eAAW/F,EAAUsuC,EAAStoC,UAGtClZ,EAAKg9P,yBAAyBxlC,gBAAgBrrN,IAAInM,EAAK+8P,mBAE3DD,yBAA0B,WACtBzgQ,KAAK0gQ,kBAAoB1gQ,KAAK2gQ,yBAAyBxlC,gBAAgBxiN,OAAO3Y,KAAK0gQ,mBAEvF/4J,MAAO,WACH3nG,KAAKihQ,eAAiBliP,GAAc/e,MAChCA,KAAKgY,aACLhY,KAAK4gQ,wBAGb5oP,UAAW,WACP,OAAOhY,KAAK4Y,OAAO,uBAAyB,GAAgB5Y,OAAS+e,GAAc/e,QAEvFkxD,cAAe,SAAS7hB,GAChB,wBAA0BA,EAAKztC,OAC3BytC,EAAKxtC,OACL7B,KAAK2nG,QACL3nG,KAAKszD,cACLtzD,KAAKo7C,MAAK,KAEVp7C,KAAKygQ,2BACLzgQ,KAAKihQ,eAAiBliP,GAAc/e,MACpCA,KAAKo7C,MAAK,KAGlBp7C,KAAKC,SAASovC,IAElBohB,KAAM,WACFzwD,KAAKC,WACLD,KAAK2gQ,yBAA2B3gQ,KAAK2xD,cAAc,iBACnD3xD,KAAK2nG,SAETtsD,KAAM,WACF,IAAIxkC,EAAW7W,KAAK0X,UAChBb,IAAa7W,KAAK+gQ,WACd/gQ,KAAKihQ,eACLpqP,EAASwB,YAAYrY,KAAK4X,gBAAgBkoP,KAE1CjpP,EAASwkC,QAGjBr7C,KAAKC,YAETm7C,KAAM,SAAS4iD,GACX,IAAInnF,EAAW7W,KAAK0X,UAChBwpP,EAA8BlhQ,KAAK4X,gBAAgBkoP,IACnDjpP,IAAa7W,KAAK+gQ,UAAY/iK,KAC1Bh+F,KAAKihQ,gBACLpqP,EAASsB,SAAS+oP,GAClBrqP,EAAS4F,IAAI,OAAQ,IACrB5F,EAASwkC,SAELxkC,EAASogD,SAASiqM,IAClBrqP,EAASwB,YAAY6oP,GAEzBrqP,EAASukC,SAGjBp7C,KAAKC,YAETkhQ,QAAS,SAASC,GACd,IAAIvqP,EAAW7W,KAAK0X,UAChBb,GACAA,EAAS4F,IAAI,OAAQ,OAAS2kP,EAAS,EAAIA,EAASphQ,KAAK2zD,iBAAiBv3C,SAASO,OAG3F0kP,aAAc,SAASC,GACnBA,EAAa,eAAUA,GAAcA,EAAa,GAClD,IAAIzqP,EAAW7W,KAAK0X,UAChBb,GACAA,EAAS4F,IAAI,SAAU6kP,IAG/BnvM,QAAS,WACLnyD,KAAKygQ,2BACLzgQ,KAAKC,cAGTshQ,GAAqBT,GAAc/wM,QAAQ,CAC3CU,KAAM,WACF,IAAI9sD,EAAO3D,KACXA,KAAKC,WACLD,KAAK2xD,cAAc,QAAQu3B,eAAep5E,KAAI,SAAUzF,GAC/CA,GACD1G,EAAKy3C,WAIjB0wD,iBAAkB,WACd9rG,KAAKC,WACLD,KAAK0X,UAAUS,SAASgoP,IAAuBr1M,KAAK,WAExD1P,KAAM,WACF,IAAIkZ,EAAUt0D,KAAK2zD,iBACf98C,EAAW7W,KAAK0X,UAChBb,GAAY7W,KAAK+gQ,UACjBlqP,EAAS4F,IAAI,UAAW,QAExB63C,IAAYA,EAAQ0D,SAAS,IAAMmoM,IAAuBvmQ,QAC1D06D,EAAQknC,QAAQx7F,KAAK0X,WAEzB1X,KAAKC,YAET+X,UAAW,WACP,IAAI2lE,EAAoB39E,KAAK4Y,OAAO,cAChCgjH,EAAuB57H,KAAK4Y,OAAO,iBACvC,OAAO+kE,GAAqBA,EAAkBpjC,SAAWqhF,GAAwBA,EAAqB/iH,SAE1GwiC,KAAM,SAASslC,GACX,IAAI9pE,EAAW7W,KAAK0X,UAChB8pP,EAAe,SAASC,GACxBzqJ,GAAA,KAAG9nG,KAAK2H,GAAU,GAClBmgG,GAAA,KAAGG,QAAQtgG,EAAU,CACjBpY,KAAM,QACNs2B,KAAM,CACF1pB,MAAO,EACPm7D,QAASi7L,EAAUj7L,SAEvB9tE,GAAI+oQ,EACJ/2M,SAAU,IACVC,OAAQ,WAGhB,GAAI9zC,IAAa7W,KAAK+gQ,SAClB,OAAQpgL,GACJ,IAAK,QACD6gL,EAAa,CACTn2P,MAAO,OACPm7D,QAAS,iBAEb,MACJ,IAAK,gBACDg7L,EAAa,CACTn2P,MAAO,OACPm7D,QAAS,UAEb,MACJ,QACI3vD,EAAS4F,IAAI,UAAW,IAGpCzc,KAAKC,cAGTyhQ,GAAqB,EAAQ3uM,KAAKhD,QAAQ,CAC1C4xM,aAAa,EACbC,WAAY,WACR,OAAO5hQ,KAAK2hQ,aAEhBE,uBAAwB,SAASp8L,GAC7B,IAAIxmE,EAUJ,OATA,eAAKe,KAAK8hQ,aAAa9xL,gBAAgB,SAAU5uE,EAAOivE,GACpD,GAAIA,EAAe,CACf,IAAI0xL,EAAe1xL,EAAcrI,kBACjC,GAAI+5L,SAAiB,IAAWA,EAAahjJ,QAAUt5C,EAAItzD,EAAI4vP,EAAahjJ,eAAY,IAAWgjJ,EAAanlP,KAAO6oD,EAAItzD,EAAI4vP,EAAanlP,YAAS,IAAWmlP,EAAaplP,MAAQ8oD,EAAIxyD,EAAI8uP,EAAaplP,aAAU,IAAWolP,EAAa5kI,OAAS13D,EAAIxyD,EAAI8uP,EAAa5kI,OAEtQ,OADAl+H,EAASoxE,GACF,MAIZpxE,GAEXw0D,YAAa,WACTzzD,KAAK0X,UAAUS,SAASnY,KAAK4X,gBAAgBmoP,IAAyB,IAAM//P,KAAK4X,gBAAgB,IAAsB,IAAM,IAAcwjC,QAE/I4mN,0BAA2B,WACvB,IAAIrxL,EAAS3wE,KAAKiiQ,aAClBtxL,EAAOuxL,mBAAqB,SACrBvxL,EAAOwxL,2BACPxxL,EAAOwX,cACPxX,EAAOyxL,YACPzxL,EAAO0xL,MAElBC,uBAAwB,SAAS9nM,EAAUhc,GACvC,OAAI,eAAUgc,GACH,CACHjlD,YAAaipC,EACbgc,SAAUA,GAGXhc,GAEX2T,QAAS,WACL,IAAIz6C,EAAU1X,KAAK0X,UACnB1X,KAAK8hQ,aAAe,KACpBpqP,GAAWA,EAAQ0H,SAAStH,KAAK,IAAM9X,KAAK4X,gBAAgBmoP,KAAwBpnP,UAExFX,UAAW,WACP,IAAIs/C,EAAoBt3D,KAAK2xD,cAAc,WACvC4hB,EAAuBjc,EAAkBgd,oBAC7C,OAAOt0E,KAAK4Y,OAAO,uBAAyB,GAAgB5Y,OAASuzE,EAAqB/2B,eAAiB+2B,EAAqB72B,cAEpI+T,KAAM,WACF,IAAI9sD,EAAO3D,KACXA,KAAKC,WACLD,KAAKm2N,YAAcn2N,KAAK2xD,cAAc,kBACtC3xD,KAAKuiQ,8BAAgCviQ,KAAK2xD,cAAc,kBACxD3xD,KAAK2xD,cAAc,QAAQu3B,eAAep5E,KAAI,SAAUzF,GACpD,IAAIqN,EAAU/T,EAAK+T,WACdrN,GAAaqN,GACdA,EAAQ0jC,WAIpBonN,WAAY,SAAS1sP,GACjB,IAAI2mO,EAAgB3mO,EAAQ2mO,cACxBgmB,IAAoB3sP,EAAQ8qE,aAAaniF,KAC7CuB,KAAK2hQ,aAAc,EACnB3hQ,KAAK8hQ,aAAehsP,EACpB9V,KAAKiiQ,aAAe,CAChBS,YAAa5sP,EAAQ1U,MACrBuhQ,kBAAmB3iQ,KAAKsiQ,uBAAuBxsP,EAAQ0kD,SAAU1kD,EAAQP,aACzEqtP,oBAAqB9sP,EAAQ2mO,cAC7B1sK,eAAgBj6D,EAAQi6D,gBAE5B,IAAIhxC,EAAW,aAAW+gC,cAC1B9/D,KAAK6iQ,eAAiB9jO,EAAS+jO,cAC/B/jO,EAAS+jO,cAAgB,WACrB,OAAO,GAEX9iQ,KAAKm2N,YAAY4sC,KAAK/iQ,KAAKiiQ,cAC3BjiQ,KAAK0X,UAAU+E,IAAI,CACf4/C,UAAWogL,GAAiBA,EAAchgO,IAAI,aAC9CI,OAAQ4/N,IAAkBgmB,GAAmBhmB,EAAc/+O,IAAI,GAAG4lG,cAAgB,eAAUm5I,IAC5FpxO,MAAOoxO,IAAkBgmB,GAAmBhmB,EAAc/+O,IAAI,GAAG6gE,aAAe,eAASk+K,IACzFl6E,WAAYk6E,GAAiBA,EAAchgO,IAAI,gBAChDtE,SAASnY,KAAK4X,gBAAgBooP,KAA4BzrM,YAAY6rM,GAA6BqC,GAAiBlmQ,KAAKkmQ,EAAkB,GAAK3sP,EAAQ8qE,aAAa11E,SACxKlL,KAAK0X,UAAUU,SAAS,QAAgB4qP,mBAAmBvmB,KAE/DwmB,WAAY,SAAS5zN,GACjB,IAAIzrC,EAAIyrC,EAAK2iB,MACTruD,EAAOC,EAAEQ,KAAKT,KACdu/P,EAAY,gBAAat/P,GACzB8wD,IAAa/wD,EAAK4+P,+BAAgC5+P,EAAK4+P,8BAA8B7tM,aACrFyuM,EAAcx/P,EAAKm+P,aACvB,GAAIn+P,EAAKg+P,cAAgBjtM,EAAY,CACjC,IAAI79C,EAAWlT,EAAK+T,UAChB0rP,EAAa5xP,KAAK8B,IAAI4vP,EAAUjwP,EAAIkwP,EAAY1mB,cAAcrgO,SAASO,KAAOwmP,EAAYE,QAC1FC,EAAa9xP,KAAK8B,IAAI4vP,EAAU/wP,EAAIgxP,EAAY1mB,cAAcrgO,SAASQ,IAAMumP,EAAYI,QAC7F,GAAI1sP,EAASjpB,GAAG,aAAew1Q,EAAa9C,IAAkBgD,EAAahD,GAAgB,CACvFzpP,EAASwkC,OACT,IAAImoN,EAAUN,EAAUjwP,EAAIkwP,EAAYE,OACpCI,EAASP,EAAU/wP,EAAIgxP,EAAYI,OACvC1sP,EAAS4F,IAAI,CACTE,KAAM6mP,EACN5mP,IAAK6mP,IAET9/P,EAAK+/P,WAAWR,GAEpBt/P,EAAEu5D,mBAGVumM,WAAY,SAASR,GACjB,IAAIS,EAAsB3jQ,KAAK6hQ,uBAAuBqB,GAClDjkP,EAAajf,KAAKm2N,YAClBxlJ,EAAS3wE,KAAKiiQ,aACdkB,EAAcnjQ,KAAK8hQ,aACvB,GAAI6B,EAAqB,CACrB,IAAItnP,EAAarc,KAAK4Y,OAAO,cACzBgrP,EAAwB,kBAAoBD,EAAoB17L,UAChE47L,EAAWD,EAAwB,IAAM,IACzCjjL,EAAiBgjL,EAAoB17L,UACrCzN,EAAW,YAAcmmB,EAAiBwiL,EAAY3oM,cAAW,EACjEomB,EAAeuiL,EAAYviL,aAC3BlR,EAAiBi0L,EAAoBrrM,kBAAkBkC,EAAU,OAASomB,QAAgB,IAAWA,OAAe,EAASA,EAAa7iC,YAAc,GACxJ+lN,EAAiBX,EAAYW,eAAiBX,EAAYW,gBAAkB,GAC5EC,EAAkB,kBAAoBpjL,EAAiB,GAAKmjL,EAAenjL,IAAmB1hE,EAAW+kP,yBAAyB,OAAAvpQ,EAAA,WAAO,GAAI0oQ,EAAa,CAC1JQ,oBAAqBA,EACrBnlP,QAASmlP,EAAoBvrM,WAAWoC,GACxCkV,eAAgBA,EAChBk0L,sBAAuBA,EACvBznP,iBAAkB,YAAcwkE,GAAkB,eAAEjR,EAAe,IAAItuE,WAI3E,GAFA0iQ,EAAenjL,GAAkBojL,EACjCpzL,EAAOgQ,eAAiBA,EACpBojL,EAAgBnqQ,OAAS,EACzB,IAAK,IAAI6B,EAAI,EAAGA,EAAIsoQ,EAAgBnqQ,OAAQ6B,IAAK,CAC7C,IAAIwoQ,EAAiBF,EAAgBtoQ,EAAI,KAAOsoQ,EAAgBtoQ,GAAGooQ,GAAYE,EAAgBtoQ,EAAI,GAAGooQ,IAAa,EACnH,QAAI,IAAWI,IAAmB5nP,GAAc,MAAQwnP,EAAWX,EAAUW,GAAYI,EAAiBf,EAAUW,GAAYI,GAAiB,CAC7ItzL,EAAOuxL,kBAAoBliQ,KAAKsiQ,uBAAuB9nM,EAAUupM,EAAgBtoQ,GAAG8Z,aAChFm6D,EAAej0E,IACfk1E,EAAOwxL,oBAAsBzyL,EAAelzD,GAAG/gB,GAC/Ck1E,EAAOwX,QAAS,IAEhBxX,EAAOwxL,oBAAsBzyL,EAAe33D,OAC5C44D,EAAOwX,QAAS,GAEpBxX,EAAOyxL,KAAO2B,EAAgBtoQ,GAAGwX,EACjC09D,EAAO0xL,KAAO0B,EAAgBtoQ,GAAG0W,EACjC8M,EAAWilP,KAAKvzL,GAChB,YAIR3wE,KAAKgiQ,4BACL/iP,EAAWilP,KAAKvzL,KAI5BwzL,WAAY,SAAS90N,GACjB,IAAIzrC,EAAIyrC,EAAK2iB,MACTruD,EAAOC,EAAEQ,KAAKT,KACdsb,EAAatb,EAAKwyN,YACtBxyN,EAAK+T,UAAU0jC,OACXn8B,GAActb,EAAKg+P,aACnB1iP,EAAWmlP,KAAKzgQ,EAAKs+P,cAEzBt+P,EAAK+T,UAAUU,SAASzU,EAAKgwD,kBAC7BhwD,EAAKm+P,aAAe,KACpBn+P,EAAKs+P,aAAe,KACpBt+P,EAAKg+P,aAAc,EACnB,aAAW7hM,cAAcgjM,cAAgBn/P,EAAKk/P,gBAAkB,QAGpEwB,GAA2B,SAAS1gQ,GACpC,MAAO,WAAaA,EAAKiV,OAAO,uBAEhC0rP,GAA+B,EAAQ1xM,eAAe7C,QAAQ,CAC9Dw0M,kBAAmB,SAASlC,GACxB,GAAIriQ,KAAKu6G,mBAAoB,CACzB,IAAI7iG,EAAU1X,KAAKu6G,mBAAmB7iG,UACtC,GAAIA,EAAS,CACT,IAAIwxN,EAAYxxN,EAAQ0E,SAASQ,IAC7B4nP,EAAmBxkQ,KAAKu6G,mBAAmBlrC,sBAC/C,OAAOgzL,GAAQn5B,GAAam5B,GAAQn5B,EAAYs7B,GAGxD,OAAO,GAEXC,kBAAmB,WACf,IAAIC,EACJ,OAAO1kQ,KAAK4Y,OAAO,eAAiB,SAAW,QAAU8rP,EAAwB1kQ,KAAK2kQ,yBAAsB,IAAWD,OAAwB,EAASA,EAAsBtlP,SAAS3C,IAAI,eAE/LmoP,cAAe,SAASloP,EAAOJ,EAAakC,GACxC,IAAIqmP,EAAmBR,GAAyBrkQ,MAC5Cqc,EAAarc,KAAK4Y,OAAO,cACzBksP,EAAmB9kQ,KAAKykQ,oBACxBM,EAAyBF,IAAoBxoP,GAAeyoP,EAAuB,EAAJ,EACnF,GAAIpoP,EAAMtb,OAAS2jQ,GAAyBroP,EAAMtb,MAAQkb,GAAgBuoP,GAAsBxoP,IAAcyoP,EAAwB,EAAJ,GAAQ,CACtIpoP,EAAMnH,aAAewvP,EACrB,IAAI3uL,EAAgB53D,EAAQ9B,EAAMnH,cAAgB,GAC9CyvP,EAAaxmP,EAAQ9B,EAAMnH,YAAc,IAAM,GACnD,QAASsvP,EAAmBzuL,EAAcr3D,eAAiBimP,EAAWjmP,cAAgBq3D,EAAcr3D,eAExG,OAAO,GAEXkmP,gBAAiB,SAASlB,EAAiBmB,EAAU7B,GACjD,GAAIU,EACA,IAAK,IAAItoQ,EAAI,EAAGA,EAAIsoQ,EAAgBnqQ,OAAQ6B,IACxC,IAAIsoQ,EAAgBtoQ,GAAGwX,IAAM8wP,EAAgB,GAAG9wP,IAAK8wP,EAAgBtoQ,EAAI,IAAMsoQ,EAAgBtoQ,GAAGwX,IAAM8wP,EAAgBtoQ,EAAI,GAAGwX,IAG3H8wP,EAAgBtoQ,GAAGwX,EAAIowP,GAAU6B,GAAYA,GAAYnB,EAAgBtoQ,GAAGwX,EAAIowP,EAChF,OAAOU,EAAgBtoQ,GAInC,OAAO,MAEX0pQ,eAAgB,SAAS91N,GACrB,IAAI+1N,EACAxhQ,EAAIyrC,EAAK2iB,MACTruD,EAAOC,EAAEQ,KACTihQ,EAAwB1hQ,EAAK2hQ,sBAAsBj6P,QACnDw5P,EAAmBR,GAAyB1gQ,GAC5C0/P,EAASgC,EAAwB,EACjCE,EAAe5hQ,EAAKghQ,kBAAkBvoP,SACtCopP,EAAmBD,EAAa5oP,KAChCumP,EAAY,gBAAat/P,GACzByY,EAAa1Y,EAAKiV,OAAO,cACzBksP,EAAmB9kQ,KAAKykQ,oBACxB7C,EAAa,QAAUwD,EAAwBzhQ,EAAK8hQ,2BAAwB,IAAWL,OAAwB,EAASA,EAAsBxD,aAClJ,GAAIj+P,EAAK+hQ,aAAe/hQ,EAAKgiQ,eACzB,IAAKH,GAAoBtC,EAAUjwP,IAAM4xP,GAAoBC,MAAuBD,GAAoB3B,EAAUjwP,GAAKuyP,EAAmB,eAAS7hQ,EAAKghQ,qBAChJhhQ,EAAKiiQ,4BAA4B1C,EAAUjwP,GAAI,CAC/C,IAAI4kD,EAAQl0D,EAAK42G,mBAAmBjiD,oBAAoB97C,GAAG7Y,EAAKgiQ,cAAcE,oBAC1E7qM,EAAOnD,EAAM,GACjB,GAAImD,EAAM,CACN,IAAI8qM,EAAa9qM,EAAKmL,wBAAwB96D,MAC9C1H,EAAK2hQ,sBAAsBnE,QAAQtpM,EAAMz7C,SAASO,OAASkoP,GAAoBC,IAAqBzoP,EAAa,EAAIypP,IACrHniQ,EAAKg9P,yBAAyBr8L,OAAO3gE,EAAKq0O,aAAa7lO,GACvDvO,EAAEu5D,wBAINykM,IACJj+P,EAAK4gQ,kBAAkBrB,EAAU/wP,IAC7BxO,EAAKoiQ,wBACDpiQ,EAAKoiQ,sBAAsBppP,OAAS4oP,EAAa5oP,MAAQhZ,EAAKoiQ,sBAAsBnpP,MAAQ2oP,EAAa3oP,KACzGjZ,EAAKogQ,gBAAgB,OAG7BpgQ,EAAKq0O,aAAer0O,EAAKshQ,gBAAgBthQ,EAAKogQ,kBAAmBb,EAAUjwP,EAAGoyP,GAC9E1hQ,EAAKoiQ,sBAAwBR,EAC7B5hQ,EAAKqiQ,kBAAmB,EACpBriQ,EAAKq0O,cACLr0O,EAAK2hQ,sBAAsBjE,aAAa,cACxC19P,EAAK2hQ,sBAAsBnE,QAAQx9P,EAAKq0O,aAAa/kO,EAAIowP,GACzD1/P,EAAKg9P,yBAAyBr8L,OAAO3gE,EAAKq0O,aAAa7lO,GACvDxO,EAAKqiQ,kBAAmB,EACxBpiQ,EAAEu5D,mBAEFx5D,EAAK2hQ,sBAAsBjE,eAC3B19P,EAAK2hQ,sBAAsBnE,QAAQ,SAGvCx9P,EAAKogQ,gBAAgB,MACrBpgQ,EAAKqiQ,kBAAmB,EACxBriQ,EAAK2hQ,sBAAsBjE,eAC3B19P,EAAK2hQ,sBAAsBnE,QAAQ,SAI/ClpB,aAAc,SAAS5oM,GACnB,IAAIzrC,EAAIyrC,EAAK2iB,MACTruD,EAAOC,EAAEQ,KACTT,EAAK+hQ,cACL/hQ,EAAKogQ,gBAAgB,MACrBpgQ,EAAKgiQ,cAAgB,KACrBhiQ,EAAK2hQ,sBAAsBlqN,OAC3Bz3C,EAAK2hQ,sBAAsBjE,eAC3B19P,EAAKsiQ,aAAa7qN,OAClBz3C,EAAKqiQ,kBAAmB,EACxBriQ,EAAK+hQ,aAAc,IAG3BQ,oBAAqB,SAASL,GAC1B,OAAOA,EAAqB,GAEhCM,mBAAoB,SAAS/D,GACzB,IAAIyD,EAAqB7lQ,KAAKg4O,aAAaziO,YACvC6wP,EAAkBpmQ,KAAKkmQ,oBAAoBL,GAC3CQ,EAAgBrmQ,KAAKu6G,mBAAmB9qC,iBAAiBo2L,GACzDS,EAAatmQ,KAAKu6G,mBAAmB9qC,iBAAiB22L,GAC1DpmQ,KAAK2lQ,cAAgB,CACjBY,UAAWnE,EACXyD,mBAAoBA,EACpBW,mBAAoBH,GAAiBA,EAAczsQ,OAAS,EAAI,eAAgBysQ,EAAc,IAAIh7P,MAAQ,EAC1G+6P,gBAAiBA,EACjBK,gBAAiBH,GAAcA,EAAW1sQ,OAAS,EAAI,eAAgB0sQ,EAAW,IAAIj7P,MAAQ,IAGtG0sO,eAAgB,SAAS1oM,GACrB,IAAIzrC,EAAIyrC,EAAK2iB,MACTruD,EAAOC,EAAEQ,KACT8+P,EAAY,gBAAat/P,GAY7B,GAXI,gBAAaA,KACTD,EAAK4gQ,kBAAkBrB,EAAU/wP,IACjCxO,EAAKq0O,aAAer0O,EAAKshQ,gBAAgBthQ,EAAKogQ,kBAAmBb,EAAUjwP,EAAGotP,IAC1E18P,EAAKq0O,eACLr0O,EAAK2hQ,sBAAsBnE,QAAQx9P,EAAKq0O,aAAa/kO,EAAItP,EAAK2hQ,sBAAsBj6P,QAAU,GAC9F1H,EAAKqiQ,kBAAmB,IAG5BriQ,EAAKqiQ,kBAAmB,GAG5BriQ,EAAKqiQ,iBAAkB,CACvBriQ,EAAKwiQ,mBAAmBjD,EAAUjwP,GAClCtP,EAAK+hQ,aAAc,EACnB/hQ,EAAKg9P,yBAAyBr8L,OAAO3gE,EAAKq0O,aAAa7lO,GACvDxO,EAAK2hQ,sBAAsBjqN,OAC3B13C,EAAKsiQ,aAAa5qN,OAClB,IAAI2hD,EAAar5F,EAAKiO,UAAUssF,gBAC5BlB,GAAcr5F,EAAK8gQ,sBACnB9gQ,EAAK+6F,aAAe,eAAS1B,EAAWtvB,YAAc,eAASsvB,EAAWhkF,aAAegkF,EAAWx7B,cAExG59D,EAAEu5D,iBACFv5D,EAAEwmG,kBAEFpqG,KAAK00D,cACL10D,KAAK2xD,cAAc,iBAAiBkpH,aAG5CmpF,yBAA0B,WACtB,IAAIrgQ,EAAO3D,KACPwe,EAAU7a,EAAK25D,mBAAqB35D,EAAK25D,mBAAmBC,oBAAsB,GAClF9E,EAAQ90D,EAAK42G,mBAAmBjiD,oBAChCyrM,EAAkB,GAClBtrM,GAASA,EAAM7+D,OAAS,IACxBmqQ,EAAkB,OAAc/nP,mBAAmBy8C,GAAO,SAAU/7C,GAChE,OAAO/Y,EAAKihQ,cAAcloP,EAAO+7C,EAAM7+D,OAAQ4kB,OAGvD7a,EAAK+iQ,iBAAmB3C,GAE5B4C,uBAAwB,WACpB3mQ,KAAK4mQ,uBAAyB,OAAa31M,IAAI,aAAW6O,cAAe,gBAAaxF,EAAA,KAAc28H,KAAM,IAAmBj3L,KAAK4mQ,uBAClI5mQ,KAAK6mQ,uBAAyB,OAAa51M,IAAIjxD,KAAK2kQ,kBAAmB,gBAAarqM,EAAA,KAAcC,KAAM,IAAmBv6D,KAAK6mQ,uBAC5H7mQ,KAAK8mQ,sBACL,OAAa71M,IAAIjxD,KAAKslQ,sBAAsB5tP,UAAW,gBAAa4iD,EAAA,KAAcu0E,GAAI,IAAmB7uI,KAAK8mQ,qBAC9G,OAAa71M,IAAI,aAAW6O,cAAe,gBAAaxF,EAAA,KAAcu0E,GAAI,IAAmB7uI,KAAK8mQ,uBAG1GC,mBAAoB,WAChB/mQ,KAAK4mQ,sBAAwB5mQ,KAAKmxD,aAAanxD,KAAKmlQ,gBACpDnlQ,KAAK6mQ,sBAAwB7mQ,KAAKmxD,aAAanxD,KAAK+3O,gBACpD/3O,KAAK8mQ,oBAAsB9mQ,KAAKmxD,aAAanxD,KAAKi4O,cAClD,OAAanuO,GAAG,aAAWg2D,cAAe,gBAAaxF,EAAA,KAAc28H,KAAM,IAAmBj3L,KAAMA,KAAK4mQ,uBACzG,OAAa98P,GAAG9J,KAAK2kQ,kBAAmB,gBAAarqM,EAAA,KAAcC,KAAM,IAAmBv6D,KAAMA,KAAK6mQ,uBACvG,OAAa/8P,GAAG9J,KAAKslQ,sBAAsB5tP,UAAW,gBAAa4iD,EAAA,KAAcu0E,GAAI,IAAmB7uI,KAAMA,KAAK8mQ,qBACnH,OAAah9P,GAAG,aAAWg2D,cAAe,gBAAaxF,EAAA,KAAcu0E,GAAI,IAAmB7uI,KAAMA,KAAK8mQ,sBAE3GlB,4BAA6B,SAASxD,GAClC,IAAIiB,EACA2D,EACA5jK,EAAepjG,KAAKw6G,UAAUpX,eAC9B6jK,EAAejnQ,KAAK2lQ,cACpBruM,EAAoBt3D,KAAKs9D,mBACzBD,EAAiB/F,EAAkBiG,oBACnC8nM,EAAwBrlQ,KAAKslQ,sBAAsBj6P,QACnDw5P,EAAmBR,GAAyBrkQ,MAC5CwzE,EAA0BqxL,GAAoB7kQ,KAAK4Y,OAAO,6BAA+B5Y,KAAK4Y,OAAO,mBACrGyD,EAAarc,KAAK4Y,OAAO,cACzBksP,EAAmB9kQ,KAAKykQ,oBACxBlqP,EAAS8iD,EAAe4pM,EAAapB,oBACrCb,EAAa3nM,EAAe4pM,EAAab,iBAE7C,SAASc,EAAe77P,GACpB,OAAO,eAASA,IAAU,MAAQA,EAAM2I,OAAO,GAGnD,SAASmzP,EAAe5sP,EAAQ+5B,EAAa8uD,EAAc5vB,GACvD,GAAIj5D,EAAQ,CACR,IAAI6sP,EAAiB7sP,EAAOlP,MACxB+7P,IACA5zL,EAA0B0zL,EAAeE,IAEzC5zL,GACAlc,EAAkBoQ,aAAantD,EAAOnZ,MAAO,eAAgBkzC,GAC7DgjB,EAAkBoQ,aAAantD,EAAOnZ,MAAO,SAAUkzC,EAAc8uD,EAAe,KAAKv8B,QAAQ,GAAK,OAEtGvP,EAAkBoQ,aAAantD,EAAOnZ,MAAO,eAAgB,MAC7Dk2D,EAAkBoQ,aAAantD,EAAOnZ,MAAO,QAASkzC,KAIlE+uN,EAASjB,EAAO6E,EAAaV,WACxB1B,GAAoBC,IAAqBzoP,IAC1CgnP,GAAUA,GAEd,IACIgE,UAAWA,EACXC,cAAeA,GACf,SAAS70H,GACT,IAAI80H,EACAD,EACAE,EACAH,EAAYJ,EAAaT,mBAAqB/zH,EAC9C30F,EAAWvjC,GAAUA,EAAOujC,UAAYunN,EACxCpmQ,EAAS,GAqBb,OApBIooQ,GAAavpN,EACb7+C,EAAOooQ,UAAYA,GAEnBpoQ,EAAOooQ,UAAYvpN,EACnB0pN,GAA8B,GAE9B3C,IACAyC,EAAgBL,EAAaR,gBAAkBh0H,EAC/C80H,EAAevC,GAAcA,EAAWlnN,UAAYunN,EAChDiC,GAAiBC,EAEbtoQ,EAAOqoQ,cADPE,EACuBP,EAAaR,iBAAmBh0H,EAAQ30F,EAAWupN,GAEnDC,GAG3BroQ,EAAOqoQ,cAAgBC,EACvBtoQ,EAAOooQ,UAAYJ,EAAaT,oBAAsB/zH,EAAQ80H,EAAeD,KAG9EroQ,EA3BP,CA4BFokQ,GAEF,GADA2D,EAAazsP,EAAOlP,QAAUg8P,EAC1BL,EAAY,CAmBZ,GAlBA1vM,EAAkB3G,cAClB02M,EAAY71P,KAAKE,MAAM21P,GACvBjkK,EAAe,SAASA,EAAc/lC,GAClC,IAAIoqM,EAAsBpqM,EAAe1zC,MAAMpP,GAAUA,EAAOlP,OAChE,GAAIo8P,EAAqB,CACrB,IAAIC,EAAerqM,EAAen1C,OAAO,CAACynC,EAAKp1C,KACvC2sP,EAAe3sP,EAAOlP,SACtBskD,GAAOsE,WAAW15C,EAAOlP,QAEtBskD,GACR,GACC+3M,EAAe,MACftkK,EAAeA,EAAeskK,EAAe,KAGrD,OAAOtkK,EAbI,CAcbA,EAAc/lC,GAChB8pM,EAAe5sP,EAAQ8sP,EAAWjkK,EAAc5vB,GAC5CqxL,EACAyC,EAAgB91P,KAAKE,MAAM41P,GAC3BH,EAAenC,EAAYsC,EAAelkK,EAAc5vB,OACrD,CACH,IAAIgwB,EAAexjG,KAAKu6G,mBAAmBl0C,kBAC3Cm9B,EAAayjK,EAAapB,oBAAsBwB,EAChD,IAAIM,EAAYnkK,EAAat7E,OAAO,CAACo0F,EAAYjxG,IAAUixG,EAAajxG,EAAO,GAAKrL,KAAKw6G,UAAUpX,eACnG,IAAKukK,EAAW,CACZ,IAAIjpP,EAAkB,OAAcH,4BAA4B8+C,GAC5D3+C,GAAmB,GACnB44C,EAAkBoQ,aAAarK,EAAe3+C,GAAiBtd,MAAO,eAAgB,QAG9F,IAAK,IAAI3F,EAAI,EAAGA,EAAI+nG,EAAa5pG,OAAQ6B,IACjC4hE,EAAe5hE,IAAM4hE,EAAe5hE,KAAO8e,QAAU,IAAW8iD,EAAe5hE,GAAG4P,OAClFisD,EAAkBoQ,aAAarK,EAAe5hE,GAAG2F,MAAO,QAASoiG,EAAa/nG,IAK1F,GADA67D,EAAkB1G,aACbi0M,EAAkB,CACnB7kQ,KAAK4R,UAAUovG,mBACf,IAAIhkB,EAAah9F,KAAK4R,UAAUssF,gBAChC,GAAIlB,GAAc8nK,EAAkB,CAChC,IAAInoP,EAAO,eAASqgF,EAAWtvB,YAAc,eAASsvB,EAAWhkF,aAAehZ,KAAK0+F,aACrF1B,EAAWt7B,SAAS,CAChB/kD,KAAMA,MAKtB,OAAOqqP,GAEXpG,qBAAsB,SAAS53P,EAAUqrG,GACrCrrG,EAAS8G,IAAIukG,GACbr0G,KAAK4nQ,uBAAuB3kQ,KAAK,CAC7B+F,SAAUA,EACVqrG,QAASA,KAGjBwzJ,0BAA2B,WACvB,IAAK,IAAIpsQ,EAAI,EAAGA,EAAIuE,KAAK4nQ,uBAAuBhuQ,OAAQ6B,IAAK,CACzD,IAAIqsQ,EAAY9nQ,KAAK4nQ,uBAAuBnsQ,GAC5CqsQ,EAAU9+P,SAAS2P,OAAOmvP,EAAUzzJ,SAExCr0G,KAAK4nQ,uBAAyB,IAElCG,cAAe,WACX/nQ,KAAK2mQ,yBACL3mQ,KAAK6nQ,6BAETlgK,MAAO,WACH,IAAIhkG,EAAO3D,KACPgoQ,EAAiC,WAC5BrkQ,EAAK+hQ,aACN/hQ,EAAKogQ,gBAAgB,OAGzBkE,EAAuC,SAAS7rP,GAC5CzY,EAAK89D,cAAgBrlD,EAAOO,OAC5BhZ,EAAK89D,YAAcrlD,EAAOO,KAC1BhZ,EAAKogQ,gBAAgB,QAG7BpgQ,EAAK2hQ,sBAAwB3hQ,EAAK0Z,QAAQ,wBAC1C1Z,EAAK42G,mBAAqB52G,EAAK0Z,QAAQ,qBACvC1Z,EAAKsiQ,aAAetiQ,EAAK0Z,QAAQ,eACjC1Z,EAAK62G,UAAY72G,EAAK0Z,QAAQ,YAC9B1Z,EAAK25D,mBAAqB35D,EAAKguD,cAAc,WAC7ChuD,EAAKg9P,yBAA2Bh9P,EAAKguD,cAAc,iBACnDhuD,EAAKghQ,kBAAoBhhQ,EAAKiO,UAAUiF,WACxClT,EAAK8hQ,oBAAsB9hQ,EAAKiO,UAAUyL,QAAQ,sBAClD1Z,EAAKi9P,qBAAqBj9P,EAAK42G,mBAAmB3mD,gBAAiBo0M,GACnErkQ,EAAKi9P,qBAAqBj9P,EAAK42G,mBAAmB1mD,gBAAiBm0M,GACnErkQ,EAAKi9P,qBAAqBj9P,EAAK2hQ,sBAAsB1xM,iBAAiB,WAClEjwD,EAAKgjQ,yBACLhjQ,EAAKojQ,wBAETpjQ,EAAKi9P,qBAAqBj9P,EAAK62G,UAAU5mD,iBAAiB,WACtDjwD,EAAK62G,UAAU50C,cAAcjtD,OAAOsvP,GACpCtkQ,EAAK62G,UAAU50C,cAAc91D,IAAIm4P,MAErC,IAAIC,EAA8B,IAAMvkQ,EAAK62G,UAAUtY,oBACnDimK,EAAsB,EAC1BxkQ,EAAKi9P,qBAAqBj9P,EAAKguD,cAAc,iBAAiBwpK,iBAAiB,SAAUv3N,GACrF,GAAID,EAAK+hQ,cAAgB/hQ,EAAK62G,UAAU9lD,WAAY,CAChD,IAAI0zM,EAAsB,IAAMzkQ,EAAK62G,UAAUtY,oBAC3CgmK,IAAgCE,GAAuBD,GAAuBA,IAAwBvkQ,EAAEiZ,QACxGqrP,EAA8BE,EAC9BD,EAAsBvkQ,EAAEiZ,OACxBlZ,EAAKiO,UAAUovG,oBAEfr9G,EAAK62G,UAAUrZ,2BAGvBgnK,EAAsBvkQ,EAAEiZ,WAGhCq0C,cAAe,SAAS7hB,GACpBrvC,KAAKC,SAASovC,GACV,wBAA0BA,EAAKztC,OAC3BytC,EAAKxtC,OACL7B,KAAK2nG,QACL3nG,KAAK+mQ,sBAEL/mQ,KAAK+nQ,kBAIjBrzM,WAAY,WACR,OAAO10D,KAAK0lQ,aAEhBj1M,KAAM,WACFzwD,KAAK4nQ,uBAAyB,GAC1B7oP,GAAc/e,OACdA,KAAK2nG,SAGbo8J,gBAAiB,SAASliQ,GACtB,QAAI,IAAWA,EAMX,OAHK7B,KAAK0mQ,kBACN1mQ,KAAKgkQ,2BAEFhkQ,KAAK0mQ,iBALZ1mQ,KAAK0mQ,iBAAmB7kQ,GAQhCswD,QAAS,WACLnyD,KAAK+nQ,gBACL/nQ,KAAKC,cAGTooQ,GAA8B,EAAQz1M,eAAe7C,QAAQ,CAC7DuU,OAAQ,SAAS1nD,GACb,IAAI+zD,EAAS,GACT95D,EAAW7W,KAAKu6G,mBAAmB7iG,UACnC0E,EAASvF,GAAYA,EAASuF,SAC9B8sN,EAAY9sN,GAAUA,EAAOQ,KAAO,EACpC0rP,EAAgB,eAAU1rP,GAAOpL,KAAK8B,IAAIsJ,EAAMssN,GAAa,EAC7Dq/B,EAAuBvoQ,KAAKu6G,mBAAqBv6G,KAAKu6G,mBAAmBhqC,YAAc,EACvFi4L,EAAiBxoQ,KAAKw6G,UAAUtY,mBAAkB,GAClD1B,EAAaxgG,KAAKw6G,UAAYx6G,KAAKw6G,UAAU39F,SAAW2rP,EAAiB,EACzEC,EAA2BzoQ,KAAK4R,UAAU+/C,cAAc,kBACxD+2M,EAAqB1oQ,KAAK4R,UAAUyL,QAAQ,sBAChDszD,EAAO9zD,OAAS0rP,EAChB,IAAII,GAAuB,IAAUF,EAAyB/zM,cAAgBg0M,EAAmB9G,aAC7F+G,IACAh4L,EAAO9zD,QAAU2jF,EAAa8nK,GAE9B,OAAS1rP,GAAO/F,GAAYA,EAASjd,SACrC+2E,EAAO/zD,IAAM/F,EAAS,GAAGqyN,UAAYo/B,GAEzCtoQ,KAAKm7N,gBAAgB3mK,KAAKmc,IAE9BlgB,KAAM,WACF,IAAI9sD,EAAO3D,KACX2D,EAAK1D,WACL0D,EAAK42G,mBAAqBv6G,KAAKqd,QAAQ,qBACvC1Z,EAAK62G,UAAYx6G,KAAKqd,QAAQ,YAC9B1Z,EAAKilQ,WAAa5oQ,KAAKqd,QAAQ,aAC/B1Z,EAAK62G,UAAU3mD,gBAAgB/jD,KAAI,WAC/B,GAAInM,EAAKiV,OAAO,uBAAwB,CACpC,IAAIiwP,EAAcllQ,EAAKguD,cAAc,kBAAkBqmL,aACvDr0O,EAAK2gE,OAAOukM,EAAcA,EAAY12P,EAAI,WAItD89C,KAAM,SAASr+C,GACX5R,KAAKC,SAAS2R,GACd5R,KAAKm7N,gBAAkB,0BAG3B2tC,GAA+B,EAAQl2M,eAAe7C,QAAQ,CAC9Di0M,yBAA0B,SAASluP,GAC/B,IAAInS,EAAO3D,KACX,OAAO,OAAcgc,mBAAmBlG,EAAQ45D,gBAAgB,SAAUhzD,GACtE,OAAO/Y,EAAKihQ,cAAcloP,EAAO5G,EAAQ0I,QAAS1I,EAAQ6tP,oBAAoB17L,UAAWnyD,EAAQ8qE,gBACjG9qE,EAAQ8tP,sBAAuB9tP,EAAQqG,mBAE/CyoP,cAAe,SAASloP,EAAO8B,EAASwsC,EAAU41B,GAC9C,IAAIM,EAAe1iE,EAAQ9B,EAAMnH,aAC7BkpE,EAAajgE,EAAQ9B,EAAMnH,YAAc,GAC7C,OAAQy1C,GACJ,IAAK,gBACD,OAAO,EACX,IAAK,UACD,OAAO41B,IAAiBA,EAAajkC,mBAAqBukC,IAAiBA,EAAavkC,oBAAsB8hC,IAAeA,EAAW9hC,iBAC5I,QACI,OAAO,IAAMn+B,EAAQ5kB,SAGjCmtQ,mBAAoB,SAASgC,EAAgB/4L,GACzC,IAAIrsE,EAAO3D,KACX,eAAKgwE,GAAgB,SAAUjxE,EAAGsxE,GAC9B,GAAIA,EAmCA,IAlCA,IAAI7xD,EACAowD,EAAWyB,EAAc7B,YAAc6B,EAAc7B,cAAgB,EACrEw6L,EAAoB34L,EAAcpI,UAClCghM,EAAoB,SAAS7nQ,EAAOq7O,GACpC,GAAKA,EAAL,CAGA,IAAI5C,EAAiB,eAAE4C,GACnBliO,EAASiE,EAAQpd,GACjBivE,EAAcP,cAAcv1D,EAAQyuP,EAAmBh5L,KACvD6pK,EAAe1hO,SAASxU,EAAKiU,gBAAgBooP,KAC7C,OAAal2P,GAAG+vO,EAAgB,gBAAakpB,GAAA,KAAgB,IAAmBp/P,EAAKwtD,cAAa,SAAU9hB,GACxG,IAAIzrC,EAAIyrC,EAAK2iB,MACTkxM,EAAY,gBAAat/P,GAC7BmlQ,EAAevG,WAAW,CACtBa,OAAQH,EAAUjwP,EAAI,eAAErP,EAAEy2D,eAAej+C,SAASO,KAClD4mP,OAAQL,EAAU/wP,EAAI,eAAEvO,EAAEy2D,eAAej+C,SAASQ,IAClDgkE,aAAcrmE,EACdnZ,MAAOmZ,EAAOnZ,MACdmU,YAAanU,EACbq7O,cAAe5C,EACf9pK,eAAgBi5L,EAChBh5L,eAAgBA,EAChBxV,SAAU72D,EAAK25D,mBAAmB7C,YAAYlgD,EAAOnZ,OAAO,SAGpE,OAAa0I,GAAG+vO,EAAgB,gBAAakpB,GAAA,KAAe,IAAmB,CAC3Ep/P,KAAMolQ,GACPplQ,EAAKwtD,aAAa43M,EAAe9F,aACpC,OAAan5P,GAAG+vO,EAAgB,gBAAakpB,GAAA,KAAc,IAAmB,CAC1Ep/P,KAAMolQ,GACPplQ,EAAKwtD,aAAa43M,EAAe5E,gBAGnC1oQ,EAAI,EAAGA,EAAImzE,EAAUnzE,IAAK,CAC/B,IAAIi0E,EAAiBW,EAAc/X,kBAAkB78D,IAAM,GACvDi0E,EAAe91E,SACf4kB,EAAU6xD,EAAcjY,WAAW38D,IAAM,GACzC,eAAKi0E,EAAgBu5L,SAMzCtC,uBAAwB,SAASoC,EAAgB/4L,GAC7C,IAAIrsE,EAAO3D,KACX,eAAKgwE,GAAgB,SAAUjxE,EAAGsxE,GAC9B,GAAIA,EAAe,CACf,IAAIX,EAAiBW,EAAc/X,qBAAuB,GAC1D,eAAKoX,GAAgB,SAAUtuE,EAAOq7O,GAClC,IAAI5C,EAAiB,eAAE4C,GACvB,OAAaxrL,IAAI4oL,EAAgB,gBAAakpB,GAAA,KAAgB,KAC9D,OAAa9xM,IAAI4oL,EAAgB,gBAAakpB,GAAA,KAAe,KAC7D,OAAa9xM,IAAI4oL,EAAgB,gBAAakpB,GAAA,KAAc,KAC5DlpB,EAAexhO,YAAY1U,EAAKiU,gBAAgBooP,aAKhEkJ,cAAe,SAASvoL,GACpB,MAAO,YAAcA,EAAiB3gF,KAAKslQ,sBAAwBtlQ,KAAKmpQ,qBAE5EC,eAAgB,SAAS3qQ,GACrB,IAAI4qQ,EAAiBrpQ,KAAKmpQ,oBACtBG,EAAmBtpQ,KAAKslQ,sBAC5BtlQ,KAAKupQ,sBAAwB,KAC7BF,GAAkBA,EAAejuN,OACjC,UAAY38C,GAAQ6qQ,GAAoBA,EAAiBluN,QAE7DqV,KAAM,WACF,IAAI9sD,EAAO3D,KACX2D,EAAK1D,WACL0D,EAAK25D,mBAAqB35D,EAAKguD,cAAc,WAC7ChuD,EAAK42G,mBAAqB52G,EAAK0Z,QAAQ,qBACvC1Z,EAAK2hQ,sBAAwB3hQ,EAAK0Z,QAAQ,wBAC1C1Z,EAAK8hQ,oBAAsB9hQ,EAAK0Z,QAAQ,sBACxC1Z,EAAK62G,UAAY72G,EAAK0Z,QAAQ,YAC9B1Z,EAAKwlQ,oBAAsBxlQ,EAAK0Z,QAAQ,sBACxC1Z,EAAK6lQ,iBAAmB7lQ,EAAK0Z,QAAQ,eACrC1Z,EAAK8lQ,mBAAqB9lQ,EAAK0Z,QAAQ,qBACvC,IAAI4rP,EAAoB,WACpB,GAAItlQ,EAAK8hQ,oBAAqB,CAC1B,IAAIz1L,EAAiB,CAACrsE,EAAK8lQ,mBAAoB9lQ,EAAK42G,mBAAoB52G,EAAK6lQ,kBAC7E7lQ,EAAKgjQ,uBAAuBhjQ,EAAK8hQ,oBAAqBz1L,GACtDrsE,EAAKojQ,mBAAmBpjQ,EAAK8hQ,oBAAqBz1L,KAG1DrsE,EAAK42G,mBAAmB3mD,gBAAgB9jD,IAAIm5P,GAC5CtlQ,EAAK6lQ,kBAAoB7lQ,EAAK6lQ,iBAAiB51M,gBAAgB9jD,IAAIm5P,GACnEtlQ,EAAK8lQ,oBAAsB9lQ,EAAK8lQ,mBAAmB71M,gBAAgB9jD,IAAIm5P,IAE3ES,UAAW,SAAS5yM,GAChB,OAAO92D,KAAKs9D,mBAAmBkjB,gBAAgB1pB,EAAW6rM,kBAAmB7rM,EAAWorM,kBAAmBprM,EAAWiZ,eAAgBjZ,EAAW6pB,iBAErJoiL,KAAM,SAASjsM,GACX,IAAI4rM,EAAc5rM,EAAW4rM,YACzB3yL,EAAiBjZ,EAAWiZ,eAC5B6yL,EAAsB9rM,EAAW8rM,oBACjC+G,EAAc3pQ,KAAKu6G,mBACnBn9F,EAAWpd,KAAKw6G,UAChBooJ,IACAA,EAAoBnmP,IAAI,CACpB2sC,QAASm3M,KAET,YAAcxwL,IACd45L,GAAeA,EAAY74L,eAAe4xL,EAAanC,IACvDnjP,GAAYA,EAAS0zD,eAAe4xL,EAAanC,OAI7D2D,KAAM,SAASptM,GACX,IAAInzD,EAAO3D,KACPkiQ,EAAoB,eAASprM,EAAWorM,mBAAqBprM,EAAWorM,kBAAkB3sP,YAAcuhD,EAAWorM,kBACnHnyL,EAAiBjZ,EAAWiZ,eAC5B4Q,EAAiB7pB,EAAW6pB,eAC5BipL,EAAYjmQ,EAAKulQ,cAAcvoL,GAC/BkpL,EAAwB3H,GAAqB,EACjDv+P,EAAK42G,mBAAmB7iG,UAAUI,KAAK,IAAM,IAAkBy8C,YAAY5wD,EAAKiU,gBAAgBsoP,IAA+B,YAAcnwL,GAAkB,YAAc4Q,IAAmBkpL,GAC5LD,IACIjmQ,EAAK+lQ,UAAU5yM,IAAe+yM,EAC1B,UAAYlpL,GAAkB,kBAAoBA,EAChD,WACMh9E,EAAK4lQ,wBAA0BrH,IAC/Bv+P,EAAKylQ,iBACLQ,EAAUlyP,UAAUo/C,EAAWqxB,OAAS,cAAgB,gBAAgBrxB,EAAWqrM,qBACnFx+P,EAAK4lQ,sBAAwBrH,EAC7B0H,EAAUvuN,KAAKslC,IALrB,IASFh9E,EAAKylQ,eAAe,SACpBzlQ,EAAKguD,cAAc,iBAAiB2S,OAAOxN,EAAWurM,MACtDuH,EAAUzI,QAAQrqM,EAAWsrM,KAAOwH,EAAUv+P,SAC9Cu+P,EAAUvuN,QAGd13C,EAAKylQ,mBAIjBhF,KAAM,SAASttM,GACX,IAAI8rM,EAAsB9rM,EAAW8rM,oBASrC,GARIA,IACAA,EAAoBnmP,IAAI,CACpB2sC,QAAS,KAEbppD,KAAKu6G,mBAAmBzpC,eAAeha,EAAW4rM,YAAa,IAC/D1iQ,KAAKw6G,UAAU1pC,eAAeha,EAAW4rM,YAAa,IACtD1iQ,KAAKu6G,mBAAmB7iG,UAAUI,KAAK,IAAM,IAAkBO,YAAYrY,KAAK4X,gBAAgBsoP,MAEhGlgQ,KAAK0pQ,UAAU5yM,GAAa,CAC5B,IAAI8yM,EAAY5pQ,KAAKkpQ,cAAcpyM,EAAW6pB,gBAC1CipL,GACAA,EAAUxuN,OAEdp7C,KAAKs9D,mBAAmBujB,WAAW/pB,EAAW6rM,kBAAmB7rM,EAAWorM,kBAAmBprM,EAAWiZ,eAAgBjZ,EAAW6pB,kBAG7IxuB,QAAS,WACDnyD,KAAKylQ,qBACLzlQ,KAAK2mQ,uBAAuB3mQ,KAAKylQ,oBAAqB,CAACzlQ,KAAKypQ,mBAAoBzpQ,KAAKu6G,mBAAoBv6G,KAAKwpQ,sBAI/GM,GAAkC,CACzCp0M,MAAO,CACHq0M,qBAAsB/I,GACtBgJ,mBAAoBzI,GACpBmH,mBAAoBhH,GACpBuI,YAAazJ,IAEjBhrM,YAAa,CACTuzM,eAAgBD,GAChBoB,cAAe7B,GACfvwB,eAAgBwsB,IAEpB1uM,UAAW,CACPF,MAAO,CACHt4C,SAAU,CACN+iF,qBAAsB,SAAS2B,GAC3B,IAAItnD,EAAkBx6C,KAAK4Y,OAAO,mBAC9B6vP,EAA2BzoQ,KAAK2xD,cAAc,kBAC9C+C,EAAa+zM,EAAyB/zM,aAC1C,OAAO10D,KAAKC,SAASnB,MAAMkB,KAAME,YAAc4hG,EAAY,GAAKtnD,GAAmBka,KAI/Fc,YAAa,CACT0sD,cAAe,CACXs5D,mBAAoB,WAChB,IAAIx7K,KAAK2xD,cAAc,kBAAkB+C,aAGzC,OAAO10D,KAAKC,SAASnB,MAAMkB,KAAME,gBC5nCrB4pQ,GAAgCp0M,MAAMgzM,mBAC5BoB,GAAgCt0M,YAAYuzM,eACpDe,GAAgCp0M,MAAMq0M,qBAC/BD,GAAgCt0M,YAAY00M,cAC3CJ,GAAgCt0M,YAAYsiL,eAC7DgyB,GAAgCp0M,MAAMu0M,YAC/D,EAAS7zM,eAAe,4BAA6B0zM,I,iBC0BjD,GAAkB,WAClB,GAAkB,YAClBK,GAAqB,eACrB,GAAY,SACZ,GAAiB,cACjB,GAAkB,eAClB,GAAmB,gBACnB,GAAuB,iBACvB,GAA0B,uBAC1BC,GAAsB,mBACtB,GAAoB,iBACpB,GAA2B,wBAC3B,GAAoB,iBACpB,GAAgC,4BAChC,GAAuB,oBACvB,GAAuB,oBACvB,GAAqB,kBACrBC,GAAwB,sBACxB,GAA4B,yBAC5BC,GAAsB,YACtB,GAAoB,mBACpB,GAAe,YACf,GAAsB,mBACtBC,GAA0B,SAC1BC,GAAgC,oFAChCC,GAAkC,GAAG9iP,OAAO6iP,GAA+B,6BAC3E,GAAgB,MAChB,GAAiB,OACjB,GAAkB,QAClB,GAAiB,OACjBE,GAAiB,MACjBC,GAAkB,OAClBC,GAAsB,oBACtBC,GAAkB,CAAC,QAAS,UAAW,OAE3C,SAAS,GAAWztM,GAChB,OAAOA,GAAQA,EAAKnG,SAAS,IAGjC,SAASuxJ,GAAYprJ,GACjB,OAAOA,GAAQA,EAAKnG,SAAS,IAGjC,SAAS,GAAUmG,GACf,OAAOA,IAAS,GAAWA,KAAUorJ,GAAYprJ,GAGrD,SAAS0tM,GAAgB1tM,GACrB,OAAQA,GAAQA,EAAKnG,SAASmzM,KAAwBhtM,EAAKnG,SAAS,IAGxE,SAAS8zM,GAAcl0P,GACnB,OAAOA,EAASjd,QAAU,OAASid,EAAS,GAAG8lD,QAGnD,SAASikH,GAAaj9K,EAAMk0D,GACxB,OAAQl0D,EAAKqnQ,kBAAoBnzM,IAAUA,EAAMZ,SAAS,KAAyBY,EAAMZ,SAAS,IAGtG,SAASg0M,GAAiBp0P,GACtB,OAAO,eAAUA,IAAaA,EAASjd,OAAS,EAGpD,SAASsxQ,KACL,MAAO,YAActhK,GAAA,KAAQiK,UAAU/J,WAG3C,SAASqhK,GAAkBtzM,GACvB,QAASA,EAAMz4C,OAAO,IAAIuI,OAAO,KAAmB/tB,OAGxD,SAASwxQ,GAAiCznQ,EAAM4W,GAC5C,IAAI8B,EAAa1Y,EAAKiV,OAAO,cACzB3Z,GAAS,EAMb,OAJIA,EADAod,IACW,UAAY9B,EAAO+iC,eAAiB,eAAU/iC,EAAOsE,WAAa,eAAUtE,EAAO+iC,mBAElF,eAAU/iC,EAAO+iC,gBAAkB,SAAW/iC,EAAO+iC,eAE9Dr+C,EAGX,SAASosQ,GAAoB1nQ,GACzB,IAAI6nE,EAAqB7nE,EAAKguD,cAAc,sBAC5C,QAAO6Z,EAAmB8/L,uBAAwB3nQ,EAAKiV,OAAO,qBAAuB4yD,EAAmB/Q,cAE5G,IAAI8wM,GAA+B,EAAK34M,eAAe7C,QAAQ,CAC3DU,KAAM,WACFzwD,KAAKiY,gBAAkBjY,KAAK2xD,cAAc,QAC1C3xD,KAAKwrQ,qBAAuBxrQ,KAAK2xD,cAAc,aAC/C3xD,KAAKwxL,mBAAqBxxL,KAAK2xD,cAAc,WAC7C3xD,KAAKw3O,aAAex3O,KAAKqd,QAAQ,eACjCrd,KAAKs9D,mBAAqBt9D,KAAK2xD,cAAc,WAC7C3xD,KAAK89O,eAAiB99O,KAAK2xD,cAAc,iBACrC3xD,KAAKyrE,sBACL,KACAzrE,KAAKyrQ,oBAAsB,KAC3BzrQ,KAAK0rQ,qBAAsB,EAC3B1rQ,KAAK2rQ,qBAAuB,GAC5B3rQ,KAAK4rQ,sBAAwB,KAC7B5rQ,KAAK89O,eAAeriE,QAAQ3rK,IAAI+G,IAC5B7W,KAAK6rQ,mBACD7rQ,KAAK8rQ,eACDj1P,EAASjpB,GAAG,aAAeoS,KAAK+rQ,cAAgB/rQ,KAAK+rQ,aAAa7tK,gBAClEl+F,KAAK+rQ,aAAa9mK,iBAAiBpuF,GACnC7W,KAAK8rQ,eAAgB,KAIjC9rQ,KAAKgsQ,oBACLhsQ,KAAKisQ,wBACLjsQ,KAAKmxD,aAAa,eAG1B66M,kBAAmB,WACf,IAAI5uP,EAAWpd,KAAKqd,QAAQ,YACxB6uP,EAAuBl6M,IACvB,IAAIn7C,EAAW,eAAEm7C,EAAM97C,QACnBi2P,EAA4B,eAAEn6M,EAAMs+K,eAAenyN,QAAQf,EAAS1F,WAAW9d,OAC/EwyQ,EAAkBv1P,EAASogD,SAAS,WACxC,GAAIm1M,IAAoBD,GAA6BnsQ,KAAKqsQ,sBAAsBr6M,GAAQ,CACpF,IAAIs6M,EAAetsQ,KAAKusQ,kBACxBD,EAAgBrB,GAAiBqB,GAAyEA,EAAzDlvP,EAAS0pD,gBAAgB,GAAG1oE,OAAO,cAAcoe,GAAG,GAChG3F,EAASsH,QAAQmuP,GAAc1yQ,SAChCo4D,EAAMmL,iBACN,OAAan/C,QAAQsuP,EAAc,YAI/ClvP,EAASw2C,gBAAgB9jD,IAAIlM,IACzB,IAAI4oQ,EAAYpvP,EAAS1F,UACrBg+E,GAAgB9xF,GAAK,YAAcA,EAAEi+D,WACrC4qM,EAAuBzsQ,KAAK+rQ,cAAgB/rQ,KAAK+rQ,aAAanqQ,OAASwb,EAASxb,KAChF8qQ,GAAkB,EAClB3vM,EAAWn5D,IAAM,WAAaA,EAAEi+D,YAAc,YAAcj+D,EAAEi+D,YAC9D04G,EAAkB,eAAE,UACpBoyF,GAA2BpyF,EAAgB3gL,QAAU2gL,EAAgBp8J,QAAQquP,GAAW5yQ,OAC5F,OAAaq3D,IAAIu7M,EAAW,UAAWN,GACvC,OAAapiQ,GAAG0iQ,EAAW,UAAWN,GACtClsQ,KAAK4sQ,2BACL5sQ,KAAK6sQ,sBACL7sQ,KAAK8sQ,yBACDL,GAAwBE,IACxBD,EAAkB1sQ,KAAK+sQ,cAAgBhwM,EAAW/8D,KAAKgtQ,gBAAkBt3K,KAAkB,OAAS9xF,QAAK,IAAWA,GAAKA,EAAE6uF,yBAC3Hi6K,GAAmB1sQ,KAAK86K,cAAa,OAIjDmxF,sBAAuB,WACnB,IAAIltO,EAAW,aAAW+gC,cAC1B9/D,KAAKutP,sBAAwBvtP,KAAKmxD,aAAavtD,IAC3C,IAAI2tD,EAAU,eAAE3tD,EAAEouD,MAAM97C,QACpB+2P,EAAyBjtQ,KAAKqsQ,sBAAsBzoQ,EAAEouD,QAAUT,EAAQpzC,QAAQ,IAAIwJ,OAAO3nB,KAAK4X,gBAAgB,MAAmBhe,OACnIszQ,EAAkB37M,EAAQpzC,QAAQ,IAAIwJ,OAAO,KAAgC/tB,OAC7E6uQ,EAA2BzoQ,KAAK2xD,cAAc,kBAC9Cw7M,IAAqB1E,GAA4BA,EAAyB/zM,aAC9E,IAAKu4M,IAA2BC,IAAoBC,EAAkB,CAClE,IAAIC,IAA0BptQ,KAAK+rQ,cAAex6M,EAAQk0B,UAAUrnF,OAAO4B,KAAK+rQ,aAAar0P,WAAW9d,OAAS,GAChHwzQ,GAA2BptQ,KAAKqtQ,mBAAkB,GACnDrtQ,KAAKstQ,uBAGb,OAAaxjQ,GAAGi1B,EAAU,gBAAau7B,EAAA,KAAcC,KAAM,gCAAiCv6D,KAAKutP,wBAErGuf,uBAAwB,WACpB,IAAIN,EAAYxsQ,KAAKutQ,sBACjBC,GAAextQ,KAAKiY,gBAAgBggF,iBAAiBr+F,OACrD4zQ,GACAxtQ,KAAKytQ,wBAAwBjB,IAGrCI,yBAA0B,WACtB,IAAIc,EAAoBxC,KAAkC,OAArB5wM,EAAA,KAAcC,KAC/CozM,EAAgB,IAAIhmP,OAAO,GAAW,YAAYA,OAAO,IACzD6kP,EAAYxsQ,KAAKutQ,sBAChB,eAAUvtQ,KAAK4tQ,uBAChB5tQ,KAAK4tQ,oBAAsB5tQ,KAAKmxD,aAAanxD,KAAK6tQ,uBAEtD,OAAa58M,IAAIu7M,EAAW,gBAAakB,EAAkB,gCAAiC1tQ,KAAK4tQ,qBACjG,OAAa9jQ,GAAG0iQ,EAAW,gBAAakB,EAAkB,gCAAiCC,EAAe3tQ,KAAK4tQ,sBAEnHf,oBAAqB,WACjB,IAAIL,EAAYxsQ,KAAKutQ,sBACrB,QAASt8M,IAAIjxD,KAAK8tQ,kBAClB9tQ,KAAK8tQ,iBAAmB,QAAShkQ,GAAG0iQ,EAAW,KAAM5oQ,GAAK5D,KAAK+tQ,gBAAgBnqQ,KAEnFuuD,QAAS,WACLnyD,KAAKC,WACLD,KAAKstQ,oBACL,QAASr8M,IAAIjxD,KAAK8tQ,kBAClB,OAAa78M,IAAI,aAAW6O,cAAe,gBAAaxF,EAAA,KAAcC,KAAM,gCAAiCv6D,KAAKutP,uBAClHnzL,aAAap6D,KAAKyrQ,qBAClB,MAEJv6M,cAAe,SAAS7hB,GACpB,OAAQA,EAAKztC,MACT,IAAK,qBACL,IAAK,8BACDytC,EAAK+hB,SAAU,EACf,MACJ,QACIpxD,KAAKC,SAASovC,KAG1B2+N,eAAgB,WACZ,OAAOhuQ,KAAKiuQ,YAAcvD,IAE9BwD,gBAAiB,WACb,OAAOluQ,KAAKiuQ,YAActD,IAE9BwD,gBAAiB,WACTnuQ,KAAK4Y,OAAO,uBACZ5Y,KAAKiuQ,UAAYvD,KAGzB0D,iBAAkB,WACdpuQ,KAAKiuQ,UAAYtD,IAErBoD,gBAAiB,SAASnqQ,GACtB,IAAIyqQ,GAAsB,EAC1BruQ,KAAK+sQ,cAAe,EACpB/sQ,KAAK8rQ,eAAgB,EACrB,IAAItiM,EAAYxpE,KAAKsuQ,kBAAkB1qQ,GACnCo6D,EAAYh+D,KAAKwxL,mBAAmBxzH,YACpC0L,EAAgB9lE,EAAE8lE,cACtB,GAAIA,EAAc8tG,qBAGd,OAFAx3K,KAAK+sQ,cAAe,OACpB/sQ,KAAK8rQ,eAAgB,GAIzB,GADAjB,GAAgBvsQ,QAAQsF,EAAE2V,SAAW,GAAKvZ,KAAKuuQ,mCAAmC7kM,EAAcxzD,SAC3FszD,EAAW,CACZ,OAAQ5lE,EAAE2V,SACN,IAAK,YACL,IAAK,aACDvZ,KAAKwuQ,sBAAsB5qQ,EAAGo6D,GAC9BwL,GAAY,EACZ,MACJ,IAAK,UACL,IAAK,YACG5lE,EAAE6qQ,KACF,GAAyB,WAAYzuQ,KAAM0pE,GAE3C1pE,KAAK0uQ,mBAAmB9qQ,EAAGo6D,GAE/BwL,GAAY,EACZ,MACJ,IAAK,SACL,IAAK,WACDxpE,KAAK2uQ,sBAAsB/qQ,GAC3B4lE,GAAY,EACZ,MACJ,IAAK,QACDA,EAAYxpE,KAAK4uQ,iBAAiBhrQ,EAAGo6D,GACrC,MACJ,IAAK,IACG,gBAAoBp6D,EAAE8lE,gBACtB1pE,KAAK6uQ,iBAAiBjrQ,EAAGo6D,GACzBwL,GAAY,GAEZA,EAAYxpE,KAAK8uQ,kBAAkBlrQ,EAAE8lE,eAEzC,MACJ,IAAK,MACD1pE,KAAK+uQ,eAAenrQ,EAAGo6D,GACvBwL,GAAY,EACZ,MACJ,IAAK,QACDxpE,KAAKgvQ,iBAAiBprQ,EAAGo6D,GACzBwL,GAAY,EACZ,MACJ,IAAK,SACDxpE,KAAKivQ,kBAAkBrrQ,EAAGo6D,GAC1BwL,GAAY,EACZ,MACJ,IAAK,IACG,gBAAoB5lE,EAAE8lE,gBACtB1pE,KAAKkvQ,iBAAiBtrQ,GACtB4lE,GAAY,GAEZA,EAAYxpE,KAAK8uQ,kBAAkBlrQ,EAAE8lE,eAEzC,MACJ,IAAK,KACD1pE,KAAKmvQ,gBACL3lM,GAAY,EACZ,MACJ,IAAK,MACL,IAAK,YACGxpE,KAAKovQ,0BAA4BpvQ,KAAKqvQ,0BACtC7lM,EAAYxpE,KAAK8uQ,kBAAkBplM,GAAe,IAGzDF,GAAcxpE,KAAK8uQ,kBAAkBplM,KACtC1pE,KAAK+sQ,cAAe,EACpB/sQ,KAAK8rQ,eAAgB,EACrBuC,GAAsB,GAEtBA,GACA3kM,EAAc0gC,oBAI1BkkK,kBAAmB,SAASvjK,GACxB,IAAIrhC,EAAgBqhC,EAAUrhC,cAC1Br6B,EAAO,CACP+hB,SAAS,EACTY,MAAO0X,GAMX,OAJA1pE,KAAKkyD,cAAc,YAAa7iB,GAChC07D,EAAU0jK,KAAO/kM,EAAcxM,QAC/B6tC,EAAU6oE,IAAMlqG,EAAc0zE,OAC9BryC,EAAUp5E,MAAQ+3C,EAAc8D,WACvBn+B,EAAK+hB,SAElBk+M,eAAgB,WACZ5vO,WAAW,KACP1/B,KAAKwxL,mBAAmBgB,mBAGhCg8E,sBAAuB,SAASzjK,EAAW/sC,GACvC,IAAIxD,EAAWx6D,KAAKuvQ,qBAChBxlQ,EAASghG,EAAUrhC,cACnBtM,EAAOp9D,KAAK+rQ,cAAgB/rQ,KAAK+rQ,aAAalqK,OAAOrnC,GACrDg1M,EAAgBxvQ,KAAKyvQ,uBAAuB1kK,EAAUxxF,SACtDm2P,EAA0B1vQ,KAAKqvQ,wBAC/BM,IAAkB3xM,GAAa0xM,IAA4B,GAAUtyM,GACzE,GAAIuyM,EAAe,CACf3vQ,KAAKouQ,mBACLsB,GAA2B1vQ,KAAKsvQ,iBAC5BtvQ,KAAK4vQ,0BACL5vQ,KAAK6vQ,kCAAkCL,GAE3C,IAAI33M,EAAQ73D,KAAK8vQ,aAAaN,GAC1BvE,GAAiBpzM,IACjB73D,KAAK+vQ,2BAA2BhmQ,EAAQ8tD,EAAO23M,GAEnDzlQ,GAAUA,EAAOozD,mBAGzBuxM,mBAAoB,SAAS3jK,EAAW/sC,GACpC,IAAIgyM,EAAuBC,EACvBl6K,EAAkB/1F,KAAKuvQ,qBACvBnyM,EAAOp9D,KAAK+rQ,cAAgB/rQ,KAAK+rQ,aAAalqK,OAAO9L,GACrDhsF,EAASghG,EAAUrhC,cACnBwmM,EAAY,YAAcnlK,EAAUxxF,QACpCa,EAAapa,KAAKiY,gBAAgBmC,aAClC+1P,EAA2B,QAAUH,EAAwBhwQ,KAAKwxL,0BAAuB,IAAWw+E,GAAiC,QAAUC,EAAyBD,EAAsB3qF,wBAAqB,IAAW4qF,OAAlG,EAAoIA,EAAuB75P,KAAK45P,EAAuBj6K,GACnT25K,EAA0B1vQ,KAAKqvQ,wBAC/BM,IAAkBQ,IAA6BnyM,GAAa0xM,IAA4BtyM,IAASorJ,GAAYprJ,GACjH,GAAIuyM,EAAe,CAEf,GADAD,GAA2B1vQ,KAAKsvQ,kBAC3BtvQ,KAAKowQ,kBAAkBrmQ,EAAQghG,EAAUxxF,UACtCvZ,KAAKqwQ,uBAAyBH,GAAa91P,IAAeA,EAAW/P,YAAa,CAClF,IAAI42N,EAAY,eAAe7jK,GAC3B5C,EAAWx6D,KAAK2rQ,qBAAqBnxM,SAAW,EACpDx6D,KAAKswQ,UAAU,GAAIrvC,EAAWzmK,EAAUzwD,GAGhDA,GAAUA,EAAOozD,mBAGzBwxM,sBAAuB,SAAS5jK,GAC5B,IAAI9+C,EAAYjsD,KAAKiY,gBAAgBg0C,YACjCwiC,EAAYzuF,KAAKiY,gBAAgBw2E,YACjCwE,EAAgBjzF,KAAK4Y,OAAO,kBAC5B23P,EAAW,WAAaxlK,EAAUxxF,QAClCi3P,EAAWD,GAAY,EAAI,EAC3BvzK,EAAah9F,KAAKqd,QAAQ,YAAY6gF,gBACtCjL,IAAkBjzF,KAAKsrQ,uBAClBiF,EAAWtkN,EAAY,EAAIA,EAAYwiC,EAAY,KAAOzuF,KAAKsrQ,wBAChEtrQ,KAAKiY,gBAAgBg0C,UAAUA,EAAYukN,GAC3CzlK,EAAUrhC,cAAcvM,kBAErB6/B,GAAc,eAAUA,EAAWhkF,aAAe,eAAUgkF,EAAWtvB,cAC9E1tE,KAAKswQ,UAAU,EAAG,eAAUtzK,EAAWhkF,aAAew3P,GACtDzlK,EAAUrhC,cAAcvM,mBAGhCyxM,iBAAkB,SAAS7jK,EAAW/sC,GAClC,IAAIxD,EAAWx6D,KAAKuvQ,qBAChBh+M,EAAU,eAAEw5C,EAAUrhC,eAAiBqhC,EAAUrhC,cAAcxzD,QACnE,GAAIlW,KAAK4Y,OAAO,cAAgB,SAAW5Y,KAAK4Y,OAAO,aAAa0zB,OAAS0xB,EAAW,CACpF,IAAIyyM,EAAsB,QAAUzwQ,KAAK0wQ,gBAAgBn/M,IAAYvxD,KAAKguQ,kBAAoB,GAAUz8M,GACpGo/M,EAAyBp/M,EAAQ0F,SAAS,IAI9C,OAHI05M,GAA0B,YAAc3wQ,KAAK4Y,OAAO,iCACpD5Y,KAAKwrQ,qBAAqBl4I,kCAE1Bm9I,GAAuBl/M,EAAQnyC,SAAS63C,SAAS,KAAmB1F,EAAQ0F,SAASj3D,KAAK4X,gBAAgB,QAC1G5X,KAAKwrQ,qBAAqBj4I,oBAAoB/4D,EAAU,CACpD7oC,MAAOo5E,EAAUp5E,MACjB6hG,QAASzoB,EAAU0jK,OAEvB1jK,EAAUrhC,cAAcvM,kBACjB,GAIX,OAAOn9D,KAAK8uQ,kBAAkB/jK,EAAUrhC,gBAGhDmlM,iBAAkB,SAAS9jK,EAAW/sC,GAC7BA,GAAc+sC,EAAU6oE,KAAO,aAAe5zK,KAAK4Y,OAAO,oBAAqB5Y,KAAK4Y,OAAO,8BAC5F5Y,KAAKwrQ,qBAAqBl0I,YAC1BvsB,EAAUrhC,cAAcvM,mBAGhC4xM,eAAgB,SAAShkK,EAAW/sC,GAChC,IAAIglH,EAAiBhjL,KAAK4Y,OAAO,WAC7B6xC,EAAYsgD,EAAUp5E,MAAQ,WAAa,OAC3Ci/O,EAAwB,eAAU5wQ,KAAK2rQ,wBAA0B,eAAc3rQ,KAAK2rQ,sBACpFkF,GAA6BD,IAA0B7lK,EAAUp5E,OAAS3xB,KAAK8wQ,iBAAiB9wQ,KAAK2rQ,uBAAyB5gK,EAAUp5E,OAAS3xB,KAAK+wQ,kBAAkB/wQ,KAAK2rQ,sBAC7KqF,EAAcjmK,EAAUrhC,cAAcxzD,OACtC+6P,EAAqBjxQ,KAAK+rQ,cAAgB/rQ,KAAK+rQ,aAAar0P,UAChE,IAAI1X,KAAKkxQ,gCAAgCF,EAAavmN,GAAtD,CAIA,GADA,eAAEwmN,GAAoB94P,SAAS,IAC3B6qK,GAAkBguF,IAAgBH,EAOlC,GANI,eAAEG,GAAa/5M,SAASj3D,KAAK4X,gBAAgB,MAC7C5X,KAAKqtQ,oBAELrtQ,KAAK4vQ,0BACL5vQ,KAAK6vQ,kCAAkCplN,GAEvCuT,GACA,IAAKh+D,KAAKmxQ,uBAAuBpmK,EAAWtgD,GACxC,YAEGzqD,KAAKoxQ,sBAAsBrmK,EAAWtgD,KAC7ComN,GAA4B,GAGhCA,GACA7wQ,KAAK89O,eAAejjE,YAChB76K,KAAKwxL,mBAAmBxzH,cAAgBh+D,KAAKgrQ,mBAC7ChrQ,KAAKqtQ,mBAAkB,GACvBrtQ,KAAKstQ,oBACLttQ,KAAKsvQ,mBAGTvkK,EAAUrhC,cAAcvM,mBAGhCk0M,wBAAyB,WACrB,IAAIr0K,EAAah9F,KAAK4R,UAAUssF,gBAC5B9gF,EAAWpd,KAAKqd,QAAQ,YACxBjB,EAAS4gF,EAAaA,EAAW1+B,cAAgB,eAASlhD,EAAS1F,WAAa,EACpF,OAAO0E,GAEXk1P,kBAAmB,SAAS/7P,GACxB,IAAIg8P,EAAoBvxQ,KAAKs9D,mBAAmBC,kBAAkB,MAAM,GACpEi0M,EAAyBxxQ,KAAKs9D,mBAAmBC,oBACjDhjD,EAASg3P,EAAkBh8P,GAC3BtW,GAAS,EAIb,OAHIsb,IACAtb,EAASuyQ,EAAuBlzQ,QAAQic,IAAW,GAEhDtb,GAEXwyQ,eAAgB,SAASl8P,GACrB,IAAIg8P,EAAoBvxQ,KAAKs9D,mBAAmBC,kBAAkB,MAAM,GACpEhjD,EAASg3P,EAAkBh8P,GAC/B,QAASgF,KAAYA,EAAOuE,OAEhC4yP,iBAAkB,SAASn8P,GACvB,IAAIo8P,EAAmBp8P,EAAcvV,KAAKs9D,mBAAmB+F,uBACzDhG,EAAiBr9D,KAAKs9D,mBAAmBC,oBACzChjD,EAAS8iD,EAAes0M,GAC5B,QAASp3P,GAAU,YAAcA,EAAOsE,SAE5CgxP,kCAAmC,SAASplN,GACxC,IAEI27M,EAFAppK,EAAah9F,KAAK4R,UAAUssF,gBAC5B3oF,EAAcvV,KAAK4xQ,iBAEnBC,EAA2B,EAC3BC,GAAe,EACnB,OAAQrnN,GACJ,IAAK,OACL,IAAK,YACD,IAAImgK,EAAe5qN,KAAK+xQ,yBACxB3L,EAAkB7wP,EAAc,EAChCs8P,EAA2B7xQ,KAAK4Y,OAAO,cAAgB5Y,KAAKqxQ,0BAA4B,EAEpFS,EADA,SAAWrnN,EACImgK,IAAiBw7C,GAAmBpmQ,KAAKyxQ,eAAel8P,KAAiBvV,KAAKsxQ,kBAAkBlL,GAEhGx7C,EAAew7C,GAAmBpmQ,KAAKyxQ,eAAel8P,KAAiBvV,KAAKsxQ,kBAAkBlL,GAEjH,MACJ,IAAK,WACL,IAAK,gBAGD,GAFAA,EAAkB7wP,EAAc,EAChCs8P,EAA2B7xQ,KAAK4Y,OAAO,cAAgB,EAAI5Y,KAAKqxQ,0BAC5D,aAAe5mN,EAAW,CAC1B,IAAI2Y,EAAoBpjE,KAAKs9D,mBAAmB+F,uBAC5C2uM,EAAmB5L,EAAkB,GAAK,IAAMhjM,EACpD0uM,EAAeE,GAAoBhyQ,KAAKyxQ,eAAel8P,KAAiBvV,KAAKsxQ,kBAAkBlL,QAE/F0L,EAAe1L,GAAmB,GAAKpmQ,KAAKyxQ,eAAel8P,KAAiBvV,KAAKsxQ,kBAAkBlL,GAG3G0L,EACA90K,EAAWt7B,SAAS,CAChB/kD,KAAMk1P,IAEH,eAAUzL,IAAoB,eAAU37M,IAAczqD,KAAK0xQ,iBAAiBtL,KACnFyL,EAA2B7xQ,KAAKiyQ,mCAAmCxnN,GACnE,IAAMonN,GAA4B70K,EAAW4/F,SAAS,CAClDjgL,KAAMk1P,EACNj1P,IAAK,MAIjBq1P,mCAAoC,SAASxnN,GACzC,IAAIynN,EAAiB,EACjBC,EAAenyQ,KAAKoyQ,SAASpyQ,KAAK2rQ,sBAClC0G,EAAmBF,GAAgB,eAAcA,GACrD,GAAIE,EAAmB,EAAG,CACtB,IAAIC,EAAgBtyQ,KAAK4Y,OAAO,eAAiB,EAAI,EACrDs5P,EAAiB,cAAgBznN,GAAa,SAAWA,EAAY4nN,EAAmBC,EAAgBD,EAAmBC,GAAiB,EAEhJ,OAAOJ,GAEXf,uBAAwB,SAASpmK,EAAWtgD,GACxC,IAEI8nN,EAFAvB,EAAcjmK,EAAUrhC,cAAcxzD,OACtC2hD,EAAQ73D,KAAKwyQ,0BAA0BxB,GAEvCjnQ,EAASghG,EAAUrhC,cACnB+oM,EAAczyQ,KAAK0wQ,gBAAgBM,GACvC,GAAIn5M,EAAMjqE,GAAGy8Q,IACT,OAAQrqQ,KAAKoxQ,sBAAsBrmK,EAAWtgD,GAElDzqD,KAAK0yQ,2BAA2B76M,GAChC,IAAI86M,EAAe3yQ,KAAK4yQ,qBAAqB7oQ,EAAQ0gD,EAAWgoN,GAEhE,GADA56M,EAAQ86M,EAAa96M,OAChBA,GAAS73D,KAAKkxQ,gCAAgCr5M,EAAOpN,GACtD,OAAO,EAEX,IAAI6M,EAAoBt3D,KAAKs9D,mBACzBkG,EAAYxjE,KAAKqd,QAAQ,YAAYwnD,aAAahN,GAClDtiD,EAAciuD,EAAYlM,EAAkB+L,uBAC5C9oD,EAAS+8C,EAAkBiG,kBAAkB,MAAM,GAAMhoD,GACzD6nD,EAAOvF,EAAMz4C,SACbo7C,EAAWx6D,KAAK6yQ,aAAaz1M,GAC7BlgD,EAAMld,KAAKiY,gBAAgB1N,QAAQiwD,GACnCohC,EAAoB57F,KAAKwxL,mBAC7B,GAAIj3K,GAAUA,EAAOjP,aAAc,CAC/B,IAAIwnQ,GAAc51P,GAAO,SAAWA,EAAIvC,QACxC43P,EAAmB32K,EAAkBh7C,cAAc,CAC/C1jC,IAAKA,IACJ41P,EAAa51P,GAAOA,EAAIC,SAYjC,OAVKo1P,GACDvyQ,KAAKsvQ,iBAELtvQ,KAAK+yQ,WAAWl7M,GAAQ86M,EAAaK,kBAChChzQ,KAAKgrQ,kBAAoBuH,EAC1BvyQ,KAAKizQ,mBAELjzQ,KAAKkzQ,yBAAyBr7M,EAAOkzC,EAAUp5E,SAGhD,GAEXy/O,sBAAuB,SAASrmK,EAAWtgD,GACvC,IAKIgoN,EALA1oQ,EAASghG,EAAUrhC,cACnBsnM,EAAcjnQ,EAAOmM,OACrB2hD,EAAQ73D,KAAKwyQ,0BAA0BxB,GACvCmC,EAA0BnzQ,KAAKozQ,uBAAuBv7M,GAAQkzC,EAAUp5E,OACxEk/O,GAA4B,EAEhC,IAAKjwF,GAAa5gL,KAAM63D,IAAUs7M,EAAwBv5Q,QAAUo3Q,IAAgBmC,EAAwBz1Q,IAAI,GAC5GmzQ,GAA4B,MACzB,MACC,IAAW7wQ,KAAK2rQ,qBAAqBnxM,UAAY,eAAEw2M,GAAa/5M,SAAS,KACzEj3D,KAAK0yQ,2BAA2B76M,GAEpC46M,EAAczyQ,KAAK0wQ,gBAAgBM,GAC/BhxQ,KAAKguQ,mBACLhuQ,KAAKouQ,mBACD,QAAUqE,GAAe,GAAU,eAAEzB,MACrCA,EAAchxQ,KAAKqzQ,uBAAuB,eAAErC,IAC5CyB,EAAczyQ,KAAK0wQ,gBAAgBM,KAG3C,IAAI2B,EAAe3yQ,KAAK4yQ,qBAAqB7oQ,EAAQ0gD,EAAWgoN,GAEhE,GADA56M,EAAQ86M,EAAa96M,OAChBA,EACD,OAAO,EAGX,GADAA,EAAQ73D,KAAKszQ,wBAAwBvpQ,EAAQ8tD,IACxCA,EACD,OAAO,EAEX73D,KAAK+yQ,WAAWl7M,GAAQ86M,EAAaK,eAChCpyF,GAAa5gL,KAAM63D,IACpB73D,KAAKkzQ,yBAAyBr7M,EAAOkzC,EAAUp5E,OAGvD,OAAOk/O,GAEX+B,qBAAsB,SAAS7oQ,EAAQ0gD,EAAWgoN,GAC9C,IAAI56M,EAAQ73D,KAAK8vQ,aAAarlN,EAAWgoN,GACrCpjO,EAAOwoB,GAAS73D,KAAKuzQ,yBAAyBxpQ,EAAQ8tD,GAAO,GACjE,OAAKxoB,GAAQA,EAAKkR,OACP,IAEPlR,EAAKmkO,kBACL37M,EAAQxoB,EAAKmkO,iBAEV,CACH37M,MAAOA,EACPm7M,cAAe3jO,EAAK2jO,iBAG5BM,wBAAyB,SAASvpQ,EAAQ8tD,GACtC,IAAI2C,EAAWx6D,KAAKuvQ,qBAChBnyM,EAAOvF,EAAMz4C,SACjB,GAAIo7C,IAAax6D,KAAK6yQ,aAAaz1M,GAAO,CACtC,IAAIwK,EAAe5nE,KAAKyzQ,iBAAiB57M,GACrCxoB,EAAOrvC,KAAK0zQ,wBAAwB3pQ,EAAQqzD,GAChD,GAAI/tB,EAAKkR,OACL,OAEAlR,EAAKskO,kBACL3zQ,KAAK4zQ,sBAAsBhsM,EAAaryD,aACxCsiD,EAAQ73D,KAAKusQ,mBAGrB,OAAO10M,GAEXm3M,iBAAkB,SAASjkK,EAAW/sC,GAClC,IAAInG,EAAQ73D,KAAKusQ,kBACb/xM,EAAWx6D,KAAKuvQ,qBAChBnyM,EAAOp9D,KAAK+rQ,cAAgB/rQ,KAAK+rQ,aAAalqK,OAAOrnC,GACzD,GAAIx6D,KAAK4Y,OAAO,6BAA+B,GAAWwkD,IAASp9D,KAAK4Y,OAAO,yBAA2Bi/C,GAASA,EAAMZ,SAAS,IAAuB,CACrJ,IAAIn8D,EAAMkF,KAAKiY,gBAAgB0hF,iBAAiBn/B,GAC5C3wD,EAAO7J,KAAKiY,gBAAgB1N,QAAQiwD,QACpC,IAAW1/D,GAAO+O,GAAQA,EAAKzF,OAASyF,EAAKzF,KAAK6Y,gBAClDjd,KAAKiY,gBAAgBkqH,gBAAgBrnI,QAGzCkF,KAAK6zQ,4BAA4B9oK,EAAW/sC,IAGpD61M,4BAA6B,SAAS9oK,EAAW/sC,GAC7C,IAAIvT,EAAYzqD,KAAK8zQ,sBAAsB/oK,GACvCgpK,EAAyB/zQ,KAAKg0Q,0BAC9Bh2M,IAAc+1M,GAA0BtpN,GACxCzqD,KAAKi0Q,2BAA2BlpK,EAAUrhC,eACtC,SAAWjf,GAAa,aAAeA,EACvCzqD,KAAKoxQ,sBAAsBrmK,EAAWtgD,GAC/B,YAAcA,GAAa,cAAgBA,GAClDzqD,KAAKowQ,kBAAkBrlK,EAAUrhC,cAAejf,IAE7CspN,GACP/zQ,KAAKk0Q,cAAcnpK,IAG3B+oK,sBAAuB,SAAS/oK,GAC5B,IAAIz/C,EAAoBtrD,KAAK4Y,OAAO,wCAChCu7P,EAAUppK,EAAUp5E,MACxB,MAAI,WAAa25B,EACN6oN,EAAU,UAAY,YAE7B,QAAU7oN,EACH6oN,EAAU,WAAa,YADlC,GAIJF,2BAA4B,SAASjiN,GACjC,IAAI97C,EAAS87C,EAAM97C,OACf2hD,EAAQ73D,KAAKwyQ,0BAA0Bt8P,GACvCo9K,EAAgBtzL,KAAKgrQ,iBACzBhrQ,KAAK0yQ,2BAA2B76M,GAC5By7H,GACAtzL,KAAKo0Q,mBAAmBv8M,GACxBn4B,WAAW1/B,KAAKwxL,mBAAmBlH,aAAa9uK,KAAKxb,KAAKwxL,uBAE1D,OAAaxzK,QAAQ,eAAE9H,GAAS,UAChClW,KAAKsvQ,iBACLt9M,EAAMmL,mBAGd8xM,kBAAmB,SAASlkK,EAAW/sC,GACnC,IAAInG,EAAQ73D,KAAKwyQ,0BAA0BznK,EAAUrhC,cAAcxzD,QAC/D8nD,IACAh+D,KAAK0yQ,2BAA2B76M,GAC3B73D,KAAKgrQ,kBAONhrQ,KAAKo0Q,mBAAmBv8M,GACxB73D,KAAKwxL,mBAAmBjN,iBACpB,IAAMvkL,KAAKiY,gBAAgB1N,QAAQ3Q,SACnCoG,KAAKqtQ,oBACLrtQ,KAAK89O,eAAejjE,cAVpB,SAAW76K,KAAKwxL,mBAAmBlQ,cACnCthL,KAAKwxL,mBAAmBjN,iBAExBvkL,KAAKsvQ,iBAUbvkK,EAAUrhC,cAAcvM,mBAGhC+xM,iBAAkB,SAASnkK,GACvB,GAAI/qG,KAAK4Y,OAAO,uBAAwB,CACpC,IAAIy7P,EAAmBr0Q,KAAKw3O,aAAa2Z,sBACrCkjB,IACAA,EAAiB1/M,QACjBo2C,EAAUrhC,cAAcvM,oBAIpCgyM,cAAe,WACX,IAAInxM,EAAYh+D,KAAKwxL,mBAAmBxzH,YACpCxD,EAAWx6D,KAAKuvQ,qBAChBnyM,EAAOp9D,KAAK+rQ,cAAgB/rQ,KAAK+rQ,aAAalqK,OAAOrnC,IACpDwD,GAAa,GAAUZ,IACxBp9D,KAAKk0Q,iBAGb9D,kBAAmB,SAASrmQ,EAAQuqQ,GAChC,IAAIz8M,EAAQ73D,KAAK8vQ,aAAawE,GAC1B9E,EAAgBxvQ,KAAKyvQ,uBAAuB6E,GAC5CC,EAAc18M,GAAS73D,KAAKw0Q,aAAa38M,GACzC54D,IAASs1Q,GAAcv0Q,KAAK+vQ,2BAA2BhmQ,EAAQ8tD,EAAO23M,GAC1E,OAAOvwQ,GAEX8wQ,2BAA4B,SAAShmQ,EAAQ0qQ,EAAWhqN,GACpD,IAAIiqN,EAAsB,YAAcjqN,GAAa,YAAcA,EAC/Dpb,EAAOrvC,KAAK20Q,yBAAyB5qQ,EAAQ0qQ,EAAWC,GAAqB,GAEjF,OADAD,EAAYplO,EAAKmkO,kBACZnkO,EAAKkR,SAAUvgD,KAAKw0Q,aAAaC,MAClCz0Q,KAAK40Q,OAAOH,GAAYplO,EAAK2jO,gBACtB,IAIflE,kBAAmB,SAASplM,EAAemrM,GACvC,IAAK70Q,KAAKovQ,yBAA2B1lM,EAAc0zE,QAAU1zE,EAAcxM,SAAWl9D,KAAKwxL,mBAAmBxzH,YAC1G,OAAO,EAEX,GAAI62M,EACA70Q,KAAKk0Q,cAAcxqM,EAAe6gM,QAC/B,CACH,IAAIzvQ,EAAM4uE,EAAc5uE,IACpBw5Q,EAAU5qM,EAAc4qM,SAAW5qM,EAAcwnK,MACjD4jC,EAAiBh6Q,GAAOw5Q,GAAW36Q,OAAO01B,aAAailP,IACvDQ,GAAmB,IAAMA,EAAel7Q,QAAUk7Q,IAAmBvK,IACrEvqQ,KAAKk0Q,cAAcxqM,EAAeorM,GAG1C,OAAO,GAEXjH,qBAAsB,SAASjqQ,GAC3B,IAAIouD,EAAQpuD,EAAEouD,OAASpuD,EACnB2tD,EAAU,eAAES,EAAMqI,eAClBj9C,EAAWpd,KAAKqd,QAAQ,YACxB4zP,EAAqB7zP,GAAYA,EAAS1F,UAC1C48C,EAAU/C,EAAQnyC,SAClB21P,EAAuB,eAAE/iN,EAAM97C,QAAQtoB,GAAG48Q,IAC1Ct3C,IAAmB,eAAElhK,EAAM97C,QAAQiI,QAAQ,IAAIwJ,OAAO,KAAsB/tB,OAC5Eo7Q,EAAsBzjN,EAAQ0F,SAAS,IACtCj3D,KAAKqsQ,sBAAsBr6M,KAG3BkhK,IAAmBlzN,KAAKw0Q,aAAajjN,GAAUwjN,KAAyBC,EAalEzjN,EAAQ3jE,GAAG,OAClBoS,KAAKqtQ,qBAbL97M,EAAUvxD,KAAKi1Q,kBAAkB1jN,GAAW,eAAES,EAAM97C,QAAUq7C,EAC9DvxD,KAAKk1Q,aACL,eAAEjE,GAAoB54P,YAAY,IAC9Bi8C,EAAQ2C,SAASmzM,KACjBpqQ,KAAK0yQ,2BAA2BnhN,GAChCvxD,KAAKytQ,wBAAwBztQ,KAAK+rQ,aAAar0P,WAC/C1X,KAAK+rQ,aAAap3M,OAAM,IAChB30D,KAAKm1Q,oBAAoB5jN,GAGjCvxD,KAAK0yQ,2BAA2BnhN,GAFhCvxD,KAAKo1Q,wBAAwBpjN,EAAOT,MAQhD6jN,wBAAyB,SAASpjN,EAAO6F,GACrC,IAAItiD,EAAcvV,KAAKqd,QAAQ,YAAYwnD,aAAahN,GACpDt9C,EAASva,KAAKs9D,mBAAmBC,oBAAoBhoD,GACrDg0M,EAAiBvpN,KAAKq1Q,kBAC1Br1Q,KAAKouQ,mBACL,IAAI/+N,EAAOrvC,KAAK20Q,yBAAyB3iN,EAAO6F,GAAO,GAEvD,GADAA,EAAQxoB,EAAKmkO,gBACRnkO,EAAKkR,OAwBNvgD,KAAKmuQ,kBACLnuQ,KAAKs1Q,mBAAmBjmO,EAAKkmO,cACzBv1Q,KAAKwxL,mBAAmBxzH,aAAeurJ,GACvCvpN,KAAKsvQ,qBA3BK,CACd,GAAIjgO,EAAKmmO,gBAEL,YADAx1Q,KAAK2xD,cAAc,SAAS8jN,mBAUhC,GAPIpmO,EAAKskO,kBACL97M,EAAQ73D,KAAKusQ,mBAEZl9N,EAAK2jO,eAAkBzpD,GACxBvpN,KAAKmuQ,kBAETnuQ,KAAK0yQ,2BAA2B76M,GAC5B73D,KAAK01Q,qBAAuBnsD,GAAkBhvM,GAAUA,EAAOjP,aAC/DtL,KAAK+sQ,cAAe,EACpB/sQ,KAAKgtQ,gBAAiB,MACnB,CACHn1M,EAAQ73D,KAAKusQ,kBACb,IAAIh7M,EAAUS,GAAS,eAAEA,EAAM97C,QAAQiI,QAAQssP,GAAkC,QAC7EkL,EAAiBpkN,GAAWA,EAAQqP,IAAI/I,GAAOjqE,GAAG68Q,IAClDnnD,IAAa/oM,IAAWA,EAAOsE,SAAWg5C,EAAMZ,SAAS,IACzD2+M,GAActyD,KAAcj0K,EAAK2jO,eAAiB2C,GACtD31Q,KAAK40Q,OAAO/8M,EAAO+9M,EAAYD,MAU3CD,kBAAmB,WACf,IAAIl7M,EAAWx6D,KAAKuvQ,qBAChBryP,EAAMld,KAAKiY,gBAAgB1N,QAAQiwD,GACvC,OAAOx6D,KAAKwxL,mBAAmB5wI,cAAc,CACzC1jC,IAAKA,GACN,UAEPy3C,MAAO,SAASj9C,GACZ,IAAIm+P,EACAvgO,EAAoBt1C,KAAK4Y,OAAO,qBAChCo6P,EAAgBjI,GAAc,eAAErzP,IAC/BA,IACDm+P,EAAwB,0CACnBvgO,IACDugO,GAAyB,kDAE7Bn+P,EAAU1X,KAAK4R,UAAUiF,WAAWiB,KAAK+9P,GAAuBtrM,SAEpE7yD,GAAW1X,KAAK81Q,cAAc,eAAEp+P,GAAUs7P,IAE9C+C,eAAgB,WACZ,OAAO/1Q,KAAK+rQ,cAEhBF,iBAAkB,WACV7rQ,KAAKyrE,sBAAwB,eAAUzrE,KAAK+rQ,eAC5C/rQ,KAAKk1Q,cAGbY,cAAe,SAASj/P,EAAUm8P,GAC9B,IAAIgD,EAAkB,eAAEh2Q,KAAKutQ,uBACzB0I,EAAep/P,EAASsH,QAAQ63P,GAChChI,EAAiBhuQ,KAAKguQ,iBACtB3+N,EAAO,IACN4mO,EAAar8Q,QAAUmxQ,GAAcl0P,KAAc7W,KAAKw0Q,aAAa39P,KAG1E7W,KAAKk1Q,aACLl1Q,KAAK+sQ,cAAe,EACpB/sQ,KAAK8rQ,eAAgB,GACjBf,GAAcl0P,IAAa,GAAWA,MACtC7W,KAAKouQ,mBACL/+N,EAAOrvC,KAAK20Q,yBAAyB,KAAM99P,GAAU,EAAOm8P,GAC5Dn8P,EAAWw4B,EAAKmkO,gBACZxF,IAAmB3+N,EAAK2jO,eACxBhzQ,KAAKmuQ,mBAGR9+N,EAAKkR,SACNvgD,KAAK40Q,OAAO/9P,GAAWw4B,EAAK2jO,eAC5BhzQ,KAAKkzQ,yBAAyBr8P,MAGtCq/P,yBAA0B,SAASr/P,GAC/B,IAAI4iG,EAAOz5G,KAAK+1Q,iBACZ1kH,EAAQ53C,GAAQ,eAAEA,EAAK/hG,WAC3B,OAAOb,GAAY,IAAMA,EAASsH,QAAQkzI,GAAOz3J,QAErDs7Q,WAAY,WACRl1Q,KAAK+rQ,aAAe/rQ,KAAKqd,QAAQ,aAErCiwP,kBAAmB,WACfttQ,KAAKmuQ,kBACLnuQ,KAAK+rQ,aAAe,MAExBmH,yBAA0B,SAASr7M,EAAOswB,GACtC,GAAKtwB,EAAL,CAGA,IAAI0iH,EAAkBv6K,KAAKozQ,uBAAuBv7M,EAAOswB,GACzD,OAAcrqE,sBAAsB9d,KAAMu6K,KAE9Cq6F,OAAQ,SAAS/8M,EAAOs+M,EAAcR,GAClC,IAAIv4M,EAAOvF,IAAUA,EAAMZ,SAAS,IAAaY,EAAM15C,QAAQ,IAAIwJ,OAAO,KAAckwC,EACxF,IAAIuF,IAAQ0tM,GAAgB1tM,GAA5B,CAGA,IAEIg5M,EAFAC,EAAcr2Q,KAAK+rQ,aACnBzhM,EAAoB+rM,GAAeA,EAAY3+P,UAEnD1X,KAAKgtQ,eAAiBmJ,EACtB,IAAIG,EAAa,GAAWl5M,IAASp9D,KAAKguQ,iBACtCsI,GACAF,EAAgBh5M,EACZi5M,GACAr2Q,KAAKs1Q,mBAAmBt1Q,KAAK6yQ,aAAaz1M,KAEvC2tM,GAAclzM,KACrBu+M,EAAgBv+M,EAChB73D,KAAK0yQ,2BAA2B76M,IAEhCu+M,IACI9rM,GACAA,EAAkBxyD,KAAK,6CAA6C8oD,IAAIw1M,GAAe/9P,YAAY,IAA2B+lD,WAAW,YAE7I,OAAam4M,IAAIH,EAAe,OAAQxyQ,IAChCA,EAAE0sO,eACF8lC,EAAc/9P,YAAY,MAG7Bs9P,IACD31Q,KAAKytQ,wBAAwB2I,GAC7B,OAAap4P,QAAQo4P,EAAe,UAEpCD,GACAC,EAAcj+P,SAAS,IACnBm+P,GACAz+M,EAAM1/C,SAAS,KAGnBnY,KAAK89O,eAAenpL,MAAMyhN,MAItCt7F,aAAc,SAAS07F,GACnBx2Q,KAAKyrQ,oBAAsB/rO,WAAW,KAClC,IAAIk8D,EAAoB57F,KAAKwxL,mBACzB+3B,EAAiB3tH,EAAkB0lF,gBAAkB,GACrDooC,EAAkB9tH,EAAkB0lF,gBAAkB,GAC1D,GAAIioC,GAAkB3tH,EAAkBigB,cAAgB6tG,GAAmB9tH,EAAkBw1F,qBACzFx1F,EAAkB0vF,wBADtB,CAIA,IAAIzzH,EAAQ73D,KAAKusQ,kBACbvuM,EAAY49B,EAAkB59B,YAClC,GAAInG,KAAW73D,KAAKm1Q,oBAAoBt9M,IAAW73D,KAAKgrQ,kBAAmB,CACvE,GAAIhrQ,KAAKy2Q,YAAY5+M,EAAMz4C,UAAW,CAClC,IAAIqrC,EAAYzqD,KAAK2rQ,sBAAwB3rQ,KAAK2rQ,qBAAqBnxM,SAAW,EAAI,UAAY,YAClG3C,EAAQ73D,KAAK8vQ,aAAarlN,GAE9B,GAAIwgN,GAAiBpzM,GACjB,GAAIA,EAAMjqE,GAAG,OAASiqE,EAAMZ,SAASj3D,KAAK4X,gBAAgB,KAAwB,CAC9E,IAAI+oK,EAAgB9oH,EAAMjqE,GAAGy8Q,IACzBqM,EAA4B7+M,EAAM//C,KAAK,UACvC6+P,EAA0B1L,GAAiByL,GAC/C,IAAKF,GAAiB71F,IAAkB3gL,KAAK89O,eAAenpL,QAKhDgiN,IAA4B32Q,KAAK+sQ,eAAgB/sQ,KAAKgtQ,gBAC9DhtQ,KAAK40Q,OAAO/8M,EAAO73D,KAAKgtQ,oBANyC,CACjE,GAAIrsF,GAAiBg2F,EAEjB,YADA,OAAc74P,sBAAsB9d,KAAM02Q,IAE5CC,GAA2B32Q,KAAK40Q,OAAO/8M,GAIzCmG,GACAh+D,KAAKkzQ,yBAAyB13P,KAAKxb,KAAnCA,CAAyC63D,QAG7C,OAAa75C,QAAQ65C,EAAO,cAMhD00M,gBAAiB,WACb,OAAO,eAAEvsQ,KAAKoyQ,SAASpyQ,KAAK2rQ,wBAEhC4C,mCAAoC,SAASr4P,GACzC,IAAI0gQ,EACAnE,EAAczyQ,KAAK0wQ,gBAAgBx6P,GACvC,GAAI,QAAUu8P,GAAe,eAAU,QAAUmE,EAAwB52Q,KAAK2rQ,4BAAyB,IAAWiL,OAAwB,EAASA,EAAsBrhQ,aAAc,CACnL,IAAI6nD,EAAO,eAAElnD,GACblW,KAAK+rQ,cAAgB,GAAW3uM,IAASp9D,KAAKs1Q,mBAAmBt1Q,KAAK6yQ,aAAaz1M,SAEnFp9D,KAAK0yQ,2BAA2B1yQ,KAAKwyQ,0BAA0Bt8P,KAGvEw8P,2BAA4B,SAAS76M,EAAOpN,GACxC,IAAItF,EAAWnlD,KAAKyzQ,iBAAiB57M,EAAOpN,GAM5C,OALItF,KACK0S,EAAMj+D,QAAUurD,EAASqV,UAAY,GAAKrV,EAAS5vC,aAAe,IACnEvV,KAAK62Q,uBAAuB1xN,EAASqV,SAAUrV,EAAS5vC,aAGzD4vC,GAEX2xN,6BAA8B,SAASvhQ,GACnC,IAAI6G,EAAS,EACT7B,EAASva,KAAKs9D,mBAAmBC,oBAAoBhoD,GAMzD,OALIgF,GAAUA,EAAOuE,MACjB1C,EAASpc,KAAK+2Q,2BAA2Bx8P,GAClChF,GAAe,IACtB6G,EAASpc,KAAKs9D,mBAAmB+F,wBAE9BjnD,GAEX26P,2BAA4B,SAASx8P,GACjC,IAAI6B,EAASgvP,GAAiCprQ,KAAMua,GAAUva,KAAK+xQ,yBAA2B/xQ,KAAKs9D,mBAAmBC,oBAAoB3jE,OAAS,EACnJ,OAAOwiB,GAEXq3P,iBAAkB,SAAS57M,EAAOpN,GAC9B,IAAIl1C,EACA6nD,EAAO6tM,GAAiBpzM,IAAUA,EAAM15C,QAAQ,MAChDf,EAAWpd,KAAKqd,QAAQ,YAC5B,GAAI4tP,GAAiB7tM,GAAO,CACxB,IAAI5C,EAAWx6D,KAAK6yQ,aAAaz1M,GAOjC,OANA7nD,EAAc6H,EAASynD,aAAahN,EAAO2C,GAC3CjlD,GAAevV,KAAK82Q,6BAA6BvhQ,GAC7Ck1C,IACAl1C,EAAc,aAAek1C,EAAYl1C,EAAc,EAAIA,EAAc,EACzEA,EAAcvV,KAAKg3Q,4BAA4BzhQ,IAE5C,CACHilD,SAAUA,EACVjlD,YAAaA,KAIzBw9P,WAAY,SAASl7M,EAAO+9M,GACxB,GAAI51Q,KAAKw0Q,aAAa38M,GAElB,OADA73D,KAAK40Q,OAAO/8M,EAAO+9M,IACZ,GAGfxB,mBAAoB,SAASv8M,GACrBA,EAAMZ,SAAS,KACfj3D,KAAK89O,eAAenpL,MAAMkD,GAAO,IAGzCw1M,kBAAmB,SAASz4M,GACxB,IAAIqiN,EACAp/M,EAAQ73D,KAAKusQ,kBACjBtB,GAAiBpzM,IAAUA,EAAMuG,WAAW,YAC5Cp+D,KAAK+sQ,cAAe,EACpB/sQ,KAAK8rQ,eAAgB,EACrB9rQ,KAAK2rQ,qBAAuB,GAC5BvxM,aAAap6D,KAAKyrQ,qBAClB,QAAUwL,EAAqBj3Q,KAAK+rQ,oBAAiB,IAAWkL,GAA8BA,EAAmBC,iBAAiB,CAC9HtiN,cAAeA,KAGvBuiN,wBAAyB,SAAS38M,EAAUzwD,GACxC,IAAIslC,EACAwzB,EACAqtM,EAAY,eAAU11M,GACtBp9C,EAAWpd,KAAKqd,QAAQ,YACxBo+F,EAAmBr+F,EAAS1F,UAC5BnC,EAAcvV,KAAK2rQ,qBAAqBp2P,YACxCkiF,EAAiBz3F,KAAKiY,gBAAgBy/E,oBAC1Cl9B,EAAW01M,EAAY11M,EAAWp9C,EAAS0nF,yBAA2BrN,EACjEy4K,GAKDrtM,EAAczlD,EAASykF,OAAOrnC,EAAWi9B,GACzCpoD,EAAOrvC,KAAK0zQ,wBAAwB3pQ,EAAQ84D,IACvCxzB,EAAKkR,QAAUlR,EAAKskO,kBACrBn5M,EAAWnrB,EAAK+nO,eAPpBp3Q,KAAK89O,eAAejjE,YACpB76K,KAAKytQ,wBAAwBhyJ,GAC7B,OAAaz9F,QAAQy9F,EAAkB,UAQtCy0J,GAAc7gO,EAAKkR,QACpBvgD,KAAK62Q,uBAAuBr8M,EAAUjlD,GAE1C26P,GAAalwQ,KAAK86K,gBAEtBu8F,sBAAuB,SAASzvM,EAAc6qM,EAAa3wP,GACvD,IAEIw1P,EAFA/hQ,EAAcqyD,EAAaryD,YAC3BilD,EAAWoN,EAAapN,SAE5B,QAAI,IAAWoN,EAAapN,UAAY,SAAW14C,EAC/C,MAAO,CACHvM,YAAa,EACbilD,SAAU,GAGlB,OAAQ14C,GACJ,IAAK,YACL,IAAK,OACDw1P,EAAsBt3Q,KAAK+xQ,yBACvBx8P,EAAc+hQ,EAAsB,GAAK,QAAU7E,GAAezyQ,KAAKu3Q,2BAA2B,CAC9FhiQ,YAAaA,EACbilD,SAAUA,IAEdjlD,IACQvV,KAAKw3Q,WAAWh9M,IAAa,SAAW14C,IAChDvM,EAAc,EACdilD,KAEJ,MACJ,IAAK,gBACL,IAAK,WACGjlD,EAAc,GAAK,QAAUk9P,GAAezyQ,KAAKy3Q,4BAA4B,CACzEliQ,YAAaA,EACbilD,SAAUA,IAEdjlD,IACOilD,EAAW,GAAK,aAAe14C,IACtC04C,IACA88M,EAAsBt3Q,KAAK+xQ,yBAC3Bx8P,EAAc+hQ,EAAsB,GAExC,MACJ,IAAK,UACD98M,EAAWA,EAAW,EAAIA,EAAW,EAAIA,EACzC,MACJ,IAAK,YACDA,EAAYx6D,KAAKw3Q,WAAWh9M,GAA2BA,EAAfA,EAAW,EAE3D,MAAO,CACHjlD,YAAaA,EACbilD,SAAUA,IAGlBq8M,uBAAwB,SAASr8M,EAAUjlD,GACvCvV,KAAKs1Q,mBAAmB96M,GACxBx6D,KAAK4zQ,sBAAsBr+P,IAE/B+/P,mBAAoB,SAAS96M,GACpBx6D,KAAK2rQ,uBACN3rQ,KAAK2rQ,qBAAuB,IAEhC3rQ,KAAK2rQ,qBAAqBnxM,SAAWA,GAEzCo5M,sBAAuB,SAASr+P,GACvBvV,KAAK2rQ,uBACN3rQ,KAAK2rQ,qBAAuB,IAEhC3rQ,KAAK2rQ,qBAAqBp2P,YAAcA,GAE5CklD,YAAa,WACT,OAAOz6D,KAAK2rQ,qBAAuB3rQ,KAAK2rQ,qBAAqBnxM,UAAY,GAE7Eo3M,eAAgB,WACZ,OAAO5xQ,KAAK2rQ,qBAAuB3rQ,KAAK2rQ,qBAAqBp2P,aAAe,GAEhFg6P,mBAAoB,WAChB,IAAI/0M,EAAWx6D,KAAK2rQ,sBAAwB3rQ,KAAK2rQ,qBAAqBnxM,SACtE,OAAK,eAAUA,IAAaA,EAAW,GAC3B,EAELA,EAAWx6D,KAAKiY,gBAAgBy/E,qBAE3CjxB,sBAAuB,WACnB,IAAIlxD,EAAcvV,KAAK2rQ,sBAAwB3rQ,KAAK2rQ,qBAAqBp2P,YACzE,OAAK,eAAUA,GAGRA,EAAcvV,KAAKs9D,mBAAmB+F,wBAFjC,GAIhB2zM,4BAA6B,SAASzhQ,GAClC,IAAI+hQ,EAAsBt3Q,KAAK+xQ,yBAM/B,OALIx8P,EAAc,EACdA,EAAc,EACPA,GAAe+hQ,IACtB/hQ,EAAc+hQ,EAAsB,GAEjC/hQ,GAEXmiQ,uBAAwB,SAAS9vM,GAC7B,IAAI/P,EAAQ,eAAE73D,KAAKoyQ,SAASxqM,IAC5B,OAAO5nE,KAAKw0Q,aAAa38M,IAE7B2/M,WAAY,SAASh9M,GACjB,IAAIwoB,EAAiBhjF,KAAKiY,gBACtB+7E,EAAehR,EAAez4E,QAAQnM,OAAOyL,IAAQ,IAAUA,EAAK0wC,SACxE,OAAIv6C,KAAKqwQ,sBACE71M,GAAYwoB,EAAe20L,iBAE/Bn9M,IAAaw5B,EAAap6F,OAAS,GAE9Cm3Q,kBAAmB,SAASnpM,GACxB,IAAIgwM,GAAmB,EAIvB,OAHI,IAAMhwM,EAAapN,UAAYoN,EAAaryD,aAAe,IAC3DqiQ,EAAmBA,IAAqB53Q,KAAKy3Q,4BAA4B7vM,IAEtEgwM,GAEXH,4BAA6B,SAAS7vM,GAClC,IAAIryD,EAAcqyD,EAAaryD,YAC3BsiQ,GAAgB,EACpB,MAAOtiQ,EAAc,IAAMsiQ,EAAe,CACtC,IAAIC,EAAmB,CACnBviQ,cAAeA,EACfilD,SAAUoN,EAAapN,UAE3Bq9M,EAAgB73Q,KAAK03Q,uBAAuBI,GAEhD,OAAOD,GAEXN,2BAA4B,SAAS3vM,GACjC,IAAIryD,EAAcqyD,EAAaryD,YAC3BsiQ,GAAgB,EAChBE,EAAqB/3Q,KAAK+xQ,yBAC9B,MAAOx8P,EAAcwiQ,EAAqB,IAAMF,EAAe,CAC3D,IAAIC,EAAmB,CACnBviQ,cAAeA,EACfilD,SAAUoN,EAAapN,UAE3Bq9M,EAAgB73Q,KAAK03Q,uBAAuBI,GAEhD,OAAOD,GAEX/G,iBAAkB,SAASlpM,GACvB,IAAIw+L,EAAkBx+L,EAAaryD,aAAe,EAAIqyD,EAAaryD,YAAc,EAAI,EACjFilD,EAAWoN,EAAapN,SACxBs9M,EAAmB,CACnBviQ,YAAa6wP,EACb5rM,SAAUA,GAEVqmK,EAAc7gO,KAAKiY,gBAAgBggF,iBACnC/6E,EAAM2jN,GAAeA,EAAYrmK,GACjC08I,EAAYl3M,KAAKw3Q,WAAWh9M,GAChC,QAAK08I,OAGDh6L,GAAO,UAAYA,EAAIvC,SAAWitD,EAAaryD,YAAc,KAG7DqyD,EAAaryD,cAAgBvV,KAAK+xQ,yBAA2B,IAG7D/xQ,KAAK03Q,uBAAuBI,IAGzB93Q,KAAK8wQ,iBAAiBgH,MAEjCtD,aAAc,SAAS38M,EAAOmgN,GAC1B,GAAI/M,GAAiBpzM,GAAQ,CACzB,IAAIz6C,EAAWpd,KAAKqd,QAAQ,YACxB+/C,EAAOvF,EAAMz4C,SACbk4C,EAAoBt3D,KAAKs9D,mBACzB/nD,EAAc6H,EAASynD,aAAahN,GAASP,EAAkB+L,uBAC/D9oD,EAAS+8C,EAAkBiG,kBAAkB,MAAM,GAAMhoD,GACzDwiQ,EAAqB/3Q,KAAK+xQ,yBAC1Bn2K,EAAoB57F,KAAKwxL,mBACzB7zH,EAAoB6qJ,GAAYprJ,GAChC66M,EAAoB19P,GAAUA,EAAO6jC,gBACrC85N,EAAa39P,IAAWs9C,EAAMZ,SAAS,KAAyB,GAAUmG,GAC9E,GAAIp9D,KAAKm1Q,oBAAoBt9M,GACzB,OAAO,EAEX,GAAIkgN,EAAqBxiQ,KAAiBooD,GAAqBpjD,KAAY,eAAUA,EAAOmjC,aAAeu6N,GAAqBC,IAAe32Q,SAASs2D,EAAMnG,KAAK,YAAc,GAAI,CACjL,IAAIymN,EAAWn4Q,KAAKiY,gBAAgB1N,QAChCwrF,EAAkB34E,EAASq9C,YAAY2C,GACvClgD,EAAMi7P,EAASpiL,GACf+F,EAAgBF,GAAqB57F,KAAKq1Q,mBAAqBz5K,EAAkB59B,YACjFmyM,EAA2Bv0K,GAAqBA,EAAkBqvC,UAAUl1C,GAC5E/3B,EAAYmyM,GAA4Br0K,EAC5C,OAAIvhF,EAAOsE,QACH7e,KAAKo4Q,uBACGp6M,GAAa,WAAazjD,EAAOsE,SAEzCi9E,IAGAq0K,EACO,WAAa51P,EAAOsE,SAEvBm/C,KAER89B,IAAiB5+E,GAAO,SAAWA,EAAIvC,YAGnCqjD,GAAazjD,EAAOjP,cAAgB0sQ,MAIxD3E,uBAAwB,SAASj2M,EAAM7nD,GACnC,IACIsiD,EACA4gI,EAFApgI,EAAS+E,EAAKtlD,KAAK,QAGvBvC,EAAcA,GAAe,EAC7B,IAAK,IAAI9Z,EAAI8Z,EAAa9Z,EAAI48D,EAAOz+D,SAAU6B,EAE3C,GADAo8D,EAAQQ,EAAO77C,GAAG/gB,GACduE,KAAKw0Q,aAAa38M,GAAQ,CAC1B4gI,EAAU5gI,EACV,MAGR,OAAO4gI,GAEXq3E,aAAc,SAASwE,EAAS7B,EAAa7qM,GACzC,IAGI/P,EACAuF,EAJAi7M,EAAsBzwM,GAAgB5nE,KAAK2rQ,qBAC3CqC,EAAiBhuQ,KAAKguQ,iBACtBsK,EAAsBtK,GAAkB,CAAC,OAAQ,YAAYhrQ,SAASsxQ,GAG1E,GAAIt0Q,KAAK+rQ,cAAgBsM,EAAqB,CAC1C,IAAIE,EAAyBv4Q,KAAKq3Q,sBAAsBgB,EAAqB5F,EAAa6B,GAC1Fz8M,EAAQ,eAAE73D,KAAKoyQ,SAASmG,IACxB,IAAIC,EAAwB,aAAelE,EAAUt0Q,KAAK+wQ,kBAAkBwH,GAA0Bv4Q,KAAK8wQ,iBAAiByH,GAS5H,GARItN,GAAiBpzM,KAAW73D,KAAKw0Q,aAAa38M,IAAU73D,KAAKy4Q,aAAaF,EAAwBD,KAAyBE,IAEvH3gN,EADAm2M,EACQhuQ,KAAKqzQ,uBAAuBx7M,EAAMz4C,SAAUm5P,EAAuBhjQ,aAEnEvV,KAAK8vQ,aAAawE,EAAS,OAAQiE,IAGnDn7M,EAAO6tM,GAAiBpzM,IAAUA,EAAMz4C,SACpCpf,KAAKy2Q,YAAYr5M,GAAO,CACxB,IAAI5C,EAAWx6D,KAAK6yQ,aAAaz1M,GACjC,GAAKp9D,KAAKw3Q,WAAWh9M,GAMjB,OAAO,KALP3C,EAAQ73D,KAAK8vQ,aAAawE,EAAS,MAAO,CACtC/+P,YAAa8iQ,EAAoB9iQ,YACjCilD,SAAUA,IAMtB,OAAOywM,GAAiBpzM,GAASA,EAAQ,KAE7C,OAAO,MAEXq8M,cAAe,SAASnpK,EAAW+pK,GAC/B,IAAIuD,EAAsBr4Q,KAAK2rQ,qBAC3B51K,EAAkB/1F,KAAKuvQ,qBACvBmJ,EAAqB14Q,KAAKymE,wBAC1BvpD,EAAMld,KAAKiY,gBAAgB1N,QAAQwrF,GACnCx7E,EAASva,KAAKs9D,mBAAmBC,oBAAoBm7M,GACrD14Q,KAAK24Q,gBAAgBz7P,EAAK3C,KACtBva,KAAKgrQ,iBACLhrQ,KAAKwxL,mBAAmBzvI,QAAQg0C,GACzBsiL,GACPr4Q,KAAK44Q,eAAe7tK,EAAW+pK,KAI3C6D,gBAAiB,SAASz7P,EAAK3C,GAC3B,OAAOva,KAAKwxL,mBAAmB5wI,cAAc,CACzC1jC,IAAKA,KACH3C,GAAUA,EAAOjP,cAE3B2nQ,iBAAkB,WACd,IAAIz4M,EAAWx6D,KAAKuvQ,qBAChB7oH,EAAW1mJ,KAAKymE,wBACpB,OAAOzmE,KAAKwxL,mBAAmBc,SAAS93H,EAAUksF,IAEtDkyH,eAAgB,SAAS7tK,EAAW+pK,GAChC90Q,KAAK0rQ,oBAAsB,eAAUoJ,GACrC,IAAI+D,EAAa74Q,KAAKizQ,mBACtB,GAAIjzQ,KAAKqvQ,wBACL,IAAI,IAASwJ,EACT74Q,KAAK84Q,oBAAoB/tK,EAAW+pK,QACjC,GAAI+D,GAAcA,EAAWx6P,KAAM,CACtC,IAAIivL,EAAcwnE,IAAmBvK,GAA0BuK,EAAiB,GAChF+D,EAAWx6P,KAAK,IAAMre,KAAK84Q,oBAAoB/tK,EAAWuiG,MAItEwrE,oBAAqB,SAAS/tK,EAAWuiG,GACrC,IAAIyrE,EAAoBC,EACpBvlI,EAASzzI,KAAKusQ,kBAAkBz0P,KAAK0yP,IAA+BhuP,GAAG,GACvEy8P,EAAe,gBAAYluK,EAAW,CACtCtsG,KAAM,UACNyX,OAAQu9H,EAAO/1I,IAAI,KAEnBw7Q,EAAgB,gBAAYnuK,EAAW,CACvCtsG,KAAM,WACNyX,OAAQu9H,EAAO/1I,IAAI,KAEnBy7Q,EAAa,gBAAYpuK,EAAW,CACpCtsG,KAAM,QACNyX,OAAQu9H,EAAO/1I,IAAI,KASvB,GAPIy7Q,EAAWzvM,gBACXyvM,EAAWzvM,cAAgB,gBAAYyvM,EAAWzvM,cAAe,CAC7DtlE,KAAMkpM,KAGd,QAAUyrE,GAAsBC,EAAcvlI,EAAO/1I,IAAI,IAAI4gB,cAAW,IAAWy6P,GAA8BA,EAAmB3iQ,KAAK4iQ,GACzI,OAAah7P,QAAQy1H,EAAQwlI,IACxBA,EAAazhG,uBACd,OAAax5J,QAAQy1H,EAAQylI,IACxBA,EAAc1hG,sBAAsB,CACrC,IAAIr9G,EAAUv6C,EAAA,KAAQC,QAAU,GAAK,EACrC6f,WAAW,KACP+zG,EAAOrB,IAAIk7D,GACX,IAAI8rE,EAAmB3lI,EAAOt1H,QAAQ,IAAIwJ,OAAO,KACjD,OAAaspC,IAAImoN,EAAkB,YACnC,OAAa7C,IAAI6C,EAAkB,YAAY,WAC3C,OAAap7P,QAAQy1H,EAAQ,aAEjC,OAAaz1H,QAAQy1H,EAAQ0lI,IAC9Bh/M,KAIfw6M,yBAA0B,SAAS5qQ,EAAQ8tD,EAAOwhN,EAAcrG,GAC5D,IAAI3jO,EAAO,GACPu4B,EAAe5nE,KAAKyzQ,iBAAiB57M,IAAU,GAqBnD,OApBI73D,KAAKkuQ,oBACL7+N,EAAOrvC,KAAKuzQ,yBAAyBxpQ,EAAQ8tD,EAAOm7M,GAC/C3jO,EAAKkR,SACNqnB,EAAaryD,YAAc85B,EAAKiqO,eAChC1xM,EAAapN,SAAWnrB,EAAK+nO,YAC7BpE,EAAgB3jO,EAAK2jO,cACrBn7M,EAAQ,eAAE73D,KAAKoyQ,SAASxqM,OAG3Bv4B,EAAKkR,QAAU84N,GAAgBxhN,IAChCxoB,EAAOrvC,KAAK0zQ,wBAAwB3pQ,EAAQ8tD,EAAMz4C,UAC7CiwB,EAAKkR,SACNqnB,EAAapN,SAAWnrB,EAAK+nO,YAC7B/nO,EAAK2jO,cAAgBA,IAG7B3jO,EAAKmkO,gBAAkB,eAAExzQ,KAAKoyQ,SAASxqM,IAClCv4B,EAAKmkO,gBAAgB55Q,SACtBy1C,EAAKmkO,gBAAkB37M,GAEpBxoB,GAEXkkO,yBAA0B,SAASxpQ,EAAQ2kE,EAAcskM,GACrD,IAAIuG,EAAgBv5Q,KAAK4Y,OAAO,sBAC5B28P,EAAev1Q,KAAK4Y,OAAO,mBAC3BgvD,EAAe5nE,KAAKyzQ,iBAAiB/kM,GACrCn5D,EAAcqyD,EAAeA,EAAaryD,aAAe,EACzDilD,EAAWoN,EAAeA,EAAapN,UAAY,EACnDnrB,EAAO,CACPuvB,YAAa8P,EACb8qM,gBAAiBD,EACjBhE,aAAcA,EACd+D,eAAgB/jQ,EAChB6hQ,YAAa58M,EACbuH,KAAM/hE,KAAKiY,gBAAgBggF,iBAC3Bz5E,QAASxe,KAAKs9D,mBAAmBC,oBACjCvL,MAAOjoD,EACPipQ,cAAeA,IAAiB,EAChCzyN,QAAQ,GAgBZ,OAdAvgD,KAAK4rQ,sBAAwB,KAC7B5rQ,KAAKkyD,cAAc,wBAAyB7iB,GACxCA,EAAKiqO,iBAAmB/jQ,GAAe85B,EAAK+nO,cAAgB58M,IAC5DnrB,EAAKmkO,gBAAkB,eAAExzQ,KAAKoyQ,SAAS,CACnC78P,YAAa85B,EAAKiqO,eAClB9+M,SAAUnrB,EAAK+nO,gBAGnB/nO,EAAKkR,SACLvgD,KAAK4rQ,sBAAwB,CACzBpxM,SAAUA,EACVjlD,YAAaA,IAGd85B,GAEXoqO,wBAAyB,SAAS/qM,EAAc6qM,EAAehE,GAC3D,IAAIvyL,EAAiBhjF,KAAKiY,gBACtB1C,EAAcvV,KAAKqd,QAAQ,YAAYwnD,aAAa6J,GACpDlU,EAAWx6D,KAAK6yQ,aAAankM,GAAgBA,EAAatvD,UAC1Ds6P,EAAgBloQ,KAAK3I,IAAI2xD,EAAWwoB,EAAe0U,oBAAqB1U,EAAez4E,QAAQ3Q,OAAS,GACxG6mL,EAAgBzgL,KAAKwxL,mBAAmBpM,WAAWs0F,EAAenkQ,GAClE2H,EAAM8lE,EAAez4E,QAAQmvQ,GAC5Bj5F,GAAkB84F,IAAkBhkQ,GAAeggQ,IAAiB/6M,GACrEx6D,KAAKkyD,cAAc,uBAAwB,CACvC0M,YAAa8P,EACbn5D,YAAaA,EACbilD,SAAUA,EACVt9C,IAAKA,EACL3C,OAAQva,KAAKs9D,mBAAmBC,oBAAoBhoD,MAIhEm+P,wBAAyB,SAAS3oK,EAAW4uK,GACzC,IAAIvC,EAAcp3Q,KAAK6yQ,aAAa8G,GAChC32L,EAAiBhjF,KAAKiY,gBACtB2hQ,EAAsB55Q,KAAK4Y,OAAO,mBAClCi2E,EAAwB7L,EAAe6L,wBACvCx/C,EAAO,CACPqrB,WAAYi/M,EACZpE,aAAcqE,EACdxC,YAAaA,EACbplN,MAAO+4C,EACPhpC,KAAMihB,EAAeiV,iBACrB13C,QAAQ,GAEZ,OAAKyiC,GAAkBA,EAAe34E,cAAgBwkF,EAAsBxI,QAAUwI,EAAsB71C,SACxG3J,EAAKkR,QAAS,EACPlR,IAEPrvC,KAAK4Y,OAAO,uBACZ5Y,KAAKkyD,cAAc,uBAAwB7iB,GACtCA,EAAKkR,QAAUlR,EAAK+nO,cAAgBA,IACrC/nO,EAAKmmO,gBAAkBnmO,EAAK+nO,YAAc,EACrC/nO,EAAKmmO,iBACNx1Q,KAAKs1Q,mBAAmBjmO,EAAK+nO,aAEjC/nO,EAAKskO,iBAAkB,IAGxBtkO,IAEXwqO,uBAAwB,SAASh3M,GAC7B,IAAI3lD,EACAs4B,EAAgBx1C,KAAK4Y,OAAO,iBAC5B0vK,EAAkBtoL,KAAK2xD,cAAc,SACrCpc,EAAkB,OAAS+yI,QAAmB,IAAWA,OAAkB,EAASA,EAAgBwxF,wBAAwBtkO,GAChI,GAAIx1C,KAAK4Y,OAAO,qBAAsB,CAClC,GAAI28B,GAAmB,EAAG,CACtB,IAAIytC,EAAiBhjF,KAAKiY,gBAC1BiF,EAAMq4B,GAAmB,GAAKytC,EAAeiV,iBAAiB1iD,EAAkBytC,EAAe0U,qBAEnG13F,KAAKkyD,cAAc,sBAAuB,CACtCwI,WAAYmI,EACZrI,SAAUjlB,EACVr4B,IAAKA,MAIjBmvP,sBAAuB,SAASr6M,GAC5B,OAAO,OAAchzC,uBAAuBhf,KAAM,eAAEgyD,EAAM97C,UAE9D80P,eAAgB,WACZ,IAAIzpF,EAAWvhL,KAAKwxL,mBAAmBlQ,cACvC,OAAOC,IAAa,IAAiBA,IAAa,IAEtD8zF,gBAAiB,WACb,IAAI9zF,EAAWvhL,KAAKwxL,mBAAmBlQ,cACvC,OAAOC,IAAa,IAAkBA,IAAa,IAEvD6tF,sBAAuB,WACnB,OAAOpvQ,KAAKq1Q,mBAAqBr1Q,KAAK4Y,OAAO,sCAEjDw6P,uBAAwB,SAASv7M,EAAOswB,GACpC,IAAIoyF,EAAkB1iH,EAAM//C,KAAK0yP,IAA+BpsQ,OAAO,YACvE,OAAO+pF,EAASoyF,EAAgBxiK,OAASwiK,EAAgBhwG,SAE7DkjM,wBAAyB,SAAS52P,GAC9B,IAAIujC,EAAWp6C,KAAK4Y,OAAO,aAAe,EAC1C/B,EAAS66C,KAAK,WAAY,eAAUtX,GAAYA,EAAW,IAE/Dg4N,SAAU,SAASxqM,GACf,GAAI5nE,KAAK+rQ,cAAgBnkM,EAAc,CACnC,IAAI6vB,EAAiBz3F,KAAKiY,gBAAgBy/E,oBACtCn9E,EAASva,KAAKs9D,mBAAmBC,kBAAkB,MAAM,GAAMqK,EAAaryD,aAC5E6tD,EAAoB7oD,GAAUA,EAAOuE,MAAQ9e,KAAK+2Q,2BAA2Bx8P,GAAUva,KAAKs9D,mBAAmB+F,uBAC/G7I,EAAWoN,EAAapN,UAAY,EAAIoN,EAAapN,SAAWi9B,GAAkB,EAClFliF,EAAcqyD,EAAaryD,aAAe,EAAIqyD,EAAaryD,YAAc6tD,GAAqB,EAClG,OAAOpjE,KAAK+rQ,aAAapkM,QAAQ,CAC7BnN,SAAUA,EACVjlD,YAAaA,MAIzBs9P,aAAc,SAASz1M,GACnB,IAAIhgD,EAAWpd,KAAKqd,QAAQ,YACxBm9C,EAAWp9C,EAASq9C,YAAY2C,GAIpC,OAHI5C,GAAY,IACZA,GAAYx6D,KAAKiY,gBAAgBy/E,qBAE9Bl9B,GAEXi8M,YAAa,SAASr5M,GAClB,IAAIlgD,EAAMkgD,GAAQA,EAAK1/D,IAAI,GAC3B,OAAOwf,IAAQ,SAAWA,EAAI+9C,MAAMuL,SAAWpJ,EAAKnG,SAASj3D,KAAK4X,gBAAgBuyP,MAAwB3hD,GAAYprJ,KAAUA,EAAKnG,SAASj3D,KAAK4X,gBAAgB,OAEvKo8P,wBAAyB,WACrB,MAAO,cAAgBh0Q,KAAK4Y,OAAO,sCAEvCw/P,oBAAqB,WACjB,OAAOp4Q,KAAK4Y,OAAO,gCAEvB62P,uBAAwB,SAAS30Q,GAC7B,IAAI00Q,EACJ,OAAQ10Q,GACJ,IAAK,UACD00Q,EAAgB,UAChB,MACJ,IAAK,YACDA,EAAgB,UAChB,MACJ,IAAK,YACDA,EAAgBxvQ,KAAK4Y,OAAO,cAAgB,YAAc,gBAC1D,MACJ,IAAK,aACD42P,EAAgBxvQ,KAAK4Y,OAAO,cAAgB,gBAAkB,YAEtE,OAAO42P,GAEXlE,oBAAqB,WACjB,IAAIp4K,EAAgBlzF,KAAK4Y,OAAO,kBAChC,MAAO,YAAcs6E,GAAiB,aAAeA,GAEzDm9K,oBAAqB,WACjB,OAAOrwQ,KAAKsrQ,uBAAyB,OAAcjsP,sBAAsBrf,OAE7E4vQ,uBAAwB,WACpB,MAAO,YAAc5vQ,KAAK4Y,OAAO,kCAErC03P,UAAW,SAAS3zP,EAAMC,EAAK49C,EAAUzwD,GACrC,IAAIpG,EAAO3D,KACPg9F,EAAah9F,KAAKqd,QAAQ,YAAY6gF,gBAO1C,OANIv6F,EAAKgoQ,sBACL3uK,EAAWlzF,GAAG,UAAU,SAAU80F,IAC9B5B,EAAW/rC,IAAI,SAAU2tC,GACzBl/D,WAAW/7B,EAAKwzQ,wBAAwB37P,KAAK7X,EAAM62D,EAAUzwD,OAG9DizF,EAAW4/F,SAAS,CACvBjgL,KAAMA,EACNC,IAAKA,KAGbq4P,kBAAmB,SAASv9P,GACxB,IAAIqiQ,EAAY,eAAEriQ,GAASyG,QAAQ,IAAMne,KAAK4X,gBAAgB,KAC9D,OAAOmiQ,EAAUngR,QAAUoG,KAAKyyD,oBAAoBsnN,IAExD5E,oBAAqB,SAASz9P,GAC1B,IAAIsiQ,EAAoB,eAAEtiQ,GAASyG,QAAQ,IAAM,IACjD,OAAO67P,EAAkBpgR,QAAUoG,KAAKyyD,oBAAoBunN,IAEhEC,+BAAgC,SAASxF,IAChCz0Q,KAAKi1Q,kBAAkBR,IAAcA,GACtCz0Q,KAAKytQ,wBAAwBgH,IAGrCvD,gCAAiC,SAASh7P,EAAQu0C,GAC9C,GAAIzqD,KAAKm1Q,oBAAoBj/P,GAAS,CAClClW,KAAK0yQ,2BAA2B,eAAEx8P,GAASu0C,GAC3C,IAAIgqN,EAAYz0Q,KAAK8vQ,aAAarlN,EAAW,OAE7C,OADAzqD,KAAKi6Q,+BAA+BxF,IAC7B,EAEX,OAAO,GAEX/D,gBAAiB,SAASx6P,GACtB,OAAO,eAAEA,GAAQtoB,GAAG,MAAQ,MAAQ,QAExCyhR,sBAAuB,WACnB,OAAOrvQ,KAAKovQ,yBAA2BpvQ,KAAK0rQ,qBAEhDqG,uBAAwB,WACpB,OAAO/xQ,KAAKs9D,mBAAmBC,kBAAkB,MAAM,GAAM3jE,QAEjE6+Q,aAAc,SAAS7wM,EAAc0wM,GACjC,IAAI/iQ,EAAcqyD,EAAaryD,YAC3B+hQ,EAAsBt3Q,KAAK+xQ,yBAC/B,OAAOuG,EAAsB/iQ,GAAe,GAAKA,GAAe+hQ,EAAsB,EAAI/hQ,EAAc,GAAKA,EAAc+hQ,EAAsB,GAErJ9E,0BAA2B,SAASt8P,GAChC,IAEI2hD,EAFA46M,EAAczyQ,KAAK0wQ,gBAAgBx6P,GACnCi1D,EAAiB,eAAEj1D,GAOvB,OAJI2hD,EADA,SAAW46M,EACHtnM,EAAehtD,QAAQ,IAAIwJ,OAAO,GAAW,UAE7CwjD,EAAenT,WAAW4I,IAAI,IAAM,IAAsB2J,QAE/D1S,GAEX01M,oBAAqB,WACjB,IAAInwP,EAAWpd,KAAKqd,QAAQ,YAC5B,OAAOD,GAAYA,EAAS1F,WAEhC+zD,kBAAmB,WACf,OAAOzrE,KAAK4Y,OAAO,+BAEvBshQ,iCAAkC,SAAS1/M,EAAUjlD,GACjD,GAAIvV,KAAK4rQ,sBAAuB,CAC5B,IAAIuO,EAAan6Q,KAAK4rQ,sBAAsBpxM,WAAaA,GAAYx6D,KAAK4rQ,sBAAsBr2P,cAAgBA,EAEhH,OADAvV,KAAK4rQ,sBAAwB,KACtBuO,IAGfC,sBAAuB,WACnB,IAAIp3L,EAAiBhjF,KAAKiY,gBACtB89E,EAAkB/1F,KAAKuvQ,qBACvBv7K,EAAehR,EAAez4E,QAC9B8vQ,EAAmBrmL,EAAap6F,OAASo6F,EAAap6F,OAAS,GAAK,EACpE69F,EAAiBzU,EAAe0U,oBACpC2iL,GAAoB,GAAKtkL,EAAkBskL,GAAoBr6Q,KAAKs1Q,mBAAmB+E,EAAmB5iL,MAGvG6iL,GAA2B,CAClC38Q,eAAgB,WACZ,MAAO,CACHyhQ,6BAA6B,EAC7BrpN,mBAAoB,CAChBl9B,SAAS,EACTwyC,eAAgB,YAChBC,kBAAmB,OACnBF,gBAAgB,KAI5BoK,YAAa,CACTzf,mBAAoBw1N,IAExB31M,UAAW,CACPF,MAAO,CACHt4C,SAAU,CACNw9C,UAAW,SAASh3D,GAChB,IAAIskL,EAAeloL,KAAK2xD,cAAc,WAAWqzH,kBAC7Cx5G,EAAqBxrE,KAAK2xD,cAAc,sBACxC8Z,EAAoBD,EAAmBC,oBACvCy8G,IAAiBtkL,EAAE42D,UACnBgR,EAAmB4iM,mBAEvB,IAAImM,GAAkCrP,OAAez/L,IAAsBzrE,KAAK4Y,OAAO,qBACnF2hQ,GACAv6Q,KAAKw6Q,gCAAgC52Q,GAAI6nE,GAE7CzrE,KAAKC,SAASnB,MAAMkB,KAAME,YAE9Bs6Q,gCAAiC,SAAS52Q,EAAGo6F,GACzC,IAAIt0B,EAAgB9lE,EAAEouD,MAAM0X,cAC5B,GAAIA,EAAe,CACf,IAAI8B,EAAqBxrE,KAAK2xD,cAAc,sBACxCkG,EAAQ,eAAE6R,EAAcxzD,QACxBX,EAAcvV,KAAK6kE,aAAahN,GAChCt9C,EAASva,KAAK2xD,cAAc,WAAW4L,oBAAoBhoD,GAC3D2H,EAAMld,KAAK2xD,cAAc,QAAQpnD,QAAQ3G,EAAE42D,UAC/C,GAAIgR,EAAmBmtM,gBAAgBz7P,EAAK3C,IAAWyjF,EAAO,CAC1D,IAAI+M,EAAY,gBAAYrhC,EAAe,CACvCrP,cAAeqP,EAAcxzD,SAEjCs1D,EAAmBqiM,qBAAqB9iK,MAIpDmsK,iBAAkB,SAASvmM,GACvB,IACI/b,cAAeA,EACf89L,gBAAiBA,GACjB,OAAS/hL,QAAU,IAAWA,EAASA,EAAS,GAChDnF,EAAqBxrE,KAAK2xD,cAAc,sBACxC8pD,EAAmBz7G,KAAK0X,UACxB+jG,IAAqB,gBAAQA,IAC7BA,EAAiB/pD,KAAK,WAAY,MAEtCghM,GAAmBlnL,EAAmB4uM,wBACtC,IAAI5/M,EAAWgR,EAAmB+jM,uBAC7B,eAAU/0M,IAAaA,EAAW,KACnCA,EAAW,GAEf,IAAIigN,EAAez6Q,KAAK8mE,gBAAgBtM,GACpCgR,EAAmBC,qBAAuBgvM,EAAa7gR,QACvDoG,KAAK06Q,2BAA2BD,EAAc7lN,IAGtD8lN,2BAA4B,SAASD,GACjC,IAAIjvM,EAAqBxrE,KAAK2xD,cAAc,sBACxCyL,EAAOq9M,EAAaj+P,GAAG,GAAG4C,SAC9B,GAAI,GAAWg+C,GACXoO,EAAmBiiM,wBAAwBrwM,OACxC,CACH,IAAI7nD,EAAci2D,EAAmBomM,mBAChC,eAAUr8P,IAAgBA,EAAc,KACzCA,EAAc,GAElBvV,KAAK26Q,2BAA2BF,EAAcllQ,KAGtDolQ,2BAA4B,SAASF,EAAcllQ,GAC/C,IAAIi2D,EAAqBxrE,KAAK2xD,cAAc,sBACxCipN,EAAqBH,EAAeA,EAAa7gR,QAAU,EAC3DihR,EAAqB,SAAShjN,GAC9B,IAAIijN,EAAqBtvM,EAAmB2pM,oBAAoBt9M,GAC5DkjN,EAAcvvM,EAAmBgpM,aAAa38M,GAClD,IAAKijN,GAAsBC,GAAehQ,GAAclzM,GAGpD,OAFA2T,EAAmBiiM,wBAAwB51M,GAC3C2T,EAAmB4iM,oBACZ,GAGXv2M,EAAQ4iN,EAAar8Q,OAAO,mBAAmBupB,OAAOpS,EAAc,EAAG,OAC3E,GAAIsiD,EAAMj+D,OACNihR,EAAmBhjN,OAChB,CACC+iN,GAAsBrlQ,IACtBA,EAAcqlQ,EAAqB,GAEvC,IAAK,IAAIn/Q,EAAI8Z,EAAa9Z,EAAIm/Q,IAAsBn/Q,EAChD,GAAIo/Q,EAAmB,eAAEJ,EAAah/Q,KAClC,QAKhB0jE,uBAAwB,SAAS5d,GAC7BvhD,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAKg7Q,qBAAqBz5N,IAE9B,qBAAqBA,GACjB,IACI6kC,eAAgBA,EAChBltC,mBAAoBA,GACpB,OAASqI,QAAU,IAAWA,EAASA,EAAS,IAEhD+kC,WAAYA,EACZp6B,SAAUA,GACV,OAASk6B,QAAkB,IAAWA,EAAiBA,EAAiB,GAC5E,IAAK7kC,IAAWrI,GAAsBotC,GAAcp6B,EAAU,CAC1D,IAAI0I,EAAgBy2M,GAAoBrrQ,MACxCA,KAAKk3Q,iBAAiB,CAClBtiN,cAAeA,EACf89L,gBAAiBxmM,MAI7BuH,YAAa,SAASlS,GAClBvhD,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAKg7Q,qBAAqBz5N,IAE9BsxI,kBAAmB,SAASh7H,GACxB,IAAIugJ,EAAiBp4M,KAAKi7Q,mBAAmBpjN,GACzC2T,EAAqBxrE,KAAK2xD,cAAc,sBACxC+9M,EAA0BlkM,GAAsBA,EAAmB6jM,wBACnEj3D,GAAkBs3D,GAClB1vQ,KAAKk7Q,6BAA6B9iE,GAEtCp4M,KAAKC,SAASnB,MAAMkB,KAAME,YAE9Bg7Q,6BAA8B,SAAS9iE,GACnC,CAAC,YAAa,WAAWl3M,SAAQ,SAAUqY,GACvC,IAAI4hQ,EAAqB/iE,EAAehxG,iBAAiB7tF,GACzD6+L,EAAejgD,mBAAmB5+I,EAAS3V,IACvC,IAAIw3Q,EAAmB,SAAWhjE,EAAevlE,SAASnhF,KAAK,iBAC/D,GAAI0pN,EACA,OAAOD,GAAsBA,EAAmB/kQ,KAAKgiM,EAAgBx0M,QAIjFw0M,EAAejgD,mBAAmB,YAAa,QAC/CigD,EAAejgD,mBAAmB,aAAc,QAChD,IAAIkjH,EAAoBjjE,EAAe7lJ,OAAS+3M,IAAuBlyD,EAAex/L,OAAO,mBACzFyiQ,GACAjjE,EAAejgD,mBAAmB,QAAS,SAGnD8iH,mBAAoB,SAASpjN,GACzB,IAAI2gE,EAAU3gE,EAAM//C,KAAK,kBAAkB0E,GAAG,GAC9C,OAAO,OAAc5F,kBAAkB4hH,MAInDhjE,YAAa,CACT5gB,QAAS,CACL09I,SAAU,SAAS93H,EAAUjlD,GACzB,IAAIi2D,EAAqBxrE,KAAK2xD,cAAc,sBAC5C,GAAI6Z,EAAmB0uM,iCAAiC1/M,EAAUjlD,GAC9D,OAAO,EAEX,IAAIumF,EAAgB97F,KAAKC,SAASu6D,EAAUjlD,GAI5C,OAHIumF,GACAtwB,EAAmBqgM,mBAEhB/vK,GAEX/5C,QAAS,SAASyY,GACd,IAAIgR,EAAqBxrE,KAAK2xD,cAAc,sBACxC+mN,EAAqBltM,EAAmB/E,wBACxClsD,EAASva,KAAKs9D,mBAAmBC,oBAAoBm7M,IACrDn+P,GAAUA,EAAO9b,MAAQuB,KAAK4Y,OAAO,kBAAoB,KACzD4yD,EAAmB6hM,oBAEvBrtQ,KAAKC,SAASu6D,IAElB/Y,OAAQ,SAASklI,GACb,IAAIn7G,EAAqBxrE,KAAK2xD,cAAc,sBAG5C,OAFA6Z,EAAmBqgM,mBACnBrgM,EAAmB4iM,mBACZpuQ,KAAKC,SAASnB,MAAMkB,KAAME,YAErCyjL,oBAAqB,SAASnpH,GAC1B,IAAI8gN,EAA+Bt7Q,KAAK2xD,cAAc,sBAClDkG,EAAQ73D,KAAKC,SAASu6D,GAC1B,GAAI8gN,EAA6B7vM,qBAAuB6vM,EAA6B3P,qBAAqBnxM,WAAaA,EAAU,CAC7H,IAAI8xM,EAAegP,EAA6B/O,kBAC5CtB,GAAiBqB,KAAkBA,EAAar1M,SAAS,MACzDY,EAAQy0M,GAGhB,OAAOz0M,GAEXizH,4BAA6B,WACzB9qL,KAAKwyL,gBAAgBn0K,KAAK,KACtB,IAAI03B,EAAqB/1C,KAAK2xD,cAAc,sBAC5C5b,EAAmB+kI,kBAG3BrqH,KAAM,WACFzwD,KAAKC,WACLD,KAAKu7Q,8BAAgCv7Q,KAAK2xD,cAAc,uBAE5D6gI,cAAe,WACX,IAAIz8I,EAAqB/1C,KAAKu7Q,8BAC9BxlO,EAAmB21N,qBAAsB,EACzC,IAAIzsQ,EAASe,KAAKC,SAASnB,MAAMkB,KAAME,WAEvC,OADA61C,EAAmB+kI,eACZ77K,GAEX+pL,mBAAoB,WAChBhpL,KAAKu7Q,8BAA8BzP,eAAgB,EACnD9rQ,KAAKC,SAASnB,MAAMkB,KAAME,YAE9B+oL,gBAAiB,WACb,IAAIlzI,EAAqB/1C,KAAK2xD,cAAc,sBACxCpR,EAASvgD,KAAKC,SAASnB,MAAMkB,KAAME,WACvC,GAAIqgD,IAAWxK,EAAmBg3N,aAAc,CAC5C,IAAIl1M,EAAQ9hB,EAAmBw2N,kBAC/Bx2N,EAAmB6+N,OAAO/8M,GAAO,GAErC,OAAOtX,IAGfn8C,KAAM,CACFkzF,mBAAoB,SAASkkL,GACzB,IAAI73Q,EAAO3D,KACPs7Q,EAA+B33Q,EAAKguD,cAAc,sBAClDuwD,EAAgBv+G,EAAKguD,cAAc,iBACnC0mN,EAAsBiD,EAA6B3P,qBAEvD,GADAhoQ,EAAK1D,SAASnB,MAAM6E,EAAMzD,WACtBm4Q,GAAuBA,EAAoB79M,UAAY,EAAG,CAC1D,IAAIihN,EAA4BD,EAAsBnD,EAAoB79M,UACtEihN,IACApD,EAAoB79M,UAAYihN,EAChCv5J,EAAcw5D,aAI1Bi8F,eAAgB,WACZ,IAAI14Q,EAASe,KAAKuK,QAAQ3Q,OAAS,EAC/By9N,EAAoBr3N,KAAKq3N,oBAC7B,GAAIA,EAAmB,CACnB,IAAI5/H,EAAiBz3F,KAAK03F,oBAC1Bz4F,GAAUw4F,EAAiB4/H,EAAkBllM,IAEjD,OAAOlzB,IAGfy8Q,gBAAiB,CACbC,uBAAwB,SAASxrQ,GAC7B,IACIk5D,SAAUA,EACVhR,OAAQA,EACRoqM,gBAAiBA,GACjBtyP,EACJnQ,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BmpE,IAAauhM,KAAwBnI,GAAmBpqM,EAAO8pG,KAAK,CAACpjK,EAAG6/D,KACpE,IAAI/G,EAAQ,eAAE+G,GACdusM,GAAkBtzM,IAAUA,EAAMnG,KAAK,WAAY,MAG3DkqN,uBAAwB,SAAShrQ,GAC7B,IACIy4D,SAAUA,EACVxR,MAAOA,EACP4qM,gBAAiBA,GACjB7xP,EACJ5Q,KAAKC,SAASnB,MAAMkB,KAAME,WACtBmpE,IAAauhM,KAAwBnI,GAAmB0I,GAAkBtzM,IAC1EA,EAAMuG,WAAW,iBCj8DzC,SAASy9M,GAAiBpgR,EAAGwuC,EAAOnX,EAAM9pB,GACtC,IAAI0C,EAAI,EACR,GAAIjQ,EAAIwuC,EACJ,KAAOv+B,EAAIonB,EAAKvoB,MAAM3Q,OAAQ8R,IAC1BmwQ,GAAiBpgR,EAAI,EAAGwuC,EAAOnX,EAAKvoB,MAAMmB,GAAI1C,GAGlDvN,IAAMwuC,GACNjhC,EAAS8pB,GAIjB,SAASh3B,GAAIksB,EAAOhf,GAChB,IAAIvN,EACJ,GAAI,QAASusB,EACT,OAAOA,EAAMlsB,IAAIkN,GAErB,IAAI/J,EAAS,IAAIJ,MAAMmpB,EAAMpuB,QAC7B,IAAK6B,KAAKusB,EACN/oB,EAAOxD,GAAKuN,EAASgf,EAAMvsB,GAAIA,GAEnC,OAAOwD,EAGX,SAAS,GAAQgU,GACb,OAAOA,IAAMA,GAAK,KAAOA,GAAK,OAASA,QAAK,IAAWA,EAG3D,SAAS6oQ,GAAQC,GACb,OAAOA,IAAe,kBAAY3pQ,MAGtC,SAAS4pQ,GAAmBC,GACxB,IAAIzkQ,EAAW,gBAAcykQ,EAAUzkQ,UACnC2yC,IAAkB,oBAAqB8xN,IAAYA,EAAU9xN,gBAC7D4xN,EAAaE,EAAUF,WAC3B,GAAI,kBAAoBA,IACpBA,EAAa,kBAAYA,IACpBA,GACD,MAAMl4Q,GAAA,KAAO6nB,MAAM,QAASuwP,EAAUF,YAG9C,MAAO,CACHvkQ,SAAUA,EACVukQ,WAAYA,EACZ5xN,gBAAiBA,GCvDzB,EAASiM,eAAe,qBAAsBkkN,ID0D/B,cAAMvqN,QAAQ,CACzBE,KAAM,SAASn6C,GACX9V,KAAKs+B,MAAQxoB,EAAQ1R,KACrBpE,KAAKk8Q,YAAcpmQ,EAAQ+tH,YAAc,EACzC7jI,KAAKm8Q,iBAAmBrgR,GAAIga,EAAQsmQ,iBAAmB,GAAIJ,IAC3Dh8Q,KAAKq8Q,iBAAmBvgR,GAAIga,EAAQwmQ,iBAAmB,GAAIN,IAC3Dh8Q,KAAKu8Q,QAAU,IAEnBphG,UAAW,WACHn7K,KAAKm8Q,iBAAiBviR,QACtBoG,KAAKw8Q,iBAAiB,EAAG,CACrBjyQ,MAAOvK,KAAKs+B,QAGhBt+B,KAAKq8Q,iBAAiBziR,QAAUoG,KAAKk8Q,YAAc,GACnDl8Q,KAAKy8Q,iBAAiB,CAClBlyQ,MAAOvK,KAAKs+B,SAIxB89O,gBAAiB,WACb,OAAOp8Q,KAAKu8Q,SAEhBG,WAAY,SAASC,EAAYv4Q,EAAM4U,GAEnC,IADA,IAAIpf,EAASwK,EAAKmG,MAAQnG,EAAKmG,MAAM3Q,OAAS,EACrC6B,EAAI,EAAGA,EAAIkhR,EAAW/iR,OAAQ6B,IACnC,GAAIqgR,GAAQa,EAAWlhR,GAAGsgR,YACtB/iQ,EAAUvd,IAAMud,EAAUvd,IAAM,GAAK7B,OAGzC,IAAK,IAAI8R,EAAI,EAAGA,EAAI9R,EAAQ8R,IACxB1L,KAAK48Q,YAAYnhR,EAAGkhR,EAAWlhR,GAAIud,EAAW5U,EAAKmG,MAAMmB,KAIrE8wQ,iBAAkB,SAASxtP,EAAO5qB,GAI9B,GAHI,IAAM4qB,IACNhvB,KAAKu8Q,QAAUv8Q,KAAK68Q,MAAM78Q,KAAKm8Q,mBAE/BntP,IAAUhvB,KAAKk8Q,YACfl8Q,KAAK08Q,WAAW18Q,KAAKm8Q,iBAAkB/3Q,EAAMpE,KAAKu8Q,cAElD,IAAK,IAAI9gR,EAAI,EAAGA,EAAI2I,EAAKmG,MAAM3Q,OAAQ6B,IACnCuE,KAAKw8Q,iBAAiBxtP,EAAQ,EAAG5qB,EAAKmG,MAAM9O,IAGhD,IAAMuzB,IACNhvB,KAAKu8Q,QAAUv8Q,KAAK88Q,UAAU98Q,KAAKm8Q,iBAAkBn8Q,KAAKu8Q,WAGlEE,iBAAkB,SAAS3pP,GACvB,IAAIiqP,EAAW/8Q,KAAKk8Q,YAChBzgC,EAAeshC,EAAW,EAC1BC,EAASh9Q,KAAK68Q,MAAMrhQ,KAAKxb,KAAMA,KAAKq8Q,kBACpCY,EAASj9Q,KAAK08Q,WAAWlhQ,KAAKxb,KAAMA,KAAKq8Q,kBACzCa,EAAal9Q,KAAK88Q,UAAUthQ,KAAKxb,KAAMA,KAAKq8Q,kBAEhD,SAASN,EAAW9yK,GAChBA,EAAK0zK,WAAaK,EAAOvhC,EAAe,GACpCA,IAAiBshC,EACjBE,EAAOh0K,EAAMA,EAAK0zK,YAElBd,GAAiBpgC,EAAcshC,EAAU9zK,GAAM,SAAUk0K,GACrDF,EAAOE,EAAWl0K,EAAK0zK,eAG/B1zK,EAAK0zK,WAAaO,EAAWj0K,EAAK0zK,YAEtC,QAASlhC,EAAe,EACpBogC,GAAiB,EAAGpgC,EAAc3oN,EAAMipP,IAGhDc,MAAO,SAASF,EAAYj/N,GACxB,OAAO5hD,GAAI6gR,GAAY,SAAUV,GAC7B,IAAIF,EAAaE,EAAUF,WACvBqB,EAAO,SAAUrB,EAAa,eAAWA,EAAWqB,MAAQrB,EAAWqB,KAAK1/N,GAAcq+N,EAAWqB,KAAOC,IAChH,OAAOD,MAGfR,YAAa,SAASU,EAAgBrB,EAAW/vF,EAASriL,GACtD,IAAIhI,EAAQo6Q,EAAUzkQ,SAAS3N,GAC3BkyQ,EAAaE,EAAUF,WACvB5xN,EAAkB8xN,EAAU9xN,gBAC5BA,GAAmB,GAAQtoD,KAG3BqqL,EAAQoxF,KAAoBpxF,EAAQoxF,GACpCpxF,EAAQoxF,GAAkBz7Q,EAE1BqqL,EAAQoxF,GAAkBvB,EAAW3qI,KAAK86C,EAAQoxF,GAAiBz7Q,KAG3Ei7Q,UAAW,SAASH,EAAYzwF,GAC5B,OAAOpwL,GAAI6gR,GAAY,SAAUV,EAAW76Q,GACxC,IAAIm8Q,EAAMtB,EAAUF,WAAWyB,SAC/B,OAAOD,EAAMA,EAAIrxF,EAAQ9qL,IAAU8qL,EAAQ9qL,SE3HnDq8Q,GAA8B,2BAC9BC,GAA8B,2BAC9BC,GAA8B,2BAC9BC,GAA8B,2BAC9BC,GAAoC,iCACpCC,GAAwB,qBACxBC,GAA4B,gBAC5BC,GAAiC,cACjCC,GAAiC,cAC1BC,GAAoB,SAASljN,EAAMllD,GAC1C,IAAI+hD,EAAQ,eAAEmD,GACVzgD,EAASzE,EAAQyE,OACjBU,EAAenF,EAAQmF,aACvBkjQ,EAAgB,GACpB,IAAK5jQ,EAAOsE,SAAW5D,EAAc,CACjC,IAAK,IAAIxf,EAAI,EAAGA,EAAIwf,EAAarhB,OAAQ6B,IAAK,CAC1C,IAAI6a,EAAc2E,EAAaxf,GAC/B0iR,EAAcl7Q,KAAK,eAAE,SAASwZ,IAAI,YAAanG,EAAYlL,WAAamP,EAAOnP,WAAW+M,SAASulQ,IAA6BvlQ,SAASwlQ,IAA6BxlQ,SAAS7B,EAAYslC,UAAU2Y,YAAYspN,GAAmC,UAAY/nQ,EAAQ6E,SAASpe,KAAK,EAAS8Z,eAAeC,EAAaR,EAAQS,gBAEvUshD,EAAM99B,OAAOokP,KAGjBC,GAAwB,SAASz6Q,EAAMmS,GACvC,IAAIS,EAAe5S,EAAKiV,OAAO,kBAAoB,GACnD,MAAO,CACH02C,UAAWx5C,EAAQoH,IACnBjC,aAAcnF,EAAQoH,IAAI65E,aAAajhF,EAAQP,aAC/CgB,aAAcA,IAGlB8nQ,GAAqB,SAASj6Q,GAC9B,OAAOA,EAAK81C,SAAW91C,EAAKu4Q,YAAc,IAE1CxtN,GAA0B,SAASxrD,GACnC,OAAOA,EAAKiV,OAAO,oCAEZ0lQ,GAAa3iN,GAAY5L,QAAQ,CACxCiS,SAAU,WACN,OAAOhiE,KAAKiY,gBAAgBsmQ,eAEhCh7M,gBAAiB,SAASztD,GACtB,OAAO,OAAArb,EAAA,WAAOuF,KAAKC,SAAS6V,GAAUsoQ,GAAsBp+Q,KAAM8V,KAEtE4tD,mBAAoB,SAAS7L,EAAO/hD,GAChCooQ,GAAkBrmN,EAAO/hD,GACzB9V,KAAKC,SAASnB,MAAMkB,KAAME,YAE9BuzD,YAAa,SAASlS,GAClB,IAAIi9N,GAAuB,EACvBlvN,EAAYtvD,KAAKiY,gBAAgBsmQ,cAAc,GAC9Ch9N,GAAWA,EAAO0gB,gBACnBjiE,KAAK0X,UAAU06C,QAAQj6C,SAASslQ,IAA6BlpN,YAAYupN,IAAwB99Q,KAAK4Y,OAAO,oBAC7G4lQ,GAAuB,GAEvBlvN,GAAaA,EAAUynC,cAAgBznC,EAAUynC,aAAan9F,SAC9DoG,KAAK6lE,eAAe7lE,KAAK4hE,aAAa,CAClCrgB,OAAQA,IACRA,GACJi9N,GAAwBx+Q,KAAKwlE,8BAGrCK,eAAgB,SAAS44M,EAAWl9N,GAChC,IAAIA,GAAU,WAAaA,EAAOsgB,aAActgB,EAAO0gB,cAKnD,OAAOjiE,KAAKC,SAASnB,MAAMkB,KAAME,WAJjC,IAAIk9D,EAAOp9D,KAAK+kE,kBAAkBjtD,KAAK,WACnC4mQ,EAAUD,EAAU3mQ,KAAK,WAC7B9X,KAAK4iE,aAAaxF,EAAMshN,EAASn9N,EAAO0gB,cAAc,KAK9DrH,UAAW,SAASh3D,GAChB,IAAIiG,EAAO7J,KAAKiY,gBAAgBsmQ,cAAc36Q,EAAE42D,WAAa,GAC7Dx6D,KAAKkyD,cAAc,aAAc,OAAAz3D,EAAA,WAAO,GAAImJ,EAAGiG,KAEnD26D,qBAAsB,SAAS5gE,GAC3B,IAAI6gE,EAAc7gE,EAAE6gE,YAChB7gE,EAAEs+D,YAAYxsB,WAGd+uB,EAAYp5D,OAASo5D,EAAYjI,eACjCx8D,KAAKC,SAAS2D,IAGtB2hE,mBAAoB,SAAS3hE,GACzB,IAAIi+D,EAAaj+D,EAAEi+D,WACf,WAAaj+D,EAAEi+D,YAAcj+D,EAAEs1C,mBAC1Bt1C,EAAE+6Q,mBAEI/6Q,EAAE+6Q,mBAAmB/kR,QAC5BoG,KAAK+H,OAAO,KAAM,CACd85D,WAAY,SACZI,cAAe,CAACr+D,EAAE+6Q,sBAJtB3+Q,KAAK+H,SAOF,YAAc85D,GAAc,WAAaA,GAAc,YAAcA,GAC5E7hE,KAAK+H,UAGb00D,WAAY,SAASv/C,GACjB,IAAIkgD,EAAOp9D,KAAKC,SAASnB,MAAMkB,KAAME,WAIrC,OAHIgd,EAAIvC,UAAYsjQ,IAChB7gN,EAAKjlD,SAAS4lQ,IAEX3gN,GAEXmT,UAAW,WACP,OAAOvwE,KAAK+zD,oBAEhB/7C,UAAW,WACP,QAAShY,KAAKiY,gBAAgBsmQ,cAAc3kR,UAGhDglR,GAAmC,CACnCnuN,KAAM,WACFzwD,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAKm8Q,iBAAmB,GACxBn8Q,KAAK6+Q,eAAiB,QAE1BC,cAAe,SAASD,GACpB,IAAK3+Q,UAAUtG,OACX,OAAOoG,KAAK6+Q,eAEZ,eAAWA,KACX7+Q,KAAK6+Q,eAAiBA,IAG9B3kO,QAAS,SAAS6kO,GACd,IAAK7+Q,UAAUtG,OACX,OAAOoG,KAAK6+Q,iBAEhB7+Q,KAAK6+Q,eAAiB,WAClB,OAAOE,IAGf3C,gBAAiB,WACb,OAAOp8Q,KAAKm8Q,kBAEhBr3I,iCAAkC,WAC9B,IAAI5qF,EAAUl6C,KAAKk6C,UACf8kO,EAAmB9kO,GAAWA,EAAQ+kO,eAC1C,OAAOD,GAAoBA,EAAiBplR,QAEhDmrI,wBAAyB,SAASx6H,EAAOuzH,EAAQiF,GAC7C,IAAIm8I,EAAe,QAAYv9I,gBAAgB,gBAAUp3H,GAAQuzH,GAAQvuD,UACrEtwE,EAAS,GAmBb,OAlBA8jI,EAAM7hI,SAAQ,SAAU84E,IAClB,SAASmlM,EAAarhJ,EAAQ73C,EAAYj9E,EAAUgxE,GAClDA,EAAOA,GAAQ,GACf,IAAK,IAAIv+E,EAAI,EAAGA,EAAIqiI,EAAOlkI,OAAQ6B,IAC/Bu+E,EAAK/2E,KAAK66H,EAAOriI,GAAGX,KAChB,IAAMmrF,EACNj9E,EAASgxE,EAAM8jD,EAAOriI,GAAG8O,OAEzB40Q,EAAarhJ,EAAOriI,GAAG8O,MAAO07E,EAAa,EAAGj9E,EAAUgxE,GAE5DA,EAAK72D,MATX,CAWA+7P,EAAcphJ,EAAOlkI,QAAQ,SAAUwlR,EAAW70Q,GAC5CyvE,EAAKroE,aAAeytQ,EAAUztQ,aAC9B1S,EAASA,EAAO0oB,OAAOpd,UAI5BtL,IAGXogR,GAAyC,WACzC,IAAIC,EAAsB,SAAS37Q,EAAMu2C,EAAS91C,EAAMy/H,GACpD,IAAI07I,EACJ,GAAIpwN,GAAwBxrD,GAAO,CAC/B,IAAIi4F,EAAoBj4F,EAAKguD,cAAc,WAC3C,GAAIiqC,EAAmB,CACnB,IAAI4jL,EAAe5jL,EAAkBymF,kBACjCm9F,EAAa5lR,SACbwK,EAAO,SAASq7Q,EAAer7Q,EAAMo7Q,EAAc37I,GAC/C,OAAIA,EACO47I,EAAer7Q,EAAMo7Q,EAAa1jR,IAAI+N,IAAQ,CACjDU,MAAO,CAACV,KACRg6H,EAAa,IAEdz/H,EAAKujB,OAAO63P,GANhB,CAOLp7Q,EAAMo7Q,EAAc37I,IAE1B,IAAI67I,EAAc9jL,EAAkB0mF,iBAChCo9F,EAAY9lR,SACZwK,EAAO,SAASu7Q,EAAiBv7Q,EAAMs7Q,EAAa77I,GAChD,OAAIA,EACOz/H,EAAKtI,IAAIsI,IACZ,IAAIw7Q,EAAc,GACdC,EAAeF,EAAiBv7Q,EAAKmG,OAAS,GAAIm1Q,EAAa77I,EAAa,GAOhF,OANArmI,OAAOC,eAAemiR,EAAa,aAAc,CAC7CliR,IAAK,IAAM0G,EAAKu4Q,WAChB5jP,IAAKl3B,IACDuC,EAAKu4Q,WAAa96Q,KAGnB,OAAApH,EAAA,WAAOmlR,EAAax7Q,EAAM,CAC7BmG,MAAOs1Q,MAIZz7Q,EAAKhG,OAAOgG,GAAQs7Q,EAAYphR,QAAQ8F,GAAQ,GAhBpD,CAiBLA,EAAMs7Q,EAAa77I,KAajC,OATI3pF,IACAqlO,EAAa,IAAI,GAAoB,CACjCnD,gBAAiBliO,EAAQkiO,gBACzBE,gBAAiBpiO,EAAQoiO,gBACzBl4Q,KAAMA,EACNy/H,WAAYA,IAEhB07I,EAAWpkG,aAERokG,EAAaA,EAAWnD,kBAAoB,IAEnD0D,EAAsB,SAAS17Q,EAAMmT,EAAO2iC,GAC5C,IAAI+kO,EAAe/kO,GAAWA,EAAQ+kO,cAAgB/kO,EAAQ+kO,eAC9D,OAAIA,GAAgBA,EAAarlR,OACtB,SAASmmR,EAAwBx1Q,EAAOuzH,EAAQmhJ,GACnD,IAAK10Q,IAAUuzH,EAAOlkI,OAClB,OAAO2Q,EAEX,IAEIm3H,EAFAnqH,EAAQumH,EAAO,GACfqD,EAAQ89I,EAAa,GAsBzB,OApBI1nQ,GAAS4pH,GAASA,EAAMvnI,SACxB8nI,EAAQ,gBAAUn3H,GAClB,eAAK42H,GAAO,SAAU//H,GAEdsgI,EADA,IAAMtgI,EACEsgI,EAAMs+I,OAAOhgR,KAAKwX,SAAUxX,KAAK8b,MAEjC4lH,EAAMu+I,OAAOjgR,KAAKwX,SAAUxX,KAAK8b,SAGjD4lH,EAAME,YAAYvjH,MAAK,SAAU6hQ,GAC7B31Q,EAAQ21Q,MAGhBpiJ,EAASA,EAAO9pH,MAAM,GACtBirQ,EAAeA,EAAajrQ,MAAM,GAC9B8pH,EAAOlkI,QAAUqlR,EAAarlR,QAC9B,eAAK2Q,GAAO,WACRvK,KAAKuK,MAAQw1Q,EAAwB//Q,KAAKuK,MAAOuzH,EAAQmhJ,MAG1D10Q,EA3BJ,CA4BLnG,EAAMmT,EAAO0nQ,GAEZ76Q,GAEX,MAAO,CACHqoF,2BAA4B,SAAS32E,GACjC,IAAIokC,EAAUl6C,KAAKk6C,UACfA,IACIpkC,EAAQsK,iBAAiB85B,QACpBpkC,EAAQ82E,kBAAmB92E,EAAQyL,iBAAiBguE,eACjDz5E,EAAQyL,iBAAiBhK,QACrBzB,EAAQsK,iBAAiBs1B,SACzB5/B,EAAQyL,iBAAiBmjH,aAAexqF,EAAQoiO,gBACzCpiO,EAAQoiO,gBAAgB1iR,SAC/Bkc,EAAQsK,iBAAiB44B,QAAS,IAG1CljC,EAAQyL,iBAAiB4+P,aAAejmO,EAAQkiO,kBAE7CliO,EAAQkiO,gBAAgBxiR,QAAUsgD,EAAQoiO,gBAAgB1iR,QAAUkc,EAAQyL,iBAAiBhK,SACpGzB,EAAQsK,iBAAiB44B,QAAS,IAG1Ch5C,KAAKC,SAASnB,MAAMkB,KAAME,WAC1B,IAAIotF,EAAcx3E,EAAQ0xE,WAAWr8C,MACjCmiD,GAAeA,EAAYpzC,UAAYpkC,EAAQ82E,kBAC/C92E,EAAQyL,iBAAiB4+P,kBAAe,IAGhDnyL,sBAAuB,SAASl4E,GAC5B,IAAIgoH,EAAS,mCAAqBhoH,EAAQyL,iBAAiBhK,OAASzB,EAAQ4K,YAAYnJ,OAAS,IAC7F6I,EAAmBtK,EAAQsK,kBAAoB,GAC/C85B,EAAUl6C,KAAK8+Q,eAAL9+Q,CAAqBogB,GACnC,IAAKtK,EAAQ82E,iBAAmB92E,EAAQyL,iBAAiBguE,aACrD,GAAInvE,EAAiB85B,SACZ95B,EAAiB44B,QAAU8kF,EAAOlkI,QAAUsgD,IACxC95B,EAAiBs1B,UAClB4pO,EAAoBt/Q,KAAM,CACtBs8Q,gBAAiBpiO,EAAQoiO,iBAC1BxmQ,EAAQ1R,KAAM05H,EAAOlkI,QAE5Bkc,EAAQ1R,KAAO07Q,EAAoBhqQ,EAAQ1R,KAAM05H,EAAQ5jF,SAE1D,IAAK95B,EAAiB44B,QAAUkB,EAAS,CAC5C,IAAIotC,EAAqB84L,EACrBh6L,EAAiBtwE,EAAQswE,gBAAkB,GAC3Ci6L,EAAgB7iR,OAAOgqB,KAAK4+D,GAAgBxnE,KAAKngB,GAAQ2nF,EAAe3nF,IAC5E,IAAK4hR,GAAmB,QAAU/4L,EAAsBxxE,EAAQ0xE,kBAAe,IAAWF,GAAuB,QAAU84L,EAAwB94L,EAAoBn8C,aAAU,IAAWi1O,IAAyBA,EAAsBlmO,SAAY4jF,EAAOlkI,QAAUsgD,EAAQoiO,gBAAgB1iR,OAAQ,CACpS,IAAIwiR,EAAkBkD,EAAoBt/Q,KAAMk6C,EAASpkC,EAAQ1R,KAAM05H,EAAOlkI,QAC9Ekc,EAAQq1B,MAAQ,eAAcr1B,EAAQq1B,OAASr1B,EAAQq1B,MAAQ,GAC/Dr1B,EAAQq1B,MAAM+O,QAAUkiO,EACpBtmQ,EAAQ0xE,aACR1xE,EAAQ0xE,WAAWr8C,MAAQr1B,EAAQq1B,OAG3Cr1B,EAAQ1R,KAAO07Q,EAAoBhqQ,EAAQ1R,KAAM05H,EAAQ5jF,GAG5DpkC,EAAQ82E,kBACT5sF,KAAKm8Q,iBAAmBrmQ,EAAQq1B,OAASr1B,EAAQq1B,MAAM+O,SAAWl6C,KAAKm8Q,kBAE3En8Q,KAAKC,SAAS6V,KA/ImB,GAmJ7C,GAAkBrb,OAAOmkR,IACzB,GAAkBnkR,OAAO4kR,IACzB,EAASjpN,eAAe,UAAW,CAC/Bz4D,eAAgB,WACZ,MAAO,CACHu8C,QAAS,CACLgV,gBAAY,EACZE,gBAAY,EACZH,4BAAwB,EACxB9E,iBAAiB,EACjBgF,yBAAyB,EACzB1P,MAAO,CACHkQ,IAAK,OAAoBt2D,OAAO,yBAChCu2D,eAAgB,OAAoBv2D,OAAO,oCAC3CwP,IAAK,OAAoBxP,OAAO,yBAChCq2D,eAAgB,OAAoBr2D,OAAO,oCAC3CyP,IAAK,OAAoBzP,OAAO,yBAChCo2D,eAAgB,OAAoBp2D,OAAO,oCAC3Ck2D,IAAK,OAAoBl2D,OAAO,yBAChCm2D,eAAgB,OAAoBn2D,OAAO,oCAC3C+Y,MAAO,OAAoB/Y,OAAO,6BAG1C0gD,4BAAwB,IAGhC2b,MAAO,CACHwjD,WAAYolK,IAEhB1oN,UAAW,CACPJ,YAAa,CACTpxD,KAAM,CACFk8Q,cAAe,SAAS/lQ,GACpB,OAAOA,KAAY,eAAUA,EAAOmjC,aAAenjC,EAAO6jC,kBAE9DmiO,sBAAuB,WAEnB,IADA,IAAIrxN,EAAalvD,KAAK4Y,OAAO,uBAAyB,GAC7Cnd,EAAI,EAAGA,EAAIyzD,EAAWt1D,OAAQ6B,IAAK,CACxC,IAAI4zD,EAAYH,EAAWzzD,GACvB8e,EAASva,KAAKs9D,mBAAmBoK,aAAarY,EAAUpF,cAAgBoF,EAAU90C,QACtF,GAAI80C,EAAUnF,mBAAqBlqD,KAAKsgR,cAAc/lQ,GAClD,OAAO,EAGf,OAAO,GAEXotH,mBAAoB,SAASp9H,EAAO07E,EAAYnwE,GAC5C,IAAI1R,EAAO0R,GAAWA,EAAQ1R,KAC1BnF,EAASe,KAAKC,SAASnB,MAAMkB,KAAME,WAevC,OAdI4V,SACI,IAAWA,EAAQ0qQ,uBACnB1qQ,EAAQ0qQ,qBAAuBxgR,KAAKugR,yBAEpCn8Q,GAAQA,EAAKmG,OAASuL,EAAQ0qQ,uBAAyB1qQ,EAAQgyH,2BAA6B1jI,EAAK6jF,2BACjGhpF,EAAOgE,KAAK,CACR0X,QAASqjQ,GACTljR,IAAKgb,EAAQkkE,KAAKhmE,QAClB5P,KAAMA,EACNs5C,WAAY5nC,EAAQkkE,KAAKpgF,OAAS,EAClCotB,OAAQ,MAIb/nB,GAEX2oI,kBAAmB,SAASv4E,EAAWv5C,GACnC,IAAInS,EAAO3D,KAIX,GAHK8V,EAAQ2qQ,oBACT3qQ,EAAQ2qQ,kBAAoB98Q,EAAKiV,OAAO,uBAAyB,IAEjE,UAAYy2C,EAAU10C,QAAS,CAC/B,IAAIwhF,GAAoB,EACpBukL,GAAyB,EAC7B,eAAK5qQ,EAAQunD,gBAAgB,SAAU7e,GACnC,IAAIigC,EAAa3oE,EAAQunD,eAAe7e,EAAe,GACnD6Q,EAAU3R,aAAe19C,KAAK09C,aAC9By+C,EAAmBn8F,KAAKoB,OAExBo9C,EAAe,GAAK,WAAaigC,EAAW5/D,SAAW,WAAa7e,KAAK6e,UACzE6hQ,EAAwB1gR,KAAKoB,UAGrCiuD,EAAU0nC,aAAe/2F,KAAK2gR,uBAAuB7qQ,EAAQ2qQ,kBAAmBpC,GAAmBhvN,EAAUjrD,MAAO0R,EAAQunD,gBAAgB,SAAU/mD,EAAaiE,GAC/J,OAAIjE,EAAY4zC,mBACJ,EAER5zC,EAAY0zC,eAAiBzvC,IAAW,eAAUA,EAAOmjC,aAAenjC,EAAOnZ,QAAUs/Q,EAClFnmQ,EAAOnZ,MAEP+6F,KAEX,GAOR,OALI9sC,EAAU10C,UAAYqjQ,KACtB3uN,EAAU0nC,aAAe/2F,KAAK2gR,uBAAuB7qQ,EAAQ2qQ,kBAAmBpC,GAAmBhvN,EAAUjrD,MAAO0R,EAAQunD,gBAAgB,SAAU/mD,EAAaiE,GAC/J,OAAOjE,EAAY4zC,mBAAqBvmD,EAAK28Q,cAAc/lQ,GAAUA,EAAOnZ,OAAS,MAGtFiuD,GAEXsxN,uBAAwB,SAAS1lQ,EAAc0hQ,EAAYt/M,EAAgBujN,EAA4BhjN,GACnG,IAAIj6D,EAAO3D,KACP+2F,EAAe,GACf8pL,EAAwB,GAgC5B,OA/BA,eAAK5lQ,GAAc,SAAU6lQ,EAAcxqQ,GACvC,IAAIiE,EAAS5W,EAAK25D,mBAAmBoK,aAAapxD,EAAYiE,QAC1D0vC,EAAe3zC,EAAY2zC,cAAgBtmD,EAAK25D,mBAAmBoK,aAAapxD,EAAY2zC,eAAiB1vC,EAC7GhF,EAAcqrQ,EAA2BtqQ,EAAa2zC,GAC1D,GAAI10C,GAAe,EAAG,CACbsrQ,EAAsBtrQ,KACvBsrQ,EAAsBtrQ,GAAe,IAEzC,IAEQoB,EAFJslQ,EAAYU,EAAWmE,GAC3B,GAAI7E,IAAcA,EAEV,eAAU3lQ,EAAYK,aACtBA,EAAcL,EAAYK,YACnB,UAAYL,EAAYI,cAC/BC,EAAc,EAASuE,oBAAoBX,GAAUA,EAAOxF,WAEhE8rQ,EAAsBtrQ,GAAatS,KAAK,OAAAxI,EAAA,WAAO,GAAI6b,EAAa,CAC5DzU,MAAO,eAASo6Q,IAAc1hQ,GAAUA,EAAOs7D,iBAAmBt7D,EAAOs7D,iBAAiBomM,GAAaA,EACvGtlQ,YAAaA,EACbF,cAAe8D,GAAUA,EAAOnZ,QAAUmU,EAAcgF,EAAOrP,aAAU,SAKpF,eAAc21Q,IACfxjN,EAAen8D,QAAQ,CAACqZ,EAAQikC,KAC5B,IAAIigC,EAAaphB,EAAe7e,EAAe,GAC3CjpC,GAAcqoD,GAAe,YAAc,OAAS6gB,QAAc,IAAWA,OAAa,EAASA,EAAW5/D,UAAY,WAAatE,EAAOsE,QAAsFtE,EAAOnZ,MAAlF,OAASq9E,QAAc,IAAWA,OAAa,EAASA,EAAWr9E,MAChO21F,EAAa9zF,KAAK49Q,EAAsBtrQ,IAAgB,MAGzDwhF,GAEXgqL,iBAAkB,SAASC,EAAmB5E,GAC1C,IAAIz4Q,EAAO3D,KACPs3D,EAAoB3zD,EAAK25D,mBAC7B,OAAO35D,EAAKg9Q,uBAAuBK,EAAmB5E,EAAiB9kN,EAAkBiG,qBAAqB,SAAUjnD,EAAaiE,GACjI,OAAO5W,EAAK28Q,cAAc/lQ,GAAUA,EAAOnZ,OAAS,MAG5Dy2F,iBAAkB,SAASt2C,GACvB,IAAIw1C,EACA38E,EAAapa,KAAKqa,YAClBkkQ,EAAcv+Q,KAAKihR,aACnBC,EAAkB3C,GAAeA,EAAY,IAAMA,EAAY,GAAGxnL,aAClEiqL,EAAoBhhR,KAAK4Y,OAAO,sBAEpC,GADA5Y,KAAKihR,aAAe,GAChB7mQ,GAAc4mQ,GAAqBA,EAAkBpnR,OAAQ,CAC7D,IAAIwiR,EAAkBhiQ,EAAWgiQ,kBACjCrlL,EAAe/2F,KAAK+gR,iBAAiBC,EAAmB5E,GACpD76N,GAAUA,EAAOrI,oBAAsBgoO,IACvC3/N,EAAOo9N,mBAAqB5nL,EAAaj7F,KAAI,SAAUqlR,EAAa//Q,GAChE,OAAIrG,KAAKC,UAAUmmR,KAAiBpmR,KAAKC,UAAUkmR,EAAgB9/Q,IACxDA,GAEH,KACRhD,OAAOgD,GAASA,GAAS,IAE7B21F,EAAan9F,QACboG,KAAKihR,aAAah+Q,KAAK,CACnB0X,QAASsjQ,GACTlnL,aAAcA,IAI1B/2F,KAAKC,SAASshD,IAElB6/N,4BAA6B,SAAS5pQ,GAClC,GAAI23C,GAAwBnvD,MAAO,CAC/B,IAAI47F,EAAoB57F,KAAK2xD,cAAc,WAC3C,GAAIiqC,EACA,OAAO,SAASx3F,GAEZ,OADAA,EAAOw3F,EAAkBumF,eAAe/9K,GACjCoT,EAASpT,IAI5B,OAAOoT,GAEX6pQ,0BAA2B,SAAS7pQ,EAAUukQ,GAE1C,OADAvkQ,EAAWxX,KAAKohR,4BAA4B5pQ,GACxC,QAAUukQ,GAAc,QAAUA,EAC3B,SAAS33Q,GACZ,IAAIvC,EAAQ2V,EAASpT,GACrB,OAAO,eAAUvC,GAASqT,OAAOrT,GAASA,GAG3C2V,GAEX8pQ,eAAgB,SAASrmQ,EAAcmF,GACnC,IAAIzc,EAAO3D,KACPs3D,EAAoB3zD,EAAKguD,cAAc,WACvC1C,EAAyBtrD,EAAKiV,OAAO,kCACrC2oQ,EAAwB59Q,EAAKiV,OAAO,2BACxC,OAAO,eAAIqC,GAAgB,IAAI,SAAU3E,GACrC,IAAIiE,EAAS+8C,EAAkBoQ,aAAapxD,EAAYiE,QACpD1F,EAAqB0F,GAAUA,EAAO1F,mBAAqB0F,EAAO1F,mBAAmB2G,KAAKjB,GAAU,gBAAcA,EAASA,EAAOc,UAAY/E,EAAYiE,QAC1JwhQ,EAAazlQ,EAAYI,aAAe,QACxCyzC,EAAkB,eAAU7zC,EAAY6zC,iBAAmB7zC,EAAY6zC,gBAAkBo3N,EAC7F,GAAInhQ,EACA,MAAO,CACH5I,SAAUlB,EAAYiE,OACtB7D,YAAaqlQ,GAGjB,IAAIvkQ,EAAW7T,EAAK09Q,0BAA0BxsQ,EAAoBknQ,GAClE,GAAI,WAAaA,EAAY,CACpB9sN,IACD,OAAOnrD,IAAI,SACXmrD,EAAyB,cAE7B,IAAIn5C,EAAU,CACVlE,UAAWjO,EAAKiO,UAChBhQ,KAAM0U,EAAY1U,MAEtBqtD,EAAuBn5C,GACvBA,EAAQ0rQ,eAAiB,YACzBzF,EAAa,CACTqB,KAAM,SAAS1/N,GAMX,OALA5nC,EAAQ0rQ,eAAiB,QACzB1rQ,EAAQ2rQ,gBAAa,EACrB3rQ,EAAQ4nC,WAAaA,SACd5nC,EAAQjU,MACfotD,EAAuBn5C,GAChBA,EAAQ2rQ,YAEnBrwI,KAAM,SAASqwI,EAAY5/Q,GAKvB,OAJAiU,EAAQ0rQ,eAAiB,YACzB1rQ,EAAQ2rQ,WAAaA,EACrB3rQ,EAAQjU,MAAQA,EAChBotD,EAAuBn5C,GAChBA,EAAQ2rQ,YAEnBjE,SAAU,SAASiE,GAKf,OAJA3rQ,EAAQ0rQ,eAAiB,WACzB1rQ,EAAQ2rQ,WAAaA,SACd3rQ,EAAQjU,MACfotD,EAAuBn5C,GAChBA,EAAQ2rQ,aAI3B,MAAO,CACHjqQ,SAAUA,EACVukQ,WAAYA,EACZ5xN,gBAAiBA,OAKjCu3N,aAAc,SAASzC,EAAczwN,EAAah3C,EAAU8mC,GACxD,GAAIkQ,EAAa,CACb,IAAI9Q,EAAa8Q,EAAY9Q,WAC7BY,EAAYA,GAAakQ,EAAYlQ,UACjC,eAAUZ,KACVuhO,EAAavhO,GAAcuhO,EAAavhO,IAAe,GACvDuhO,EAAavhO,GAAYz6C,KAAK,CAC1BuU,SAAUA,EACVsE,KAAM,SAAWwiC,OAKjCqjO,iBAAkB,SAAS1mQ,EAAcrZ,GACrC,IAAIggR,GAAoB,EAUxB,OATI,eAAUhgR,IACV,eAAKqZ,GAAgB,IAAI,SAAU7Z,GAC/B,GAAIpB,KAAK4B,OAASA,GAAQR,IAAUQ,GAAQ5B,KAAK0W,cAAgB9U,GAAQ5B,KAAKua,SAAW3Y,IAAS0U,EAActW,KAAM0W,EAAcJ,EAAYI,YAAa6D,EAASjE,EAAYiE,QAAQ7D,GAAe6D,GAAU7D,EAAc,IAAM6D,KAAY3Y,GAE/O,OADAggR,EAAmBxgR,GACZ,EAEX,IAAIkV,EAAaI,EAAa6D,KAG/BqnQ,GAEXC,wBAAyB,SAAS9nO,EAAwB+nO,GACtD,IAAIn+Q,EAAO3D,KACPs3D,EAAoB3zD,EAAK25D,mBACzB2jB,EAAe3pB,EAAkBgf,kBACjC2oM,EAAe,GACnB,GAAK6C,GAAsBA,EAAkBloR,OAsB7C,OAnBA,eAAKmgD,GAA0B,IAAI,WAC/B,IAAIuE,EAAYt+C,KAAKs+C,UACjBkQ,EAAcxuD,KAAKwuD,YACnBozN,EAAmBj+Q,EAAKg+Q,iBAAiBG,EAAmB9hR,KAAKsW,aACrE,KAAIsrQ,EAAmB,GAAvB,CAGA,IAAIpqQ,EAAW,SAASpT,GACpB,OAAOi6Q,GAAmBj6Q,GAAMw9Q,IAEhC,eAAUpzN,IACVA,EAAc8I,EAAkBoQ,aAAalZ,GAC7C7qD,EAAK+9Q,aAAazC,EAAczwN,EAAah3C,EAAU8mC,IAEvD,eAAK2iC,GAAc,SAAUvjC,EAAY8Q,GACrC7qD,EAAK+9Q,aAAazC,EAAczwN,EAAah3C,EAAU8mC,UAI5D2gO,GAEX/lL,6BAA8B,SAAS9+E,EAAYgG,GAC/C,IAAIzc,EAAO3D,KACPo5F,EAAoBp5F,KAAKC,SAASma,EAAYgG,GAIlD,OAHAg5E,EAAkB0lL,eAAc,SAAUiD,GACtC,OAAOp+Q,EAAKq+Q,mBAAmBD,GAA2B3hQ,MAEvDg5E,GAEX4oL,mBAAoB,SAAS5hQ,GACzB,IAAIzc,EAAO3D,KACP8hR,EAAoBn+Q,EAAKiV,OAAO,sBAChCqpQ,EAAoBt+Q,EAAKiV,OAAO,sBAChCmhC,EAAyBp2C,EAAKiV,OAAO,0BACrC0jQ,EAAkB34Q,EAAK29Q,eAAeQ,EAAmB1hQ,GAAoBA,EAAiBs1B,UAAYt1B,EAAiB85B,SAC3HkiO,EAAkBz4Q,EAAK29Q,eAAeW,EAAmB7hQ,GAAoBA,EAAiB85B,SAClG,GAAIoiO,EAAgB1iR,QAAUwiR,EAAgBxiR,OAC1C,MAAO,CACH0iR,gBAAiBA,EACjBF,gBAAiBA,EACjB6C,aAAc,WACV,OAAOt7Q,EAAKk+Q,wBAAwB9nO,EAAwB+nO,MAK5EpxN,cAAe,WACX,IAAIriD,EAAUrO,KAAKC,WAEnB,OADAoO,EAAQpL,KAAK,wBACNoL,GAEX6zQ,qBAAsB,SAASC,GAC3B,IAAIP,EAAmB5hR,KAAK2hR,iBAAiB3hR,KAAK4Y,OAAO,sBAAuBupQ,GAC5ExF,EAAa38Q,KAAKqa,YAAY+hQ,kBAClC,GAAIO,EAAW/iR,QAAUgoR,GAAoB,EACzC,OAAOjF,EAAWiF,IAG1B1wN,cAAe,SAAS7hB,GAChB,YAAcA,EAAKztC,MAAQ,2BAA6BytC,EAAKztC,OAC7DytC,EAAKztC,KAAO,cAEhB5B,KAAKC,SAASovC,IAElBohB,KAAM,WACFzwD,KAAKihR,aAAe,GACpBjhR,KAAKC,YAETs+Q,YAAa,WACT,OAAOv+Q,KAAKihR,eAGpBrsO,QAAS,CACLwtO,gBAAiB,WACTjzN,GAAwBnvD,QAAUA,KAAKgtL,YACvChtL,KAAKiY,gBAAgBypE,QAAQ,CACzBjhE,MAAM,EACN45E,aAAa,KAIzB8tF,WAAY,SAASx3G,GACjB,IAAI1xE,EAASe,KAAKC,SAASnB,MAAMkB,KAAME,WAIvC,OAHIywE,EAAOlyE,MACPuB,KAAKoiR,kBAEFnjR,GAEX0rL,cAAe,WACX,IAAI1rL,EAASe,KAAKC,SAASnB,MAAMkB,KAAME,WAEvC,OADAF,KAAKoiR,kBACEnjR,GAEXslL,eAAgB,WACZ,IAAItlL,EAASe,KAAKC,SAASnB,MAAMkB,KAAME,WAEvC,OADAF,KAAKoiR,kBACEnjR,KAInBy2D,MAAO,CACHt4C,SAAU,CACNq/C,WAAY,SAASv/C,GACjB,IAAIkgD,EAAOp9D,KAAKC,SAASnB,MAAMkB,KAAME,WAErC,OADAgd,GAAOkgD,EAAKjlD,SAAS+E,EAAIvC,UAAYqjQ,GAAiCJ,GAA8B,IAC7FxgN,GAEXiF,aAAc,SAASjF,EAAMtnD,GACzB9V,KAAKC,SAASnB,MAAMkB,KAAME,WACtB,UAAY4V,EAAQoH,IAAIvC,SAAW7E,EAAQoH,IAAI65E,cAAgBjhF,EAAQoH,IAAI65E,aAAan9F,QACxFoG,KAAKqiR,yBAAyBjlN,EAAMtnD,IAG5CwsQ,8BAA+B,SAAS/sQ,EAAaO,GACjD,OAAQ,eAAUA,EAAQ0I,QAAQjJ,GAAamoC,aAAe5nC,EAAQoH,IAAI65E,aAAaxhF,GAAa3b,QAExG2oR,2BAA4B,SAASC,EAAkB1sQ,GAEnD,IADA,IAAI2sQ,EAAyB,EACpBhnR,EAAI,EAAGA,EAAI+mR,EAAkB/mR,IAAK,CACvC,IAAI8Z,EAAcO,EAAQoH,IAAI65E,aAAan9F,OAAS6B,EACpDgnR,EAAyBziR,KAAKsiR,8BAA8B/sQ,EAAaO,GAAWra,EAAIgnR,EAE5F,OAAOA,GAEXJ,yBAA0B,SAASjlN,EAAMtnD,GACrC,IAAI4sQ,EAAatlN,EAAKpF,WAAWjgD,OAC7ByqQ,EAAmBttQ,OAAOwtQ,EAAWhxN,KAAK,aAAe,EACzD+wN,EAAyBziR,KAAKuiR,2BAA2BC,EAAkB1sQ,GAC/E9V,KAAK2iR,6BAA6BD,EAAY5sQ,EAAS0sQ,EAAkBC,IAE7EE,6BAA8B,SAASD,EAAY5sQ,EAAS0sQ,EAAkBC,GAC1E,GAAIA,EAAyB,EAAG,CAC5BC,EAAWhxN,KAAK,UAAW8wN,EAAmBC,GAC9C,IAAK,IAAIhnR,EAAI,EAAGA,EAAIgnR,EAAwBhnR,IAAK,CAC7C,IAAI8Z,EAAcO,EAAQ0I,QAAQ5kB,OAAS6oR,EAAyBhnR,EACpEuE,KAAKyiE,YAAYigN,EAAWtjQ,SAAU,OAAA3kB,EAAA,WAAO,CACzC8f,OAAQzE,EAAQ0I,QAAQjJ,GACxBA,YAAavV,KAAK4iR,qBAAqBrtQ,EAAaO,EAAQ0I,UAC7D1I,OAIf8sQ,qBAAsB,SAASrtQ,GAC3B,OAAOA,GAEXquD,iBAAkB,SAAS9tD,GACvB,OAAKA,EAAQyE,OAAOsE,UAAY,eAAU/I,EAAQyE,OAAOmjC,aAAe5nC,EAAQmF,cAAgBnF,EAAQmF,aAAarhB,OAC1GskR,GAEAl+Q,KAAKC,SAAS6V,IAG7BytD,gBAAiB,SAASztD,GACtB,IAAIghD,EAAa92D,KAAKC,SAAS6V,GAC/B,OAAIA,EAAQoH,IAAI65E,aACL,OAAAt8F,EAAA,WAAOq8D,EAAYsnN,GAAsBp+Q,KAAM8V,IAE/CghD,Q,iBC7vB3B,GAAgB,UAChB,GAAsB,gBACtB,GAA2B,wBAC3B+rN,GAAmB,gBACnBC,GAAkB,eAClBC,GAAoB,iBACpBC,GAAkB,eAClBC,GAAsB,mBACtBC,GAA4B,yBAC5B,GAAsB,cACtB,GAAkB,eAClB,GAAmB,uBACnBC,GAA4B,SAASnvD,GACrC,IAAI31I,GAA0B,EAO9B,OANA,eAAK21I,GAAc,SAAU5yN,EAAOmZ,GAChC,GAAIA,EAAOsE,UAAY,GAEnB,OADAw/D,EAAyBj9E,GAClB,KAGRi9E,GAEP+kM,GAAwB,SAASpvD,EAActvJ,EAAQ2+M,GACvD,IAAIC,EAAmB,EACvB,GAAItvD,GAAgBtvJ,GAAU2+M,EAC1B,IAAK,IAAI5nR,EAAI,EAAGA,EAAIu4N,EAAap6N,OAAQ6B,IACjCu4N,EAAav4N,GAAGojB,UAAY,GAC5BykQ,GAAoBtvD,EAAav4N,GAAG8gE,SAEhCmI,EAAO4+M,GAAoBD,EAAY5nR,KACvCipE,EAAO4+M,GAAoBD,EAAY5nR,IAE3C6nR,KAIZ,OAAO5+M,GAEP6+M,GAAmB,CACnB9yN,KAAM,WACFzwD,KAAKC,WACLD,KAAKohO,wBAAyB,EAC9BphO,KAAKwjR,iBAAkB,GAE3BvkN,WAAY,SAAS1kD,GACjB,OAAOva,KAAKC,SAASsa,GAAQg6C,YAAYyuN,MAAoBhjR,KAAKohO,0BAA2B7mN,EAAOuE,OAASvE,EAAOsE,SAAWtE,EAAOsE,UAAY,OAEtJ4kQ,qCAAsC,SAASzvD,EAAczyK,GACzD,IAAI88B,EAAyB8kM,GAA0BnvD,GACnDx1I,EAAqBw1I,EAAa31I,GAAwB9hB,QAC1D0F,EAAgB1gB,GAAUA,EAAO0gB,cACjCA,IACA1gB,EAAO0gB,cAAgBA,EAAcnmE,KAAI,SAAUmmE,GAC/C,GAAIA,EACA,OAAOA,EAAcnmE,KAAI,SAAUyZ,GAC/B,OAAIA,EAAc8oE,EACP9oE,EACAA,GAAe8oE,EAAyBG,EACxCjpE,EAAcipE,EAAqB,GAEtC,KACRpgF,QAAO,SAAUmX,GACjB,OAAOA,GAAe,UAM1C,yBAAyBy+M,GACrB,IAAI0vD,EAAoB1jR,KAAK2jR,mBACzBr9M,EAAQtmE,KAAK8nE,oBAAoB47M,GACjC3jL,EAAY2jL,EAAkB1rN,SAAS,YAC3C+nC,EAAU78B,YAAYljE,KAAKg9D,gBAAgBg3J,IAC3C,IAAK,IAAIv4N,EAAI,EAAGA,EAAI6qE,EAAM1sE,OAAQ6B,IAC9BuE,KAAK4jR,uBAAuB,eAAEt9M,EAAM7qE,IAAKu4N,IAGjD,uBAAuB52J,EAAM42J,GACzB,IAII/yH,EAJAw5K,EAAer9M,EAAK1/D,IAAI,GAAGmmR,WAC3BxlM,EAAyB8kM,GAA0BnvD,GACnDz1I,EAAoBy1I,EAAa31I,GACjCjb,EAAoBpjE,KAAKs9D,mBAAmB+F,uBAE5CqjF,EAAWtjF,EAAoB,EAC/B7G,EAAUgiB,EAAkBhiB,QAChC,GAAIa,EAAKnG,SAAS,IAAlB,CACI,IAAI6sN,EACJrJ,EAAa,GAAGhpN,aAAa,UAAW,QAAUqyN,EAAwB9jR,KAAKs9D,mBAAmBC,2BAAwB,IAAWumN,OAAwB,EAASA,EAAsBlqR,YAFhM,CAKIwjE,EAAKnG,SAAS,MACdgqC,EAAmBjhG,KAAK8gG,qBAAqB,CACzC5jF,IAAKkgD,EAAKh5D,KAAK,WACfoa,QAASxe,KAAKs9D,mBAAmBC,sBAErChB,EAAU0kC,EAAiB1kC,QAAU/qD,KAAK1I,IAAI,EAAG2xQ,EAAa7gR,QAAUqnG,EAAiB1rF,YAAc,KAE3G,IAAK,IAAI7J,EAAI,EAAGA,EAAI+uQ,EAAa7gR,OAAQ8R,IAAK,CAC1C,IAAIq4Q,EAAoB9iL,EAAmBv1F,IAAMu1F,EAAiB1rF,YAAc,EAAI7J,IAAM2yE,EAC1Fo8L,EAAa/uQ,GAAG+lD,aAAa,gBAAiBi1F,GAC1Cq9H,GACAtJ,EAAa/uQ,GAAG+lD,aAAa,UAAW8K,GACxCmqF,GAAYnqF,GAEZmqF,OAIZ9kF,aAAc,SAAS9rD,GACnB,IAAIkuQ,EACAhwD,EAAeh0N,KAAKi+E,kBACxBj+E,KAAKwjR,kBAAoBxvD,EAAap6N,OACtC,IAAIkgE,EAAS95D,KAAKC,SAAS6V,GAC3B,GAAI9V,KAAKwjR,gBAAiB,CACtB,IAAIjiO,EAAS,OAASzrC,QAAW,IAAWA,OAAU,EAASA,EAAQyrC,OAEvE,GADAvhD,KAAKohO,wBAAyB,EAC1B,OAAS7/K,QAAU,IAAWA,GAAUA,EAAOkxC,0BAA2B,IAASzyF,KAAK4Y,OAAO,wBAC/F5Y,KAAKikR,yBAAyBjwD,OAC3B,CACH,IAAI/xJ,EAAgB,OAAS1gB,QAAU,IAAWA,OAAS,EAASA,EAAO0gB,cAC3EjiE,KAAKyjR,qCAAqCzvD,EAAczyK,GACxDyiO,EAAchkR,KAAK88D,aAAak3J,GAChCh0N,KAAK8hE,YAAYkiN,EAAa,OAAAvpR,EAAA,WAAO,GAAIqb,EAAS,CAC9C0I,QAASw1M,KAEbh0N,KAAK6lE,eAAem+M,EAAaziO,GAC7B0gB,IACA1gB,EAAO0gB,cAAgBA,GAG/BjiE,KAAKohO,wBAAyB,OAE9BphO,KAAK2jR,oBAAsB3jR,KAAK2jR,mBAAmBvkQ,SAASzG,SAC5D3Y,KAAK2jR,mBAAqB,KAE9B,OAAO7pN,GAEXqI,WAAY,SAASrI,EAAQhkD,GACzB,IAAIouQ,EACAzrN,EAAQ3iD,EAAQoH,IAAIu7C,MAExB,GADAz4D,KAAKC,SAASnB,MAAMkB,KAAME,WACtBF,KAAKohO,wBAA0B3oK,GAASA,EAAM7+D,OAAQ,CACtDsqR,EAAkB,EAClB,IAAIC,EAAaruQ,EAAQoH,IAAIu7C,OAAS,GACtCA,EAAQA,EAAMzkD,QACd8B,EAAQoH,IAAIu7C,MAAQA,EACpB,IAAK,IAAIh9D,EAAI,EAAGA,EAAI0oR,EAAWvqR,OAAQ6B,IAC/B0oR,EAAW1oR,GAAG8e,QAAU4pQ,EAAW1oR,GAAG8e,OAAOsE,UAAY,GACzDqlQ,GAAmBC,EAAW1oR,GAAG8e,OAAOgiD,SAAW,GAAK,EAG5D9D,EAAMh9D,EAAIyoR,GAAmBC,EAAW1oR,KAIpD2gE,YAAa,SAAStmD,GAClB,IAKIk+M,EACAowD,EACA/lM,EAPA16E,EAAO3D,KACPua,EAASzE,EAAQyE,OACjB8pQ,EAAgB9pQ,GAAUA,EAAOsE,QACjClE,EAAU7E,EAAQ6E,QAClBk9C,EAAQl0D,EAAK1D,SAASnB,MAAM6E,EAAMzD,YAIlCyD,EAAKy9N,wBAA0B,WAAazmN,KAC5Cq5M,EAAerwN,EAAKs6E,kBACpBI,EAAyB8kM,GAA0BnvD,GACnDowD,EAAkBpwD,EAAa31I,EAAyB,IAExD16E,EAAKy9N,uBACDijD,IAAkB,KAClBxsN,EAAM1/C,SAAS+qQ,IAA2B3uN,YAAYsuN,GAAkB,IAAMxkM,GAA0B+lM,GAAmB,WAAaA,EAAgBvlQ,SAAS01C,YAAYuuN,GAAiB9uD,EAAap6N,QAAUykF,IAA2B21I,EAAap6N,OAAS,GAClQ,cAAgB+gB,GAChB,OAAcnF,aAAaqiD,IAG5B,WAAal9C,GACpBk9C,EAAMtD,YAAYsuN,GAAkB/sQ,EAAQP,cAAgB8oE,GAEhE,IAAIimM,EAAgB3gR,EAAKiV,OAAO,0BAA4B9C,EAAQ+tD,SAIpE,OAHIjkD,EAAA,KAAQC,SAAW/J,EAAQyE,OAAOuE,OAAS,UAAYhJ,EAAQ6E,UAAY2pQ,GAC3EzsN,EAAM1/C,SAAS6qQ,IAEZnrN,GAEX8N,4BAA6B,WACzB,IAAID,EAAmB1lE,KAAKC,SAASnB,MAAMkB,KAAME,WAIjD,OAHIF,KAAKohO,wBACL17J,EAAiBvtD,SAASnY,KAAK4X,gBAAgB,KAE5C8tD,GAEXhC,mBAAoB,SAAS7L,EAAO/hD,GAChC,IAAIyuQ,EACAhqQ,EAASzE,EAAQyE,OACjBiqQ,EAAwBxkR,KAAKohO,uBAC7BqjD,EAAc,UAAY3uQ,EAAQ6E,SAAW,eAAUJ,EAAOmjC,YAIlE,GAHI8mO,GAAyBC,IAAgBlqQ,EAAOsE,UAAYtE,EAAOijC,mBACnEqa,EAAMp7C,IAAI,gBAAiB,SAE1B+nQ,GAAyBxkR,KAAKwjR,gBAAiB,CAEhD,GADAe,EAAchqQ,EAAOuE,OAASvE,EAAOsE,UAAW,IAAUtE,EAAOuE,MAC7D2lQ,IACAF,GAAc,EACVzuQ,EAAQoH,IAAI65E,cAAgBjhF,EAAQoH,IAAI65E,aAAan9F,QAAQ,CAC7D,IAAI4kB,EAAUxe,KAAKs9D,mBAAmBC,oBAClCmnN,EAA8B1kR,KAAKuiR,2BAA6BviR,KAAKuiR,2BAA2BhoQ,EAAOgiD,QAAS,CAChH/9C,QAASA,EACTtB,IAAKpH,EAAQoH,IACbwiF,SAAS,IACR,EACL,GAAIglL,EAA8B,EAAG,CACjC,IAAIrmM,EAAyB8kM,GAA0BnjR,KAAKs9D,mBAAmB2gB,mBAC/EsmM,EAAc/lQ,EAAQ5kB,OAAS8qR,EAA8BrmM,GAIzE,GAAIkmM,EAAa,CACb,GAAIhqQ,EAAOsE,SAAW,YAActE,EAAO9b,MAAQ,UAAYqX,EAAQ6E,QAEnE,YADAk9C,EAAM/M,KAAK,UAAU3yC,SAASoC,EAAOqhC,UAGrCic,EAAM1/C,SAAS,mBAIvBoC,EAAOsE,UAAY,IACnB7e,KAAKC,SAASnB,MAAMkB,KAAME,YAGlC6mE,qBAAsB,SAASvM,GAC3B,IAAIigN,EAAez6Q,KAAKC,SAASnB,MAAMkB,KAAME,WACzC09D,EAAa68M,EAAar7P,SAAS63C,SAAS,IAC5C0tN,EAAiB,sBAAwB3kR,KAAK4B,KAAO44D,OAAW,EACpE,GAAIx6D,KAAK2jR,oBAAsBlJ,EAAc,CACzC,IAAIzmD,EAAeh0N,KAAKi+E,gBAAgB0mM,GACpCC,EAAoB5kR,KAAKgnE,gBAAgBhnE,KAAK2jR,oBAAoBnnQ,GAAGg+C,GAAUxC,SAAS,MAC5F,eAAK4sN,EAAmB,CAACrvQ,EAAaylD,KAClC,GAAI4C,EACI68M,EAAallQ,IAAgB,WAAaylD,EAAKC,MAAM83J,aACrD0nD,EAAallQ,GAAeylD,OAE7B,CACH,IAAI6pN,EAAc7wD,EAAaz+M,GAC/B,GAAIsvQ,EACA,GAAIA,EAAYhmQ,UAAY,GACpB+lQ,EAAkBpoQ,GAAGjH,GAAa0hD,SAAS,MAC3CwjN,EAAallQ,GAAeylD,GAAQy/M,EAAallQ,QAElD,CACH,IAAI+tQ,EAAmBtjR,KAAKs9D,mBAAmBymB,wBAAwB8gM,EAAaF,GACpFlK,EAAa6I,GAAoBtoN,GAAQy/M,EAAa6I,OAM1E,OAAO7I,GAEXp0M,gBAAiB,WACb,IAAIg9M,EACApkR,EAASe,KAAKC,WACd+zN,EAAeh0N,KAAKi+E,kBAIxB,OAHIj+E,KAAK2jR,oBAAsB1kR,EAAOrF,SAClCypR,EAAcrjR,KAAKC,SAASD,KAAK2jR,qBAE9BP,GAAsBpvD,EAAc/0N,EAAQokR,IAEvDt+M,gBAAiB,WACb,IAAIpE,EAAe3gE,KAAKohO,uBAAyBphO,KAAK2jR,mBAAqB3jR,KAAKC,WAChF,OAAO0gE,GAEXqE,gBAAiB,SAASrE,GAClB3gE,KAAKohO,uBACLphO,KAAK2jR,mBAAqBhjN,EAAaxoD,SAAS+qQ,IAEhDljR,KAAKC,SAAS0gE,IAGtBvI,WAAY,SAASoC,EAAUsG,GAE3B,OADAA,EAAgBA,GAAiB9gE,KAAK+kE,kBAClC/kE,KAAKohO,wBAA0BtgK,GAAiBA,EAAc3iD,QAAQ,SAASiB,OAAO,IAAMpf,KAAK4X,gBAAgB,KAAsBhe,OAChIoG,KAAKi+E,gBAAgBzjB,GAEzBx6D,KAAKC,SAASu6D,EAAUsG,IAEnCrG,YAAa,SAAS2C,GAClB,IAAI4mN,EAAchkR,KAAK2jR,mBACvB,OAAIK,GAAeA,EAAYlsQ,KAAKslD,GAAMxjE,OAC/BoG,KAAKgnE,gBAAgBg9M,GAAa5iR,MAAMg8D,GAE5Cp9D,KAAKC,SAASm9D,IAEzB0H,iBAAkB,WACd,IAAI7lE,EAASe,KAAKC,SAASnB,MAAMkB,KAAME,WAIvC,OAHIF,KAAK2jR,qBACL1kR,EAAS,eAAE,CAACA,EAAOvB,IAAI,GAAIsC,KAAK2jR,mBAAmBjmR,IAAI,MAEpDuB,GAEXg/E,gBAAiB,SAASzjB,GACtB,OAAOx6D,KAAKs9D,mBAAmB2gB,gBAAgBzjB,IAEnDsqN,sBAAuB,WACnB,IAIIC,EAJA3oQ,EAAS,CACTO,KAAM,EACNwgH,MAAO,GAGX,GAAIn9H,KAAK2jR,mBAAoB,CACzBoB,EAAqB/kR,KAAKglR,8BAC1B,IAAIC,EAA4BF,EAAmB5/N,WACnD/oC,EAAS,CACLO,KAAMsoQ,EAA0BtoQ,KAChCwgH,MAAO,eAAcn9H,KAAK0X,WAAW,IAAS,eAAcqtQ,GAAoB,GAAQE,EAA0BtoQ,OAG1H,OAAOP,GAEX4oQ,4BAA6B,WACzB,OAAOhlR,KAAK2jR,oBAAsB3jR,KAAK2jR,mBAAmB7rQ,KAAK,IAAMorQ,IAA2B34M,SAEpG26M,qBAAsB,WAClB,OAAOllR,KAAK2jR,oBAEhBn5I,eAAgB,WACZ,OAAOxqI,KAAKwjR,iBAEhB9vN,YAAa,WACT1zD,KAAKC,WACLD,KAAKmlR,mBAETvgN,gBAAiB,SAAS9uD,GACtB,IAAI0I,EACA6+C,EAAiBr9D,KAAKs9D,mBAAmBC,oBACzCmH,EAAS5uD,EAAQ4uD,OACjB0gN,EAAuB1gN,GAAUA,EAAO9qE,QAAU,eAAUyjE,EAAe,GAAGb,cAC9EiI,EAAc3uD,EAAQ2uD,YACtB4gN,EAAuB5gN,GAAeA,EAAYp5D,MAClDi6Q,GAAoB,EAExB,GADAtlR,KAAKC,SAASnB,MAAMkB,KAAME,WACtBF,KAAK2jR,mBAAoB,CACzB,IAAIpkK,EAAe76C,GAAUA,EAAO9lD,MAAK,SAAUvT,GAC/C,MAAO,SAAWA,KAEtBi6Q,EAAoB/lK,KAAkB6lK,IAAyBplR,KAAKqoE,oBAAmB,IACnFi9M,IACA9mQ,EAAU6+C,GAEdr9D,KAAKC,SAAS,OAAAxF,EAAA,WAAO,GAAIqb,EAAS,CAC9BgrD,cAAe9gE,KAAK2jR,mBACpBnlQ,QAASA,EACTM,OAAO,MAGXsmQ,GAAwBC,GAAwBrlR,KAAK4Y,OAAO,qBAC5D5Y,KAAKmlR,mBAGbnoN,gBAAiB,SAASx+C,GACtB,GAAIxe,KAAKohO,yBAA2BphO,KAAK4Y,OAAO,mBAAoB,CAChE,IAAIykD,EAAiBr9D,KAAKs9D,mBAAmBC,oBACzC+nN,EAAoBjoN,EAAej/D,QAAO,SAAUmc,GACpD,OAAQA,EAAOlP,SACfzR,OACA0rR,IACA9mQ,EAAU6+C,GAGlB,OAAOr9D,KAAKC,SAASue,IAEzB+mQ,iBAAkB,SAAS7tQ,GACvB,IAAI8tQ,EAA4B9tQ,EAAQyuD,uBAAyB,eAAgBzuD,GACjF,OAAO8tQ,GAA6BA,EAA0B3oQ,OAAS2oQ,EAA0B3oQ,OAASnF,EAAQ4rF,cAEtH6hL,gBAAiB,WACb,IAEI3qN,EACA8lC,EACAmlL,EACA9gL,EALA47H,EAAa,GACbmlD,EAAkB,GAKtB,GAAI1lR,KAAKwjR,iBAAmBxjR,KAAKmhE,eAAiBnhE,KAAK2jR,mBAAoB,CACvE,IAAIgC,EAAc3lR,KAAKulR,iBAAiBvlR,KAAKmhE,cAAczjE,IAAI,IAC3DkoR,EAAmB5lR,KAAKulR,iBAAiBvlR,KAAK2jR,mBAAmBjmR,IAAI,IAIzE,GAHA4iG,EAAetgG,KAAKgnE,gBAAgBhnE,KAAKmhE,eACzCskN,EAAoBzlR,KAAKgnE,gBAAgBhnE,KAAK2jR,oBAC9Ch/K,EAAkB3kG,KAAK+lE,sBACnB4/M,IAAgBC,EAAkB,CAIlC,IAHAjhL,GAAmBA,EAAgBloF,IAAI,SAAUkpQ,GACjDrlL,EAAa7jF,IAAI,SAAU,IAC3BgpQ,EAAkBhpQ,IAAI,SAAU,IAC3B+9C,EAAW,EAAGA,EAAW8lC,EAAa1mG,OAAQ4gE,IAC/C+lK,EAAWt9N,KAAKjD,KAAKulR,iBAAiBjlL,EAAa5iG,IAAI88D,KACvDkrN,EAAgBziR,KAAKjD,KAAKulR,iBAAiBE,EAAkB/nR,IAAI88D,KAErE,IAAKA,EAAW,EAAGA,EAAW8lC,EAAa1mG,OAAQ4gE,IAAY,CAC3D,IAAIymK,EAAYV,EAAW/lK,GACvBqrN,EAAiBH,EAAgBlrN,GACjCymK,EAAY4kD,EACZJ,EAAkBjpQ,GAAGg+C,GAAU/9C,IAAI,SAAUwkN,GACtCA,EAAY4kD,GACnBvlL,EAAa9jF,GAAGg+C,GAAU/9C,IAAI,SAAUopQ,GAGhDlhL,GAAmBA,EAAgBloF,IAAI,SAAU,OAI7DyrD,mBAAoB,SAAS78D,GACzB,IAAIgR,EAAarc,KAAK4Y,OAAO,cAC7B5Y,KAAKC,SAASoL,GACdrL,KAAK0X,UAAUsgD,SAAS,IAAMh4D,KAAK4X,gBAAgB,KAAsB6E,IAAI,CACzE0rD,YAAa9rD,EAAahR,EAAQ,GAClC+8D,aAAe/rD,EAAqB,GAARhR,MAIpCy6Q,GAAwC,OAAArrR,EAAA,WAAO,GAAI8oR,GAAkB,CACrE90M,sBAAuB,SAASjU,GAC5B,OAAIx6D,KAAKohO,uBACEphO,KAAKi+E,gBAAgBzjB,GAEzBx6D,KAAKC,SAASu6D,IAEzBgW,oBAAqB,SAAS16D,GAC1B,IAAIyE,EAASzE,EAAQyE,OACjBwrQ,EAAsB/lR,KAAK4Y,OAAO,gBAClCrO,EAAQvK,KAAKC,SAAS6V,GAC1B,GAAIA,EAAQoH,KAAO,WAAapH,EAAQoH,IAAIvC,UACpC,IAASorQ,EAAoBltQ,SAAW0B,GAAUA,EAAOgiC,YAAa,CACtE,IAAIm0B,EAAcC,IACd,OAAQA,EAAOE,SAAShvE,OACpB,IAAK,OACD7B,KAAKs9D,mBAAmBoK,aAAantD,EAAOnZ,MAAO,SAAS,GAC5D,MACJ,IAAK,OACDpB,KAAKs9D,mBAAmBoK,aAAantD,EAAOnZ,MAAO,CAC/C0d,OAAO,EACPw+B,cAAe,SAEnB,MACJ,IAAK,QACDt9C,KAAKs9D,mBAAmBoK,aAAantD,EAAOnZ,MAAO,CAC/C0d,OAAO,EACPw+B,cAAe,YAI/B/yC,EAAQA,GAAS,GACjBA,EAAMtH,KAAK,CACP1G,KAAMwpR,EAAoBtmO,MAAME,IAChCksD,YAAY,EACZthG,MAAO,CAAC,CACJhO,KAAMwpR,EAAoBtmO,MAAMG,aAChC/9C,MAAO,OACP8yC,SAAUp6B,EAAOuE,SAAWvE,EAAO+iC,eAAiB,SAAW/iC,EAAO+iC,eACtEozB,YAAaA,GACd,CACCn0E,KAAMwpR,EAAoBtmO,MAAMI,cAChCh+C,MAAO,QACP8yC,SAAUp6B,EAAOuE,OAAS,UAAYvE,EAAO+iC,cAC7CozB,YAAaA,KAElB,CACCn0E,KAAMwpR,EAAoBtmO,MAAMK,MAChCj+C,MAAO,OACP8yC,UAAWp6B,EAAOuE,MAClB4xD,YAAaA,IAIzB,OAAOnmE,GAEXy7Q,uBAAwB,SAASxrN,GAC7B,GAAI,eAAUA,GACV,OAAOx6D,KAAK2jR,oBAAsB3jR,KAAKgnE,gBAAgBhnE,KAAK2jR,oBAAoBnnQ,GAAGg+C,GAAUxC,WAEjG,IAAI0X,EAAiB1vE,KAAKs4D,oBACtB2tN,EAA4BjmR,KAAKglR,8BACrC,GAAIt1M,GAAkBu2M,GAA6BA,EAA0BrsR,OAAQ,CACjF,IAAIykF,EAAyB8kM,GAA0BnjR,KAAKi+E,mBAC5DvO,EAAerL,OAAOga,EAAwB4nM,EAA0BvoR,IAAI,GAAGqrD,QAASk9N,EAA0BvoR,IAAI,IAE1H,OAAOgyE,GAEXrJ,gBAAiB,WACb,IAAIg9M,EACApkR,EAASe,KAAKC,WACdimR,EAAuBlmR,KAAKgmR,yBAC5BhyD,EAAeh0N,KAAKi+E,kBAQxB,OAPIj+E,KAAK2jR,qBAEDN,EADA6C,GAAwBA,EAAqBtsR,OAC/BoG,KAAKgmE,WAAWkgN,GAEhBlmR,KAAKC,SAASD,KAAK2jR,qBAGlCP,GAAsBpvD,EAAc/0N,EAAQokR,MAGvD8C,GAA+B,OAAA1rR,EAAA,WAAO,GAAI8oR,GAAkB,CAC5D6C,mBAAoB,WAChBpmR,KAAK2jR,oBAAsB,OAAa1yN,IAAIjxD,KAAK2jR,mBAAoB,qBAAsB,gBAC3F3jR,KAAKmhE,eAAiB,OAAalQ,IAAIjxD,KAAKmhE,cAAe,qBAAsB,iBAErFk3C,mBAAoB,WAChB,IAAI10G,EAAO3D,KACPqmR,EAAmB,SAASvsN,GAC5B,OAAahwD,GAAGgwD,EAAQ,qBAAsB,eAAgBn2D,EAAKwtD,cAAa,SAAU9hB,GACtF,IAAI2iB,EAAQ3iB,EAAK2iB,MACbwI,EAAW72D,EAAK82D,YAAY,eAAEzI,EAAM97C,QAAQiI,QAAQ,YACpDmoQ,EAAU,cAAgBt0N,EAAMvzD,KAChC+7D,GAAY,IACZ72D,EAAKw9D,eAAiBx9D,EAAKqjE,gBAAgBrjE,EAAKw9D,eAAe3kD,GAAGg+C,GAAUjG,YAAYwuN,GAAmBuD,GAC3G3iR,EAAKggR,oBAAsBhgR,EAAKqjE,gBAAgBrjE,EAAKggR,oBAAoBnnQ,GAAGg+C,GAAUjG,YAAYwuN,GAAmBuD,SAI7H3iR,EAAKggR,oBAAsBhgR,EAAKw9D,gBAChCklN,EAAiB1iR,EAAKggR,oBACtB0C,EAAiB1iR,EAAKw9D,iBAG9B4E,oBAAqB,WACjB,IACI2H,EACA8zC,EAFA79G,EAAO3D,KAGPumR,EAAe5iR,EAAKiU,gBAAgB,IACpCF,EAAU/T,EAAK+T,UACf8uQ,EAAc5mQ,EAAA,KAAQC,QAAU,GAAK,EACzC,GAAInI,GAAW/T,EAAKy9N,uBAAwB,CACxC1zJ,EAAWh2D,EAAQsgD,SAAS,IAAMuuN,GAClC,IAAIvpL,EAAar5F,EAAKu6F,gBAkCtB,OAjCKxwB,EAAS9zE,QAAUojG,IACpBtvB,EAAW,eAAE,SAASv1D,SAASouQ,GAC/B,OAAaz8Q,GAAG4jE,EAAU,UAAU,SAAU9pE,GAC1Cw2D,aAAaz2D,EAAK8iR,qBAClB9iR,EAAK8iR,oBAAsB/mP,YAAW,WAClC8hF,EAAY,eAAE59G,EAAEsS,QAAQsrG,YACxBxkB,EAAWt7B,SAAS,CAChBvvD,EAAGqvG,MAEPglK,MAER,OAAa18Q,GAAG4jE,EAAUg5M,GAAA,MAAgB,SAAU9iR,GAChD,IAAI+iR,EAAqB,eAAE/iR,EAAEsS,QAAQiI,QAAQ,kBACzCyoQ,GAAe,EACnB,GAAI5pL,GAAcA,EAAWnmF,WAAWjpB,GAAG+4R,GACvCC,GAAe,MACZ,CACH,IAAIC,EAA4BF,EAAmB/sR,QAAU,QAAW+pG,YAAYgjL,EAAmBjpR,IAAI,IACvGopR,EAAwCD,GAA6BA,EAA0BzkK,eAAiBykK,EAA0BvjL,eAAiB,EAC/JsjL,EAAeC,IAA8BC,EAEjD,GAAIF,IACAplK,EAAYxkB,EAAWwkB,YACvBxkB,EAAWt7B,SAAS,CAChBvvD,EAAGqvG,EAAY59G,EAAE6uI,QAEjBz1C,EAAWwkB,YAAc,GAAKxkB,EAAWwkB,YAAcxkB,EAAWsG,eAAiBtG,EAAWolB,eAAiBz+G,EAAKu+F,qBACpH,OAAO,KAInBx0B,EAASt1D,SAASV,IAEfg2D,EAEX,OAAO/pE,EAAK1D,YAEhBwjG,kBAAmB,WACfzjG,KAAKC,WACL,IAAI+8F,EAAah9F,KAAKk+F,gBACtB,GAAI,OAASlB,QAAc,IAAWA,IAAcA,EAAWy5E,UAA/D,CAGA,IAAIj1D,EAAYxkB,GAAcA,EAAWyB,eAAe7hF,IACxD5c,KAAK+mR,0BAA0BvlK,KAEnCxiB,eAAgB,SAASC,EAAgBt+B,GACrC,OAAI3gE,KAAKohO,uBACEniI,EAAe7sC,QAAQj6C,SAASnY,KAAK4X,gBAAgB,IAAiB,IAAM5X,KAAK4X,gBAAgB,KAAsBmiB,OAAO4mC,GAElI3gE,KAAKC,SAASg/F,EAAgBt+B,IAEzCmgC,qBAAsB,SAAShrF,GAC3B,OAAI9V,KAAKohO,uBACEphO,KAAKC,SAAS,OAAAxF,EAAA,WAAO,GAAIqb,EAAS,CACrC0I,QAASxe,KAAKs9D,mBAAmBC,uBAGlCv9D,KAAKC,SAAS6V,IAEzBkrF,oBAAqB,SAAS5jC,EAAMtnD,GAChC,OAAO9V,KAAKC,SAASm9D,EAAM,OAAA3iE,EAAA,WAAO,GAAIqb,EAAS,CAC3C0I,QAASxe,KAAKs9D,mBAAmBC,wBAGzC8kN,yBAA0B,SAASjlN,EAAMtnD,GACjC9V,KAAKohO,uBACLphO,KAAKC,SAASm9D,EAAM,OAAA3iE,EAAA,WAAO,GAAIqb,EAAS,CACpC0I,QAASxe,KAAKs9D,mBAAmBC,uBAGrCv9D,KAAKC,SAASm9D,EAAMtnD,IAG5BwsQ,8BAA+B,SAAS/sQ,EAAaO,GACjD,IAAI7W,EAASe,KAAKC,SAASnB,MAAMkB,KAAME,WACnCqa,EAASzE,EAAQ0I,QAAQjJ,GAC7B,OAAIO,EAAQ4pF,QACDnlF,EAAOuE,QAAU7f,GAAU,UAAYsb,EAAO+iC,eAElDr+C,KAAYe,KAAKwjR,kBAAoBjpQ,EAAOuE,QAEvD6jQ,6BAA8B,SAASD,EAAY5sQ,EAAS0sQ,EAAkBC,GAC1E,IAAIiC,EACJ,GAAI1kR,KAAKohO,uBAAwB,CAC7BtrN,EAAQ4pF,SAAU,EAClBglL,EAA8B1kR,KAAKuiR,2BAA2BC,EAAkB1sQ,GAChFA,EAAQ4pF,SAAU,EAClB,IAAIvjF,EAAmBrG,EAAQ0I,QAAQ5kB,OAAS8qR,EAChD5uQ,EAAU,OAAArb,EAAA,WAAO,GAAIqb,EAAS,CAC1B0I,QAASxe,KAAKi+E,oBAElB,IAAII,EAAyB8kM,GAA0BrtQ,EAAQ0I,SAC3DrC,EAAmBkiE,GACnBqmM,GAA+B5uQ,EAAQ0I,QAAQ6/D,GAAwB9hB,QAAU,GAAK,EACtFimN,GAAoB1sQ,EAAQ0I,QAAQ6/D,GAAwB9hB,QAAU,GAAK,GACpEkmN,EAAyB,GAChCC,EAAWjmQ,IAAI,aAAc,UAEjCgmQ,EAAyBiC,EAE7B1kR,KAAKC,SAASyiR,EAAY5sQ,EAAS0sQ,EAAkBC,IAEzDG,qBAAsB,SAASrtQ,EAAaiJ,GACxC,GAAIxe,KAAKohO,uBAAwB,CAC7B,IAAI/iJ,EAAyB8kM,GAA0B3kQ,GAIvD,OAHIjJ,EAAc8oE,IACd9oE,GAAeiJ,EAAQ6/D,GAAwB9hB,QAAU,GAEtDhnD,EAEX,OAAOvV,KAAKC,SAASnB,MAAMkB,KAAME,YAErCuzD,YAAa,SAASlS,GAClBvhD,KAAKomR,qBACLpmR,KAAKC,SAASshD,GACd,IAAIipF,EAAiBxqI,KAAKwjR,gBAC1BxjR,KAAK0X,UAAU68C,YAAY0uN,GAAqBz4I,GAC5CxqI,KAAK4Y,OAAO,sBAAwB4xH,GACpCxqI,KAAKq4G,sBAGbvnC,eAAgB,SAASv7D,EAAa1T,GAClC7B,KAAKC,SAASsV,EAAa1T,GAC3B,IAAIykE,EAAQtmE,KAAKgnE,gBAAgBhnE,KAAK2jR,oBACtC3jR,KAAK0hG,oBAAoBp7B,EAAOtmE,KAAKi+E,kBAAmB1oE,EAAa1T,IAEzEqvD,cAAe,SAAS7hB,GACpBrvC,KAAKC,SAASovC,GACV,sBAAwBA,EAAKztC,MAAQ5B,KAAKwjR,kBAC1Cn0O,EAAKxtC,MAAQ7B,KAAKq4G,qBAAuBr4G,KAAKomR,uBAGtDvhN,aAAc,SAAShN,GACnB,IAAImsN,EAAchkR,KAAK2jR,mBACnBngN,EAAY,EAChB,GAAIwgN,GAAensN,EAAMjqE,GAAG,OAASiqE,EAAM15C,QAAQ6lQ,GAAapqR,OAAQ,CACpE,IAAI4kB,EAAUxe,KAAKi+E,kBAWnB,OAVA,eAAKz/D,GAAS,SAAUpd,EAAOmZ,GAC3B,GAAInZ,IAAUy2D,EAAM,GAAG2L,UACnB,OAAO,EAEPjpD,EAAOgiD,QACPiH,GAAajpD,EAAOgiD,QAGxBiH,OAEGA,EAEX,OAAOxjE,KAAKC,SAASnB,MAAMkB,KAAME,YAErC6mR,0BAA2B,SAASvlK,EAAWwlK,GAC3C,GAAIhnR,KAAK2jR,oBAAsB3jR,KAAKmhE,cAAe,CAC/C,IAAIo5G,EACAr4D,EAAgBliH,KAAK2xD,cAAc,iBACvC3xD,KAAK2jR,mBAAmBvkQ,SAASoiG,UAAUA,GACvCwlK,GAAa9kK,IACbq4D,EAAkBr4D,EAAcvtD,QAChC4lH,GAAmBr4D,EAAcvtD,MAAM4lH,MAInDryG,mBAAoB,SAAS++M,EAAQC,GACjC,IAAIC,EAAS,CACTjzN,aAAc,GAEdkzN,EAAgBpnR,KAAK0X,UAAUsgD,SAAS,IAAMh4D,KAAK4X,gBAAgB,KACvE,GAAIwvQ,EAAcxtR,QAAUoG,KAAK2jR,mBAAoB,CACjDyD,EAAc3qQ,IAAI0qQ,GAClBnnR,KAAK2jR,mBAAmBlnQ,IAAI0qQ,GAC5BA,EAAOnnR,KAAK4Y,OAAO,cAAgB,aAAe,eAAiBquQ,EACnEE,EAAOjzN,aAAegzN,EACtB,IAAIprN,EAAqB97D,KAAK8+F,aAAe9+F,KAAK8+F,YAAYlmF,OAAO,cACpEkjD,EAAqBsrN,EAAgBpnR,KAAK2jR,oBAAoBlnQ,IAAI0qQ,KAG3EE,qBAAsB,SAASzjR,GAC3B,IAAI0jR,EAAmB,EACvB,GAAI1jR,EAAE66F,aAAa7hF,IAAM,EACrB0qQ,GAAoB1jR,EAAE66F,aAAa7hF,SAChC,GAAIhZ,EAAE2jR,cAAe,CACxB,IAAIC,EAAqB,eAAE5jR,EAAEgO,UAAUgoD,WACnC6tN,EAAuB,eAAE7jR,EAAEgO,UAAUoH,aACrC0uQ,EAAel2Q,KAAK1I,IAAI0+Q,EAAmB9pR,IAAI,GAAG4lG,aAAemkL,EAAqB/pR,IAAI,GAAG4lG,aAAc,GAC/GgkL,EAAmBI,EAAe9jR,EAAE66F,aAAa7hF,IAErD,OAAOpL,KAAKE,MAAM41Q,IAEtBK,uBAAwB,SAAS/jR,GAC7B,GAAI5D,KAAK2jR,mBAAoB,CACzB,IAAI2D,EAAmBtnR,KAAKqnR,qBAAqBzjR,GAC7C,IAAM4N,KAAKy9E,KAAKq4L,GAChB,gBAAKtnR,KAAK2jR,mBAAoB,CAC1B/mQ,IAAK0qQ,IAGTtnR,KAAK2jR,mBAAmBlnQ,IAAI,YAAa,MAIrD6hF,cAAe,SAAS16F,GACpB5D,KAAK+mR,0BAA0BnjR,EAAE66F,aAAa7hF,KAAK,GACnD5c,KAAK2nR,uBAAuB/jR,GAC5B5D,KAAKC,SAAS2D,IAElBo8N,uBAAwB,SAASgB,GAC7BhhO,KAAKC,SAASnB,MAAMkB,KAAME,WACrB8gO,GACDhhO,KAAK+mR,0BAA0B/mR,KAAKw+F,aAG5Cp5B,kBAAmB,SAASxhE,GACpB5D,KAAKohO,wBAGTphO,KAAKC,SAAS2D,IAElBqhG,iBAAkB,SAASpuF,GACvB7W,KAAKC,SAAS4W,EAAU7W,KAAK8kR,0BAEjC3yN,QAAS,WACLnyD,KAAKC,SAASnB,MAAMkB,KAAME,WAC1Bk6D,aAAap6D,KAAKymR,wBAGtBmB,GAAiCrE,GAC1BsE,GAAqB,CAC5BlqR,eAAgB,WACZ,MAAO,CACHu2C,aAAc,CACVr7B,SAAS,EACT4mC,MAAO,CACHE,IAAK,OAAoBtmD,OAAO,8BAChCymD,MAAO,OAAoBzmD,OAAO,gCAClCumD,aAAc,OAAoBvmD,OAAO,uCACzCwmD,cAAe,OAAoBxmD,OAAO,4CAK1Du8D,UAAW,CACPF,MAAO,CACHkX,kBAAmBk5M,GACnB1oQ,SAAU+oQ,GACVjtK,WAAY0uK,IAEhBpyN,YAAa,CACTuzM,eAAgB,CACZ/E,yBAA0B,SAASluP,GAC/B,IAAIunD,EAAiBvnD,EAAQ0I,QACzBmlP,EAAsB7tP,EAAQ6tP,oBAClC,GAAIA,GAAuB,YAAcA,EAAoB17L,WAAa07L,EAAoBn5H,kBACtF10H,EAAQ8qE,aAAa9hE,MAAO,CACvBhJ,EAAQ0kD,WACT1kD,EAAQ45D,eAAiBi0L,EAAoBqiB,uBAAuB,IAExElwQ,EAAQ0I,QAAUmlP,EAAoB1lL,gBAAgBnoE,EAAQ0kD,UAC9D,IAAIupM,EAAkB/jQ,KAAKC,SAAS6V,GAYpC,OAXE,SAAS0I,EAASw1M,EAAc+vC,GAC9B,IAAI1lL,EAAyB8kM,GAA0BnvD,GACnDl2D,EAAet/I,EAAQ5kB,OAASo6N,EAAap6N,OACjD,eAAKmqQ,GAAiB,SAAUhlQ,EAAG2d,GAC3BA,EAAMtb,MAAQi9E,IACd3hE,EAAMnH,aAAeuoJ,EACrBphJ,EAAMtb,OAAS08J,MANzB,CAUAzgG,EAAgBvnD,EAAQ0I,QAASulP,GAC5BA,EAGf,OAAO/jQ,KAAKC,SAAS6V,IAEzB8uP,cAAe,SAASloP,EAAO8B,EAASwsC,EAAU41B,GAC9C,IAAI3hF,EAASe,KAAKC,SAASnB,MAAMkB,KAAME,WACnCghF,EAAe1iE,EAAQ9B,EAAMnH,aAC7BwvQ,EAAqB/kR,KAAKu6G,mBAAmByqK,8BACjD,IAAK/lR,GAAU,YAAc+rD,GAAY+5N,GAAsBA,EAAmBnrR,OAAQ,CACtF,IAAImoQ,EAAe,eAAgBgjB,EAAmBrnR,IAAI,IAC1D,OAAIkjF,GAAgBA,EAAa9hE,MACtB,UAAY8hE,EAAatjC,cAAgB5gC,EAAMzJ,EAAI8uP,EAAa5kI,MAAQzgH,EAAMzJ,EAAI8uP,EAAaplP,QAElGukE,IAAgBA,EAAapiE,OAAS,UAAYoiE,EAAa5jC,iBAG5D5gC,EAAMzJ,EAAI8uP,EAAaplP,MAAQD,EAAMzJ,EAAI8uP,EAAa5kI,OAGrE,OAAOl+H,IAGf64O,eAAgB,CACZksB,yBAA0B,WACtB,IAAIrgQ,EAAO3D,KACPs3D,EAAoB3zD,EAAK25D,mBACzB9+C,EAAU84C,GAAqB3zD,EAAK25D,mBAAmBC,oBACvDy2J,EAAe18J,GAAqB3zD,EAAK25D,mBAAmB2gB,kBAC5DI,EAAyB8kM,GAA0BnvD,GACnDl2D,EAAet/I,EAAQ5kB,OAASo6N,EAAap6N,OAC7C6+D,EAAQ90D,EAAK42G,mBAAmByrK,yBACpCriR,EAAK1D,WACDw4D,GAASA,EAAM7+D,OAAS,IACxB+J,EAAKmkR,sBAAwB,OAAc9rQ,mBAAmBy8C,GAAO,SAAU/7C,GAK3E,OAJIA,EAAMtb,MAAQi9E,IACd3hE,EAAMnH,aAAeuoJ,EACrBphJ,EAAMtb,OAAS08J,GAEZn6J,EAAKihQ,cAAcloP,EAAO8B,EAAQ5kB,OAAQ4kB,QAI7DymP,gBAAiB,SAASlB,EAAiBmB,EAAU7B,GACjD,IAAI0hB,EAAqB/kR,KAAKu6G,mBAAmByqK,8BACjD,GAAID,GAAsBA,EAAmBnrR,OAAQ,CACjD,IAAImoQ,EAAe,eAAgBgjB,EAAmBrnR,IAAI,IAC1D,GAAIwnQ,GAAYnD,EAAaplP,MAAQuoP,GAAYnD,EAAa5kI,MAC1D,OAAOn9H,KAAKC,SAASD,KAAK8nR,sBAAuB5iB,EAAU7B,GAGnE,OAAOrjQ,KAAKC,SAAS8jQ,EAAiBmB,EAAU7B,QC92BpE,EAASjtM,eAAe,eAAgByxN,ICmCxC,IAAI,GAAsB,oBACtBE,GAAY,WACZC,GAAc,aACdC,GAAe,CAAC,GAAqBF,GAAWC,IAChDE,GAAqB,uBACrB,GAAuB,iBACvBC,GAAoB,iBACpBC,GAA0B,wBAC1BC,GAAqB,mBACrBC,GAAsB,gBACtBC,GAA+B,gBAC/BC,GAA6B,sBAC7BC,GAAgC,6BAChCC,GAA4B,yBAC5BC,GAA2B,wBAC3B,GAA2B,wBAC3BC,GAAuB,oBACvBC,GAAuB,WACvB,GAAkB,QAClB,GAAgB,MAChB,GAAiB,OACjB,GAAkB,QAClB,GAAuB,iBACvB,GAAmB,gBACnB,GAAkB,eAClBC,GAAmB,gCACnBC,GAAqB,kCACrB,GAAwB,uBAE5B,SAAShjM,GAAYpiF,EAAM4W,GACvB,OAAO5W,EAAK25D,mBAAmByoB,YAAYxrE,GAG/C,SAASyuQ,GAAoB5rN,GACzB,OAAOA,EAAKtlD,KAAK,kEAGrB,SAASmxQ,GAAqBjwQ,EAAWlD,GACrC,IAAIozQ,EACAzzQ,EAAa,eAAEuD,GACfmwQ,EAA4BrzQ,EAAQlE,UAAU+/C,cAAc,mBAC5D,SAAW77C,EAAQ6E,SACnBuuQ,EAAwB,eAAE,UAAU/wQ,SAASgxQ,EAA0BvxQ,gBAAgB2wQ,KACvF,OAAaz+Q,GAAGo/Q,EAAuB,gBAAa,OAAgBhB,IAAqBiB,EAA0Bh4N,cAAa,WAC5Hg4N,EAA0BC,8BAA8BtzQ,EAAQhb,SAEpEouR,EAAsB9wQ,SAAS3C,IAE/B,OAAcD,aAAaC,GAGnC,IAAI4zQ,GAA4B,EAAQz2N,eAAe7C,QAAQ,CAC3Di7M,eAAgB,WACZ,IAAIzpF,EAAWvhL,KAAKspR,eACpB,OAAO/nG,IAAa,IAExBgoG,gBAAiB,SAAS1/Q,EAAM2zD,GAC5B,IAAIjoD,EAAcvV,KAAKs9D,mBAAmByB,gBAAgBl1D,EAAK0Q,OAAOnZ,OAClEo5D,EAAWx6D,KAAKiY,gBAAgB4hF,iBAAiBr8B,EAAY1iE,KAC7DoiB,EAAMld,KAAKiY,gBAAgB1N,QAAQiwD,EAAW,GAClD,OAAOt9C,GAAOA,EAAIg5E,gBAAkB,eAAUh5E,EAAIg5E,eAAe3gF,KAErEi0Q,wBAAyB,SAAS3/Q,EAAM2zD,EAAa/nD,GACjD,IAAI8E,EAAS1Q,EAAK0Q,OACdkvQ,EAAczpR,KAAKmxD,cAAa,WAChC,OAAanzC,QAAQvI,EAAY,WAEjC6wI,EAAU9oF,EAAYtgD,IAAI9Y,KAC1BvC,EAAQ0Y,EAAO1F,mBAAmByxI,GAClClhE,EAAe,OAAc1qE,gBAAgBH,EAAQ1Y,EAAOykJ,EAAS9oF,EAAY7iD,SACjFpe,EAAO,OAAcsZ,YAAYuvE,EAAc7qE,GAC/C0uM,EAAwBjpN,KAAKwxL,mBAAmBy3B,wBAChD7rM,EAAWpd,KAAKw6G,UAQpB,GAPIjgG,EAAOjP,cAAgBtL,KAAK2xD,cAAc,sBAAsB8Z,sBAChEh2D,EAAWi8C,KAAK,WAAY1xD,KAAK4Y,OAAO,aACpCqwM,IACA,OAAah4J,IAAIx7C,EAAY,QAASg0Q,GACtC,OAAa3/Q,GAAG2L,EAAY,QAASg0Q,KAGzClvQ,EAAOpP,aAAc,CACrB,IAAIo1D,EAAkB,OAAA9lE,EAAA,WAAO,GAAI+iE,EAAa,CAC1C37D,MAAOA,EACPujF,aAAcA,EACd7oF,KAAMA,EACNge,OAAQA,IAER6uM,IAAiB3zM,EAAW0I,QAAQ,iBAAY4gB,UAAUnlC,OAC9DwjB,EAASijD,eAAe5qD,EAAY8E,EAAOpP,aAAco1D,EAAiB6oJ,GAAc/qM,KAAK,KACzFjB,EAAS++C,cAAc1mD,EAAY+nD,SAEpC,CACH,IAAIxkD,EAAYvD,EAAW/X,IAAI,GAC3B6c,EAAO2iC,WACPlkC,EAAUtD,YAAcnZ,EAExByc,EAAUqkF,UAAY9gG,EAE1BkZ,EAAW0C,SAASwwQ,IACf,eAAUpsR,IAAS,KAAOA,GAC3BkZ,EAAWq1C,KAAK,UAEf9qD,KAAKgrQ,kBACFhrQ,KAAKupR,gBAAgB1/Q,EAAM2zD,IAC3B/nD,EAAW0C,SAASkwQ,IAG5BjrQ,EAAS++C,cAAc1mD,EAAY+nD,KAG3CnJ,aAAc,SAASxqD,EAAM2zD,GACzB,IAAI75D,EAAO3D,KACPua,EAAS1Q,EAAK0Q,OACdqhF,EAAoB57F,KAAK2xD,cAAc,WAC3C,OAAO,SAAS77C,EAASkD,GACrB,IAAIvD,EAAa,eAAEuD,GACfzD,EAAc5R,EAAK25D,mBAAmByB,gBAAgBxkD,EAAOnZ,OAC7Dm/D,EAAkB,OAAA9lE,EAAA,WAAO,GAAI+iE,GAC7BksN,EAAqB,WACrB,IAAIC,EAAehmR,EAAKimR,cAAc//Q,GACtC02D,EAAgB1+D,MAAQ27D,EAAYtgD,IAAI8J,OAAOzR,GAC3Co0Q,GAAgBpvQ,EAAO2jC,iBACvB09C,EAAkBirH,uBAAuBtmJ,EAAiB12D,EAAMiM,EAASL,GAAak0Q,IAEtFppN,EAAgBhmD,OAASA,EACzBgmD,EAAgBhrD,YAAcA,EAC9B5R,EAAK6lR,wBAAwB3/Q,EAAM02D,EAAiB9qD,KAG5Di0Q,IACAnpN,EAAgBwD,OAASxD,EAAgBwD,OAAM,WAC3C,MAAO,CACH4lN,aAAchmR,EAAKimR,cAAc//Q,GACjChI,MAAO27D,EAAYtgD,IAAI8J,OAAOzR,OAElC,WACAE,EAAW6xM,WAAW3uM,SACtBlD,EAAW4C,YAAYswQ,IACvBe,SAIZG,uBAAwB,SAASxsN,GAC7B,QAAIA,EAAiB,MAGjBA,EAAezjE,OAAS,WAEpB,IADA,IAAIqF,EAAS,EACJyM,EAAI,EAAGA,EAAI2xD,EAAezjE,OAAQ8R,IAAK,CAC5C,IAAIs4E,EAAgB3mB,EAAe3xD,GAC/Bs4E,EAAcnlE,SACd5f,IAGR,OAAOA,EARa,IASjB,IAKf6qR,wBAAyB,SAASplN,EAAQrH,GACtC,IAAI15D,EAAO3D,KACP+pR,EAAgB,EAMpB,OALA1sN,EAAen8D,SAAQ,SAAU2I,EAAMzI,GAC/BsjE,EAAOtjE,KAAW,KAClB2oR,GAAiBpmR,EAAKqmR,qBAAqBngR,OAG5CkgR,GAEXE,gBAAiB,SAAS5+Q,GACtB,OAAO,eAASA,IAAU,MAAQA,EAAM2I,OAAO,IAEnDk2Q,gBAAiB,SAAS3vQ,GACtB,OAAOva,KAAKmqR,eAAe/rR,QAAO,SAAUgsR,GACxC,OAAOA,EAAahpR,QAAUmZ,EAAOnZ,SACrCxH,OAAS,GAEjBulH,wBAAyB,SAASqtH,EAAgBhuN,EAAS6rQ,GACvD,IAAI1mR,EAAO3D,KACPsqR,EAAoB,EACpBC,EAAgC,EAkBpC,OAjBA/rQ,EAAQtd,SAAQ,SAAUqZ,GACtB,IAAK5W,EAAKumR,gBAAgB3vQ,GAAS,CAC/B,IAAIlP,EAAQkP,EAAOlP,MACf,eAAUA,KAAW7H,MAAMywD,WAAW5oD,IACtCi/Q,GAAqB3mR,EAAKsmR,gBAAgB5+Q,GAAS1H,EAAK6mR,uBAAuB,CAC3EhsO,aAAcjkC,EAAOikC,aACrBosK,aAAcpsM,EAAQ5kB,OACtBywR,cAAeA,EACfr3M,aAAcz4D,EAAOy4D,aACrB1+B,YAAajpC,EACbmhO,eAAgBA,IACfv4K,WAAW5oD,GAEhBk/Q,SAIJ/9C,EAAiB89C,GAAqBC,GAElDE,sBAAuB,SAASlwQ,EAAQiyN,EAAgBk+C,EAAgBL,GACpE,IAIIM,EAJAntK,EAAWz3B,GAAY/lF,KAAMua,GAC7BqwQ,EAAc5qR,KAAKs9D,mBAAmBoK,aAAa81C,EAAU,SAC7DxqC,EAAehzE,KAAKs9D,mBAAmBoK,aAAa81C,EAAU,gBAC9DotG,EAAe8/D,EAAe9wR,OAElC,GAAIgxR,GAAe,SAAWA,EAAa,CACvC,IAAI5qR,KAAKiqR,gBAAgBW,GAUrB,OAAO32N,WAAW22N,GATlBD,EAAW3qR,KAAKwqR,uBAAuB,CACnChsO,aAAcjkC,EAAOikC,aACrBosK,aAAcA,EACdy/D,cAAeA,EACfr3M,aAAcA,EACd1+B,YAAas2O,EACbp+C,eAAgBA,QAKrB,CACH,IAAIx4L,EAAkBh0C,KAAK4Y,OAAO,mBAClC+xQ,EAAW32O,GAAqBz5B,EAAOsE,QAAUm0D,EAAehzE,KAAKm/G,wBAAwBqtH,EAAgBk+C,EAAgBL,GAEjI,OAAOM,GAEXH,uBAAwB,SAAS10Q,GAC7B,IAAI+0Q,EAAe/0Q,EAAQ0oC,aAAe1oC,EAAQ80M,aAAe,GAAK90M,EAAQu0Q,cAC1ES,EAAeh1Q,EAAQ02N,eAAiBv4K,WAAWn+C,EAAQw+B,aAAe,IAC1Ey2O,EAAcj1Q,EAAQu0Q,eAAiBS,EAAeh1Q,EAAQk9D,aAAel9D,EAAQk9D,aAAe83M,EACxG,OAAOD,EAAe/0Q,EAAQ02N,eAAiBv4K,WAAWn+C,EAAQw+B,aAAe,IAAMy2O,GAE3FC,4BAA6B,SAASzwQ,EAAQiyN,EAAgBk+C,EAAgBL,GAC1E,IAAI7sK,EAAWz3B,GAAY/lF,KAAMua,GAC7BqwQ,EAAc5qR,KAAKs9D,mBAAmBoK,aAAa81C,EAAU,SAC7DxqC,EAAehzE,KAAKs9D,mBAAmBoK,aAAa81C,EAAU,gBAClE,GAAIotK,GAAe,SAAWA,IAAgB5qR,KAAKiqR,gBAAgBW,GAC/D,OAAO32N,WAAW22N,GAEtB,IAAID,EAAW3qR,KAAKyqR,sBAAsBlwQ,EAAQiyN,EAAgBk+C,EAAgBL,GAClF,OAAOM,EAAW33M,EAAe,KAAO23M,GAE5CX,qBAAsB,SAASngR,GAC3B,IAAI5K,EAAS,EAIb,OAHI4K,EAAKwB,OAASrL,KAAKiqR,gBAAgBpgR,EAAKwB,SACxCpM,EAASg1D,WAAWpqD,EAAKwB,QAEtBpM,GAEXgsR,wBAAyB,WACrB,IAAItnR,EAAO3D,KACPwe,EAAU7a,EAAK25D,mBAAmBC,oBAClCotN,EAAW,EAMf,OALA,eAAKnsQ,GAAS,SAAUpd,EAAOmZ,IACvBA,EAAOnZ,MAAQ,GAAKmZ,EAAOsE,WAC3B8rQ,GAAYhnR,EAAK25D,mBAAmBoK,aAAaqe,GAAYpiF,EAAM4W,GAAS,iBAAmB,MAGhGowQ,GAEXf,cAAe,SAAS//Q,GACpB,GAAI7J,KAAK6kN,wBACL,OAAO,EAEX,IAAI7kN,KAAKgrQ,iBAKF,CACH,IAAIxwM,EAAWx6D,KAAKiY,gBAAgB4hF,iBAAiB75F,KAAKiY,gBAAgBizQ,uBAAyB,EAC/F31Q,EAAcvV,KAAKs9D,mBAAmByB,gBAAgBl1D,EAAK0Q,OAAOnZ,OACtE,OAAOpB,KAAKwxL,mBAAmBpM,WAAW5qH,EAAUjlD,GAPpD,IAAIwrC,EAAa/gD,KAAK4Y,OAAO,sBAC7B,QAAI,eAAamoC,EAAY/gD,KAAKiY,gBAAgBizQ,6BAAlD,GASRC,6BAA8B,SAASC,GACnC,IAAI7gR,EAAQ,GASZ,OARA,eAAK6gR,GAAe,SAAUrsR,EAAGwb,GAC7BhQ,EAAMtH,KAAK,CACPsX,OAAQA,EACR3Y,KAAM2Y,EAAO3Y,KACbyZ,UAAWd,EAAOc,UAClBmjC,aAAcjkC,EAAOikC,kBAGtBj0C,GAEX8gR,+BAAgC,SAAShuN,GACrC,IAAK,IAAI5hE,EAAI,EAAGA,EAAI4hE,EAAezjE,OAAQ6B,IAAK,CAC5C,IAAI8e,EAAS8iD,EAAe5hE,GAC5B,GAAI8e,EAAOsE,UAAYgqQ,GACnB,OAAOptR,IAInB6vR,oBAAqB,SAAS7sQ,EAAc4+C,GACxC,IAAI7e,EAAex+C,KAAKqrR,+BAA+BhuN,GACnD,eAAU7e,KACV//B,EAAa+/B,GAAgB,GAC7Bx+C,KAAKurR,mBAAmB,CACpB9oB,iBAAiB,EACjBjkN,aAAcA,MAI1Bm9N,uBAAwB,SAASxrQ,GAC7B,IACIkoD,OAAQA,EACRoqM,gBAAiBA,GACjBtyP,EACAq7Q,EAAuBxrR,KAAK4X,gBAAgB0wQ,IAC5C7lB,GACA+oB,EAAuB/C,GACvBpwN,EAAO3G,KAAK,CACRtX,SAAU,EACV,cAAe,OAChB/hC,YAAYmzQ,IAEfnzN,EAAOhgD,YAAYmzQ,IAG3BC,mBAAoB,WAChB,IAAK,IAAIhwR,EAAI,EAAGA,EAAIwsR,GAAaruR,OAAQ6B,IAAK,CAC1C,IAAIg+G,EAAOz5G,KAAKqd,QAAQ4qQ,GAAaxsR,IACrC,GAAIg+G,GAAQA,EAAKzhG,aAAeyhG,EAAK/hG,UAAW,CAC5C,IAAI2xD,EAAWowC,EAAK73G,KAChB8pR,EAAsBjyK,EAAK/hG,UAAUI,KAAK,IAAM2wQ,IACpDzoR,KAAK27Q,uBAAuB,CACxBtyM,SAAUA,EACVhR,OAAQqzN,EACRjpB,iBAAiB,IAErB,IAAIkpB,EAAelyK,EAAK/hG,UAAUI,KAAK,IAAM9X,KAAK4X,gBAAgB0wQ,KAClEtoR,KAAK27Q,uBAAuB,CACxBtyM,SAAUA,EACVhR,OAAQszN,OAKxBnX,aAAc,SAAS38M,GACnB,OAAOA,GAASA,EAAMj+D,SAAWi+D,EAAMZ,SAAS,MAA8BY,EAAMZ,SAAS,KAEjGs0N,mBAAoB,SAAS36Q,GACzB,IACI6xP,gBAAiBA,EACjBjkN,aAAcA,GACd5tC,EACAjN,EAAO3D,KACXioR,GAAa/mR,SAAQ,SAAUmoE,GAC3B,IAAIowC,EAAO91G,EAAK0Z,QAAQgsD,GACxBowC,GAAQ91G,EAAKioR,yBAAyB,CAClCnyK,KAAMA,EACNgpJ,gBAAiBA,EACjBjkN,aAAcA,QAI1BotO,yBAA0B,SAAS39L,GAC/B,IAMIvf,GALA+qC,KAAMA,EACNgpJ,gBAAiBA,EACjBjkN,aAAcA,GACdyvC,EACA5kB,EAAWowC,EAAK73G,KAEhB2Y,EAASva,KAAKs9D,mBAAmBC,oBAAoB/e,GACrD8pK,EAAmBtoN,KAAKwxL,oBAAsBxxL,KAAKwxL,mBAAmBtM,sBAC1E,GAAIzrE,GAAQA,EAAKzhG,aAAeuC,EAG5B,IAFA,IAAI6rL,EAAY3sF,EAAK5xC,eACjBy4B,EAAemZ,EAAKzyC,kBACfxM,EAAW,EAAGA,EAAW4rI,EAAW5rI,IAAY,CACrD,IAAIqxN,EAAoBrxN,IAAa8tJ,GAAoBj/I,IAAa0+M,IAAa,UAAY/nR,KAAK4Y,OAAO,gBAC3G,IAAKizQ,EAAmB,CACpB,IAAIC,EAAsBziN,IAAa,GAAsBrpE,KAAKs9D,mBAAmByB,gBAAgBxkD,EAAOnZ,MAAOo5D,GAAYhc,EAC/H,GAAIstO,GAAuB,EAAG,CAC1B,IAAIjpN,EAAcy9B,EAAa9jF,GAAGg+C,GAClCkU,EAAe1uE,KAAK+rR,sBAAsBlpN,EAAaipN,GACvD9rR,KAAKw0Q,aAAa9lM,IAAiB1uE,KAAK47Q,uBAAuB,CAC3DvyM,SAAUA,EACVo5L,gBAAiBA,EACjB5qM,MAAO6W,QAO/B,sBAAsB7L,EAAa61M,GAC/B,IAAIsT,EAAYnpN,EAAY7K,WACxBxZ,EAAek6N,EACfuT,GAAoB,EACxB,GAAIppN,EAAY5L,SAAS,IAAkB,CACvC,IAAIyrN,EAAa7/M,EAAY/qD,KAAK,IAAI6P,OAAO,KACzCohC,EAAU25N,EAAWhxN,KAAK,WAC9B,GAAIgxN,EAAW9oR,QAAU,eAAUmvD,GAAU,CACzC,IAAImjO,EAAkB3qR,SAASwnD,GAC3BojO,EAAgBzJ,EAAWthR,QAAU8qR,EAAkB,EACvDxT,EAAqByT,EACrB3tO,EAAek6N,EAAqBwT,EAAkB,EAEtDD,GAAoB,GAIhC,IAAIv9M,EAAgBu9M,OAAiD,EAA7BD,EAAUxvQ,GAAGgiC,GACrD,OAAOkwB,GAEXktM,uBAAwB,SAASztL,GAC7B,IACIt2B,MAAOA,EACP4qM,gBAAiBA,GACjBt0K,EACAi+L,EAAoB3pB,EAAkBgmB,GAAgCzoR,KAAK4X,gBAAgB0wQ,IAC/FzwN,EAAMnG,KAAK,CACPtX,UAAW,EACX,eAAe,IAChBjiC,SAASi0Q,IAEhB9C,aAAc,WACV,OAAOtpR,KAAKwxL,mBAAmBlQ,eAEnCujC,sBAAuB,WACnB,IAAItjC,EAAWvhL,KAAKspR,eACpB,OAAO/nG,IAAa,IAAkBA,IAAa,IAEvD8qG,qBAAsB,SAAS5tQ,EAAc4+C,EAAgBivN,GAEzD,GADAtsR,KAAKmqR,eAAiB,GAClBnqR,KAAK6pR,uBAAuBxsN,IAAmBivN,EAAY1yR,OAAQ,CACnE,IAQI6B,EACA8wR,EACAC,EAVAlwK,EAAa,EACbtgB,EAAeh8F,KAAK4R,UAAUiF,WAC9B41Q,EAAmB,eAASzwL,GAAgBh8F,KAAKirR,0BACjDyB,EAA2B,WAC3B,OAAOrvN,EAAej/D,OAAOyL,IAASA,EAAKgV,SAAW,IAAM7e,KAAKmqR,eAAe/rR,OAAO3C,GAAKA,EAAE2F,QAAUyI,EAAKzI,OAAOxH,SACtH4hB,KAAKxb,MACH2sR,EAAwBD,IACxBE,EAAsBD,EAAsB/yR,OAIhD,EAAG,CACC4yR,GAAiB,EACjBlwK,EAAa,EACb,IAAIytK,EAAgB/pR,KAAK8pR,wBAAwBrrQ,EAAc4+C,GAC3DgtN,EAAgBN,EAAgB,KAAO,IAAMA,EACjD,IAAKtuR,EAAI,EAAGA,EAAI4hE,EAAezjE,OAAQ6B,IAAK,CACxC,IAAIuoF,EAAgB3mB,EAAe5hE,GAC/B64C,EAAct0C,KAAKgrR,4BAA4BhnM,EAAeyoM,EAAkBE,EAAuBtC,GACvG7sK,EAAWz3B,GAAY/lF,KAAMgkF,GAC7B4mM,EAAc5qR,KAAKs9D,mBAAmBoK,aAAa81C,EAAU,SAC7D1/D,EAAW99C,KAAKs9D,mBAAmBoK,aAAa81C,EAAU,YAC1DqvK,EAAqB7sR,KAAKs9D,mBAAmBoK,aAAa81C,EAAU,gBACxE,GAAI/+F,EAAahjB,KAAO,GAAxB,CAIA,IAAK64C,IAAgB0vC,EAAcnlE,UAAYmlE,EAAcllE,MAAO,CAChE0tQ,GAAiB,EACjB,MAEC5B,GAAe,SAAWA,IAC3Bt2O,EAAc9iC,KAAK1I,IAAI+jR,GAAsB,EAAG/uO,GAAY,KAE5DkmC,EAAcnlE,UAAYgqQ,IAAwB0D,KAClDjwK,GAAchoE,QAXdi4O,GAAmB,EAe3B,GADAC,EAAiBA,GAAkBlwK,EAAa,eAAStgB,GACrDwwL,EAAgB,CAChB,IAAIjyQ,EAAS+xQ,EAAYnpQ,MACrBq7B,EAAex+C,KAAKs9D,mBAAmByB,gBAAgBxkD,EAAOnZ,OAClEqrR,GAAoBzsR,KAAKyqR,sBAAsBlwQ,EAAQkyQ,EAAkBE,EAAuBtC,GAChGrqR,KAAKurR,mBAAmB,CACpB/sO,aAAcA,IAElB//B,EAAa+/B,GAAgB,GAC7Bx+C,KAAKmqR,eAAelnR,KAAKsX,GACzBoyQ,EAAwBD,WAEvBF,GAAkBG,EAAsB/yR,OAAS,GAAK0yR,EAAY1yR,QACvEgzR,IAAwBD,EAAsB/yR,QAC9CoG,KAAKsrR,oBAAoB7sQ,EAAc4+C,QAG3Cr9D,KAAKsrR,oBAAoB7sQ,EAAc4+C,IAG/CyvN,4BAA6B,SAASpU,GAElC,IADA,IAAI/rK,EACKlxG,EAAI,EAAGA,EAAIuE,KAAK+sR,eAAenzR,OAAQ6B,IAAK,CACjDkxG,EAAe3sG,KAAK+sR,eAAevwQ,GAAG/gB,GACtC,IAAIoO,EAAO8iG,EAAavoG,KAAK,gBAC7B,GAAIyF,GAAQA,EAAK0Q,QAAUva,KAAKs9D,mBAAmByB,gBAAgBl1D,EAAK0Q,OAAOnZ,SAAWs3Q,EACtF,OAAO/rK,IAInBy8K,8BAA+B,SAAStuR,EAAKkyR,GACnChtR,KAAK6kN,yBAA2B7kN,KAAKwxL,mBAAmBxzH,aAC1Dh+D,KAAK2xD,cAAc,QAAQy3N,8BAA8BtuR,EAAKkyR,IAGtEC,0BAA2B,SAASj0Q,EAAWlD,GAC3C,IAAInS,EAAO3D,KACPyV,EAAa,eAAEuD,GACfk0Q,EAAkB,CAClB3iR,MAAO5G,EAAKwnR,6BAA6BxnR,EAAKwmR,gBAC9CvuE,OAAQ,MAAQ,IAAI,SAEpBuxE,EAAqB,iBAAe,CACpC3lO,SAAU,GACV,GACJxnD,KAAKkyD,cAAc,+BAAgC,CAC/C6uI,YAAamsF,IAEjBvpR,EAAKopR,eAAiB,KACtBppR,EAAKypR,MAAQzpR,EAAKsV,iBAAiB,eAAE,SAASb,SAAS3C,GAAa,GAAM,OAAAhb,EAAA,WAAO0yR,EAAoBD,EAAiB,CAClHxlO,cAAe,SAAS79C,GACpB,IAAI0Q,EAAS1Q,EAAK0Q,QAAU5W,EAAK25D,mBAAmBoK,aAAa79D,EAAKjI,MAAQiI,EAAKwR,WAC/Ed,IACA1Q,EAAK+D,MAAQ/D,EAAK+D,OAAS,GAC3B/D,EAAK+D,MAAMrR,KAAOsN,EAAK+D,MAAMrR,MAAQge,EAAOrP,QAC5CrB,EAAK0Q,OAASA,EACd1Q,EAAKkyC,SAAWp4C,EAAK0wD,aAAaxqD,EAAMiM,EAASnS,EAAK0pR,WAAW7xQ,KAAK7X,KAE1EupR,EAAgBxlO,eAAiBwlO,EAAgBxlO,cAActxC,KAAKpW,KAAM6J,IAE9E4sC,eAAgB,SAAS7yC,GACrBspR,EAAgBz2O,gBAAkBy2O,EAAgBz2O,eAAergC,KAAKpW,KAAM4D,GAC5ED,EAAKopR,eAAiBt3Q,EAAWqC,KAAK,IAAMswQ,SAIxDkF,6BAA8B,WAC1B,OAAO,eAAUttR,KAAKiY,gBAAgBizQ,wBAE1CmC,WAAY,SAASjC,GACbprR,KAAKstR,gCACDttR,KAAKotR,OAAS,eAAUptR,KAAKotR,MAAMG,uBAC/BnC,GAAiBA,EAAcxxR,OAC/BoG,KAAKotR,MAAMx0Q,OAAO,QAAS5Y,KAAKmrR,6BAA6BC,IAE7DprR,KAAKotR,MAAM7/J,YAK3BigK,kBAAmB,SAAShvQ,GACxB,IAGIivQ,EACAhyR,EAJAiyR,EAAkBlvQ,EAAQpgB,QAAO,SAAUmc,GAC3C,OAAOA,EAAOggC,UAAYhgC,EAAO9b,OAAS8b,EAAOuE,SAAW,eAAUvE,EAAOmjC,aAAenjC,EAAOmjC,YAAc,MAKrH,GADA19C,KAAK2tR,oBAAsB,GACvB3tR,KAAK4Y,OAAO,wBAA0B,WAAa5Y,KAAK4Y,OAAO,sBAC/D,OAAO5Y,KAAK2tR,oBAEhB,IAAKlyR,EAAI,EAAGA,EAAIiyR,EAAgB9zR,OAAQ6B,IAChC,eAAUiyR,EAAgBjyR,GAAGmiD,iBAAmB8vO,EAAgBjyR,GAAGmiD,gBAAkB,IACrF6vO,GAA2B,EAC3BztR,KAAK2tR,oBAAoBD,EAAgBjyR,GAAGmiD,gBAAkB8vO,EAAgBjyR,IAGtF,GAAIgyR,EACAztR,KAAK2tR,oBAAoBxmM,eACtB,GAAInnF,KAAK4Y,OAAO,uBACnB,IAAKnd,EAAI,EAAGA,EAAIiyR,EAAgB9zR,OAAQ6B,IAAK,CACzC,IAAI+iD,EAAex+C,KAAKs9D,mBAAmByB,gBAAgB2uN,EAAgBjyR,GAAG2F,OAC9EpB,KAAK2tR,oBAAoBnvO,GAAgBkvO,EAAgBjyR,GAIjE,OADAuE,KAAK2tR,oBAAsB3tR,KAAK2tR,oBAAoBvvR,OAAOZ,QACpDwC,KAAK2tR,qBAEhBC,iBAAkB,WACd,OAAO5tR,KAAKmqR,gBAEhBoC,iBAAkB,WACd,OAAOvsR,KAAKmqR,eAAevwR,OAAS,GAExCi0R,sBAAuB,WACnB,OAAO7tR,KAAK2tR,qBAEhBl9N,KAAM,WACF,IAAI9sD,EAAO3D,KACX2D,EAAK25D,mBAAqB35D,EAAKguD,cAAc,WAC7ChuD,EAAKsU,gBAAkBtU,EAAKguD,cAAc,QAC1ChuD,EAAK62G,UAAY72G,EAAK0Z,QAAQ,YAC9B1Z,EAAK25D,mBAAmB4e,iBAAiB,CACrCz9E,KAAMoqR,GACNhqQ,QAASgqQ,GACTtuO,SAAS,EACTuzO,gBAAgB,EAChBlyO,SAAU4sO,GACVp9Q,UAAW,SACXC,MAAO,OACPF,aAAc89Q,GACd3rO,cAAe,UAEnB35C,EAAK25D,mBAAmB+H,eAAev1D,KAAI,WACvC,IAAIi+Q,IAAsBpqR,EAAK6pR,kBAAkB7pR,EAAK25D,mBAAmBlF,cAAcx+D,OACvF+J,EAAK25D,mBAAmBoK,aAAa,mBAAoB,kBAAmBqmN,GAAmB,MAEnGpqR,EAAK6tL,mBAAqB7tL,EAAKguD,cAAc,WAC7ChuD,EAAKgqR,oBAAsB,GAC3BhqR,EAAKwmR,eAAiB,GACtBxmR,EAAKwtD,aAAa,gCAClBxtD,EAAK1D,YAETixD,cAAe,SAAS7hB,GAChB,wBAA0BA,EAAKztC,MAC/B5B,KAAKs9D,mBAAmBoK,aAAa,mBAAoB,kBAAmBr4B,EAAKxtC,OAErF7B,KAAKC,SAASovC,IAElBqhB,cAAe,WACX,MAAO,CAAC,8BAA+B,0BAA2B,8BAEtEs9N,4BAA6B,SAASlzR,GAClC,OAAOkF,KAAKiY,gBAAgBizQ,uBAAyB,eAAalrR,KAAKiY,gBAAgBizQ,sBAAuBpwR,IAElHmzR,wBAAyB,SAASnzR,GACzBkF,KAAKstR,gCACNttR,KAAKopR,8BAA8BtuR,IAG3CozR,0BAA2B,WACnBluR,KAAKstR,gCACLttR,KAAKopR,iCAGb+E,+BAAgC,SAASrzR,EAAK8S,GAC1C,IAAI4sD,EAAWx6D,KAAKiY,gBAAgB4hF,iBAAiB/+F,GACrD,IAAK,IAAM0/D,EAAX,CAGA,IAAI4C,EAAO,eAAEp9D,KAAK4R,UAAU41D,cAAchN,IAC1Cx6D,KAAKouR,4BAA4BhxN,EAAMxvD,KAE3CwgR,4BAA6B,SAAShxN,EAAMixN,GACxC,IAAIC,EAAmBlxN,EAAKtlD,KAAK,wBACjCw2Q,EAAiB58N,KAAK,aAAc,OAAoBr4D,OAAOg1R,OAG5DE,GAAmB,CAC1B5wR,eAAgB,WACZ,MAAO,CACHw2C,qBAAqB,EACrBiC,6BAA8B,OAGtCof,YAAa,CACTkmN,gBAAiB2N,IAErBzzN,UAAW,CACPF,MAAO,CACHt4C,SAAU,CACNwmD,iBAAkB,SAAS9tD,GACvB,IAAInS,EAAO3D,KACPua,EAASzE,EAAQyE,OACrB,OAAIzE,EAAQ6E,UAAYwtQ,IAAqB,WAAa5tQ,EAAOsE,QACtD,SAAS7F,EAAWlD,GACvBnS,EAAK6qR,2BAA2BvB,0BAA0B,eAAEj0Q,GAAYlD,IAGzEnS,EAAK1D,SAAS6V,IAEzB2mD,WAAY,SAASv/C,GACjB,IAAIkgD,EAAOp9D,KAAKC,SAASnB,MAAMkB,KAAME,WAIrC,OAHIgd,GAAOA,EAAIvC,UAAYwtQ,IAAqBjrQ,EAAIpiB,MAAQkF,KAAKiY,gBAAgBizQ,uBAC7E9tN,EAAKjlD,SAASuwQ,IAEXtrN,GAEXiF,aAAc,SAASjF,EAAMtnD,GACzB9V,KAAKC,SAASm9D,EAAMtnD,GACpB,IAAIqzQ,EAA4BnpR,KAAKwuR,2BACjCC,EAA2BtF,EAA0B0E,wBAAwBj0R,OAC7E80R,EAAsBvF,EAA0ByE,mBAAmBh0R,OACnE60R,IAA6BC,GAC7B1F,GAAoB5rN,GAAMrlD,OAAOI,SAASywQ,IAE1C,SAAW9yQ,EAAQoH,IAAIvC,SACvBwuQ,EAA0BiF,4BAA4BhxN,EAAM0rN,KAGpE32F,6BAA8B,SAASt7K,GACnC,IAAI81F,EAAe91F,EAASsH,QAAQ,IAAMiqQ,IAC1C,GAAIz7K,EAAa/yG,QAAU+yG,EAAaxuF,QAAQne,KAAK4R,UAAUiF,YAAYjd,OAAQ,CAC/E,IAAI2jD,EAAWovD,EAAa/yG,OAAS+yG,EAAapiC,QAAQnmE,KAAK,gBAAkB,KACjF,OAAOm5C,GAAYA,EAAShjC,QAAUva,KAAKs9D,mBAAmByB,gBAAgBxhB,EAAShjC,OAAOnZ,OAE9F,OAAOpB,KAAKC,SAAS4W,IAG7BslD,cAAe,SAAStE,EAAO/hD,GAC3B9V,KAAKC,SAASnB,MAAMkB,KAAME,WACtB4V,EAAQoH,IAAIvC,UAAYwtQ,IAAqBryQ,EAAQyE,OAAOiiD,eAAiB,IAC7E3E,EAAM1/C,SAASnY,KAAK4X,gBAAgB0wQ,MAG5CrhN,gBAAiB,SAASzM,EAAU0M,GAChC,IAAIr9D,EAAO7J,KAAKiY,gBAAgB1N,QAAQiwD,GACxC,OAAI3wD,GAAQA,EAAK8Q,UAAYwtQ,GAClBnoR,KAAKwuR,2BAA2B1B,4BAA4B5lN,GAE5DlnE,KAAKC,SAASnB,MAAMkB,KAAME,YAGzCswE,oBAAqB,SAAS16D,GAC1B,GAAIA,EAAQoH,KAAO,mBAAqBpH,EAAQoH,IAAIvC,QAAS,CACzD,IAAI8+F,EAAOz5G,KAAK4R,UAAUyL,QAAQ,qBAC9BkgC,EAAW,eAAEznC,EAAQ8jG,eAAez7F,QAAQ,wBAAwBrP,OAAO1K,KAAK,gBAEpF,OADA0R,EAAQyE,OAASgjC,EAAWA,EAAShjC,OAASzE,EAAQyE,OAC/Ck/F,EAAKjpC,qBAAuBipC,EAAKjpC,oBAAoB16D,GAEhE,OAAO9V,KAAKC,UAAYD,KAAKC,SAAS6V,IAE1CujH,mBAAoB,SAAS9nE,GACzB,IAAIo9N,IAAc3uR,KAAKC,UAAWD,KAAKC,SAASsxD,GAChD,OAAOo9N,KAAiBp9N,EAAQpzC,QAAQ,IAAMqqQ,IAA4B5uR,QAE9E62D,KAAM,WACFzwD,KAAKC,WACLD,KAAKwuR,2BAA6BxuR,KAAK2xD,cAAc,sBAIjE6D,YAAa,CACTzgB,OAAQ,CACJ65O,mBAAoB,SAASr0Q,EAAQlP,GACjCrL,KAAKC,SAASsa,EAAQA,EAAOiiD,eAAiB,GAAuBjiD,EAAOy4D,aAAe3nE,KAGnGysO,eAAgB,CACZ8sB,cAAe,SAASloP,EAAOJ,EAAakC,GACxC,IAAIvf,EAASe,KAAKC,SAASyc,EAAOJ,EAAakC,GAC3C43D,EAAgB53D,EAAQ9B,EAAMnH,cAAgB,GAC9C6wP,EAAkBpmQ,KAAKkmQ,oBAAoBxpP,EAAMnH,aACjDyvP,EAAaxmP,EAAQ4nP,IAAoB,GACzCyoB,EAAuBzoB,IAAoB1pP,EAAMnH,YAAc,GAAKyvP,EAAWnmP,QAC/EiwQ,EAAyB14M,EAAc5Z,eAAiB,IAAwBqyN,EACpF,OAAO5vR,GAAU6vR,GAErB5oB,oBAAqB,SAASL,GAC1B,IAAIxoM,EAAiBr9D,KAAKs9D,mBAAmBC,oBACzCn8D,EAAQpB,KAAKC,SAAS4lQ,GAC1B,MAAOxoM,EAAej8D,IAAUi8D,EAAej8D,GAAOo7D,eAAiB,GACnEp7D,IAEJ,OAAOA,IAGf2nQ,eAAgB,CACZnE,cAAe,SAASloP,EAAO8B,EAASwsC,EAAU41B,GAC9C,IAAI3hF,EAASe,KAAKC,SAASyc,EAAO8B,EAASwsC,EAAU41B,GACjDrmE,EAASiE,EAAQ9B,EAAMnH,YAAc,IAAM,GAC3Cu5Q,EAAyBv0Q,EAAOiiD,eAAiB,GACrD,OAAOv9D,GAAU6vR,IAGzBl6O,QAAS,CACLo2N,eAAgB,WACZ,OAAOhrQ,KAAKshL,gBAAkB,IAElCyO,yBAA0B,SAASvyH,EAAajjD,GAC5C,OAAIva,KAAKshL,gBAAkB,IAAiB,mBAAqB9jH,EAAY7iD,SACzE6iD,EAAYjoD,YAAcvV,KAAKs9D,mBAAmByB,gBAAgBxkD,EAAOnZ,OAClEpB,KAAKgwL,kBAAkBxyH,IAE3Bx9D,KAAKC,SAASu9D,EAAajjD,IAEtCmoK,eAAgB,SAASv3G,GACrB,IAAI4jN,EAAgB5jN,EAAehtD,QAAQ,IAAMiqQ,IAC7C5tN,EAAWx6D,KAAKiY,gBAAgB4hF,iBAAiB75F,KAAKiY,gBAAgBizQ,uBAAyB,EAC/F3tO,EAAWwxO,EAAcn1R,OAASm1R,EAAcxkN,QAAQnmE,KAAK,gBAAkB,KAC/EmR,EAAcgoC,GAAYA,EAAShjC,QAAUva,KAAKs9D,mBAAmByB,gBAAgBxhB,EAAShjC,OAAOnZ,OACpGpB,KAAKolL,WAAW5qH,EAAUjlD,IAC3BvV,KAAKC,SAASkrE,IAGtB+9G,mBAAoB,SAASr0F,EAAYr6B,GACrC,IAAKx6D,KAAKgvR,oBAAoBnqE,yBAA2B7kN,KAAKgvR,oBAAoBzC,mBAAoB,CAClG,IAAIhiR,EAAQvK,KAAKiY,gBAAgB1N,QAC7BV,EAAOU,EAAMiwD,GACby0N,EAAoB,OAAc31Q,cAActZ,KAAKiY,gBAAgBizQ,sBAAuB3gR,GAChGvK,KAAKkvR,2BAA6BlvR,KAAKgvR,oBAAoB1B,+BACvD2B,GAAqB,GACrBp6L,EAAW5xF,KAAKgsR,EAAoB,GAExCp6L,EAAW5xF,KAAKu3D,EAAW,GAC3Bx6D,KAAKiY,gBAAgBizQ,oBAAoBrhR,EAAK/O,OAGtD6tL,gBAAiB,SAAS7tL,GACtBkF,KAAKC,SAASnB,MAAMkB,KAAME,WACtBF,KAAKgvR,oBAAoBzC,qBACzBvsR,KAAKgvR,oBAAoB5F,8BAA8BtuR,EAAKkF,KAAKszL,iBACjEtzL,KAAKkvR,2BAA4B,IAGzCC,2BAA4B,WACpBnvR,KAAKgrQ,kBAAoBhrQ,KAAKkvR,4BAC9BlvR,KAAKgvR,oBAAoBd,4BACzBluR,KAAKkvR,2BAA4B,IAGzCE,6BAA8B,WACtBpvR,KAAKgvR,oBAAoBzC,oBACzBvsR,KAAKmvR,8BAGb9hG,mBAAoB,WAChBrtL,KAAKC,SAASnB,MAAMkB,KAAME,WAC1B,IAAIkuD,EAAW,IAAI,cAWnB,OAVIpuD,KAAKgrQ,kBAAoBhrQ,KAAKgvR,oBAAoBzC,mBAClD,kBAAKvsR,KAAK2xD,cAAc,cAAc05I,UAAS,IAAOhtL,KAAKs3H,IACnDA,GACA31I,KAAKovR,+BAEThhO,EAASztC,YAGbytC,EAASztC,UAENytC,EAAS3sC,WAEpB0sK,sBAAuB,WACnBnuL,KAAKC,WACLD,KAAKovR,gCAET5gG,iCAAkC,SAAStxK,GACvC,IAAI23E,EAAa70F,KAAKC,SAASnB,MAAMkB,KAAME,WAI3C,OAHIF,KAAKgvR,oBAAoBhB,4BAA4B9wQ,EAAIpiB,MACzD+5F,EAAW5xF,KAAKia,EAAIvC,UAAYwtQ,GAAoBjrQ,EAAIs9C,SAAW,EAAIt9C,EAAIs9C,SAAW,GAEnFq6B,GAEXo5F,gCAAiC,SAASp5F,GACtC,IAAIw6L,EAAcrvR,KAAKiY,gBAAgBq3Q,qBACvC,GAAID,EAAa,CACb,IAAI70N,EAAW,OAAclhD,cAAc+1Q,EAAarvR,KAAKiY,gBAAgB1N,SACzEiwD,GAAY,GACZq6B,EAAWlyE,QAAQ63C,KAI/BzY,QAAS,SAASyY,GACVx6D,KAAKgvR,oBAAoBnqE,yBACzB7kN,KAAKgvR,oBAAoBd,4BAE7BluR,KAAKC,SAASu6D,IAElB1Y,UAAW,SAAS0Y,GAChB,IAAIq0H,EAAS7uL,KAAKiY,gBAAgB0hF,iBAAiBn/B,GAC/Cx6D,KAAKshL,gBAAkB,IAAmBthL,KAAKgvR,oBAAoBhB,4BAA4Bn/F,IAC/F7uL,KAAKgvR,oBAAoBd,4BAE7BluR,KAAKC,SAASu6D,IAElB/J,KAAM,WACFzwD,KAAKC,WACLD,KAAKgvR,oBAAsBhvR,KAAK2xD,cAAc,qBAGtDuxD,SAAU,CACNzE,aAAc,WACV,OAAOz+G,KAAKC,cAAgBD,KAAKwuR,2BAA2BX,wBAAwBj0R,QAExFolH,qBAAsB,SAASvgG,EAAc4+C,GACzC,IAAIkyN,EAAqBvvR,KAAKwuR,2BAC1BgB,EAAmBD,EAAmB3B,mBACtC6B,EAAqBF,EAAmB/B,kBAAkBxtR,KAAKs9D,mBAAmBlF,cACtFm3N,EAAmBlD,qBAAqB5tQ,EAAc4+C,EAAgBoyN,GACtE,IAAIrE,EAAgBmE,EAAmB3B,mBAMvC,OALI2B,EAAmBjC,gCACfkC,EAAiB51R,SAAWwxR,EAAcxxR,QAC1C21R,EAAmBlC,WAAWjC,IAEpCA,EAAcxxR,QAAU21R,EAAmBrB,4BACtCluR,KAAKC,SAASnB,MAAMkB,KAAME,YAErC89G,mBAAoB,SAASN,GACzBA,GAAa19G,KAAKwuR,2BAA2B/C,qBAC7CzrR,KAAKC,SAASy9G,IAElBU,aAAc,WACV,IAAI+qK,EAA4BnpR,KAAKwuR,2BACrC,OAAOxuR,KAAKC,SAASnB,MAAMkB,KAAME,YAAcipR,EAA0B0E,wBAAwBj0R,QAAUuvR,EAA0BoD,oBAEzI97N,KAAM,WACFzwD,KAAKwuR,2BAA6BxuR,KAAK2xD,cAAc,mBACrD3xD,KAAKC,YAETkyD,QAAS,WACLnyD,KAAKC,SAASnB,MAAMkB,KAAME,WAC1Bk6D,aAAap6D,KAAK0vR,8BAG1BtrR,KAAM,CACF0vF,cAAe,SAASvpF,EAAOg3C,GAC3B,IAAIsgB,EAAatgB,EAAOsgB,WAExB,GADAt3D,EAAQvK,KAAKC,SAASnB,MAAMkB,KAAME,WAC9B,eAAiB2hE,IAAe,eAAU7hE,KAAKsvR,sBAC/C,OAAO/kR,EAEX,IAAIolR,EAAiB,OAAcr2Q,cAActZ,KAAKsvR,qBAAsB/kR,GACxE00N,GAAU,IAAUj/N,KAAK4Y,OAAO,IACpC,GAAI+2Q,GAAkB,EAAG,CACrB,IAAI9lR,EAAOU,EAAMolR,GACjBplR,EAAM85D,OAAOsrN,EAAiB,EAAG,EAAG,CAChCp1O,SAAS,EACT5/B,QAASwtQ,GACTrtR,IAAK+O,EAAK/O,IACVsJ,KAAMyF,EAAKzF,KACX6kG,KAAMp/F,EAAKo/F,KACX/S,eAAgBrsF,EAAKqsF,eACrB/4E,SAAUtT,EAAKsT,SACf6J,OAAQnd,EAAKmd,aAEV,YAAc66C,GAAgBo9J,GAAW19K,EAAOrI,qBACvDl5C,KAAKsvR,0BAAuB,GAEhC,OAAO/kR,GAEXs/H,wBAAyB,SAAS/uI,GAC9B,IAAI+5F,EAAa70F,KAAKC,SAASnB,MAAMkB,KAAME,WAC3C,GAAIF,KAAK2xD,cAAc,mBAAmBq8N,4BAA4BlzR,GAAM,CACxE,IAAI80R,EAAe/6L,EAAWA,EAAWj7F,OAAS,GAClDi7F,EAAW5xF,KAAK2sR,EAAe,GAEnC,OAAO/6L,GAEXq2L,oBAAqB,SAASrpR,GAC1B,IAAI,eAAUA,GAGV,OAAO7B,KAAKsvR,qBAFZtvR,KAAKsvR,qBAAuBztR,GAKpCunR,8BAA+B,SAAStuR,EAAKkyR,GACzC,IAAI6C,EAA0B,OAAcv2Q,cAActZ,KAAKsvR,qBAAsBtvR,KAAKgsF,QACtF8jM,EAA0B,OAAcx2Q,cAAcxe,EAAKkF,KAAKgsF,QAChE6jM,GAA2B,GAAKA,IAA4BC,IAA4B9C,IACxFlyR,OAAM,EACNg1R,GAA2B,GAE/B,IAAIC,EAAS/vR,KAAKsvR,qBAClBtvR,KAAKsvR,qBAAuBx0R,EACxB+0R,GAA2B,GAC3BA,IAEAC,GAA2B,GAC3BA,IAEJ,IAAI/7L,EAAgB/zF,KAAK6zF,mBACzB7zF,KAAKiyF,YAAY,CACb8C,0BAA0B,EAC1BlzB,WAAY,SACZgzB,WAAY,CAACg7L,EAA0B97L,EAAe+7L,EAA0B/7L,KAEpF,IAAIo1L,EAA4BnpR,KAAK2xD,cAAc,mBACnDw3N,EAA0BgF,+BAA+BrzR,EAAKiuR,IAC9DI,EAA0BgF,+BAA+B4B,EAAQjH,KAErEr4N,KAAM,WACFzwD,KAAKC,WACLD,KAAKsvR,0BAAuB,IAGpCptK,cAAe,CACXs4D,sBAAuB,WACnB,OAAOx6K,KAAKC,WAAa,qEAE7B60N,qBAAsB,WAClB,OAAO90N,KAAKC,WAAa,6BAA+BD,KAAK4X,gBAAgB,MAGrF4G,QAAS,CACLwgE,iBAAkB,SAASzkE,GACvB,OAAOva,KAAKC,SAASsa,KAAYA,EAAOuzQ,iBAGhD/3O,mBAAoB,CAChBy+N,aAAc,SAAS38M,GACnB,OAAO73D,KAAKC,SAASnB,MAAMkB,KAAME,aAAe23D,EAAMZ,SAASj3D,KAAK4X,gBAAgB0wQ,OAA0BzwN,EAAMZ,SAASwxN,KAEjIxO,+BAAgC,SAASxF,GACrCz0Q,KAAKC,SAASw0Q,GACd,IAAIub,EAAoBhwR,KAAKwxL,mBAAmBy3B,yBAC3CjpN,KAAKi1Q,kBAAkBR,IAAcA,GAAaub,GACnD,OAAalmR,GAAG2qQ,EAAW,SAAS,SAAUwb,IAC1C,OAAah/N,IAAIwjN,EAAW,QAASwb,GACrC,OAAajyQ,QAAQy2P,EAAW,eAI5CvD,gCAAiC,SAASF,EAAavmN,GACnD,IAAIxrD,EAASe,KAAKC,SAAS+wQ,EAAavmN,GACpC0nN,EAAenyQ,KAAKusQ,kBACpBnvM,EAAO+0M,GAAgBA,EAAa/yP,SACxC,IAAKngB,GAAUm+D,GAAQA,EAAKxjE,OAAQ,CAChC,IAAIs2R,EAAalH,GAAoB5rN,GACjCwsJ,EAAc,SAAWn/J,EAAYylO,EAAWn4Q,OAASm4Q,EAAW3lN,QACpE/P,EAAW4C,EAAK1/D,IAAI,GAAG88D,SACvB+0N,EAAqBvvR,KAAKgvR,oBAC1Bl0R,EAAMkF,KAAKiY,gBAAgB0hF,iBAAiB,SAAWlvC,EAAY+P,EAAWA,EAAW,GACzF21N,EAAuBhe,GAAgBvoD,GAAeuoD,EAAaz0Q,IAAI,KAAOksN,EAAYlsN,IAAI,GAClG,OAAO6xR,EAAmBvB,4BAA4BlzR,IAAQq1R,EAElE,OAAOlxR,GAEXwxD,KAAM,WACFzwD,KAAKC,WACLD,KAAKgvR,oBAAsBhvR,KAAK2xD,cAAc,wBC1hC3D,SAASy+N,GAAkB35E,EAAMztM,EAAUwxD,EAAU61N,EAASzsM,EAAa0sM,GAC9E91N,EAAWA,GAAY,EACvB61N,EAAUA,GAAW,GACrBC,EAAuBA,GAAwB,GAC/CD,EAAQ71N,GAAY61N,EAAQ71N,IAAa,EACzC,IAGIksF,EAHAxpI,EAAMu5L,EAAKj8I,GACXitI,EAAa6oF,EAAqB91N,GAAY,GAAK,EACnD+1N,EAAuB,EAE3B,GAAKrzQ,EAAL,CAGA,IAAKwpI,EAAW+gD,EAAY/gD,EAAWxpI,EAAItjB,OAAQ8sJ,IAAY,CAC3D,IAAI1rF,EAAO99C,EAAIwpI,GACXloG,EAAekoG,EAAW2pI,EAAQ71N,GAClC+B,EAAUvB,EAAKuB,SAAW,EAI9B,GAHA6zN,GAAkB35E,EAAMztM,EAAUwxD,GAAYQ,EAAK2T,SAAW,GAAI0hN,EAAS9zN,EAAS+zN,GACpFD,EAAQ71N,IAAa+B,EAAU,EAC/Bg0N,GAAwBh0N,EACpBvB,EAAK2T,QACL,IAAK,IAAIlzE,EAAI++D,EAAW,EAAG/+D,EAAI++D,EAAWQ,EAAK2T,QAASlzE,IACpD40R,EAAQ50R,GAAK40R,EAAQ50R,IAAM,EAC3B40R,EAAQ50R,IAAMu/D,EAAKuB,SAAW,EAGtC,IAAI,IAAUvzD,EAASgyD,EAAMxc,EAAcgc,EAAUksF,GACjD,MAEJ,QAAI,IAAW9iE,GAAe2sM,GAAwB3sM,EAClD,MAGR0sM,EAAqB91N,GAAYksF,GAE9B,SAAS8pI,GAAkB/5E,EAAMhP,EAAYC,GAChD,IAAI+oF,EAAU,GACdL,GAAkB35E,GAAM,SAAUi6E,EAAYlyO,EAAcgc,GACxD,IACI+B,EADAvB,EAAO01N,EAEPC,EAAc31N,EAAKuB,SAAW,EAC9BvkD,EAAYwmC,EAAemyO,EAAc,GAAKlpF,GAAcjpJ,EAAekpJ,EAE/E,GADA+oF,EAAQj2N,GAAYi2N,EAAQj2N,IAAa,GACrCxiD,EACIwmC,EAAeipJ,GACflrI,EAAUo0N,GAAelpF,EAAajpJ,GACtCA,EAAeipJ,GAEflrI,EAAUo0N,EAEVnyO,EAAe+d,EAAUmrI,IACzBnrI,EAAUmrI,EAAWlpJ,GAErB+d,IAAYo0N,IACZ31N,EAAO,OAAAvgE,EAAA,WAAO,GAAIugE,EAAM,CACpBuB,QAASA,KAGjBk0N,EAAQj2N,GAAUv3D,KAAK+3D,QACpB,GAAIxc,EAAekpJ,EACtB,OAAO,KAGf,IAAK,IAAIjsM,EAAI,EAAGA,EAAIg1R,EAAQ72R,OAAQ6B,IAChCg1R,EAAQh1R,GAAKg1R,EAAQh1R,IAAM,GAE/B,OAAOg1R,EChEX,EAASr6N,eAAe,aAAcm4N,ICStC,IAAIqC,GAAuB,GACvB,GAAmC,CACnCl9N,YAAa,WACT1zD,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAKs9D,mBAAmB7I,UAE5B6pC,cAAe,SAAS16F,GACpB,IAAID,EAAO3D,KACPg9F,EAAah9F,KAAKk+F,gBAClBvhF,EAAO/Y,EAAE66F,aAAa9hF,KAC1BhZ,EAAK1D,SAASnB,MAAM6E,EAAMzD,WACtByD,EAAKiV,OAAO,eAAiBokF,IAC7BrgF,EAAO,eAASqgF,EAAWtvB,YAAc,eAASsvB,EAAWnmF,YAAc8F,GAE/EhZ,EAAK25D,mBAAmBuzN,kBAAkBl0Q,KAG9Cm0Q,GAAqB,CACrBr9N,YAAa,WACTzzD,KAAKC,SAASnB,MAAMkB,KAAME,WACtBF,KAAKs9D,mBAAmB/9C,iBACxBvf,KAAKwlE,8BAIburN,GAA4B,WAC5B,IAAIC,EAAY,SAASxyQ,GACrB,OAAOA,EAAQ1iB,IAAIye,GAAUA,EAAOiiD,cAAgBvI,WAAW15C,EAAOlP,QAAUulR,KAEhFvgM,EAAU,CACV5/B,KAAM,WACF,IAAI9sD,EAAO3D,KACX2D,EAAK1D,SAASnB,MAAMkB,KAAME,WAC1ByD,EAAKstR,gBAAkB,KACvBttR,EAAKutR,cAAgB,KACrBvtR,EAAKo3N,UAAY,EACjBp3N,EAAKwtR,uBAAyB,IAElCl5M,kBAAmB,WACfj4E,KAAKC,WACLD,KAAKmxR,uBAAyB,IAElC76D,kBAAmB,SAASnxK,GAIxB,IAHA,IAAIkY,EAAiBr9D,KAAKu9D,uBAAkB,GAAQ,GAChDmH,EAASssN,EAAU3zN,GACnB+zN,EAAkB,EACbhwR,EAAQ,EAAGA,EAAQsjE,EAAO9qE,OAAQwH,IAAS,CAChD,GAAIgwR,GAAmBjsO,EACnB,OAAO3zC,KAAKE,MAAMtQ,EAAQpB,KAAKqxR,qBAEnCD,GAAmB1sN,EAAOtjE,GAE9B,OAAO,GAEXkwR,cAAe,WACX,IAAIjmR,EAAQrL,KAAK4Y,OAAO,SACxB,MAAI,kBAAoBvN,EACbA,EAEJrL,KAAK2xD,cAAc,YAAY8vD,YAAc,eAAczhH,KAAK4R,UAAUiF,aAErF2/M,gBAAiB,SAASrxK,GACtB,IAAIkY,EAAiBr9D,KAAKu9D,uBAAkB,GAAQ,GAChDmH,EAASssN,EAAU3zN,GACnB+zN,EAAkB,EACtBjsO,GAAYnlD,KAAKsxR,gBACjB,IAAK,IAAIlwR,EAAQ,EAAGA,EAAQsjE,EAAO9qE,OAAQwH,IAAS,CAChD,GAAIgwR,GAAmBjsO,EACnB,OAAO3zC,KAAKy9E,KAAK7tF,EAAQpB,KAAKqxR,qBAElCD,GAAmB1sN,EAAOtjE,GAE9B,OAAOoQ,KAAKy9E,KAAKvqB,EAAO9qE,OAASoG,KAAKqxR,sBAE1CA,kBAAmB,WACf,OAAOrxR,KAAK4Y,OAAO,6BAEvB24Q,oBAAqB,WACjB,IAAIj4R,EAAO,IAAIS,KACfiG,KAAKqlE,eAAe7Q,KAAK,CACrBiQ,YAAa,CACT1wC,KAAK,EACLn6B,OAAQ,GAEZsoE,YAAa,CACT1jD,SAAS,EACTi0E,yBAAyB,EACzB74F,OAAQ,KAGhBoG,KAAK8+N,YAAc,IAAI/kO,KAAOT,GAElCmiO,oBAAqB,WACjB,IAAIkH,EAAqB3iO,KAAK4Y,OAAO,sCACjCqgC,EAAcj5C,KAAK4Y,OAAO,yBAC1B8iN,EAAmB,EAIvB,QAHK,eAAUziL,IAAgBj5C,KAAK8+N,YAAc6D,GAAsB1pL,KACpEyiL,EAAmB17N,KAAK4Y,OAAO,sBAE5B8iN,GAEXm1D,kBAAmB,SAAS1rO,GACxB,IAAIu2K,EAAmB17N,KAAKy7N,sBACxBC,EAAmB,GACnBthK,aAAap6D,KAAKwxR,iBAClBxxR,KAAKwxR,gBAAkB9xP,WAAW,KAC9B1/B,KAAKyxR,uBAAuBtsO,IAC7Bu2K,IAEH17N,KAAKyxR,uBAAuBtsO,IAGpC5lC,cAAe,WACX,OAAO,kBAAe,YAAcvf,KAAK4Y,OAAO,kCAEpD67C,OAAQ,WACJz0D,KAAKyxR,uBAAuBzxR,KAAK+6N,YAErC02D,uBAAwB,SAAStsO,GAC7B,GAAInlD,KAAKuf,gBAAiB,CACtB,IAAI8iH,EAAiBriI,KAAKs2N,kBAAkBnxK,GACxC4zK,EAAe/4N,KAAKw2N,gBAAgBrxK,GACpCusO,EAAqBvsO,EAAWnlD,KAAK+6N,UAAY/6N,KAAKixR,gBAAkB5uJ,EAAiBriI,KAAKkxR,cAAgBn4D,EAClH/4N,KAAK+6N,UAAY51K,EACbusO,IACA1xR,KAAKixR,gBAAkB5uJ,EACvBriI,KAAKkxR,cAAgBn4D,EACrB/4N,KAAKuxR,yBAIjBtzM,gBAAiB,SAASzjB,EAAU++J,GAChC,IAAIvF,EAAeh0N,KAAKC,SAASu6D,GACjC,GAAIx6D,KAAKuf,kBAAoBg6M,GAAUvF,EAAap6N,OAAQ,CACxD,IAAIykF,EAAyB21I,EAAal4N,IAAIwV,GAAKA,EAAEuN,SAASvgB,QAAQ,eAEtE,OADA01N,EAAa31I,GAAwB9hB,QAAUv8D,KAAKu9D,oBAAoB3jE,OAASoG,KAAKC,WAAWrG,OAAS,EACnGo6N,EAEX,OAAOA,GAEXj2I,uBAAwB,SAASvjB,EAAU++J,GACvC,IAAIo4D,EACJ,GAAIp4D,IAAWv5N,KAAKuf,kBAAoBvf,KAAK89E,8BACzC,OAAO99E,KAAKC,SAASu6D,GAErB,QAAUm3N,EAAiB3xR,KAAKw1E,gBAAa,IAAWm8M,IAAkBA,EAAe/3R,QAAW,eAAUoG,KAAKixR,kBAAqB,eAAUjxR,KAAKkxR,iBACvJlxR,KAAKixR,gBAAkBjxR,KAAKs2N,kBAAkBt2N,KAAK+6N,WACnD/6N,KAAKkxR,cAAgBlxR,KAAKw2N,gBAAgBx2N,KAAK+6N,YAEnD,IAAI14F,EAAiBriI,KAAKixR,gBACtBl4D,EAAe/4N,KAAKkxR,cACpBU,EAAqBp3N,EAAW,IAAM6nE,EAAiB,IAAM02F,EACjE,GAAI/4N,KAAKmxR,uBAAuBS,GAC5B,OAAO5xR,KAAKmxR,uBAAuBS,GAEvC,IAAIv0N,EAAiBr9D,KAAKC,WACtB2uE,EAAW5uE,KAAKwuE,cAChBtiB,EAAWlsD,KAAKqxR,oBAChB5pF,EAAaplE,EAAiBn2E,EAC9Bw7I,EAAWqxB,EAAe7sK,EAC1B8nK,EAAeh0N,KAAKi+E,qBAAgB,GAAQ,GAC5CI,EAAyB21I,EAAal4N,IAAIwV,GAAKA,EAAEuN,SAASvgB,QAAQ,eAClEuzR,EAAwB79D,EAAap6N,OAASykF,EAAyB,EACvEyzM,EAAoBz0N,EAAerpD,MAAM,EAAG69Q,GAC5CE,EAAe10N,EAAerpD,MAAM69Q,EAAuBpqF,GAC3DuqF,EAAahB,EAAUe,GAAc7pQ,OAAO,CAACnmB,EAAGC,IAAMD,EAAIC,EAAG,GAC5DgwR,IACDvqF,EAAa,GAEjB,IAAIwqF,EAAsBj+D,EAAap6N,OAASo6N,EAAap6N,OAASykF,EAAyB,EAAI,EAC/F6zM,EAAkB70N,EAAerpD,MAAMqpD,EAAezjE,OAASq4R,GAC/DE,EAAa90N,EAAerpD,MAAM0zL,EAAUrqI,EAAezjE,OAASq4R,GACpEG,EAAWpB,EAAUmB,GAAYjqQ,OAAO,CAACnmB,EAAGC,IAAMD,EAAIC,EAAG,GAI7D,GAHKowR,IACD1qF,EAAWrqI,EAAezjE,QAE1Bg1E,EAAW,GAAK,kBAAoBpU,EAAU,CAE9C,IADA,IAAI63N,EAAc,GACT52R,EAAI,EAAGA,EAAImzE,EAAUnzE,IAC1B42R,EAAYpvR,KAAKjD,KAAKC,SAASxE,IAEnCq2R,EAAoBtB,GAAkB6B,EAAa,EAAGP,EAAkBl4R,QAAQ4gE,IAAa,GAC7F03N,EAAkB1B,GAAkB6B,EAAah1N,EAAezjE,OAASs4R,EAAgBt4R,OAAQyjE,EAAezjE,QAAQ4gE,IAAa,GACrI6C,EAAiBmzN,GAAkB6B,EAAa5qF,EAAYC,GAAUltI,IAAa,QAEnF6C,EAAiBA,EAAerpD,MAAMyzL,EAAYC,GAiBtD,OAfIsqF,IACA30N,EAAe16C,QAAQ,CACnB9D,QAAS,UACTxT,MAAO2mR,IAEX30N,EAAiBy0N,EAAkBnqQ,OAAO01C,IAE1C+0N,IACA/0N,EAAep6D,KAAK,CAChB4b,QAAS,UACTxT,MAAO+mR,IAEX/0N,EAAiBA,EAAe11C,OAAOuqQ,IAE3ClyR,KAAKmxR,uBAAuBS,GAAsBv0N,EAC3CA,GAEXgG,qBAAsB,WAClB,IAAIjnD,EAAS,EACb,GAAIpc,KAAKixR,gBAAkB,EAAG,CAC1B,IAAIj9D,EAAeh0N,KAAKi+E,kBACpBI,EAAyB21I,EAAal4N,IAAIwV,GAAKA,EAAEuN,SAASvgB,QAAQ,eAClEg0R,EAAuBj0M,GAA0B,EAAIA,EAAyB,EAClFjiE,EAASpc,KAAKixR,gBAAkBjxR,KAAKqxR,oBAAsBiB,EAAuB,EAEtF,OAAOl2Q,EAAS,EAAIA,EAAS,GAEjC+1C,QAAS,WACLiI,aAAap6D,KAAKwxR,iBAClBxxR,KAAKC,SAASnB,MAAMkB,KAAME,aAGlC,OAAOmwF,EAlMqB,GAoMrBkiM,GAAuB,CAC9B50R,eAAgB,WACZ,MAAO,CACH27C,UAAW,CACPmU,oBAAqB,WACrB+kO,eAAgB,EAChBC,yBAA0B,OAItC78N,UAAW,CACPJ,YAAa,CACTh3C,QAASuyQ,IAEbr7N,MAAO,CACHkX,kBAAmBkkN,GACnB1zQ,SAAU,MCtPtB,SAASs1Q,GAAanoR,EAAOooR,GACzB,IAAIC,EAAgB/wR,GAAUA,GAAQ,EAClCkmI,EAAc,GACd86D,GAAQt4L,EAAM,IAAM,IAAI2d,OAAO,CAACynC,EAAK9lD,IAAS8lD,EAAMijO,EAAc/oR,EAAK0yD,SAAU,GACjF1sD,EAAU,CAACtF,IACX,IAAIiwD,EAAW,EACXgJ,EAAY,EAChB,MAAO,KACH,IAAItmD,EAAM3S,EAAMiwD,IAAa,GACzB3wD,EAAOqT,EAAIsmD,KASf,OARIA,GAAatmD,EAAItjB,SACjB4gE,IACAgJ,EAAY,GAEZ35D,IACAA,EAAK0yD,QAAUq2N,EAAc/oR,EAAK0yD,SAClC1yD,EAAK8kE,QAAUikN,EAAc/oR,EAAK8kE,UAE/B9kE,IAdD,CAgBXU,GACCsoR,EAAU,CAACr4N,EAAUgJ,EAAW35D,KAChC,IAAIqT,EAAM6qH,EAAYvtE,GAAYutE,EAAYvtE,IAAa,GAE3D,GADAt9C,EAAIsmD,GAAa35D,EACbA,EAAK0yD,QAAU,GAAK1yD,EAAK8kE,QAAU,EAAG,CAEtC,IADA,IAAI57C,EAAQ,CAAClpB,GAAQ,OAAApP,EAAA,WAAO,GAAIoP,EAAM8oR,GAA1B,CAAsC9oR,GACzCyH,EAAI,EAAGA,EAAIzH,EAAK0yD,QAASjrD,IAC9BuhR,EAAQr4N,EAAUgJ,EAAYlyD,EAAGyhB,GAErC,IAAK,IAAIxhB,EAAI,EAAGA,EAAI1H,EAAK8kE,QAASp9D,IAC9B,IAAK,IAAIpJ,EAAK,EAAGA,EAAK0B,EAAK0yD,QAASp0D,IAChC0qR,EAAQr4N,EAAWjpD,EAAGiyD,EAAYr7D,EAAI4qB,KAKlDlpB,EAAOgG,IACP2qD,EAAW,EACf,MAAO3wD,EAAM,CACT,IAAK,IAAI25D,EAAY,EAAGA,EAAYq/H,EAAMr/H,IAAa,CACnD,IAAK35D,EACD,MAEAk+H,EAAYvtE,IAAautE,EAAYvtE,GAAUgJ,KAGnDqvN,EAAQr4N,EAAUgJ,EAAW35D,GAC7B25D,GAAa35D,EAAK0yD,QAAU,EAC5B1yD,EAAOgG,KAEX2qD,IAEJ,OAAOutE,ECpDX,EAAS3xE,eAAe,iBAAkBm8N,ICW1C,IAAI,GAAS,iBACT,GAAY,iBACZO,GAAiB,CACjBC,MAAO,OACPC,IAAK,MACLC,IAAK,MACLC,KAAM,OACNC,IAAK,MACLC,IAAK,MACLC,IAAK,OAEEC,GAAa,CACpBN,IAAK,WACLD,MAAO,oEACPE,IAAK,YACLC,KAAM,aACNC,IAAK,YACLC,IAAK,gBACLC,IAAK,mBAEEE,GAAY,CACnBC,wBAAyB,IACzBC,YAAa,SAASp6R,EAAQ+K,GAC1B,IAAIuxB,EAAW31B,KAAK0zR,aAAar6R,GACjC,MAAO,QAAQsuB,OAAOgO,EAAU,YAAYhO,OAAOvjB,IAEvDsvR,aAAc,SAASr6R,GACnB,OAAOi6R,GAAWj6R,IAAW,4BAEjCs6R,gBAAiB,SAASp2P,EAAUq2P,GAChC,IAAIC,EAAoB,aAAWz0P,cAAc,KAIjD,OAHAy0P,EAAkBC,SAAWv2P,EAC7Bs2P,EAAkBD,KAAOA,EACzBC,EAAkB39Q,OAAS,SACpB29Q,GAEXE,gBAAiB,SAASrxO,EAAUnlB,EAAUy2P,EAAa5vR,GACvD,IAAI6vR,EAAiB,CACjB7yP,OAAQ,OACR0wB,OAAQpP,EACRwxO,QAAS,uBAETC,EAAa,eAAE,UAAU13Q,IAAI,CAC7B+pD,QAAS,SACV9U,KAAKuiO,GAER,SAASG,EAAc18Q,EAAS2jD,GAC5B,IAAK,IAAIvgE,KAAOugE,EACZ3jD,EAAQ+5C,aAAa32D,EAAKugE,EAAWvgE,IAEzC,OAAO4c,EAEXy8Q,EAAWp6P,OAAOq6P,EAAc,aAAWh1P,cAAc,SAAU,CAC/D3gC,KAAM,SACNmD,KAAM,WACNC,MAAO07B,KAEX42P,EAAWp6P,OAAOq6P,EAAc,aAAWh1P,cAAc,SAAU,CAC/D3gC,KAAM,SACNmD,KAAM,cACNC,MAAOmyR,KAEXG,EAAWp6P,OAAOq6P,EAAc,aAAWh1P,cAAc,SAAU,CAC/D3gC,KAAM,SACNmD,KAAM,OACNC,MAAOuC,KAEX+vR,EAAW/7Q,SAAS,QACpB,OAAa4F,QAAQm2Q,EAAY,UAC7B,OAAan2Q,QAAQm2Q,EAAY,WACjCA,EAAWx7Q,UAGnB07Q,aAAc,SAAS3xO,EAAUnlB,EAAUlkC,EAAQ+K,GAC/C,IAAI4vR,EAAch0R,KAAK0zR,aAAar6R,GACpC,OAAO2G,KAAK+zR,gBAAgBrxO,EAAUnlB,EAAUy2P,EAAa5vR,IAEjEkwR,eAAgB,SAAS/6P,EAAMgE,EAAUlkC,GACrC,IAAIk7R,EAAa,IAAIC,QAAQC,QAAQC,QAAQC,eAC7CJ,EAAWK,uBAAyBJ,QAAQC,QAAQC,QAAQG,iBAAiBC,iBAC7E,IAAIC,EAAgBjC,GAAez5R,GACnC,GAAI07R,EAAe,CACf,IAAIp/P,EAAW31B,KAAK0zR,aAAar6R,GACjCk7R,EAAWS,gBAAgB/sP,OAAOtS,EAAU,CAAC,IAAMo/P,IAEvDR,EAAWU,kBAAoB13P,EAC/Bg3P,EAAWW,oBAAoBxwR,MAAK,SAAU4qB,GACtCA,GACAA,EAAK6lQ,UAAUX,QAAQC,QAAQW,eAAeC,WAAW3wR,MAAK,SAAU4wR,GACpE,IAAIC,EAAch8P,EAAKi8P,iBACvBhB,QAAQC,QAAQgB,QAAQC,mBAAmBC,UAAUJ,EAAaD,GAAc5wR,MAAK,WACjF4wR,EAAaM,aAAav3Q,MAAK,WAC3Bk3Q,EAAY5rK,QACZ2rK,EAAa3rK,qBAOrCksK,OAAQ,SAASC,GACb,IACIA,EAAKC,cAAc,IAAIC,WAAW,QAAS,CACvCC,YAAY,KAElB,MAAOryR,GACL,IAAIouD,EAAQ,aAAW8N,cAAco2N,YAAY,eACjDlkO,EAAMmkO,eAAe,SAAS,GAAM,EAAM,GAAQ,EAAG,EAAG,EAAG,GAAI,IAAI,GAAO,GAAO,GAAO,EAAO,EAAG,MAClGL,EAAKC,cAAc/jO,KAG3BokO,YAAa,SAAS74P,EAAUlkC,EAAQ+K,GAEpC,GADApE,KAAKq2R,YAAa,EACd,eAAU,GAAUC,kBACpB,GAAUA,iBAAiBlyR,EAAMm5B,GACjCv9B,KAAKq2R,YAAa,OACf,GAAI,eAAU,GAAOE,OACxBv2R,KAAKs0R,eAAelwR,EAAMm5B,EAAUlkC,GACpC2G,KAAKq2R,YAAa,MACf,CACH,IAAIG,EAAM,GAAOA,KAAO,GAAOC,WAAa,GAAOC,QAAU,GAAOC,OAAS,GAAOC,KACpF,GAAI,eAAUJ,GAAM,CAChB,IAAIK,EAAYL,EAAIM,gBAAgB1yR,GAChC2yR,EAAe/2R,KAAK2zR,gBAAgBp2P,EAAUs5P,GAClDn3P,WAAW,KACP82P,EAAIQ,gBAAgBH,GACpB72R,KAAKi3R,mBAAoB,GAC1Bj3R,KAAKwzR,yBACRxzR,KAAK61R,OAAOkB,QAEZ,OAAO3tQ,KAAK,mGAIxB8tQ,OAAQ,SAAS35P,EAAUlkC,EAAQ+K,EAAM+yR,EAAUC,GAC/C,IAAIrC,EAAgBjC,GAAez5R,GAOnC,GANI07R,IACAx3P,GAAY,IAAMw3P,GAElB,eAAUoC,IACV,OAAOrzR,IAAI,QAAS,SAAU,WAAY,OAAQ,qCAElDszR,EACAp3R,KAAKq0R,aAAa8C,EAAU55P,EAAUlkC,EAAQ+K,QAC3C,GAAI,eAAW,GAAOo1B,MACzBx5B,KAAKo2R,YAAY74P,EAAUlkC,EAAQ+K,QAChC,GAAI,eAAU+yR,KAAc,eAAU,GAAUE,UAAU9zQ,MAAM,UACnEvjB,KAAKq0R,aAAa8C,EAAU55P,EAAUlkC,EAAQ+K,OAC3C,CACE,eAAU,GAAUizR,UAAU9zQ,MAAM,WACrC,OAAOzf,IAAI,SAEf,IAAIizR,EAAe/2R,KAAK2zR,gBAAgBp2P,EAAUv9B,KAAKyzR,YAAYp6R,EAAQ+K,IAC3EpE,KAAK61R,OAAOkB,M,qCCxJpBO,I,UAAmB,MACnBC,GAA0B,CAC1BC,UAAW,yBACXC,SAAU,0BACVC,SAAU,2BACVC,UAAW,4BACXpmQ,QAAS,QACTqmQ,QAAS,OACTC,WAAY,WACZC,YAAa,WACblvO,SAAU,KAEVmvO,GAAgB,MAChBC,GAAa,KACbC,GAAY,OACZC,GAA0B,KAC1BC,GAAc,KACdC,GAAa,KACbC,GAAuB,CACvBC,gBAAiB,SAASj/R,EAAQwvD,GAC9B,IAAI5pD,EACAxD,EACJ,GAAIotD,EAAY,EAAG,CAEf,IADA5pD,EAAS,YAAc5F,EAAS,IAAM,GACjCoC,EAAI,EAAGA,EAAIotD,EAAWptD,IACvBwD,GAAU,IAEd,OAAOA,EAEX,MAAO,IAEXs5R,iBAAkB,SAASh8R,GAEvB,IADA,IAAIulB,EACKrmB,EAAI,EAAGA,EAAIc,EAAK3C,OAAQ6B,IAE7B,GADAqmB,EAAOvlB,EAAKwlB,WAAWtmB,GACnBqmB,GAAQw1Q,IAAoBx1Q,EAAOw1Q,GAAmB,GACtD,OAAO,EAGf,OAAO,GAEXkB,4BAA6B,SAASn/R,GAClC,OAAOA,EAAOwC,MAAM,KAAKG,KAAK,OAAOH,MAAM,KAAKC,KAAI,SAAUuF,EAAUD,GACpE,OAAIA,EAAQ,IAAM,EACPC,EAASlG,QAAQ48R,GAAe,SAAS58R,QAAQ88R,GAAW,KAAK98R,QAAQ68R,GAAY,KAAK78R,QAAQ+8R,GAAyB,KAAK/8R,QAAQg9R,GAAa,KAAKt8R,MAAM,KAAKG,KAAK,OAAOH,MAAM,KAAKG,KAAK,OAExMqF,EACOA,EAASlG,QAAQi9R,GAAY,QAEjC,OACPp8R,KAAK,KAEby8R,mBAAoB,SAASp/R,GACzB,IAAIyrF,GAAkB,QAAiBzrF,OAAO,IAAIU,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GAAIV,IAAW,IAAIsY,WACxF1S,EAAS,gBAAU4C,GAAS,QAAiBxI,OAAOwI,EAAOxI,IAK/D,OAJI4F,IACAA,EAASe,KAAKw4R,4BAA4Bv5R,GAC1CA,EAASe,KAAK04R,iBAAiB5zM,GAAkB7lF,GAE9CA,GAEXy5R,iBAAkB,SAASn2Q,GACvB,IAAIo2Q,EAAa,kBACbC,EAAgBD,EAAaA,EAAWhnR,SAAS,IAAM,GACvDknR,EAAe,GACnB,GAAI74R,KAAKu4R,iBAAiBh2Q,GAAiB,CACvC,MAAOq2Q,EAAch/R,OAAS,EAC1Bg/R,EAAgB,IAAMA,EAE1BC,EAAe,UAAYD,EAAgB,SACpCA,IACPC,EAAe,MAAQD,EAAgB,KAE3C,OAAOC,GAEXC,qBAAsB,SAASz/R,EAAQwvD,EAAWD,GAC9C,IAAI3pD,EACA85R,EASJ,OAPIA,EADA,aAAe1/R,EACD,QAAgB2/R,yBAAyBpwO,GAEzC2uO,GAAwBl+R,EAAOyE,eAE7Ci7R,IACA95R,EAAS,OAAAk6B,GAAA,MAAa4/P,EAAa/4R,KAAKs4R,gBAAgBj/R,EAAQwvD,KAE7D5pD,GAEXg6R,cAAe,SAAS5/R,EAAQwvD,EAAWpqD,EAAMmqD,GAC7C,GAAI,eAAUvvD,GAAS,CACnB,GAAI,SAAWoF,EACX,OAAO45R,GAAqBI,mBAAmBp/R,GAC5C,GAAI,eAASA,IAAWk+R,GAAwBl+R,EAAOyE,eAC1D,OAAOu6R,GAAqBS,qBAAqBz/R,EAAQwvD,EAAWD,MAKrE,MC/GXswO,GAAY,CACZC,MAAO,SAASx8N,EAAStB,EAAYzB,GACjC,IAAI36D,EAAS,CAAC,IAAK09D,GACnB,IAAK,IAAIy8N,KAAiB/9N,EAAY,CAClC,IAAIg+N,EAAiBh+N,EAAW+9N,GAC5B,eAAUC,IACVp6R,EAAOgE,KAAK,IAAKm2R,EAAe,KAAMC,EAAgB,KAQ9D,OALI,eAAUz/N,IAAY,KAAOA,EAC7B36D,EAAOgE,KAAK,IAAK22D,EAAS,KAAM+C,EAAS,KAEzC19D,EAAOgE,KAAK,OAEThE,EAAOjD,KAAK,MAGZ,MChBXs9R,GAAsB,CACtBC,aAAc,SAASC,GACnB,IAAIv6R,EAAS,KAWb,OAVI,eAAUu6R,KACVv6R,EAAS,CACLw6R,SAAUD,EAAUC,SACpBC,SAAUF,EAAUE,SACpBC,WAAYH,EAAUG,YAEtBL,GAAoBphR,QAAQjZ,KAC5BA,EAAS,OAGVA,GAEX26R,KAAM,SAASrqP,GACX,IAAItwC,EAAS,KAab,OAZI,eAAUswC,KACVtwC,EAAS,QACL,IAAWswC,EAAOoqP,aAClB16R,EAAO06R,WAAapqP,EAAOoqP,iBAE3B,IAAWpqP,EAAOkqP,WAClBx6R,EAAOw6R,SAAWlqP,EAAOkqP,eAEzB,IAAWlqP,EAAOmqP,WAClBz6R,EAAOy6R,SAAWnqP,EAAOmqP,WAG1Bz6R,GAEX46R,SAAU,SAASC,EAASC,GACxB,OAAOT,GAAoBphR,QAAQ4hR,IAAYR,GAAoBphR,QAAQ6hR,IAAa,eAAUD,IAAY,eAAUC,IAAaD,EAAQL,WAAaM,EAASN,UAAYK,EAAQJ,WAAaK,EAASL,UAAYI,EAAQH,aAAeI,EAASJ,YAE7PzhR,QAAS,SAAS8hR,GACd,OAAQ,eAAUA,KAAS,eAAUA,EAAIP,YAAc,eAAUO,EAAIN,YAAc,eAAUM,EAAIL,aAErGR,MAAO,SAASa,GACZ,OAAO,GAAUb,MAAM,YAAa,CAChCM,SAAUO,EAAIP,SACdC,SAAU,eAAUM,EAAIN,UAAYxkR,OAAO8kR,EAAIN,eAAY,EAC3DC,WAAYK,EAAIL,eAIb,MC7CXM,GAAc,CACdC,iBAAkB,SAAS3qP,GACvB,GAAI,kBAAoBA,EACpB,OAAOA,EAEX,IAAItwC,EACJ,GAAIswC,EAAO31C,OAAS,GAAK,MAAQ21C,EAAO,GAAI,CACxC,IAAI4qP,EAAY5qP,EAAOv8B,OAAO,EAAGu8B,EAAO31C,QAEpCqF,EADA,IAAMk7R,EAAUvgS,OACP,KAAOugS,EACT,IAAMA,EAAUvgS,OACdugS,EAAU,GAAKA,EAAU,GAAKA,EAAUnnR,OAAO,EAAG,GAElDmnR,OAGbl7R,EAASswC,EAEb,OAAOtwC,GAEXs6R,aAAc,SAASC,GACnB,IAAIv6R,EAAS,KAgBb,OAfI,eAAUu6R,KAENv6R,EADA,kBAAoBu6R,EACX,CACLY,IAAKp6R,KAAKk6R,iBAAiBV,IAGtB,CACLY,IAAKp6R,KAAKk6R,iBAAiBV,EAAUY,KACrCC,MAAOb,EAAUa,OAGrBJ,GAAY/hR,QAAQjZ,KACpBA,EAAS,OAGVA,GAEX26R,KAAM,SAASrqP,GACX,IAAItwC,EAAS,KAcb,OAbI,eAAUswC,KACN,kBAAoBA,EACpBtwC,EAASswC,GAETtwC,EAAS,QACL,IAAWswC,EAAO6qP,MAClBn7R,EAAOm7R,IAAM7qP,EAAO6qP,UAEpB,IAAW7qP,EAAO8qP,QAClBp7R,EAAOo7R,MAAQ9qP,EAAO8qP,SAI3Bp7R,GAEXiZ,QAAS,SAAS8hR,GACd,OAAQ,eAAUA,KAAS,eAAUA,EAAII,OAAS,eAAUJ,EAAIK,QAEpER,SAAU,SAASC,EAASC,GACxB,OAAOE,GAAY/hR,QAAQ4hR,IAAYG,GAAY/hR,QAAQ6hR,IAAa,eAAUD,IAAY,eAAUC,IAAaD,EAAQM,MAAQL,EAASK,KAAON,EAAQO,QAAUN,EAASM,OAEpLlB,MAAO,SAASx8N,EAASq9N,GACrB,OAAO,GAAUb,MAAMx8N,EAAS,CAC5By9N,IAAKJ,EAAII,IACTC,MAAOL,EAAIK,UAIR,MCpEXC,GAAoB,CACpBf,aAAc,SAASC,GACnB,IAAIv6R,EAAS,KAWb,OAVI,eAAUu6R,KACVv6R,EAAS,CACLs7R,YAAaf,EAAUe,YACvBC,gBAAiB,GAAYjB,aAAaC,EAAUgB,iBACpDC,gBAAiB,GAAYlB,aAAaC,EAAUiB,kBAEpDH,GAAkBpiR,QAAQjZ,KAC1BA,EAAS,OAGVA,GAEX26R,KAAM,SAASrqP,GACX,IAAItwC,EAAS,KAab,OAZI,eAAUswC,KACVtwC,EAAS,QACL,IAAWswC,EAAOgrP,cAClBt7R,EAAOs7R,YAAchrP,EAAOgrP,kBAE5B,IAAWhrP,EAAOirP,kBAClBv7R,EAAOu7R,gBAAkB,GAAYZ,KAAKrqP,EAAOirP,uBAEjD,IAAWjrP,EAAOkrP,kBAClBx7R,EAAOw7R,gBAAkB,GAAYb,KAAKrqP,EAAOkrP,mBAGlDx7R,GAEX46R,SAAU,SAASC,EAASC,GACxB,OAAOO,GAAkBpiR,QAAQ4hR,IAAYQ,GAAkBpiR,QAAQ6hR,IAAa,eAAUD,IAAY,eAAUC,IAAaD,EAAQS,cAAgBR,EAASQ,aAAe,GAAYV,SAASC,EAAQU,gBAAiBT,EAASS,kBAAoB,GAAYX,SAASC,EAAQW,gBAAiBV,EAASU,kBAEvTviR,QAAS,SAAS8hR,GACd,OAAQ,eAAUA,KAAS,eAAUA,EAAIO,cAE7CpB,MAAO,SAASa,GACZ,IAAIpgO,EAAU,CAAC,eAAUogO,EAAIS,iBAAmB,GAAYtB,MAAM,UAAWa,EAAIS,iBAAmB,GAAI,eAAUT,EAAIQ,iBAAmB,GAAYrB,MAAM,UAAWa,EAAIQ,iBAAmB,IAAIx+R,KAAK,IACtM,OAAO,GAAUm9R,MAAM,cAAe,CAClCoB,YAAaP,EAAIO,aAClB3gO,KAGI,MC5CX8gO,GAAa,CACbnB,aAAc,SAASC,GACnB,IAAIv6R,EAAS,KASb,OARI,eAAUu6R,KACVv6R,EAAS,CACL07R,YAAa,GAAkBpB,aAAaC,EAAUmB,cAEtDD,GAAWxiR,QAAQjZ,KACnBA,EAAS,OAGVA,GAEX27R,8BAA+B,WAC3B,IACIJ,gBAAiBA,EACjBK,gBAAiBA,EACjBC,iBAAkBA,GAClB56R,UAAUtG,OAAS,QAAK,IAAWsG,UAAU,GAAKA,UAAU,GAAK,GACrE,OAAI,eAAUs6R,IAAsB,eAAUK,IAAoB,eAAUC,GASjE,eAAUD,IAAoB,eAAUC,GACxC,CACHH,YAAa,CACTJ,YAAaM,EACbJ,gBAAiB,CACbL,IAAKU,GAETN,gBAAiB,CACbJ,IAAKI,UARd,EARI,CACHG,YAAa,CACTJ,YAAa,QACbE,gBAAiB,CACbL,IAAKI,MAkBzBO,iBAAkB,SAASxrP,EAAQr5B,QAC3B,IAAWq5B,EAAOirP,kBAClBtkR,EAAOskR,gBAAkBjrP,EAAOirP,sBAEhC,IAAWjrP,EAAOsrP,kBAClB3kR,EAAO2kR,gBAAkBtrP,EAAOsrP,sBAEhC,IAAWtrP,EAAOurP,mBAClB5kR,EAAO4kR,iBAAmBvrP,EAAOurP,mBAGzClB,KAAM,SAASrqP,GACX,IAAItwC,EAAS,KAOb,OANI,eAAUswC,KACVtwC,EAAS,QACL,IAAWswC,EAAOorP,cAClB17R,EAAO07R,YAAc,GAAkBf,KAAKrqP,EAAOorP,eAGpD17R,GAEX46R,SAAU,SAASC,EAASC,GACxB,OAAOW,GAAWxiR,QAAQ4hR,IAAYY,GAAWxiR,QAAQ6hR,IAAa,eAAUD,IAAY,eAAUC,IAAa,GAAkBF,SAASC,EAAQa,YAAaZ,EAASY,cAEhLziR,QAAS,SAAS8hR,GACd,OAAQ,eAAUA,IAAQ,GAAkB9hR,QAAQ8hR,EAAIW,cAE5DxB,MAAO,SAASa,GACZ,OAAO,GAAUb,MAAM,OAAQ,GAAI,GAAkBA,MAAMa,EAAIW,gBAGxD,MCzEXK,GAAa,CACbzB,aAAc,SAASC,GACnB,IAAIv6R,EAAS,KAgBb,OAfI,eAAUu6R,KACVv6R,EAAS,CACLw6B,KAAM+/P,EAAU//P,KAChB73B,KAAM43R,EAAU53R,KAChBq5R,OAAQzB,EAAUyB,OAClBC,OAAQ1B,EAAU0B,OAClBC,KAAM3B,EAAU2B,KAChBC,OAAQ5B,EAAU4B,OAClBC,UAAW7B,EAAU6B,UACrBC,MAAO,GAAY/B,aAAaC,EAAU8B,QAE1CN,GAAW9iR,QAAQjZ,KACnBA,EAAS,OAGVA,GAEX26R,KAAM,SAASrqP,GACX,IAAItwC,EAAS,KA4Bb,OA3BI,eAAUswC,KACVtwC,EAAS,QACL,IAAWswC,EAAO9V,OAClBx6B,EAAOw6B,KAAO8V,EAAO9V,WAErB,IAAW8V,EAAO3tC,OAClB3C,EAAO2C,KAAO2tC,EAAO3tC,WAErB,IAAW2tC,EAAO0rP,SAClBh8R,EAAOg8R,OAAS1rP,EAAO0rP,aAEvB,IAAW1rP,EAAO2rP,SAClBj8R,EAAOi8R,OAAS3rP,EAAO2rP,aAEvB,IAAW3rP,EAAO4rP,OAClBl8R,EAAOk8R,KAAO5rP,EAAO4rP,WAErB,IAAW5rP,EAAO6rP,SAClBn8R,EAAOm8R,OAAS7rP,EAAO6rP,aAEvB,IAAW7rP,EAAO8rP,YAClBp8R,EAAOo8R,UAAY9rP,EAAO8rP,gBAE1B,IAAW9rP,EAAO+rP,QAClBr8R,EAAOq8R,MAAQ,GAAY1B,KAAKrqP,EAAO+rP,SAGxCr8R,GAEX46R,SAAU,SAASC,EAASC,GACxB,OAAOiB,GAAW9iR,QAAQ4hR,IAAYkB,GAAW9iR,QAAQ6hR,IAAa,eAAUD,IAAY,eAAUC,IAAaD,EAAQrgQ,OAASsgQ,EAAStgQ,MAAQqgQ,EAAQl4R,OAASm4R,EAASn4R,MAAQk4R,EAAQmB,SAAWlB,EAASkB,QAAUnB,EAAQoB,SAAWnB,EAASmB,SAAWpB,EAAQqB,OAASpB,EAASoB,OAASrB,EAAQqB,QAAUpB,EAASoB,QAAUrB,EAAQsB,SAAWrB,EAASqB,SAAWtB,EAAQsB,UAAYrB,EAASqB,SAAWtB,EAAQuB,YAActB,EAASsB,WAAa,GAAYxB,SAASC,EAAQwB,MAAOvB,EAASuB,QAExfpjR,QAAS,SAAS8hR,GACd,OAAQ,eAAUA,KAAS,eAAUA,EAAIvgQ,QAAU,eAAUugQ,EAAIp4R,QAAU,eAAUo4R,EAAIiB,UAAY,eAAUjB,EAAIkB,WAAa,eAAUlB,EAAImB,QAAUnB,EAAImB,SAAW,eAAUnB,EAAIoB,UAAYpB,EAAIoB,UAAY,eAAUpB,EAAIqB,YAAc,GAAYnjR,QAAQ8hR,EAAIsB,QAEzQnC,MAAO,SAASa,GACZ,IAAIpgO,EAAU,CAAC,eAAUogO,EAAImB,OAASnB,EAAImB,KAAO,GAAUhC,MAAM,IAAK,IAAM,GAAI,eAAUa,EAAIvgQ,MAAQ,GAAU0/P,MAAM,KAAM,CACxH/mJ,IAAK4nJ,EAAIvgQ,OACR,GAAI,eAAUugQ,EAAIsB,OAAS,GAAYnC,MAAM,QAASa,EAAIsB,OAAS,GAAI,eAAUtB,EAAIp4R,MAAQ,GAAUu3R,MAAM,OAAQ,CACtH/mJ,IAAK4nJ,EAAIp4R,OACR,GAAI,eAAUo4R,EAAIiB,QAAU,GAAU9B,MAAM,SAAU,CACvD/mJ,IAAK4nJ,EAAIiB,SACR,GAAI,eAAUjB,EAAIkB,QAAU,GAAU/B,MAAM,SAAU,CACvD/mJ,IAAK4nJ,EAAIkB,SACR,GAAI,eAAUlB,EAAIoB,SAAWpB,EAAIoB,OAAS,GAAUjC,MAAM,IAAK,IAAM,GAAI,eAAUa,EAAIqB,WAAa,GAAUlC,MAAM,IAAK,CAC1H/mJ,IAAK4nJ,EAAIqB,YACR,IAAIr/R,KAAK,IACd,OAAO,GAAUm9R,MAAM,OAAQ,GAAIv/N,KAG5B,MCtEX2hO,GAAmB,CACnBhC,aAAc,SAASC,EAAWgC,GAC9B,IAAIv8R,EAAS,KACb,GAAI,eAAUu6R,GAAY,CACtB,IAAIiC,EAEAA,EADA,kBAAoBjC,EAAUkC,aACblC,EAAUkC,aAEVF,EAAqBG,qBAAqBnC,EAAUkC,cAEzE,IAAIxmQ,EAAOskQ,EAAUtkQ,KAChB,eAAUA,KACXA,EAAO,GAAW0lQ,8BAA8BpB,IAEpDv6R,EAAS,CACLw8R,eAAgBA,EAChBrwR,UAAW,GAAoBmuR,aAAaC,EAAUpuR,WACtDwwR,OAAQJ,EAAqBK,aAAarC,EAAUsC,MACpDC,OAAQP,EAAqBQ,aAAa9mQ,IAE1CqmQ,GAAiBrjR,QAAQjZ,KACzBA,EAAS,MAGjB,OAAOA,GAEX26R,KAAM,SAASrqP,GACX,IAAItwC,EAoBJ,OAnBI,OAASswC,EACTtwC,EAAS,KACF,eAAUswC,KACjBtwC,EAAS,QACL,IAAWswC,EAAOmsP,eAClBz8R,EAAOy8R,aAAensP,EAAOmsP,mBAE7B,IAAWnsP,EAAOra,KAClBj2B,EAAOi2B,KAAO,GAAW0kQ,KAAKrqP,EAAOra,MAErC,GAAW6lQ,iBAAiBxrP,EAAQtwC,QAEpC,IAAWswC,EAAOnkC,YAClBnM,EAAOmM,UAAY,GAAoBwuR,KAAKrqP,EAAOnkC,iBAEnD,IAAWmkC,EAAOusP,OAClB78R,EAAO68R,KAAO,GAAWlC,KAAKrqP,EAAOusP,QAGtC78R,GAEX46R,SAAU,SAASC,EAASC,GACxB,OAAOwB,GAAiBrjR,QAAQ4hR,IAAYyB,GAAiBrjR,QAAQ6hR,IAAa,eAAUD,IAAY,eAAUC,IAAaD,EAAQ8B,SAAW7B,EAAS6B,QAAU9B,EAAQ2B,iBAAmB1B,EAAS0B,gBAAkB3B,EAAQiC,SAAWhC,EAASgC,QAAU,GAAoBlC,SAASC,EAAQ1uR,UAAW2uR,EAAS3uR,YAE9T8M,QAAS,SAAS8hR,GACd,OAAQ,eAAUA,KAAS,eAAUA,EAAI4B,UAAY,eAAU5B,EAAIyB,kBAAoB,eAAUzB,EAAI+B,SAAW,GAAoB7jR,QAAQ8hR,EAAI5uR,YAEpJ+tR,MAAO,SAASa,GACZ,IACIiC,EADAC,EAAmB,GAAoBhkR,QAAQ8hR,EAAI5uR,WAKvD,OAHI,eAAU4uR,EAAIyB,kBACdQ,EAAoBjC,EAAIyB,eAAiB,EAAI,EAAI,GAE9C,GAAUtC,MAAM,KAAM,CACzBgD,KAAM,EACNC,eAAgBF,EAAmB,KAAO,EAC1CN,OAAQ5B,EAAI4B,OACZK,kBAAmBA,EACnBF,OAAQ/B,EAAI+B,OACZM,SAAUrC,EAAIyB,gBACfS,EAAmB,KAAO,GAAoB/C,MAAMa,EAAI5uR,cAGpD,MC1EXkxR,GAAqB,CACrBC,iBAAkB,KAClBhD,aAAc,SAASC,GACnB,IAAIv6R,EAAS,KASb,MARI,kBAAoBu6R,IACpBv6R,EAAS,CACLu9R,WAAYhD,GAEZ8C,GAAmBpkR,QAAQjZ,KAC3BA,EAAS,OAGVA,GAEX46R,SAAU,SAASC,EAASC,GACxB,OAAOuC,GAAmBpkR,QAAQ4hR,IAAYwC,GAAmBpkR,QAAQ6hR,IAAa,eAAUD,IAAY,eAAUC,IAAaD,EAAQ0C,aAAezC,EAASyC,YAEvKtkR,QAAS,SAAS8hR,GACd,OAAQ,eAAUA,KAAS,eAAUA,EAAIwC,aAAe,KAAOxC,EAAIwC,YAEvErD,MAAO,SAASa,GACZ,OAAO,GAAUb,MAAM,SAAU,CAC7BkD,SAAUrC,EAAIsC,GAAmBC,kBACjCC,WAAYxC,EAAIwC,eAIb,MCvBA,MAAM,GACjB,cACIx8R,KAAKy8R,gBAAkB,GACvBz8R,KAAK08R,UAAY,GACjB18R,KAAK28R,UAAY,GACjB38R,KAAK48R,kBAAoB,GACzB58R,KAAK08R,UAAUz5R,KAAK,GAAWs2R,aAAa,CACxCoB,YAAa,CACTJ,YAAa,WAIzB,mBAAmBsC,GACf,IAAI59R,EACA69R,EAAgB,GAAiBvD,aAAasD,EAAY,CAC1Db,aAAch8R,KAAKg8R,aAAaxgR,KAAKxb,MACrC67R,aAAc77R,KAAK67R,aAAargR,KAAKxb,MACrC27R,qBAAsB37R,KAAK27R,qBAAqBngR,KAAKxb,QAEzD,GAAI,eAAU88R,GAAgB,CAC1B,IAAK,IAAIrhS,EAAI,EAAGA,EAAIuE,KAAKy8R,gBAAgB7iS,OAAQ6B,IAC7C,GAAI,GAAiBo+R,SAAS75R,KAAKy8R,gBAAgBhhS,GAAIqhS,GAAgB,CACnE79R,EAASxD,EACT,WAGJ,IAAWwD,IACXA,EAASe,KAAKy8R,gBAAgBx5R,KAAK65R,GAAiB,GAG5D,OAAO79R,EAEX,sBAAsBswC,GAClB,OAAO,GAAiBqqP,KAAKrqP,GAEjC,yBACI,IAAIwtP,EAAkC/8R,KAAKy8R,gBAAgB3gS,IAAIk+R,GAAO,GAAiBb,MAAMa,IAC7F,OAAO,GAAUb,MAAM,UAAW,CAC9B/mR,MAAO2qR,EAAgCnjS,QACxCmjS,EAAgC/gS,KAAK,KAE5C,aAAak5B,GACT,IAAIj2B,EACA+9R,EAAU,GAAWzD,aAAarkQ,GACtC,GAAI,eAAU8nQ,GAAU,CACpB,IAAK,IAAIvhS,EAAI,EAAGA,EAAIuE,KAAK08R,UAAU9iS,OAAQ6B,IACvC,GAAI,GAAWo+R,SAAS75R,KAAK08R,UAAUjhS,GAAIuhS,GAAU,CACjD/9R,EAASxD,EACT,WAGJ,IAAWwD,IACPe,KAAK08R,UAAU9iS,OAAS,GACxBoG,KAAK08R,UAAUz5R,KAAK,GAAWs2R,aAAa,CACxCoB,YAAa,CACTJ,YAAa,cAIzBt7R,EAASe,KAAK08R,UAAUz5R,KAAK+5R,GAAW,GAGhD,OAAO/9R,EAEX,mBACI,IAAIg+R,EAAwBj9R,KAAK08R,UAAU5gS,IAAIk+R,GAAO,GAAWb,MAAMa,IACvE,OAAO,GAAUb,MAAM,QAAS,CAC5B/mR,MAAO6qR,EAAsBrjS,QAC9BqjS,EAAsBjhS,KAAK,KAElC,aAAa8/R,GACT,IAAI78R,EACAi+R,EAAU,GAAW3D,aAAauC,GACtC,GAAI,eAAUoB,GAAU,CACpB,IAAK,IAAIzhS,EAAI,EAAGA,EAAIuE,KAAK28R,UAAU/iS,OAAQ6B,IACvC,GAAI,GAAWo+R,SAAS75R,KAAK28R,UAAUlhS,GAAIyhS,GAAU,CACjDj+R,EAASxD,EACT,WAGJ,IAAWwD,IACXA,EAASe,KAAK28R,UAAU15R,KAAKi6R,GAAW,GAGhD,OAAOj+R,EAEX,mBACI,IAAIk+R,EAAkBn9R,KAAK28R,UAAU7gS,IAAIk+R,GAAO,GAAWb,MAAMa,IACjE,OAAO,GAAUb,MAAM,QAAS,CAC5B/mR,MAAO+qR,EAAgBvjS,QACxBujS,EAAgBnhS,KAAK,KAE5B,8BAA8BoF,GAC1B,OAAO,IAAMA,EAEjB,qBAAqBs6R,GACjB,IAAIz8R,EACA+6R,EAAM,GAAmBT,aAAamC,GAC1C,GAAI,eAAU1B,GAAM,CAChB,IAAK,IAAIv+R,EAAI,EAAGA,EAAIuE,KAAK48R,kBAAkBhjS,OAAQ6B,IAC/C,GAAI,GAAmBo+R,SAAS75R,KAAK48R,kBAAkBnhS,GAAIu+R,GAAM,CAC7D/6R,EAASe,KAAK48R,kBAAkBnhS,GAAG,GAAmB8gS,kBACtD,WAGJ,IAAWt9R,IACX+6R,EAAI,GAAmBuC,kBAAoBv8R,KAAKo9R,8BAA8Bp9R,KAAK48R,kBAAkBhjS,QACrGqF,EAAS+6R,EAAI,GAAmBuC,kBAChCv8R,KAAK48R,kBAAkB35R,KAAK+2R,IAGpC,OAAO/6R,EAEX,2BACI,GAAIe,KAAK48R,kBAAkBhjS,OAAS,EAAG,CACnC,IAAIujS,EAAkBn9R,KAAK48R,kBAAkB9gS,IAAIk+R,GAAO,GAAmBb,MAAMa,IACjF,OAAO,GAAUb,MAAM,UAAW,CAC9B/mR,MAAO+qR,EAAgBvjS,QACxBujS,EAAgBnhS,KAAK,KAExB,MAAO,ICpGnB,IAAIqhS,GAAU,yCACVC,GAAqB,mDACrBC,GAAsB,aACtBC,GAAkB,qVAClBC,GAAsB,oCACtBC,GAAyB,OACzBC,GAAiB,KACjBC,GAAqB,eACrBC,GAAyB,sBACzBC,GAAyB,oBACzBC,GAAkB,aAClBC,GAAoB,aACpBC,GAAsB,aACtBC,GAAuB,2XACvBC,GAAc,CACdt/C,QAAS,IACTvlP,KAAM,IACN+B,OAAQ,IACR89B,OAAQ,KAERilQ,GAAmBrkS,KAAKC,IAAI,KAAM,GAAI,IACtCqkS,GAAgC,GAChCC,GAA4B,EAC5BC,GAA6B,CAC7Bj8R,QAAS,YACTk8R,eAAgB,YAChBxhS,OAAQ,WACRuF,YAAa,YAENk8R,GAAe,OAAM1uO,QAAQ,CACpC2uO,WAAY,SAAS/hO,EAAStB,EAAYzB,GACtC,IACIn+D,EAEAi2D,EAHAzyD,EAAS,IAAM09D,EAEf/iE,EAASyhE,EAAWzhE,OAExB,IAAK6B,EAAI,EAAGA,EAAI7B,EAAQ6B,IACpBi2D,EAAO2J,EAAW5/D,QACd,IAAWi2D,EAAK7vD,QAChB5C,EAASA,EAAS,IAAMyyD,EAAK9vD,KAAO,KAAO8vD,EAAK7vD,MAAQ,KAGhE,OAAO,eAAU+3D,GAAW36D,EAAS,IAAM26D,EAAU,KAAO+C,EAAU,IAAM19D,EAAS,OAEzF0/R,uBAAwB,SAASC,EAAmBC,GAChD,IACIC,EACAC,EAFAt1G,EAAa,GAGjB,OAAQs1G,EACJD,EAAW,IAAMD,GAAsB,GAAKA,EAAqB,GAAKrtR,KAAKy9E,KAAK4vM,IAChFp1G,EAAa9vL,OAAO01B,aAAayvQ,GAAYr1G,EACzCo1G,GAAsB,GACtBA,EAAqBrtR,KAAKE,MAAMmtR,EAAqB,IAAM,EAE3DE,GAAmB,EAG3B,OAAOt1G,GAAcm1G,EAAoB,IAE7CI,uCAAwC,SAASxkO,EAAUgJ,GAOvD,OANIxjE,KAAKi/R,aAAe/pR,OAAOslD,KAC3Bx6D,KAAKi/R,aAAe/pR,OAAOslD,IAE3Bx6D,KAAKk/R,gBAAkBhqR,OAAOsuD,KAC9BxjE,KAAKk/R,gBAAkBhqR,OAAOsuD,IAE3BxjE,KAAK2+R,uBAAuBnkO,EAAUgJ,IAEjD27N,aAAc,SAASpqR,GACnB,OAAOopR,GAAYppR,IAAaopR,GAAYhlQ,QAEhDimQ,yBAA0B,SAAStgD,GAC/B,GAAI,eAAUA,GAAS,CACnB,GAAI,kBAAoBA,EACpB,OAAI35G,SAAS25G,GACFq/C,GAAY9iS,OAEZ8iS,GAAYhlQ,OAEpB,GAAI,eAAS2lN,GAChB,OAAOq/C,GAAYhlQ,OAChB,GAAI,eAAO2lN,GACd,OAAOq/C,GAAY9iS,OAChB,GAAI,eAAUyjP,GACjB,OAAOq/C,GAAYt/C,UAI/BwgD,uBAAwB,SAAShmS,EAAQ0b,GACrC,IAAI9V,EAAS,CACT5F,OAAQA,EACRwvD,UAAWxvD,GAAUA,EAAOwvD,UAC5B9zC,SAAUA,GAEd,OAAI,eAAS1b,GACF,OAAAoB,EAAA,WAAOwE,EAAQ5F,EAAQ,CAC1BA,OAAQA,EAAOwG,WAAaxG,EAAOoF,KACnCmqD,SAAUvvD,EAAOuvD,WAGlB3pD,GAEXqgS,+BAAgC,SAASjmS,EAAQ0b,GAC7C,IAAIwqR,EAAYv/R,KAAKq/R,uBAAuBhmS,EAAQ0b,GACpD1b,EAASkmS,EAAUlmS,OACnB,IAAIuvD,EAAW22O,EAAU32O,SAKzB,OAJA7zC,EAAWwqR,EAAUxqR,SACjB,eAAU1b,IAAW,SAAW0b,IAChC1b,EAASklS,GAA2BllS,GAAUA,EAAOoF,MAAQpF,IAAWA,GAErE,GAAqB4/R,cAAc5/R,EAAQkmS,EAAU12O,UAAW9zC,EAAU6zC,IAErF42O,cAAe,SAAS39R,GACpB,GAAI,eAAUA,KACVA,EAAQlI,OAAOkI,GACXA,EAAMjI,QAMN,OALAiI,EAAQ,gBAAWA,QACf,IAAW7B,KAAKy/R,YAAY59R,KAC5B7B,KAAKy/R,YAAY59R,GAAS7B,KAAK0/R,aAAa9lS,OAC5CoG,KAAK0/R,aAAaz8R,KAAKpB,IAEpB7B,KAAKy/R,YAAY59R,IAIpC89R,sBAAuB,SAASrmS,GAC5B,IAAIsmS,EACAC,EACJ,GAAI,eAAOvmS,GAMP,OALAsmS,EAAOpuR,KAAKE,OAAO3X,KAAKC,IAAIV,EAAKG,cAAeH,EAAKW,WAAYX,EAAKY,WAAakkS,IAAoB,OACnGwB,EAAOvB,IACPuB,IAEJC,GAAa,KAAOvmS,EAAKa,WAAa,GAAKb,EAAKc,aAAed,EAAKe,cAAgB,MAC7EulS,EAAOC,GAGtBC,cAAe,SAAStlO,EAAUgJ,GAC9B,IAOIu8N,EAPAC,EAAehgS,KAAKigS,eAEpBC,eAAgBA,GAChBF,EAAaG,YAAY3lO,EAAUgJ,IAAc,IAEjD3hE,MAAOA,GACPm+R,EAAaG,YAAY3lO,EAAUgJ,IAAc,GAEjD/kE,EAAOuB,KAAKm/R,aAAaa,EAAaI,YAAY5lO,EAAUgJ,IAIhE,OAHI/kE,IAAS0/R,GAAY7kS,MAAS,eAAOuI,KACrCpD,EAAO0/R,GAAYhlQ,QAEf16B,GACJ,KAAK0/R,GAAYhlQ,OACb4mQ,EAAcl+R,EACdA,EAAQ7B,KAAKw/R,cAAc39R,GAC3B,MACJ,KAAKs8R,GAAY7kS,KACbymS,EAAcl+R,EACdA,EAAQ7B,KAAK2/R,sBAAsB99R,GACnCpD,EAAO0/R,GAAY9iS,OAE3B,MAAO,CACHwG,MAAOA,EACPpD,KAAMA,EACNshS,YAAaA,EACbG,eAAgBA,IAGxBG,wBAAyB,SAASlwR,GAC9B,IACI6vR,aAAcA,EACdn+R,MAAOA,EACPo5D,MAAOA,EACPqlO,WAAYA,GACZnwR,EACAowR,EAAY,GAAUC,eAAevlO,GACrC5rB,EAAO,CACPxtC,MAAOA,EACP65R,aAAc6E,EAAU7E,aACxB+E,WAAY,WACRzgS,KAAK+yM,oBAAsB,KAC3B/yM,KAAKizM,kBAAoB,KACzBjzM,KAAK0gS,gBAAkB,KACvB1gS,KAAK87R,KAAO,KACZ97R,KAAK07R,aAAe,OAGxB,eAAU6E,KACN,eAAUA,EAAUn1R,aACpBikC,EAAK0jK,oBAAsBwtF,EAAUn1R,UAAUuuR,WAC/CtqP,EAAK4jK,kBAAoBstF,EAAUn1R,UAAUquR,SAC7CpqP,EAAKqxP,gBAAkBH,EAAUn1R,UAAUsuR,UAE/CrqP,EAAKmrP,gBAAkB+F,EAAU/F,gBACjCnrP,EAAKwrP,gBAAkB0F,EAAU1F,gBACjCxrP,EAAKyrP,iBAAmByF,EAAUzF,iBAClCzrP,EAAKysP,KAAOyE,EAAUzE,MAE1BkE,EAAa39O,mBAAmBhT,EAAMixP,GACtC,IAAIK,EAAWJ,GAAa,GAU5B,OATAI,EAAS7E,KAAOzsP,EAAKysP,KACrB6E,EAASv1R,UAAYu1R,EAASv1R,WAAa,GAC3Cu1R,EAASv1R,UAAUuuR,WAAatqP,EAAK0jK,oBACrC4tF,EAASv1R,UAAUquR,SAAWpqP,EAAK4jK,kBACnC0tF,EAASv1R,UAAUsuR,SAAWrqP,EAAKqxP,gBACnCC,EAASnG,gBAAkBnrP,EAAKmrP,gBAChCmG,EAAS9F,gBAAkBxrP,EAAKwrP,gBAChC8F,EAAS7F,iBAAmBzrP,EAAKyrP,iBACjC6F,EAASjF,aAAersP,EAAKqsP,aACtB,CACH75R,MAAOwtC,EAAKxtC,MACZo5D,MAAO0lO,IAGfC,cAAe,WACX,IAAIpmO,EACAgJ,EACAq9N,EACAC,EAKAxkR,EAJArd,EAAS,GACT+gS,EAAehgS,KAAKigS,cACpBc,EAAaf,EAAan4N,eAC1BrpD,EAAUwhR,EAAa5nO,aAE3B,IAAKoC,EAAW,EAAGA,EAAWumO,EAAYvmO,IAAY,CAGlD,IAFAqmO,EAAa,GACbvkR,EAAckC,EAAQ5kB,OACjB4pE,EAAY,EAAGA,IAAclnD,EAAaknD,IAAa,CACxDs9N,EAAW9gS,KAAK8/R,cAActlO,EAAUgJ,GACxC,IAAIw9N,EAAkBhB,EAAaiB,WAAWzmO,EAAUgJ,GACpD09N,EAAclhS,KAAKmhS,iCAAiCH,GACxD,GAAIhB,EAAaoB,uBAAyBpB,EAAaoB,wBAAyB,CAC5E,IAAIv/R,EAAQi/R,EAASf,aAAee,EAASj/R,MACzCw/R,EAAoBrhS,KAAKqgS,wBAAwB,CACjDL,aAAcA,EACdn+R,MAAOA,EACPo5D,MAAOj7D,KAAKshS,YAAYN,GACxBV,WAAYQ,EAASZ,iBAEzB,GAAImB,EAAkBx/R,QAAUA,EAAO,CACnC,UAAWw/R,EAAkBx/R,eAAiBA,GAAS,kBAAoBw/R,EAAkBx/R,QAAUsjI,SAASk8J,EAAkBx/R,OAAQ,CACtI,IAAI0/R,EAAevhS,KAAKo/R,yBAAyBiC,EAAkBx/R,OAC/D,eAAU0/R,KACVT,EAASriS,KAAO8iS,GAGxB,OAAQT,EAASriS,MACb,KAAK0/R,GAAYhlQ,OACb2nQ,EAASj/R,MAAQ7B,KAAKw/R,cAAc6B,EAAkBx/R,OACtD,MACJ,KAAKs8R,GAAY7kS,KACbwnS,EAASj/R,MAAQw/R,EAAkBx/R,MACnC,MACJ,KAAKs8R,GAAY9iS,OACb,IAAI+oE,EAAWi9N,EAAkBx/R,MAC7B2/R,EAAiBxhS,KAAK2/R,sBAAsBv7N,GAC5C,eAAUo9N,KACVp9N,EAAWo9N,GAEfV,EAASj/R,MAAQuiE,EACjB,MACJ,QACI08N,EAASj/R,MAAQw/R,EAAkBx/R,OAG/Cq/R,EAAclhS,KAAKyhS,WAAWC,mBAAmBL,EAAkBpmO,OAEvE4lO,EAAW59R,KAAK,CACZg4D,MAAOimO,EACPr/R,MAAOi/R,EAASj/R,MAChBpD,KAAMqiS,EAASriS,QAGlBuB,KAAK2hS,cAAgB3B,EAAa4B,cAAcpnO,GAAY,IAC7Dx6D,KAAK2hS,cAAe,GAExB1iS,EAAOgE,KAAK49R,GAEhB,OAAO5hS,GAEX4iS,gBAAiB,SAASC,GAKtB,OAJAA,EAAcvgS,SAASugS,EAAa,MAC/BA,GAAeA,EAAc,KAC9BA,EAAc,KAEXtwR,KAAK3I,IAAI,IAAK2I,KAAKE,OAAOowR,EAAc,GAAKxD,GAA4B,IAAM,IAAM,MAEhGyD,kBAAmB,WACf,IAAIp+R,EAAO3D,KACPmnR,EAASxjR,EAAKs8R,cAAc+B,YAChCr+R,EAAKs8R,cAAc7nO,aAAal3D,SAAQ,SAAUqZ,GAC9C5W,EAAKs+R,WAAWh/R,KAAKU,EAAKk+R,gBAAgBtnR,EAAOlP,WAErD,IAAI62R,EAAQ,CAAC,CACTzoQ,KAAM,GACN6hQ,MAAO,CACHjB,MAAO,GAEXz4R,KAAM,UACNq5R,OAAQ,EACRC,OAAQ,QACRC,MAAM,GACP,CACC1hQ,KAAM,GACN6hQ,MAAO,CACHjB,MAAO,GAEXz4R,KAAM,UACNq5R,OAAQ,EACRC,OAAQ,QACRC,MAAM,IAEVn7R,KAAKyhS,WAAW5F,aAAaqG,EAAM,IACnCliS,KAAKyhS,WAAW5F,aAAaqG,EAAM,IACnC/a,EAAOjmR,SAAQ,SAAU+5D,GACrB,IAAIygO,EAAe/3R,EAAK27R,+BAA+BrkO,EAAM5hE,OAAQ4hE,EAAMlmD,UACtE,eAAU2mR,KACXA,EAAe,GAEnB/3R,EAAK29R,YAAYr+R,KAAK,CAClB64R,KAAMoG,EAAMhtR,SAAS+lD,EAAMkgO,OAC3BO,aAAcA,EACdtwR,UAAW,CACPquR,SAAU,MACVC,WAAYz+N,EAAMy+N,SAClBC,WAAY1+N,EAAM7vD,WAAa,aAI3CzH,EAAKw9R,iCAAmCx9R,EAAK29R,YAAYxlS,IAAI+N,GAAQ7J,KAAKyhS,WAAWC,mBAAmB73R,KAE5Gs4R,iBAAkB,WACdniS,KAAKoiS,YAAcpiS,KAAK4gS,iBAE5ByB,wBAAyB,SAASC,GAC9B,OAAOtiS,KAAK0+R,WAAW,gBAAiB,CAAC,CACrC98R,KAAM,QACNC,MAAO47R,GAAsB,gCAC7B6E,IAERC,uBAAwB,SAASzzS,EAAI2P,EAAMyX,GACvC,OAAOlW,KAAK0+R,WAAW,eAAgB,CAAC,CACpC98R,KAAM,KACNC,MAAO,MAAQ/S,GAChB,CACC8S,KAAM,OACNC,MAAO47R,GAAsB,sCAAwCh/R,GACtE,CACCmD,KAAM,SACNC,MAAOqU,MAGfssR,oBAAqB,WACjB,OAAOnF,GAAUr9R,KAAK0+R,WAAW,WAAY,CAAC,CAC1C98R,KAAM,UACNC,MAAO47R,GAAsB,sCAC9B,CACC77R,KAAM,QACNC,MAAO47R,GAAsB,6BAC7B,uXAERgF,wBAAyB,WACrB,OAAOpF,GAAU,iBAAmBI,GAAsB,mtBAE9DiF,mBAAoB,WAChB,IAAIltQ,EAASx1B,KAAK2iS,KAAKntQ,OAAOmoQ,IAC1BiF,EAAM,GACVA,GAAO5iS,KAAKyhS,WAAWoB,2BACvBD,GAAO5iS,KAAKyhS,WAAWqB,mBACvBF,GAAO5iS,KAAKyhS,WAAWsB,mBACvBH,GAAOpF,GACPoF,GAAO5iS,KAAKyhS,WAAWuB,yBACvBJ,GAAO5iS,KAAK0+R,WAAW,aAAc,CAAC,CAClC98R,KAAM,QACNC,MAAO,IACP7B,KAAK0+R,WAAW,YAAa,CAAC,CAC9B98R,KAAM,OACNC,MAAO,UACR,CACCD,KAAM,OACNC,MAAO,GACR,CACCD,KAAM,YACNC,MAAO,MAEX+gS,EAAMvF,GAAUr9R,KAAK0+R,WAAW,aAAc,CAAC,CAC3C98R,KAAM,QACNC,MAAO47R,GAAsB,6BAC7BmF,GACJptQ,EAAOlG,KAAKyuQ,GAAiB6E,GAC7B5iS,KAAKshS,YAAc,IAEvB2B,oBAAqB,WACjB,IACIC,EADA1tQ,EAASx1B,KAAK2iS,KAAKntQ,OAAOmoQ,IAE1BwF,EAAgBnjS,KAAK0/R,aAAa9lS,OAClCwpS,EAAkB/F,GACtB,IAAK6F,EAAc,EAAGA,EAAcC,EAAeD,IAC/CljS,KAAK0/R,aAAawD,GAAeljS,KAAK0+R,WAAW,KAAM,GAAI1+R,KAAK0+R,WAAW,IAAK,GAAI1+R,KAAK0/R,aAAawD,KAE1GE,GAAmBpjS,KAAK0+R,WAAW,MAAO,CAAC,CACvC98R,KAAM,QACNC,MAAO47R,GAAsB,4BAC9B,CACC77R,KAAM,QACNC,MAAO7B,KAAK0/R,aAAa9lS,QAC1B,CACCgI,KAAM,cACNC,MAAO7B,KAAK0/R,aAAa9lS,SACzBoG,KAAK0/R,aAAa1jS,KAAK,KAC3Bw5B,EAAOlG,KAAKwuQ,GAAwBsF,GACpCpjS,KAAK0/R,aAAe,IAExB2D,YAAa,WACT,IAAIhoO,EAAa,CAAC,CACdz5D,KAAM,aACNC,MAAO,cACR,CACCD,KAAM,QACNC,MAAO,WAEPyhS,EAAatjS,KAAKigS,cAAcsD,gBACpC,OAAMD,EAAWrwR,GAAKqwR,EAAWnxR,GAG7BmxR,EAAWrwR,GACXooD,EAAWp4D,KAAK,CACZrB,KAAM,SACNC,MAAOyhS,EAAWrwR,IAGtBqwR,EAAWnxR,GACXkpD,EAAWp4D,KAAK,CACZrB,KAAM,SACNC,MAAOyhS,EAAWnxR,IAG1BkpD,EAAWp4D,KAAK,CACZrB,KAAM,cACNC,MAAO7B,KAAKg/R,uCAAuCsE,EAAWnxR,EAAGmxR,EAAWrwR,KAEzEjT,KAAK0+R,WAAW,OAAQrjO,IAlBpB,IAoBfmoO,kBAAmB,SAASC,GACxB,OAAIzjS,KAAKohK,SAASsiI,kBACP,qBAAuB1jS,KAAKigS,cAAc0D,oBAAsB,IAAMF,EAAe,OAEzF,IAEXG,qBAAsB,SAASH,GAC3B,OAAIzjS,KAAKohK,SAASyiI,aACP,0CAA4CJ,EAAe,8CAE/D,IAEXK,sBAAuB,WACnB,IAAIp9I,EACAlsF,EACAsmO,EACAiD,EAGAznR,EAFA0nR,EAAU,GACVjD,EAAa/gS,KAAKoiS,YAAYxoS,OAE9BqqS,EAAajkS,KAAKiiS,WAAWroS,OAC7BsqS,EAAS,KAAOD,EAChBE,EAAiBnkS,KAAKigS,cAAc0D,kBAAoB3jS,KAAKigS,cAAc0D,oBAAsB,EACjGS,EAAY,CAAClG,IAWjB,IAVAkG,EAAUnhS,KAAKjD,KAAK2hS,aAAerE,GAAqBC,IACxD6G,EAAUnhS,KAAK,4BACfmhS,EAAUnhS,KAAK,2BACfmhS,EAAUnhS,KAAKjD,KAAKqkS,YAAc,mBAAqB,IACvDD,EAAUnhS,KAAK,uCACfmhS,EAAUnhS,KAAKjD,KAAKqjS,eACpBe,EAAUnhS,KAAK,6BACfmhS,EAAUnhS,KAAK,wCACfmhS,EAAUnhS,KAAK,sBAAwBjD,KAAKigS,cAAcp4N,eAAiB,EAAI7nE,KAAKigS,cAAc2B,cAAc,GAAK,GAAK,KAC1HwC,EAAUnhS,KAAK,6BACVyjJ,EAAW,EAAGA,EAAWu9I,EAAYv9I,IACtC1mJ,KAAKiiS,WAAWv7I,GAAY1mJ,KAAK0+R,WAAW,MAAO,CAAC,CAChD98R,KAAM,QACNC,MAAO7B,KAAKiiS,WAAWv7I,IACxB,CACC9kJ,KAAM,MACNC,MAAOqT,OAAOwxI,GAAY,GAC3B,CACC9kJ,KAAM,MACNC,MAAOqT,OAAOwxI,GAAY,GAC3B,CACC9kJ,KAAM,cACNC,MAAO,KAIf,IADAuiS,EAAUnhS,KAAKjD,KAAK0+R,WAAW,OAAQ,GAAI1+R,KAAKiiS,WAAWjmS,KAAK,KAAO,eAClEw+D,EAAW,EAAGA,EAAWumO,EAAYvmO,IAAY,CAGlD,IAFAupO,EAAW,GACXznR,EAActc,KAAKoiS,YAAY5nO,GAAU5gE,OACpC8sJ,EAAW,EAAGA,EAAWpqI,EAAaoqI,IACvClsF,EAAWtlD,OAAOslD,GAClBsmO,EAAW9gS,KAAKoiS,YAAY5nO,GAAUksF,GACtCq9I,EAAS9gS,KAAKjD,KAAK0+R,WAAW,IAAK,CAAC,CAChC98R,KAAM,IACNC,MAAO7B,KAAKg/R,uCAAuCxkO,EAAUksF,IAC9D,CACC9kJ,KAAM,IACNC,MAAOi/R,EAAS7lO,OACjB,CACCr5D,KAAM,IACNC,MAAOi/R,EAASriS,OAChB,eAAUqiS,EAASj/R,OAAS7B,KAAK0+R,WAAW,IAAK,GAAIoC,EAASj/R,OAAS,OAE/EmiS,EAAQ/gS,KAAKjD,KAAK0+R,WAAW,MAAO,CAAC,CACjC98R,KAAM,IACNC,MAAOqT,OAAOslD,GAAY,GAC3B,CACC54D,KAAM,QACNC,MAAOqiS,GACR,CACCtiS,KAAM,eACNC,MAAO24D,GAAY2pO,EAAiBnkS,KAAKigS,cAAc2B,cAAcpnO,GAAY,GAClF,CACC54D,KAAM,kBACNC,MAAO,SACPkiS,EAAS/nS,KAAK,MAClBgE,KAAKoiS,YAAY5nO,GAAY,KACzBwpO,EAAQpqS,OAAS,MACjBwqS,EAAUnhS,KAAK+gS,EAAQhoS,KAAK,KAC5BgoS,EAAU,IAGlBI,EAAUnhS,KAAK+gS,EAAQhoS,KAAK,KAC5BgoS,EAAU,GACV,IAAIM,EAAqBtkS,KAAK2+R,uBAAuB3+R,KAAKi/R,aAAcj/R,KAAKk/R,iBAC7EkF,EAAUnhS,KAAK,eAAiBjD,KAAKwjS,kBAAkBc,GAAsBtkS,KAAKukS,sBAAwBvkS,KAAK4jS,qBAAqBU,GAAsB,gBAC1JtkS,KAAK2iS,KAAKntQ,OAAOmoQ,IAAgBnoQ,OAAOwoQ,IAAmB1uQ,KAAK2uQ,GAAqBmG,EAAUpoS,KAAK,KACpGgE,KAAKiiS,WAAa,GAClBjiS,KAAKoiS,YAAc,GACnBgC,EAAY,IAEhBG,oBAAqB,WACjB,IAAI30Q,EACApE,EACAg4C,EACAhJ,EAKAgqO,EAJAzD,EAAa,eAAU/gS,KAAKigS,cAAc0D,mBAAqB3jS,KAAKigS,cAAc0D,oBAAsB3jS,KAAKigS,cAAcp4N,eAC3H48N,EAAgBzkS,KAAKigS,cAAc7nO,aAAax+D,OAChD8qS,EAAW,GACXC,EAAa,GAEbC,EAAW,GACf,IAAKpqO,EAAW,EAAGA,EAAWumO,EAAYvmO,IACtC,IAAKgJ,EAAY,EAAGA,IAAcihO,EAAejhO,IAC7C,IAAK,eAAUkhO,EAASlqO,MAAe,eAAUkqO,EAASlqO,GAAUgJ,IAAa,CAC7E,IAAIqhO,EAAY7kS,KAAKigS,cAAc6E,eAAetqO,EAAUgJ,GAC5D,GAAIqhO,EAAUtoO,SAAWsoO,EAAUl2N,QAK/B,IAJAg2N,EAAW1hS,KAAK,CACZ4nD,MAAO7qD,KAAKg/R,uCAAuCxkO,EAAUgJ,GAC7DrxC,IAAKnyB,KAAKg/R,uCAAuCxkO,GAAYqqO,EAAUl2N,SAAW,GAAInL,GAAaqhO,EAAUtoO,SAAW,MAEvH3sC,EAAI4qC,EAAU5qC,GAAK4qC,EAAWqqO,EAAUl2N,QAAc/+C,IACvD,IAAKpE,EAAIg4C,EAAWh4C,GAAKg4C,EAAYqhO,EAAUtoO,QAAc/wC,IACpD,eAAUk5Q,EAAS90Q,MACpB80Q,EAAS90Q,GAAK,IAElB80Q,EAAS90Q,GAAGpE,IAAK,EAOzC,IAAIu5Q,EAAmBJ,EAAW/qS,OAClC,IAAK4qS,EAAa,EAAGA,EAAaO,EAAkBP,IAChDI,GAAY5kS,KAAK0+R,WAAW,YAAa,CAAC,CACtC98R,KAAM,MACNC,MAAO8iS,EAAWH,GAAY35O,MAAQ,IAAM85O,EAAWH,GAAYryQ,OAG3E,OAAOyyQ,EAAShrS,OAASoG,KAAK0+R,WAAW,aAAc,CAAC,CACpD98R,KAAM,QACNC,MAAOkjS,IACPH,GAAY,IAEpBI,mBAAoB,WAChB,IAAIC,EAAkB5H,GAAUr9R,KAAKqiS,wBAAwBriS,KAAKuiS,uBAAuB,EAAG,iBAAkB,MAAQ3E,KAClHpoQ,EAASx1B,KAAK2iS,KAAKntQ,OAAOmoQ,IAC1BuH,EAAU7H,GACdr9R,KAAK2iS,KAAKntQ,OAAO,IAAMkoQ,IAAwBpuQ,KAAK,IAAMouQ,GAAwBuH,GAClF,IAAI3C,EAAmBtiS,KAAKuiS,uBAAuB,EAAG,YAAa,cAAgBtE,IAAuBj+R,KAAKuiS,uBAAuB,EAAG,SAAUxE,IAAmB/9R,KAAKuiS,uBAAuB,EAAG,gBAAiBzE,IACtNoH,GAAWllS,KAAKqiS,wBAAwBC,GACxC9sQ,EAAOA,OAAO,IAAMkoQ,IAAwBpuQ,KAAKsuQ,GAAqB,QAASsH,GAC/E1vQ,EAAOlG,KAAKsuQ,GAAoB59R,KAAKwiS,uBACrCxiS,KAAK2iS,KAAKrzQ,KAAKuuQ,GAAwB79R,KAAKyiS,4BAEhD0C,iBAAkB,WACdnlS,KAAK+hS,oBACL/hS,KAAKmiS,mBACLniS,KAAKolS,mBACLplS,KAAKglS,sBAETI,iBAAkB,WACdplS,KAAK0iS,qBACL1iS,KAAKijS,sBACLjjS,KAAK8jS,yBAET7zO,KAAM,SAAS+vO,EAAclqR,GACzB9V,KAAKqkS,YAAcvuR,KAAaA,EAAQuG,WACxCrc,KAAKohK,SAAWtrJ,EAChB9V,KAAKi/R,aAAe,EACpBj/R,KAAKk/R,gBAAkB,EACvBl/R,KAAK0/R,aAAe,GACpB1/R,KAAKy/R,YAAc,GACnBz/R,KAAKshS,YAAc,GACnBthS,KAAKiiS,WAAa,GAClBjiS,KAAKoiS,YAAc,GACnBpiS,KAAK2hS,cAAe,EACpB3hS,KAAKigS,cAAgBD,EACrBhgS,KAAKyhS,WAAa,IAAI,GAClB,eAAUhD,GAAa4G,OACvBrlS,KAAK2iS,KAAO,IAAIlE,GAAa4G,MAE7BrlS,KAAK2iS,KAAO,MAGpB2C,eAAgB,WACZ,IAAKtlS,KAAK2iS,KACN,MAAM,OAAOj3Q,MAAM,QAAS,UAGpC65Q,MAAO,WACH,OAAOvlS,KAAKigS,cAAcsF,SAE9BC,QAAS,SAASC,GACd,IAAI3vR,EAAU,CACVrX,KAAMgnS,EAAS,OAAS,SACxBj5Q,YAAa,UACbmJ,SAAU29P,GAAWP,OAErB3kO,EAAW,IAAI,cAQnB,OAPApuD,KAAKslS,iBACLtlS,KAAKmlS,mBACDnlS,KAAK2iS,KAAK9sQ,cACV71B,KAAK2iS,KAAK9sQ,cAAc/f,GAASpR,KAAK0pD,EAASztC,SAE/CytC,EAASztC,QAAQ3gB,KAAK2iS,KAAKltQ,SAAS3f,IAEjCs4C,KAIR,SAAS,GAAQhqD,EAAM0R,GAC1B,IAAI4vR,EAAe,IAAIjH,GAAar6R,EAAM0R,GAE1C,OADA4vR,EAAaJ,iBACNI,EAAaH,QAAQ7gS,KAAK,IAAMghS,EAAaF,QAAQ,eAAW,iBAAYhsQ,QAJvFilQ,GAAa4G,MAAQ,KClqBrB,IAAIM,GAAqB,CACrBC,UAAW,SACXC,aAAc,SACdC,KAAM,SACNC,WAAY,SACZC,MAAO,SACPC,MAAO,SACPC,OAAQ,SACRC,MAAO,SACPC,eAAgB,SAChBC,KAAM,SACNC,WAAY,SACZC,MAAO,SACPC,UAAW,SACXC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,MAAO,SACPC,eAAgB,SAChBC,SAAU,SACVC,QAAS,SACTC,KAAM,SACNC,SAAU,SACVC,SAAU,SACVC,cAAe,SACfC,SAAU,SACVC,UAAW,SACXC,SAAU,SACVC,UAAW,SACXC,YAAa,SACbC,eAAgB,SAChBC,WAAY,SACZC,WAAY,SACZC,QAAS,SACTC,WAAY,SACZC,aAAc,SACdC,cAAe,SACfC,cAAe,SACfC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,SAAU,SACVC,YAAa,SACbC,QAAS,SACTC,QAAS,SACTC,WAAY,SACZC,SAAU,SACVC,UAAW,SACXC,YAAa,SACbC,YAAa,SACbC,QAAS,SACTC,UAAW,SACXC,WAAY,SACZC,KAAM,SACNC,UAAW,SACXC,KAAM,SACNC,MAAO,SACPC,YAAa,SACbC,KAAM,SACNC,SAAU,SACVC,QAAS,SACTC,UAAW,SACXC,OAAQ,SACRC,MAAO,SACPC,MAAO,SACPC,SAAU,SACVC,cAAe,SACfC,UAAW,SACXC,aAAc,SACdC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,qBAAsB,SACtBC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,cAAe,SACfC,aAAc,SACdC,eAAgB,SAChBC,eAAgB,SAChBC,eAAgB,SAChBC,eAAgB,SAChBC,YAAa,SACbC,KAAM,SACNC,UAAW,SACXC,MAAO,SACPC,QAAS,SACTC,OAAQ,SACRC,iBAAkB,SAClBC,WAAY,SACZC,aAAc,SACdC,aAAc,SACdC,eAAgB,SAChBC,gBAAiB,SACjBC,kBAAmB,SACnBC,gBAAiB,SACjBC,gBAAiB,SACjBC,aAAc,SACdC,UAAW,SACXC,UAAW,SACXC,SAAU,SACVC,YAAa,SACbC,KAAM,SACNC,QAAS,SACTC,MAAO,SACPC,UAAW,SACXC,OAAQ,SACRC,UAAW,SACXC,OAAQ,SACRC,cAAe,SACfC,UAAW,SACXC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,UAAW,SACXC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,WAAY,SACZC,OAAQ,SACRC,cAAe,SACfC,IAAK,SACLC,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,OAAQ,SACRC,WAAY,SACZC,SAAU,SACVC,SAAU,SACVC,OAAQ,SACRC,OAAQ,SACRC,QAAS,SACTC,UAAW,SACXC,UAAW,SACXC,UAAW,SACXC,KAAM,SACNC,YAAa,SACbC,UAAW,SACXC,IAAK,SACLC,KAAM,SACNC,QAAS,SACTC,OAAQ,SACRC,UAAW,SACXC,OAAQ,SACRC,UAAW,SACXC,MAAO,SACPC,MAAO,SACPC,WAAY,SACZC,OAAQ,SACRC,YAAa,UAEbC,GAAqB,CAAC,CACtBC,GAAI,+CACJrgQ,QAAS,SAASsgQ,GACd,MAAO,CAAC9tS,SAAS8tS,EAAY,GAAI,IAAK9tS,SAAS8tS,EAAY,GAAI,IAAK9tS,SAAS8tS,EAAY,GAAI,OAElG,CACCD,GAAI,+DACJrgQ,QAAS,SAASsgQ,GACd,MAAO,CAAC9tS,SAAS8tS,EAAY,GAAI,IAAK9tS,SAAS8tS,EAAY,GAAI,IAAK9tS,SAAS8tS,EAAY,GAAI,IAAKp7O,WAAWo7O,EAAY,OAE9H,CACCD,GAAI,6CACJrgQ,QAAS,SAASsgQ,GACd,MAAO,CAAC9tS,SAAS8tS,EAAY,GAAI,IAAK9tS,SAAS8tS,EAAY,GAAI,IAAK9tS,SAAS8tS,EAAY,GAAI,OAElG,CACCD,GAAI,6CACJrgQ,QAAS,SAASsgQ,GACd,MAAO,CAAC9tS,SAAS8tS,EAAY,GAAKA,EAAY,GAAI,IAAK9tS,SAAS8tS,EAAY,GAAKA,EAAY,GAAI,IAAK9tS,SAAS8tS,EAAY,GAAKA,EAAY,GAAI,OAErJ,CACCD,GAAI,+CACJrgQ,QAAS,SAASsgQ,GACd,IAAIz8R,EAAIrR,SAAS8tS,EAAY,GAAI,IAC7Bv8R,EAAIvR,SAAS8tS,EAAY,GAAI,IAC7B1/Q,EAAIpuB,SAAS8tS,EAAY,GAAI,IAC7BjV,EAAMkV,GAAS18R,EAAGE,EAAG6c,GACzB,MAAO,CAACyqQ,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAI,EAAG,CAACxnR,EAAGE,EAAG6c,MAE/C,CACCy/Q,GAAI,+CACJrgQ,QAAS,SAASsgQ,GACd,IAAIz8R,EAAIrR,SAAS8tS,EAAY,GAAI,IAC7Bv8R,EAAIvR,SAAS8tS,EAAY,GAAI,IAC7B7jR,EAAIjqB,SAAS8tS,EAAY,GAAI,IAC7BjV,EAAMmV,GAAS38R,EAAGE,EAAG0Y,GACzB,MAAO,CAAC4uQ,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAI,EAAG,KAAM,CAACxnR,EAAGE,EAAG0Y,OAGpD2oH,GAAS3iI,KAAKyrF,MAElB,SAASuyM,GAAM3tS,GAEX,IAAIy5R,EADJt7R,KAAKyvS,UAAY5tS,EAEbA,IACAy5R,EAAQ3hS,OAAOkI,GAAO/D,cAAc3C,QAAQ,KAAM,IAClDmgS,EAAQqK,GAAmBrK,GAAS,IAAMqK,GAAmBrK,GAASA,EACtEA,EAAQoU,GAAWpU,IAElBA,IACDt7R,KAAK2vS,gBAAiB,GAE1BrU,EAAQA,GAAS,GACjBt7R,KAAKuR,EAAIq+R,GAAUtU,EAAM,IACzBt7R,KAAK0vB,EAAIkgR,GAAUtU,EAAM,IACzBt7R,KAAKgC,EAAI4tS,GAAUtU,EAAM,IACzBt7R,KAAK+B,EAAI6tS,GAAUtU,EAAM,GAAI,EAAG,GAC5BA,EAAM,GACNt7R,KAAK6vS,IAAM,CACPj9R,EAAG0oR,EAAM,GAAG,GACZxoR,EAAGwoR,EAAM,GAAG,GACZ3rQ,EAAG2rQ,EAAM,GAAG,IAGhBt7R,KAAK6vS,IAAMC,GAAa9vS,KAAKuR,EAAGvR,KAAK0vB,EAAG1vB,KAAKgC,GAE7Cs5R,EAAM,GACNt7R,KAAK+vS,IAAM,CACPn9R,EAAG0oR,EAAM,GAAG,GACZxoR,EAAGwoR,EAAM,GAAG,GACZ9vQ,EAAG8vQ,EAAM,GAAG,IAGhBt7R,KAAK+vS,IAAMC,GAAahwS,KAAKuR,EAAGvR,KAAK0vB,EAAG1vB,KAAKgC,GAIrD,SAAS0tS,GAAWpU,GAChB,GAAI,gBAAkBA,EAClB,MAAO,CAAC,EAAG,EAAG,EAAG,GAKrB,IAHA,IAEIp/R,EAFAT,EAAI,EACJvI,EAAKi8S,GAAmBv1S,OAErB6B,EAAIvI,IAAMuI,EAEb,GADAS,EAAMizS,GAAmB1zS,GAAG2zS,GAAGvkR,KAAKywQ,GAChCp/R,EACA,OAAOizS,GAAmB1zS,GAAGszC,QAAQ7yC,GAG7C,OAAO,KAGX,SAAS0zS,GAAUK,EAAgBC,EAAKpnS,GAGpC,OAFAonS,EAAMA,GAAO,EACbpnS,EAAMA,GAAO,IACNmnS,EAAiB,GAAKzsS,MAAMysS,GAAkBC,EAAMD,EAAiBnnS,EAAMA,EAAMmnS,EAG5F,SAASE,GAAa5+R,EAAGme,EAAG1tB,GACxB,MAAO,KAAO,SAAWuP,GAAK,GAAKme,GAAK,EAAI1tB,GAAG2P,SAAS,IAAIqC,MAAM,GAGtE,SAAS87R,GAAav+R,EAAGme,EAAG1tB,GACxB,IAGI2Q,EACAI,EAJAjK,EAAM0I,KAAK1I,IAAIyI,EAAGme,EAAG1tB,GACrB6G,EAAM2I,KAAK3I,IAAI0I,EAAGme,EAAG1tB,GACrBywI,EAAQ3pI,EAAMD,EAGd4lC,EAAI3lC,EAER,GADAiK,EAAI,IAAMjK,EAAM,EAAI,EAAID,EAAMC,EAC1BA,IAAQD,EACR8J,EAAI,OAEJ,OAAQ7J,GACJ,KAAKyI,EACDoB,GAAK+c,EAAI1tB,GAAKywI,EAAQ,GAClB/iH,EAAI1tB,IACJ2Q,GAAK,KAET,MACJ,KAAK+c,EACD/c,GAAK3Q,EAAIuP,GAAKkhI,EAAQ,GAAK,IAC3B,MACJ,KAAKzwI,EACD2Q,GAAKpB,EAAIme,GAAK+iH,EAAQ,GAAK,IAKvC,OAFA1/H,GAAK,IACL07B,GAAK,IAAM,IACJ,CACH77B,EAAGpB,KAAKyrF,MAAMtqF,GACdG,EAAGtB,KAAKyrF,MAAMlqF,GACd4c,EAAGne,KAAKyrF,MAAMxuD,IAItB,SAAS6gQ,GAAS18R,EAAGE,EAAG6c,GACpB,IAKIpe,EACAme,EACA1tB,EAPAZ,EAAQoQ,KAAKE,MAAMkB,EAAI,IAAM,IAC7Bw9R,GAAQ,IAAMt9R,GAAK6c,EAAI,IACvB5tB,EAAI6Q,EAAI,GAAK,IAAM+c,EAAIygR,GACvBC,EAAOD,EAAOruS,EACduuS,EAAO3gR,EAAI5tB,EAIf,OAAQX,GACJ,KAAK,EACDmQ,EAAIoe,EACJD,EAAI2gR,EACJruS,EAAIouS,EACJ,MACJ,KAAK,EACD7+R,EAAI++R,EACJ5gR,EAAIC,EACJ3tB,EAAIouS,EACJ,MACJ,KAAK,EACD7+R,EAAI6+R,EACJ1gR,EAAIC,EACJ3tB,EAAIquS,EACJ,MACJ,KAAK,EACD9+R,EAAI6+R,EACJ1gR,EAAI4gR,EACJtuS,EAAI2tB,EACJ,MACJ,KAAK,EACDpe,EAAI8+R,EACJ3gR,EAAI0gR,EACJpuS,EAAI2tB,EACJ,MACJ,KAAK,EACDpe,EAAIoe,EACJD,EAAI0gR,EACJpuS,EAAIsuS,EAEZ,MAAO,CAAC9+R,KAAKyrF,MAAM,KAAO1rF,GAAIC,KAAKyrF,MAAM,KAAOvtE,GAAIle,KAAKyrF,MAAM,KAAOj7F,IAG1E,SAASuuS,GAAah/R,EAAGme,EAAG1tB,EAAGywI,GAC3B,IAAI3pI,EAAM0I,KAAK1I,IAAIyI,EAAGme,EAAG1tB,GACzB,OAAQ8G,GACJ,KAAKyI,EACD,OAAQme,EAAI1tB,GAAKywI,GAAS/iH,EAAI1tB,EAAI,EAAI,GAC1C,KAAK0tB,EACD,OAAQ1tB,EAAIuP,GAAKkhI,EAAQ,EAC7B,KAAKzwI,EACD,OAAQuP,EAAIme,GAAK+iH,EAAQ,GAIrC,SAASu9J,GAAaz+R,EAAGme,EAAG1tB,GACxBuP,EAAIi/R,GAAkBj/R,EAAG,KACzBme,EAAI8gR,GAAkB9gR,EAAG,KACzB1tB,EAAIwuS,GAAkBxuS,EAAG,KACzB,IAGI4Q,EACAE,EAJAhK,EAAM0I,KAAK1I,IAAIyI,EAAGme,EAAG1tB,GACrB6G,EAAM2I,KAAK3I,IAAI0I,EAAGme,EAAG1tB,GACrByuS,EAAY3nS,EAAMD,EAGlB2iB,EAAIilR,EAAY,EACpB,GAAI3nS,IAAQD,EACR+J,EAAIE,EAAI,MACL,CACH,IAAI2/H,EAAQ3pI,EAAMD,EAEdiK,EADA0Y,EAAI,GACAinH,GAAS,EAAIg+J,GAEbh+J,EAAQg+J,EAEhB79R,EAAI29R,GAAah/R,EAAGme,EAAG1tB,EAAGywI,GAC1B7/H,GAAK,EAET,MAAO,CACHA,EAAGuhI,GAAO,IAAMvhI,GAChBE,EAAGqhI,GAAO,IAAMrhI,GAChB0Y,EAAG2oH,GAAO,IAAM3oH,IAIxB,SAASklR,GAAcC,EAAW/9R,GAC9B,IAAIg+R,EAAYh+R,EAOhB,MANI,MAAQ+9R,IACRC,EAAYh+R,EAAI,EAAI,GAEpB,MAAQ+9R,IACRC,EAAYh+R,EAAI,EAAI,GAEjBg+R,EAGX,SAASC,GAAgBD,GAOrB,OANIA,EAAY,IACZA,GAAa,GAEbA,EAAY,IACZA,GAAa,GAEVA,EAGX,SAASE,GAASllR,EAAG8iB,EAAGkiQ,GAEpB,OADAA,EAAYC,GAAgBD,GACxBA,EAAY,EAAI,EACThlR,EAAI,GAAK8iB,EAAI9iB,GAAKglR,EAEzBA,EAAY,GACLliQ,EAEPkiQ,EAAY,EAAI,EACThlR,GAAK8iB,EAAI9iB,IAAM,EAAI,EAAIglR,GAAa,EAExChlR,EAGX,SAAS2jR,GAAS38R,EAAGE,EAAG0Y,GACpB,IAAIja,EACAme,EACA1tB,EAIJ,GAHA4Q,EAAI49R,GAAkB59R,EAAG,KACzBE,EAAI09R,GAAkB19R,EAAG,KACzB0Y,EAAIglR,GAAkBhlR,EAAG,KACrB,IAAM1Y,EACNvB,EAAIme,EAAI1tB,EAAIwpB,MACT,CACH,IAAIkjB,EAAIljB,EAAI,GAAKA,GAAK,EAAI1Y,GAAK0Y,EAAI1Y,EAAI0Y,EAAI1Y,EACvC8Y,EAAI,EAAIJ,EAAIkjB,EAChBn9B,EAAIu/R,GAASllR,EAAG8iB,EAAGgiQ,GAAc,IAAK99R,IACtC8c,EAAIohR,GAASllR,EAAG8iB,EAAGgiQ,GAAc,IAAK99R,IACtC5Q,EAAI8uS,GAASllR,EAAG8iB,EAAGgiQ,GAAc,IAAK99R,IAE1C,MAAO,CAACuhI,GAAO,IAAM5iI,GAAI4iI,GAAO,IAAMzkH,GAAIykH,GAAO,IAAMnyI,IAG3D,SAASwuS,GAAkB/kR,EAAG3iB,GAE1B,OADA2iB,EAAIja,KAAK3I,IAAIC,EAAK0I,KAAK1I,IAAI,EAAGmrD,WAAWxoC,KACrCja,KAAK8B,IAAImY,EAAI3iB,GAAO,KACb,EAEJ2iB,EAAI3iB,EAAMmrD,WAAWnrD,GAGhC,SAASioS,GAA0B11S,EAAQwN,EAAKC,GAG5C,OAFAD,EAAMA,GAAO,EACbC,EAAMA,GAAO,MACTzN,EAAS,IAAM,GAAKA,EAASwN,GAAOxN,EAASyN,GAAO,kBAAoBzN,GAAUmI,MAAMnI,IAKhGm0S,GAAM9iR,UAAY,CACdmU,YAAa2uQ,GACbwB,UAAW,SAAS5/J,GAEhB,OADAA,EAAOA,GAAQ,GACRpxI,KAAKixS,MAAM7/J,GAAM8/J,SAE5BC,OAAQ,SAAS//J,GAEb,OADAA,EAAOA,GAAQ,GACRpxI,KAAKixS,OAAO7/J,GAAM8/J,SAE7BD,MAAO,SAAS7/J,GACZ,IAAInyI,EAAS,IAAIuwS,GAIjB,OAHAvwS,EAAOsS,EAAIq+R,GAAU5vS,KAAKuR,EAAI6/H,GAC9BnyI,EAAOywB,EAAIkgR,GAAU5vS,KAAK0vB,EAAI0hH,GAC9BnyI,EAAO+C,EAAI4tS,GAAU5vS,KAAKgC,EAAIovI,GACvBnyI,GAEXmyS,MAAO,SAASC,EAAYjoP,GACxB,IAAIkoP,EAAQD,aAAsB7B,GAAQ6B,EAAa,IAAI7B,GAAM6B,GAC7DpyS,EAAS,IAAIuwS,GAIjB,OAHAvwS,EAAOsS,EAAIq+R,GAAUz7J,GAAOn0I,KAAKuR,GAAK,EAAI63C,GAAWkoP,EAAM//R,EAAI63C,IAC/DnqD,EAAOywB,EAAIkgR,GAAUz7J,GAAOn0I,KAAK0vB,GAAK,EAAI05B,GAAWkoP,EAAM5hR,EAAI05B,IAC/DnqD,EAAO+C,EAAI4tS,GAAUz7J,GAAOn0I,KAAKgC,GAAK,EAAIonD,GAAWkoP,EAAMtvS,EAAIonD,IACxDnqD,GAEXiyS,MAAO,WACH,OAAOf,GAAanwS,KAAKuR,EAAGvR,KAAK0vB,EAAG1vB,KAAKgC,IAE7CuvS,aAAc,WACV,IAAInX,EAAMkV,GAAStvS,KAAK6vS,IAAIj9R,EAAG,IAAK,KACpC,OAAO,IAAI48R,GAAM,OAASpV,EAAIp+R,KAAK,KAAO,MAE9Cw1S,WAAY,SAASC,GACjB,MAAO,qCAAqC3tR,KAAK2tR,IAErDC,WAAY,SAASngS,EAAGme,EAAG1tB,GACvB,SAAK+uS,GAA0Bx/R,IAAOw/R,GAA0BrhR,IAAOqhR,GAA0B/uS,KAKrG2vS,aAAc,SAAS5vS,GACnB,QAAIyB,MAAMzB,IAAMA,EAAI,GAAKA,EAAI,GAAK,kBAAoBA,IAK1D4tS,gBAAgB,EAChBiC,QAAS,SAAS7B,GACd,IAAIzU,EAAQ,IAAIkU,GACZpV,EAAMmV,GAASQ,EAAIn9R,EAAGm9R,EAAIj9R,EAAGi9R,EAAIvkR,GAIrC,OAHA8vQ,EAAM/pR,EAAI6oR,EAAI,GACdkB,EAAM5rQ,EAAI0qQ,EAAI,GACdkB,EAAMt5R,EAAIo4R,EAAI,GACPkB,IC7eF,iBCoBA,iBAAb,IAQIuW,GAAQrgS,KASRsgS,IARKD,GAAME,GACJF,GAAMhpS,IACNgpS,GAAMv+R,IACLu+R,GAAMG,KACPH,GAAMv/N,IACJu/N,GAAMI,MACRJ,GAAMK,IACNL,GAAMM,IACHj9R,Q,UCrCD,iB,UCCA,iBCsBb,SAASk9R,GAAQhuS,EAAM0R,EAAS0vR,GAC5B,IAAKphS,EACD,OAAO,IAAK,eAAUuc,UAE1B,IAAI0xR,EAAkBv8R,EAAQu8R,gBAC1BC,EAAiBx8R,EAAQw8R,eACzBC,EAAmBz8R,EAAQy8R,iBAC3BxnM,EAAY,CACZxtE,SAAUznB,EAAQynB,SAClBlkC,OAAQyc,EAAQzc,OAChBknD,QAAQ,GAMZ,OAJI,eAAUzqC,EAAQ08R,oBAClBznM,EAAUynM,iBAAmB18R,EAAQ08R,kBAEzC,eAAYH,IAAoBA,EAAgBtnM,GAC3CA,EAAUxqD,QAaR,IAAK,eAAU5/B,UAZX6kR,EAAQphS,EAAM0R,GAASpR,KAAK60B,IAM/B,GALA,eAAY+4Q,IAAmBA,IAC3B,eAAYC,KACZxnM,EAAU3mG,KAAOm1B,EACjBg5Q,EAAiBxnM,KAEhBA,EAAUxqD,OAAQ,CACnB,IAAIlnD,EAAS,SAAWyc,EAAQzc,OAAS,QAAUyc,EAAQzc,OAC3Dk6R,GAAU2D,OAAOnsL,EAAUxtE,SAAUlkC,EAAQkgC,EAAMzjB,EAAQ4sC,SAAU5sC,EAAQshR,eAUtF,IAAIqb,GAAQ,CACfC,QAASjU,GACT+G,QAAS,GACTmN,gBAAiB,ICnDjB,GAAqB,iBACrBC,GAA6B,GAAqB,WAClDC,GAA0B,GAAqB,QAC/CC,GAAgC,GAAqB,cACrDC,GAA+B,GAAqB,aACpDC,GAA8BH,GAA0B,aACxDI,GAAuB,oBACvBC,GAAmB,QAAiBnjP,QAAQ,CAC5C,iBACI/vD,KAAKC,WACLD,KAAK6nH,iBAAiBC,oBAAoB,CACtCj+G,KAAM,IAAI,QAAiB,CAAC4L,EAAYrR,EAAM2E,KAC1C/I,KAAKmzS,mBAAmB19R,GACxB,IAAIsmC,EAAW/7C,KAAK4Y,OAAO,kBAC3B5Y,KAAKiZ,iBAAiBxD,EAAY,cAAQ,OAAAhb,EAAA,WAAO,GAAIsO,EAAO3E,EAAMpE,KAAKozS,yBAA0B,CAC7FC,cAAerzS,KAAKszS,mBAAmBv3P,GAAYhzC,EAAQ,GAC3DgzC,SAAUhzC,EAAMgzC,UAAYA,MAEjC,CAAC,OAAQ,OAAQ,OAAQ,WAAY,UAAW,QAAS/7C,KAAK4Y,OAAO,sCAGhF,yBACI,MAAO,CACH68B,mBAAmB,EACnBqG,QAAS,KACThG,kBAAmB91C,KAAK4Y,OAAO,qBAC/B86B,mBAAoB1zC,KAAK4Y,OAAO,sBAChC4tJ,YAAaxmK,KAAK4Y,OAAO,iBAGjC+tF,mBAAoB,WAChB,OAAO,OAAAlsG,EAAA,WAAOuF,KAAKC,WAAY,CAC3Bi/L,qBAAsB,QAG9B,mBAAmBnjJ,GACf,OAAO,eAAWA,IAAa/7C,KAAK4Y,OAAO,gCAAgCmjC,IAE/E,mBAAmBkgD,GACf,IAAIuI,EAAYvI,EAAM73F,KAAK,eAC3B,IAAMogG,GAAavI,EAAM9jF,SAAS26R,IAClC,IAAIvoS,EAAQvK,KAAK4Y,OAAO,SACxBrO,GAASi6F,IAAcj6F,EAAM3Q,OAAS,GAAKqiG,EAAM9jF,SAAS46R,IAC1D92M,EAAM9jF,SAAS86R,KAEnB,mBAAmB5jQ,GAEf,OADAA,EAAKr2B,UAAY,eAAEq2B,EAAKr2B,WAAWoG,SAC5Bpf,KAAKC,SAASovC,IAEzB21H,yBAA0B,SAAS31H,EAAM48D,GAErC,OADA58D,EAAKr2B,UAAY,eAAEq2B,EAAKr2B,UAAUg/C,WAAWuS,SACtCvqE,KAAKC,SAASovC,EAAM48D,IAE/B,eACI,OAAOjsG,KAAK6W,WAAWuI,UAE3B,8BACI,OAAOpf,KAAKmzG,gBAEhB,kBACInzG,KAAKuzS,kBACLvzS,KAAKg/F,kBAETgM,WAAY,IAAM6nM,GAClBv1G,mBAAoB,SAAS15L,GACrB,WAAa5D,KAAK4Y,OAAO,kBAAoB5Y,KAAKk1H,eAAetxH,EAAEy2D,gBAGvEr6D,KAAKC,SAAS2D,MAGlB4vS,GAAc,OAAOzjP,QAAQ,CAC7B,qBACI,OAAO,OAAAt1D,EAAA,WAAOuF,KAAKC,WAAY,CAC3B61C,mBAAmB,EACnBL,mBAAmB,EACnBqxE,cAAe,SACf8P,cAAe,GACf7P,iBAAkB,GAClBy/C,YAAa,YACbxwH,QAAS,OACTzrC,MAAO,GACP47G,eAAgB,UAChBttE,mBAAoB,KACpB63B,YAAa,QAGrB,QACI1wE,KAAKC,WACLD,KAAKyzS,0BAET,yBACIzzS,KAAK0nH,iBAAmB1nH,KAAKiyD,sBAAsB,gBAEvD,cACIjyD,KAAKsd,QAAQ,OAAQ,SACrBtd,KAAK6W,WAAWsB,SAAS,IACzBnY,KAAKskJ,iBACLtkJ,KAAK0zS,wBACL1zS,KAAKC,YAET4tG,0BAA2B,SAASY,EAAYC,GAC5C1uG,KAAKiyD,sBAAsB,qBAAsB,CAC7CgT,kBAAmB,CAAC,WAAY,aADpCjlE,CAEG,CACCyuG,WAAYA,EACZC,aAAcA,KAGtB,iBACI,IAAIilM,EAAW,eAAE,SAASx7R,SAASy6R,IAA4Bx6R,SAASpY,KAAK6W,YACzE+/G,EAAgB52H,KAAK4Y,OAAO,iBAC5B9C,EAAU,CACVgxG,cAAe9mH,KAAK4Y,OAAO,iBAC3BrO,MAAOvK,KAAK4Y,OAAO,SACnBo9B,QAASh2C,KAAK4Y,OAAO,WACrButG,eAAgBnmH,KAAK4Y,OAAO,kBAC5B0vC,kBAAkB,EAClBy+D,iBAAkB/mH,KAAK4Y,OAAO,oBAC9B68B,kBAAmBz1C,KAAK4Y,OAAO,qBAC/Bk9B,kBAAmB91C,KAAK4Y,OAAO,qBAC/B86B,mBAAoB1zC,KAAK4Y,OAAO,sBAChC4tJ,YAAaxmK,KAAK4Y,OAAO,eACzB66B,UAAWzzC,KAAK4Y,OAAO,aACvBwhC,SAAUp6C,KAAK4Y,OAAO,YACtBu9B,WAAY,GACZo/I,mBAAmB,EACnBruE,eAAgBtjH,IACZ,IAAIyH,EAAQrL,KAAK4Y,OAAO,SACxB,eAAUvN,IAAU,eAAEzH,EAAEknG,aAAa3yF,SAAS66R,KAElDn6P,mBAAoBj1C,IAChB5D,KAAK0zS,wBACL1zS,KAAK6tG,0BAA0BjqG,EAAE6qG,WAAY7qG,EAAE8qG,eAEnDh+B,YAAa9sE,IACT5D,KAAK0nH,iBAAiB9jH,KAG1B,eAAUgzH,IAAkBA,EAAch9H,SAC1Ckc,EAAQ8gH,cAAgBA,GAE5B52H,KAAK4zS,mBAAqB5zS,KAAKiZ,iBAAiB06R,EAAUT,GAAkBp9R,IAEhF,wBACI9V,KAAKgxD,8BAA8B,gBAAiBhxD,KAAK4zS,mBAAmBh7R,OAAO,kBACnF5Y,KAAKgxD,8BAA8B,mBAAoBhxD,KAAK4zS,mBAAmBh7R,OAAO,sBAE1F,eAAey2B,GACX,OAAQA,EAAKztC,MACT,IAAK,cACL,IAAK,gBACL,IAAK,UACL,IAAK,iBACL,IAAK,QACL,IAAK,qBACL,IAAK,oBACL,IAAK,oBACL,IAAK,WACD5B,KAAKszD,cACL,MACJ,IAAK,mBACL,IAAK,gBACDtzD,KAAK4zS,mBAAmBh7R,OAAOy2B,EAAKztC,KAAMytC,EAAKxtC,OAC/C,MACJ,IAAK,cACD7B,KAAKyzS,yBACL,MACJ,IAAK,qBACD,MACJ,IAAK,QACDzzS,KAAKC,SAASovC,GACdrvC,KAAK4zS,mBAAmBr7G,eAAehkI,YAAYy+O,KAA+B3jQ,EAAKxtC,OACvF,MACJ,QACI7B,KAAKC,SAASovC,OAI9B,eAAkB,gBAAiBmkQ,IACpB,UCxJXK,GAAyB,oBACzBC,GAA2B,4BAC3BC,GAAgC,2BAChCC,GAAgC,2BAChCC,GAAmC,8BACnCC,GAAuC,kCACvCC,GAAiC,4BACjCC,GAAuB,iBACvBC,GAAsB,gBACtBC,GAAiB,OAAOvkP,QAAQ,CAChC,qBACI,OAAO,OAAAt1D,EAAA,WAAOuF,KAAKC,WAAY,CAC3BymH,aAAc,OACd1wE,QAAS,OACT70B,iBAAa,EACbqnF,aAAc,KACdkF,gBAAiB,KACjB84D,YAAa,WACbviH,gBAAgB,EAChB9N,WAAY,OAAoB98C,OAAO,iCACvCk7S,eAAe,EACfC,aAAa,EACbC,eAAe,EACfl4S,KAAM,GACNs/C,UAAM,EACN8qE,cAAe,KACf9tE,mBAAoB,KACpB63B,YAAa,KACbm2C,QAAQ,EACRt8G,MAAO,KACP6P,WAAY,KACZq7B,mBAAmB,EACnBK,mBAAmB,EACnB4+P,gBAAiB,GACjBC,wBAAyB,UACzBC,cAAc,EACdC,oBAAoB,EACpBp3P,SAAS,EACTq3P,cAAe,QACfC,mBAAoB,MAG5B,yBACI/0S,KAAKC,WACL,OAAAxF,EAAA,WAAOuF,KAAKgxG,oBAAqB,CAC7BxI,cAAc,KAGtB,QACIxoG,KAAKC,WACLD,KAAKyzS,yBACLzzS,KAAKg1S,2BACLh1S,KAAKi1S,gCACLj1S,KAAKwzF,kBACLxzF,KAAKk1S,oBACLl1S,KAAKm1S,wBACLn1S,KAAKo1S,mBAAmBp1S,KAAK4Y,OAAO,UACpC5Y,KAAKohK,SAASi0I,MAAM,qBAAsBr1S,KAAK4Y,OAAO,uBACtD5Y,KAAKohK,SAASi0I,MAAM,kBAAmBr1S,KAAK4Y,OAAO,qBAEvD,iBACI5Y,KAAK6nH,iBAAiBC,oBAAoB,CACtCluD,QAAS,IAAI,QAAiB9jD,IAC1B,IAAIslG,EAAgB,eAAEtlG,EAAQkD,WAC1Bs8R,EAAiB,eAAE,SAASl9R,SAASgjG,GACzCp7G,KAAKsmH,MAAQtmH,KAAKiZ,iBAAiBq8R,EAAgB,QAAMt1S,KAAK8oH,gBAC9D9oH,KAAKsmH,MAAM6xC,mBAAmB,SAAUn4J,KAAKu1S,YAAY/5R,KAAKxb,OAC9DA,KAAKsmH,MAAM6xC,mBAAmB,MAAOn4J,KAAKu1S,YAAY/5R,KAAKxb,OAC3DA,KAAKsmH,MAAM6xC,mBAAmB,YAAan4J,KAAKu1S,YAAY/5R,KAAKxb,OACjEA,KAAKsmH,MAAM6xC,mBAAmB,aAAcn4J,KAAKu1S,YAAY/5R,KAAKxb,WAG1EA,KAAKC,YAETm1S,mBAAoB,SAASvzS,GACpB7B,KAAKqa,cACNra,KAAKqa,YAAc,IAAI,QAAW,CAC9B+G,MAAO,IAAI,QAAW,CAClBtmB,IAAKkF,KAAKw1S,UACVpxS,KAAMvC,IAEVqqD,SAAU,MAItBspP,QAAS,WACL,IAAIpyE,EACAptL,EAAUh2C,KAAK4Y,OAAO,WACtB68R,EAAW,QAAUryE,EAAoBpjO,KAAKqa,mBAAgB,IAAW+oN,OAAoB,EAASA,EAAkBtoO,MAC5H,OAAO,eAAU26S,IAAe,eAAUz/P,IAAY,SAAWA,EAAsBA,EAAXy/P,GAEhF,oBACIz1S,KAAK01S,WAAa,gBAAc11S,KAAKw1S,YAEzC,wBACIx1S,KAAK21S,eAAiB,gBAAc31S,KAAK4Y,OAAO,iBAEpD,cACI5Y,KAAKC,WACLD,KAAK6W,WAAWsB,SAAS07R,IACzB7zS,KAAK41S,qBACL51S,KAAK61S,oBACD,eAAU71S,KAAK4Y,OAAO,qBACtB5Y,KAAK81S,oBAAoBz3R,KAAKre,KAAK+1S,oBAAoBv6R,KAAKxb,QAGpE4oJ,mBAAoB,OACpB,UACS5oJ,KAAK4Y,OAAO,oBAAqB5Y,KAAK4Y,OAAO,WAC9C5Y,KAAKkoH,eAETloH,KAAKC,YAET,qBAII,OAHID,KAAKymH,QACLzmH,KAAKgwK,sBAEFhwK,KAAKC,YAEhB,oBACI,IAAI+1S,EACJ,QAAUA,EAAwBh2S,KAAKi2S,2BAAwB,IAAWD,GAAiCA,EAAsBniR,SACjI,IAAI3iB,EAAI,IAAI,cACZ,GAAIlR,KAAKsmH,YAAS,IAAWtmH,KAAKk2S,sBAAuB,CACrD,IAAIC,EAAen2S,KAAK4Y,OAAO,iBAAmB5Y,KAAKsmH,MAAM1tG,OAAO,gBAAkB5Y,KAAKk2S,sBAC3F,OAAOhlS,EAAEyP,QAAQw1R,GAErBn2S,KAAKk2S,2BAAwB,EAC7B,IAAIxoM,EAAkB1tG,KAAK4Y,OAAO,mBAKlC,OAJA5Y,KAAKo2S,YAAYp2S,KAAKw1S,UAAW9nM,GAAiBrvF,KAAKnN,EAAEyP,SAASG,KAAK,KACnE5P,EAAEyP,QAAQ,QAEd3gB,KAAKi2S,oBAAsB/kS,EACpBA,EAAEuQ,WAEb,2BACIzhB,KAAKq2S,mBAAqBr2S,KAAKiyD,sBAAsB,kBAEzD,gCACIjyD,KAAKs2S,wBAA0Bt2S,KAAKiyD,sBAAsB,uBAE9D,yBACIjyD,KAAK0nH,iBAAmB1nH,KAAKiyD,sBAAsB,gBAEvD,4BAA4B9hD,GACxB,IACIosE,cAAeA,EACf16E,MAAOA,GACPsO,EACJnQ,KAAKs2S,wBAAwB,CACzBzsS,KAAMhI,EACN00S,aAAch6N,KAGtB,qBAAqB3rE,GACjB,IACIohD,MAAOA,EACP84C,YAAaA,EACbj6B,SAAUA,GACVjgE,EACJ,OAAO5Q,KAAK0nH,iBAAiB,CACzB11D,MAAOA,EACP84C,YAAaA,EACbj6B,SAAU7wE,KAAKw2S,aAAe3lO,KAGtC,sBACI,MAAO,CACHt0E,KAAMyD,KAAK4Y,OAAO,QAClBijC,KAAM77C,KAAK4Y,OAAO,QAClBi8B,YAAa,CACT+4M,MAAOmmD,MAInB,uBACI,IAAIxpS,EAAQ,GAUZ,OATAA,EAAMtH,KAAKjD,KAAKy2S,uBACZz2S,KAAK4Y,OAAO,gBACZrO,EAAMtH,KAAK,CACP44C,KAAM,WACNhH,YAAa,CACT+4M,MAAOomD,MAIZzpS,GAEX,sBAAsB0jF,GAClB,IACIj8B,MAAOA,EACP6e,SAAUA,GACVod,EACAyoN,EAAiB7lO,EAASh8B,YAAY+4M,QAAUmmD,GAChD4C,EAAiB9lO,EAASh8B,YAAY+4M,QAAUomD,GAChD2C,EACA32S,KAAKs/F,SACEo3M,IACP12S,KAAKq2S,mBAAmB,CACpBrkP,MAAOA,EACPw2C,aAAcxoG,KAAK4Y,OAAO,kBAEzB5Y,KAAK4Y,OAAO,gBACb5Y,KAAKs/F,WAIjB,sBACI,IACIk1M,YAAaA,EACbC,cAAeA,EACfh/P,kBAAmBA,EACnBK,kBAAmBA,EACnB0wH,YAAaA,EACb/yH,UAAWA,EACX2G,SAAUA,GACVp6C,KAAK4Y,SACLutG,EAAiBquL,IAAgBC,EAAgB,UAAY,CAACtmN,EAAOyoN,KACrE,IACIr6S,KAAMA,EACNs/C,KAAMA,GACNsyC,EACA0oN,EAAa,gBAAkBh7P,GAC/Bi7P,EAAiBv6S,EAAO,eAAE,UAAUA,KAAKA,GAAM4b,SAASi8R,SAAwB,EAChF2C,EAAc,gBAAkB,YAAY5+R,SAASk8R,IACzD,eAAEuC,GAAe78Q,OAAO88Q,EAAYC,EAAgBC,IAExD,OAAO,OAAAt8S,EAAA,WAAO,CACV8P,MAAOvK,KAAKg3S,uBACZtmO,YAAa1wE,KAAKi3S,sBAAsBz7R,KAAKxb,MAC7CqL,MAAO,OACPwR,OAAQ,OACRiqG,cAAe,OACfghD,kBAAmBlkK,GAAK5D,KAAK+4I,iBAAiBn1I,GAC9CuiH,eAAgBA,EAChB1wE,kBAAmBA,EACnBK,kBAAmBA,EACnB0wH,YAAaA,EACb/yH,UAAWA,EACX2G,SAAUA,GACXp6C,KAAKohK,SAASi0I,MAAM,wBAE3B,sBACI,IAAI3nO,EAAW1tE,KAAKymH,OAAO/4C,WACvB3xB,EAAW/7C,KAAK4qH,qBAAqB,2BAIzC,OAHAl9C,EAAStb,QACTpyD,KAAKk3S,gBAAkB,MAAQ,IAAI,QACnCl3S,KAAKsd,QAAQ,KAAMtd,KAAKk3S,gBAAiBxpO,GAClC3xB,EAASh0C,OAAO,CACnBiR,UAAW,eAAiB00D,GAC5B3kE,MAAO/I,KAAK4Y,OAAO,UAAY5Y,KAAKqa,eAG5C,gBACI,IAAI04L,EAAsB/yM,KAAK4Y,OAAO,cAAgB,QAAU,OAChE,OAAO,OAAAne,EAAA,WAAO,CACV0pD,aAAa,EACb1O,mBAAmB,EACnBwO,eAAgBjkD,KAAK4Y,OAAO,kBAC5B0rC,mBAAoB1gD,IAChB,IAAIiT,EAAW7W,KAAK6W,WAChBsgS,EAAiB,eAAEvzS,EAAEsS,QAAQiI,QAAQ,IAAIwJ,OAAOksR,KACpD,OAAQsD,EAAevpT,GAAGipB,IAE9B2uC,WAAW,EACX3B,UAAW,CACPxI,KAAM,CACF58C,KAAM,OACNisD,SAAU,EACV31B,KAAM,EACNr8B,GAAI,GAER0iD,KAAM,CACF38C,KAAM,OACNisD,SAAU,IACV31B,KAAM,EACNr8B,GAAI,IAGZ00O,iCAAiC,EACjC/hO,MAAO,IAAM,gBAAgBrL,KAAK6W,YAClCgG,OAAQ,OACR/D,SAAS,EACTqsC,SAAU,CACNhsC,GAAInZ,KAAK6W,WACTwC,UAAW,UACXizC,GAAIymJ,EAAsB,OAC1B3mJ,GAAI2mJ,EAAsB,WAE9BptJ,YAAa,CACTioM,MAAOumD,KAEZn0S,KAAKohK,SAASi0I,MAAM,mBAAoB,CACvC96P,QAASv6C,KAAK4Y,OAAO,aAG7B,eACI,IAAI80F,EAAkB1tG,KAAK4Y,OAAO,mBAC9B27R,EAAgBv0S,KAAK4Y,OAAO,iBAChC,MAAO,CACHkuG,cAAeytL,EAAgB,SAAW,OAC1CK,aAAc50S,KAAK4Y,OAAO,gBAC1B68B,kBAAmBz1C,KAAK4Y,OAAO,qBAC/Bk9B,kBAAmB91C,KAAK4Y,OAAO,qBAC/Bi8R,mBAAoB70S,KAAK4Y,OAAO,sBAChC69B,eAAgB,IAAMz2C,KAAKk9G,0BAC3B6J,iBAAkB,eAAUrZ,IAAoB6mM,EAAgB,CAAC7mM,GAAmB,GACpFjwD,QAASz9C,KAAK4Y,OAAO,WACrBk8R,cAAe90S,KAAK4Y,OAAO,iBAC3Bo9B,QAASh2C,KAAKw1S,UACdr/P,WAAYn2C,KAAK4Y,OAAO,cACxBuI,YAAanhB,KAAK4Y,OAAO,eACzB8tG,aAAc1mH,KAAK4Y,OAAO,gBAC1BrO,MAAOvK,KAAK4Y,OAAO,SACnBwB,WAAYpa,KAAKqa,YACjBq2D,YAAa9sE,IACJ5D,KAAK4Y,OAAO,mBACb5Y,KAAKk2S,sBAAwBtyS,EAAEitE,UAEnC7wE,KAAK4Y,OAAO,kBAAmB5Y,KAAK01S,WAAW9xS,EAAEitE,WACjD,IAAIumO,EAAep3S,KAAKq3S,qBAAqBzzS,IACzC,IAAUwzS,IACVp3S,KAAKs/F,QAAO,GACZt/F,KAAKs3S,aAAa3iP,YAKlC,oBAMI,OALI30D,KAAKymH,QAAUzmH,KAAKymH,OAAO7tG,OAAO,YAAc5Y,KAAKsmH,MACrDtmH,KAAKsmH,MAAM3xD,QAEX30D,KAAK0pH,QAEF,GAEX,cAGI,OAFA1pH,KAAK2pH,QACL3pH,KAAKs3S,aAAa3iP,SACX,GAEX,cAEI,OADA30D,KAAK2pH,SACE,GAEX,eACI,IAAInB,EAAS,eAAE,SACfxoH,KAAK6W,WAAWkjB,OAAOyuF,GACvBxoH,KAAKymH,OAASzmH,KAAKiZ,iBAAiBuvG,EAAQ,QAAOxoH,KAAKyoH,iBACxDzoH,KAAKymH,OAAO/4C,WAAWv1D,SAAS27R,IAChC9zS,KAAKymH,OAAOza,WAAW7zF,SAAS+7R,IAChCl0S,KAAKymH,OAAO38G,GAAG,SAAU9J,KAAKu3S,oBAAoB/7R,KAAKxb,OACvDA,KAAKymH,OAAO38G,GAAG,UAAW9J,KAAKmwK,qBAAqB30J,KAAKxb,OACzDA,KAAKw3S,wBAAwBx3S,KAAKymH,OAAQ,oBAE9C,sBACIzmH,KAAK4Y,OAAO,UAAU,GACtB5Y,KAAKy3S,kBAAiB,IAE1BC,oBAAqB,SAASroQ,GAC1B,IAAIv5B,EAAU,OAAO6hS,wBAAwBtoQ,GAC7CrvC,KAAK2rK,gBAAgB71J,GACrB,IAAI8hS,EAAcp6S,OAAOgqB,KAAK1R,IACzB,IAAM8hS,EAAYt5S,QAAQ,WAAa,IAAMs5S,EAAYt5S,QAAQ,WAClE0B,KAAK6rH,qBAGbA,kBAAmB,WACf,IAAInG,EAAa,gBAAa1lH,KAAK4Y,OAAO,+BACtC,IAAW8sG,GACX1lH,KAAK2rK,gBAAgB,QAAS,IAAM,gBAAgB3rK,KAAK6W,cAGjE80J,gBAAiB,SAAS1wH,EAAYp5C,GAClC7B,KAAK63S,iBAAiB,SAAU33S,YAEpC,uBACIF,KAAK4Y,OAAO,UAAU,GACtB5Y,KAAKy3S,kBAAiB,IAE1B,iBAAiB51S,GACb7B,KAAK83S,sBAAsB52S,QAAQ62S,IAC/B/3S,KAAKsd,QAAQ,CACT2qG,SAAUpmH,EACVm2S,KAAMn2S,EAAQ7B,KAAKk3S,qBAAkB,GACtC,eAAEa,OAGb,qBACI,IAAIE,EAAej4S,KAAKs3S,cAAgBt3S,KAAKs3S,aAAazgS,YAAc,eAAE,SACrE7W,KAAKs3S,cACNt3S,KAAK6W,WAAWkjB,OAAOk+Q,GAE3Bj4S,KAAKs3S,aAAet3S,KAAKiZ,iBAAiBg/R,EAAc,GAAaj4S,KAAKk4S,uBAC1E,IAAIC,EAAiBn4S,KAAKs3S,aAAazgS,WAAWiB,KAAK,cAAcy3D,UACrEvvE,KAAK83S,sBAAwB,IAAIK,EAAgBn4S,KAAK6W,YACtD7W,KAAKs3S,aAAan/I,mBAAmB,YAAan4J,KAAKo4S,kBAAkB58R,KAAKxb,OAC9EA,KAAKs3S,aAAan/I,mBAAmB,MAAOn4J,KAAKq4S,YAAY78R,KAAKxb,OAClEA,KAAKs3S,aAAan/I,mBAAmB,UAAWn4J,KAAKo4S,kBAAkB58R,KAAKxb,OAC5EA,KAAKs3S,aAAan/I,mBAAmB,SAAUn4J,KAAKu1S,YAAY/5R,KAAKxb,OACrEA,KAAKw3S,wBAAwBx3S,KAAKs3S,aAAc,sBAChDt3S,KAAKy3S,iBAAiBz3S,KAAK4Y,OAAO,YAEtC,oBACI,IAAI0/R,EAAWt4S,KAAK4Y,OAAO,gBAAkB5Y,KAAK4Y,OAAO,iBACzD5Y,KAAK6W,WAAW09C,YAAY0/O,GAAkCqE,IAElE,OAAO/9P,GAKH,OAJKv6C,KAAKymH,SACNzmH,KAAKkoH,eACLloH,KAAKg/F,kBAEFh/F,KAAKymH,OAAOnnB,OAAO/kD,IAE9B,OACI,OAAOv6C,KAAKs/F,QAAO,IAEvB,QACI,OAAOt/F,KAAKs/F,QAAO,IAEvB,eAAe19F,EAAMC,GACjB7B,KAAKsmH,OAAStmH,KAAKsmH,MAAM1tG,OAAOhX,EAAMC,IAE1C,iBAAiBgI,GACb,IAAI0uS,GAAmB,eAAc1uS,GACjCu7E,EAAemzN,EAAkB1uS,EAAO7J,KAAK21S,eAAe9rS,GAChE,OAAQ,eAAcu7E,GAA0D,GAA1CzrF,OAAO,eAAcyrF,EAAc,MAE7E,oBAAoBojB,GACZxoG,KAAK4Y,OAAO,kBACZ5Y,KAAK4Y,OAAO,CACRrc,KAAMyD,KAAKw4S,iBAAiBhwM,GAC5B3sD,KAAM,eAAc2sD,GAAgBA,EAAa3sD,UAAO,IAGhE77C,KAAKgxD,8BAA8B,eAAgBw3C,GACnDxoG,KAAKgxD,8BAA8B,kBAAmBhxD,KAAK01S,WAAWltM,KAE1E,SACIxoG,KAAKsmH,OAAStmH,KAAKsmH,MAAMzvG,WAAW8B,SACpC3Y,KAAKymH,QAAUzmH,KAAKymH,OAAO5vG,WAAW8B,UAE1C,wBAAwB9W,GACpB7B,KAAKy4S,eAAe,mBAAoBz4S,KAAK4Y,OAAO,kBAAoB,eAAU/W,GAAS,CAACA,GAAS,IACrG,IAAI00S,EAAev2S,KAAK4Y,OAAO,gBAC/B5Y,KAAK81S,oBAAoBz3R,KAAKmqF,IAC1BxoG,KAAK+1S,oBAAoBvtM,GACrBxoG,KAAK21S,eAAeY,KAAkBv2S,KAAK21S,eAAentM,IAC1DxoG,KAAK04S,4BAA4B,CAC7Bn8N,cAAeg6N,EACf10S,MAAO2mG,OAKvB,2BAA2Brc,GACvB,IACIvqF,KAAMA,EACNC,MAAOA,GACPsqF,EACAwsN,EAAY,GAChBA,EAAU/2S,GAAQC,EAClB7B,KAAKs3S,aAAa1+R,OAAO,WAAY,OAAAne,EAAA,WAAO,GAAIuF,KAAKy2S,sBAAuBkC,IAC5E34S,KAAKymH,QAAUzmH,KAAKymH,OAAO8G,WAE/B,mBAAmB1rH,GACf,GAAIA,EAAO,CACP7B,KAAKy4S,eAAe,gBAAiB,UACrC,IAAI/qM,EAAkB1tG,KAAK4Y,OAAO,mBAClC5Y,KAAKy4S,eAAe,mBAAoB,eAAU/qM,GAAmB,CAACA,GAAmB,IACzF1tG,KAAK44S,wBAAwB54S,KAAK4Y,OAAO,yBAEzC5Y,KAAKy4S,eAAe,gBAAiB,QACrCz4S,KAAK4Y,OAAO,CACR80F,qBAAiB,EACjBlF,kBAAc,IAElBxoG,KAAK64S,2BAA2B,CAC5Bt8S,KAAMyD,KAAK4Y,OAAO,WAI9B,sBAAsBqiC,GAClB,IAAIyyD,EAAkB1tG,KAAK4Y,OAAO,mBAClC5Y,KAAKy4S,eAAe,eAAgB,MACpCz4S,KAAK63S,iBAAiB,QAAS,CAAC58P,IAC5B,eAAUyyD,IACV1tG,KAAK81S,oBAAoBz3R,KAAKmqF,IAC1BxoG,KAAKy4S,eAAe,mBAAoB,CAAC/qM,IACzC1tG,KAAKy4S,eAAe,eAAgBjwM,KACrC1nF,KAAKsR,IACJpyB,KAAKy4S,eAAe,mBAAoB,MACzC51N,OAAO7iF,KAAK+1S,oBAAoBv6R,KAAKxb,QAGhD84S,kBAAmB,WACf,IAAIvuS,EAAQrK,UAAUtG,OAAS,QAAK,IAAWsG,UAAU,GAAKA,UAAU,GAAKF,KAAKqa,YAAY9P,QAC9FvK,KAAKqa,iBAAc,EACnBra,KAAKo1S,mBAAmB7qS,GACxBvK,KAAK+4S,kBAETA,eAAgB,WACZ/4S,KAAKk1S,oBACLl1S,KAAKy4S,eAAe,UAAWz4S,KAAKw1S,YAExC7gP,MAAO,WACH30D,KAAKs3S,aAAa3iP,SAEtB,eAAetlB,GACX,IAAI2iI,GAEApwK,KAAMA,EACNC,MAAOA,GACPwtC,EACJ,OAAQztC,GACJ,IAAK,gBACD5B,KAAKg5S,mBAAmBn3S,GACxB,MACJ,IAAK,cACD7B,KAAK61S,oBACL71S,KAAK41S,qBACL,MACJ,IAAK,cACD51S,KAAKm1S,wBACLn1S,KAAKy4S,eAAe72S,EAAMC,GAC1B7B,KAAK+1S,oBAAoB/1S,KAAK4Y,OAAO,iBACrC,MACJ,IAAK,UACD5Y,KAAK84S,oBACL,MACJ,IAAK,qBACD94S,KAAKi5S,0BAA0Bj5S,KAAKs3S,aAAcjoQ,GAClD,MACJ,IAAK,kBACD,GAAI,4BAA8BA,EAAKmtC,SACnC,WAEA,IAAWntC,EAAKxtC,MAAM04C,gBACflL,EAAKxtC,MAAM04C,QAEtBv6C,KAAK03S,oBAAoBroQ,GACzBrvC,KAAKi5S,0BAA0Bj5S,KAAKymH,OAAQp3E,GAC5C,MACJ,IAAK,SACDrvC,KAAKs/F,OAAOz9F,GACZ,MACJ,IAAK,oBACL,IAAK,oBACD7B,KAAKy4S,eAAe72S,EAAMC,GAC1B7B,KAAKs3S,aAAa1+R,OAAOhX,EAAMC,GAC/B7B,KAAKC,SAASovC,GACd,MACJ,IAAK,QACDrvC,KAAK84S,kBAAkB94S,KAAK4Y,OAAO,UACnC5Y,KAAKk5S,sBAAsBt3S,GAC3B,MACJ,IAAK,aACG/C,MAAMuY,QAAQvV,GACd7B,KAAK84S,kBAAkB94S,KAAK4Y,OAAO,gBAEnC5Y,KAAKwzF,kBACLxzF,KAAK+4S,kBAET/4S,KAAKk5S,sBAAsBt3S,GAC3B,MACJ,IAAK,OACL,IAAK,OACD5B,KAAK64S,2BAA2BxpQ,GAChC,MACJ,IAAK,gBACDrvC,KAAK61S,oBACL71S,KAAK41S,qBACL51S,KAAKymH,QAAUzmH,KAAKymH,OAAO8G,UAC3B,MACJ,IAAK,QACL,IAAK,SACDvtH,KAAKC,SAASovC,GACd,QAAU2iI,EAAehyK,KAAKymH,cAAW,IAAWurD,GAAwBA,EAAazkD,UACzF,MACJ,IAAK,cACDvtH,KAAKs3S,aAAa1+R,OAAOhX,EAAMC,GAC/B,MACJ,IAAK,eACL,IAAK,UACL,IAAK,aACL,IAAK,gBACL,IAAK,eACL,IAAK,qBACD7B,KAAKy4S,eAAe72S,EAAMC,GAC1B,MACJ,IAAK,0BACD7B,KAAKg/F,iBACL,MACJ,IAAK,kBACDh/F,KAAK44S,wBAAwB/2S,GAC7B,MACJ,IAAK,eACD,MACJ,IAAK,cACD7B,KAAKyzS,yBACL,MACJ,IAAK,gBACDzzS,KAAKg1S,2BACL,MACJ,IAAK,qBACDh1S,KAAKi1S,gCACL,MACJ,IAAK,iBACDj1S,KAAKs/F,OAAOt/F,KAAK4Y,OAAO,WACxB,MACJ,IAAK,WACD5Y,KAAKs3S,aAAa1+R,OAAOhX,EAAMC,GAC/B,MACJ,QACI7B,KAAKC,SAASovC,OAG3B0gD,QAAQ,SACX,eAAkB,mBAAoBukN,IACvB,ICtnBX6E,GAA6B,0BAC7BC,GAA+B,4BAC/BC,GAAsC,eACtCC,GAAuB,SACvBC,GAA6B,WAC7BC,GAAgC,iBAChCC,GAA2B,UACpBC,GAAe,OAAM3pP,QAAQ,CACpCE,KAAM,SAASihE,EAAkByoL,EAAkCnH,GAC/DxyS,KAAK45S,kBAAoB1oL,EACzBlxH,KAAK65S,kCAAoCF,EACzC35S,KAAK85S,kBAAoBtH,GAE7BuH,eAAgB,SAASlwS,GACrB,IACI/O,IAAKA,EACLsJ,KAAMA,EACNuW,QAASA,EACT+iC,WAAYA,EACZq5C,aAAcA,GACdltF,EACA2kD,EAAcxuD,KAAKohK,SAASngF,aAAavjC,GACzC77C,EAAQ,EAAa6Y,gBAAgB8zC,EAAaA,EAAYqnB,iBAAmBrnB,EAAYqnB,iBAAiB/6E,EAAI4iD,IAAe5iD,EAAI4iD,GAAat5C,EAAMuW,GACxJ1b,EAASuvD,EAAYtjD,QAAU,KAAO,EAAa2K,YAAYhU,EAAO2sD,GAI1E,OAHIuoC,GAAgBA,EAAa,IAAMA,EAAa,GAAGn9F,SACnDqF,GAAU,IAAM,EAAa+b,uBAAuB+7E,EAAa,GAAI/2F,KAAKohK,SAAS7qJ,eAEhFtX,GAEX+6S,kBAAmB,SAASx2O,GACxB,OAAOA,GAEX8jD,aAAc,WACV,IAAI4J,EAAmBlxH,KAAK45S,kBACxB34N,EAAeiwC,EAAiB5zD,mBAAmBgZ,kBACnD/zB,EAAuB2uE,EAAiBt4G,OAAO,+BACnD5Y,KAAKohK,SAAW,CACZ5iJ,QAAS0yG,EAAiB+oL,YAAYj6S,KAAK65S,mCAC3C54N,aAAcA,EACd12E,MAAOvK,KAAK85S,mBAAqB5oL,EAAiBgpL,eAAiBhpL,EAAiBipL,oBAAsBjpL,EAAiBkpL,eAC3Hr7O,gBAAiBmyD,EAAiB5zD,mBAAmByB,gBAAgBvjD,KAAK01G,EAAiB5zD,oBAC3F+8O,iBAAkBnpL,EAAiBt4G,OAAO,qBAC1CrC,aAAc26G,EAAiBt4G,OAAO,iBACtC47B,oBAAqB08E,EAAiBt4G,OAAO,uBAC7CyD,WAAY60G,EAAiBt4G,OAAO,cACpC8nR,gBAAiB,eAAUn+O,GAAwBA,IAAyB2uE,EAAiBt4G,OAAO,mBACpGypC,mBAAoB6uE,EAAiBt4G,OAAO,+BAGpDwoR,sBAAuB,WACnB,OAAO,eAAUphS,KAAKohK,SAAS/+G,qBAEnCA,mBAAoB,SAASz+C,EAAGs8R,GACxBlgS,KAAKohK,SAAS/+G,qBACdz+C,EAAE02S,SAAWpa,EACT,eAAUlgS,KAAK45S,oBAAsB,eAAU55S,KAAK45S,kBAAkBhoS,aACtEhO,EAAEgO,UAAY5R,KAAK45S,kBAAkBhoS,WAEzC5R,KAAKohK,SAAS/+G,mBAAmBz+C,KAGzC22S,gBAAiB,IAAM,CAAC,CACpBpf,MAAM,EACN/vR,UAAW,SACXsuR,UAAU,GACX,CACCyB,MAAM,EACN/vR,UAAW,OACXsuR,UAAU,GACX,CACCyB,MAAM,EACN/vR,UAAW,QACXsuR,UAAU,IAEd,mBACI,MAAO,CACHyB,MAAM,EACNzB,UAAU,EACVtuR,UAAW,eAAoBpL,KAAKohK,SAAS/kJ,cAGrD,kBACI,IAAIqkR,EAAkB1gS,KAAKohK,SAASs/H,gBAChC8Z,EAAe,GASnB,OARAx6S,KAAKo4D,aAAal3D,QAAQqZ,IACtBigS,EAAav3S,KAAK,CACdmI,UAAWmP,EAAOnP,WAAa,OAC/B/R,OAAQkhB,EAAOlhB,OACfqgS,SAAUgH,EACV3rR,SAAUwF,EAAOxF,aAGlBylS,GAEXxY,UAAW,WACP,MAAO,IAAIhiS,KAAKu6S,qBAAsBv6S,KAAKy6S,kBAAmBz6S,KAAK06S,qBAEvEC,qBAAsB,SAASn3O,GAC3B,IAAIo3O,EACAxvS,GAAa,QAAUwvS,EAAwB56S,KAAKo4D,aAAaoL,UAAe,IAAWo3O,OAAwB,EAASA,EAAsBxvS,YAAc,QACpK,OAAOpL,KAAKu6S,kBAAkBz+S,IAAIm/D,GAASA,EAAM7vD,WAAW9M,QAAQ8M,IAExE61R,WAAY,SAASzmO,EAAUgJ,GAC3B,OAAIhJ,EAAWx6D,KAAK2jS,oBACT,EACA3jS,KAAK66S,YAAYrgP,EAAWx6D,KAAK2jS,oBAAqBngO,GACtDxjE,KAAK26S,qBAAqBn3O,GAC1BxjE,KAAK49D,WAAWpD,EAAWx6D,KAAK2jS,qBAChC3jS,KAAKu6S,kBAAkB3gT,OAASoG,KAAKo4D,aAAax+D,OAElD4pE,EAAYxjE,KAAKu6S,kBAAkB3gT,QAGlDw+D,WAAY,SAAS0iP,GACjB,IACIt8R,QAASA,GACTxe,KAAKohK,SACT,OAAO05I,EAAsBt8R,EAAUA,EAAQA,EAAQ5kB,OAAS,IAEpEmhT,iBAAkB,WACd,IAAIv8R,EAAUxe,KAAKo4D,aACnB,OAAO,eAAU55C,GAAWA,EAAQ1iB,IAAIwV,GAAKA,EAAEjG,YAAS,GAE5Dw8D,aAAc,WACV,OAAO7nE,KAAKohK,SAAS72J,MAAM3Q,OAASoG,KAAK2jS,qBAE7CA,kBAAmB,WACf,OAAI3jS,KAAKq6S,mBACEr6S,KAAKohK,SAAS5iJ,QAAQ5kB,OAAS,EAEnC,GAEXgkE,WAAY,SAASpD,GACjB,OAAOA,EAAWx6D,KAAKohK,SAAS72J,MAAM3Q,QAAU,UAAYoG,KAAKohK,SAAS72J,MAAMiwD,GAAU7/C,SAE9FinR,cAAe,SAASpnO,GACpB,IAAI3wD,EAAO7J,KAAKohK,SAAS72J,MAAMiwD,EAAWx6D,KAAK2jS,qBAC3CjmP,EAAa7zC,GAAQA,EAAK6zC,WAC9B,OAAI7zC,GAAQ,gBAAkBA,EAAK8Q,QACxB,EAEJ,eAAU+iC,GAAcA,EAAa19C,KAAKohK,SAASngF,aAAarnF,QAE3EwmS,YAAa,SAAS5lO,EAAUgJ,GAC5B,IAAIhlD,EAAUxe,KAAKo4D,aACnB,GAAIoC,EAAWx6D,KAAK2jS,oBAChB,MAAO,SAIX,GAFInpO,GAAYx6D,KAAK2jS,oBAEjBngO,EAAYhlD,EAAQ5kB,OAAQ,CAC5B,IAAIiQ,EAAO7J,KAAKohK,SAAS72J,MAAM3Q,QAAUoG,KAAKohK,SAAS72J,MAAMiwD,GACzDjgD,EAASiE,EAAQglD,GACrB,OAAI35D,GAAQ,SAAWA,EAAK8Q,SACpBwqH,SAASt7H,EAAKmd,OAAOhnB,KAAKg6S,kBAAkBx2O,OAAiB,eAAUjpD,EAAOpE,eACvE,eAAUoE,EAAOO,QAAUP,EAAOO,OAAO/F,SAAWwF,EAAOxF,SAGnE,WAGfwwR,MAAO,WACH,IAAI5hS,EAAO3D,KACX2D,EAAK2jH,eACL,IAAIxxG,EAAUnS,EAAKy9J,SACnB,OAAO,kBAAKtrJ,EAAQvL,OAAO8T,MAAK,SAAU9T,GACtCuL,EAAQ0+B,qBAAuB1+B,EAAQ0+B,oBAAoB7wC,EAAKy0D,WAAWz0D,EAAKggS,oBAAsB,GAAIp5R,GAC1GuL,EAAQvL,MAAQA,KAChBuW,MAAK,WACLhL,EAAQvL,MAAQ,OAGxBywS,kCAAmC,SAASC,GACxC,GAAI,eAAUA,IAA0BA,EAAsBrhT,OAAS,EACnE,OAAOqhT,EAAsBn/S,KAAI,SAAU+N,GACvC,MAAO,CACHhI,MAAOgI,EAAKhI,MACZD,KAAMiI,EAAKjI,UAK3Bu+R,YAAa,SAAS3lO,EAAUgJ,EAAW03O,GACvC,IAAIr5S,EACA0Y,EACAtb,EAAS,CACTihS,eAAgB,GAChBr+R,MAAOA,GAEP2c,EAAUxe,KAAKo4D,aACf+iP,EAAqBn7S,KAAKg6S,kBAAkBx2O,GAChD,GAAIhJ,EAAWx6D,KAAK2jS,oBAAqB,CACrC,IAAIyX,EAAap7S,KAAKo4D,YAAW,GAAMoC,GACvCjgD,EAAS6gS,EAAW53O,GACpBvkE,EAAOihS,eAAevlR,QAAU,SAChC1b,EAAOihS,eAAe3lR,OAASA,GAAUA,EAAO8gS,WAChDp8S,EAAO4C,MAAQ0Y,GAAUA,EAAOrP,YAC7B,CACHsvD,GAAYx6D,KAAK2jS,oBACjB,IAAI95R,EAAO7J,KAAKohK,SAAS72J,MAAM3Q,QAAUoG,KAAKohK,SAAS72J,MAAMiwD,GAC7D,GAAI3wD,EAAM,CACN,IAAIyxS,EAAazxS,EAAKmd,OAGtB,OAFA/nB,EAAOihS,eAAevlR,QAAU9Q,EAAK8Q,QACrC1b,EAAOihS,eAAe3lR,OAASiE,EAAQglD,IAAchlD,EAAQglD,GAAW63O,WAChExxS,EAAK8Q,SACT,IAAK,cACL,IAAK,cACGwgS,EAAqBG,EAAW1hT,SAChCiI,EAAQy5S,EAAWH,GACf,eAAUt5S,IACV5C,EAAOihS,eAAer+R,MAAQA,EAAMA,MACpC5C,EAAOihS,eAAeqb,qBAAuB15S,EAAMD,KACnD3C,EAAO4C,MAAQ,EAAawU,eAAexU,EAAO7B,KAAKohK,SAAS7qJ,eAEhEtX,EAAOihS,eAAer+R,WAAQ,GAGtC,MACJ,IAAK,QAED,GADA5C,EAAOihS,eAAexiP,WAAa7zC,EAAK6zC,WACpC8lB,EAAY,EACZvkE,EAAOihS,eAAe3lR,OAASva,KAAKohK,SAASngF,aAAap3E,EAAK6zC,YAC/Dz+C,EAAOihS,eAAer+R,MAAQgI,EAAK/O,IAAI+O,EAAK6zC,YAC5Cz+C,EAAOihS,eAAepe,kBAAoB9hR,KAAKg7S,kCAAkCnxS,EAAKktF,aAAa,IACnG93F,EAAO4C,MAAQ7B,KAAK+5S,eAAelwS,OAChC,CACH,IAAIoR,EAAepR,EAAKmd,OAAOm0R,GAC/B,GAAIt8S,MAAMuY,QAAQ6D,GAAe,CAC7Bhc,EAAOihS,eAAepe,kBAAoB9hR,KAAKg7S,kCAAkC//R,GACjFpZ,EAAQ,GACR,IAAK,IAAIpG,EAAI,EAAGA,EAAIwf,EAAarhB,OAAQ6B,IACrCoG,IAAUpG,EAAI,EAAIy/S,EAAY,KAAO,OAAS,IAAM,EAAa7kS,eAAe4E,EAAaxf,GAAIuE,KAAKohK,SAAS7qJ,cAEnHtX,EAAO4C,MAAQA,OAEf5C,EAAOihS,eAAer+R,WAAQ,EAGtC,MACJ,QAEI,GADA0Y,EAASiE,EAAQglD,GACbjpD,EAAQ,CACR,IAAIu6I,EAASwmJ,EAAWH,GACpB/1N,EAAe,EAAa1qE,gBAAgBH,EAAQu6I,EAAQjrJ,EAAKzF,KAAMyF,EAAK8Q,UAC3EwqH,SAAS//C,IAAiB,eAAU7qE,EAAOpE,eACxC+kS,GAAa,eAAU3gS,EAAOpE,gBAAkBoE,EAAOpE,gBAAkBnW,KAAK45S,kBAAkBt8O,mBAAmB0Y,2BAA2B,WAC9I/2E,EAAO4C,MAAQujF,EAEfnmF,EAAO4C,MAAQ,EAAagU,YAAYuvE,EAAc7qE,GAG1Dtb,EAAO4C,MAAQujF,EAEnBnmF,EAAOihS,eAAer+R,MAAQizJ,EAElC71J,EAAOihS,eAAe97R,KAAOyF,EAAKzF,OAIlD,OAAOnF,GAEXo7S,iBAAkB,WACd,OAAOr6S,KAAKohK,SAASi5I,kBAEzBQ,YAAa,SAASrgP,EAAUgJ,GAC5B,IAAIj5D,EAAQvK,KAAKohK,SAAS72J,MACtBV,EAAOU,EAAMiwD,GACbghP,EAAmBx7S,KAAKg6S,kBAAkBx2O,GAC1Ci4O,EAAyB5xS,EAAKktF,cAAgBltF,EAAKktF,aAAaykN,IAAqB3xS,EAAKktF,aAAaykN,GAAkB5hT,OAAS,GAAKiQ,EAAKktF,aAAaykN,GAAkB,GAAGxxP,cAClL,OAAOngD,GAAQ,gBAAkBA,EAAK8Q,SAAW,gBAAkB9Q,EAAK8Q,SAAW8gS,GAEvF3W,eAAgB,SAAStqO,EAAUgJ,GAC/B,IAAIhlD,EAAUxe,KAAKohK,SAAS5iJ,QACxBjE,EAASiE,EAAQg8C,IAAah8C,EAAQg8C,GAAUgJ,GACpD,OAAOjpD,EAAS,CACZgiD,SAAUhiD,EAAOmhS,eAAiB,GAAK,EACvC/sO,SAAUp0D,EAAOo0D,SAAW,GAAK,GACjC,CACApS,QAAS,EACToS,QAAS,IAGjB40N,cAAe,WACX,MAAO,CACHtwR,EAAG,EACHd,EAAGnS,KAAK2jS,wBAITgY,GAAmB,EAAa/oP,eAAe7C,QAAQ,IAAIA,QAAQ,CAC1E6rP,cAAe,WACX,MAAO,CACH1wS,QAAS,GACTqxD,QAAS,EACToS,QAAS,IAGjBigN,mBAAoB,SAASr0Q,EAAQlP,GACjCkP,EAAOlP,MAAQA,GAEnB4uS,YAAa,SAASN,GAClB,IACIl+S,EACA+iB,EAFAvf,EAAS,GAGTq4D,EAAoBt3D,KAAKs9D,mBACzBsR,EAAWtX,EAAkBkX,cACjC,IAAK/yE,EAAI,EAAGA,GAAKmzE,EAAUnzE,IAAK,CAC5B,IAAIogT,EAAmB,GACvBr9R,EAAU84C,EAAkBiG,kBAAkB9hE,GAAG,GACjD,IAAIqgT,OAA4B,EAChC,GAAIrgT,IAAMmzE,EACN,GAAI5uE,KAAKkwD,iBACL4rP,EAA4BnC,MACzB,CACH,IAAIn2M,EAAexjG,KAAK+7S,iBAAiB/7S,KAAKg8S,aAAch8S,KAAKw6G,WACjE,GAAIhX,GAAgBA,EAAa5pG,OAAQ,CACrCkiT,EAA4B,GAC5B,IAAK,IAAIhrD,EAAK,EAAGA,EAAKtyO,EAAQ5kB,OAAQk3P,IAClCgrD,EAA0Bt9R,EAAQsyO,GAAI1vP,OAASoiG,EAAastJ,IAK5E,IAAK,IAAIplP,EAAI,EAAGA,EAAI8S,EAAQ5kB,OAAQ8R,IAAK,CACrC,IAAI6O,EAAS,OAAA9f,EAAA,WAAO,GAAI+jB,EAAQ9S,GAAI,CAChCqJ,SAAU,aAAeyJ,EAAQ9S,GAAGqJ,SAAW,OAASyJ,EAAQ9S,GAAGqJ,SACnEsmS,WAAY78R,EAAQ9S,KAExB,GAAI1L,KAAKi8S,qBAAqB1hS,GAAS,CACnC,IAAI2hS,EAAiBl8S,KAAKm8S,wBAAwB5hS,GAC9C,eAAU2hS,KACV3hS,EAAOmhS,cAAgBQ,GAEvBJ,GACA97S,KAAK4uR,mBAAmBr0Q,EAAQuhS,EAA0BvhS,EAAOnZ,QAErEy6S,EAAiB54S,KAAKsX,IAG9Btb,EAAOgE,KAAK44S,GAKhB,OAHAr9R,EAAUvf,EAAO2vE,GACjB3vE,EAASyzR,GAAazzR,EAAO+U,MAAM,GAAI,GAAIhU,KAAK47S,iBAChD38S,EAAOgE,KAAKub,GACLvf,GAEXk9S,wBAAyB,SAAS5hS,GAC9B,GAAKA,EAAOsjC,OAAZ,CAGA,IAAIu+P,EAAep8S,KAAKs9D,mBAAmBsS,wBAAwBr1D,EAAOnZ,OAAO,GACjF,GAAK,eAAUg7S,GAGf,OAAOA,EAAal0R,OAAO,CAACjpB,EAAQo9S,IAC5Br8S,KAAKi8S,qBAAqBI,GACnBp9S,GAAUe,KAAKm8S,wBAAwBE,IAAgB,GAEvDp9S,EAEZ,KAEPg9S,qBAAsB,SAAS1hS,GAC3B,OAAQA,EAAOsE,UAAYtE,EAAO8hC,qBAAkB,IAAW9hC,EAAO8hC,iBAE1EigQ,uBAAwB,SAASvlN,EAAcwlN,GAC3C,IAAIt9S,EAAS,GACTu9S,EAAsB,EACtB/gT,EAAI,EACR,EAAG,CAEC,IADA,IAAIurB,EAAS,GACJtb,EAAI,EAAGA,EAAIqrF,EAAan9F,OAAQ8R,IAAK,CAC1C,IAAIy1Q,EAAcpqL,EAAarrF,GAC3B8sN,EAAc2oD,EAAYvnR,OAC1B4iT,EAAsBhkF,IACtBgkF,EAAsBhkF,GAE1BxxM,EAAO/jB,KAAKk+Q,EAAY1lR,IAE5BwD,EAAOgE,KAAK,CACR+jB,OAAQA,EACRrM,QAAS4hS,EAAU,cAAgB,sBAElC9gT,IAAM+gT,EAAsB,GACrC,OAAOv9S,GAEXw9S,wBAAyB,WACrB,IAAIvtP,EAAalvD,KAAK4Y,OAAO,sBAC7B,GAAI,eAAUs2C,GACV,IAAK,IAAIzzD,EAAI,EAAGA,EAAIyzD,EAAWt1D,OAAQ6B,IACnC,GAAIyzD,EAAWzzD,GAAGyuD,kBACd,OAAO,EAInB,OAAO,GAEXwyP,iCAAkC,SAASC,GAIvC,IAHA,IAAI19S,EAAS,GACT29S,EAAyB,GACzBC,EAAmB,GACdphT,EAAI,EAAGA,EAAIkhT,EAAY/iT,OAAQ6B,IAAK,CACzC,IAAIoO,EAAO8yS,EAAYlhT,GACnB,gBAAkBoO,EAAK8Q,SACvBkiS,EAAmB78S,KAAKs8S,uBAAuBzyS,EAAKktF,cACpD93F,EAASA,EAAO0oB,OAAOi1R,EAAwBC,GAC/CD,EAAyB,IAEzBA,EAAuB35S,KAAK4G,GAGpC,OAAO5K,EAAOrF,OAASqF,EAAS29S,GAEpCE,sCAAuC,SAASH,GAE5C,IADA,IAAII,EAAgB,GACXthT,EAAI,EAAGA,EAAIkhT,EAAY/iT,OAAQ6B,IAAK,CACzC,IAAIoO,EAAO8yS,EAAYlhT,GACnBs7F,EAAeltF,EAAKktF,aACxB,GAAI,UAAYltF,EAAK8Q,SAAWo8E,GAAgBA,EAAan9F,OAAS,EAAG,CAErE,IADA,IAAIojT,EAAmBnzS,EAAKmd,OAAOptB,OAC1B8R,EAAI,EAAGA,EAAIqrF,EAAan9F,OAAQ8R,IACrC,IAAK,IAAIkkB,EAAI,EAAGA,EAAImnE,EAAarrF,GAAG9R,OAAQg2B,IAAK,CAC7C,IAAItZ,EAAcygF,EAAarrF,GAAGkkB,GAC9BtZ,GAAeA,EAAY0zC,gBACtBnrD,MAAMuY,QAAQ2lS,EAAcrxS,EAAIsxS,MACjCD,EAAcrxS,EAAIsxS,GAAoB,IAE1CD,EAAcrxS,EAAIsxS,GAAkB/5S,KAAKqT,IAIjDymS,EAAcnjT,OAAS,IACvBiQ,EAAKmd,OAAO/jB,QAAQ85S,GACpBA,EAAgB,OAKhCE,wBAAyB,SAAS1yS,GAK9B,IAJA,IAEIyc,EACA+vE,EAHAv4E,EAAUxe,KAAKs9D,mBAAmBC,kBAAkB,MAAM,GAC1D0jB,EAAejhF,KAAKs9D,mBAAmBgZ,kBAGlC76E,EAAI,EAAGA,EAAI8O,EAAM3Q,OAAQ6B,IAAK,CACnC,IAAIoO,EAAOU,EAAM9O,GACbyhT,GAAuB,EAC3Bl2R,EAAS,GACT+vE,EAAe,GACf,IAAK,IAAIrrF,EAAI,EAAGA,EAAI8S,EAAQ5kB,OAAQ8R,IAAK,CACrC,IAAI6O,EAASiE,EAAQ9S,GAErB,GADAwxS,EAAuBA,GAAwB,iBAAmB3iS,EAAO9b,KACrEuB,KAAKi8S,qBAAqB1hS,KACtB1Q,EAAKmd,SACD,UAAYnd,EAAK8Q,SAAYqM,EAAOptB,OAGpCotB,EAAO/jB,KAAK4G,EAAKmd,OAAOtb,IAFxBsb,EAAO/jB,KAAK4G,EAAK/O,IAAI+O,EAAK6zC,cAK9B7zC,EAAKktF,cACL,GAAI,UAAYltF,EAAK8Q,SAAYo8E,EAAan9F,OAI1Cm9F,EAAa9zF,KAAK4G,EAAKktF,aAAarrF,QAJc,CAClD,IAAItK,EAAQsK,EAAIu1E,EAAarnF,OAASiQ,EAAK6zC,WAC3Cq5C,EAAa9zF,KAAK4G,EAAKktF,aAAammN,EAAuB97S,EAAQA,EAAQ,KAOvF4lB,EAAOptB,SACPiQ,EAAKmd,OAASA,GAEd+vE,EAAan9F,SACbiQ,EAAKktF,aAAeA,KAIhCqjN,aAAc,SAASh2S,GACnB,IAMI2yF,EANApzF,EAAO3D,KACPkR,EAAI,IAAI,cACR8xE,EAAiBhjF,KAAK2xD,cAAc,QACpC4sN,EAAcv7L,EAAeu7L,cAC7BjvN,EAAYivN,EAAY3kR,QAAU2kR,EAAY,GAC9CyC,EAAoBr9Q,EAAKiV,OAAO,sBAoBpC,OAlBA,kBAAKxU,GAAMia,MAAK,SAAUja,GACtB4+E,EAAe0W,QAAQt1F,GAAMia,MAAK,SAAUs+R,EAAavgC,GACrDz4Q,EAAKm5S,sCAAsCH,GACvCh5S,EAAK84S,4BACLE,EAAch5S,EAAK+4S,iCAAiCC,IAExD5lN,EAAeznC,GAAaA,EAAUynC,aAClC,eAAUqlL,IAAoB4E,IAC9BjqL,EAAepzF,EAAKo9Q,iBAAiBC,EAAmB5E,IAE5D,IAAInhQ,EAAeq0C,GAAa3rD,EAAK24S,uBAAuBvlN,GAAc,GACtE97E,IACA0hS,EAAcA,EAAYh1R,OAAO1M,IAErCtX,EAAKs5S,wBAAwBN,GAC7BzrS,EAAEyP,QAAQg8R,MACV77R,KAAK5P,EAAE2iB,WACX/S,KAAK5P,EAAE2iB,QACJ3iB,GAEX6vQ,iBAAkB,SAASC,EAAmB5E,GAC1C,IAAIp5L,EAAiBhjF,KAAK2xD,cAAc,QACpC2F,EAAoB0rB,EAAe1lB,mBACvC,OAAO0lB,EAAe29L,uBAAuBK,EAAmB5E,EAAiB9kN,EAAkBiG,kBAAkB,MAAM,IAAO,SAAUjnD,EAAaiE,GACrJ,OAAOyoE,EAAes9L,cAAc/lQ,GAAUA,EAAOnZ,OAAS,MAGtE+4S,kBAAmB,WACf,IAAIlpL,EAAsBjxH,KAAK2xD,cAAc,aACzCwrP,EAAkBlsL,EAAoBhgH,sBAC1C,OAAOjR,KAAKo6S,aAAa+C,IAE7BpB,iBAAkB,SAASpyC,EAAavsP,GACpC,OAAOusP,GAAeA,EAAY3xP,YAAc2xP,EAAYtjM,kBAAoBjpD,EAASipD,mBAE7F5V,KAAM,WACFzwD,KAAKs9D,mBAAqBt9D,KAAK2xD,cAAc,WAC7C3xD,KAAKw6G,UAAYx6G,KAAKqd,QAAQ,YAC9Brd,KAAKg8S,aAAeh8S,KAAKqd,QAAQ,qBACjCrd,KAAKmxD,aAAa,cAAe,CAC7B8T,kBAAmB,CAAC,WAAY,cAEpCjlE,KAAKmxD,aAAa,aAAc,CAC5B8T,kBAAmB,CAAC,WAAY,cAEpCjlE,KAAKmxD,aAAa,eAAgB,CAC9B8T,kBAAmB,CAAC,WAAY,eAGxC5U,cAAe,WACX,MAAO,CAAC,yBAEZ+sP,gBAAiB,SAAS5K,GACtB,IACImH,EADAn2M,EAAexjG,KAAK+7S,iBAAiB/7S,KAAKg8S,aAAch8S,KAAKw6G,WAEjE,GAAIhX,GAAgBA,EAAa5pG,OAAQ,CACrC+/S,EAAmC,GAEnC,IADA,IAAI0D,EAA+Br9S,KAAKs9D,mBAAmBC,kBAAkBv9D,KAAKs9D,mBAAmBkR,eAAe,GAC3G/yE,EAAI,EAAGA,EAAI4hT,EAA6BzjT,OAAQ6B,IACrDk+S,EAAiC0D,EAA6B5hT,GAAG2F,OAASoiG,EAAa/nG,GAG/F,OAAO,IAAIi+S,GAAa15S,KAAM25S,EAAkCnH,IAEpE8K,cAAe,SAAS9K,GACpBxyS,KAAKk6S,eAAiB1H,EACtB,GAAaxyS,KAAK4R,UAAUwrS,kBAAmB,CAC3C7/Q,SAAUv9B,KAAK4Y,OAAO,mBACtB8pC,SAAU1iD,KAAK4Y,OAAO,mBACtBvf,OAAQ,OACRm5S,mBAAoBA,EACpB9O,oBAAqB1jS,KAAK4Y,OAAO,6BACjCyD,WAAYrc,KAAK4Y,OAAO,cACxBirR,aAAc7jS,KAAK4Y,OAAO,4BAC1By5R,gBAAiBryS,KAAKqxD,UAAU,eAChCihP,eAAgBtyS,KAAKqxD,UAAU,cAC/BkhP,iBAAkBvyS,KAAKqxD,UAAU,iBAClCohP,GAAMjN,UAEb1iP,SAAU,SAAS0vP,EAAkBn5S,GACjC2G,KAAKk6S,eAAiB1H,EACtB,IAAIr7P,EAAcn3C,KAAKqxD,UAAU,eAC7B05C,EAAY,CACZynM,mBAAoBA,EACpBn5S,OAAQA,EACRkkC,SAAUv9B,KAAK4Y,OAAO,mBACtB2nC,QAAQ,GAEZ,eAAWpJ,IAAgBA,EAAY4zD,IAE3Cr6C,cAAe,WACX,MAAO,CAAC,kBAAmB,kBAE/B+gE,cAAe,SAAS5vH,GACpB,IAAI,eAAUA,GAIV,OAAO7B,KAAKu9S,gBAHZv9S,KAAKu9S,gBAAkB17S,EACvB7B,KAAKuxH,qBAAqB/8D,UAMtC,EAAa4B,eAAe,SAAU,CAClCz4D,eAAgB,WACZ,MAAO,CACHo3C,OAAQ,CACJl8B,SAAS,EACT0kB,SAAU,WACV+kB,oBAAoB,EACpBE,QAAS,CAAC,QACVD,0BAAsB,EACtBG,cAAU,EACVN,yBAAyB,EACzBK,mBAAmB,EACnBhD,MAAO,CACHqD,SAAU,OAAoBzpD,OAAO,uBACrCupD,UAAW,OAAoBvpD,OAAO,wBACtCwpD,mBAAoB,OAAoBxpD,OAAO,qCAK/Dm8D,YAAa,CACTzgB,OAAQ4mQ,IAEZ/lP,UAAW,CACPJ,YAAa,CACT5gB,QAAS,CACLyb,cAAe,WACX,IAAImtP,EAAex9S,KAAKC,WACxB,OAAO,eAAUu9S,GAAgBA,EAAav6S,KAAK,kBAAoB,CAAC,mBAE5Em+K,mBAAoB,WAChBphL,KAAKC,WACLD,KAAK41N,eAAephK,KAAKx0D,KAAK67G,iBAI1CnmD,MAAO,CACH2mC,YAAa,CACT0wB,iBAAkB,WACd,IAAIxiH,EAAQvK,KAAKC,WACbw9S,EAAez9S,KAAK09S,0BAKxB,OAJID,IACAlzS,EAAMtH,KAAKw6S,GACXz9S,KAAK29S,sBAAsBpzS,IAExBA,GAEXmzS,wBAAyB,WACrB,IAAInzS,EAAQvK,KAAK49S,yBACjB,GAAI,IAAMrzS,EAAM3Q,OACZ,OAAO,KAEX,IAAIikT,EAAuB,CACvBj8S,KAAMy3S,GACNruP,SAAU,QACVD,aAAc,OACd1M,UAAW,GACXvoC,QAAS,CACLvL,MAAOA,IAGf,GAAI,IAAMA,EAAM3Q,OAAQ,CACpB,IAAIg8J,EAAgB,eAAS,GAAIrrJ,EAAM,GAAI,CACvCsrC,KAAMtrC,EAAM,GAAGhO,KACfs4C,YAAa,CACT+4M,MAAOwrD,MAGfyE,EAAqB1yP,OAAS,WAC9B0yP,EAAqB3yP,SAAW,SAChC2yP,EAAqB/nS,QAAU8/I,MAC5B,CACH,IAAIkoJ,EAAiB,CACjBjiQ,KAAMy9P,GACNn4R,YAAa,OACb5W,MAAOA,EACPsrC,KAAM71C,KAAK4Y,OAAO,yBAClBi8B,YAAa,CACT+4M,MAAOwrD,IAEX1E,gBAAiB,CACb/uP,YAAa,CACTioM,MAAOurD,IAEX9tS,MAAO,SAGfwyS,EAAqB/nS,QAAUgoS,EAC/BD,EAAqB1yP,OAAS,mBAC9B0yP,EAAqB5yP,iBAAmB,CAAC3sB,EAAOy/Q,EAAQ/kS,KACpDhZ,KAAKiZ,iBAAiB,eAAED,GAAY,QAAM,CACtCzO,MAAOA,KAInB,OAAOszS,GAEXD,uBAAwB,WACpB,IAAIpyG,EACAwyG,EAAgBh+S,KAAK4Y,OAAO,UAC5B6mC,EAAQz/C,KAAK4Y,OAAO,gBACpB4pC,EAAU,QAAUgpJ,EAAexrM,KAAK4Y,OAAO,yBAAsB,IAAW4yL,EAAeA,EAAe,GAClH,IAAKwyG,EAAcnlS,QACf,MAAO,GAEX,IAAItO,EAAQ,GA+BZ,OA9BAi4C,EAAQthD,QAAQnB,IACZ,IAAIk+S,EAAe,WACfC,EAAan+S,EAAWs1B,cACxB8oR,EAAgB7E,GAChB8E,EAAqB5E,GACrB,SAAWz5S,IACXk+S,EAAe,gBACfC,EAAa,QACbC,EAAgB5E,IAEhB,QAAUx5S,IACVo+S,EAAgB1E,IAEpBlvS,EAAMtH,KAAK,CACP1G,KAAM,gBAAOkjD,EAAMmD,UAAWs7P,GAC9BriQ,KAAMsiQ,EACNriQ,QAAS,KACL97C,KAAK45S,kBAAkBqE,IAAc,EAAOl+S,MAGhDi+S,EAAc57P,yBACd73C,EAAMtH,KAAK,CACP1G,KAAM,gBAAOkjD,EAAMoD,mBAAoBq7P,GACvCriQ,KAAMuiQ,EACNtiQ,QAAS,KACL97C,KAAK45S,kBAAkBqE,IAAc,EAAMl+S,QAKpDwK,GAEXozS,sBAAuB,SAASpzS,GAC5BA,EAAMzI,MAAK,SAAU2zM,EAAOC,GACxB,OAAOD,EAAMp3J,UAAYq3J,EAAMr3J,cAGvCggQ,uBAAwB,WACpB,OAAOr+S,KAAK4Y,OAAO,mBAEvBs4C,cAAe,SAAS7hB,GACpBrvC,KAAKC,SAASovC,GACV,WAAaA,EAAKztC,OAClBytC,EAAK+hB,SAAU,EACfpxD,KAAKszD,gBAGb7C,KAAM,WACF,IAAI9sD,EAAO3D,KACXA,KAAKC,WACLD,KAAK45S,kBAAoB55S,KAAK2xD,cAAc,UAC5C3xD,KAAKwxL,mBAAqBxxL,KAAK2xD,cAAc,WAC7C3xD,KAAKwxL,mBAAmBokC,eAAe9lN,KAAI,SAAU+rG,GACjDl4G,EAAKqrH,uBAAuB,eAAgBnT,OAGpD7jG,UAAW,WACP,OAAOhY,KAAKC,YAAcD,KAAKq+S,+BC7vBnD,IAAIC,GAAoB,iBACpB,GAAuB,WAAaA,GACpCC,GAAsB,QACtB,GAA4B,yBAC5BC,GAAkB,EAAK5rP,eAAe7C,QAAQ,CAC9CU,KAAM,WACFzwD,KAAKiY,gBAAkBjY,KAAK2xD,cAAc,QAC1C3xD,KAAKy+S,oBAAsBz+S,KAAK2xD,cAAc,sBAC9C3xD,KAAK4R,UAAUo/F,oBAAoBx7D,eAAgB,GAEvD0b,cAAe,SAAS7hB,GACpB,GAAI,oBAAsBA,EAAKztC,KAAM,CACjC,IAAI4zC,EAAgBx1C,KAAK4Y,OAAO,iBAChC5Y,KAAK0+S,iBAAiBrvQ,EAAKxtC,OAC3B7B,KAAK2+S,gCAAgCnpQ,EAAenG,EAAKxtC,OACzDwtC,EAAK+hB,SAAU,OACZ,GAAI,kBAAoB/hB,EAAKztC,KAAM,CAEtC,GADAytC,EAAK+hB,SAAU,EACXvyD,MAAMuY,QAAQi4B,EAAKxtC,QAAU9G,KAAKC,UAAUq0C,EAAKxtC,SAAW9G,KAAKC,UAAUq0C,EAAKktC,eAChF,OAEJ,IAAIhnC,EAAkBv1C,KAAK4Y,OAAO,mBAClC5Y,KAAK4+S,eAAevvQ,EAAKxtC,OACzB7B,KAAK2+S,gCAAgCtvQ,EAAKxtC,MAAO0zC,OAC1C,uBAAyBlG,EAAKztC,MAE9B,sBAAwBytC,EAAKztC,MAE7B,6BAA+BytC,EAAKztC,KAH3CytC,EAAK+hB,SAAU,EAMfpxD,KAAKC,SAASovC,IAGtBsvQ,gCAAiC,SAASnpQ,EAAeD,GACrD,IAAIspQ,EAAuB7+S,KAAK85Q,wBAAwBtkO,GACxD,GAAID,IAAoBspQ,EAAsB,CAC1C,IAAIrkP,EAAWx6D,KAAKiY,gBAAgB4hF,iBAAiBrkD,GACrD,GAAIglB,GAAY,EAAG,CACf,IAAIqI,EAAc,eAAE7iE,KAAKqd,QAAQ,YAAYmqD,cAAchN,IAC3Dx6D,KAAK2xD,cAAc,sBAAsBkoN,uBAAuBh3M,EAAattB,MAIzFupQ,2BAA4B,WACxB,MAAO,aAAe9+S,KAAK4Y,OAAO,mBAAqB5Y,KAAK4Y,OAAO,6BAEvE8lS,iBAAkB,SAASt9S,EAAOglF,GACzBpmF,KAAK4Y,OAAO,uBAGjBxX,OAAQ,IAAWA,EAAQA,EAAQpB,KAAK4Y,OAAO,mBAC3CxX,EAAQ,EACJpB,KAAK8+S,8BACL9+S,KAAKy1Q,mBAGTz1Q,KAAK++S,qBAAqB39S,EAAOglF,KAGzC24N,qBAAsB,SAAS39S,EAAOglF,GAClC,IAAIpD,EAAiBhjF,KAAK2xD,cAAc,QACpCzF,EAAW82B,EAAe92B,WAC1B8yP,EAAgB,KAChB,GAAIh/S,KAAKi/S,wBAAwB79S,GAAQ,CACrC,IAAIo5D,EAAWp5D,EAAQ4hF,EAAe0U,mBAAkB,GACxD,IAAKtR,GAAkBA,EAAeptC,SAAWotC,EAAe75B,UAAW,CACvE,IAAIo4L,EAAgB3hK,EAAek8N,oBACnC1kP,EAAWhpD,KAAK3I,IAAI2xD,EAAUmqL,GAElC,IAAInvM,EAAgBwtC,EAAe2W,iBAAiBn/B,GAAU,GAC1D,eAAUhlB,KAAmBx1C,KAAKm/S,aAAa3pQ,IAC/Cx1C,KAAK4Y,OAAO,gBAAiB48B,KAIzC,GAAI0W,GAAY,EACZ,GAAKlsD,KAAKo/S,iBAAiBh+S,GAMvB49S,QAN+B,CAC/B,IAAI/yP,EAAYz6C,KAAKE,MAAMtQ,EAAQ4hF,EAAe92B,YAClD,kBAAK82B,EAAe/2B,UAAUA,GAAY+2B,EAAe+O,aAAa1zE,KAAK,KACvE2gS,QAOhB,iBAAiB59S,GACb,IAAI4hF,EAAiBhjF,KAAK2xD,cAAc,QACpC0tP,EAAqBr/S,KAAK2xD,cAAc,sBAAsB25M,sBAClE,GAAI+zC,EAAoB,CACpB,IAAIpzP,EAAYz6C,KAAKE,MAAMtQ,EAAQ4hF,EAAe92B,YAC9CozP,EAAet8N,EAAeq0I,oBAC9BkoF,EAAoBD,EAAeA,EAAahoF,OAAS,EACzDkoF,EAAmBx8N,EAAeiV,iBAAiBr+F,OAASopF,EAAe0U,oBAC3E+nN,EAAoBjuS,KAAKy9E,KAAKuwN,EAAmBx8N,EAAe92B,YACpE,OAAOqzP,GAAqBn+S,GAASq+S,EAAoBxzP,EAE7D,OAAO,GAEXyzP,yBAA0B,SAASt+S,GAC/B,IAAI4hF,EAAiBhjF,KAAK2xD,cAAc,QACxC,GAAI3xD,KAAKi/S,wBAAwB79S,GAAQ,CACrC,IAAIo5D,EAAWhpD,KAAK3I,IAAIzH,EAAQ4hF,EAAe0U,oBAAqB1U,EAAez4E,QAAQ3Q,OAAS,GAChG47C,EAAgBwtC,EAAe2W,iBAAiBn/B,GAChD,eAAUhlB,KAAmBx1C,KAAKm/S,aAAa3pQ,IAC/Cx1C,KAAK4Y,OAAO,gBAAiB48B,KAIzCopQ,eAAgB,SAAS9jT,GAChB,eAAUA,GAGXkF,KAAK2/S,eAAe7kT,GAAK,GAFzBkF,KAAKy1Q,oBAKbA,iBAAkB,WACd,IAAIjgO,EAAgBx1C,KAAK4Y,OAAO,iBAC5BgnS,EAAyB,eAAUpqQ,GACvC,GAAKoqQ,KAA0B5/S,KAAK4Y,OAAO,mBAAqB,GAAhE,CAGA,IAAI4yD,EAAqBxrE,KAAK2xD,cAAc,sBACxCiuP,GACA5/S,KAAK4Y,OAAO,gBAAiB,MAEjC4yD,EAAmB8pM,oBAAoB,GACvCt1Q,KAAK4Y,OAAO,mBAAoB,GAChC5Y,KAAK2xD,cAAc,QAAQsgC,YAAY,CACnCpwB,WAAY,mBACZrsB,cAAe,OAEnBg2B,EAAmBquM,4BAAuB,GAAS,KAEvDolC,wBAAyB,SAASzkP,GAC9B,IAAIwoB,EAAiBhjF,KAAK2xD,cAAc,QACpCz0C,EAAM8lE,EAAeiV,iBAAiBz9B,GAC1C,OAAQt9C,GAAO,SAAWA,EAAIvC,SAAW,UAAYuC,EAAIvC,SAE7D+1C,cAAe,WACX,MAAO,CAAC,gBAAiB,iBAE7B+3H,cAAe,SAAS3tL,GAIpB,OAHKkF,KAAK8+S,8BACN9+S,KAAK4Y,OAAO,mBAAoB,GAE7B5Y,KAAK2/S,eAAe7kT,IAE/B6kT,eAAgB,SAAS7kT,EAAK+kT,GAC1B,IAAIl8S,EAAO3D,KACPgjF,EAAiBr/E,EAAKguD,cAAc,QACpCmuP,EAAiBn8S,EAAKm7S,6BACtB5tS,EAAI,IAAI,cACZ,QAAI,IAAWpW,IAAQkoF,EAAe5oE,aAClC,OAAOlJ,EAAE2iB,SAASpS,UAEtB,IAAIs+R,EAAgBp8S,EAAKm2Q,wBAAwBh/Q,GAwBjD,OAvBKglT,GAAkBD,GAAgBE,GAAiB,EACpDp8S,EAAKq8S,YAAYllT,EAAKoW,EAAG2uS,GAEzB78N,EAAei9N,kBAAkBnlT,GAAKujB,MAAK,SAAU4tC,GAC7CA,EAAY,EACZ/6C,EAAEyP,SAAS,GAGXsrC,IAAc+2B,EAAe/2B,YAC7B+2B,EAAeqD,SAAShoE,MAAK,WACrB1a,EAAKw7S,aAAarkT,IAAQkoF,EAAe6W,iBAAiB/+F,IAAQ,EAClEoW,EAAEyP,QAAQhd,EAAKm2Q,wBAAwBh/Q,IAEvC6I,EAAKq8S,YAAYllT,EAAKoW,EAAG2uS,MAE7B/+R,KAAK5P,EAAE2iB,QAEXmvD,EAAe/2B,UAAUA,GAAW5tC,MAAK,WACrC1a,EAAKq8S,YAAYllT,EAAKoW,EAAG2uS,MACzB/+R,KAAK5P,EAAE2iB,WAEf/S,KAAK5P,EAAE2iB,QAER3iB,EAAEuQ,WAEbu+R,YAAa,SAASllT,EAAKszD,EAAUyxP,GACjC,IAAI9pN,EAAkB/1F,KAAK2xD,cAAc,QAAQkoC,iBAAiB/+F,GAC9DolT,EAA4B,OAAc7gS,sBAAsBrf,MAChE8/S,EAAiB9/S,KAAK8+S,6BACtBgB,GAAkBI,GAA6BnqN,EAAkB,EACjE/1F,KAAKmgT,sBAAsBrlT,EAAKszD,EAAUyxP,GAE1C7/S,KAAKogT,sBAAsBtlT,EAAKszD,EAAUyxP,IAGlDO,sBAAuB,SAAStlT,EAAKszD,EAAUyxP,GAC3C,GAAIA,EACA7/S,KAAKqgT,yBAAyBvlT,EAAKszD,OAChC,CACH,IAAI7Y,EAAkBv1C,KAAK85Q,wBAAwBh/Q,GACnDkF,KAAKqd,QAAQ,YAAYijS,mBAAmBxlT,EAAKszD,GAAU/vC,MAAK,WAC5D+vC,EAASztC,QAAQ40B,QAI7B4qQ,sBAAuB,SAASrlT,EAAKszD,EAAUyxP,GAC3C,IAAIl8S,EAAO3D,KACPgjF,EAAiBhjF,KAAK2xD,cAAc,QACpC6xK,EAAuBxgJ,EAAemgJ,sBACtC3oK,EAAW,OAAclhD,cAAcxe,EAAKkoF,EAAez4E,OAAM,IACjEyyF,EAAar5F,EAAK0Z,QAAQ,YAAY6gF,gBAC1C,GAAIslI,GAAwBxmI,GAAcxiC,GAAY,EAAG,CACrD,IAAIjlB,EAAkBilB,EAAWwoB,EAAe0U,mBAAkB,GAC9Dt7E,EAASonN,EAAqB3G,cAActnL,GAChD5xC,EAAKiO,UAAU9H,GAAG,gBAAgB,SAAUy2S,IACxC58S,EAAKiO,UAAUq/C,IAAI,eAAgBsvP,GAC/BV,EACAl8S,EAAK08S,yBAAyBvlT,EAAKszD,GAEnCA,EAASztC,QAAQ40B,MAGzBv1C,KAAKqd,QAAQ,YAAYmjS,kBAAkBpkS,QAE3CgyC,EAASztC,SAAS,IAG1B0/R,yBAA0B,SAASvlT,EAAKszD,GACpC,IAGQl9C,EAHJ8xE,EAAiBhjF,KAAK2xD,cAAc,QACpCpc,EAAkBv1C,KAAK85Q,wBAAwBh/Q,GAC/CkF,KAAKi/S,wBAAwB1pQ,IAEzBv1C,KAAK4Y,OAAO,qBACZoqE,EAAeiP,YAAY,CACvBpwB,WAAY,mBACZrsB,cAAe16C,IAGnBoW,EAAIlR,KAAKqd,QAAQ,YAAYijS,mBAAmBxlT,GAEpD,kBAAKoW,GAAGmN,KAAK,KACTre,KAAK2xD,cAAc,sBAAsB2jN,mBAAmB//N,GAC5D6Y,GAAYA,EAASztC,QAAQ40B,MAGjC6Y,GAAYA,EAASztC,SAAS,IAGtCm5P,wBAAyB,SAASh/Q,GAC9B,IAAIkoF,EAAiBhjF,KAAK2xD,cAAc,QACpCq0H,EAAiBhjG,EAAe6W,iBAAiB/+F,GAAK,GAC1D,OAAOkrL,GAAkB,EAAIA,EAAiBhjG,EAAe0U,mBAAkB,IAAS,GAE5F+oN,sBAAuB,WACnB,IAAIjrQ,EAAgBx1C,KAAK4Y,OAAO,iBAC5B8nS,EAAyB1gT,KAAK4Y,OAAO,mBACrC4yD,EAAqBxrE,KAAK2xD,cAAc,sBACxCqxB,EAAiBhjF,KAAK2xD,cAAc,QACxC,GAAI,eAAUnc,GAAgB,CAC1B,IAAIugD,EAAkB/S,EAAe6W,iBAAiBrkD,GAClDugD,GAAmB,GACfvqB,EAAmB8/L,wBACnBo1C,EAAyB3qN,EAAkB/S,EAAe0U,qBAE9DlsB,EAAmB8pM,mBAAmBorC,GACtC1gT,KAAKqgT,yBAAyB7qQ,IAE9Bx1C,KAAK2/S,eAAenqQ,GAAe,GAAMn3B,KAAKk3B,IACtCmrQ,GAA0B,GAAKnrQ,EAAkB,EACjDv1C,KAAK0+S,mBACEgC,EAAyB,GAAKnrQ,GAAmB,GACxDi2B,EAAmB8pM,mBAAmB//N,UAI3CmrQ,GAA0B,GACjC1gT,KAAK2xD,cAAc,SAAS+sP,iBAAiBgC,IAGrDvB,aAAc,SAASrkT,GACnB,IAAI06C,EAAgBx1C,KAAK4Y,OAAO,iBAChC,GAAI,eAAU48B,GACV,OAAO,eAAa16C,EAAKkF,KAAK4Y,OAAO,mBAG7C+nS,iBAAkB,SAASp/P,GACvB,IAGIuf,EACA8/O,EAJAj9S,EAAO3D,KACPu1C,EAAkB5xC,EAAKsU,gBAAgB4hF,iBAAiBt4C,EAAO/L,eAC/Dp4B,EAAWzZ,EAAK0Z,QAAQ,YAG5B,eAAKD,EAAS0nD,oBAAoB,SAAU1jE,EAAOsW,GAC/C,IAAImpS,EAAc,IAAMz/S,EACxB0/D,EAAgB,eAAEppD,GAClB/T,EAAKm9S,yBAAyBhgP,EAAevrB,GAC7C,IAAI6nB,EAAOz5D,EAAKo9S,mBAAmB,CAC/BC,YAAar9S,EAAKsU,gBAAgBggF,iBAAiB1iD,GACnDurB,cAAeA,EACfvrB,gBAAiBA,IAEjBsrQ,IACAD,EAAWxjP,MAGnBwjP,GAAYxjS,EAAS6jS,0BAA0BL,IAEnDE,yBAA0B,SAAShgP,EAAevrB,GAC9C,IAAI2rQ,EAAyBpgP,EAAchpD,KAAK,IAAsB1Z,OAAO,CAACW,EAAGoiT,KAC7E,IAAIC,EAAmB,eAAED,GAAYhjS,QAAQ,IAAIwJ,OAAO3nB,KAAK4X,gBAAgB2mS,MAC7E,OAAOz9O,EAAclzE,GAAGwzT,KAI5B,GAFAF,EAAuB7oS,YAAYimS,IAAmBjmS,YAAY,IAA2B+lD,WAAW,YACxG8iP,EAAuBlpP,SAAS,MAAMoG,WAAW,YAC7C,IAAM7oB,EAAiB,CACvB,IAAI8rQ,EAAY,eAAErhT,KAAKqd,QAAQ,YAAYmqD,cAAc,IACzD65O,EAAUhpS,YAAY,IAA2B+lD,WAAW,cAGpE2iP,mBAAoB,SAASjrS,GACzB,IAAIsnD,EACA4jP,EAAclrS,EAAQkrS,YAC1B,GAAIA,IAAgB,SAAWA,EAAYrmS,SAAW,UAAYqmS,EAAYrmS,SAAU,CACpF,IAAI46B,EAAkBz/B,EAAQy/B,gBAC1BurB,EAAgBhrD,EAAQgrD,cACxB1mB,EAAWp6C,KAAK4Y,OAAO,aAAe,EACtCwE,EAAWpd,KAAKqd,QAAQ,YAC5B+/C,EAAO,eAAEhgD,EAAS4pD,gBAAgBlG,GAAetkD,GAAG+4B,IACpD6nB,EAAKjlD,SAASmmS,IAAmB5sP,KAAK,WAAYtX,GAEtD,OAAOgjB,KAGJkkP,GAAc,CACrB3jT,eAAgB,WACZ,MAAO,CACH23C,mBAAmB,EACnBzB,0BAA0B,EAC1B2B,cAAe,KACfD,iBAAkB,EAClBF,oBAAqB,IAG7BmgB,YAAa,CACTb,MAAO6pP,IAEX5oP,UAAW,CACPJ,YAAa,CACTzf,mBAAoB,CAChB0a,KAAM,WACF,IAAI+J,EAAWx6D,KAAK4Y,OAAO,mBACvBrD,EAAcvV,KAAK4Y,OAAO,sBAC9B5Y,KAAKmxD,aAAa,uBAAwB,CACtC8T,kBAAmB,CAAC,WAAY,cAEpCjlE,KAAKmxD,aAAa,sBAAuB,CACrC8T,kBAAmB,CAAC,WAAY,cAEpCjlE,KAAKmxD,aAAa,wBAAyB,CACvC8T,kBAAmB,CAAC,WAAY,cAEpCjlE,KAAKmxD,aAAa,uBAAwB,CACtC8T,kBAAmB,CAAC,WAAY,cAEpCjlE,KAAKC,WACLD,KAAKmuQ,kBACLnuQ,KAAK2rQ,qBAAuB,GACxB,eAAUnxM,KACVx6D,KAAK2rQ,qBAAqBnxM,SAAWx6D,KAAK4Y,OAAO,oBAEjD,eAAUrD,KACVvV,KAAK2rQ,qBAAqBp2P,YAAcvV,KAAK4Y,OAAO,wBAG5D08P,mBAAoB,SAAS96M,GACzB,IAAIwoB,EAAiBhjF,KAAK2xD,cAAc,QACxC3xD,KAAKC,SAASu6D,GACd,IAAIu7B,EAAkBv7B,EAAWwoB,EAAe0U,oBAC5C6pN,EAAav+N,EAAeiV,iBAAiBlC,GAC5CwrN,GAAeA,EAAWpkS,UAC3Bnd,KAAK4Y,OAAO,kBAAmB4hD,IAGvCo5M,sBAAuB,SAASr+P,GAC5BvV,KAAKC,SAASsV,GACdvV,KAAK4Y,OAAO,qBAAsBrD,IAEtC05P,kBAAmB,SAASlkK,EAAW/sC,IAC/BA,GAAch+D,KAAK4Y,OAAO,qBAI1B5Y,KAAKkuQ,oBACLluQ,KAAKmuQ,kBACLnuQ,KAAK40Q,OAAO50Q,KAAKwyQ,0BAA0BznK,EAAUrhC,cAAcxzD,SAAS,IAL5ElW,KAAKC,SAAS8qG,EAAW/sC,IAQjC00M,2BAA4B,SAAS76M,EAAOpN,GACxC,IAAI8qN,EAAev1Q,KAAK4Y,OAAO,mBAC3B4gQ,EAAkBx5Q,KAAK4Y,OAAO,sBAC9BusC,EAAWnlD,KAAKC,SAAS43D,EAAOpN,GAChCtF,GAAYA,EAAS5vC,aAAe,GACpCvV,KAAKy5Q,wBAAwB5hN,EAAO2hN,EAAiBjE,KAIjErzJ,cAAe,CACXs5D,mBAAoB,SAAS3kK,EAAUwkK,GACnC,IAGIxjH,EAHA2T,EAAqBxrE,KAAK2xD,cAAc,sBACxCrc,EAAoBt1C,KAAK4Y,OAAO,qBAChCgjF,EAAoB57F,KAAK2xD,cAAc,WAE3C,GAAKrc,GAAuB,OAASk2B,QAAsB,IAAWA,GAAsBA,EAAmBwiM,mBAAqBpyK,EAAkB59B,aAE/I,GAAI1oB,EAAmB,CAC1B,IAAIksQ,EAAe,QAAUh2O,EAAmBklM,gBAAgB75P,GAC5D2qS,IAAiB3qS,EAASogD,SAASqnP,MACnCzmP,EAAQ2T,EAAmB6nM,uBAAuBx8P,GAClD20D,EAAmB7W,MAAMkD,UAL7B73D,KAAKC,SAAS4W,EAAUwkK,KAUpC78J,QAAS,CACL6iE,4BAA6B,SAAStiF,EAAG0iT,GACrC,IAAIxiT,EAASe,KAAKC,SAASnB,MAAMkB,KAAME,WACnC8iF,EAAiBhjF,KAAK2xD,cAAc,QACpCv3C,EAAa4oE,EAAe3oE,YAC5B+G,EAAQ4hE,EAAe5hE,QACvBtmB,EAAMsmB,GAASA,EAAMtmB,MACrBslB,EAAmBhG,GAAcA,EAAWgG,oBAAsB,GAClE0qE,EAAoBttF,OAAOgqB,KAAKpH,GAAkBuJ,MAAMohE,IAAkB3qE,EAAiB2qE,IAC/F,GAAIjwF,IAAQkF,KAAK4Y,OAAO,uBAAwB,IAAU5Y,KAAK2xD,cAAc,SAASmtP,8BAAgC2C,GAAY,CAC9H3mT,EAAM+D,MAAMuY,QAAQtc,GAAOA,EAAM,CAACA,GAClC,IAAI4mT,EAAgB5mT,EAAIsD,OAAOtD,IAAQkF,KAAK0nE,aAAa5sE,EAAK,cAC1D4mT,EAAc9nT,SACdqF,EAASA,GAAU,GACf6rF,EACA7rF,EAAOgE,KAAK,CACRuU,SAAU4C,EAAW+wE,qBACrBrvE,MAAM,IAGV4lS,EAAcxgT,QAAQygT,GAAgB1iT,EAAOgE,KAAK,CAC9CuU,SAAUmqS,EACV7lS,MAAM,MAKtB,OAAO7c,IAGfmF,KAAM,CACFowF,aAAc,SAASjzC,GACnB,IAAIA,GAAU,qBAAuBA,EAAOsgB,WAG5C,OAAO7hE,KAAKC,SAASnB,MAAMkB,KAAME,YAErCo4F,aAAc,SAAS10F,GAEnB,GADA5D,KAAKC,SAAS2D,GACV5D,KAAK4Y,OAAO,sBAAwB5Y,KAAKqa,YAAa,CACtD,IAAIunS,EAAkB,WAAah+S,EAAEi+D,YAAcj+D,EAAEs1C,mBACjD2oQ,EAA8BD,GAAmBh+S,EAAEs+D,aAAet+D,EAAEs+D,YAAY5jE,QAAQ,WAAa,EACrG,YAAcsF,EAAEi+D,YAAcj+D,EAAE2G,MAAM3Q,QAAUioT,GAChD7hT,KAAK8hT,qBACL9hT,KAAK+hT,wBAAwBn+S,IACtB,WAAaA,EAAEi+D,YAAc,YAAcj+D,EAAEi+D,WACpD7hE,KAAK8hT,qBACE,WAAal+S,EAAEi+D,YAAcj+D,EAAEs1C,oBACtCl5C,KAAK+hT,wBAAwBn+S,KAIzCk+S,mBAAoB,WAChB,IAAIE,EAAyBhiT,KAAKiiT,yBAA2B,EACzDC,EAAqBliT,KAAKmjO,sBAAwBnjO,KAAKmjO,sBAAsBl3K,YAAc,EAC/FjsD,KAAKiiT,wBAA0BC,EAC/BliT,KAAKmiT,qBAAuBD,IAAuBF,GAEvDI,oBAAqB,WACjB,OAAOpiT,KAAKmiT,sBAEhBJ,wBAAyB,SAASn+S,GAC9B,IAAIwiF,EAAiBxiF,EAAEwiF,gBAAkB,GACrCkiG,EAAkBtoL,KAAK2xD,cAAc,UAErC00B,OAAQA,EACRC,WAAYA,GACZF,EACA5a,EAAqBxrE,KAAK2xD,cAAc,sBACxC0tP,EAAqB7zO,EAAmB8/L,sBACxC91N,EAAgBx1C,KAAK4Y,OAAO,iBAC5BknS,EAAiBx3H,EAAgBw2H,6BACrC,GAAIz4N,IAAWC,GAAc,eAAU9wC,GACnC8yI,EAAgBq3H,eAAenqQ,GAAe,GAAMn3B,MAAK,SAAUk3B,GAC3DA,EAAkB,GAClB+yI,EAAgBo2H,sBAAiB,EAAQt4N,WAG9C,GAAIA,EAAeptC,SAAWqmQ,EACjC,GAAIS,EAAgB,CAChB,IAAIC,EAAgB//S,KAAK65F,iBAAiBrkD,GACtC6sQ,EAAuBtC,GAAiB,EACxCxqQ,EAAkBv1C,KAAK4Y,OAAO,mBAC9B0pS,EAAsB/sQ,GAAmB,IAAMA,IAAoBwqQ,IAAkBsC,GACrFC,GACAh6H,EAAgBo2H,sBAAiB,EAAQt4N,QAEtCpmF,KAAK65F,iBAAiBrkD,GAAiB,GAC9Cx1C,KAAK4Y,OAAO,mBAAoB,QAE7BwtE,EAAeE,YACtBgiG,EAAgBm4H,yBAGxBR,kBAAmB,SAASnlT,GACxB,IAAI6I,EAAO3D,KACPkR,EAAI,IAAI,cAIZ,OAHAvN,EAAK4+S,uBAAuBznT,GAAKujB,MAAK,SAAUiqE,GAC5Cp3E,EAAEyP,QAAQ2nE,GAAe,EAAI92E,KAAKE,MAAM42E,EAAc3kF,EAAKuoD,aAAe,MAC1EprC,KAAK5P,EAAE2iB,QACJ3iB,EAAEuQ,WAEb8gS,uBAAwB,SAASznT,GAC7B,OAAIkF,KAAKqa,YAAY9C,QACVvX,KAAKwiT,sCAAsC1nT,GAE/CkF,KAAKyiT,mCAAmC3nT,IAEnD2nT,mCAAoC,SAAS3nT,EAAK4nT,EAAaC,GAC3D,IAAIh/S,EAAO3D,KACPouD,EAAW,IAAI,cACfh0C,EAAazW,EAAK0W,YACtB,GAAIxb,MAAMuY,QAAQtc,GACd,OAAOszD,EAASztC,SAAS,GAAGc,UAEhC,IAAIrjB,EAASuF,EAAKi/S,qBAAqB9nT,GAoBvC,OAnBAsf,EAAWqG,KAAK,CACZriB,OAAQuF,EAAKk/S,0BAA0BzkT,GACvCyiB,KAAM,EACND,KAAM,IACPvC,MAAK,SAAUja,GACVA,EAAKxK,OAAS,GACdwE,EAASuF,EAAKm/S,8BAA8BhoT,EAAKsJ,EAAK,GAAIu+S,GAC1DvoS,EAAWqG,KAAK,CACZriB,OAAQuF,EAAKk/S,0BAA0BzkT,EAAQskT,GAC/C7hS,KAAM,EACND,KAAM,EACN4sE,mBAAmB,IACpBnvE,MAAK,SAAUtf,EAAGosC,GACjBijB,EAASztC,QAAQwqB,EAAMugD,gBAG3Bt9B,EAASztC,SAAS,MAGnBytC,EAAS3sC,WAEpBohS,0BAA2B,SAASzkT,EAAQskT,GACxC,IAAI9wN,EAAiB5xF,KAAKijF,oBAC1B,OAAO,OAAczpE,eAAe,CAACpb,EAAQwzF,EAAgB8wN,KAEjEK,uBAAwB,SAASvrS,EAAU3V,EAAOmhT,GAC9C,IAAI/jT,EAMJ,OALI,IAAU4C,EACV5C,EAAS,CAACuY,EAAU,MAAKwrS,EAASlnS,MAAc,QACzC,IAASja,GAASmhT,EAASlnS,KAAOknS,EAASlnS,QAClD7c,EAAS,CAACuY,EAAU,KAAM3V,IAEvB5C,GAEX6jT,8BAA+B,SAAShoT,EAAKwrJ,EAASq8J,GAClD,IAAIh/S,EAAO3D,KACPoa,EAAazW,EAAK0W,YAClBjc,EAASuF,EAAKi/S,qBAAqB9nT,EAAK,KACxCgH,EAAO6B,EAAK25D,mBAAmB+jB,6BAA6BjnE,EAAWgG,mBAAmBmsC,WAAW,GACzG,GAAIo2P,EAAU,CACV,IAAIprS,EAAQ5T,EAAK25D,mBAAmBmkB,8BAA8BrnE,EAAWgG,mBAAmBmsC,WAC5Fh1C,IACAzV,EAAOA,EAAOyV,EAAMoQ,OAAO7lB,GAAQyV,GA0C3C,OAvCIzV,GACAA,EAAKkS,QAAQmzE,UAAUjmF,SAAQ,SAAU8hT,GACrC,IACIh/O,EADAxsD,EAAWwrS,EAASxrS,SAGpBwsD,EADA,oBAAsBxsD,EACbA,EAEA7T,EAAK25D,mBAAmBoK,aAAalwD,EAAU,YAE5D,IAAI3V,EAAQmiE,EAASA,EAAOsiF,GAAWA,EAAQ9uI,GAI/C,GAHApZ,EAAS,CACL,CAACoZ,EAAU,IAAK3V,GAAQ,MAAOzD,GAE/B,OAASyD,GAAS,eAAUA,GAAQ,CACpC,IAAIohT,EAAgBt/S,EAAKo/S,uBAAuBvrS,EAAU3V,EAAOmhT,GAC7DC,IACA7kT,EAAS,CAAC6kT,EAAe,KAAM7kT,QAEhC,CACH,IACI8kT,EADA5kE,EAAkB0kE,EAASlnS,KAAO,IAAM,IAExCknS,EAAStnS,QACTwnS,EAAa9+S,GACL,MAAQk6O,EACD0kE,EAAStnS,QAAQ7Z,EAAOmiE,EAAO5/D,KAAU,EAEzC4+S,EAAStnS,QAAQ7Z,EAAOmiE,EAAO5/D,MAAW,GAIzD8+S,EAAa,CAAC1rS,EAAU8mO,EAAiBz8O,GACpCmhT,EAASlnS,OACVonS,EAAa,CAACA,EAAY,KAAM,CAAC1rS,EAAU,IAAK,SAGxDpZ,EAAS,CAAC8kT,EAAY,KAAM9kT,OAIjCA,GAEXwkT,qBAAsB,SAAS9nT,EAAK4e,GAChC,IAAIypS,EAAgBnjT,KAAKqa,YAAYvf,MACjCsD,EAAS,GAIb,GAHKsb,IACDA,EAAY,KAEZ7a,MAAMuY,QAAQ+rS,GACd,IAAK,IAAI1nT,EAAI,EAAGA,EAAI0nT,EAAcvpT,SAAU6B,EAAG,CAC3C,IAAI2nT,EAAUtoT,EAAIqoT,EAAc1nT,IAC5B2nT,IACIhlT,EAAOxE,OAAS,GAChBwE,EAAO6E,KAAK,OAEhB7E,EAAO6E,KAAK,CAACkgT,EAAc1nT,GAAIie,EAAW0pS,UAIlDhlT,EAAS,CAAC+kT,EAAezpS,EAAW5e,GAExC,OAAOsD,GAEX8gT,kBAAmB,WACf,OAAOl/S,KAAKuK,OAAM,GAAM3Q,OAAS,IAGzCg7C,QAAS,CACLg3I,eAAgB,SAASpxH,GACrB,IAAIpM,EAAWpuD,KAAKC,SAASnB,MAAMkB,KAAME,WACrC8iF,EAAiBhjF,KAAK2xD,cAAc,QACpCk9H,EAAS7rG,EAAe2W,iBAAiBn/B,GAC7CpM,EAAS/vC,KAAK,KACV,IAAIm8C,EAAWwoB,EAAe6W,iBAAiBg1F,GAC3CgyC,EAAc79I,EAAeiV,kBAC5B,IAAMz9B,GAAaqmK,EAAYjnO,QAChCoG,KAAK2xD,cAAc,SAAS8jN,wBAMhD//M,MAAO,CACHt4C,SAAU,CACNq/C,WAAY,SAASv/C,GACjB,IAAIkgD,EAAOp9D,KAAKC,SAASnB,MAAMkB,KAAME,WAMrC,OALIF,KAAK4Y,OAAO,sBAAwBsE,GAChCld,KAAK2xD,cAAc,SAASwtP,aAAajiS,EAAIpiB,MAC7CsiE,EAAKjlD,SAASmmS,IAGflhP,GAEX8iC,cAAe,SAASpqF,GAEpB,GADA9V,KAAKC,SAASnB,MAAMkB,KAAME,WACtBF,KAAK4Y,OAAO,sBAAwB5Y,KAAK4Y,OAAO,cAAe,CAC/D,IAAIwI,EAAQphB,KAAKiY,gBAAgBmJ,QAC7BA,IAAUA,EAAMtmB,OAChBkF,KAAKiY,gBAAgB+6E,UAAU,QAAS,kBAIpDuK,QAAS,SAASh8C,GACV,qBAAuBA,EAAOsgB,WAC1B7hE,KAAK4Y,OAAO,sBACZ5Y,KAAK2xD,cAAc,SAASgvP,iBAAiBp/P,GAGjDvhD,KAAKC,SAASshD,IAGtBm5N,2BAA4B,SAASz0M,EAAerR,GAChD,IAAI4F,EAAWx6D,KAAK2xD,cAAc,sBAAsB49M,qBACpDryP,EAAMld,KAAKiY,gBAAgBggF,iBAAiBz9B,IAC5Cx6D,KAAK4Y,OAAO,sBAA0B,OAASsE,QAAO,IAAWA,GAAOA,EAAIC,SAG5End,KAAKC,SAASgmE,GAFdjmE,KAAKqjT,8BAA8BzuP,IAK3CyuP,8BAA+B,SAASzuP,GACpC,IAAIpf,EAAgBx1C,KAAK4Y,OAAO,iBAC5BwhC,EAAWp6C,KAAK4Y,OAAO,aAAe,EACtCoqE,EAAiBhjF,KAAKiY,gBACtBq/C,EAAoBt3D,KAAKs9D,mBACzB9C,EAAWwoB,EAAe6W,iBAAiBrkD,GAC3CjgC,EAAcvV,KAAK4Y,OAAO,sBAC1BwkD,EAAOp9D,KAAKsjT,6BAQhB,GAPK,eAAUtjT,KAAKujT,0BAChBvjT,KAAKujT,uBAAyB,KAC1BvjT,KAAKihT,0BAA0BjhT,KAAKsjT,8BACpCtjT,KAAK6zD,gBAAgBl7C,OAAO3Y,KAAKujT,0BAGzCnmP,EAAK1L,KAAK,WAAYtX,GAClBogB,GAAY,IAAM5F,IACdr/C,EAAc,IACdA,EAAc,GAElBilD,GAAYwoB,EAAe0U,oBAC3BniF,GAAe+hD,EAAkB+L,uBACjCrjE,KAAK2xD,cAAc,sBAAsBklN,uBAAuBr8M,EAAUjlD,GACtEvV,KAAK2xD,cAAc,SAASmtP,8BAA8B,CAC1D,IAAI1kS,EAAa4oE,EAAe5oE,aAC5BgsE,EAAiBhsE,GAAcA,EAAWgsE,kBAC1CA,GAAmBA,EAAeptC,QAAWgqC,EAAeo/N,wBAC5DpiT,KAAK6zD,gBAAgBl7C,OAAO3Y,KAAKujT,wBACjCvjT,KAAK6zD,gBAAgB/jD,IAAI9P,KAAKujT,2BAK9CD,2BAA4B,WACxB,IAAI9tQ,EAAgBx1C,KAAK4Y,OAAO,iBAC5B4hD,EAAWx6D,KAAKiY,gBAAgB4hF,iBAAiBrkD,GACrD,OAAO,eAAEx1C,KAAKwnE,cAAchN,GAAY,EAAIA,EAAW,KAE3D8lP,mBAAoB,SAASxlT,GACzB,IAAI0/D,EAAWx6D,KAAK2xD,cAAc,QAAQkoC,iBAAiB/+F,GACvDsiE,EAAO,eAAEp9D,KAAK6hG,OAAOrnC,IACzB,OAAOx6D,KAAKihT,0BAA0B7jP,IAE1C6jP,0BAA2B,SAAS7jP,GAChC,IAAI4/B,EAAah9F,KAAKk+F,gBACtB,GAAIlB,GAAc5/B,EAAKxjE,OAAQ,CAC3B,IAAIurD,EAAW63C,EAAWwmN,yBAAyBpmP,EAAM,YACzD,OAAOp9D,KAAKwgT,kBAAkBr7P,GAElC,OAAO,IAAK,eAAUxkC,WAE1B6/R,kBAAmB,SAASh/L,GACxB,IAAItwG,EAAI,IAAI,cACR8rF,EAAah9F,KAAKk+F,gBACtB,GAAIlB,EAAY,CACZ,IAAIymN,EAAmBzmN,EAAWwkB,YAC9B5iB,EAAgB,KAChB5B,EAAW/rC,IAAI,SAAU2tC,GACzB1tF,EAAEyP,WAEN,GAAI6gG,IAAciiM,EAMd,OALAzmN,EAAWlzF,GAAG,SAAU80F,GACxB5+F,KAAKiY,gBAAgBwgF,sBACrBuE,EAAWt7B,SAAS,CAChB9kD,IAAK4kG,IAEFtwG,EAAEuQ,UAGjB,OAAOvQ,EAAEyP,eC3vBzB,GAAmBzL,OAAOi+D,kBAAoB,iBAClD,EAAS/c,eAAe,QAAS,OAAA37D,EAAA,YAAO,EAAM,GAAI6mT,GAAa,CAC3D1rP,UAAW,CACPJ,YAAa,CACTpxD,KAAM,CACF+9H,gBAAiB,SAASnoD,EAAM0pO,GAC5B,GAAI1jT,KAAK4Y,OAAO,sBAAwB/Z,MAAMuY,QAAQ4iE,IAASh6E,KAAKy9F,cAAczjB,GAAO,CACrF,IAAIjkC,EAAqB/1C,KAAK2xD,cAAc,sBACtC+xP,GAAe3tQ,EAAmB01B,sBAAwBzrE,KAAK2jT,yBAAyB3pO,IAC1Fh6E,KAAK4Y,OAAO,gBAAiBohE,GAGrC,OAAOh6E,KAAKC,SAASnB,MAAMkB,KAAME,YAErCyjT,yBAA0B,SAAS3pO,GAC/B,IAAI1iB,EAAoBt3D,KAAK2xD,cAAc,WACvCnc,EAAgBx1C,KAAK4Y,OAAO,iBAC5B4hD,EAAWx6D,KAAK65F,iBAAiBrkD,GACjC2rQ,EAAa3mP,GAAY,GAAKx6D,KAAKi4F,iBAAiBz9B,GACpDsjE,EAASxmE,EAAkBmqB,8BAA6B,GAC5D,GAAI0/N,EACA,IAAK,IAAI1lT,EAAI,EAAGA,EAAIu+E,EAAKpgF,SAAU6B,EAAG,CAClC,IAAIuoE,EAAS,gBAAc85D,EAAOriI,IAAMqiI,EAAOriI,GAAG+b,UAClD,GAAIwsD,EAAOm9O,EAAW/8S,QAAU41E,EAAKv+E,GACjC,OAAO,EAInB,OAAO,GAEXmoT,cAAe,SAASv0P,EAAW42B,GAC/B,IAAI49N,EAAY,GACZt5S,EAAQ,CAAC8kD,GACb,MAAO9kD,GAASA,EAAM,IAAM07E,EAAY,CACpC,IAAIp8E,EAAOU,EAAM,QACb,IAAWV,EAAK/O,KAChB+oT,EAAU5gT,KAAK4G,EAAK/O,KAExByP,EAAQV,EAAKU,MACb07E,IAEJ,OAAO49N,GAEXC,mBAAoB,SAASngT,EAAMkgT,EAAW70R,GAC1C,IAAI9d,EAAI,IAAI,cASZ,OARA8d,IACArrB,EAAKqkI,UAAU67K,EAAU7vS,MAAM,EAAGgb,IAAQ3Q,MAAK,WACvC2Q,IAAU60R,EAAUjqT,OACpBsX,EAAEyP,UAEFhd,EAAKmgT,mBAAmBngT,EAAMkgT,EAAW70R,GAAO3Q,KAAKnN,EAAEyP,SAASG,KAAK5P,EAAE2iB,WAE3E/S,KAAK5P,EAAE2iB,QACJ3iB,EAAEuQ,WAEb+gS,sCAAuC,SAAS1nT,GAC5C,IAAI6I,EAAO3D,KACPoa,EAAazW,EAAK0W,YAClBjc,EAASuF,EAAKi/S,qBAAqB9nT,GACnCszD,EAAW,IAAI,cACf21P,EAAallT,MAAMuY,QAAQtc,GAC3Byc,EAAQ6C,EAAW7C,QACvB,OAAIwsS,EACO31P,EAASztC,SAAS,GAAGc,UAE3BrH,EAAW0sH,UAAUzB,sBAI1BjrH,EAAWqG,KAAK,CACZriB,OAAQuF,EAAKk/S,0BAA0BzkT,GACvCmZ,MAAOA,IACR8G,MAAK,SAAUja,GACd,IAAKA,GAAQ,IAAMA,EAAKxK,SAAW,eAAUwK,EAAK,GAAGtJ,OAAS,IAAMsJ,EAAK,GAAGtJ,IACxE,OAAOszD,EAASztC,SAAS,GAAGc,UAEhC,IAAIoiS,EAAYlgT,EAAKigT,cAAcx/S,EAAK,GAAImT,EAAM3d,QAClD+J,EAAKmgT,mBAAmBngT,EAAMkgT,EAAW,GAAGxlS,MAAK,WAC7C1a,EAAKqgT,iCAAiC51P,EAAUtzD,EAAK+oT,EAAWtsS,MAChEuJ,KAAKstC,EAASv6B,WAClB/S,KAAKstC,EAASv6B,QACXu6B,EAAS3sC,YAfZ9d,EAAK8+S,mCAAmC3nT,EAAK,MAAM,GAAMujB,KAAK+vC,EAASztC,SAASG,KAAKstC,EAASv6B,QACvFu6B,IAgBf41P,iCAAkC,SAAS51P,EAAUtzD,EAAK+oT,EAAWtsS,GACjE,IAOIkrH,EAPAigL,EAAcriL,GAAkBwjL,EAAW,CAC3CtsS,MAAOA,IAEP6C,EAAapa,KAAKqa,YAClB64E,EAAgBlzF,KAAK4Y,OAAO,kBAC5BymS,EAAqB,YAAcnsN,GAAiB,aAAeA,EACnEhnC,EAAW9xC,EAAW8xC,WAE1B9xC,EAAW0sH,UAAUzB,qBAAqB,CACtCxkH,KAAM,EACND,KAAM,KACP,SAAU6+G,EAAWiE,GAChB,eAAajE,EAAUzlD,KAAM6pO,KAC7BphL,EAAciB,MAGtB1jI,KAAKyiT,mCAAmC3nT,EAAK4nT,GAAarkS,MAAK,SAAU4lS,GACrE,IAAI7xS,EACA8xS,EACJ,GAAID,EAAa,EACb71P,EAASztC,SAAS,OADtB,CAIA,IAAIwjS,EAAoB1hL,EAAcv2E,GAAYA,EAClD95C,EAAQ+xS,EAAoBF,EAAaJ,EAAUjqT,OAE/CsqT,EADA7E,EACyB,EAEA7tS,KAAKE,MAAMU,GAAS85C,EAAW23P,EAAUjqT,SAAWiqT,EAAUjqT,OAE3FwY,EAAQqwH,EAAcwhL,EAAaC,EACnC91P,EAASztC,QAAQvO,OACjB0O,KAAKstC,EAASv6B,e,iBC7HlCuwR,GAAuB,kBACvB,GAA4B,yBAC5BC,GAAoB,YACpB,GAAY,WACZC,GAAgC,6BAChCC,GAAsB,CACtB9zP,KAAM,WACFzwD,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAKwkT,uBAETC,iBAAkB,WACd,IAAIrrQ,EAAcp5C,KAAK4Y,OAAO,eAC9B,SAAUwgC,KAAgBA,EAAYuD,iBAAmBvD,EAAYoT,qBAAuBpT,EAAY7hC,SAE5GitS,oBAAqB,WACjB,IAAIprQ,EAAcp5C,KAAK4Y,OAAO,eAC1B+jC,EAAkB38C,KAAKykT,mBACvBntP,EAAoBt3D,KAAKs9D,mBACzBonP,EAAwB/nQ,GAAmBvD,EAAYoU,cAC3D8J,GAAqBA,EAAkB4kB,iBAAiB,CACpDz9E,KAAM,OACNogB,QAAS,OACT2/B,cAAe,EACfpzC,UAAW,SACXwwC,SAAUwoQ,GACV/4S,MAAO,OACPF,aAAcnL,KAAK2kT,qBACnBpqQ,QAASmqQ,IAEbptP,EAAkBoQ,aAAa,YAAa,UAAWg9O,IAE3D1lN,eAAgB,WACZ,IAAI5lD,EAAcp5C,KAAK4Y,OAAO,eAC1B+jC,EAAkB38C,KAAKykT,mBACvB/2O,EAAW1tE,KAAKC,SAASnB,MAAMkB,KAAME,WACrCskR,EAAwBxkR,KAAKohO,uBAC7BwjF,EAAe,YACfC,EAAoB,iBACpBC,EAAsBtgC,EAAwBqgC,EAAoBD,EAClEG,EAAsBvgC,EAAwBogC,EAAeC,EAC7DG,EAA2B1lN,IAC3B,IAAI2lN,EACJ,QAAUA,EAAwBjlT,KAAK6kT,UAAuB,IAAWI,GAAiCA,EAAsBpuS,WAAW4F,IAAI,gBAAiB6iF,EAAS,OAAS,KAElL+6E,EAAc,8FACdj8K,EAAS4B,KAAK4Y,OAAO,mBAAqB,kBAAkB+O,OAAO0yJ,GAAe,qBAAqB1yJ,OAAO0yJ,GA+DlH,OA9DK19H,GAAmB38C,KAAK8kT,KAAyBp3O,EAAS9zE,SAC3DoG,KAAK8kT,GAAuB9kT,KAAKiZ,iBAAiBy0D,EAAU,QAAU,OAAAjzE,EAAA,WAAO,CACzEmX,UAAW5R,KAAK4R,UAChBmyC,gBAAiB,KACjB3lD,OAAQA,EACRsuD,aAAc52C,IACV,IAAIk8C,EAAQl8C,EAAQk8C,MAChBkzP,EAAiB,eAAEllT,KAAK0X,WAAW0E,SACvC,MAAO,CACHnJ,EAAG++C,EAAMmzP,MAAQD,EAAevoS,OAGxCyoS,wBAAyBxhT,IACrB,IAAIw1C,EAAYwT,aAAhB,CAGA,IAAIy4P,EAAe,eAAEzhT,EAAE0hT,aACnBC,EAAeF,EAAartP,SAAS,cAAc5zD,KAAKpE,KAAK4R,UAAU2gD,MAC3EvyD,KAAKwlT,+BAA+BD,KAExC34P,aAAc5sD,KAAKylT,2BACnB34P,OAAQ1T,EAAYoU,eAAiB,IAAI7lC,OAAOy8R,IAChDv3P,iBAAkB,YACnBzT,EAAa,CACZ+T,YAAavpD,IACT,IAAImlN,EAAqB28F,EACzB,QAAU38F,EAAsB/oN,KAAK2xD,cAAc,6BAA0B,IAAWo3J,GAA+BA,EAAoBskD,oBAC3I,IAAInwP,EAAMtZ,EAAEgO,UAAUqmF,iBAAiBr0F,EAAEm9E,WACzCn9E,EAAEitE,SAAW3zD,GAAOA,EAAI9Y,KACxB,IAAIs5D,EAAYxgD,GAAO,SAAWA,EAAIvC,QACtC/W,EAAE28C,QAAU5D,IAAoB+gB,EAChC,QAAUgoP,EAAwBtsQ,EAAY+T,mBAAgB,IAAWu4P,GAAiCA,EAAsBtvS,KAAKgjC,EAAax1C,IAEtJ+hT,YAAa,KACTX,GAAyB,IAE7BY,YAAa,KACTZ,GAAyB,IAE7B/3P,UAAWrpD,IACP,IAAIiiT,EACJb,GAAyB,GACzB,QAAUa,EAAwBzsQ,EAAY6T,iBAAc,IAAW44P,GAAiCA,EAAsBzvS,KAAKgjC,EAAax1C,IAEpJmpD,MAAOnpD,IACH,IAAIkiT,EACJd,GAAyB,GACzB,QAAUc,EAAqB1sQ,EAAY2T,aAAU,IAAW+4P,GAA8BA,EAAmB1vS,KAAKgjC,EAAax1C,IAEvIipD,iBAAkBzT,EAAYyT,iBAC9BjV,gBAAiBh0C,IACb,IAAImiT,EAAmB/lT,KAAK6kT,GACxBkB,IACI,cAAgBniT,EAAEhC,MAAQ,YAAcgC,EAAEhC,MAC1C5B,KAAK+kT,GAAqBnsS,OAAOhV,EAAEhC,KAAMgC,EAAE/B,YAK3D6rE,EAASnZ,YAAY,0BAA2BiwN,GAChD92M,EAASnZ,YAAY+vP,GAA+B3nQ,IAAoBvD,EAAYoU,gBAEjFkgB,GAEX,YAAY9pE,GACR5D,KAAKC,SAASnB,MAAMkB,KAAME,WACtB0D,GAAK,WAAaA,EAAEi+D,YAAcj+D,EAAEs1C,oBAAsB,OAAc75B,sBAAsBrf,OAC9F,eAAY,KACRA,KAAKgmT,qBAIjB,kBACI,IAAI5pS,EAASpc,KAAKiY,gBAAgBy/E,oBAClC,CAAC13F,KAAKimT,UAAWjmT,KAAKkmT,gBAAgBhlT,QAAQilT,IAC1C,OAASA,QAAY,IAAWA,GAAoBA,EAASvtS,OAAO,SAAUwD,GAC9E,OAAS+pS,QAAY,IAAWA,GAAoBA,EAAS7hP,YAGrE5Q,YAAa,WACT1zD,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAKgmT,mBAETI,yBAA0B,SAAStwS,GAC/B,IAAIuwS,EAAcrmT,KAAK4Y,SACnB4F,EAAUxe,KAAKo4D,aACfyK,EAAc,eAAE7iE,KAAKwnE,cAAc1xD,EAAQ0kD,WAC/C,MAAO,CACHpgD,WAAY,CAAC,CACTtrB,GAAI,EACJ0rI,SAAU,IAEd7gF,aAAa,EACbC,mBAAmB,EACnBN,UAAW,CACPwU,WAAW,EACXD,cAAe,SAEnB9U,MAAO,CACHwB,SAAS,GAEbu1C,eAAgB,KAChB57C,aAAcmyQ,EAAYnyQ,aAC1BF,gBAAiBqyQ,EAAYryQ,gBAC7B6F,gBAAiBwsQ,EAAYxsQ,gBAC7Br7B,QAASA,EAAQ1iB,IAAIye,IAAU,CAC3BlP,MAAOkP,EAAOlP,OAASkP,EAAOiiD,aAC9B19C,MAAOvE,EAAOuE,MACdw+B,cAAe/iC,EAAO+iC,iBAE1BjF,cAAez0C,IACX,IAAIwZ,EAAWxZ,EAAEgO,UAAUyL,QAAQ,YACnC,eAAEzZ,EAAE82D,YAAYwI,YAAYL,EAAYrmD,GAAGY,EAASgkN,uBAAyB,EAAI,GAAGruM,YAIhGyyR,+BAAgC,SAASD,GACrC,IAAIvoN,EAAa,OAASuoN,QAAgB,IAAWA,OAAe,EAASA,EAAarnN,gBAC1F,OAASlB,QAAc,IAAWA,GAAsBA,EAAWt7B,SAAS,CACxEzuD,EAAGjT,KAAKyhE,eAGhBgkP,yBAA0B,WACtB,OAAO3vS,IACH,IAAIkmF,EAAeh8F,KAAK4R,UAAUiF,WAC9ByvS,EAAqB,eAAE,SAC3B,eAASA,EAAoB,eAAStqN,IACtC,IAAIzxF,EAAQvK,KAAKiY,gBAAgB1N,QAC7B2S,EAAM3S,GAASA,EAAMuL,EAAQirE,WAC7BslO,EAAcrmT,KAAKomT,yBAAyBlpS,GAGhD,OAFAld,KAAKiZ,iBAAiBqtS,EAAoBtmT,KAAK4R,UAAU2gD,KAAM8zP,GAC/DC,EAAmBxuS,KAAK,0BAA0BkgD,SAAS,SAASrwC,OAAO3nB,KAAK4X,gBAAgB,IAAY,MAAMwjC,OAC3GkrQ,IAGf3B,mBAAoB,WAChB,MAAO,CAAC3rS,EAAWlD,KACf,GAAI,SAAWA,EAAQ6E,QAEnB,OADA,eAAE3B,GAAWb,SAAS,IACf,eAAE,UAAUA,SAASnY,KAAK4X,gBAAgBysS,KAEjD,OAAc7uS,aAAa,eAAEwD,MAIzCk4C,cAAe,SAAS7hB,GAChB,gBAAkBA,EAAKztC,OACvB5B,KAAKwkT,sBACLxkT,KAAKszD,aAAY,GAAM,GACvBjkB,EAAK+hB,SAAU,GAEnBpxD,KAAKC,SAASnB,MAAMkB,KAAME,aAGvBqmT,GAAoB,CAC3B5oT,eAAgB,WACZ,MAAO,CACHy7C,YAAa,CACToU,eAAe,EACfX,iBAAkB,WAClBlQ,iBAAiB,EACjB6P,qBAAqB,KAIjCoJ,UAAW,CACPF,MAAO,CACHt4C,SAAUmnS,MC9NtB,EAASnuP,eAAe,cAAemwP,ICHxB,UCAA,iB,kCCTf,oDAwBIC,EAAoB,CAAC,cAAe,SAAU,SAAU,OAAQ,MAAO,OAAQ,QAAS,UAAW,QACnGC,EAAiB,SAASA,EAAe5kT,GACzC,OAAQA,GACJ,IAAK,cACD,OAAO,EACX,IAAK,SACD,OAAO,IAAM4kT,EAAe,eAChC,IAAK,SACD,OAAO,GAAKA,EAAe,UAC/B,IAAK,OACD,OAAO,GAAKA,EAAe,UAC/B,IAAK,MACD,OAAO,GAAKA,EAAe,QAC/B,IAAK,OACD,OAAO,EAAIA,EAAe,OAC9B,IAAK,QACD,OAAO,GAAKA,EAAe,OAC/B,IAAK,UACD,OAAO,EAAIA,EAAe,SAC9B,IAAK,OACD,OAAO,IAAMA,EAAe,OAChC,QACI,OAAO,IAGfC,EAAmB,SAASn8J,EAAWC,EAASm8J,GAChD,IAAIl0K,EAAQ+X,EAAQzmJ,UAAYwmJ,EAAUxmJ,UACtC6iT,EAAmBH,EAAeE,IAAiB,EACvD,OAAOn1S,KAAKE,MAAM+gI,EAAQm0K,IAE1BC,EAAkB,SAASC,EAAMC,GACjC,IAAIxrS,EAAWwK,EAAoB+gS,GACnC,OAAQvrS,GACJ,IAAK,cACD,MAAO,SACX,IAAK,SACD,MAAO,SACX,IAAK,SACD,MAAO,OACX,IAAK,OACD,MAAO,MACX,IAAK,MACD,OAAOwrS,EAAY,OAAS,QAChC,IAAK,OACD,MAAO,QACX,IAAK,QACD,MAAO,UACX,IAAK,UACL,IAAK,OACD,MAAO,OACX,QACI,OAAO,IAGfC,EAAiC,SAASnlT,GAC1C,IAAIpG,EACAwrT,EACAvhS,EACA8gS,EAAoB,CAAC,cAAe,SAAU,SAAU,OAAQ,MAAO,QAAS,QAChFvnT,EAAS,GACb,IAAKxD,EAAI+qT,EAAkB5sT,OAAS,EAAG6B,GAAK,EAAGA,IAC3CiqB,EAAmB8gS,EAAkB/qT,GACrCwrT,EAAgBz1S,KAAKE,MAAM7P,EAAQ4kT,EAAe/gS,IAC9CuhS,EAAgB,IAChBhoT,EAAOymB,EAAmB,KAAOuhS,EACjCplT,GAASqlT,EAA8BxhS,EAAkBuhS,IAGjE,OAAOhoT,GAEPkoT,EAAqB,SAAS1hS,GAC9B,IAAIhjB,EAAe,EASnB,OARI,eAASgjB,IACT,eAAKA,GAAc,SAAU3qB,EAAK+G,GAC9BY,GAAgBykT,EAA8BpsT,EAAIkY,OAAO,EAAGlY,EAAIlB,OAAS,GAAIiI,MAGjF,eAAS4jB,KACThjB,EAAeykT,EAA8BzhS,EAAc,IAExDhjB,GAGX,SAASykT,EAA8BE,EAAUh1S,GAC7C,OAAOq0S,EAAeW,GAAYh1S,EAGtC,SAAS2T,EAAoBN,GACzB,IACIhqB,EADA4rT,GAAe,EAEnB,OAAI,eAAS5hS,GACFA,EAEP,eAASA,IACT,eAAKA,GAAc,SAAU3qB,EAAK+G,GAC9B,IAAKpG,EAAI,EAAGA,EAAI+qT,EAAkB5sT,OAAQ6B,IAClCoG,IAAU/G,IAAQ0rT,EAAkB/qT,GAAK,KAAOX,IAAQ0rT,EAAkB/qT,KAAO4rT,EAAc5rT,IAC/F4rT,EAAc5rT,MAInB+qT,EAAkBa,IAEtB,GAEX,IAAIC,EAA0B,CAC1B/kT,YAAa,cACbtF,OAAQ,WACRD,OAAQ,YACRD,KAAM,YACNN,IAAK,MACLupB,KAAM,MACNnpB,MAAO,QACPyF,QAAS,UACT9I,KAAM,QAGV,SAAS8rB,EAA4BG,GACjC,OAAO6hS,EAAwBvhS,EAAoBN,KAAkB,GAEzE,IAAI8hS,EAAa,SAAS1qT,GACtB,OAAO2U,KAAKE,MAAM7U,EAAQ,IAE1B2qT,EAAuB,SAAS3qT,GAChC,OAAO,EAAI0qT,EAAW1qT,IAG1B,SAAS4qT,EAA6BnuT,EAAMytB,EAAc2gS,EAAgBh/J,GACtEpvJ,EAAO,IAAIS,KAAKT,EAAKyK,WACrB,IACI4jT,EACA9qT,EAFA+qT,EAAU,IAAI7tT,KAAKT,EAAKyK,WAGxB2hB,EAAmBK,EAAoBgB,GAC3C,OAAQrB,GACJ,IAAK,SACDpsB,EAAO,IAAIS,KAAK,IAAMyX,KAAKE,MAAMk2S,EAAQ7jT,UAAY,MACrD,MACJ,IAAK,SACDzK,EAAO,IAAIS,KAAK,IAAMyX,KAAKE,MAAMk2S,EAAQ7jT,UAAY,MACrD,MACJ,IAAK,OACDzK,EAAO,IAAIS,KAAK,KAAOyX,KAAKE,MAAMk2S,EAAQ7jT,UAAY,OACtD,MACJ,IAAK,OACDzK,EAAK44E,SAAS,GAClB,IAAK,QACD54E,EAAKotB,QAAQ,GACjB,IAAK,MACDptB,EAAKovB,SAAS,EAAG,EAAG,EAAG,GACvB,MACJ,IAAK,OACDpvB,EAAOuuT,EAAiBvuT,EAAMovJ,GAAkB,GAChDpvJ,EAAKovB,SAAS,EAAG,EAAG,EAAG,GACvB,MACJ,IAAK,UACDi/R,EAAoBH,EAAqBluT,EAAKW,YAC9C4C,EAAQvD,EAAKW,WACbX,EAAKotB,QAAQ,GACbptB,EAAKovB,SAAS,EAAG,EAAG,EAAG,GACnB7rB,IAAU8qT,GACVruT,EAAK44E,SAASy1O,GAM1B,OAHID,GAAkB,SAAWhiS,GAAoB,WAAaA,GAAoB,WAAaA,GAC/FuhI,GAAe2gK,EAAStuT,GAErBA,EAGX,SAASwuT,EAASxuT,GACd,OAAOmuT,EAA6BnuT,EAAM,OAE9C,IAAIyuT,EAAc,SAASzuT,GACvB,IAAI2F,EAAS6oT,EAASxuT,GAEtB,OADA2F,EAAOynB,QAAQznB,EAAO/E,UAAY,GAC3B,IAAIH,KAAKkF,EAAO8E,UAAY,IAEnCshB,EAAsB,SAAS8oI,EAAOC,GACtC,IAAI3hB,EAAU,EACV7mH,EAAc,CACdpsB,KAAM20J,EAAM10J,gBAAkB20J,EAAM30J,cACpCoD,MAAOsxJ,EAAMl0J,aAAem0J,EAAMn0J,WAClCwC,IAAK0xJ,EAAMj0J,YAAck0J,EAAMl0J,UAC/B6C,KAAMoxJ,EAAMh0J,aAAei0J,EAAMj0J,WACjC6C,OAAQmxJ,EAAM/zJ,eAAiBg0J,EAAMh0J,aACrC6C,OAAQkxJ,EAAM9zJ,eAAiB+zJ,EAAM/zJ,aACrCkI,YAAa4rJ,EAAM7zJ,oBAAsB8zJ,EAAM9zJ,mBAYnD,OAVA,eAAKsrB,GAAa,SAAU9qB,EAAK+G,GACzBA,GACA4qI,OAGJ,IAAMA,GAAW,IAAMu7K,GAAuB75J,EAAOC,KACrDxoI,EAAY7oB,MAAO,EACnB0vI,KAEJ7mH,EAAYxT,MAAQq6H,EACb7mH,GAGX,SAASqiS,EAAgBpmT,EAAO0Z,EAAUmS,GACtC,IAAIzuB,EAAS,IAAIlF,KAAK8H,EAAMkC,WACxBmkT,EAAiB,eAAS3sS,GAAY4sS,EAAwB5sS,EAASzd,eAAiB,eAAUyd,GAAYyrS,EAA+BzrS,GAAYA,EA4B7J,OA3BI2sS,EAAeE,OACfnpT,EAAO1E,YAAY0E,EAAOxF,cAAgByuT,EAAeE,MAAQ16R,GAEjEw6R,EAAeG,UACfppT,EAAOizE,SAASjzE,EAAOhF,WAAa,EAAIiuT,EAAeG,SAAW36R,GAElEw6R,EAAeI,QACfrpT,EAAOizE,SAASjzE,EAAOhF,WAAaiuT,EAAeI,OAAS56R,GAE5Dw6R,EAAeK,OACftpT,EAAOynB,QAAQznB,EAAO/E,UAAY,EAAIguT,EAAeK,MAAQ76R,GAE7Dw6R,EAAetoB,MACf3gS,EAAOynB,QAAQznB,EAAO/E,UAAYguT,EAAetoB,KAAOlyQ,GAExDw6R,EAAe3oT,OACfN,EAAOupT,QAAQvpT,EAAO8E,UAAY,KAAOmkT,EAAe3oT,MAAQmuB,GAEhEw6R,EAAennT,SACf9B,EAAOupT,QAAQvpT,EAAO8E,UAAY,IAAMmkT,EAAennT,QAAU2sB,GAEjEw6R,EAAelnT,SACf/B,EAAOupT,QAAQvpT,EAAO8E,UAAY,IAAMmkT,EAAelnT,QAAU0sB,GAEjEw6R,EAAezlT,cACfxD,EAAOupT,QAAQvpT,EAAO8E,UAAYmkT,EAAezlT,aAAeirB,GAE7DzuB,EAEX,IAAIwpT,EAAc,SAAS5mT,EAAO0Z,EAAUmtS,GACxC,IAAIh7R,EAAMg7R,GAAc,EAAI,EAC5B,OAAO,eAAO7mT,GAASomT,EAAgBpmT,EAAO0Z,EAAUmS,GAAO,eAAO7rB,EAAQ0Z,EAAWmS,EAAKnS,IAE9FotS,EAAwB,SAAS9/S,EAAKC,EAAKyS,GAC3C,IACIqtS,EADAC,EAAY,GAEhBA,EAAU5lT,KAAK,eAAO4F,GAAO,IAAI9O,KAAK8O,EAAI9E,WAAa8E,GACvD+/S,EAAM//S,EACN,MAAO+/S,EAAM9/S,EACT8/S,EAAMH,EAAYG,EAAKrtS,GACvBstS,EAAU5lT,KAAK2lT,GAEnB,OAAOC,GAEP17J,EAAuB,SAAS27J,EAAUxvT,GAC1C,MAAI,UAAYwvT,EACLz+J,GAAuB/wJ,EAAKG,cAAeH,EAAKW,WAAY,GAEnE,SAAW6uT,EACJz+J,GAAuB/wJ,EAAKG,cAAe,EAAGH,EAAKY,WAE1D,WAAa4uT,EACNz+J,GAAuBD,EAAqB9wJ,GAAOA,EAAKW,WAAYX,EAAKY,WAEhF,YAAc4uT,EACPz+J,GAAuBS,EAAwBxxJ,GAAOA,EAAKW,WAAYX,EAAKY,gBADvF,GAIAmzJ,EAAsB,SAASy7J,EAAUxvT,GACzC,MAAI,UAAYwvT,EACLz+J,GAAuB/wJ,EAAKG,cAAeH,EAAKW,WAAY8uT,EAAgBzvT,IAEnF,SAAWwvT,EACJz+J,GAAuB/wJ,EAAKG,cAAe,GAAIH,EAAKY,WAE3D,WAAa4uT,EACNz+J,GAAuBD,EAAqB9wJ,GAAQ,EAAGA,EAAKW,WAAYX,EAAKY,WAEpF,YAAc4uT,EACPz+J,GAAuBS,EAAwBxxJ,GAAQ,GAAIA,EAAKW,WAAYX,EAAKY,gBAD5F,GAIAu3J,EAAyB,SAASq3J,EAAUxvT,GAC5C,IAAI0vT,EAAa3+J,GAAuB/wJ,EAAKG,cAAeH,EAAKW,WAAY,GAC7E,MAAI,UAAY6uT,EACLE,GAEXA,EAAW92O,SAAS,GAChB,SAAW42O,IAGX,WAAaA,GACbE,EAAWzuT,YAAY6vJ,EAAqB9wJ,IAE5C,YAAcwvT,GACdE,EAAWzuT,YAAYuwJ,EAAwBxxJ,KANxC0vT,IAUXt3J,EAAyB,SAASo3J,EAAUxvT,GAC5C,IAAI0vT,EAAa,IAAIjvT,KAAKT,GAE1B,OADA0vT,EAAWtiS,QAAQqiS,EAAgBzvT,IAC/B,UAAYwvT,EACLE,GAEXA,EAAW92O,SAAS,IACpB82O,EAAWtiS,QAAQqiS,EAAgBC,IAC/B,SAAWF,IAGX,WAAaA,GACbE,EAAWzuT,YAAY6vJ,EAAqB9wJ,GAAQ,GAEpD,YAAcwvT,GACdE,EAAWzuT,YAAYuwJ,EAAwBxxJ,GAAQ,KANhD0vT,IAWf,SAASD,EAAgBzvT,GACrB,IAAI0vT,EAAa3+J,GAAuB/wJ,EAAKG,cAAeH,EAAKW,WAAa,EAAG,GACjF,OAAO+uT,EAAW9uT,UAEtB,IAAIs4J,EAAY,SAASy2J,GACrB,OAAQA,GACJ,IAAK,QACD,MAAO,OACX,IAAK,OACD,MAAO,SACX,IAAK,SACD,MAAO,YAGfl3J,EAAc,SAASk3J,GACvB,OAAQA,GACJ,IAAK,UACD,MAAO,SACX,IAAK,SACD,MAAO,OACX,IAAK,OACD,MAAO,UAGf14J,EAAuB,SAAS04J,GAChC,IAAI5qP,EAAa,EAUjB,MATI,SAAW4qP,IACX5qP,EAAa,IAEb,WAAa4qP,IACb5qP,EAAa,KAEb,YAAc4qP,IACd5qP,EAAa,MAEVA,GAEP6qP,EAA+B,SAASD,GACxC,IAAI5qP,EAAa,EAOjB,MANI,WAAa4qP,IACb5qP,EAAa,IAEb,YAAc4qP,IACd5qP,EAAa,KAEVA,GAGX,SAAS8pP,EAAwBgB,GAC7B,IAAIlqT,EAAS,GACb,OAAQkqT,GACJ,IAAK,OACDlqT,EAAOmpT,MAAQ,EACf,MACJ,IAAK,QACDnpT,EAAOqpT,OAAS,EAChB,MACJ,IAAK,UACDrpT,EAAOqpT,OAAS,EAChB,MACJ,IAAK,OACDrpT,EAAOspT,MAAQ,EACf,MACJ,IAAK,MACDtpT,EAAO2gS,KAAO,EACd,MACJ,IAAK,OACD3gS,EAAOM,MAAQ,EACf,MACJ,IAAK,SACDN,EAAO8B,QAAU,EACjB,MACJ,IAAK,SACD9B,EAAO+B,QAAU,EACjB,MACJ,IAAK,cACD/B,EAAOwD,aAAe,EAE9B,OAAOxD,EAGX,SAASuqJ,EAAS2E,EAAOC,GACrB,OAAOvE,EAAiBsE,EAAOC,IAAUD,EAAMj0J,YAAck0J,EAAMl0J,UAGvE,SAAS2vJ,EAAiBsE,EAAOC,GAC7B,OAAOnE,EAASkE,EAAOC,IAAUD,EAAMl0J,aAAem0J,EAAMn0J,WAGhE,SAASgwJ,EAASkE,EAAOC,GACrB,OAAOD,GAASC,GAASD,EAAM10J,gBAAkB20J,EAAM30J,cAG3D,SAAS4+J,EAAoBlK,EAAOC,GAChC,OAAOD,GAASC,GAASD,EAAMh0J,aAAei0J,EAAMj0J,YAAcg0J,EAAM/zJ,eAAiBg0J,EAAMh0J,aAEnG,IAAI+vJ,EAAa,SAASgE,EAAOC,GAC7B,GAAK,eAAUD,IAAW,eAAUC,GAApC,CAGA,IAAIg7J,EAAmBj7J,EAAM10J,cAAgB00J,EAAM10J,cAAgB,GAC/D4vT,EAAmBj7J,EAAM30J,cAAgB20J,EAAM30J,cAAgB,GACnE,OAAO00J,GAASC,GAASg7J,IAAqBC,IAE9Cx+J,EAAc,SAASsD,EAAOC,GAC9B,GAAK,eAAUD,IAAW,eAAUC,GAApC,CAGA,IAAIk7J,EAAoBn7J,EAAM10J,cAAgB00J,EAAM10J,cAAgB,IAChE8vT,EAAoBn7J,EAAM30J,cAAgB20J,EAAM30J,cAAgB,IACpE,OAAO00J,GAASC,GAASk7J,IAAsBC,IAGnD,SAASz+J,EAAwBxxJ,GAC7B,OAAOA,GAAQA,EAAKG,cAAgBH,EAAKG,cAAgB,IAG7D,SAAS2wJ,EAAqB9wJ,GAC1B,OAAOA,GAAQA,EAAKG,cAAgBH,EAAKG,cAAgB,GAE7D,IAAIstJ,EAAqB,WACrB,MAAO,cAEP4C,EAAoB,SAASrwJ,GAC7B,GAAK,eAAUA,GAGf,OAAO+wJ,GAAuB/wJ,EAAKG,cAAeH,EAAKW,WAAY,IAEnE8vJ,EAAmB,SAASzwJ,GAC5B,GAAK,eAAUA,GAGf,OAAO+wJ,GAAuB/wJ,EAAKG,cAAeH,EAAKW,WAAa,EAAG,IAG3E,SAAS4tT,EAAiBvuT,EAAMovJ,GAC5B,IAAIjW,GAASn5I,EAAKqmJ,SAAW+I,EAAiB,GAAK,EAC/CzpJ,EAAS,IAAIlF,KAAKT,GAEtB,OADA2F,EAAOynB,QAAQptB,EAAKY,UAAYu4I,GACzBxzI,EAEX,IAAIuqT,EAAsB,SAASlwT,EAAM2H,GACrC,IAAIwoT,EAAmBvoK,GAAUwlK,iBAAiBptT,EAAM2H,EAAa,OACjE+nT,EAAa,IAAIjvT,KAAKT,GAI1B,OAHImwT,GAAoB,IACpBT,EAAa,IAAIjvT,KAAKivT,EAAWtiS,QAAQsiS,EAAW9uT,UAAY,KAE7D8uT,GAEPv/J,EAAc,SAASnwJ,EAAMuP,EAAKC,EAAKzP,GAMvC,MALI,SAAWA,IACXwP,EAAMA,GAAOq4I,GAAUumK,6BAA6B5+S,EAAK,OACzDC,EAAMA,GAAOo4I,GAAUumK,6BAA6B3+S,EAAK,OACzDxP,EAAOA,GAAQ4nJ,GAAUumK,6BAA6BnuT,EAAM,QAEzD21J,EAAc31J,EAAMuP,EAAKC,KAASxP,GAEzCowT,EAAmB,SAAS5zS,GAC5B,IACI6zS,SAAUA,EACVC,SAAUA,EACVC,UAAWA,EACXC,UAAWA,GACXh0S,EACJ,OAAO6zS,GAAYE,GAAaA,GAAaD,GAAYD,EAAWE,GAAaF,EAAWG,GAAaH,EAAWG,GAAaF,EAAWE,GAE5IC,EAAsB,SAAS1uT,GAC/B,IAAIkE,EAAQiS,KAAKE,MAAMrW,GACnB0F,EAAU1F,EAAS,EAAI,GAC3B,MAAO,CACHkE,MAAOA,EACPwB,QAASA,IAGbipT,EAA0B,SAAS1wT,EAAM2wT,GACzC,IAAIC,EAAYlqT,KAAK+pT,oBAAoBE,GACrChrT,EAAS,IAAIlF,KAAKT,GAItB,OAHIA,EAAKa,aAAe+vT,EAAU3qT,OAASjG,EAAKc,aAAe8vT,EAAUnpT,SAAWzH,EAAKa,WAAa+vT,EAAU3qT,QAC5GN,EAAOypB,SAASwhS,EAAU3qT,MAAO2qT,EAAUnpT,QAAS,EAAG,GAEpD9B,GAGX,SAASgwJ,EAAc31J,EAAMuP,EAAKC,GAC9B,IAAIwmJ,EAAiBh2J,EACrB,OAAK,eAAUA,IAGX,eAAUuP,IAAQvP,EAAOuP,IACzBymJ,EAAiBzmJ,GAEjB,eAAUC,IAAQxP,EAAOwP,IACzBwmJ,EAAiBxmJ,GAEdwmJ,GARIh2J,EAWf,SAAS2tJ,GAAe2gK,EAAS31O,GAC7B,GAAK,eAAU21O,GAAf,CAGA,IAAI7jS,EAAOkuD,EAAQ93E,WAAaytT,EAAQztT,WACxC,GAAI,IAAM4pB,EAAV,CAGA,IAAIhoB,EAAO,IAAMgoB,IAAS,KAAOA,GAAQ,EAAI,EACzComS,EAAQ,IAAIpwT,KAAKk4E,EAAQluE,UAAY,KAAOhI,IAC5CA,EAAO,GAAKouT,EAAMjwT,YAAc+3E,EAAQ/3E,YACxC+3E,EAAQu2O,QAAQ2B,EAAMpmT,aAG9B,IAAIqmT,GAAc,SAAS9wT,GACvB,IAAI2F,EAAS,IAAIlF,KAAKT,EAAKyK,WAG3B,OAFA9E,EAAOypB,SAASzpB,EAAO9E,WAAa,GACpC8E,EAAOizJ,WAAW,GACXjzJ,GAGX,SAAS+oT,GAAuBn/S,EAAKC,GACjC,OAAO,IAAMA,EAAIqK,oBAAsBtK,EAAIsK,qBAAuB,IAEtE,IAAIk3S,GAAW,SAAS/wT,GACpB,OAAO,IAAIS,KAAKT,IAEhBgxT,GAAqB,SAAS//J,EAAWC,EAASpZ,GAClD,IAAInyI,EAAS,GACTgC,EAAc,IAAIlH,KAAKwwJ,EAAUxmJ,WACrC,MAAO9C,EAAcupJ,EACjBvrJ,EAAOgE,KAAK,IAAIlJ,KAAKkH,EAAY8C,YACjC9C,EAAcjB,KAAKyoT,YAAYxnT,EAAamwI,GAEhD,OAAOnyI,GAEPorJ,GAAyB,SAAS7wJ,GAClC,IAAIyF,EAAS,IAAIlF,QAAQmG,WAEzB,OADAjB,EAAO1E,YAAYf,GACZyF,GAEPiiJ,GAAY,CACZslK,kBAAmBA,EACnBQ,+BAAgCA,EAChCG,mBAAoBA,EACpBN,gBAAiBA,EACjBK,8BAA+BA,EAC/BnhS,oBAAqBA,EACrBT,4BAA6BA,EAC7BD,oBAAqBA,EACrBoiS,6BAA8BA,EAC9BK,SAAUA,EACVC,YAAaA,EACbiC,wBAAyBA,EACzBD,oBAAqBA,EACrB9B,gBAAiBA,EACjBQ,YAAaA,EACbE,sBAAuBA,EACvBR,wBAAyBA,EACzB9vJ,oBAAqBA,EACrB7O,SAAUA,EACVK,iBAAkBA,EAClB0gK,UAAW1gK,EACXI,SAAUA,EACVE,WAAYA,EACZU,YAAaA,EACb0F,qBAAsBA,EACtB24J,6BAA8BA,EAC9B9+J,qBAAsBA,EACtBU,wBAAyBA,EACzB/D,mBAAoBA,EACpBoG,qBAAsBA,EACtBE,oBAAqBA,EACrB0E,YAAaA,EACbS,UAAWA,EACXu2J,gBAAiBA,EACjBh/J,iBAAkBA,EAClBJ,kBAAmBA,EACnBk+J,iBAAkBA,EAClB2B,oBAAqBA,EACrBjC,WAAYA,EACZC,qBAAsBA,EACtB/9J,YAAaA,EACbigK,iBAAkBA,EAClBU,YAAaA,GACbn7J,cAAeA,EACfwC,uBAAwBA,EACxBC,uBAAwBA,EACxBzK,eAAgBA,GAChB+gK,uBAAwBA,GACxBqC,SAAUA,GACV3D,iBAAkBA,EAClB4D,mBAAoBA,GACpBjgK,uBAAwBA,GAE5B,SAAqB,SAAS5wC,EAAM00C,EAAOC,GACvC,OAAOlN,GAAU,eAAS,QAAUznC,IAAO00C,EAAOC,KAEvC","file":"js/chunk-27da8496.b6eb9284.js","sourcesContent":["/**\r\n * DevExtreme (esm/localization/language_codes.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport localizationCoreUtils from \"./core\";\r\nvar LANGUAGE_CODES = {\r\n ar: 1,\r\n bg: 2,\r\n ca: 3,\r\n \"zh-Hans\": 4,\r\n cs: 5,\r\n da: 6,\r\n de: 7,\r\n el: 8,\r\n en: 9,\r\n es: 10,\r\n fi: 11,\r\n fr: 12,\r\n he: 13,\r\n hu: 14,\r\n is: 15,\r\n it: 16,\r\n ja: 17,\r\n ko: 18,\r\n nl: 19,\r\n no: 20,\r\n pl: 21,\r\n pt: 22,\r\n rm: 23,\r\n ro: 24,\r\n ru: 25,\r\n hr: 26,\r\n sk: 27,\r\n sq: 28,\r\n sv: 29,\r\n th: 30,\r\n tr: 31,\r\n ur: 32,\r\n id: 33,\r\n uk: 34,\r\n be: 35,\r\n sl: 36,\r\n et: 37,\r\n lv: 38,\r\n lt: 39,\r\n tg: 40,\r\n fa: 41,\r\n vi: 42,\r\n hy: 43,\r\n az: 44,\r\n eu: 45,\r\n hsb: 46,\r\n mk: 47,\r\n tn: 50,\r\n xh: 52,\r\n zu: 53,\r\n af: 54,\r\n ka: 55,\r\n fo: 56,\r\n hi: 57,\r\n mt: 58,\r\n se: 59,\r\n ga: 60,\r\n ms: 62,\r\n kk: 63,\r\n ky: 64,\r\n sw: 65,\r\n tk: 66,\r\n uz: 67,\r\n tt: 68,\r\n bn: 69,\r\n pa: 70,\r\n gu: 71,\r\n or: 72,\r\n ta: 73,\r\n te: 74,\r\n kn: 75,\r\n ml: 76,\r\n as: 77,\r\n mr: 78,\r\n sa: 79,\r\n mn: 80,\r\n bo: 81,\r\n cy: 82,\r\n km: 83,\r\n lo: 84,\r\n gl: 86,\r\n kok: 87,\r\n syr: 90,\r\n si: 91,\r\n iu: 93,\r\n am: 94,\r\n tzm: 95,\r\n ne: 97,\r\n fy: 98,\r\n ps: 99,\r\n fil: 100,\r\n dv: 101,\r\n ha: 104,\r\n yo: 106,\r\n quz: 107,\r\n nso: 108,\r\n ba: 109,\r\n lb: 110,\r\n kl: 111,\r\n ig: 112,\r\n ii: 120,\r\n arn: 122,\r\n moh: 124,\r\n br: 126,\r\n ug: 128,\r\n mi: 129,\r\n oc: 130,\r\n co: 131,\r\n gsw: 132,\r\n sah: 133,\r\n qut: 134,\r\n rw: 135,\r\n wo: 136,\r\n prs: 140,\r\n gd: 145,\r\n \"ar-SA\": 1025,\r\n \"bg-BG\": 1026,\r\n \"ca-ES\": 1027,\r\n \"zh-TW\": 1028,\r\n \"cs-CZ\": 1029,\r\n \"da-DK\": 1030,\r\n \"de-DE\": 1031,\r\n \"el-GR\": 1032,\r\n \"en-US\": 1033,\r\n \"fi-FI\": 1035,\r\n \"fr-FR\": 1036,\r\n \"he-IL\": 1037,\r\n \"hu-HU\": 1038,\r\n \"is-IS\": 1039,\r\n \"it-IT\": 1040,\r\n \"ja-JP\": 1041,\r\n \"ko-KR\": 1042,\r\n \"nl-NL\": 1043,\r\n \"nb-NO\": 1044,\r\n \"pl-PL\": 1045,\r\n \"pt-BR\": 1046,\r\n \"rm-CH\": 1047,\r\n \"ro-RO\": 1048,\r\n \"ru-RU\": 1049,\r\n \"hr-HR\": 1050,\r\n \"sk-SK\": 1051,\r\n \"sq-AL\": 1052,\r\n \"sv-SE\": 1053,\r\n \"th-TH\": 1054,\r\n \"tr-TR\": 1055,\r\n \"ur-PK\": 1056,\r\n \"id-ID\": 1057,\r\n \"uk-UA\": 1058,\r\n \"be-BY\": 1059,\r\n \"sl-SI\": 1060,\r\n \"et-EE\": 1061,\r\n \"lv-LV\": 1062,\r\n \"lt-LT\": 1063,\r\n \"tg-Cyrl-TJ\": 1064,\r\n \"fa-IR\": 1065,\r\n \"vi-VN\": 1066,\r\n \"hy-AM\": 1067,\r\n \"az-Latn-AZ\": 1068,\r\n \"eu-ES\": 1069,\r\n \"hsb-DE\": 1070,\r\n \"mk-MK\": 1071,\r\n \"tn-ZA\": 1074,\r\n \"xh-ZA\": 1076,\r\n \"zu-ZA\": 1077,\r\n \"af-ZA\": 1078,\r\n \"ka-GE\": 1079,\r\n \"fo-FO\": 1080,\r\n \"hi-IN\": 1081,\r\n \"mt-MT\": 1082,\r\n \"se-NO\": 1083,\r\n \"ms-MY\": 1086,\r\n \"kk-KZ\": 1087,\r\n \"ky-KG\": 1088,\r\n \"sw-KE\": 1089,\r\n \"tk-TM\": 1090,\r\n \"uz-Latn-UZ\": 1091,\r\n \"tt-RU\": 1092,\r\n \"bn-IN\": 1093,\r\n \"pa-IN\": 1094,\r\n \"gu-IN\": 1095,\r\n \"or-IN\": 1096,\r\n \"ta-IN\": 1097,\r\n \"te-IN\": 1098,\r\n \"kn-IN\": 1099,\r\n \"ml-IN\": 1100,\r\n \"as-IN\": 1101,\r\n \"mr-IN\": 1102,\r\n \"sa-IN\": 1103,\r\n \"mn-MN\": 1104,\r\n \"bo-CN\": 1105,\r\n \"cy-GB\": 1106,\r\n \"km-KH\": 1107,\r\n \"lo-LA\": 1108,\r\n \"gl-ES\": 1110,\r\n \"kok-IN\": 1111,\r\n \"syr-SY\": 1114,\r\n \"si-LK\": 1115,\r\n \"iu-Cans-CA\": 1117,\r\n \"am-ET\": 1118,\r\n \"ne-NP\": 1121,\r\n \"fy-NL\": 1122,\r\n \"ps-AF\": 1123,\r\n \"fil-PH\": 1124,\r\n \"dv-MV\": 1125,\r\n \"ha-Latn-NG\": 1128,\r\n \"yo-NG\": 1130,\r\n \"quz-BO\": 1131,\r\n \"nso-ZA\": 1132,\r\n \"ba-RU\": 1133,\r\n \"lb-LU\": 1134,\r\n \"kl-GL\": 1135,\r\n \"ig-NG\": 1136,\r\n \"ii-CN\": 1144,\r\n \"arn-CL\": 1146,\r\n \"moh-CA\": 1148,\r\n \"br-FR\": 1150,\r\n \"ug-CN\": 1152,\r\n \"mi-NZ\": 1153,\r\n \"oc-FR\": 1154,\r\n \"co-FR\": 1155,\r\n \"gsw-FR\": 1156,\r\n \"sah-RU\": 1157,\r\n \"qut-GT\": 1158,\r\n \"rw-RW\": 1159,\r\n \"wo-SN\": 1160,\r\n \"prs-AF\": 1164,\r\n \"gd-GB\": 1169,\r\n \"ar-IQ\": 2049,\r\n \"zh-CN\": 2052,\r\n \"de-CH\": 2055,\r\n \"en-GB\": 2057,\r\n \"es-MX\": 2058,\r\n \"fr-BE\": 2060,\r\n \"it-CH\": 2064,\r\n \"nl-BE\": 2067,\r\n \"nn-NO\": 2068,\r\n \"pt-PT\": 2070,\r\n \"sr-Latn-CS\": 2074,\r\n \"sv-FI\": 2077,\r\n \"az-Cyrl-AZ\": 2092,\r\n \"dsb-DE\": 2094,\r\n \"se-SE\": 2107,\r\n \"ga-IE\": 2108,\r\n \"ms-BN\": 2110,\r\n \"uz-Cyrl-UZ\": 2115,\r\n \"bn-BD\": 2117,\r\n \"mn-Mong-CN\": 2128,\r\n \"iu-Latn-CA\": 2141,\r\n \"tzm-Latn-DZ\": 2143,\r\n \"quz-EC\": 2155,\r\n \"ar-EG\": 3073,\r\n \"zh-HK\": 3076,\r\n \"de-AT\": 3079,\r\n \"en-AU\": 3081,\r\n \"es-ES\": 3082,\r\n \"fr-CA\": 3084,\r\n \"sr-Cyrl-CS\": 3098,\r\n \"se-FI\": 3131,\r\n \"quz-PE\": 3179,\r\n \"ar-LY\": 4097,\r\n \"zh-SG\": 4100,\r\n \"de-LU\": 4103,\r\n \"en-CA\": 4105,\r\n \"es-GT\": 4106,\r\n \"fr-CH\": 4108,\r\n \"hr-BA\": 4122,\r\n \"smj-NO\": 4155,\r\n \"ar-DZ\": 5121,\r\n \"zh-MO\": 5124,\r\n \"de-LI\": 5127,\r\n \"en-NZ\": 5129,\r\n \"es-CR\": 5130,\r\n \"fr-LU\": 5132,\r\n \"bs-Latn-BA\": 5146,\r\n \"smj-SE\": 5179,\r\n \"ar-MA\": 6145,\r\n \"en-IE\": 6153,\r\n \"es-PA\": 6154,\r\n \"fr-MC\": 6156,\r\n \"sr-Latn-BA\": 6170,\r\n \"sma-NO\": 6203,\r\n \"ar-TN\": 7169,\r\n \"en-ZA\": 7177,\r\n \"es-DO\": 7178,\r\n \"sr-Cyrl-BA\": 7194,\r\n \"sma-SE\": 7227,\r\n \"ar-OM\": 8193,\r\n \"en-JM\": 8201,\r\n \"es-VE\": 8202,\r\n \"bs-Cyrl-BA\": 8218,\r\n \"sms-FI\": 8251,\r\n \"ar-YE\": 9217,\r\n \"en-029\": 9225,\r\n \"es-CO\": 9226,\r\n \"sr-Latn-RS\": 9242,\r\n \"smn-FI\": 9275,\r\n \"ar-SY\": 10241,\r\n \"en-BZ\": 10249,\r\n \"es-PE\": 10250,\r\n \"sr-Cyrl-RS\": 10266,\r\n \"ar-JO\": 11265,\r\n \"en-TT\": 11273,\r\n \"es-AR\": 11274,\r\n \"sr-Latn-ME\": 11290,\r\n \"ar-LB\": 12289,\r\n \"en-ZW\": 12297,\r\n \"es-EC\": 12298,\r\n \"sr-Cyrl-ME\": 12314,\r\n \"ar-KW\": 13313,\r\n \"en-PH\": 13321,\r\n \"es-CL\": 13322,\r\n \"ar-AE\": 14337,\r\n \"es-UY\": 14346,\r\n \"ar-BH\": 15361,\r\n \"es-PY\": 15370,\r\n \"ar-QA\": 16385,\r\n \"en-IN\": 16393,\r\n \"es-BO\": 16394,\r\n \"en-MY\": 17417,\r\n \"es-SV\": 17418,\r\n \"en-SG\": 18441,\r\n \"es-HN\": 18442,\r\n \"es-NI\": 19466,\r\n \"es-PR\": 20490,\r\n \"es-US\": 21514,\r\n \"bs-Cyrl\": 25626,\r\n \"bs-Latn\": 26650,\r\n \"sr-Cyrl\": 27674,\r\n \"sr-Latn\": 28698,\r\n smn: 28731,\r\n \"az-Cyrl\": 29740,\r\n sms: 29755,\r\n zh: 30724,\r\n nn: 30740,\r\n bs: 30746,\r\n \"az-Latn\": 30764,\r\n sma: 30779,\r\n \"uz-Cyrl\": 30787,\r\n \"mn-Cyrl\": 30800,\r\n \"iu-Cans\": 30813,\r\n \"zh-Hant\": 31748,\r\n nb: 31764,\r\n sr: 31770,\r\n \"tg-Cyrl\": 31784,\r\n dsb: 31790,\r\n smj: 31803,\r\n \"uz-Latn\": 31811,\r\n \"mn-Mong\": 31824,\r\n \"iu-Latn\": 31837,\r\n \"tzm-Latn\": 31839,\r\n \"ha-Latn\": 31848\r\n};\r\nexport function getLanguageId() {\r\n return LANGUAGE_CODES[localizationCoreUtils.locale()]\r\n}\r\n","/**\r\n * DevExtreme (esm/localization/cldr-data/first_day_of_week_data.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport default {\r\n \"af-NA\": 1,\r\n agq: 1,\r\n ak: 1,\r\n ar: 6,\r\n \"ar-EH\": 1,\r\n \"ar-ER\": 1,\r\n \"ar-KM\": 1,\r\n \"ar-LB\": 1,\r\n \"ar-MA\": 1,\r\n \"ar-MR\": 1,\r\n \"ar-PS\": 1,\r\n \"ar-SO\": 1,\r\n \"ar-SS\": 1,\r\n \"ar-TD\": 1,\r\n \"ar-TN\": 1,\r\n asa: 1,\r\n ast: 1,\r\n az: 1,\r\n \"az-Cyrl\": 1,\r\n bas: 1,\r\n be: 1,\r\n bem: 1,\r\n bez: 1,\r\n bg: 1,\r\n bm: 1,\r\n br: 1,\r\n bs: 1,\r\n \"bs-Cyrl\": 1,\r\n ca: 1,\r\n ce: 1,\r\n cgg: 1,\r\n ckb: 6,\r\n cs: 1,\r\n cy: 1,\r\n da: 1,\r\n de: 1,\r\n dje: 1,\r\n dsb: 1,\r\n dua: 1,\r\n dyo: 1,\r\n ee: 1,\r\n el: 1,\r\n \"en-001\": 1,\r\n \"en-AE\": 6,\r\n \"en-BI\": 1,\r\n \"en-MP\": 1,\r\n \"en-MV\": 5,\r\n \"en-SD\": 6,\r\n eo: 1,\r\n es: 1,\r\n et: 1,\r\n eu: 1,\r\n ewo: 1,\r\n fa: 6,\r\n ff: 1,\r\n \"ff-Adlm\": 1,\r\n fi: 1,\r\n fo: 1,\r\n fr: 1,\r\n \"fr-DJ\": 6,\r\n \"fr-DZ\": 6,\r\n \"fr-SY\": 6,\r\n fur: 1,\r\n fy: 1,\r\n ga: 1,\r\n gd: 1,\r\n gl: 1,\r\n gsw: 1,\r\n gv: 1,\r\n ha: 1,\r\n hr: 1,\r\n hsb: 1,\r\n hu: 1,\r\n hy: 1,\r\n ia: 1,\r\n ig: 1,\r\n is: 1,\r\n it: 1,\r\n jgo: 1,\r\n jmc: 1,\r\n ka: 1,\r\n kab: 6,\r\n kde: 1,\r\n kea: 1,\r\n khq: 1,\r\n kk: 1,\r\n kkj: 1,\r\n kl: 1,\r\n \"ko-KP\": 1,\r\n ksb: 1,\r\n ksf: 1,\r\n ksh: 1,\r\n ku: 1,\r\n kw: 1,\r\n ky: 1,\r\n lag: 1,\r\n lb: 1,\r\n lg: 1,\r\n ln: 1,\r\n lrc: 6,\r\n lt: 1,\r\n lu: 1,\r\n lv: 1,\r\n \"mas-TZ\": 1,\r\n mfe: 1,\r\n mg: 1,\r\n mgo: 1,\r\n mi: 1,\r\n mk: 1,\r\n mn: 1,\r\n ms: 1,\r\n mua: 1,\r\n mzn: 6,\r\n naq: 1,\r\n nds: 1,\r\n nl: 1,\r\n nmg: 1,\r\n nnh: 1,\r\n no: 1,\r\n nus: 1,\r\n nyn: 1,\r\n os: 1,\r\n pcm: 1,\r\n pl: 1,\r\n ps: 6,\r\n \"pt-AO\": 1,\r\n \"pt-CH\": 1,\r\n \"pt-CV\": 1,\r\n \"pt-GQ\": 1,\r\n \"pt-GW\": 1,\r\n \"pt-LU\": 1,\r\n \"pt-ST\": 1,\r\n \"pt-TL\": 1,\r\n \"qu-BO\": 1,\r\n \"qu-EC\": 1,\r\n rm: 1,\r\n rn: 1,\r\n ro: 1,\r\n rof: 1,\r\n ru: 1,\r\n rw: 1,\r\n rwk: 1,\r\n sah: 1,\r\n sbp: 1,\r\n sc: 1,\r\n se: 1,\r\n ses: 1,\r\n sg: 1,\r\n shi: 1,\r\n \"shi-Latn\": 1,\r\n si: 1,\r\n sk: 1,\r\n sl: 1,\r\n smn: 1,\r\n so: 1,\r\n \"so-DJ\": 6,\r\n sq: 1,\r\n sr: 1,\r\n \"sr-Latn\": 1,\r\n sv: 1,\r\n sw: 1,\r\n \"ta-LK\": 1,\r\n \"ta-MY\": 1,\r\n teo: 1,\r\n tg: 1,\r\n \"ti-ER\": 1,\r\n tk: 1,\r\n to: 1,\r\n tr: 1,\r\n tt: 1,\r\n twq: 1,\r\n tzm: 1,\r\n uk: 1,\r\n uz: 1,\r\n \"uz-Arab\": 6,\r\n \"uz-Cyrl\": 1,\r\n vai: 1,\r\n \"vai-Latn\": 1,\r\n vi: 1,\r\n vun: 1,\r\n wae: 1,\r\n wo: 1,\r\n xog: 1,\r\n yav: 1,\r\n yi: 1,\r\n yo: 1,\r\n zgh: 1\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/intl/date.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport localizationCoreUtils from \"../core\";\r\nvar SYMBOLS_TO_REMOVE_REGEX = /[\\u200E\\u200F]/g;\r\nvar getIntlFormatter = format => date => {\r\n if (!format.timeZoneName) {\r\n var year = date.getFullYear();\r\n var recognizableAsTwentyCentury = String(year).length < 3;\r\n var temporaryYearValue = recognizableAsTwentyCentury ? year + 400 : year;\r\n var utcDate = new Date(Date.UTC(temporaryYearValue, date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\r\n if (recognizableAsTwentyCentury) {\r\n utcDate.setFullYear(year)\r\n }\r\n var utcFormat = extend({\r\n timeZone: \"UTC\"\r\n }, format);\r\n return formatDateTime(utcDate, utcFormat)\r\n }\r\n return formatDateTime(date, format)\r\n};\r\nvar formattersCache = {};\r\nvar getFormatter = format => {\r\n var key = localizationCoreUtils.locale() + \"/\" + JSON.stringify(format);\r\n if (!formattersCache[key]) {\r\n formattersCache[key] = new Intl.DateTimeFormat(localizationCoreUtils.locale(), format).format\r\n }\r\n return formattersCache[key]\r\n};\r\n\r\nfunction formatDateTime(date, format) {\r\n return getFormatter(format)(date).replace(SYMBOLS_TO_REMOVE_REGEX, \"\")\r\n}\r\nvar formatNumber = number => new Intl.NumberFormat(localizationCoreUtils.locale()).format(number);\r\nvar getAlternativeNumeralsMap = (() => {\r\n var numeralsMapCache = {};\r\n return locale => {\r\n if (!(locale in numeralsMapCache)) {\r\n if (\"0\" === formatNumber(0)) {\r\n numeralsMapCache[locale] = false;\r\n return false\r\n }\r\n numeralsMapCache[locale] = {};\r\n for (var i = 0; i < 10; ++i) {\r\n numeralsMapCache[locale][formatNumber(i)] = i\r\n }\r\n }\r\n return numeralsMapCache[locale]\r\n }\r\n})();\r\nvar normalizeNumerals = dateString => {\r\n var alternativeNumeralsMap = getAlternativeNumeralsMap(localizationCoreUtils.locale());\r\n if (!alternativeNumeralsMap) {\r\n return dateString\r\n }\r\n return dateString.split(\"\").map(sign => sign in alternativeNumeralsMap ? String(alternativeNumeralsMap[sign]) : sign).join(\"\")\r\n};\r\nvar removeLeadingZeroes = str => str.replace(/(\\D)0+(\\d)/g, \"$1$2\");\r\nvar dateStringEquals = (actual, expected) => removeLeadingZeroes(actual) === removeLeadingZeroes(expected);\r\nvar normalizeMonth = text => text.replace(\"d\\u2019\", \"de \");\r\nvar intlFormats = {\r\n day: {\r\n day: \"numeric\"\r\n },\r\n dayofweek: {\r\n weekday: \"long\"\r\n },\r\n longdate: {\r\n weekday: \"long\",\r\n year: \"numeric\",\r\n month: \"long\",\r\n day: \"numeric\"\r\n },\r\n longdatelongtime: {\r\n weekday: \"long\",\r\n year: \"numeric\",\r\n month: \"long\",\r\n day: \"numeric\",\r\n hour: \"numeric\",\r\n minute: \"numeric\",\r\n second: \"numeric\"\r\n },\r\n longtime: {\r\n hour: \"numeric\",\r\n minute: \"numeric\",\r\n second: \"numeric\"\r\n },\r\n month: {\r\n month: \"long\"\r\n },\r\n monthandday: {\r\n month: \"long\",\r\n day: \"numeric\"\r\n },\r\n monthandyear: {\r\n year: \"numeric\",\r\n month: \"long\"\r\n },\r\n shortdate: {},\r\n shorttime: {\r\n hour: \"numeric\",\r\n minute: \"numeric\"\r\n },\r\n shortyear: {\r\n year: \"2-digit\"\r\n },\r\n year: {\r\n year: \"numeric\"\r\n }\r\n};\r\nObject.defineProperty(intlFormats, \"shortdateshorttime\", {\r\n get: function() {\r\n var defaultOptions = Intl.DateTimeFormat(localizationCoreUtils.locale()).resolvedOptions();\r\n return {\r\n year: defaultOptions.year,\r\n month: defaultOptions.month,\r\n day: defaultOptions.day,\r\n hour: \"numeric\",\r\n minute: \"numeric\"\r\n }\r\n }\r\n});\r\nvar getIntlFormat = format => \"string\" === typeof format && intlFormats[format.toLowerCase()];\r\nvar monthNameStrategies = {\r\n standalone: function(monthIndex, monthFormat) {\r\n var date = new Date(1999, monthIndex, 13, 1);\r\n var dateString = getIntlFormatter({\r\n month: monthFormat\r\n })(date);\r\n return dateString\r\n },\r\n format: function(monthIndex, monthFormat) {\r\n var date = new Date(0, monthIndex, 13, 1);\r\n var dateString = normalizeMonth(getIntlFormatter({\r\n day: \"numeric\",\r\n month: monthFormat\r\n })(date));\r\n var parts = dateString.split(\" \").filter(part => part.indexOf(\"13\") < 0);\r\n if (1 === parts.length) {\r\n return parts[0]\r\n } else if (2 === parts.length) {\r\n return parts[0].length > parts[1].length ? parts[0] : parts[1]\r\n }\r\n return monthNameStrategies.standalone(monthIndex, monthFormat)\r\n }\r\n};\r\nexport default {\r\n engine: function() {\r\n return \"intl\"\r\n },\r\n getMonthNames: function(format, type) {\r\n var monthFormat = {\r\n wide: \"long\",\r\n abbreviated: \"short\",\r\n narrow: \"narrow\"\r\n } [format || \"wide\"];\r\n type = \"format\" === type ? type : \"standalone\";\r\n return Array.apply(null, new Array(12)).map((_, monthIndex) => monthNameStrategies[type](monthIndex, monthFormat))\r\n },\r\n getDayNames: function(format) {\r\n var result = (format => Array.apply(null, new Array(7)).map((_, dayIndex) => getIntlFormatter({\r\n weekday: format\r\n })(new Date(0, 0, dayIndex))))({\r\n wide: \"long\",\r\n abbreviated: \"short\",\r\n short: \"narrow\",\r\n narrow: \"narrow\"\r\n } [format || \"wide\"]);\r\n return result\r\n },\r\n getPeriodNames: function() {\r\n var hour12Formatter = getIntlFormatter({\r\n hour: \"numeric\",\r\n hour12: true\r\n });\r\n return [1, 13].map(hours => {\r\n var hourNumberText = formatNumber(1);\r\n var timeParts = hour12Formatter(new Date(0, 0, 1, hours)).split(hourNumberText);\r\n if (2 !== timeParts.length) {\r\n return \"\"\r\n }\r\n var biggerPart = timeParts[0].length > timeParts[1].length ? timeParts[0] : timeParts[1];\r\n return biggerPart.trim()\r\n })\r\n },\r\n format: function(date, _format) {\r\n if (!date) {\r\n return\r\n }\r\n if (!_format) {\r\n return date\r\n }\r\n if (\"function\" !== typeof _format && !_format.formatter) {\r\n _format = _format.type || _format\r\n }\r\n var intlFormat = getIntlFormat(_format);\r\n if (intlFormat) {\r\n return getIntlFormatter(intlFormat)(date)\r\n }\r\n var formatType = typeof _format;\r\n if (_format.formatter || \"function\" === formatType || \"string\" === formatType) {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n return getIntlFormatter(_format)(date)\r\n },\r\n parse: function(dateString, format) {\r\n var formatter;\r\n if (format && !format.parser && \"string\" === typeof dateString) {\r\n dateString = normalizeMonth(dateString);\r\n formatter = date => normalizeMonth(this.format(date, format))\r\n }\r\n return this.callBase(dateString, formatter || format)\r\n },\r\n _parseDateBySimpleFormat: function(dateString, format) {\r\n dateString = normalizeNumerals(dateString);\r\n var formatParts = this.getFormatParts(format);\r\n var dateParts = dateString.split(/\\D+/).filter(part => part.length > 0);\r\n if (formatParts.length !== dateParts.length) {\r\n return\r\n }\r\n var dateArgs = this._generateDateArgs(formatParts, dateParts);\r\n var constructValidDate = ampmShift => {\r\n var parsedDate = ((dateArgs, ampmShift) => {\r\n var hoursShift = ampmShift ? 12 : 0;\r\n return new Date(dateArgs.year, dateArgs.month, dateArgs.day, (dateArgs.hours + hoursShift) % 24, dateArgs.minutes, dateArgs.seconds)\r\n })(dateArgs, ampmShift);\r\n if (dateStringEquals(normalizeNumerals(this.format(parsedDate, format)), dateString)) {\r\n return parsedDate\r\n }\r\n };\r\n return constructValidDate(false) || constructValidDate(true)\r\n },\r\n _generateDateArgs: function(formatParts, dateParts) {\r\n var currentDate = new Date;\r\n var dateArgs = {\r\n year: currentDate.getFullYear(),\r\n month: currentDate.getMonth(),\r\n day: currentDate.getDate(),\r\n hours: 0,\r\n minutes: 0,\r\n seconds: 0\r\n };\r\n formatParts.forEach((formatPart, index) => {\r\n var datePart = dateParts[index];\r\n var parsed = parseInt(datePart, 10);\r\n if (\"month\" === formatPart) {\r\n parsed -= 1\r\n }\r\n dateArgs[formatPart] = parsed\r\n });\r\n return dateArgs\r\n },\r\n formatUsesMonthName: function(format) {\r\n if (\"object\" === typeof format && !(format.type || format.format)) {\r\n return \"long\" === format.month\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n formatUsesDayName: function(format) {\r\n if (\"object\" === typeof format && !(format.type || format.format)) {\r\n return \"long\" === format.weekday\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n getTimeSeparator: function() {\r\n return normalizeNumerals(formatDateTime(new Date(2001, 1, 1, 11, 11), {\r\n hour: \"numeric\",\r\n minute: \"numeric\",\r\n hour12: false\r\n })).replace(/\\d/g, \"\")\r\n },\r\n getFormatParts: function(format) {\r\n if (\"string\" === typeof format) {\r\n return this.callBase(format)\r\n }\r\n var intlFormat = extend({}, intlFormats[format.toLowerCase()]);\r\n var date = new Date(2001, 2, 4, 5, 6, 7);\r\n var formattedDate = getIntlFormatter(intlFormat)(date);\r\n formattedDate = normalizeNumerals(formattedDate);\r\n return [{\r\n name: \"year\",\r\n value: 1\r\n }, {\r\n name: \"month\",\r\n value: 3\r\n }, {\r\n name: \"day\",\r\n value: 4\r\n }, {\r\n name: \"hours\",\r\n value: 5\r\n }, {\r\n name: \"minutes\",\r\n value: 6\r\n }, {\r\n name: \"seconds\",\r\n value: 7\r\n }].map(part => ({\r\n name: part.name,\r\n index: formattedDate.indexOf(part.value)\r\n })).filter(part => part.index > -1).sort((a, b) => a.index - b.index).map(part => part.name)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/date.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dependencyInjector from \"../core/utils/dependency_injector\";\r\nimport {\r\n isString\r\n} from \"../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport errors from \"../core/errors\";\r\nimport {\r\n getFormatter as getLDMLDateFormatter\r\n} from \"./ldml/date.formatter\";\r\nimport {\r\n getFormat as getLDMLDateFormat\r\n} from \"./ldml/date.format\";\r\nimport {\r\n getParser as getLDMLDateParser\r\n} from \"./ldml/date.parser\";\r\nimport defaultDateNames from \"./default_date_names\";\r\nimport firstDayOfWeekData from \"./cldr-data/first_day_of_week_data\";\r\nimport localizationCore from \"./core\";\r\nimport numberLocalization from \"./number\";\r\nimport intlDateLocalization from \"./intl/date\";\r\nvar DEFAULT_DAY_OF_WEEK_INDEX = 0;\r\nvar hasIntl = \"undefined\" !== typeof Intl;\r\nvar FORMATS_TO_PATTERN_MAP = {\r\n shortdate: \"M/d/y\",\r\n shorttime: \"h:mm a\",\r\n longdate: \"EEEE, MMMM d, y\",\r\n longtime: \"h:mm:ss a\",\r\n monthandday: \"MMMM d\",\r\n monthandyear: \"MMMM y\",\r\n quarterandyear: \"QQQ y\",\r\n day: \"d\",\r\n year: \"y\",\r\n shortdateshorttime: \"M/d/y, h:mm a\",\r\n longdatelongtime: \"EEEE, MMMM d, y, h:mm:ss a\",\r\n month: \"LLLL\",\r\n shortyear: \"yy\",\r\n dayofweek: \"EEEE\",\r\n quarter: \"QQQ\",\r\n hour: \"HH\",\r\n minute: \"mm\",\r\n second: \"ss\",\r\n millisecond: \"SSS\",\r\n \"datetime-local\": \"yyyy-MM-ddTHH':'mm':'ss\"\r\n};\r\nvar possiblePartPatterns = {\r\n year: [\"y\", \"yy\", \"yyyy\"],\r\n day: [\"d\", \"dd\"],\r\n month: [\"M\", \"MM\", \"MMM\", \"MMMM\"],\r\n hours: [\"H\", \"HH\", \"h\", \"hh\", \"ah\"],\r\n minutes: [\"m\", \"mm\"],\r\n seconds: [\"s\", \"ss\"],\r\n milliseconds: [\"S\", \"SS\", \"SSS\"]\r\n};\r\nvar dateLocalization = dependencyInjector({\r\n engine: function() {\r\n return \"base\"\r\n },\r\n _getPatternByFormat: function(format) {\r\n return FORMATS_TO_PATTERN_MAP[format.toLowerCase()]\r\n },\r\n _expandPattern: function(pattern) {\r\n return this._getPatternByFormat(pattern) || pattern\r\n },\r\n formatUsesMonthName: function(format) {\r\n return -1 !== this._expandPattern(format).indexOf(\"MMMM\")\r\n },\r\n formatUsesDayName: function(format) {\r\n return -1 !== this._expandPattern(format).indexOf(\"EEEE\")\r\n },\r\n getFormatParts: function(format) {\r\n var pattern = this._getPatternByFormat(format) || format;\r\n var result = [];\r\n each(pattern.split(/\\W+/), (_, formatPart) => {\r\n each(possiblePartPatterns, (partName, possiblePatterns) => {\r\n if (possiblePatterns.includes(formatPart)) {\r\n result.push(partName)\r\n }\r\n })\r\n });\r\n return result\r\n },\r\n getMonthNames: function(format) {\r\n return defaultDateNames.getMonthNames(format)\r\n },\r\n getDayNames: function(format) {\r\n return defaultDateNames.getDayNames(format)\r\n },\r\n getQuarterNames: function(format) {\r\n return defaultDateNames.getQuarterNames(format)\r\n },\r\n getPeriodNames: function(format) {\r\n return defaultDateNames.getPeriodNames(format)\r\n },\r\n getTimeSeparator: function() {\r\n return \":\"\r\n },\r\n is24HourFormat: function(format) {\r\n var amTime = new Date(2017, 0, 20, 11, 0, 0, 0);\r\n var pmTime = new Date(2017, 0, 20, 23, 0, 0, 0);\r\n var amTimeFormatted = this.format(amTime, format);\r\n var pmTimeFormatted = this.format(pmTime, format);\r\n for (var i = 0; i < amTimeFormatted.length; i++) {\r\n if (amTimeFormatted[i] !== pmTimeFormatted[i]) {\r\n return !isNaN(parseInt(amTimeFormatted[i]))\r\n }\r\n }\r\n },\r\n format: function(date, _format) {\r\n if (!date) {\r\n return\r\n }\r\n if (!_format) {\r\n return date\r\n }\r\n var formatter;\r\n if (\"function\" === typeof _format) {\r\n formatter = _format\r\n } else if (_format.formatter) {\r\n formatter = _format.formatter\r\n } else {\r\n _format = _format.type || _format;\r\n if (isString(_format)) {\r\n _format = FORMATS_TO_PATTERN_MAP[_format.toLowerCase()] || _format;\r\n return numberLocalization.convertDigits(getLDMLDateFormatter(_format, this)(date))\r\n }\r\n }\r\n if (!formatter) {\r\n return\r\n }\r\n return formatter(date)\r\n },\r\n parse: function(text, format) {\r\n var that = this;\r\n var ldmlFormat;\r\n var formatter;\r\n if (!text) {\r\n return\r\n }\r\n if (!format) {\r\n return this.parse(text, \"shortdate\")\r\n }\r\n if (format.parser) {\r\n return format.parser(text)\r\n }\r\n if (\"string\" === typeof format && !FORMATS_TO_PATTERN_MAP[format.toLowerCase()]) {\r\n ldmlFormat = format\r\n } else {\r\n formatter = value => {\r\n var text = that.format(value, format);\r\n return numberLocalization.convertDigits(text, true)\r\n };\r\n try {\r\n ldmlFormat = getLDMLDateFormat(formatter)\r\n } catch (e) {}\r\n }\r\n if (ldmlFormat) {\r\n text = numberLocalization.convertDigits(text, true);\r\n return getLDMLDateParser(ldmlFormat, this)(text)\r\n }\r\n errors.log(\"W0012\");\r\n var result = new Date(text);\r\n if (!result || isNaN(result.getTime())) {\r\n return\r\n }\r\n return result\r\n },\r\n firstDayOfWeekIndex: function() {\r\n var index = localizationCore.getValueByClosestLocale(locale => firstDayOfWeekData[locale]);\r\n return void 0 === index ? DEFAULT_DAY_OF_WEEK_INDEX : index\r\n }\r\n});\r\nif (hasIntl) {\r\n dateLocalization.inject(intlDateLocalization)\r\n}\r\nexport default dateLocalization;\r\n","import {\r\n ROOT,\r\n API_IRCE01,\r\n API_RRCE01,\r\n API_URCE01,\r\n API_RRCE02,\r\n API_DRCE01,\r\n API_RRCZ01,\r\n API_IRCZ01,\r\n API_URCZ01,\r\n API_URCP01,\r\n API_RRCC00,\r\n API_RLPD01,\r\n API_URCC01,\r\n API_URGC01,\r\n API_URCT01,\r\n API_URCTC1,\r\n API_URCSN1,\r\n API_RRCC00P,\r\n API_RCS03,\r\n API_RCT04,\r\n API_RRCC00D,\r\n API_URCD01,\r\n API_URCR01,\r\n API_RRCC00E,\r\n API_URCZ02,\r\n API_RRCS04,\r\n API_RRCE05\r\n} from '@/api/constant'\r\nimport { handleResponse } from '@/api/handle-response'\r\nimport { requestOptions } from '@/api/request-options'\r\nfunction api_RCS03(data) {\r\n return fetch(ROOT + API_RCS03, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_RRCE05(data) {\r\n return fetch(ROOT + API_RRCE05, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_RRCS04(data) {\r\n return fetch(ROOT + API_RRCS04, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_URCZ02(data) {\r\n return fetch(ROOT + API_URCZ02, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\n\r\nfunction api_RRCC00E(data) {\r\n return fetch(ROOT + API_RRCC00E, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_URCD01(data) {\r\n return fetch(ROOT + API_URCD01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_URCR01(data) {\r\n return fetch(ROOT + API_URCR01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_RRCC00D(data) {\r\n return fetch(ROOT + API_RRCC00D, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_RCT04(data) {\r\n return fetch(ROOT + API_RCT04, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\n\r\nfunction api_URCSN1(data) {\r\n return fetch(ROOT + API_URCSN1, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_RRCC00P(data) {\r\n return fetch(ROOT + API_RRCC00P, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_IRCE01(data) {\r\n return fetch(ROOT + API_IRCE01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_RRCE01(data) {\r\n return fetch(ROOT + API_RRCE01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_URCE01(data) {\r\n return fetch(ROOT + API_URCE01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_RRCE02(data) {\r\n return fetch(ROOT + API_RRCE02, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_DRCE01(data) {\r\n return fetch(ROOT + API_DRCE01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\n\r\nfunction api_RRCZ01(data) {\r\n return fetch(ROOT + API_RRCZ01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_IRCZ01(data) {\r\n return fetch(ROOT + API_IRCZ01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_URCZ01(data) {\r\n return fetch(ROOT + API_URCZ01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_URCP01(data) {\r\n return fetch(ROOT + API_URCP01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_RRCC00(data) {\r\n return fetch(ROOT + API_RRCC00, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_RLPD01(data) {\r\n return fetch(ROOT + API_RLPD01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_URCT01(data) {\r\n return fetch(ROOT + API_URCT01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_URCC01(data) {\r\n return fetch(ROOT + API_URCC01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_URGC01(data) {\r\n return fetch(ROOT + API_URGC01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_URCTC1(data) {\r\n return fetch(ROOT + API_URCTC1, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nexport const reportSetting = {\r\n api_IRCE01,\r\n api_RRCE01,\r\n api_URCE01,\r\n api_RRCE02,\r\n api_DRCE01,\r\n api_RRCZ01,\r\n api_IRCZ01,\r\n api_URCZ01,\r\n api_URCP01,\r\n api_RRCC00,\r\n api_RLPD01,\r\n api_URCT01,\r\n api_URCC01,\r\n api_URGC01,\r\n api_URCTC1,\r\n api_URCSN1,\r\n api_RRCC00P,\r\n api_RCS03,\r\n api_RCT04,\r\n api_RRCC00D,\r\n api_URCD01,\r\n api_URCR01,\r\n api_RRCC00E,\r\n api_URCZ02,\r\n api_RRCS04,\r\n api_RRCE05\r\n}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-overlay',{attrs:{\"show\":_vm.isLoadingDataProcess,\"opacity\":0.5,\"rounded\":\"sm\",\"variant\":\"white\"},scopedSlots:_vm._u([{key:\"overlay\",fn:function(){return [_c('div',{staticClass:\"text-center\"},[_c('ez-icon',{attrs:{\"animation\":\"cylon\",\"icon\":\"ezGolf-icon-clock\",\"size\":\"30\"}}),_c('p',{staticStyle:{\"font-size\":\"18px\"},attrs:{\"id\":\"cancel-label\"}},[_vm._v(\"Please wait...\")]),_c('b-form-input',{staticStyle:{\"min-width\":\"500px\"},attrs:{\"disabled\":\"\",\"id\":\"range-1\",\"type\":\"range\",\"min\":_vm.min,\"max\":_vm.max},model:{value:(_vm.check),callback:function ($$v) {_vm.check=$$v},expression:\"check\"}}),_c('p',[_vm._v(_vm._s(_vm.check)+\"/\"+_vm._s(_vm.max))])],1)]},proxy:true}])},[_c('b-card',[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"11\"}},[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"2\"}},[_c('b-form-group',{attrs:{\"label\":\"Từ ngày\"}},[_c('date-range-picker',{ref:\"picker\",attrs:{\"single-date-picker\":true,\"ranges\":false,\"opens\":\"right\",\"time-picker-increment\":1,\"show-dropdowns\":true,\"auto-apply\":true,\"locale-data\":{\n format: 'mm/dd/YYYY',\n daysOfWeek: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n monthNames: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n firstDay: 0\n }},model:{value:(_vm.keyWord.StartDate),callback:function ($$v) {_vm.$set(_vm.keyWord, \"StartDate\", $$v)},expression:\"keyWord.StartDate\"}})],1)],1),_c('b-col',{attrs:{\"cols\":\"2\"}},[_c('b-form-group',{attrs:{\"label\":\"Đến ngày\"}},[_c('date-range-picker',{ref:\"picker\",attrs:{\"single-date-picker\":true,\"ranges\":false,\"opens\":\"right\",\"time-picker-increment\":1,\"show-dropdowns\":true,\"auto-apply\":true,\"locale-data\":{\n format: 'mm/dd/YYYY',\n daysOfWeek: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n monthNames: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n firstDay: 0\n }},model:{value:(_vm.keyWord.EndDate),callback:function ($$v) {_vm.$set(_vm.keyWord, \"EndDate\", $$v)},expression:\"keyWord.EndDate\"}})],1)],1),_c('b-col',{attrs:{\"cols\":\"2\"}},[_c('b-form-group',{attrs:{\"label\":\"Trạng thái\"}},[_c('v-select',{attrs:{\"label\":\"label\",\"options\":_vm.dataProcessStatus,\"reduce\":function (item) { return item.value; },\"clearable\":true,\"placeholder\":\"Trạng thái\"},model:{value:(_vm.keyWord.ProcessStatus),callback:function ($$v) {_vm.$set(_vm.keyWord, \"ProcessStatus\", $$v)},expression:\"keyWord.ProcessStatus\"}})],1)],1)],1)],1),_c('b-col',{staticClass:\"m-auto\",attrs:{\"cols\":\"1\"}},[_c('b-button',{attrs:{\"variant\":\"primary\",\"type\":\"submit\"},on:{\"click\":function($event){return _vm.getListHistoryDataProcessing()}}},[_vm._v(\" \"+_vm._s(_vm.$t('golf_common_search'))+\" \")])],1)],1)],1),_c('b-card',{attrs:{\"no-body\":\"\",\"border-variant\":\"0\"}},[_c('div',[_c('div',{staticClass:\"p-2\"},[_c('b-row',{attrs:{\"align-v\":\"center\"}},[_c('b-col',{attrs:{\"md\":\"2\"}},[_c('div',{staticClass:\"d-select-perPage\"},[_c('b-form-group',{attrs:{\"label\":_vm.$t('golf_starter_result_on_page'),\"label-for\":\"h-first-name\",\"label-cols-md\":\"7\"}},[_c('v-select',{attrs:{\"options\":_vm.optionPerPage,\"clearable\":false},model:{value:(_vm.perPage),callback:function ($$v) {_vm.perPage=$$v},expression:\"perPage\"}})],1)],1)]),_c('b-col',{attrs:{\"align\":\"right\"}},[_c('b-button',{staticClass:\"mr-1\",attrs:{\"variant\":\"outline-primary\"},on:{\"click\":function($event){return _vm.HandleClickDataProcessingAll()}}},[_vm._v(\" Xử lý số liệu \")])],1)],1)],1),_c('div',[_c('b-overlay',{attrs:{\"show\":_vm.isLoading,\"opacity\":0.3,\"rounded\":\"sm\"}},[_c('DxDataGrid',{ref:_vm.dataGridRef,staticClass:\"table-starter\",attrs:{\"height\":460,\"show-borders\":false,\"data-source\":_vm.items,\"show-column-lines\":true,\"show-row-lines\":true,\"allow-column-reordering\":true,\"allow-column-resizing\":true,\"column-resizing-mode\":\"widget\",\"column-auto-width\":true},scopedSlots:_vm._u([{key:\"action\",fn:function(ref){\n var data = ref.data;\nreturn [_c('b-button',{attrs:{\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.HandleClickDataProcessing(data.data)}}},[_vm._v(\" Xử lý dữ liệu \")])]}},{key:\"Start-Time\",fn:function(ref){\n var data = ref.data;\nreturn [(data.data.StartTime)?_c('div',[_vm._v(\" \"+_vm._s(_vm.convertUTC(data.data.StartTime,'DD/MM/YYYY HH:mm'))+\" \")]):_vm._e()]}},{key:\"End-Time\",fn:function(ref){\n var data = ref.data;\nreturn [(data.data.EndTime)?_c('div',[_vm._v(\" \"+_vm._s(_vm.convertUTC(data.data.EndTime,'DD/MM/YYYY HH:mm'))+\" \")]):_vm._e()]}},{key:\"Report-Date\",fn:function(ref){\n var data = ref.data;\nreturn [(data.data.ReportDate)?_c('div',[_vm._v(\" \"+_vm._s(_vm.convertUTC(data.data.ReportDate,'DD/MM/YYYY'))+\" \")]):_vm._e()]}},{key:\"Total-Time\",fn:function(ref){\n var data = ref.data;\nreturn [_c('div',[_vm._v(\" \"+_vm._s((new Date(data.data.EndTime) - new Date(data.data.StartTime))/1000)+\" \")])]}},{key:\"Process-Status\",fn:function(ref){\n var data = ref.data;\nreturn [_c('div',[(data.data.ProcessStatus == 'COMPLETED')?_c('span',[_vm._v(\" Thành công \")]):_vm._e(),(data.data.ProcessStatus == 'NOT COMPLETED')?_c('span',[_vm._v(\" Thất bại \")]):_vm._e()])]}}])},[_vm._l((_vm.configTable),function(item,i){return ((item.field != 'action') ? item.isShow : true)?_c('DxColumn',{key:i.field,attrs:{\"caption\":item.caption,\"data-field\":item.field,\"data-type\":item.type,\"cell-template\":(item.cellTemplate) ? item.cellTemplate : false,\"alignment\":item.alignment,\"width\":item.width,\"allow-editing\":item.allowEditing,\"edit-cell-template\":item.editCellTemplate,\"editor-options\":item.editorOptions}},_vm._l((item.bands),function(band,j){return (band.isShow && item.bands.length > 0)?_c('DxColumn',{key:band.field,attrs:{\"caption\":band.caption,\"data-field\":band.field,\"data-type\":band.type,\"group-cell-template\":_vm.customText,\"cell-template\":(band.cellTemplate) ? band.cellTemplate : false,\"alignment\":band.alignment,\"width\":item.width,\"allow-editing\":item.allowEditing,\"edit-cell-template\":item.editCellTemplate}}):_vm._e()}),1):_vm._e()}),_c('DxSelection',{attrs:{\"select-all-mode\":_vm.allMode,\"show-check-boxes-mode\":_vm.checkBoxesMode,\"mode\":\"multiple\"}}),_c('DxColumnFixing',{attrs:{\"enabled\":true}}),_c('DxGroupPanel',{attrs:{\"visible\":false}}),_c('DxPaging',{attrs:{\"page-size\":_vm.perPage}}),_c('DxPager',{attrs:{\"visible\":true,\"display-mode\":\"full\",\"show-info\":true}})],2)],1)],1)])])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dataProcessingHistory.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dataProcessingHistory.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./dataProcessingHistory.vue?vue&type=template&id=dccff356\"\nimport script from \"./dataProcessingHistory.vue?vue&type=script&lang=js\"\nexport * from \"./dataProcessingHistory.vue?vue&type=script&lang=js\"\nimport style0 from \"./dataProcessingHistory.vue?vue&type=style&index=0&id=dccff356&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dataProcessingHistory.vue?vue&type=style&index=0&id=dccff356&prod&lang=scss\"","/**\r\n * DevExtreme (esm/localization/ldml/date.formatter.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nfunction leftPad(text, length) {\r\n while (text.length < length) {\r\n text = \"0\" + text\r\n }\r\n return text\r\n}\r\nvar FORMAT_TYPES = {\r\n 3: \"abbreviated\",\r\n 4: \"wide\",\r\n 5: \"narrow\"\r\n};\r\nvar LDML_FORMATTERS = {\r\n y: function(date, count, useUtc) {\r\n var year = date[useUtc ? \"getUTCFullYear\" : \"getFullYear\"]();\r\n if (2 === count) {\r\n year %= 100\r\n }\r\n return leftPad(year.toString(), count)\r\n },\r\n M: function(date, count, useUtc, dateParts) {\r\n var month = date[useUtc ? \"getUTCMonth\" : \"getMonth\"]();\r\n var formatType = FORMAT_TYPES[count];\r\n if (formatType) {\r\n return dateParts.getMonthNames(formatType, \"format\")[month]\r\n }\r\n return leftPad((month + 1).toString(), Math.min(count, 2))\r\n },\r\n L: function(date, count, useUtc, dateParts) {\r\n var month = date[useUtc ? \"getUTCMonth\" : \"getMonth\"]();\r\n var formatType = FORMAT_TYPES[count];\r\n if (formatType) {\r\n return dateParts.getMonthNames(formatType, \"standalone\")[month]\r\n }\r\n return leftPad((month + 1).toString(), Math.min(count, 2))\r\n },\r\n Q: function(date, count, useUtc, dateParts) {\r\n var month = date[useUtc ? \"getUTCMonth\" : \"getMonth\"]();\r\n var quarter = Math.floor(month / 3);\r\n var formatType = FORMAT_TYPES[count];\r\n if (formatType) {\r\n return dateParts.getQuarterNames(formatType)[quarter]\r\n }\r\n return leftPad((quarter + 1).toString(), Math.min(count, 2))\r\n },\r\n E: function(date, count, useUtc, dateParts) {\r\n var day = date[useUtc ? \"getUTCDay\" : \"getDay\"]();\r\n var formatType = FORMAT_TYPES[count < 3 ? 3 : count];\r\n return dateParts.getDayNames(formatType)[day]\r\n },\r\n a: function(date, count, useUtc, dateParts) {\r\n var hours = date[useUtc ? \"getUTCHours\" : \"getHours\"]();\r\n var period = hours < 12 ? 0 : 1;\r\n var formatType = FORMAT_TYPES[count];\r\n return dateParts.getPeriodNames(formatType)[period]\r\n },\r\n d: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCDate\" : \"getDate\"]().toString(), Math.min(count, 2))\r\n },\r\n H: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCHours\" : \"getHours\"]().toString(), Math.min(count, 2))\r\n },\r\n h: function(date, count, useUtc) {\r\n var hours = date[useUtc ? \"getUTCHours\" : \"getHours\"]();\r\n return leftPad((hours % 12 || 12).toString(), Math.min(count, 2))\r\n },\r\n m: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCMinutes\" : \"getMinutes\"]().toString(), Math.min(count, 2))\r\n },\r\n s: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCSeconds\" : \"getSeconds\"]().toString(), Math.min(count, 2))\r\n },\r\n S: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCMilliseconds\" : \"getMilliseconds\"]().toString(), 3).substr(0, count)\r\n },\r\n x: function(date, count, useUtc) {\r\n var timezoneOffset = useUtc ? 0 : date.getTimezoneOffset();\r\n var signPart = timezoneOffset > 0 ? \"-\" : \"+\";\r\n var timezoneOffsetAbs = Math.abs(timezoneOffset);\r\n var hours = Math.floor(timezoneOffsetAbs / 60);\r\n var minutes = timezoneOffsetAbs % 60;\r\n var hoursPart = leftPad(hours.toString(), 2);\r\n var minutesPart = leftPad(minutes.toString(), 2);\r\n return signPart + hoursPart + (count >= 3 ? \":\" : \"\") + (count > 1 || minutes ? minutesPart : \"\")\r\n },\r\n X: function(date, count, useUtc) {\r\n if (useUtc || !date.getTimezoneOffset()) {\r\n return \"Z\"\r\n }\r\n return LDML_FORMATTERS.x(date, count, useUtc)\r\n },\r\n Z: function(date, count, useUtc) {\r\n return LDML_FORMATTERS.X(date, count >= 5 ? 3 : 2, useUtc)\r\n }\r\n};\r\nexport var getFormatter = function(format, dateParts) {\r\n return function(date) {\r\n var charIndex;\r\n var formatter;\r\n var char;\r\n var charCount = 0;\r\n var isEscaping = false;\r\n var isCurrentCharEqualsNext;\r\n var result = \"\";\r\n if (!date) {\r\n return null\r\n }\r\n if (!format) {\r\n return date\r\n }\r\n var useUtc = \"Z\" === format[format.length - 1] || \"'Z'\" === format.slice(-3);\r\n for (charIndex = 0; charIndex < format.length; charIndex++) {\r\n char = format[charIndex];\r\n formatter = LDML_FORMATTERS[char];\r\n isCurrentCharEqualsNext = char === format[charIndex + 1];\r\n charCount++;\r\n if (!isCurrentCharEqualsNext) {\r\n if (formatter && !isEscaping) {\r\n result += formatter(date, charCount, useUtc, dateParts)\r\n }\r\n charCount = 0\r\n }\r\n if (\"'\" === char && !isCurrentCharEqualsNext) {\r\n isEscaping = !isEscaping\r\n } else if (isEscaping || !formatter) {\r\n result += char\r\n }\r\n if (\"'\" === char && isCurrentCharEqualsNext) {\r\n charIndex++\r\n }\r\n }\r\n return result\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.utils.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport sharedFiltering from \"../shared/filtering\";\r\nimport {\r\n format\r\n} from \"../../core/utils/string\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport {\r\n toComparable\r\n} from \"../../core/utils/data\";\r\nimport {\r\n equalByValue\r\n} from \"../../core/utils/common\";\r\nimport LoadPanel from \"../load_panel\";\r\nimport {\r\n normalizeSortingInfo as normalizeSortingInfoUtility\r\n} from \"../../data/utils\";\r\nimport formatHelper from \"../../format_helper\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n DataSource\r\n} from \"../../data/data_source/data_source\";\r\nimport ArrayStore from \"../../data/array_store\";\r\nimport {\r\n normalizeDataSourceOptions\r\n} from \"../../data/data_source/utils\";\r\nimport variableWrapper from \"../../core/utils/variable_wrapper\";\r\nvar DATAGRID_SELECTION_DISABLED_CLASS = \"dx-selection-disabled\";\r\nvar DATAGRID_GROUP_OPENED_CLASS = \"dx-datagrid-group-opened\";\r\nvar DATAGRID_GROUP_CLOSED_CLASS = \"dx-datagrid-group-closed\";\r\nvar DATAGRID_EXPAND_CLASS = \"dx-datagrid-expand\";\r\nvar NO_DATA_CLASS = \"nodata\";\r\nvar SCROLLING_MODE_INFINITE = \"infinite\";\r\nvar SCROLLING_MODE_VIRTUAL = \"virtual\";\r\nvar LEGACY_SCROLLING_MODE = \"scrolling.legacyMode\";\r\nvar SCROLLING_MODE_OPTION = \"scrolling.mode\";\r\nvar ROW_RENDERING_MODE_OPTION = \"scrolling.rowRenderingMode\";\r\nvar DATE_INTERVAL_SELECTORS = {\r\n year: function(value) {\r\n return value && value.getFullYear()\r\n },\r\n month: function(value) {\r\n return value && value.getMonth() + 1\r\n },\r\n day: function(value) {\r\n return value && value.getDate()\r\n },\r\n quarter: function(value) {\r\n return value && Math.floor(value.getMonth() / 3) + 1\r\n },\r\n hour: function(value) {\r\n return value && value.getHours()\r\n },\r\n minute: function(value) {\r\n return value && value.getMinutes()\r\n },\r\n second: function(value) {\r\n return value && value.getSeconds()\r\n }\r\n};\r\nvar getIntervalSelector = function() {\r\n var data = arguments[1];\r\n var value = this.calculateCellValue(data);\r\n if (!isDefined(value)) {\r\n return null\r\n } else if (isDateType(this.dataType)) {\r\n var nameIntervalSelector = arguments[0];\r\n return DATE_INTERVAL_SELECTORS[nameIntervalSelector](value)\r\n } else if (\"number\" === this.dataType) {\r\n var groupInterval = arguments[0];\r\n return Math.floor(Number(value) / groupInterval) * groupInterval\r\n }\r\n};\r\nvar equalSelectors = function(selector1, selector2) {\r\n if (isFunction(selector1) && isFunction(selector2)) {\r\n if (selector1.originalCallback && selector2.originalCallback) {\r\n return selector1.originalCallback === selector2.originalCallback && selector1.columnIndex === selector2.columnIndex\r\n }\r\n }\r\n return selector1 === selector2\r\n};\r\n\r\nfunction isDateType(dataType) {\r\n return \"date\" === dataType || \"datetime\" === dataType\r\n}\r\nvar setEmptyText = function($container) {\r\n $container.get(0).textContent = \"\\xa0\"\r\n};\r\nvar normalizeSortingInfo = function(sort) {\r\n sort = sort || [];\r\n var result = normalizeSortingInfoUtility(sort);\r\n for (var i = 0; i < sort.length; i++) {\r\n if (sort && sort[i] && void 0 !== sort[i].isExpanded) {\r\n result[i].isExpanded = sort[i].isExpanded\r\n }\r\n if (sort && sort[i] && void 0 !== sort[i].groupInterval) {\r\n result[i].groupInterval = sort[i].groupInterval\r\n }\r\n }\r\n return result\r\n};\r\nvar formatValue = function(value, options) {\r\n var valueText = formatHelper.format(value, options.format) || value && value.toString() || \"\";\r\n var formatObject = {\r\n value: value,\r\n valueText: options.getDisplayFormat ? options.getDisplayFormat(valueText) : valueText,\r\n target: options.target || \"row\",\r\n groupInterval: options.groupInterval\r\n };\r\n return options.customizeText ? options.customizeText.call(options, formatObject) : formatObject.valueText\r\n};\r\nvar getSummaryText = function(summaryItem, summaryTexts) {\r\n var displayFormat = summaryItem.displayFormat || summaryItem.columnCaption && summaryTexts[summaryItem.summaryType + \"OtherColumn\"] || summaryTexts[summaryItem.summaryType];\r\n return formatValue(summaryItem.value, {\r\n format: summaryItem.valueFormat,\r\n getDisplayFormat: function(valueText) {\r\n return displayFormat ? format(displayFormat, valueText, summaryItem.columnCaption) : valueText\r\n },\r\n customizeText: summaryItem.customizeText\r\n })\r\n};\r\nvar getWidgetInstance = function($element) {\r\n var editorData = $element.data && $element.data();\r\n var dxComponents = editorData && editorData.dxComponents;\r\n var widgetName = dxComponents && dxComponents[0];\r\n return widgetName && editorData[widgetName]\r\n};\r\nvar equalFilterParameters = function equalFilterParameters(filter1, filter2) {\r\n if (Array.isArray(filter1) && Array.isArray(filter2)) {\r\n if (filter1.length !== filter2.length) {\r\n return false\r\n } else {\r\n for (var i = 0; i < filter1.length; i++) {\r\n if (!equalFilterParameters(filter1[i], filter2[i])) {\r\n return false\r\n }\r\n }\r\n }\r\n return true\r\n } else if (isFunction(filter1) && filter1.columnIndex >= 0 && isFunction(filter2) && filter2.columnIndex >= 0) {\r\n return filter1.columnIndex === filter2.columnIndex && toComparable(filter1.filterValue) === toComparable(filter2.filterValue)\r\n } else {\r\n return toComparable(filter1) == toComparable(filter2)\r\n }\r\n};\r\n\r\nfunction normalizeGroupingLoadOptions(group) {\r\n if (!Array.isArray(group)) {\r\n group = [group]\r\n }\r\n return group.map((item, i) => {\r\n if (isString(item)) {\r\n return {\r\n selector: item,\r\n isExpanded: i < group.length - 1\r\n }\r\n }\r\n return item\r\n })\r\n}\r\nexport default {\r\n renderNoDataText: function($element) {\r\n $element = $element || this.element();\r\n if (!$element) {\r\n return\r\n }\r\n var noDataClass = this.addWidgetPrefix(NO_DATA_CLASS);\r\n var noDataElement = $element.find(\".\" + noDataClass).last();\r\n var isVisible = this._dataController.isEmpty();\r\n var isLoading = this._dataController.isLoading();\r\n if (!noDataElement.length) {\r\n noDataElement = $(\"\").addClass(noDataClass).appendTo($element)\r\n }\r\n if (isVisible && !isLoading) {\r\n noDataElement.removeClass(\"dx-hidden\").text(this._getNoDataText())\r\n } else {\r\n noDataElement.addClass(\"dx-hidden\")\r\n }\r\n },\r\n renderLoadPanel: function($element, $container, isLocalStore) {\r\n var loadPanelOptions;\r\n this._loadPanel && this._loadPanel.$element().remove();\r\n loadPanelOptions = this.option(\"loadPanel\");\r\n if (loadPanelOptions && (\"auto\" === loadPanelOptions.enabled ? !isLocalStore : loadPanelOptions.enabled)) {\r\n loadPanelOptions = extend({\r\n shading: false,\r\n message: loadPanelOptions.text,\r\n container: $container\r\n }, loadPanelOptions);\r\n this._loadPanel = this._createComponent($(\"
\").appendTo($container), LoadPanel, loadPanelOptions)\r\n } else {\r\n this._loadPanel = null\r\n }\r\n },\r\n calculateLoadPanelPosition($element) {\r\n var $window = $(getWindow());\r\n if (getHeight($element) > getHeight($window)) {\r\n return {\r\n of: $window,\r\n boundary: $element,\r\n collision: \"fit\"\r\n }\r\n }\r\n return {\r\n of: $element\r\n }\r\n },\r\n getIndexByKey: function(key, items, keyName) {\r\n var index = -1;\r\n if (void 0 !== key && Array.isArray(items)) {\r\n keyName = arguments.length <= 2 ? \"key\" : keyName;\r\n for (var i = 0; i < items.length; i++) {\r\n var item = isDefined(keyName) ? items[i][keyName] : items[i];\r\n if (equalByValue(key, item)) {\r\n index = i;\r\n break\r\n }\r\n }\r\n }\r\n return index\r\n },\r\n combineFilters: function(filters, operation) {\r\n var resultFilter = [];\r\n operation = operation || \"and\";\r\n for (var i = 0; i < filters.length; i++) {\r\n var _filters$i;\r\n if (!filters[i]) {\r\n continue\r\n }\r\n if (1 === (null === (_filters$i = filters[i]) || void 0 === _filters$i ? void 0 : _filters$i.length) && \"!\" === filters[i][0]) {\r\n if (\"and\" === operation) {\r\n return [\"!\"]\r\n } else if (\"or\" === operation) {\r\n continue\r\n }\r\n }\r\n if (resultFilter.length) {\r\n resultFilter.push(operation)\r\n }\r\n resultFilter.push(filters[i])\r\n }\r\n if (1 === resultFilter.length) {\r\n resultFilter = resultFilter[0]\r\n }\r\n if (resultFilter.length) {\r\n return resultFilter\r\n }\r\n },\r\n checkChanges: function(changes, changeNames) {\r\n var changesWithChangeNamesCount = 0;\r\n for (var i = 0; i < changeNames.length; i++) {\r\n if (changes[changeNames[i]]) {\r\n changesWithChangeNamesCount++\r\n }\r\n }\r\n return changes.length && changes.length === changesWithChangeNamesCount\r\n },\r\n equalFilterParameters: equalFilterParameters,\r\n proxyMethod: function(instance, methodName, defaultResult) {\r\n if (!instance[methodName]) {\r\n instance[methodName] = function() {\r\n var dataSource = this._dataSource;\r\n return dataSource ? dataSource[methodName].apply(dataSource, arguments) : defaultResult\r\n }\r\n }\r\n },\r\n formatValue: formatValue,\r\n getFormatOptionsByColumn: function(column, target) {\r\n return {\r\n format: column.format,\r\n getDisplayFormat: column.getDisplayFormat,\r\n customizeText: column.customizeText,\r\n target: target,\r\n trueText: column.trueText,\r\n falseText: column.falseText\r\n }\r\n },\r\n getDisplayValue: function(column, value, data, rowType) {\r\n if (column.displayValueMap && void 0 !== column.displayValueMap[value]) {\r\n return column.displayValueMap[value]\r\n } else if (column.calculateDisplayValue && data && \"group\" !== rowType) {\r\n return column.calculateDisplayValue(data)\r\n } else if (column.lookup && !(\"group\" === rowType && (column.calculateGroupValue || column.calculateDisplayValue))) {\r\n return column.lookup.calculateCellValue(value)\r\n }\r\n return value\r\n },\r\n getGroupRowSummaryText: function(summaryItems, summaryTexts) {\r\n var result = \"(\";\r\n for (var i = 0; i < summaryItems.length; i++) {\r\n var summaryItem = summaryItems[i];\r\n result += (i > 0 ? \", \" : \"\") + getSummaryText(summaryItem, summaryTexts)\r\n }\r\n return result + \")\"\r\n },\r\n getSummaryText: getSummaryText,\r\n normalizeSortingInfo: normalizeSortingInfo,\r\n getFormatByDataType: function(dataType) {\r\n switch (dataType) {\r\n case \"date\":\r\n return \"shortDate\";\r\n case \"datetime\":\r\n return \"shortDateShortTime\"\r\n }\r\n },\r\n getHeaderFilterGroupParameters: function(column, remoteGrouping) {\r\n var result = [];\r\n var dataField = column.dataField || column.name;\r\n var groupInterval = sharedFiltering.getGroupInterval(column);\r\n if (groupInterval) {\r\n each(groupInterval, (function(index, interval) {\r\n result.push(remoteGrouping ? {\r\n selector: dataField,\r\n groupInterval: interval,\r\n isExpanded: index < groupInterval.length - 1\r\n } : getIntervalSelector.bind(column, interval))\r\n }));\r\n return result\r\n }\r\n if (remoteGrouping) {\r\n result = [{\r\n selector: dataField,\r\n isExpanded: false\r\n }]\r\n } else {\r\n result = function(data) {\r\n var result = column.calculateCellValue(data);\r\n if (void 0 === result || \"\" === result) {\r\n result = null\r\n }\r\n return result\r\n };\r\n if (column.sortingMethod) {\r\n result = [{\r\n selector: result,\r\n compare: column.sortingMethod.bind(column)\r\n }]\r\n }\r\n }\r\n return result\r\n },\r\n equalSortParameters(sortParameters1, sortParameters2, ignoreIsExpanded) {\r\n sortParameters1 = normalizeSortingInfo(sortParameters1);\r\n sortParameters2 = normalizeSortingInfo(sortParameters2);\r\n if (Array.isArray(sortParameters1) && Array.isArray(sortParameters2)) {\r\n if (sortParameters1.length !== sortParameters2.length) {\r\n return false\r\n } else {\r\n for (var i = 0; i < sortParameters1.length; i++) {\r\n if (!equalSelectors(sortParameters1[i].selector, sortParameters2[i].selector) || sortParameters1[i].desc !== sortParameters2[i].desc || sortParameters1[i].groupInterval !== sortParameters2[i].groupInterval || !ignoreIsExpanded && Boolean(sortParameters1[i].isExpanded) !== Boolean(sortParameters2[i].isExpanded)) {\r\n return false\r\n }\r\n }\r\n }\r\n return true\r\n } else {\r\n return (!sortParameters1 || !sortParameters1.length) === (!sortParameters2 || !sortParameters2.length)\r\n }\r\n },\r\n getPointsByColumns: function(items, pointCreated, isVertical, startColumnIndex) {\r\n var cellsLength = items.length;\r\n var notCreatePoint = false;\r\n var item;\r\n var offset;\r\n var columnIndex = startColumnIndex || 0;\r\n var result = [];\r\n var rtlEnabled;\r\n for (var i = 0; i <= cellsLength; i++) {\r\n if (i < cellsLength) {\r\n item = items.eq(i);\r\n offset = item.offset();\r\n rtlEnabled = \"rtl\" === item.css(\"direction\")\r\n }\r\n var point = {\r\n index: columnIndex,\r\n x: offset ? offset.left + (!isVertical && rtlEnabled ^ i === cellsLength ? getBoundingRect(item[0]).width : 0) : 0,\r\n y: offset ? offset.top + (isVertical && i === cellsLength ? getBoundingRect(item[0]).height : 0) : 0,\r\n columnIndex: columnIndex\r\n };\r\n if (!isVertical && i > 0) {\r\n var prevItemOffset = items.eq(i - 1).offset();\r\n if (prevItemOffset.top < point.y) {\r\n point.y = prevItemOffset.top\r\n }\r\n }\r\n if (pointCreated) {\r\n notCreatePoint = pointCreated(point)\r\n }\r\n if (!notCreatePoint) {\r\n result.push(point)\r\n }\r\n columnIndex++\r\n }\r\n return result\r\n },\r\n getExpandCellTemplate: function() {\r\n return {\r\n allowRenderToDetachedContainer: true,\r\n render: function(container, options) {\r\n var $container = $(container);\r\n if (isDefined(options.value) && !(options.data && options.data.isContinuation) && !options.row.isNewRow) {\r\n var rowsView = options.component.getView(\"rowsView\");\r\n $container.addClass(DATAGRID_EXPAND_CLASS).addClass(DATAGRID_SELECTION_DISABLED_CLASS);\r\n $(\"
\").addClass(options.value ? DATAGRID_GROUP_OPENED_CLASS : DATAGRID_GROUP_CLOSED_CLASS).appendTo($container);\r\n rowsView.setAria(\"label\", options.value ? rowsView.localize(\"dxDataGrid-ariaCollapse\") : rowsView.localize(\"dxDataGrid-ariaExpand\"), $container)\r\n } else {\r\n setEmptyText($container)\r\n }\r\n }\r\n }\r\n },\r\n setEmptyText: setEmptyText,\r\n isDateType: isDateType,\r\n getSelectionRange: function(focusedElement) {\r\n try {\r\n if (focusedElement) {\r\n return {\r\n selectionStart: focusedElement.selectionStart,\r\n selectionEnd: focusedElement.selectionEnd\r\n }\r\n }\r\n } catch (e) {}\r\n return {}\r\n },\r\n setSelectionRange: function(focusedElement, selectionRange) {\r\n try {\r\n if (focusedElement && focusedElement.setSelectionRange) {\r\n focusedElement.setSelectionRange(selectionRange.selectionStart, selectionRange.selectionEnd)\r\n }\r\n } catch (e) {}\r\n },\r\n focusAndSelectElement: function(component, $element) {\r\n var isFocused = $element.is(\":focus\");\r\n eventsEngine.trigger($element, \"focus\");\r\n var isSelectTextOnEditingStart = component.option(\"editing.selectTextOnEditStart\");\r\n var element = $element.get(0);\r\n if (!isFocused && isSelectTextOnEditingStart && $element.is(\".dx-texteditor-input\") && !$element.is(\"[readonly]\")) {\r\n var editor = getWidgetInstance($element.closest(\".dx-texteditor\"));\r\n when(editor && editor._loadItemDeferred).done((function() {\r\n element.select()\r\n }))\r\n }\r\n },\r\n getWidgetInstance: getWidgetInstance,\r\n getLastResizableColumnIndex: function(columns, resultWidths) {\r\n var hasResizableColumns = columns.some(column => column && !column.command && !column.fixed && false !== column.allowResizing);\r\n var lastColumnIndex;\r\n for (lastColumnIndex = columns.length - 1; columns[lastColumnIndex]; lastColumnIndex--) {\r\n var column = columns[lastColumnIndex];\r\n var width = resultWidths && resultWidths[lastColumnIndex];\r\n var allowResizing = !hasResizableColumns || false !== column.allowResizing;\r\n if (!column.command && !column.fixed && \"adaptiveHidden\" !== width && allowResizing) {\r\n break\r\n }\r\n }\r\n return lastColumnIndex\r\n },\r\n isElementInCurrentGrid: function(controller, $element) {\r\n if ($element && $element.length) {\r\n var $grid = $element.closest(\".\" + controller.getWidgetContainerClass()).parent();\r\n return $grid.is(controller.component.$element())\r\n }\r\n return false\r\n },\r\n isVirtualRowRendering: function(that) {\r\n var rowRenderingMode = that.option(ROW_RENDERING_MODE_OPTION);\r\n var isVirtualMode = that.option(SCROLLING_MODE_OPTION) === SCROLLING_MODE_VIRTUAL;\r\n var isAppendMode = that.option(SCROLLING_MODE_OPTION) === SCROLLING_MODE_INFINITE;\r\n if (false === that.option(LEGACY_SCROLLING_MODE) && (isVirtualMode || isAppendMode)) {\r\n return true\r\n }\r\n return rowRenderingMode === SCROLLING_MODE_VIRTUAL\r\n },\r\n getPixelRatio: function(window) {\r\n return window.devicePixelRatio || 1\r\n },\r\n getContentHeightLimit(browser) {\r\n if (browser.mozilla) {\r\n return 8e6\r\n }\r\n return 15e6 / this.getPixelRatio(getWindow())\r\n },\r\n normalizeLookupDataSource(lookup) {\r\n var lookupDataSourceOptions;\r\n if (lookup.items) {\r\n lookupDataSourceOptions = lookup.items\r\n } else {\r\n lookupDataSourceOptions = lookup.dataSource;\r\n if (isFunction(lookupDataSourceOptions) && !variableWrapper.isWrapped(lookupDataSourceOptions)) {\r\n lookupDataSourceOptions = lookupDataSourceOptions({})\r\n }\r\n }\r\n return normalizeDataSourceOptions(lookupDataSourceOptions)\r\n },\r\n getWrappedLookupDataSource(column, dataSource, filter) {\r\n var lookupDataSourceOptions = this.normalizeLookupDataSource(column.lookup);\r\n if (column.calculateCellValue !== column.defaultCalculateCellValue) {\r\n return lookupDataSourceOptions\r\n }\r\n var hasGroupPaging = dataSource.remoteOperations().groupPaging;\r\n var hasLookupOptimization = column.displayField && isString(column.displayField);\r\n var cachedUniqueRelevantItems;\r\n var lookupDataSource = _extends({}, lookupDataSourceOptions, {\r\n load: loadOptions => {\r\n var d = new Deferred;\r\n (loadOptions => {\r\n var group = normalizeGroupingLoadOptions(hasLookupOptimization ? [column.dataField, column.displayField] : column.dataField);\r\n var d = new Deferred;\r\n if (!hasGroupPaging && cachedUniqueRelevantItems) {\r\n d.resolve(cachedUniqueRelevantItems)\r\n } else {\r\n dataSource.load({\r\n filter: filter,\r\n group: group,\r\n take: hasGroupPaging ? loadOptions.take : void 0,\r\n skip: hasGroupPaging ? loadOptions.skip : void 0\r\n }).done(items => {\r\n cachedUniqueRelevantItems = items;\r\n d.resolve(items)\r\n }).fail(d.fail)\r\n }\r\n return d\r\n })(loadOptions).done(items => {\r\n if (0 === items.length) {\r\n d.resolve([])\r\n }\r\n var newDataSource;\r\n if (hasLookupOptimization) {\r\n var lookupItems = items.map(item => {\r\n var _column$displayValueM;\r\n return {\r\n [column.lookup.valueExpr]: item.key,\r\n [column.lookup.displayExpr]: null !== (_column$displayValueM = column.displayValueMap[item.key]) && void 0 !== _column$displayValueM ? _column$displayValueM : item.items[0].key\r\n }\r\n });\r\n newDataSource = new DataSource(_extends({}, lookupDataSourceOptions, loadOptions, {\r\n store: new ArrayStore({\r\n data: lookupItems,\r\n key: column.lookup.valueExpr\r\n })\r\n }))\r\n } else {\r\n var _filter = this.combineFilters(items.flatMap(data => data.key).map(key => [column.lookup.valueExpr, key]), \"or\");\r\n newDataSource = new DataSource(_extends({}, lookupDataSourceOptions, loadOptions, {\r\n filter: this.combineFilters([_filter, loadOptions.filter], \"and\")\r\n }))\r\n }\r\n if (!hasGroupPaging) {\r\n newDataSource.on(\"customizeStoreLoadOptions\", e => {\r\n e.storeLoadOptions.take = loadOptions.take;\r\n e.storeLoadOptions.skip = loadOptions.skip\r\n })\r\n }\r\n newDataSource.load().done(d.resolve).fail(d.fail)\r\n }).fail(d.fail);\r\n return d\r\n },\r\n key: column.lookup.valueExpr,\r\n byKey(key) {\r\n var d = Deferred();\r\n this.load({\r\n filter: [column.lookup.valueExpr, \"=\", key]\r\n }).done(arr => {\r\n d.resolve(arr[0])\r\n });\r\n return d.promise()\r\n }\r\n });\r\n return lookupDataSource\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/ldml/date.format.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport numberLocalization from \"../number\";\r\nvar ARABIC_COMMA = \"\\u060c\";\r\nvar FORMAT_SEPARATORS = \" .,:;/\\\\<>()-[]\" + ARABIC_COMMA;\r\nvar AM_PM_PATTERN = \". m.\";\r\nvar checkDigit = function(char) {\r\n var code = char && numberLocalization.convertDigits(char, false).charCodeAt(0);\r\n var zeroCode = numberLocalization.convertDigits(\"0\", false).charCodeAt(0);\r\n return zeroCode <= code && code < zeroCode + 10\r\n};\r\nvar checkPatternContinue = function(text, patterns, index, isDigit) {\r\n var char = text[index];\r\n var nextChar = text[index + 1];\r\n if (!isDigit) {\r\n if (\".\" === char || \" \" === char && text.slice(index - 1, index + 3) === AM_PM_PATTERN) {\r\n return true\r\n }\r\n if (\"-\" === char && !checkDigit(nextChar)) {\r\n return true\r\n }\r\n }\r\n var isDigitChanged = isDigit && patterns.some(pattern => text[index] !== pattern[index]);\r\n return FORMAT_SEPARATORS.indexOf(char) < 0 && isDigit === checkDigit(char) && (!isDigit || isDigitChanged)\r\n};\r\nvar getPatternStartIndex = function(defaultPattern, index) {\r\n if (!checkDigit(defaultPattern[index])) {\r\n while (index > 0 && !checkDigit(defaultPattern[index - 1]) && (\".\" === defaultPattern[index - 1] || FORMAT_SEPARATORS.indexOf(defaultPattern[index - 1]) < 0)) {\r\n index--\r\n }\r\n }\r\n return index\r\n};\r\nvar getDifference = function(defaultPattern, patterns, processedIndexes, isDigit) {\r\n var i = 0;\r\n var result = [];\r\n var patternsFilter = function(pattern) {\r\n return defaultPattern[i] !== pattern[i] && (void 0 === isDigit || checkDigit(defaultPattern[i]) === isDigit)\r\n };\r\n if (!Array.isArray(patterns)) {\r\n patterns = [patterns]\r\n }\r\n for (i = 0; i < defaultPattern.length; i++) {\r\n if (processedIndexes.indexOf(i) < 0 && patterns.filter(patternsFilter).length) {\r\n i = getPatternStartIndex(defaultPattern, i);\r\n do {\r\n isDigit = checkDigit(defaultPattern[i]);\r\n if (!result.length && !isDigit && checkDigit(patterns[0][i])) {\r\n break\r\n }\r\n result.push(i);\r\n processedIndexes.unshift(i);\r\n i++\r\n } while (defaultPattern[i] && checkPatternContinue(defaultPattern, patterns, i, isDigit));\r\n break\r\n }\r\n }\r\n if (1 === result.length && (\"0\" === defaultPattern[processedIndexes[0] - 1] || \"\\u0660\" === defaultPattern[processedIndexes[0] - 1])) {\r\n processedIndexes.unshift(processedIndexes[0] - 1)\r\n }\r\n return result\r\n};\r\nvar replaceCharsCore = function(pattern, indexes, char, patternPositions) {\r\n var baseCharIndex = indexes[0];\r\n var patternIndex = baseCharIndex < patternPositions.length ? patternPositions[baseCharIndex] : baseCharIndex;\r\n indexes.forEach((function(_, index) {\r\n pattern = pattern.substr(0, patternIndex + index) + (char.length > 1 ? char[index] : char) + pattern.substr(patternIndex + index + 1)\r\n }));\r\n if (1 === indexes.length) {\r\n pattern = pattern.replace(\"0\" + char, char + char);\r\n pattern = pattern.replace(\"\\u0660\" + char, char + char)\r\n }\r\n return pattern\r\n};\r\nvar replaceChars = function(pattern, indexes, char, patternPositions) {\r\n var i;\r\n var index;\r\n var patternIndex;\r\n if (!checkDigit(pattern[indexes[0]] || \"0\")) {\r\n var letterCount = Math.max(indexes.length <= 3 ? 3 : 4, char.length);\r\n while (indexes.length > letterCount) {\r\n index = indexes.pop();\r\n patternIndex = patternPositions[index];\r\n patternPositions[index] = -1;\r\n for (i = index + 1; i < patternPositions.length; i++) {\r\n patternPositions[i]--\r\n }\r\n pattern = pattern.substr(0, patternIndex) + pattern.substr(patternIndex + 1)\r\n }\r\n index = indexes[indexes.length - 1] + 1, patternIndex = index < patternPositions.length ? patternPositions[index] : index;\r\n while (indexes.length < letterCount) {\r\n indexes.push(indexes[indexes.length - 1] + 1);\r\n for (i = index; i < patternPositions.length; i++) {\r\n patternPositions[i]++\r\n }\r\n pattern = pattern.substr(0, patternIndex) + \" \" + pattern.substr(patternIndex)\r\n }\r\n }\r\n pattern = replaceCharsCore(pattern, indexes, char, patternPositions);\r\n return pattern\r\n};\r\nvar formatValue = function(value, formatter) {\r\n if (Array.isArray(value)) {\r\n return value.map((function(value) {\r\n return (formatter(value) || \"\").toString()\r\n }))\r\n }\r\n return (formatter(value) || \"\").toString()\r\n};\r\nvar ESCAPE_CHARS_REGEXP = /[a-zA-Z]/g;\r\nvar escapeChars = function(pattern, defaultPattern, processedIndexes, patternPositions) {\r\n var escapeIndexes = defaultPattern.split(\"\").map((function(char, index) {\r\n if (processedIndexes.indexOf(index) < 0 && (char.match(ESCAPE_CHARS_REGEXP) || \"'\" === char)) {\r\n return patternPositions[index]\r\n }\r\n return -1\r\n }));\r\n pattern = pattern.split(\"\").map((function(char, index) {\r\n var result = char;\r\n var isCurrentCharEscaped = escapeIndexes.indexOf(index) >= 0;\r\n var isPrevCharEscaped = index > 0 && escapeIndexes.indexOf(index - 1) >= 0;\r\n var isNextCharEscaped = escapeIndexes.indexOf(index + 1) >= 0;\r\n if (isCurrentCharEscaped) {\r\n if (!isPrevCharEscaped) {\r\n result = \"'\" + result\r\n }\r\n if (!isNextCharEscaped) {\r\n result += \"'\"\r\n }\r\n }\r\n return result\r\n })).join(\"\");\r\n return pattern\r\n};\r\nexport var getFormat = function(formatter) {\r\n var processedIndexes = [];\r\n var defaultPattern = formatValue(new Date(2009, 8, 8, 6, 5, 4), formatter);\r\n var patternPositions = defaultPattern.split(\"\").map((function(_, index) {\r\n return index\r\n }));\r\n var result = defaultPattern;\r\n var replacedPatterns = {};\r\n var datePatterns = [{\r\n date: new Date(2009, 8, 8, 6, 5, 4, 111),\r\n pattern: \"S\"\r\n }, {\r\n date: new Date(2009, 8, 8, 6, 5, 2),\r\n pattern: \"s\"\r\n }, {\r\n date: new Date(2009, 8, 8, 6, 2, 4),\r\n pattern: \"m\"\r\n }, {\r\n date: new Date(2009, 8, 8, 18, 5, 4),\r\n pattern: \"H\",\r\n isDigit: true\r\n }, {\r\n date: new Date(2009, 8, 8, 2, 5, 4),\r\n pattern: \"h\",\r\n isDigit: true\r\n }, {\r\n date: new Date(2009, 8, 8, 18, 5, 4),\r\n pattern: \"a\",\r\n isDigit: false\r\n }, {\r\n date: new Date(2009, 8, 1, 6, 5, 4),\r\n pattern: \"d\"\r\n }, {\r\n date: [new Date(2009, 8, 2, 6, 5, 4), new Date(2009, 8, 3, 6, 5, 4), new Date(2009, 8, 4, 6, 5, 4)],\r\n pattern: \"E\"\r\n }, {\r\n date: new Date(2009, 9, 6, 6, 5, 4),\r\n pattern: \"M\"\r\n }, {\r\n date: new Date(1998, 8, 8, 6, 5, 4),\r\n pattern: \"y\"\r\n }];\r\n if (!result) {\r\n return\r\n }\r\n datePatterns.forEach((function(test) {\r\n var diff = getDifference(defaultPattern, formatValue(test.date, formatter), processedIndexes, test.isDigit);\r\n var pattern = \"M\" === test.pattern && !replacedPatterns.d ? \"L\" : test.pattern;\r\n result = replaceChars(result, diff, pattern, patternPositions);\r\n replacedPatterns[pattern] = diff.length\r\n }));\r\n result = escapeChars(result, defaultPattern, processedIndexes, patternPositions);\r\n if (processedIndexes.length) {\r\n return result\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/default_date_names.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n map\r\n} from \"../core/utils/iterator\";\r\nvar MONTHS = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\r\nvar DAYS = [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"];\r\nvar PERIODS = [\"AM\", \"PM\"];\r\nvar QUARTERS = [\"Q1\", \"Q2\", \"Q3\", \"Q4\"];\r\nvar cutCaptions = (captions, format) => {\r\n var lengthByFormat = {\r\n abbreviated: 3,\r\n short: 2,\r\n narrow: 1\r\n };\r\n return map(captions, caption => caption.substr(0, lengthByFormat[format]))\r\n};\r\nexport default {\r\n getMonthNames: function(format) {\r\n return cutCaptions(MONTHS, format)\r\n },\r\n getDayNames: function(format) {\r\n return cutCaptions(DAYS, format)\r\n },\r\n getQuarterNames: function(format) {\r\n return QUARTERS\r\n },\r\n getPeriodNames: function(format) {\r\n return PERIODS\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/format_helper.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isString,\r\n isNumeric,\r\n isFunction,\r\n isDefined,\r\n isDate,\r\n isPlainObject\r\n} from \"./core/utils/type\";\r\nimport dateUtils from \"./core/utils/date\";\r\nimport numberLocalization from \"./localization/number\";\r\nimport dateLocalization from \"./localization/date\";\r\nimport dependencyInjector from \"./core/utils/dependency_injector\";\r\nimport \"./localization/currency\";\r\nexport default dependencyInjector({\r\n format: function(value, _format) {\r\n var formatIsValid = isString(_format) && \"\" !== _format || isPlainObject(_format) || isFunction(_format);\r\n var valueIsValid = isNumeric(value) || isDate(value);\r\n if (!formatIsValid || !valueIsValid) {\r\n return isDefined(value) ? value.toString() : \"\"\r\n }\r\n if (isFunction(_format)) {\r\n return _format(value)\r\n }\r\n if (isString(_format)) {\r\n _format = {\r\n type: _format\r\n }\r\n }\r\n if (isNumeric(value)) {\r\n return numberLocalization.format(value, _format)\r\n }\r\n if (isDate(value)) {\r\n return dateLocalization.format(value, _format)\r\n }\r\n },\r\n getTimeFormat: function(showSecond) {\r\n return showSecond ? \"longtime\" : \"shorttime\"\r\n },\r\n _normalizeFormat: function(format) {\r\n if (!Array.isArray(format)) {\r\n return format\r\n }\r\n if (1 === format.length) {\r\n return format[0]\r\n }\r\n return function(date) {\r\n return format.map((function(formatPart) {\r\n return dateLocalization.format(date, formatPart)\r\n })).join(\" \")\r\n }\r\n },\r\n getDateFormatByDifferences: function(dateDifferences, intervalFormat) {\r\n var resultFormat = [];\r\n var needSpecialSecondFormatter = intervalFormat && dateDifferences.millisecond && !(dateDifferences.year || dateDifferences.month || dateDifferences.day);\r\n if (needSpecialSecondFormatter) {\r\n resultFormat.push((function(date) {\r\n return date.getSeconds() + date.getMilliseconds() / 1e3 + \"s\"\r\n }))\r\n } else if (dateDifferences.millisecond) {\r\n resultFormat.push(\"millisecond\")\r\n }\r\n if (dateDifferences.hour || dateDifferences.minute || !needSpecialSecondFormatter && dateDifferences.second) {\r\n resultFormat.unshift(this.getTimeFormat(dateDifferences.second))\r\n }\r\n if (dateDifferences.year && dateDifferences.month && dateDifferences.day) {\r\n if (intervalFormat && \"month\" === intervalFormat) {\r\n return \"monthandyear\"\r\n } else {\r\n resultFormat.unshift(\"shortdate\");\r\n return this._normalizeFormat(resultFormat)\r\n }\r\n }\r\n if (dateDifferences.year && dateDifferences.month) {\r\n return \"monthandyear\"\r\n }\r\n if (dateDifferences.year && dateDifferences.quarter) {\r\n return \"quarterandyear\"\r\n }\r\n if (dateDifferences.year) {\r\n return \"year\"\r\n }\r\n if (dateDifferences.quarter) {\r\n return \"quarter\"\r\n }\r\n if (dateDifferences.month && dateDifferences.day) {\r\n if (intervalFormat) {\r\n resultFormat.unshift((function(date) {\r\n return dateLocalization.getMonthNames(\"abbreviated\")[date.getMonth()] + \" \" + dateLocalization.format(date, \"day\")\r\n }))\r\n } else {\r\n resultFormat.unshift(\"monthandday\")\r\n }\r\n return this._normalizeFormat(resultFormat)\r\n }\r\n if (dateDifferences.month) {\r\n return \"month\"\r\n }\r\n if (dateDifferences.day) {\r\n if (intervalFormat) {\r\n resultFormat.unshift(\"day\")\r\n } else {\r\n resultFormat.unshift((function(date) {\r\n return dateLocalization.format(date, \"dayofweek\") + \", \" + dateLocalization.format(date, \"day\")\r\n }))\r\n }\r\n return this._normalizeFormat(resultFormat)\r\n }\r\n return this._normalizeFormat(resultFormat)\r\n },\r\n getDateFormatByTicks: function(ticks) {\r\n var maxDiff;\r\n var currentDiff;\r\n var i;\r\n if (ticks.length > 1) {\r\n maxDiff = dateUtils.getDatesDifferences(ticks[0], ticks[1]);\r\n for (i = 1; i < ticks.length - 1; i++) {\r\n currentDiff = dateUtils.getDatesDifferences(ticks[i], ticks[i + 1]);\r\n if (maxDiff.count < currentDiff.count) {\r\n maxDiff = currentDiff\r\n }\r\n }\r\n } else {\r\n maxDiff = {\r\n year: true,\r\n month: true,\r\n day: true,\r\n hour: ticks[0].getHours() > 0,\r\n minute: ticks[0].getMinutes() > 0,\r\n second: ticks[0].getSeconds() > 0,\r\n millisecond: ticks[0].getMilliseconds() > 0\r\n }\r\n }\r\n var resultFormat = this.getDateFormatByDifferences(maxDiff);\r\n return resultFormat\r\n },\r\n getDateFormatByTickInterval: function(startValue, endValue, tickInterval) {\r\n var dateUnitInterval;\r\n var correctDateDifferences = function(dateDifferences, tickInterval, value) {\r\n switch (tickInterval) {\r\n case \"year\":\r\n case \"quarter\":\r\n dateDifferences.month = value;\r\n case \"month\":\r\n dateDifferences.day = value;\r\n case \"week\":\r\n case \"day\":\r\n dateDifferences.hour = value;\r\n case \"hour\":\r\n dateDifferences.minute = value;\r\n case \"minute\":\r\n dateDifferences.second = value;\r\n case \"second\":\r\n dateDifferences.millisecond = value\r\n }\r\n };\r\n tickInterval = isString(tickInterval) ? tickInterval.toLowerCase() : tickInterval;\r\n var dateDifferences = dateUtils.getDatesDifferences(startValue, endValue);\r\n if (startValue !== endValue) {\r\n ! function(differences, minDate, maxDate) {\r\n if (!maxDate.getMilliseconds() && maxDate.getSeconds()) {\r\n if (maxDate.getSeconds() - minDate.getSeconds() === 1) {\r\n differences.millisecond = true;\r\n differences.second = false\r\n }\r\n } else if (!maxDate.getSeconds() && maxDate.getMinutes()) {\r\n if (maxDate.getMinutes() - minDate.getMinutes() === 1) {\r\n differences.second = true;\r\n differences.minute = false\r\n }\r\n } else if (!maxDate.getMinutes() && maxDate.getHours()) {\r\n if (maxDate.getHours() - minDate.getHours() === 1) {\r\n differences.minute = true;\r\n differences.hour = false\r\n }\r\n } else if (!maxDate.getHours() && maxDate.getDate() > 1) {\r\n if (maxDate.getDate() - minDate.getDate() === 1) {\r\n differences.hour = true;\r\n differences.day = false\r\n }\r\n } else if (1 === maxDate.getDate() && maxDate.getMonth()) {\r\n if (maxDate.getMonth() - minDate.getMonth() === 1) {\r\n differences.day = true;\r\n differences.month = false\r\n }\r\n } else if (!maxDate.getMonth() && maxDate.getFullYear()) {\r\n if (maxDate.getFullYear() - minDate.getFullYear() === 1) {\r\n differences.month = true;\r\n differences.year = false\r\n }\r\n }\r\n }(dateDifferences, startValue > endValue ? endValue : startValue, startValue > endValue ? startValue : endValue)\r\n }\r\n dateUnitInterval = dateUtils.getDateUnitInterval(dateDifferences);\r\n correctDateDifferences(dateDifferences, dateUnitInterval, true);\r\n dateUnitInterval = dateUtils.getDateUnitInterval(tickInterval || \"second\");\r\n correctDateDifferences(dateDifferences, dateUnitInterval, false);\r\n dateDifferences[{\r\n week: \"day\"\r\n } [dateUnitInterval] || dateUnitInterval] = true;\r\n var resultFormat = this.getDateFormatByDifferences(dateDifferences);\r\n return resultFormat\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/shared/filtering.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDate,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n map\r\n} from \"../../core/utils/iterator\";\r\nvar DEFAULT_DATE_INTERVAL = [\"year\", \"month\", \"day\"];\r\nvar DEFAULT_DATETIME_INTERVAL = [\"year\", \"month\", \"day\", \"hour\", \"minute\"];\r\nvar isDateType = function(dataType) {\r\n return \"date\" === dataType || \"datetime\" === dataType\r\n};\r\nvar getGroupInterval = function(column) {\r\n var index;\r\n var result = [];\r\n var dateIntervals = [\"year\", \"month\", \"day\", \"hour\", \"minute\", \"second\"];\r\n var groupInterval = column.headerFilter && column.headerFilter.groupInterval;\r\n var interval = \"quarter\" === groupInterval ? \"month\" : groupInterval;\r\n if (isDateType(column.dataType) && null !== groupInterval) {\r\n result = \"datetime\" === column.dataType ? DEFAULT_DATETIME_INTERVAL : DEFAULT_DATE_INTERVAL;\r\n index = dateIntervals.indexOf(interval);\r\n if (index >= 0) {\r\n result = dateIntervals.slice(0, index);\r\n result.push(groupInterval);\r\n return result\r\n }\r\n return result\r\n } else if (isDefined(groupInterval)) {\r\n return Array.isArray(groupInterval) ? groupInterval : [groupInterval]\r\n }\r\n};\r\nexport default (function() {\r\n var getFilterSelector = function(column, target) {\r\n var selector = column.dataField || column.selector;\r\n if (\"search\" === target) {\r\n selector = column.displayField || column.calculateDisplayValue || selector\r\n }\r\n return selector\r\n };\r\n var getFilterExpressionByRange = function(filterValue, target) {\r\n var endFilterValue;\r\n var startFilterExpression;\r\n var endFilterExpression;\r\n var selector = getFilterSelector(this, target);\r\n if (Array.isArray(filterValue) && isDefined(filterValue[0]) && isDefined(filterValue[1])) {\r\n startFilterExpression = [selector, \">=\", filterValue[0]];\r\n endFilterExpression = [selector, \"<=\", filterValue[1]];\r\n if (isDateType(this.dataType) && (date = filterValue[1], date.getHours() + date.getMinutes() + date.getSeconds() + date.getMilliseconds() < 1)) {\r\n endFilterValue = new Date(filterValue[1].getTime());\r\n if (\"date\" === this.dataType) {\r\n endFilterValue.setDate(filterValue[1].getDate() + 1)\r\n }\r\n endFilterExpression = [selector, \"<\", endFilterValue]\r\n }\r\n return [startFilterExpression, \"and\", endFilterExpression]\r\n }\r\n var date\r\n };\r\n var getFilterExpressionForDate = function(filterValue, selectedFilterOperation, target) {\r\n var dateStart;\r\n var dateEnd;\r\n var dateInterval;\r\n var values = function(dateValue) {\r\n if (isDate(dateValue)) {\r\n return [dateValue.getFullYear(), dateValue.getMonth(), dateValue.getDate(), dateValue.getHours(), dateValue.getMinutes(), dateValue.getSeconds()]\r\n }\r\n return map((\"\" + dateValue).split(\"/\"), (function(value, index) {\r\n return 1 === index ? Number(value) - 1 : Number(value)\r\n }))\r\n }(filterValue);\r\n var selector = getFilterSelector(this, target);\r\n if (\"headerFilter\" === target) {\r\n dateInterval = getGroupInterval(this)[values.length - 1]\r\n } else if (\"datetime\" === this.dataType) {\r\n dateInterval = \"minute\"\r\n }\r\n switch (dateInterval) {\r\n case \"year\":\r\n dateStart = new Date(values[0], 0, 1);\r\n dateEnd = new Date(values[0] + 1, 0, 1);\r\n break;\r\n case \"month\":\r\n dateStart = new Date(values[0], values[1], 1);\r\n dateEnd = new Date(values[0], values[1] + 1, 1);\r\n break;\r\n case \"quarter\":\r\n dateStart = new Date(values[0], 3 * values[1], 1);\r\n dateEnd = new Date(values[0], 3 * values[1] + 3, 1);\r\n break;\r\n case \"hour\":\r\n dateStart = new Date(values[0], values[1], values[2], values[3]);\r\n dateEnd = new Date(values[0], values[1], values[2], values[3] + 1);\r\n break;\r\n case \"minute\":\r\n dateStart = new Date(values[0], values[1], values[2], values[3], values[4]);\r\n dateEnd = new Date(values[0], values[1], values[2], values[3], values[4] + 1);\r\n break;\r\n case \"second\":\r\n dateStart = new Date(values[0], values[1], values[2], values[3], values[4], values[5]);\r\n dateEnd = new Date(values[0], values[1], values[2], values[3], values[4], values[5] + 1);\r\n break;\r\n default:\r\n dateStart = new Date(values[0], values[1], values[2]);\r\n dateEnd = new Date(values[0], values[1], values[2] + 1)\r\n }\r\n switch (selectedFilterOperation) {\r\n case \"<\":\r\n return [selector, \"<\", dateStart];\r\n case \"<=\":\r\n return [selector, \"<\", dateEnd];\r\n case \">\":\r\n return [selector, \">=\", dateEnd];\r\n case \">=\":\r\n return [selector, \">=\", dateStart];\r\n case \"<>\":\r\n return [\r\n [selector, \"<\", dateStart], \"or\", [selector, \">=\", dateEnd]\r\n ];\r\n default:\r\n return [\r\n [selector, \">=\", dateStart], \"and\", [selector, \"<\", dateEnd]\r\n ]\r\n }\r\n };\r\n var getFilterExpressionForNumber = function(filterValue, selectedFilterOperation, target) {\r\n var selector = getFilterSelector(this, target);\r\n var groupInterval = getGroupInterval(this);\r\n if (\"headerFilter\" === target && groupInterval && isDefined(filterValue)) {\r\n var values = (\"\" + filterValue).split(\"/\");\r\n var value = Number(values[values.length - 1]);\r\n var interval = groupInterval[values.length - 1];\r\n var startFilterValue = [selector, \">=\", value];\r\n var endFilterValue = [selector, \"<\", value + interval];\r\n var condition = [startFilterValue, \"and\", endFilterValue];\r\n return condition\r\n }\r\n return [selector, selectedFilterOperation || \"=\", filterValue]\r\n };\r\n return {\r\n defaultCalculateFilterExpression: function(filterValue, selectedFilterOperation, target) {\r\n var column = this;\r\n var selector = getFilterSelector(column, target);\r\n var isSearchByDisplayValue = column.calculateDisplayValue && \"search\" === target;\r\n var dataType = isSearchByDisplayValue && column.lookup && column.lookup.dataType || column.dataType;\r\n var filter = null;\r\n if ((\"headerFilter\" === target || \"filterBuilder\" === target) && null === filterValue) {\r\n filter = [selector, selectedFilterOperation || \"=\", null];\r\n if (\"string\" === dataType) {\r\n filter = [filter, \"=\" === selectedFilterOperation ? \"or\" : \"and\", [selector, selectedFilterOperation || \"=\", \"\"]]\r\n }\r\n } else if (\"string\" === dataType && (!column.lookup || isSearchByDisplayValue)) {\r\n filter = [selector, selectedFilterOperation || \"contains\", filterValue]\r\n } else if (\"between\" === selectedFilterOperation) {\r\n return getFilterExpressionByRange.apply(column, [filterValue, target])\r\n } else if (isDateType(dataType) && isDefined(filterValue)) {\r\n return getFilterExpressionForDate.apply(column, arguments)\r\n } else if (\"number\" === dataType) {\r\n return getFilterExpressionForNumber.apply(column, arguments)\r\n } else {\r\n filter = [selector, selectedFilterOperation || \"=\", filterValue]\r\n }\r\n return filter\r\n },\r\n getGroupInterval: getGroupInterval\r\n }\r\n}());\r\n","/**\r\n * DevExtreme (esm/localization/ldml/date.parser.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n escapeRegExp\r\n} from \"../../core/utils/common\";\r\nimport {\r\n logger\r\n} from \"../../core/utils/console\";\r\nvar FORMAT_TYPES = {\r\n 3: \"abbreviated\",\r\n 4: \"wide\",\r\n 5: \"narrow\"\r\n};\r\nvar monthRegExpGenerator = function(count, dateParts) {\r\n if (count > 2) {\r\n return Object.keys(FORMAT_TYPES).map((function(count) {\r\n return [\"format\", \"standalone\"].map((function(type) {\r\n return dateParts.getMonthNames(FORMAT_TYPES[count], type).join(\"|\")\r\n })).join(\"|\")\r\n })).join(\"|\")\r\n }\r\n return 2 === count ? \"1[012]|0?[1-9]\" : \"0??[1-9]|1[012]\"\r\n};\r\nvar PATTERN_REGEXPS = {\r\n \":\": function(count, dateParts) {\r\n var countSuffix = count > 1 ? \"{\".concat(count, \"}\") : \"\";\r\n var timeSeparator = escapeRegExp(dateParts.getTimeSeparator());\r\n \":\" !== timeSeparator && (timeSeparator = \"\".concat(timeSeparator, \"|:\"));\r\n return \"\".concat(timeSeparator).concat(countSuffix)\r\n },\r\n y: function(count) {\r\n return 2 === count ? \"[0-9]{\".concat(count, \"}\") : \"[0-9]+?\"\r\n },\r\n M: monthRegExpGenerator,\r\n L: monthRegExpGenerator,\r\n Q: function(count, dateParts) {\r\n if (count > 2) {\r\n return dateParts.getQuarterNames(FORMAT_TYPES[count], \"format\").join(\"|\")\r\n }\r\n return \"0?[1-4]\"\r\n },\r\n E: function(count, dateParts) {\r\n return \"\\\\D*\"\r\n },\r\n a: function(count, dateParts) {\r\n return dateParts.getPeriodNames(FORMAT_TYPES[count < 3 ? 3 : count], \"format\").join(\"|\")\r\n },\r\n d: function(count) {\r\n return 2 === count ? \"3[01]|[12][0-9]|0?[1-9]\" : \"0??[1-9]|[12][0-9]|3[01]\"\r\n },\r\n H: function(count) {\r\n return 2 === count ? \"2[0-3]|1[0-9]|0?[0-9]\" : \"0??[0-9]|1[0-9]|2[0-3]\"\r\n },\r\n h: function(count) {\r\n return 2 === count ? \"1[012]|0?[1-9]\" : \"0??[1-9]|1[012]\"\r\n },\r\n m: function(count) {\r\n return 2 === count ? \"[1-5][0-9]|0?[0-9]\" : \"0??[0-9]|[1-5][0-9]\"\r\n },\r\n s: function(count) {\r\n return 2 === count ? \"[1-5][0-9]|0?[0-9]\" : \"0??[0-9]|[1-5][0-9]\"\r\n },\r\n S: function(count) {\r\n return \"[0-9]{1,\".concat(count, \"}\")\r\n },\r\n w: function(count) {\r\n return 2 === count ? \"[1-5][0-9]|0?[0-9]\" : \"0??[0-9]|[1-5][0-9]\"\r\n }\r\n};\r\nvar parseNumber = Number;\r\nvar caseInsensitiveIndexOf = function(array, value) {\r\n return array.map(item => item.toLowerCase()).indexOf(value.toLowerCase())\r\n};\r\nvar monthPatternParser = function(text, count, dateParts) {\r\n if (count > 2) {\r\n return [\"format\", \"standalone\"].map((function(type) {\r\n return Object.keys(FORMAT_TYPES).map((function(count) {\r\n var monthNames = dateParts.getMonthNames(FORMAT_TYPES[count], type);\r\n return caseInsensitiveIndexOf(monthNames, text)\r\n }))\r\n })).reduce((function(a, b) {\r\n return a.concat(b)\r\n })).filter((function(index) {\r\n return index >= 0\r\n }))[0]\r\n }\r\n return parseNumber(text) - 1\r\n};\r\nvar PATTERN_PARSERS = {\r\n y: function(text, count) {\r\n var year = parseNumber(text);\r\n if (2 === count) {\r\n return year < 30 ? 2e3 + year : 1900 + year\r\n }\r\n return year\r\n },\r\n M: monthPatternParser,\r\n L: monthPatternParser,\r\n Q: function(text, count, dateParts) {\r\n if (count > 2) {\r\n return dateParts.getQuarterNames(FORMAT_TYPES[count], \"format\").indexOf(text)\r\n }\r\n return parseNumber(text) - 1\r\n },\r\n E: function(text, count, dateParts) {\r\n var dayNames = dateParts.getDayNames(FORMAT_TYPES[count < 3 ? 3 : count], \"format\");\r\n return caseInsensitiveIndexOf(dayNames, text)\r\n },\r\n a: function(text, count, dateParts) {\r\n var periodNames = dateParts.getPeriodNames(FORMAT_TYPES[count < 3 ? 3 : count], \"format\");\r\n return caseInsensitiveIndexOf(periodNames, text)\r\n },\r\n d: parseNumber,\r\n H: parseNumber,\r\n h: parseNumber,\r\n m: parseNumber,\r\n s: parseNumber,\r\n S: function(text, count) {\r\n count = Math.max(count, 3);\r\n text = text.slice(0, 3);\r\n while (count < 3) {\r\n text += \"0\";\r\n count++\r\n }\r\n return parseNumber(text)\r\n }\r\n};\r\nvar ORDERED_PATTERNS = [\"y\", \"M\", \"d\", \"h\", \"m\", \"s\", \"S\"];\r\nvar PATTERN_SETTERS = {\r\n y: \"setFullYear\",\r\n M: \"setMonth\",\r\n L: \"setMonth\",\r\n a: function(date, value, datePartValues) {\r\n var hours = date.getHours();\r\n var hourPartValue = datePartValues.h;\r\n if (void 0 !== hourPartValue && hourPartValue !== hours) {\r\n hours--\r\n }\r\n if (!value && 12 === hours) {\r\n hours = 0\r\n } else if (value && 12 !== hours) {\r\n hours += 12\r\n }\r\n date.setHours(hours)\r\n },\r\n d: \"setDate\",\r\n H: \"setHours\",\r\n h: \"setHours\",\r\n m: \"setMinutes\",\r\n s: \"setSeconds\",\r\n S: \"setMilliseconds\"\r\n};\r\nvar getSameCharCount = function(text, index) {\r\n var char = text[index];\r\n if (!char) {\r\n return 0\r\n }\r\n var count = 0;\r\n do {\r\n index++;\r\n count++\r\n } while (text[index] === char);\r\n return count\r\n};\r\nvar createPattern = function(char, count) {\r\n var result = \"\";\r\n for (var i = 0; i < count; i++) {\r\n result += char\r\n }\r\n return result\r\n};\r\nexport var getRegExpInfo = function(format, dateParts) {\r\n var regexpText = \"\";\r\n var stubText = \"\";\r\n var isEscaping;\r\n var patterns = [];\r\n var addPreviousStub = function() {\r\n if (stubText) {\r\n patterns.push(\"'\".concat(stubText, \"'\"));\r\n regexpText += \"\".concat(escapeRegExp(stubText), \")\");\r\n stubText = \"\"\r\n }\r\n };\r\n for (var i = 0; i < format.length; i++) {\r\n var char = format[i];\r\n var isEscapeChar = \"'\" === char;\r\n var regexpPart = PATTERN_REGEXPS[char];\r\n if (isEscapeChar) {\r\n isEscaping = !isEscaping;\r\n if (\"'\" !== format[i - 1]) {\r\n continue\r\n }\r\n }\r\n if (regexpPart && !isEscaping) {\r\n var count = getSameCharCount(format, i);\r\n var pattern = createPattern(char, count);\r\n addPreviousStub();\r\n patterns.push(pattern);\r\n regexpText += \"(\".concat(regexpPart(count, dateParts), \")\");\r\n i += count - 1\r\n } else {\r\n if (!stubText) {\r\n regexpText += \"(\"\r\n }\r\n stubText += char\r\n }\r\n }\r\n addPreviousStub();\r\n if (!isPossibleForParsingFormat(patterns)) {\r\n logger.warn(\"The following format may be parsed incorrectly: \".concat(format, \".\"))\r\n }\r\n return {\r\n patterns: patterns,\r\n regexp: new RegExp(\"^\".concat(regexpText, \"$\"), \"i\")\r\n }\r\n};\r\nvar digitFieldSymbols = [\"d\", \"H\", \"h\", \"m\", \"s\", \"w\", \"M\", \"L\", \"Q\"];\r\nexport var isPossibleForParsingFormat = function(patterns) {\r\n var isDigitPattern = pattern => {\r\n if (!pattern) {\r\n return false\r\n }\r\n var char = pattern[0];\r\n return [\"y\", \"S\"].includes(char) || digitFieldSymbols.includes(char) && pattern.length < 3\r\n };\r\n var possibleForParsing = true;\r\n var ambiguousDigitPatternsCount = 0;\r\n return patterns.every((pattern, index, patterns) => {\r\n if (isDigitPattern(pattern)) {\r\n if ((pattern => \"S\" !== pattern[0] && 2 !== pattern.length)(pattern)) {\r\n possibleForParsing = ++ambiguousDigitPatternsCount < 2\r\n }\r\n if (!isDigitPattern(patterns[index + 1])) {\r\n ambiguousDigitPatternsCount = 0\r\n }\r\n }\r\n return possibleForParsing\r\n })\r\n};\r\nexport var getPatternSetters = function() {\r\n return PATTERN_SETTERS\r\n};\r\nvar setPatternPart = function(date, pattern, text, dateParts, datePartValues) {\r\n var patternChar = pattern[0];\r\n var partSetter = PATTERN_SETTERS[patternChar];\r\n var partParser = PATTERN_PARSERS[patternChar];\r\n if (partSetter && partParser) {\r\n var value = partParser(text, pattern.length, dateParts);\r\n datePartValues[pattern] = value;\r\n if (date[partSetter]) {\r\n date[partSetter](value)\r\n } else {\r\n partSetter(date, value, datePartValues)\r\n }\r\n }\r\n};\r\nvar setPatternPartFromNow = function(date, pattern, now) {\r\n var setterName = PATTERN_SETTERS[pattern];\r\n var getterName = \"g\" + setterName.substr(1);\r\n var value = now[getterName]();\r\n date[setterName](value)\r\n};\r\nvar getShortPatterns = function(fullPatterns) {\r\n return fullPatterns.map((function(pattern) {\r\n if (\"'\" === pattern[0]) {\r\n return \"\"\r\n } else {\r\n return \"H\" === pattern[0] ? \"h\" : pattern[0]\r\n }\r\n }))\r\n};\r\nvar getMaxOrderedPatternIndex = function(patterns) {\r\n var indexes = patterns.map((function(pattern) {\r\n return ORDERED_PATTERNS.indexOf(pattern)\r\n }));\r\n return Math.max.apply(Math, indexes)\r\n};\r\nvar getOrderedFormatPatterns = function(formatPatterns) {\r\n var otherPatterns = formatPatterns.filter((function(pattern) {\r\n return ORDERED_PATTERNS.indexOf(pattern) < 0\r\n }));\r\n return ORDERED_PATTERNS.concat(otherPatterns)\r\n};\r\nexport var getParser = function(format, dateParts) {\r\n var regExpInfo = getRegExpInfo(format, dateParts);\r\n return function(text) {\r\n var regExpResult = regExpInfo.regexp.exec(text);\r\n if (regExpResult) {\r\n var now = new Date;\r\n var date = new Date(now.getFullYear(), 0, 1);\r\n var formatPatterns = getShortPatterns(regExpInfo.patterns);\r\n var maxPatternIndex = getMaxOrderedPatternIndex(formatPatterns);\r\n var orderedFormatPatterns = getOrderedFormatPatterns(formatPatterns);\r\n var datePartValues = {};\r\n orderedFormatPatterns.forEach((function(pattern, index) {\r\n if (!pattern || index < ORDERED_PATTERNS.length && index > maxPatternIndex) {\r\n return\r\n }\r\n var patternIndex = formatPatterns.indexOf(pattern);\r\n if (patternIndex >= 0) {\r\n var regExpPattern = regExpInfo.patterns[patternIndex];\r\n var regExpText = regExpResult[patternIndex + 1];\r\n setPatternPart(date, regExpPattern, regExpText, dateParts, datePartValues)\r\n } else {\r\n setPatternPartFromNow(date, pattern, now)\r\n }\r\n }));\r\n return date\r\n }\r\n return null\r\n }\r\n};\r\n","/*!\n\nJSZip v3.10.1 - A JavaScript class for generating and reading zip files\n\n\n(c) 2009-2016 Stuart Knightley \nDual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown.\n\nJSZip uses the library pako released under the MIT license :\nhttps://github.com/nodeca/pako/blob/main/LICENSE\n*/\n\n!function(e){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{(\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this).JSZip=e()}}(function(){return function s(a,o,h){function u(r,e){if(!o[r]){if(!a[r]){var t=\"function\"==typeof require&&require;if(!e&&t)return t(r,!0);if(l)return l(r,!0);var n=new Error(\"Cannot find module '\"+r+\"'\");throw n.code=\"MODULE_NOT_FOUND\",n}var i=o[r]={exports:{}};a[r][0].call(i.exports,function(e){var t=a[r][1][e];return u(t||e)},i,i.exports,s,a,o,h)}return o[r].exports}for(var l=\"function\"==typeof require&&require,e=0;e>2,s=(3&t)<<4|r>>4,a=1>6:64,o=2>4,r=(15&i)<<4|(s=p.indexOf(e.charAt(o++)))>>2,n=(3&s)<<6|(a=p.indexOf(e.charAt(o++))),l[h++]=t,64!==s&&(l[h++]=r),64!==a&&(l[h++]=n);return l}},{\"./support\":30,\"./utils\":32}],2:[function(e,t,r){\"use strict\";var n=e(\"./external\"),i=e(\"./stream/DataWorker\"),s=e(\"./stream/Crc32Probe\"),a=e(\"./stream/DataLengthProbe\");function o(e,t,r,n,i){this.compressedSize=e,this.uncompressedSize=t,this.crc32=r,this.compression=n,this.compressedContent=i}o.prototype={getContentWorker:function(){var e=new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a(\"data_length\")),t=this;return e.on(\"end\",function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error(\"Bug : uncompressed data size mismatch\")}),e},getCompressedWorker:function(){return new i(n.Promise.resolve(this.compressedContent)).withStreamInfo(\"compressedSize\",this.compressedSize).withStreamInfo(\"uncompressedSize\",this.uncompressedSize).withStreamInfo(\"crc32\",this.crc32).withStreamInfo(\"compression\",this.compression)}},o.createWorkerFrom=function(e,t,r){return e.pipe(new s).pipe(new a(\"uncompressedSize\")).pipe(t.compressWorker(r)).pipe(new a(\"compressedSize\")).withStreamInfo(\"compression\",t)},t.exports=o},{\"./external\":6,\"./stream/Crc32Probe\":25,\"./stream/DataLengthProbe\":26,\"./stream/DataWorker\":27}],3:[function(e,t,r){\"use strict\";var n=e(\"./stream/GenericWorker\");r.STORE={magic:\"\\0\\0\",compressWorker:function(){return new n(\"STORE compression\")},uncompressWorker:function(){return new n(\"STORE decompression\")}},r.DEFLATE=e(\"./flate\")},{\"./flate\":7,\"./stream/GenericWorker\":28}],4:[function(e,t,r){\"use strict\";var n=e(\"./utils\");var o=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t){return void 0!==e&&e.length?\"string\"!==n.getTypeOf(e)?function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t[a])];return-1^e}(0|t,e,e.length,0):function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t.charCodeAt(a))];return-1^e}(0|t,e,e.length,0):0}},{\"./utils\":32}],5:[function(e,t,r){\"use strict\";r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(e,t,r){\"use strict\";var n=null;n=\"undefined\"!=typeof Promise?Promise:e(\"lie\"),t.exports={Promise:n}},{lie:37}],7:[function(e,t,r){\"use strict\";var n=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Uint32Array,i=e(\"pako\"),s=e(\"./utils\"),a=e(\"./stream/GenericWorker\"),o=n?\"uint8array\":\"array\";function h(e,t){a.call(this,\"FlateWorker/\"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={}}r.magic=\"\\b\\0\",s.inherits(h,a),h.prototype.processChunk=function(e){this.meta=e.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(o,e.data),!1)},h.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},h.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null},h.prototype._createPako=function(){this._pako=new i[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var t=this;this._pako.onData=function(e){t.push({data:e,meta:t.meta})}},r.compressWorker=function(e){return new h(\"Deflate\",e)},r.uncompressWorker=function(){return new h(\"Inflate\",{})}},{\"./stream/GenericWorker\":28,\"./utils\":32,pako:38}],8:[function(e,t,r){\"use strict\";function A(e,t){var r,n=\"\";for(r=0;r>>=8;return n}function n(e,t,r,n,i,s){var a,o,h=e.file,u=e.compression,l=s!==O.utf8encode,f=I.transformTo(\"string\",s(h.name)),c=I.transformTo(\"string\",O.utf8encode(h.name)),d=h.comment,p=I.transformTo(\"string\",s(d)),m=I.transformTo(\"string\",O.utf8encode(d)),_=c.length!==h.name.length,g=m.length!==d.length,b=\"\",v=\"\",y=\"\",w=h.dir,k=h.date,x={crc32:0,compressedSize:0,uncompressedSize:0};t&&!r||(x.crc32=e.crc32,x.compressedSize=e.compressedSize,x.uncompressedSize=e.uncompressedSize);var S=0;t&&(S|=8),l||!_&&!g||(S|=2048);var z=0,C=0;w&&(z|=16),\"UNIX\"===i?(C=798,z|=function(e,t){var r=e;return e||(r=t?16893:33204),(65535&r)<<16}(h.unixPermissions,w)):(C=20,z|=function(e){return 63&(e||0)}(h.dosPermissions)),a=k.getUTCHours(),a<<=6,a|=k.getUTCMinutes(),a<<=5,a|=k.getUTCSeconds()/2,o=k.getUTCFullYear()-1980,o<<=4,o|=k.getUTCMonth()+1,o<<=5,o|=k.getUTCDate(),_&&(v=A(1,1)+A(B(f),4)+c,b+=\"up\"+A(v.length,2)+v),g&&(y=A(1,1)+A(B(p),4)+m,b+=\"uc\"+A(y.length,2)+y);var E=\"\";return E+=\"\\n\\0\",E+=A(S,2),E+=u.magic,E+=A(a,2),E+=A(o,2),E+=A(x.crc32,4),E+=A(x.compressedSize,4),E+=A(x.uncompressedSize,4),E+=A(f.length,2),E+=A(b.length,2),{fileRecord:R.LOCAL_FILE_HEADER+E+f+b,dirRecord:R.CENTRAL_FILE_HEADER+A(C,2)+E+A(p.length,2)+\"\\0\\0\\0\\0\"+A(z,4)+A(n,4)+f+b+p}}var I=e(\"../utils\"),i=e(\"../stream/GenericWorker\"),O=e(\"../utf8\"),B=e(\"../crc32\"),R=e(\"../signature\");function s(e,t,r,n){i.call(this,\"ZipFileWorker\"),this.bytesWritten=0,this.zipComment=t,this.zipPlatform=r,this.encodeFileName=n,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}I.inherits(s,i),s.prototype.push=function(e){var t=e.meta.percent||0,r=this.entriesCount,n=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,i.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:r?(t+100*(r-n-1))/r:100}}))},s.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var r=n(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},s.prototype.closedSource=function(e){this.accumulate=!1;var t=this.streamFiles&&!e.file.dir,r=n(e,t,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),t)this.push({data:function(e){return R.DATA_DESCRIPTOR+A(e.crc32,4)+A(e.compressedSize,4)+A(e.uncompressedSize,4)}(e),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},s.prototype.flush=function(){for(var e=this.bytesWritten,t=0;t=this.index;t--)r=(r<<8)+this.byteAt(t);return this.index+=e,r},readString:function(e){return n.transformTo(\"string\",this.readData(e))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC(1980+(e>>25&127),(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(31&e)<<1))}},t.exports=i},{\"../utils\":32}],19:[function(e,t,r){\"use strict\";var n=e(\"./Uint8ArrayReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./Uint8ArrayReader\":21}],20:[function(e,t,r){\"use strict\";var n=e(\"./DataReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)},i.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero},i.prototype.readAndCheckSignature=function(e){return e===this.readData(4)},i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./DataReader\":18}],21:[function(e,t,r){\"use strict\";var n=e(\"./ArrayReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return new Uint8Array(0);var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./ArrayReader\":17}],22:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"../support\"),s=e(\"./ArrayReader\"),a=e(\"./StringReader\"),o=e(\"./NodeBufferReader\"),h=e(\"./Uint8ArrayReader\");t.exports=function(e){var t=n.getTypeOf(e);return n.checkSupport(t),\"string\"!==t||i.uint8array?\"nodebuffer\"===t?new o(e):i.uint8array?new h(n.transformTo(\"uint8array\",e)):new s(n.transformTo(\"array\",e)):new a(e)}},{\"../support\":30,\"../utils\":32,\"./ArrayReader\":17,\"./NodeBufferReader\":19,\"./StringReader\":20,\"./Uint8ArrayReader\":21}],23:[function(e,t,r){\"use strict\";r.LOCAL_FILE_HEADER=\"PK\u0003\u0004\",r.CENTRAL_FILE_HEADER=\"PK\u0001\u0002\",r.CENTRAL_DIRECTORY_END=\"PK\u0005\u0006\",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR=\"PK\u0006\u0007\",r.ZIP64_CENTRAL_DIRECTORY_END=\"PK\u0006\u0006\",r.DATA_DESCRIPTOR=\"PK\u0007\\b\"},{}],24:[function(e,t,r){\"use strict\";var n=e(\"./GenericWorker\"),i=e(\"../utils\");function s(e){n.call(this,\"ConvertWorker to \"+e),this.destType=e}i.inherits(s,n),s.prototype.processChunk=function(e){this.push({data:i.transformTo(this.destType,e.data),meta:e.meta})},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],25:[function(e,t,r){\"use strict\";var n=e(\"./GenericWorker\"),i=e(\"../crc32\");function s(){n.call(this,\"Crc32Probe\"),this.withStreamInfo(\"crc32\",0)}e(\"../utils\").inherits(s,n),s.prototype.processChunk=function(e){this.streamInfo.crc32=i(e.data,this.streamInfo.crc32||0),this.push(e)},t.exports=s},{\"../crc32\":4,\"../utils\":32,\"./GenericWorker\":28}],26:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"./GenericWorker\");function s(e){i.call(this,\"DataLengthProbe for \"+e),this.propName=e,this.withStreamInfo(e,0)}n.inherits(s,i),s.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length}i.prototype.processChunk.call(this,e)},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],27:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"./GenericWorker\");function s(e){i.call(this,\"DataWorker\");var t=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type=\"\",this._tickScheduled=!1,e.then(function(e){t.dataIsReady=!0,t.data=e,t.max=e&&e.length||0,t.type=n.getTypeOf(e),t.isPaused||t._tickAndRepeat()},function(e){t.error(e)})}n.inherits(s,i),s.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,n.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(n.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var e=null,t=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case\"string\":e=this.data.substring(this.index,t);break;case\"uint8array\":e=this.data.subarray(this.index,t);break;case\"array\":case\"nodebuffer\":e=this.data.slice(this.index,t)}return this.index=t,this.push({data:e,meta:{percent:this.max?this.index/this.max*100:0}})},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],28:[function(e,t,r){\"use strict\";function n(e){this.name=e||\"default\",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}n.prototype={push:function(e){this.emit(\"data\",e)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit(\"end\"),this.cleanUp(),this.isFinished=!0}catch(e){this.emit(\"error\",e)}return!0},error:function(e){return!this.isFinished&&(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit(\"error\",e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,t){return this._listeners[e].push(t),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(e,t){if(this._listeners[e])for(var r=0;r \"+e:e}},t.exports=n},{}],29:[function(e,t,r){\"use strict\";var h=e(\"../utils\"),i=e(\"./ConvertWorker\"),s=e(\"./GenericWorker\"),u=e(\"../base64\"),n=e(\"../support\"),a=e(\"../external\"),o=null;if(n.nodestream)try{o=e(\"../nodejs/NodejsStreamOutputAdapter\")}catch(e){}function l(e,o){return new a.Promise(function(t,r){var n=[],i=e._internalType,s=e._outputType,a=e._mimeType;e.on(\"data\",function(e,t){n.push(e),o&&o(t)}).on(\"error\",function(e){n=[],r(e)}).on(\"end\",function(){try{var e=function(e,t,r){switch(e){case\"blob\":return h.newBlob(h.transformTo(\"arraybuffer\",t),r);case\"base64\":return u.encode(t);default:return h.transformTo(e,t)}}(s,function(e,t){var r,n=0,i=null,s=0;for(r=0;r>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t}(e)},s.utf8decode=function(e){return h.nodebuffer?o.transformTo(\"nodebuffer\",e).toString(\"utf-8\"):function(e){var t,r,n,i,s=e.length,a=new Array(2*s);for(t=r=0;t>10&1023,a[r++]=56320|1023&n)}return a.length!==r&&(a.subarray?a=a.subarray(0,r):a.length=r),o.applyFromCharCode(a)}(e=o.transformTo(h.uint8array?\"uint8array\":\"array\",e))},o.inherits(a,n),a.prototype.processChunk=function(e){var t=o.transformTo(h.uint8array?\"uint8array\":\"array\",e.data);if(this.leftOver&&this.leftOver.length){if(h.uint8array){var r=t;(t=new Uint8Array(r.length+this.leftOver.length)).set(this.leftOver,0),t.set(r,this.leftOver.length)}else t=this.leftOver.concat(t);this.leftOver=null}var n=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t}(t),i=t;n!==t.length&&(h.uint8array?(i=t.subarray(0,n),this.leftOver=t.subarray(n,t.length)):(i=t.slice(0,n),this.leftOver=t.slice(n,t.length))),this.push({data:s.utf8decode(i),meta:e.meta})},a.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:s.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},s.Utf8DecodeWorker=a,o.inherits(l,n),l.prototype.processChunk=function(e){this.push({data:s.utf8encode(e.data),meta:e.meta})},s.Utf8EncodeWorker=l},{\"./nodejsUtils\":14,\"./stream/GenericWorker\":28,\"./support\":30,\"./utils\":32}],32:[function(e,t,a){\"use strict\";var o=e(\"./support\"),h=e(\"./base64\"),r=e(\"./nodejsUtils\"),u=e(\"./external\");function n(e){return e}function l(e,t){for(var r=0;r>8;this.dir=!!(16&this.externalFileAttributes),0==e&&(this.dosPermissions=63&this.externalFileAttributes),3==e&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||\"/\"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var e=n(this.extraFields[1].value);this.uncompressedSize===s.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===s.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===s.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===s.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(e){var t,r,n,i=e.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});e.index+4>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t},r.buf2binstring=function(e){return l(e,e.length)},r.binstring2buf=function(e){for(var t=new h.Buf8(e.length),r=0,n=t.length;r>10&1023,o[n++]=56320|1023&i)}return l(o,n)},r.utf8border=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t}},{\"./common\":41}],43:[function(e,t,r){\"use strict\";t.exports=function(e,t,r,n){for(var i=65535&e|0,s=e>>>16&65535|0,a=0;0!==r;){for(r-=a=2e3>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t[a])];return-1^e}},{}],46:[function(e,t,r){\"use strict\";var h,c=e(\"../utils/common\"),u=e(\"./trees\"),d=e(\"./adler32\"),p=e(\"./crc32\"),n=e(\"./messages\"),l=0,f=4,m=0,_=-2,g=-1,b=4,i=2,v=8,y=9,s=286,a=30,o=19,w=2*s+1,k=15,x=3,S=258,z=S+x+1,C=42,E=113,A=1,I=2,O=3,B=4;function R(e,t){return e.msg=n[t],t}function T(e){return(e<<1)-(4e.avail_out&&(r=e.avail_out),0!==r&&(c.arraySet(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,0===t.pending&&(t.pending_out=0))}function N(e,t){u._tr_flush_block(e,0<=e.block_start?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,F(e.strm)}function U(e,t){e.pending_buf[e.pending++]=t}function P(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function L(e,t){var r,n,i=e.max_chain_length,s=e.strstart,a=e.prev_length,o=e.nice_match,h=e.strstart>e.w_size-z?e.strstart-(e.w_size-z):0,u=e.window,l=e.w_mask,f=e.prev,c=e.strstart+S,d=u[s+a-1],p=u[s+a];e.prev_length>=e.good_match&&(i>>=2),o>e.lookahead&&(o=e.lookahead);do{if(u[(r=t)+a]===p&&u[r+a-1]===d&&u[r]===u[s]&&u[++r]===u[s+1]){s+=2,r++;do{}while(u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&sh&&0!=--i);return a<=e.lookahead?a:e.lookahead}function j(e){var t,r,n,i,s,a,o,h,u,l,f=e.w_size;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=f+(f-z)){for(c.arraySet(e.window,e.window,f,f,0),e.match_start-=f,e.strstart-=f,e.block_start-=f,t=r=e.hash_size;n=e.head[--t],e.head[t]=f<=n?n-f:0,--r;);for(t=r=f;n=e.prev[--t],e.prev[t]=f<=n?n-f:0,--r;);i+=f}if(0===e.strm.avail_in)break;if(a=e.strm,o=e.window,h=e.strstart+e.lookahead,u=i,l=void 0,l=a.avail_in,u=x)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=(e.ins_h<=x&&(e.ins_h=(e.ins_h<=x)if(n=u._tr_tally(e,e.strstart-e.match_start,e.match_length-x),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=x){for(e.match_length--;e.strstart++,e.ins_h=(e.ins_h<=x&&(e.ins_h=(e.ins_h<=x&&e.match_length<=e.prev_length){for(i=e.strstart+e.lookahead-x,n=u._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-x),e.lookahead-=e.prev_length-1,e.prev_length-=2;++e.strstart<=i&&(e.ins_h=(e.ins_h<e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(j(e),0===e.lookahead&&t===l)return A;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+r;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,N(e,!1),0===e.strm.avail_out))return A;if(e.strstart-e.block_start>=e.w_size-z&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):(e.strstart>e.block_start&&(N(e,!1),e.strm.avail_out),A)}),new M(4,4,8,4,Z),new M(4,5,16,8,Z),new M(4,6,32,32,Z),new M(4,4,16,16,W),new M(8,16,32,32,W),new M(8,16,128,128,W),new M(8,32,128,256,W),new M(32,128,258,1024,W),new M(32,258,258,4096,W)],r.deflateInit=function(e,t){return Y(e,t,v,15,8,0)},r.deflateInit2=Y,r.deflateReset=K,r.deflateResetKeep=G,r.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?_:(e.state.gzhead=t,m):_},r.deflate=function(e,t){var r,n,i,s;if(!e||!e.state||5>8&255),U(n,n.gzhead.time>>16&255),U(n,n.gzhead.time>>24&255),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(U(n,255&n.gzhead.extra.length),U(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=p(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69):(U(n,0),U(n,0),U(n,0),U(n,0),U(n,0),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,3),n.status=E);else{var a=v+(n.w_bits-8<<4)<<8;a|=(2<=n.strategy||n.level<2?0:n.level<6?1:6===n.level?2:3)<<6,0!==n.strstart&&(a|=32),a+=31-a%31,n.status=E,P(n,a),0!==n.strstart&&(P(n,e.adler>>>16),P(n,65535&e.adler)),e.adler=1}if(69===n.status)if(n.gzhead.extra){for(i=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending!==n.pending_buf_size));)U(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=73)}else n.status=73;if(73===n.status)if(n.gzhead.name){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindexi&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.gzindex=0,n.status=91)}else n.status=91;if(91===n.status)if(n.gzhead.comment){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindexi&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.status=103)}else n.status=103;if(103===n.status&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&F(e),n.pending+2<=n.pending_buf_size&&(U(n,255&e.adler),U(n,e.adler>>8&255),e.adler=0,n.status=E)):n.status=E),0!==n.pending){if(F(e),0===e.avail_out)return n.last_flush=-1,m}else if(0===e.avail_in&&T(t)<=T(r)&&t!==f)return R(e,-5);if(666===n.status&&0!==e.avail_in)return R(e,-5);if(0!==e.avail_in||0!==n.lookahead||t!==l&&666!==n.status){var o=2===n.strategy?function(e,t){for(var r;;){if(0===e.lookahead&&(j(e),0===e.lookahead)){if(t===l)return A;break}if(e.match_length=0,r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):3===n.strategy?function(e,t){for(var r,n,i,s,a=e.window;;){if(e.lookahead<=S){if(j(e),e.lookahead<=S&&t===l)return A;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=x&&0e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=x?(r=u._tr_tally(e,1,e.match_length-x),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):h[n.level].func(n,t);if(o!==O&&o!==B||(n.status=666),o===A||o===O)return 0===e.avail_out&&(n.last_flush=-1),m;if(o===I&&(1===t?u._tr_align(n):5!==t&&(u._tr_stored_block(n,0,0,!1),3===t&&(D(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),F(e),0===e.avail_out))return n.last_flush=-1,m}return t!==f?m:n.wrap<=0?1:(2===n.wrap?(U(n,255&e.adler),U(n,e.adler>>8&255),U(n,e.adler>>16&255),U(n,e.adler>>24&255),U(n,255&e.total_in),U(n,e.total_in>>8&255),U(n,e.total_in>>16&255),U(n,e.total_in>>24&255)):(P(n,e.adler>>>16),P(n,65535&e.adler)),F(e),0=r.w_size&&(0===s&&(D(r.head),r.strstart=0,r.block_start=0,r.insert=0),u=new c.Buf8(r.w_size),c.arraySet(u,t,l-r.w_size,r.w_size,0),t=u,l=r.w_size),a=e.avail_in,o=e.next_in,h=e.input,e.avail_in=l,e.next_in=0,e.input=t,j(r);r.lookahead>=x;){for(n=r.strstart,i=r.lookahead-(x-1);r.ins_h=(r.ins_h<>>=y=v>>>24,p-=y,0===(y=v>>>16&255))C[s++]=65535&v;else{if(!(16&y)){if(0==(64&y)){v=m[(65535&v)+(d&(1<>>=y,p-=y),p<15&&(d+=z[n++]<>>=y=v>>>24,p-=y,!(16&(y=v>>>16&255))){if(0==(64&y)){v=_[(65535&v)+(d&(1<>>=y,p-=y,(y=s-a)>3,d&=(1<<(p-=w<<3))-1,e.next_in=n,e.next_out=s,e.avail_in=n>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function s(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new I.Buf16(320),this.work=new I.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function a(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg=\"\",t.wrap&&(e.adler=1&t.wrap),t.mode=P,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new I.Buf32(n),t.distcode=t.distdyn=new I.Buf32(i),t.sane=1,t.back=-1,N):U}function o(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,a(e)):U}function h(e,t){var r,n;return e&&e.state?(n=e.state,t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||15=s.wsize?(I.arraySet(s.window,t,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(n<(i=s.wsize-s.wnext)&&(i=n),I.arraySet(s.window,t,r-n,i,s.wnext),(n-=i)?(I.arraySet(s.window,t,r-n,n,0),s.wnext=n,s.whave=s.wsize):(s.wnext+=i,s.wnext===s.wsize&&(s.wnext=0),s.whave>>8&255,r.check=B(r.check,E,2,0),l=u=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&u)<<8)+(u>>8))%31){e.msg=\"incorrect header check\",r.mode=30;break}if(8!=(15&u)){e.msg=\"unknown compression method\",r.mode=30;break}if(l-=4,k=8+(15&(u>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){e.msg=\"invalid window size\",r.mode=30;break}r.dmax=1<>8&1),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=3;case 3:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<>>8&255,E[2]=u>>>16&255,E[3]=u>>>24&255,r.check=B(r.check,E,4,0)),l=u=0,r.mode=4;case 4:for(;l<16;){if(0===o)break e;o--,u+=n[s++]<>8),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=5;case 5:if(1024&r.flags){for(;l<16;){if(0===o)break e;o--,u+=n[s++]<>>8&255,r.check=B(r.check,E,2,0)),l=u=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(o<(d=r.length)&&(d=o),d&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),I.arraySet(r.head.extra,n,s,d,k)),512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,r.length-=d),r.length))break e;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===o)break e;for(d=0;k=n[s+d++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k)),k&&d>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=12;break;case 10:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<>>=7&l,l-=7&l,r.mode=27;break}for(;l<3;){if(0===o)break e;o--,u+=n[s++]<>>=1)){case 0:r.mode=14;break;case 1:if(j(r),r.mode=20,6!==t)break;u>>>=2,l-=2;break e;case 2:r.mode=17;break;case 3:e.msg=\"invalid block type\",r.mode=30}u>>>=2,l-=2;break;case 14:for(u>>>=7&l,l-=7&l;l<32;){if(0===o)break e;o--,u+=n[s++]<>>16^65535)){e.msg=\"invalid stored block lengths\",r.mode=30;break}if(r.length=65535&u,l=u=0,r.mode=15,6===t)break e;case 15:r.mode=16;case 16:if(d=r.length){if(o>>=5,l-=5,r.ndist=1+(31&u),u>>>=5,l-=5,r.ncode=4+(15&u),u>>>=4,l-=4,286>>=3,l-=3}for(;r.have<19;)r.lens[A[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},x=T(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg=\"invalid code lengths set\",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=_,l-=_,r.lens[r.have++]=b;else{if(16===b){for(z=_+2;l>>=_,l-=_,0===r.have){e.msg=\"invalid bit length repeat\",r.mode=30;break}k=r.lens[r.have-1],d=3+(3&u),u>>>=2,l-=2}else if(17===b){for(z=_+3;l>>=_)),u>>>=3,l-=3}else{for(z=_+7;l>>=_)),u>>>=7,l-=7}if(r.have+d>r.nlen+r.ndist){e.msg=\"invalid bit length repeat\",r.mode=30;break}for(;d--;)r.lens[r.have++]=k}}if(30===r.mode)break;if(0===r.lens[256]){e.msg=\"invalid code -- missing end-of-block\",r.mode=30;break}if(r.lenbits=9,S={bits:r.lenbits},x=T(D,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg=\"invalid literal/lengths set\",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},x=T(F,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,x){e.msg=\"invalid distances set\",r.mode=30;break}if(r.mode=20,6===t)break e;case 20:r.mode=21;case 21:if(6<=o&&258<=h){e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,R(e,c),a=e.next_out,i=e.output,h=e.avail_out,s=e.next_in,n=e.input,o=e.avail_in,u=r.hold,l=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;g=(C=r.lencode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,r.length=b,0===g){r.mode=26;break}if(32&g){r.back=-1,r.mode=12;break}if(64&g){e.msg=\"invalid literal/length code\",r.mode=30;break}r.extra=15&g,r.mode=22;case 22:if(r.extra){for(z=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;g=(C=r.distcode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,64&g){e.msg=\"invalid distance code\",r.mode=30;break}r.offset=b,r.extra=15&g,r.mode=24;case 24:if(r.extra){for(z=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg=\"invalid distance too far back\",r.mode=30;break}r.mode=25;case 25:if(0===h)break e;if(d=c-h,r.offset>d){if((d=r.offset-d)>r.whave&&r.sane){e.msg=\"invalid distance too far back\",r.mode=30;break}p=d>r.wnext?(d-=r.wnext,r.wsize-d):r.wnext-d,d>r.length&&(d=r.length),m=r.window}else m=i,p=a-r.offset,d=r.length;for(hd?(m=R[T+a[v]],A[I+a[v]]):(m=96,0),h=1<>S)+(u-=h)]=p<<24|m<<16|_|0,0!==u;);for(h=1<>=1;if(0!==h?(E&=h-1,E+=h):E=0,v++,0==--O[b]){if(b===w)break;b=t[r+a[v]]}if(k>>7)]}function U(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function P(e,t,r){e.bi_valid>d-r?(e.bi_buf|=t<>d-e.bi_valid,e.bi_valid+=r-d):(e.bi_buf|=t<>>=1,r<<=1,0<--t;);return r>>>1}function Z(e,t,r){var n,i,s=new Array(g+1),a=0;for(n=1;n<=g;n++)s[n]=a=a+r[n-1]<<1;for(i=0;i<=t;i++){var o=e[2*i+1];0!==o&&(e[2*i]=j(s[o]++,o))}}function W(e){var t;for(t=0;t>1;1<=r;r--)G(e,s,r);for(i=h;r=e.heap[1],e.heap[1]=e.heap[e.heap_len--],G(e,s,1),n=e.heap[1],e.heap[--e.heap_max]=r,e.heap[--e.heap_max]=n,s[2*i]=s[2*r]+s[2*n],e.depth[i]=(e.depth[r]>=e.depth[n]?e.depth[r]:e.depth[n])+1,s[2*r+1]=s[2*n+1]=i,e.heap[1]=i++,G(e,s,1),2<=e.heap_len;);e.heap[--e.heap_max]=e.heap[1],function(e,t){var r,n,i,s,a,o,h=t.dyn_tree,u=t.max_code,l=t.stat_desc.static_tree,f=t.stat_desc.has_stree,c=t.stat_desc.extra_bits,d=t.stat_desc.extra_base,p=t.stat_desc.max_length,m=0;for(s=0;s<=g;s++)e.bl_count[s]=0;for(h[2*e.heap[e.heap_max]+1]=0,r=e.heap_max+1;r<_;r++)p<(s=h[2*h[2*(n=e.heap[r])+1]+1]+1)&&(s=p,m++),h[2*n+1]=s,u>=7;n>>=1)if(1&r&&0!==e.dyn_ltree[2*t])return o;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return h;for(t=32;t>>3,(s=e.static_len+3+7>>>3)<=i&&(i=s)):i=s=r+5,r+4<=i&&-1!==t?J(e,t,r,n):4===e.strategy||s===i?(P(e,2+(n?1:0),3),K(e,z,C)):(P(e,4+(n?1:0),3),function(e,t,r,n){var i;for(P(e,t-257,5),P(e,r-1,5),P(e,n-4,4),i=0;i>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(A[r]+u+1)]++,e.dyn_dtree[2*N(t)]++),e.last_lit===e.lit_bufsize-1},r._tr_align=function(e){P(e,2,3),L(e,m,z),function(e){16===e.bi_valid?(U(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):8<=e.bi_valid&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}},{\"../utils/common\":41}],53:[function(e,t,r){\"use strict\";t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=\"\",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(e,t,r){(function(e){!function(r,n){\"use strict\";if(!r.setImmediate){var i,s,t,a,o=1,h={},u=!1,l=r.document,e=Object.getPrototypeOf&&Object.getPrototypeOf(r);e=e&&e.setTimeout?e:r,i=\"[object process]\"==={}.toString.call(r.process)?function(e){process.nextTick(function(){c(e)})}:function(){if(r.postMessage&&!r.importScripts){var e=!0,t=r.onmessage;return r.onmessage=function(){e=!1},r.postMessage(\"\",\"*\"),r.onmessage=t,e}}()?(a=\"setImmediate$\"+Math.random()+\"$\",r.addEventListener?r.addEventListener(\"message\",d,!1):r.attachEvent(\"onmessage\",d),function(e){r.postMessage(a+e,\"*\")}):r.MessageChannel?((t=new MessageChannel).port1.onmessage=function(e){c(e.data)},function(e){t.port2.postMessage(e)}):l&&\"onreadystatechange\"in l.createElement(\"script\")?(s=l.documentElement,function(e){var t=l.createElement(\"script\");t.onreadystatechange=function(){c(e),t.onreadystatechange=null,s.removeChild(t),t=null},s.appendChild(t)}):function(e){setTimeout(c,0,e)},e.setImmediate=function(e){\"function\"!=typeof e&&(e=new Function(\"\"+e));for(var t=new Array(arguments.length-1),r=0;r 0) {\r\n this._updateLockCount--;\r\n if (!this._updateLockCount) {\r\n this._endUpdateCore()\r\n }\r\n }\r\n },\r\n option: function(name) {\r\n var component = this.component;\r\n var optionCache = component._optionCache;\r\n if (1 === arguments.length && optionCache) {\r\n if (!(name in optionCache)) {\r\n optionCache[name] = component.option(name)\r\n }\r\n return optionCache[name]\r\n }\r\n return component.option.apply(component, arguments)\r\n },\r\n _silentOption: function(name, value) {\r\n var component = this.component;\r\n var optionCache = component._optionCache;\r\n if (optionCache) {\r\n optionCache[name] = value\r\n }\r\n return component._setOptionWithoutOptionChange(name, value)\r\n },\r\n localize: function(name) {\r\n var optionCache = this.component._optionCache;\r\n if (optionCache) {\r\n if (!(name in optionCache)) {\r\n optionCache[name] = messageLocalization.format(name)\r\n }\r\n return optionCache[name]\r\n }\r\n return messageLocalization.format(name)\r\n },\r\n on: function() {\r\n return this.component.on.apply(this.component, arguments)\r\n },\r\n off: function() {\r\n return this.component.off.apply(this.component, arguments)\r\n },\r\n optionChanged: function(args) {\r\n if (args.name in this._actions) {\r\n this.createAction(args.name, this._actionConfigs[args.name]);\r\n args.handled = true\r\n }\r\n },\r\n getAction: function(actionName) {\r\n return this._actions[actionName]\r\n },\r\n setAria: function(name, value, $target) {\r\n var target = $target.get(0);\r\n var prefix = \"role\" !== name && \"id\" !== name ? \"aria-\" : \"\";\r\n if (target.setAttribute) {\r\n target.setAttribute(prefix + name, value)\r\n } else {\r\n $target.attr(prefix + name, value)\r\n }\r\n },\r\n _createComponent: function() {\r\n return this.component._createComponent.apply(this.component, arguments)\r\n },\r\n getController: function(name) {\r\n return this.component._controllers[name]\r\n },\r\n createAction: function(actionName, config) {\r\n if (isFunction(actionName)) {\r\n var action = this.component._createAction(actionName.bind(this), config);\r\n return function(e) {\r\n action({\r\n event: e\r\n })\r\n }\r\n } else {\r\n this._actions[actionName] = this.component._createActionByOption(actionName, config);\r\n this._actionConfigs[actionName] = config\r\n }\r\n },\r\n executeAction: function(actionName, options) {\r\n var action = this._actions[actionName];\r\n return action && action(options)\r\n },\r\n dispose: function() {\r\n var that = this;\r\n each(that.callbackNames() || [], (function() {\r\n that[this].empty()\r\n }))\r\n },\r\n addWidgetPrefix: function(className) {\r\n var componentName = this.component.NAME;\r\n return \"dx-\" + componentName.slice(2).toLowerCase() + (className ? \"-\" + className : \"\")\r\n },\r\n getWidgetContainerClass: function() {\r\n var containerName = this.component.NAME === WIDGET_WITH_LEGACY_CONTAINER_NAME ? null : \"container\";\r\n return this.addWidgetPrefix(containerName)\r\n },\r\n elementIsInsideGrid: function($element) {\r\n var $gridElement = $element.closest(\".\" + this.getWidgetContainerClass()).parent();\r\n return $gridElement.is(this.component.$element())\r\n }\r\n});\r\nvar Controller = ModuleItem;\r\nvar ViewController = Controller.inherit({\r\n getView: function(name) {\r\n return this.component._views[name]\r\n },\r\n getViews: function() {\r\n return this.component._views\r\n }\r\n});\r\nvar View = ModuleItem.inherit({\r\n _isReady: function() {\r\n return this.component.isReady()\r\n },\r\n _endUpdateCore: function() {\r\n this.callBase();\r\n if (!this._isReady() && this._requireReady) {\r\n this._requireRender = false;\r\n this.component._requireResize = false\r\n }\r\n if (this._requireRender) {\r\n this._requireRender = false;\r\n this.render(this._$parent)\r\n }\r\n },\r\n _invalidate: function(requireResize, requireReady) {\r\n this._requireRender = true;\r\n this.component._requireResize = hasWindow() && (this.component._requireResize || requireResize);\r\n this._requireReady = this._requireReady || requireReady\r\n },\r\n _renderCore: function() {},\r\n _resizeCore: function() {},\r\n _parentElement: function() {\r\n return this._$parent\r\n },\r\n ctor: function(component) {\r\n this.callBase(component);\r\n this.renderCompleted = Callbacks();\r\n this.resizeCompleted = Callbacks()\r\n },\r\n element: function() {\r\n return this._$element\r\n },\r\n getElementHeight: function() {\r\n var $element = this.element();\r\n if (!$element) {\r\n return 0\r\n }\r\n var marginTop = parseFloat($element.css(\"marginTop\")) || 0;\r\n var marginBottom = parseFloat($element.css(\"marginBottom\")) || 0;\r\n var offsetHeight = $element.get(0).offsetHeight;\r\n return offsetHeight + marginTop + marginBottom\r\n },\r\n isVisible: function() {\r\n return true\r\n },\r\n getTemplate: function(name) {\r\n return this.component._getTemplate(name)\r\n },\r\n render: function($parent, options) {\r\n var $element = this._$element;\r\n var isVisible = this.isVisible();\r\n if (!$element && !$parent) {\r\n return\r\n }\r\n this._requireReady = false;\r\n if (!$element) {\r\n $element = this._$element = $(\"
\").appendTo($parent);\r\n this._$parent = $parent\r\n }\r\n $element.toggleClass(\"dx-hidden\", !isVisible);\r\n if (isVisible) {\r\n this.component._optionCache = {};\r\n this._renderCore(options);\r\n this.component._optionCache = void 0;\r\n this.renderCompleted.fire(options)\r\n }\r\n },\r\n resize: function() {\r\n this.isResizing = true;\r\n this._resizeCore();\r\n this.resizeCompleted.fire();\r\n this.isResizing = false\r\n },\r\n focus: function(preventScroll) {\r\n this.element().get(0).focus({\r\n preventScroll: preventScroll\r\n })\r\n }\r\n});\r\nvar MODULES_ORDER_MAX_INDEX = 1e6;\r\nvar processModules = function(that, componentClass) {\r\n var modules = componentClass.modules;\r\n var modulesOrder = componentClass.modulesOrder;\r\n var controllerTypes = componentClass.controllerTypes || {};\r\n var viewTypes = componentClass.viewTypes || {};\r\n if (!componentClass.controllerTypes) {\r\n if (modulesOrder) {\r\n modules.sort((function(module1, module2) {\r\n var orderIndex1 = modulesOrder.indexOf(module1.name);\r\n var orderIndex2 = modulesOrder.indexOf(module2.name);\r\n if (orderIndex1 < 0) {\r\n orderIndex1 = MODULES_ORDER_MAX_INDEX\r\n }\r\n if (orderIndex2 < 0) {\r\n orderIndex2 = MODULES_ORDER_MAX_INDEX\r\n }\r\n return orderIndex1 - orderIndex2\r\n }))\r\n }\r\n each(modules, (function() {\r\n var controllers = this.controllers;\r\n var moduleName = this.name;\r\n var views = this.views;\r\n controllers && each(controllers, (function(name, type) {\r\n if (controllerTypes[name]) {\r\n throw errors.Error(\"E1001\", moduleName, name)\r\n } else if (!(type && type.subclassOf && type.subclassOf(Controller))) {\r\n type.subclassOf(Controller);\r\n throw errors.Error(\"E1002\", moduleName, name)\r\n }\r\n controllerTypes[name] = type\r\n }));\r\n views && each(views, (function(name, type) {\r\n if (viewTypes[name]) {\r\n throw errors.Error(\"E1003\", moduleName, name)\r\n } else if (!(type && type.subclassOf && type.subclassOf(View))) {\r\n throw errors.Error(\"E1004\", moduleName, name)\r\n }\r\n viewTypes[name] = type\r\n }))\r\n }));\r\n each(modules, (function() {\r\n var extenders = this.extenders;\r\n if (extenders) {\r\n extenders.controllers && each(extenders.controllers, (function(name, extender) {\r\n if (controllerTypes[name]) {\r\n controllerTypes[name] = controllerTypes[name].inherit(extender)\r\n }\r\n }));\r\n extenders.views && each(extenders.views, (function(name, extender) {\r\n if (viewTypes[name]) {\r\n viewTypes[name] = viewTypes[name].inherit(extender)\r\n }\r\n }))\r\n }\r\n }));\r\n componentClass.controllerTypes = controllerTypes;\r\n componentClass.viewTypes = viewTypes\r\n }\r\n var createModuleItems = function(moduleTypes) {\r\n var moduleItems = {};\r\n each(moduleTypes, (function(name, moduleType) {\r\n var moduleItem = new moduleType(that);\r\n moduleItem.name = name;\r\n ! function(that, name, moduleItem) {\r\n var publicMethods = moduleItem.publicMethods();\r\n if (publicMethods) {\r\n each(publicMethods, (function(index, methodName) {\r\n if (moduleItem[methodName]) {\r\n if (!that[methodName]) {\r\n that[methodName] = function() {\r\n return moduleItem[methodName].apply(moduleItem, arguments)\r\n }\r\n } else {\r\n throw errors.Error(\"E1005\", methodName)\r\n }\r\n } else {\r\n throw errors.Error(\"E1006\", name, methodName)\r\n }\r\n }))\r\n }\r\n }(that, name, moduleItem);\r\n moduleItems[name] = moduleItem\r\n }));\r\n return moduleItems\r\n };\r\n that._controllers = createModuleItems(controllerTypes);\r\n that._views = createModuleItems(viewTypes)\r\n};\r\nvar callModuleItemsMethod = function(that, methodName, args) {\r\n args = args || [];\r\n if (that._controllers) {\r\n each(that._controllers, (function() {\r\n this[methodName] && this[methodName].apply(this, args)\r\n }))\r\n }\r\n if (that._views) {\r\n each(that._views, (function() {\r\n this[methodName] && this[methodName].apply(this, args)\r\n }))\r\n }\r\n};\r\nexport default {\r\n modules: [],\r\n View: View,\r\n ViewController: ViewController,\r\n Controller: Controller,\r\n registerModule: function(name, module) {\r\n var modules = this.modules;\r\n for (var i = 0; i < modules.length; i++) {\r\n if (modules[i].name === name) {\r\n return\r\n }\r\n }\r\n module.name = name;\r\n modules.push(module);\r\n delete this.controllerTypes;\r\n delete this.viewTypes\r\n },\r\n registerModulesOrder: function(moduleNames) {\r\n this.modulesOrder = moduleNames\r\n },\r\n unregisterModule: function(name) {\r\n this.modules = grep(this.modules, (function(module) {\r\n return module.name !== name\r\n }));\r\n delete this.controllerTypes;\r\n delete this.viewTypes\r\n },\r\n processModules: processModules,\r\n callModuleItemsMethod: callModuleItemsMethod\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.core.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport gridCoreUtils from \"../grid_core/ui.grid_core.utils\";\r\nimport modules from \"../grid_core/ui.grid_core.modules\";\r\nexport default _extends({}, modules, gridCoreUtils, {\r\n modules: []\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.column_state_mixin.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getDefaultAlignment\r\n} from \"../../core/utils/position\";\r\nvar COLUMN_INDICATORS_CLASS = \"dx-column-indicators\";\r\nvar GROUP_PANEL_ITEM_CLASS = \"dx-group-panel-item\";\r\nexport default {\r\n _applyColumnState: function(options) {\r\n var _that$component;\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var columnAlignment = this._getColumnAlignment(options.column.alignment, rtlEnabled);\r\n var parameters = extend(true, {\r\n columnAlignment: columnAlignment\r\n }, options);\r\n var isGroupPanelItem = parameters.rootElement.hasClass(GROUP_PANEL_ITEM_CLASS);\r\n var $indicatorsContainer = this._createIndicatorContainer(parameters, isGroupPanelItem);\r\n var $span = $(\"\").addClass(this._getIndicatorClassName(options.name));\r\n var columnsController = null === (_that$component = this.component) || void 0 === _that$component ? void 0 : _that$component.getController(\"columns\");\r\n var indicatorAlignment = (null === columnsController || void 0 === columnsController ? void 0 : columnsController.getHeaderContentAlignment(columnAlignment)) || columnAlignment;\r\n parameters.container = $indicatorsContainer;\r\n parameters.indicator = $span;\r\n this._renderIndicator(parameters);\r\n $indicatorsContainer[(isGroupPanelItem || !options.showColumnLines) && \"left\" === indicatorAlignment ? \"appendTo\" : \"prependTo\"](options.rootElement);\r\n return $span\r\n },\r\n _getIndicatorClassName: noop,\r\n _getColumnAlignment: function(alignment, rtlEnabled) {\r\n rtlEnabled = rtlEnabled || this.option(\"rtlEnabled\");\r\n return alignment && \"center\" !== alignment ? alignment : getDefaultAlignment(rtlEnabled)\r\n },\r\n _createIndicatorContainer: function(options, ignoreIndicatorAlignment) {\r\n var $indicatorsContainer = this._getIndicatorContainer(options.rootElement);\r\n var indicatorAlignment = \"left\" === options.columnAlignment ? \"right\" : \"left\";\r\n if (!$indicatorsContainer.length) {\r\n $indicatorsContainer = $(\"
\").addClass(COLUMN_INDICATORS_CLASS)\r\n }\r\n this.setAria(\"role\", \"presentation\", $indicatorsContainer);\r\n return $indicatorsContainer.css(\"float\", options.showColumnLines && !ignoreIndicatorAlignment ? indicatorAlignment : null)\r\n },\r\n _getIndicatorContainer: function($cell) {\r\n return $cell && $cell.find(\".\" + COLUMN_INDICATORS_CLASS)\r\n },\r\n _getIndicatorElements: function($cell) {\r\n var $indicatorContainer = this._getIndicatorContainer($cell);\r\n return $indicatorContainer && $indicatorContainer.children()\r\n },\r\n _renderIndicator: function(options) {\r\n var $container = options.container;\r\n var $indicator = options.indicator;\r\n $container && $indicator && $container.append($indicator)\r\n },\r\n _updateIndicators: function(indicatorName) {\r\n var columns = this.getColumns();\r\n var $cells = this.getColumnElements();\r\n var $cell;\r\n if (!$cells || columns.length !== $cells.length) {\r\n return\r\n }\r\n for (var i = 0; i < columns.length; i++) {\r\n $cell = $cells.eq(i);\r\n this._updateIndicator($cell, columns[i], indicatorName);\r\n var rowOptions = $cell.parent().data(\"options\");\r\n if (rowOptions && rowOptions.cells) {\r\n rowOptions.cells[$cell.index()].column = columns[i]\r\n }\r\n }\r\n },\r\n _updateIndicator: function($cell, column, indicatorName) {\r\n if (!column.command) {\r\n return this._applyColumnState({\r\n name: indicatorName,\r\n rootElement: $cell,\r\n column: column,\r\n showColumnLines: this.option(\"showColumnLines\")\r\n })\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.columns_view.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth,\r\n getWidth,\r\n getOuterHeight,\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n data as elementData\r\n} from \"../../core/element_data\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n name as dblclickEvent\r\n} from \"../../events/double_click\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n setWidth\r\n} from \"../../core/utils/style\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n isRenderer,\r\n isFunction,\r\n isString,\r\n isDefined,\r\n isNumeric\r\n} from \"../../core/utils/type\";\r\nimport {\r\n getBoundingRect,\r\n getDefaultAlignment\r\n} from \"../../core/utils/position\";\r\nimport * as iteratorUtils from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport columnStateMixin from \"./ui.grid_core.column_state_mixin\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n nativeScrolling\r\n} from \"../../core/utils/support\";\r\nvar SCROLL_CONTAINER_CLASS = \"scroll-container\";\r\nvar SCROLLABLE_SIMULATED_CLASS = \"scrollable-simulated\";\r\nvar GROUP_SPACE_CLASS = \"group-space\";\r\nvar CONTENT_CLASS = \"content\";\r\nvar TABLE_CLASS = \"table\";\r\nvar TABLE_FIXED_CLASS = \"table-fixed\";\r\nvar CONTENT_FIXED_CLASS = \"content-fixed\";\r\nvar ROW_CLASS = \"dx-row\";\r\nvar GROUP_ROW_CLASS = \"dx-group-row\";\r\nvar GROUP_CELL_CLASS = \"dx-group-cell\";\r\nvar DETAIL_ROW_CLASS = \"dx-master-detail-row\";\r\nvar FILTER_ROW_CLASS = \"filter-row\";\r\nvar ERROR_ROW_CLASS = \"dx-error-row\";\r\nvar CELL_UPDATED_ANIMATION_CLASS = \"cell-updated-animation\";\r\nvar HIDDEN_COLUMNS_WIDTH = \"0.0001px\";\r\nvar CELL_HINT_VISIBLE = \"dxCellHintVisible\";\r\nvar FORM_FIELD_ITEM_CONTENT_CLASS = \"dx-field-item-content\";\r\nvar appendElementTemplate = {\r\n render: function(options) {\r\n options.container.append(options.content)\r\n }\r\n};\r\nvar subscribeToRowEvents = function(that, $table) {\r\n var touchTarget;\r\n var touchCurrentTarget;\r\n var timeoutId;\r\n\r\n function clearTouchTargets(timeout) {\r\n return setTimeout((function() {\r\n touchTarget = touchCurrentTarget = null\r\n }), timeout)\r\n }\r\n eventsEngine.on($table, \"touchstart touchend\", \".dx-row\", (function(e) {\r\n clearTimeout(timeoutId);\r\n if (\"touchstart\" === e.type) {\r\n touchTarget = e.target;\r\n touchCurrentTarget = e.currentTarget;\r\n timeoutId = clearTouchTargets(1e3)\r\n } else {\r\n timeoutId = clearTouchTargets()\r\n }\r\n }));\r\n eventsEngine.on($table, [clickEventName, dblclickEvent, pointerEvents.down].join(\" \"), \".dx-row\", that.createAction((function(e) {\r\n var event = e.event;\r\n if (touchTarget) {\r\n event.target = touchTarget;\r\n event.currentTarget = touchCurrentTarget\r\n }\r\n if (!$(event.target).closest(\"a\").length) {\r\n e.rowIndex = that.getRowIndex(event.currentTarget);\r\n if (e.rowIndex >= 0) {\r\n e.rowElement = getPublicElement($(event.currentTarget));\r\n e.columns = that.getColumns();\r\n if (event.type === pointerEvents.down) {\r\n that._rowPointerDown(e)\r\n } else if (event.type === clickEventName) {\r\n that._rowClick(e)\r\n } else {\r\n that._rowDblClick(e)\r\n }\r\n }\r\n }\r\n })))\r\n};\r\nvar getWidthStyle = function(width) {\r\n if (\"auto\" === width) {\r\n return \"\"\r\n }\r\n return isNumeric(width) ? width + \"px\" : width\r\n};\r\nvar setCellWidth = function(cell, column, width) {\r\n cell.style.width = cell.style.maxWidth = \"auto\" === column.width ? \"\" : width\r\n};\r\nvar copyAttributes = function(element, newElement) {\r\n if (!element || !newElement) {\r\n return\r\n }\r\n var oldAttributes = element.attributes;\r\n var newAttributes = newElement.attributes;\r\n var i;\r\n for (i = 0; i < oldAttributes.length; i++) {\r\n var name = oldAttributes[i].nodeName;\r\n if (!newElement.hasAttribute(name)) {\r\n element.removeAttribute(name)\r\n }\r\n }\r\n for (i = 0; i < newAttributes.length; i++) {\r\n element.setAttribute(newAttributes[i].nodeName, newAttributes[i].nodeValue)\r\n }\r\n};\r\nexport var ColumnsView = modules.View.inherit(columnStateMixin).inherit({\r\n _createScrollableOptions: function() {\r\n var scrollingOptions = this.option(\"scrolling\");\r\n var useNativeScrolling = this.option(\"scrolling.useNative\");\r\n var options = extend({}, scrollingOptions, {\r\n direction: \"both\",\r\n bounceEnabled: false,\r\n useKeyboard: false\r\n });\r\n if (void 0 === useNativeScrolling) {\r\n useNativeScrolling = true\r\n }\r\n if (\"auto\" === useNativeScrolling) {\r\n delete options.useNative;\r\n delete options.useSimulatedScrollbar\r\n } else {\r\n options.useNative = !!useNativeScrolling;\r\n options.useSimulatedScrollbar = !useNativeScrolling\r\n }\r\n return options\r\n },\r\n _updateCell: function($cell, parameters) {\r\n if (parameters.rowType) {\r\n this._cellPrepared($cell, parameters)\r\n }\r\n },\r\n _createCell: function(options) {\r\n var column = options.column;\r\n var alignment = column.alignment || getDefaultAlignment(this.option(\"rtlEnabled\"));\r\n var cell = domAdapter.createElement(\"td\");\r\n cell.style.textAlign = alignment;\r\n var $cell = $(cell);\r\n if (\"data\" === options.rowType && column.headerId && !column.type) {\r\n if (this.component.option(\"showColumnHeaders\")) {\r\n this.setAria(\"describedby\", column.headerId, $cell)\r\n }\r\n }\r\n if (column.cssClass) {\r\n $cell.addClass(column.cssClass)\r\n }\r\n if (\"expand\" === column.command) {\r\n $cell.addClass(column.cssClass);\r\n $cell.addClass(this.addWidgetPrefix(GROUP_SPACE_CLASS))\r\n }\r\n if (column.colspan > 1) {\r\n $cell.attr(\"colSpan\", column.colspan)\r\n } else if (!column.isBand && \"auto\" !== column.visibleWidth && this.option(\"columnAutoWidth\")) {\r\n if (column.width || column.minWidth) {\r\n cell.style.minWidth = getWidthStyle(column.minWidth || column.width)\r\n }\r\n if (column.width) {\r\n setCellWidth(cell, column, getWidthStyle(column.width))\r\n }\r\n }\r\n return $cell\r\n },\r\n _createRow: function(rowObject, tagName) {\r\n tagName = tagName || \"tr\";\r\n var $element = $(\"<\".concat(tagName, \">\")).addClass(ROW_CLASS);\r\n this.setAria(\"role\", \"row\", $element);\r\n return $element\r\n },\r\n _isAltRow: function(row) {\r\n return row && row.dataIndex % 2 === 1\r\n },\r\n _createTable: function(columns, isAppend) {\r\n var that = this;\r\n var $table = $(\"\").addClass(that.addWidgetPrefix(TABLE_CLASS)).addClass(that.addWidgetPrefix(TABLE_FIXED_CLASS));\r\n if (columns && !isAppend) {\r\n $table.append(that._createColGroup(columns));\r\n if (browser.safari) {\r\n $table.append($(\"\").append(\"\"))\r\n }\r\n that.setAria(\"role\", \"presentation\", $table)\r\n } else {\r\n that.setAria(\"hidden\", true, $table)\r\n }\r\n this.setAria(\"role\", \"presentation\", $(\"\").appendTo($table));\r\n if (isAppend) {\r\n return $table\r\n }\r\n if (browser.mozilla) {\r\n eventsEngine.on($table, \"mousedown\", \"td\", (function(e) {\r\n if (e.ctrlKey) {\r\n e.preventDefault()\r\n }\r\n }))\r\n }\r\n if (that.option(\"cellHintEnabled\")) {\r\n eventsEngine.on($table, \"mousemove\", \".dx-row > td\", this.createAction((function(args) {\r\n var e = args.event;\r\n var $element = $(e.target);\r\n var $cell = $(e.currentTarget);\r\n var $row = $cell.parent();\r\n var visibleColumns = that._columnsController.getVisibleColumns();\r\n var rowOptions = $row.data(\"options\");\r\n var columnIndex = $cell.index();\r\n var cellOptions = rowOptions && rowOptions.cells && rowOptions.cells[columnIndex];\r\n var column = cellOptions ? cellOptions.column : visibleColumns[columnIndex];\r\n var isHeaderRow = $row.hasClass(\"dx-header-row\");\r\n var isDataRow = $row.hasClass(\"dx-data-row\");\r\n var isMasterDetailRow = $row.hasClass(DETAIL_ROW_CLASS);\r\n var isGroupRow = $row.hasClass(GROUP_ROW_CLASS);\r\n var isFilterRow = $row.hasClass(that.addWidgetPrefix(FILTER_ROW_CLASS));\r\n var isDataRowWithTemplate = isDataRow && (!column || column.cellTemplate);\r\n var isEditorShown = isDataRow && cellOptions && (rowOptions.isEditing || cellOptions.isEditing || (null === column || void 0 === column ? void 0 : column.showEditorAlways));\r\n var isHeaderRowWithTemplate = isHeaderRow && (!column || column.headerCellTemplate);\r\n var isGroupCellWithTemplate = isGroupRow && (!column || column.groupIndex && column.groupCellTemplate);\r\n var shouldShowHint = !isMasterDetailRow && !isFilterRow && !isEditorShown && !isDataRowWithTemplate && !isHeaderRowWithTemplate && !isGroupCellWithTemplate;\r\n if (shouldShowHint) {\r\n if ($element.data(CELL_HINT_VISIBLE)) {\r\n $element.removeAttr(\"title\");\r\n $element.data(CELL_HINT_VISIBLE, false)\r\n }\r\n var difference = $element[0].scrollWidth - $element[0].clientWidth;\r\n if (difference > 0 && !isDefined($element.attr(\"title\"))) {\r\n $element.attr(\"title\", $element.text());\r\n $element.data(CELL_HINT_VISIBLE, true)\r\n }\r\n }\r\n })))\r\n }\r\n var getOptions = function(event) {\r\n var $cell = $(event.currentTarget);\r\n var $fieldItemContent = $(event.target).closest(\".\" + FORM_FIELD_ITEM_CONTENT_CLASS);\r\n var $row = $cell.parent();\r\n var rowOptions = $row.data(\"options\");\r\n var options = rowOptions && rowOptions.cells && rowOptions.cells[$cell.index()];\r\n if (!$cell.closest(\"table\").is(event.delegateTarget)) {\r\n return\r\n }\r\n var resultOptions = extend({}, options, {\r\n cellElement: getPublicElement($cell),\r\n event: event,\r\n eventType: event.type\r\n });\r\n resultOptions.rowIndex = that.getRowIndex($row);\r\n if ($fieldItemContent.length) {\r\n var formItemOptions = $fieldItemContent.data(\"dx-form-item\");\r\n if (formItemOptions.column) {\r\n resultOptions.column = formItemOptions.column;\r\n resultOptions.columnIndex = that._columnsController.getVisibleIndex(resultOptions.column.index)\r\n }\r\n }\r\n return resultOptions\r\n };\r\n eventsEngine.on($table, \"mouseover\", \".dx-row > td\", (function(e) {\r\n var options = getOptions(e);\r\n options && that.executeAction(\"onCellHoverChanged\", options)\r\n }));\r\n eventsEngine.on($table, \"mouseout\", \".dx-row > td\", (function(e) {\r\n var options = getOptions(e);\r\n options && that.executeAction(\"onCellHoverChanged\", options)\r\n }));\r\n eventsEngine.on($table, clickEventName, \".dx-row > td\", (function(e) {\r\n var options = getOptions(e);\r\n options && that.executeAction(\"onCellClick\", options)\r\n }));\r\n eventsEngine.on($table, dblclickEvent, \".dx-row > td\", (function(e) {\r\n var options = getOptions(e);\r\n options && that.executeAction(\"onCellDblClick\", options)\r\n }));\r\n subscribeToRowEvents(that, $table);\r\n return $table\r\n },\r\n _rowPointerDown: noop,\r\n _rowClick: noop,\r\n _rowDblClick: noop,\r\n _createColGroup: function(columns) {\r\n var colgroupElement = $(\"\");\r\n for (var i = 0; i < columns.length; i++) {\r\n var colspan = columns[i].colspan || 1;\r\n for (var j = 0; j < colspan; j++) {\r\n colgroupElement.append(this._createCol(columns[i]))\r\n }\r\n }\r\n return colgroupElement\r\n },\r\n _createCol: function(column) {\r\n var width = column.visibleWidth || column.width;\r\n if (\"adaptiveHidden\" === width) {\r\n width = HIDDEN_COLUMNS_WIDTH\r\n }\r\n var col = $(\"\");\r\n setWidth(col, width);\r\n return col\r\n },\r\n renderDelayedTemplates: function(change) {\r\n var delayedTemplates = this._delayedTemplates;\r\n var syncTemplates = delayedTemplates.filter(template => !template.async);\r\n var asyncTemplates = delayedTemplates.filter(template => template.async);\r\n this._delayedTemplates = [];\r\n this._renderDelayedTemplatesCore(syncTemplates, false, change);\r\n this._renderDelayedTemplatesCoreAsync(asyncTemplates)\r\n },\r\n _renderDelayedTemplatesCoreAsync: function(templates) {\r\n var that = this;\r\n if (templates.length) {\r\n getWindow().setTimeout((function() {\r\n that._renderDelayedTemplatesCore(templates, true)\r\n }))\r\n }\r\n },\r\n _renderDelayedTemplatesCore: function(templates, isAsync, change) {\r\n var date = new Date;\r\n while (templates.length) {\r\n var templateParameters = templates.shift();\r\n var options = templateParameters.options;\r\n var doc = domAdapter.getDocument();\r\n if (!isAsync || $(options.container).closest(doc).length) {\r\n if (change) {\r\n options.change = change\r\n }\r\n templateParameters.template.render(options)\r\n }\r\n if (isAsync && new Date - date > 30) {\r\n this._renderDelayedTemplatesCoreAsync(templates);\r\n break\r\n }\r\n }\r\n if (!templates.length && this._delayedTemplates.length) {\r\n this.renderDelayedTemplates()\r\n }\r\n },\r\n _processTemplate: function(template) {\r\n var renderingTemplate;\r\n if (template && template.render && !isRenderer(template)) {\r\n renderingTemplate = {\r\n allowRenderToDetachedContainer: template.allowRenderToDetachedContainer,\r\n render: function(options) {\r\n template.render(options.container, options.model, options.change);\r\n options.deferred && options.deferred.resolve()\r\n }\r\n }\r\n } else if (isFunction(template)) {\r\n renderingTemplate = {\r\n render: function(options) {\r\n var renderedTemplate = template(getPublicElement(options.container), options.model, options.change);\r\n if (renderedTemplate && (renderedTemplate.nodeType || isRenderer(renderedTemplate))) {\r\n options.container.append(renderedTemplate)\r\n }\r\n options.deferred && options.deferred.resolve()\r\n }\r\n }\r\n } else {\r\n var templateID = isString(template) ? template : $(template).attr(\"id\");\r\n if (!templateID) {\r\n renderingTemplate = this.getTemplate(template)\r\n } else {\r\n if (!this._templatesCache[templateID]) {\r\n this._templatesCache[templateID] = this.getTemplate(template)\r\n }\r\n renderingTemplate = this._templatesCache[templateID]\r\n }\r\n }\r\n return renderingTemplate\r\n },\r\n renderTemplate: function(container, template, options, allowRenderToDetachedContainer, change) {\r\n var renderingTemplate = this._processTemplate(template, options);\r\n var column = options.column;\r\n var isDataRow = \"data\" === options.rowType;\r\n var templateDeferred = new Deferred;\r\n var templateOptions = {\r\n container: container,\r\n model: options,\r\n deferred: templateDeferred,\r\n onRendered: () => {\r\n templateDeferred.resolve()\r\n }\r\n };\r\n if (renderingTemplate) {\r\n options.component = this.component;\r\n var async = column && (column.renderAsync && isDataRow || this.option(\"renderAsync\") && (false !== column.renderAsync && (column.command || column.showEditorAlways) && isDataRow || \"filter\" === options.rowType));\r\n if ((renderingTemplate.allowRenderToDetachedContainer || allowRenderToDetachedContainer) && !async) {\r\n renderingTemplate.render(templateOptions)\r\n } else {\r\n this._delayedTemplates.push({\r\n template: renderingTemplate,\r\n options: templateOptions,\r\n async: async\r\n })\r\n }\r\n if (change) {\r\n change.templateDeferreds = change.templateDeferreds || [];\r\n change.templateDeferreds.push(templateDeferred)\r\n }\r\n } else {\r\n templateDeferred.reject()\r\n }\r\n return templateDeferred.promise()\r\n },\r\n _getBodies: function(tableElement) {\r\n return $(tableElement).children(\"tbody\").not(\".dx-header\").not(\".dx-footer\")\r\n },\r\n _needWrapRow: function($tableElement) {\r\n var _this$_getBodies;\r\n var hasRowTemplate = !!this.option().rowTemplate;\r\n return hasRowTemplate && !!(null !== (_this$_getBodies = this._getBodies($tableElement)) && void 0 !== _this$_getBodies && _this$_getBodies.filter(\".\" + ROW_CLASS).length)\r\n },\r\n _wrapRowIfNeed: function($table, $row, isRefreshing) {\r\n var $tableElement = isRefreshing ? $table || this._tableElement : this._tableElement || $table;\r\n var needWrapRow = this._needWrapRow($tableElement);\r\n if (needWrapRow) {\r\n var $tbody = $(\"\").addClass($row.attr(\"class\"));\r\n this.setAria(\"role\", \"presentation\", $tbody);\r\n return $tbody.append($row)\r\n }\r\n return $row\r\n },\r\n _appendRow: function($table, $row, appendTemplate) {\r\n appendTemplate = appendTemplate || appendElementTemplate;\r\n appendTemplate.render({\r\n content: $row,\r\n container: $table\r\n })\r\n },\r\n _resizeCore: function() {\r\n var scrollLeft = this._scrollLeft;\r\n if (scrollLeft >= 0) {\r\n this._scrollLeft = 0;\r\n this.scrollTo({\r\n left: scrollLeft\r\n })\r\n }\r\n },\r\n _renderCore: function(e) {\r\n var $root = this.element().parent();\r\n if (!$root || $root.parent().length) {\r\n this.renderDelayedTemplates(e)\r\n }\r\n },\r\n _renderTable: function(options) {\r\n options = options || {};\r\n options.columns = this._columnsController.getVisibleColumns();\r\n var changeType = options.change && options.change.changeType;\r\n var $table = this._createTable(options.columns, \"append\" === changeType || \"prepend\" === changeType || \"update\" === changeType);\r\n this._renderRows($table, options);\r\n return $table\r\n },\r\n _renderRows: function($table, options) {\r\n var rows = this._getRows(options.change);\r\n var columnIndices = options.change && options.change.columnIndices || [];\r\n var changeTypes = options.change && options.change.changeTypes || [];\r\n for (var i = 0; i < rows.length; i++) {\r\n this._renderRow($table, extend({\r\n row: rows[i],\r\n columnIndices: columnIndices[i],\r\n changeType: changeTypes[i]\r\n }, options))\r\n }\r\n },\r\n _renderRow: function($table, options) {\r\n if (!options.columnIndices) {\r\n options.row.cells = []\r\n }\r\n var $row = this._createRow(options.row);\r\n var $wrappedRow = this._wrapRowIfNeed($table, $row);\r\n if (\"remove\" !== options.changeType) {\r\n this._renderCells($row, options)\r\n }\r\n this._appendRow($table, $wrappedRow);\r\n var rowOptions = extend({\r\n columns: options.columns\r\n }, options.row);\r\n this._addWatchMethod(rowOptions, options.row);\r\n this._rowPrepared($wrappedRow, rowOptions, options.row)\r\n },\r\n _needRenderCell: function(columnIndex, columnIndices) {\r\n return !columnIndices || columnIndices.indexOf(columnIndex) >= 0\r\n },\r\n _renderCells: function($row, options) {\r\n var columnIndex = 0;\r\n var row = options.row;\r\n var columns = options.columns;\r\n for (var i = 0; i < columns.length; i++) {\r\n if (this._needRenderCell(i, options.columnIndices)) {\r\n this._renderCell($row, extend({\r\n column: columns[i],\r\n columnIndex: columnIndex,\r\n value: row.values && row.values[columnIndex],\r\n oldValue: row.oldValues && row.oldValues[columnIndex]\r\n }, options))\r\n }\r\n if (columns[i].colspan > 1) {\r\n columnIndex += columns[i].colspan\r\n } else {\r\n columnIndex++\r\n }\r\n }\r\n },\r\n _updateCells: function($rowElement, $newRowElement, columnIndices) {\r\n var $cells = $rowElement.children();\r\n var $newCells = $newRowElement.children();\r\n var highlightChanges = this.option(\"highlightChanges\");\r\n var cellUpdatedClass = this.addWidgetPrefix(CELL_UPDATED_ANIMATION_CLASS);\r\n columnIndices.forEach((function(columnIndex, index) {\r\n var $cell = $cells.eq(columnIndex);\r\n var $newCell = $newCells.eq(index);\r\n $cell.replaceWith($newCell);\r\n if (highlightChanges && !$newCell.hasClass(\"dx-command-expand\")) {\r\n $newCell.addClass(cellUpdatedClass)\r\n }\r\n }));\r\n copyAttributes($rowElement.get(0), $newRowElement.get(0))\r\n },\r\n _setCellAriaAttributes: function($cell, cellOptions) {\r\n if (\"freeSpace\" !== cellOptions.rowType) {\r\n this.setAria(\"role\", \"gridcell\", $cell);\r\n var columnIndexOffset = this._columnsController.getColumnIndexOffset();\r\n var ariaColIndex = cellOptions.columnIndex + columnIndexOffset + 1;\r\n this.setAria(\"colindex\", ariaColIndex, $cell)\r\n }\r\n },\r\n _renderCell: function($row, options) {\r\n var cellOptions = this._getCellOptions(options);\r\n if (options.columnIndices) {\r\n if (options.row.cells) {\r\n var cellIndex = options.row.cells.findIndex(cell => cell.columnIndex === cellOptions.columnIndex);\r\n options.row.cells[cellIndex] = cellOptions\r\n }\r\n } else {\r\n options.row.cells.push(cellOptions)\r\n }\r\n var $cell = this._createCell(cellOptions);\r\n this._setCellAriaAttributes($cell, cellOptions);\r\n this._renderCellContent($cell, cellOptions, options);\r\n $row.get(0).appendChild($cell.get(0));\r\n return $cell\r\n },\r\n _renderCellContent: function($cell, options, renderOptions) {\r\n var template = this._getCellTemplate(options);\r\n when(!template || this.renderTemplate($cell, template, options, void 0, renderOptions.change)).done(() => {\r\n this._updateCell($cell, options)\r\n })\r\n },\r\n _getCellTemplate: function() {},\r\n _getRows: function() {\r\n return []\r\n },\r\n _getCellOptions: function(options) {\r\n var cellOptions = {\r\n column: options.column,\r\n columnIndex: options.columnIndex,\r\n rowType: options.row.rowType,\r\n isAltRow: this._isAltRow(options.row)\r\n };\r\n this._addWatchMethod(cellOptions);\r\n return cellOptions\r\n },\r\n _addWatchMethod: function(options, source) {\r\n if (!this.option(\"repaintChangesOnly\")) {\r\n return\r\n }\r\n var watchers = [];\r\n source = source || options;\r\n source.watch = source.watch || function(getter, updateValueFunc, updateRowFunc) {\r\n var oldValue = getter(source.data);\r\n var watcher = function(row) {\r\n if (row && updateRowFunc) {\r\n updateRowFunc(row)\r\n }\r\n var newValue = getter(source.data);\r\n if (JSON.stringify(oldValue) !== JSON.stringify(newValue)) {\r\n if (row) {\r\n updateValueFunc(newValue)\r\n }\r\n oldValue = newValue\r\n }\r\n };\r\n watchers.push(watcher);\r\n return function() {\r\n var index = watchers.indexOf(watcher);\r\n if (index >= 0) {\r\n watchers.splice(index, 1)\r\n }\r\n }\r\n };\r\n source.update = source.update || function(row, keepRow) {\r\n if (row) {\r\n this.data = options.data = row.data;\r\n this.rowIndex = options.rowIndex = row.rowIndex;\r\n this.dataIndex = options.dataIndex = row.dataIndex;\r\n this.isExpanded = options.isExpanded = row.isExpanded;\r\n if (options.row && !keepRow) {\r\n options.row = row\r\n }\r\n }\r\n watchers.forEach((function(watcher) {\r\n watcher(row)\r\n }))\r\n };\r\n if (source !== options) {\r\n options.watch = source.watch.bind(source)\r\n }\r\n return options\r\n },\r\n _cellPrepared: function(cell, options) {\r\n options.cellElement = getPublicElement($(cell));\r\n this.executeAction(\"onCellPrepared\", options)\r\n },\r\n _rowPrepared: function($row, options) {\r\n elementData($row.get(0), \"options\", options);\r\n options.rowElement = getPublicElement($row);\r\n this.executeAction(\"onRowPrepared\", options)\r\n },\r\n _columnOptionChanged: function(e) {\r\n var optionNames = e.optionNames;\r\n if (gridCoreUtils.checkChanges(optionNames, [\"width\", \"visibleWidth\"])) {\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var widths = iteratorUtils.map(visibleColumns, (function(column) {\r\n var width = column.visibleWidth || column.width;\r\n return isDefined(width) ? width : \"auto\"\r\n }));\r\n this.setColumnWidths({\r\n widths: widths,\r\n optionNames: optionNames\r\n });\r\n return\r\n }\r\n if (!this._requireReady) {\r\n this.render()\r\n }\r\n },\r\n getCellIndex: function($cell) {\r\n var cellIndex = $cell.length ? $cell[0].cellIndex : -1;\r\n return cellIndex\r\n },\r\n getTableElements: function() {\r\n return this._tableElement || $()\r\n },\r\n getTableElement: function() {\r\n return this._tableElement\r\n },\r\n setTableElement: function(tableElement) {\r\n this._tableElement = tableElement\r\n },\r\n optionChanged: function(args) {\r\n this.callBase(args);\r\n switch (args.name) {\r\n case \"cellHintEnabled\":\r\n case \"onCellPrepared\":\r\n case \"onRowPrepared\":\r\n case \"onCellHoverChanged\":\r\n this._invalidate(true, true);\r\n args.handled = true\r\n }\r\n },\r\n init: function() {\r\n var that = this;\r\n that._scrollLeft = -1;\r\n that._columnsController = that.getController(\"columns\");\r\n that._dataController = that.getController(\"data\");\r\n that._delayedTemplates = [];\r\n that._templatesCache = {};\r\n that.createAction(\"onCellClick\");\r\n that.createAction(\"onRowClick\");\r\n that.createAction(\"onCellDblClick\");\r\n that.createAction(\"onRowDblClick\");\r\n that.createAction(\"onCellHoverChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n that.createAction(\"onCellPrepared\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n });\r\n that.createAction(\"onRowPrepared\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\",\r\n afterExecute: function(e) {\r\n that._afterRowPrepared(e)\r\n }\r\n });\r\n that._columnsController.columnsChanged.add(that._columnOptionChanged.bind(that));\r\n that._dataController && that._dataController.changed.add(that._handleDataChanged.bind(that))\r\n },\r\n _afterRowPrepared: noop,\r\n _handleDataChanged: function() {},\r\n callbackNames: function() {\r\n return [\"scrollChanged\"]\r\n },\r\n _updateScrollLeftPosition: function() {\r\n var scrollLeft = this._scrollLeft;\r\n if (scrollLeft >= 0) {\r\n this._scrollLeft = 0;\r\n this.scrollTo({\r\n left: scrollLeft\r\n })\r\n }\r\n },\r\n scrollTo: function(pos) {\r\n var $element = this.element();\r\n var $scrollContainer = $element && $element.children(\".\" + this.addWidgetPrefix(SCROLL_CONTAINER_CLASS)).not(\".\" + this.addWidgetPrefix(CONTENT_FIXED_CLASS));\r\n if (isDefined(pos) && isDefined(pos.left) && this._scrollLeft !== pos.left) {\r\n this._scrollLeft = pos.left;\r\n $scrollContainer && $scrollContainer.scrollLeft(pos.left)\r\n }\r\n },\r\n _wrapTableInScrollContainer: function($table) {\r\n var $scrollContainer = $(\"
\");\r\n var useNative = this.option(\"scrolling.useNative\");\r\n if (false === useNative || \"auto\" === useNative && !nativeScrolling) {\r\n $scrollContainer.addClass(this.addWidgetPrefix(SCROLLABLE_SIMULATED_CLASS))\r\n }\r\n eventsEngine.on($scrollContainer, \"scroll\", () => {\r\n var scrollLeft = $scrollContainer.scrollLeft();\r\n if (scrollLeft !== this._scrollLeft) {\r\n this.scrollChanged.fire({\r\n left: scrollLeft\r\n }, this.name)\r\n }\r\n });\r\n $scrollContainer.addClass(this.addWidgetPrefix(CONTENT_CLASS)).addClass(this.addWidgetPrefix(SCROLL_CONTAINER_CLASS)).append($table).appendTo(this.element());\r\n this.setAria(\"role\", \"presentation\", $scrollContainer);\r\n return $scrollContainer\r\n },\r\n _updateContent: function($newTableElement) {\r\n this.setTableElement($newTableElement);\r\n this._wrapTableInScrollContainer($newTableElement)\r\n },\r\n _findContentElement: noop,\r\n _getWidths: function($cellElements) {\r\n var result = [];\r\n var width;\r\n if ($cellElements) {\r\n iteratorUtils.each($cellElements, (function(index, item) {\r\n width = item.offsetWidth;\r\n if (item.getBoundingClientRect) {\r\n var clientRect = getBoundingRect(item);\r\n if (clientRect.width > width - 1) {\r\n width = clientRect.width\r\n }\r\n }\r\n result.push(width)\r\n }))\r\n }\r\n return result\r\n },\r\n getColumnWidths: function($tableElement) {\r\n var result = [];\r\n var $rows;\r\n var $cells;\r\n (this.option(\"forceApplyBindings\") || noop)();\r\n $tableElement = $tableElement || this.getTableElement();\r\n if ($tableElement) {\r\n $rows = $tableElement.children(\"tbody:not(.dx-header)\").children();\r\n for (var i = 0; i < $rows.length; i++) {\r\n var $row = $rows.eq(i);\r\n var isRowVisible = \"none\" !== $row.get(0).style.display && !$row.hasClass(\"dx-state-invisible\");\r\n if (!$row.is(\".\" + GROUP_ROW_CLASS) && !$row.is(\".\" + DETAIL_ROW_CLASS) && !$row.is(\".\" + ERROR_ROW_CLASS) && isRowVisible) {\r\n $cells = $row.children(\"td\");\r\n break\r\n }\r\n }\r\n result = this._getWidths($cells)\r\n }\r\n return result\r\n },\r\n getVisibleColumnIndex: function(columnIndex, rowIndex) {\r\n return columnIndex\r\n },\r\n setColumnWidths: function(_ref) {\r\n var {\r\n widths: widths,\r\n $tableElement: $tableElement,\r\n columns: columns,\r\n fixed: fixed\r\n } = _ref;\r\n var $cols;\r\n var width;\r\n var minWidth;\r\n var columnIndex;\r\n var columnAutoWidth = this.option(\"columnAutoWidth\");\r\n $tableElement = $tableElement || this.getTableElement();\r\n if ($tableElement && $tableElement.length && widths) {\r\n columnIndex = 0;\r\n $cols = $tableElement.children(\"colgroup\").children(\"col\");\r\n setWidth($cols, \"auto\");\r\n columns = columns || this.getColumns(null, $tableElement);\r\n for (var i = 0; i < columns.length; i++) {\r\n if (columnAutoWidth && !fixed) {\r\n width = columns[i].width;\r\n if (width && !columns[i].command) {\r\n width = columns[i].visibleWidth || width;\r\n width = getWidthStyle(width);\r\n minWidth = getWidthStyle(columns[i].minWidth || width);\r\n var $rows = $rows || $tableElement.children().children(\".dx-row\").not(\".\" + DETAIL_ROW_CLASS);\r\n for (var rowIndex = 0; rowIndex < $rows.length; rowIndex++) {\r\n var row = $rows[rowIndex];\r\n var cell = void 0;\r\n var visibleIndex = this.getVisibleColumnIndex(i, rowIndex);\r\n if (row.classList.contains(GROUP_ROW_CLASS)) {\r\n cell = row.querySelector(\"td[aria-colindex='\".concat(visibleIndex + 1, \"']:not(.\").concat(GROUP_CELL_CLASS, \")\"))\r\n } else {\r\n cell = row.cells[visibleIndex]\r\n }\r\n if (cell) {\r\n setCellWidth(cell, columns[i], width);\r\n cell.style.minWidth = minWidth\r\n }\r\n }\r\n }\r\n }\r\n if (columns[i].colspan) {\r\n columnIndex += columns[i].colspan;\r\n continue\r\n }\r\n width = widths[columnIndex];\r\n if (\"adaptiveHidden\" === width) {\r\n width = HIDDEN_COLUMNS_WIDTH\r\n }\r\n if (\"number\" === typeof width) {\r\n width = width.toFixed(3) + \"px\"\r\n }\r\n setWidth($cols.eq(columnIndex), isDefined(width) ? width : \"auto\");\r\n columnIndex++\r\n }\r\n }\r\n },\r\n getCellElements: function(rowIndex) {\r\n return this._getCellElementsCore(rowIndex)\r\n },\r\n _getCellElementsCore: function(rowIndex) {\r\n var $row = this._getRowElements().eq(rowIndex);\r\n return $row.children()\r\n },\r\n _getCellElement: function(rowIndex, columnIdentifier) {\r\n var $cell;\r\n var $cells = this.getCellElements(rowIndex);\r\n var columnVisibleIndex = this._getVisibleColumnIndex($cells, rowIndex, columnIdentifier);\r\n if ($cells.length && columnVisibleIndex >= 0) {\r\n $cell = $cells.eq(columnVisibleIndex)\r\n }\r\n if ($cell && $cell.length) {\r\n return $cell\r\n }\r\n },\r\n _getRowElement: function(rowIndex) {\r\n var that = this;\r\n var $rowElement = $();\r\n var $tableElements = that.getTableElements();\r\n iteratorUtils.each($tableElements, (function(_, tableElement) {\r\n $rowElement = $rowElement.add(that._getRowElements($(tableElement)).eq(rowIndex))\r\n }));\r\n if ($rowElement.length) {\r\n return $rowElement\r\n }\r\n },\r\n getCellElement: function(rowIndex, columnIdentifier) {\r\n return getPublicElement(this._getCellElement(rowIndex, columnIdentifier))\r\n },\r\n getRowElement: function(rowIndex) {\r\n var $rows = this._getRowElement(rowIndex);\r\n var elements = [];\r\n if ($rows && !getPublicElement($rows).get) {\r\n for (var i = 0; i < $rows.length; i++) {\r\n elements.push($rows[i])\r\n }\r\n } else {\r\n elements = $rows\r\n }\r\n return elements\r\n },\r\n _getVisibleColumnIndex: function($cells, rowIndex, columnIdentifier) {\r\n if (isString(columnIdentifier)) {\r\n var columnIndex = this._columnsController.columnOption(columnIdentifier, \"index\");\r\n return this._columnsController.getVisibleIndex(columnIndex)\r\n }\r\n return columnIdentifier\r\n },\r\n getColumnElements: function() {},\r\n getColumns: function(rowIndex) {\r\n return this._columnsController.getVisibleColumns(rowIndex)\r\n },\r\n getCell: function(cellPosition, rows) {\r\n var $rows = rows || this._getRowElements();\r\n var $cells;\r\n if ($rows.length > 0 && cellPosition.rowIndex >= 0) {\r\n if (\"virtual\" !== this.option(\"scrolling.mode\") && \"virtual\" !== this.option(\"scrolling.rowRenderingMode\")) {\r\n cellPosition.rowIndex = cellPosition.rowIndex < $rows.length ? cellPosition.rowIndex : $rows.length - 1\r\n }\r\n $cells = this.getCellElements(cellPosition.rowIndex);\r\n if ($cells && $cells.length > 0) {\r\n return $cells.eq($cells.length > cellPosition.columnIndex ? cellPosition.columnIndex : $cells.length - 1)\r\n }\r\n }\r\n },\r\n getRowsCount: function() {\r\n var tableElement = this.getTableElement();\r\n if (tableElement && 1 === tableElement.length) {\r\n return tableElement[0].rows.length\r\n }\r\n return 0\r\n },\r\n _getRowElementsCore: function(tableElement) {\r\n tableElement = tableElement || this.getTableElement();\r\n if (tableElement) {\r\n var hasRowTemplate = this.option().rowTemplate || this.option(\"dataRowTemplate\");\r\n var tBodies = hasRowTemplate && tableElement.find(\"> tbody.\" + ROW_CLASS);\r\n return tBodies && tBodies.length ? tBodies : tableElement.find(\"> tbody > .\" + ROW_CLASS + \", > .\" + ROW_CLASS)\r\n }\r\n return $()\r\n },\r\n _getRowElements: function(tableElement) {\r\n return this._getRowElementsCore(tableElement)\r\n },\r\n getRowIndex: function($row) {\r\n return this._getRowElements().index($row)\r\n },\r\n getBoundingRect: function() {},\r\n getName: function() {},\r\n setScrollerSpacing: function(width) {\r\n var $element = this.element();\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n $element && $element.css({\r\n paddingLeft: rtlEnabled ? width : \"\",\r\n paddingRight: !rtlEnabled ? width : \"\"\r\n })\r\n },\r\n isScrollbarVisible: function(isHorizontal) {\r\n var $element = this.element();\r\n var $tableElement = this._tableElement;\r\n if ($element && $tableElement) {\r\n return isHorizontal ? getOuterWidth($tableElement) - getWidth($element) > 0 : getOuterHeight($tableElement) - getHeight($element) > 0\r\n }\r\n return false\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/shared/accessibility.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar FOCUS_STATE_CLASS = \"dx-state-focused\";\r\nvar FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar FOCUSED_ROW_SELECTOR = \".dx-row-focused\";\r\nvar GRID_ROW_SELECTOR = \".dx-datagrid-rowsview .dx-row\";\r\nvar GRID_CELL_SELECTOR = \"\".concat(GRID_ROW_SELECTOR, \" > td\");\r\nvar TREELIST_ROW_SELECTOR = \".dx-treelist-rowsview .dx-row\";\r\nvar TREELIST_CELL_SELECTOR = \"\".concat(TREELIST_ROW_SELECTOR, \" > td\");\r\nvar viewItemSelectorMap = {\r\n groupPanel: [\".dx-datagrid-group-panel .dx-group-panel-item[tabindex]\"],\r\n columnHeaders: [\".dx-datagrid-headers .dx-header-row > td.dx-datagrid-action\", \".dx-treelist-headers .dx-header-row > td.dx-treelist-action\"],\r\n filterRow: [\".dx-datagrid-headers .dx-datagrid-filter-row .dx-editor-cell .dx-texteditor-input\", \".dx-treelist-headers .dx-treelist-filter-row .dx-editor-cell .dx-texteditor-input\"],\r\n rowsView: [\"\".concat(FOCUSED_ROW_SELECTOR), \"\".concat(GRID_ROW_SELECTOR, \"[tabindex]\"), \"\".concat(GRID_CELL_SELECTOR, \"[tabindex]\"), \"\".concat(GRID_CELL_SELECTOR), \"\".concat(TREELIST_ROW_SELECTOR, \"[tabindex]\"), \"\".concat(TREELIST_CELL_SELECTOR, \"[tabindex]\"), \"\".concat(TREELIST_CELL_SELECTOR)],\r\n footer: [\".dx-datagrid-total-footer .dx-datagrid-summary-item\", \".dx-treelist-total-footer .dx-treelist-summary-item\"],\r\n filterPanel: [\".dx-datagrid-filter-panel .dx-icon-filter\", \".dx-treelist-filter-panel .dx-icon-filter\"],\r\n pager: [\".dx-datagrid-pager [tabindex]\", \".dx-treelist-pager [tabindex]\"]\r\n};\r\nvar isMouseDown = false;\r\nvar isHiddenFocusing = false;\r\nvar focusedElementInfo = null;\r\n\r\nfunction processKeyDown(viewName, instance, event, action, $mainElement, executeKeyDown) {\r\n var isHandled = fireKeyDownEvent(instance, event.originalEvent, executeKeyDown);\r\n if (isHandled) {\r\n return\r\n }\r\n var keyName = normalizeKeyName(event);\r\n if (\"enter\" === keyName || \"space\" === keyName) {\r\n saveFocusedElementInfo(event.target, instance);\r\n action && action({\r\n event: event\r\n })\r\n } else if (\"tab\" === keyName) {\r\n $mainElement.addClass(FOCUS_STATE_CLASS)\r\n } else {\r\n selectView(viewName, instance, event)\r\n }\r\n}\r\n\r\nfunction saveFocusedElementInfo(target, instance) {\r\n var $target = $(target);\r\n var ariaLabel = $target.attr(\"aria-label\");\r\n var $activeElements = getActiveAccessibleElements(ariaLabel, instance.element());\r\n var targetIndex = $activeElements.index($target);\r\n focusedElementInfo = extend({}, {\r\n ariaLabel: ariaLabel,\r\n index: targetIndex\r\n }, {\r\n viewInstance: instance\r\n })\r\n}\r\n\r\nfunction getActiveAccessibleElements(ariaLabel, viewElement) {\r\n var $viewElement = $(viewElement);\r\n var $activeElements;\r\n if (ariaLabel) {\r\n $activeElements = $viewElement.find('[aria-label=\"'.concat(ariaLabel, '\"][tabindex]'))\r\n } else {\r\n $activeElements = $viewElement.find(\"[tabindex]\")\r\n }\r\n return $activeElements\r\n}\r\n\r\nfunction findFocusedViewElement(viewSelectors) {\r\n for (var index in viewSelectors) {\r\n var selector = viewSelectors[index];\r\n var $focusViewElement = $(selector).first();\r\n if ($focusViewElement.length) {\r\n return $focusViewElement\r\n }\r\n }\r\n}\r\n\r\nfunction fireKeyDownEvent(instance, event, executeAction) {\r\n var args = {\r\n event: event,\r\n handled: false\r\n };\r\n if (executeAction) {\r\n executeAction(args)\r\n } else {\r\n instance._createActionByOption(\"onKeyDown\")(args)\r\n }\r\n return args.handled\r\n}\r\n\r\nfunction onDocumentVisibilityChange() {\r\n isHiddenFocusing = \"visible\" === domAdapter.getDocument().visibilityState\r\n}\r\nexport function subscribeVisibilityChange() {\r\n eventsEngine.on(domAdapter.getDocument(), \"visibilitychange\", onDocumentVisibilityChange)\r\n}\r\nexport function unsubscribeVisibilityChange() {\r\n eventsEngine.off(domAdapter.getDocument(), \"visibilitychange\", onDocumentVisibilityChange)\r\n}\r\nexport function hiddenFocus(element) {\r\n isHiddenFocusing = true;\r\n element.focus();\r\n isHiddenFocusing = false\r\n}\r\nexport function registerKeyboardAction(viewName, instance, $element, selector, action, executeKeyDown) {\r\n if (instance.option(\"useLegacyKeyboardNavigation\")) {\r\n return noop\r\n }\r\n var getMainElement = () => $(instance.element());\r\n var keyDownHandler = e => processKeyDown(viewName, instance, e, action, getMainElement(), executeKeyDown);\r\n var mouseDownHandler = () => {\r\n isMouseDown = true;\r\n getMainElement().removeClass(FOCUS_STATE_CLASS)\r\n };\r\n var focusinHandler = () => {\r\n var needShowOverlay = !isMouseDown && !isHiddenFocusing;\r\n if (needShowOverlay) {\r\n getMainElement().addClass(FOCUS_STATE_CLASS)\r\n }\r\n isMouseDown = false\r\n };\r\n eventsEngine.on($element, \"keydown\", selector, keyDownHandler);\r\n eventsEngine.on($element, \"mousedown\", selector, mouseDownHandler);\r\n eventsEngine.on($element, \"focusin\", selector, focusinHandler);\r\n return () => {\r\n eventsEngine.off($element, \"keydown\", selector, keyDownHandler);\r\n eventsEngine.off($element, \"mousedown\", selector, mouseDownHandler);\r\n eventsEngine.off($element, \"focusin\", selector, focusinHandler)\r\n }\r\n}\r\nexport function restoreFocus(instance) {\r\n if (!instance.option(\"useLegacyKeyboardNavigation\") && focusedElementInfo) {\r\n var viewInstance = focusedElementInfo.viewInstance;\r\n if (viewInstance) {\r\n var $activeElements = getActiveAccessibleElements(focusedElementInfo.ariaLabel, viewInstance.element());\r\n var $targetElement = $activeElements.eq(focusedElementInfo.index);\r\n focusedElementInfo = null;\r\n eventsEngine.trigger($targetElement, \"focus\")\r\n }\r\n }\r\n}\r\nexport function selectView(viewName, instance, event) {\r\n var keyName = normalizeKeyName(event);\r\n if (event.ctrlKey && (\"upArrow\" === keyName || \"downArrow\" === keyName)) {\r\n var viewNames = Object.keys(viewItemSelectorMap);\r\n var viewItemIndex = viewNames.indexOf(viewName);\r\n while (viewItemIndex >= 0 && viewItemIndex < viewNames.length) {\r\n viewItemIndex = \"upArrow\" === keyName ? --viewItemIndex : ++viewItemIndex;\r\n var _viewName = viewNames[viewItemIndex];\r\n var viewSelectors = viewItemSelectorMap[_viewName];\r\n var $focusViewElement = findFocusedViewElement(viewSelectors);\r\n if ($focusViewElement && $focusViewElement.length) {\r\n $focusViewElement.attr(\"tabindex\", instance.option(\"tabindex\") || 0);\r\n eventsEngine.trigger($focusViewElement, \"focus\");\r\n $focusViewElement.removeClass(FOCUS_DISABLED_CLASS);\r\n break\r\n }\r\n }\r\n }\r\n}\r\nexport function setTabIndex(instance, $element) {\r\n if (!instance.option(\"useLegacyKeyboardnavigation\")) {\r\n $element.attr(\"tabindex\", instance.option(\"tabindex\") || 0)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.accessibility.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport * as accessibility from \"../../ui/shared/accessibility\";\r\nexport var registerKeyboardAction = function(viewName, instance, $element, selector, action) {\r\n var keyboardController = instance.getController(\"keyboardNavigation\");\r\n if (instance.option(\"useLegacyKeyboardNavigation\") || keyboardController && !keyboardController.isKeyboardEnabled()) {\r\n return\r\n }\r\n instance.createAction(\"onKeyDown\");\r\n accessibility.registerKeyboardAction(viewName, instance, $element, selector, action, args => {\r\n instance.executeAction(\"onKeyDown\", args)\r\n })\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.column_headers.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n ColumnsView\r\n} from \"./ui.grid_core.columns_view\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n registerKeyboardAction\r\n} from \"./ui.grid_core.accessibility\";\r\nvar CELL_CONTENT_CLASS = \"text-content\";\r\nvar HEADERS_CLASS = \"headers\";\r\nvar NOWRAP_CLASS = \"nowrap\";\r\nvar ROW_CLASS_SELECTOR = \".dx-row\";\r\nvar HEADER_ROW_CLASS = \"dx-header-row\";\r\nvar COLUMN_LINES_CLASS = \"dx-column-lines\";\r\nvar CONTEXT_MENU_SORT_ASC_ICON = \"context-menu-sort-asc\";\r\nvar CONTEXT_MENU_SORT_DESC_ICON = \"context-menu-sort-desc\";\r\nvar CONTEXT_MENU_SORT_NONE_ICON = \"context-menu-sort-none\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar VISIBILITY_HIDDEN_CLASS = \"dx-visibility-hidden\";\r\nvar TEXT_CONTENT_ALIGNMENT_CLASS_PREFIX = \"dx-text-content-alignment-\";\r\nvar SORT_INDICATOR_CLASS = \"dx-sort-indicator\";\r\nvar SORT_INDEX_INDICATOR_CLASS = \"dx-sort-index-indicator\";\r\nvar HEADER_FILTER_CLASS_SELECTOR = \".dx-header-filter\";\r\nvar HEADER_FILTER_INDICATOR_CLASS = \"dx-header-filter-indicator\";\r\nvar MULTI_ROW_HEADER_CLASS = \"dx-header-multi-row\";\r\nexport var columnHeadersModule = {\r\n defaultOptions: function() {\r\n return {\r\n showColumnHeaders: true,\r\n cellHintEnabled: true\r\n }\r\n },\r\n views: {\r\n columnHeadersView: ColumnsView.inherit(function() {\r\n var createCellContent = function(that, $cell, options) {\r\n var $cellContent = $(\"
\").addClass(that.addWidgetPrefix(CELL_CONTENT_CLASS));\r\n that.setAria(\"role\", \"presentation\", $cellContent);\r\n addCssClassesToCellContent(that, $cell, options.column, $cellContent);\r\n var showColumnLines = that.option(\"showColumnLines\");\r\n var contentAlignment = that.getController(\"columns\").getHeaderContentAlignment(options.column.alignment);\r\n return $cellContent[showColumnLines || \"right\" === contentAlignment ? \"appendTo\" : \"prependTo\"]($cell)\r\n };\r\n\r\n function addCssClassesToCellContent(that, $cell, column, $cellContent) {\r\n var $indicatorElements = that._getIndicatorElements($cell, true);\r\n var $visibleIndicatorElements = that._getIndicatorElements($cell);\r\n var indicatorCount = $indicatorElements && $indicatorElements.length;\r\n var columnAlignment = that._getColumnAlignment(column.alignment);\r\n var sortIndicatorClassName = \".\".concat(that._getIndicatorClassName(\"sort\"));\r\n var sortIndexIndicatorClassName = \".\".concat(that._getIndicatorClassName(\"sortIndex\"));\r\n var $sortIndicator = $visibleIndicatorElements.filter(sortIndicatorClassName);\r\n var $sortIndexIndicator = $visibleIndicatorElements.children().filter(sortIndexIndicatorClassName);\r\n $cellContent = $cellContent || $cell.children(\".\" + that.addWidgetPrefix(CELL_CONTENT_CLASS));\r\n $cellContent.toggleClass(TEXT_CONTENT_ALIGNMENT_CLASS_PREFIX + columnAlignment, indicatorCount > 0).toggleClass(TEXT_CONTENT_ALIGNMENT_CLASS_PREFIX + (\"left\" === columnAlignment ? \"right\" : \"left\"), indicatorCount > 0 && \"center\" === column.alignment).toggleClass(SORT_INDICATOR_CLASS, !!$sortIndicator.length).toggleClass(SORT_INDEX_INDICATOR_CLASS, !!$sortIndexIndicator.length).toggleClass(HEADER_FILTER_INDICATOR_CLASS, !!$visibleIndicatorElements.filter(\".\" + that._getIndicatorClassName(\"headerFilter\")).length)\r\n }\r\n return {\r\n _createTable: function() {\r\n var $table = this.callBase.apply(this, arguments);\r\n eventsEngine.on($table, \"mousedown selectstart\", this.createAction((function(e) {\r\n var event = e.event;\r\n if (event.shiftKey) {\r\n event.preventDefault()\r\n }\r\n })));\r\n return $table\r\n },\r\n _isLegacyKeyboardNavigation() {\r\n return this.option(\"useLegacyKeyboardNavigation\")\r\n },\r\n _getDefaultTemplate: function(column) {\r\n var that = this;\r\n return function($container, options) {\r\n var $content = column.command ? $container : createCellContent(that, $container, options);\r\n var caption = \"expand\" !== column.command && column.caption;\r\n if (caption) {\r\n $content.text(caption)\r\n } else if (column.command) {\r\n $container.html(\" \")\r\n }\r\n }\r\n },\r\n _getHeaderTemplate: function(column) {\r\n return column.headerCellTemplate || {\r\n allowRenderToDetachedContainer: true,\r\n render: this._getDefaultTemplate(column)\r\n }\r\n },\r\n _processTemplate: function(template, options) {\r\n var that = this;\r\n var resultTemplate;\r\n var column = options.column;\r\n var renderingTemplate = that.callBase(template);\r\n if (\"header\" === options.rowType && renderingTemplate && column.headerCellTemplate && !column.command) {\r\n resultTemplate = {\r\n render: function(options) {\r\n var $content = createCellContent(that, options.container, options.model);\r\n renderingTemplate.render(extend({}, options, {\r\n container: $content\r\n }))\r\n }\r\n }\r\n } else {\r\n resultTemplate = renderingTemplate\r\n }\r\n return resultTemplate\r\n },\r\n _handleDataChanged: function(e) {\r\n if (\"refresh\" !== e.changeType) {\r\n return\r\n }\r\n if (this._isGroupingChanged || this._requireReady) {\r\n this._isGroupingChanged = false;\r\n this.render()\r\n }\r\n },\r\n _renderCell: function($row, options) {\r\n var $cell = this.callBase($row, options);\r\n if (\"header\" === options.row.rowType) {\r\n $cell.addClass(CELL_FOCUS_DISABLED_CLASS);\r\n if (!this._isLegacyKeyboardNavigation()) {\r\n if (options.column && !options.column.type) {\r\n $cell.attr(\"tabindex\", this.option(\"tabindex\") || 0)\r\n }\r\n }\r\n }\r\n return $cell\r\n },\r\n _setCellAriaAttributes: function($cell, cellOptions) {\r\n this.callBase($cell, cellOptions);\r\n if (\"header\" === cellOptions.rowType) {\r\n this.setAria(\"role\", \"columnheader\", $cell);\r\n if (cellOptions.column && !cellOptions.column.command && !cellOptions.column.isBand) {\r\n $cell.attr(\"id\", cellOptions.column.headerId);\r\n this.setAria(\"label\", messageLocalization.format(\"dxDataGrid-ariaColumn\") + \" \" + cellOptions.column.caption, $cell)\r\n }\r\n }\r\n },\r\n _createRow: function(row) {\r\n var $row = this.callBase.apply(this, arguments);\r\n $row.toggleClass(COLUMN_LINES_CLASS, this.option(\"showColumnLines\"));\r\n if (\"header\" === row.rowType) {\r\n $row.addClass(HEADER_ROW_CLASS);\r\n if (!this._isLegacyKeyboardNavigation()) {\r\n registerKeyboardAction(\"columnHeaders\", this, $row, \"td\", this._handleActionKeyDown.bind(this))\r\n }\r\n }\r\n return $row\r\n },\r\n _handleActionKeyDown: function(args) {\r\n var event = args.event;\r\n var $target = $(event.target);\r\n this._lastActionElement = event.target;\r\n if ($target.is(HEADER_FILTER_CLASS_SELECTOR)) {\r\n var headerFilterController = this.getController(\"headerFilter\");\r\n var $column = $target.closest(\"td\");\r\n var columnIndex = this.getColumnIndexByElement($column);\r\n if (columnIndex >= 0) {\r\n headerFilterController.showHeaderFilterMenu(columnIndex, false)\r\n }\r\n } else {\r\n var $row = $target.closest(ROW_CLASS_SELECTOR);\r\n this._processHeaderAction(event, $row)\r\n }\r\n event.preventDefault()\r\n },\r\n _renderCore: function() {\r\n var that = this;\r\n var $container = that.element();\r\n if (that._tableElement && !that._dataController.isLoaded() && !that._hasRowElements) {\r\n return\r\n }\r\n $container.addClass(that.addWidgetPrefix(HEADERS_CLASS)).toggleClass(that.addWidgetPrefix(NOWRAP_CLASS), !that.option(\"wordWrapEnabled\")).empty();\r\n that.setAria(\"role\", \"presentation\", $container);\r\n that._updateContent(that._renderTable());\r\n if (that.getRowCount() > 1) {\r\n $container.addClass(MULTI_ROW_HEADER_CLASS)\r\n }\r\n that.callBase.apply(that, arguments)\r\n },\r\n _renderRows: function() {\r\n var that = this;\r\n if (that._dataController.isLoaded() || that._hasRowElements) {\r\n that.callBase.apply(that, arguments);\r\n that._hasRowElements = true\r\n }\r\n },\r\n _getRowVisibleColumns: function(rowIndex) {\r\n return this._columnsController.getVisibleColumns(rowIndex)\r\n },\r\n _renderRow: function($table, options) {\r\n options.columns = this._getRowVisibleColumns(options.row.rowIndex);\r\n this.callBase($table, options)\r\n },\r\n _createCell: function(options) {\r\n var column = options.column;\r\n var $cellElement = this.callBase.apply(this, arguments);\r\n column.rowspan > 1 && \"header\" === options.rowType && $cellElement.attr(\"rowSpan\", column.rowspan);\r\n return $cellElement\r\n },\r\n _getRows: function() {\r\n var result = [];\r\n var rowCount = this.getRowCount();\r\n if (this.option(\"showColumnHeaders\")) {\r\n for (var i = 0; i < rowCount; i++) {\r\n result.push({\r\n rowType: \"header\",\r\n rowIndex: i\r\n })\r\n }\r\n }\r\n return result\r\n },\r\n _getCellTemplate: function(options) {\r\n if (\"header\" === options.rowType) {\r\n return this._getHeaderTemplate(options.column)\r\n }\r\n },\r\n _columnOptionChanged: function(e) {\r\n var changeTypes = e.changeTypes;\r\n var optionNames = e.optionNames;\r\n if (changeTypes.grouping || changeTypes.groupExpanding) {\r\n if (changeTypes.grouping) {\r\n this._isGroupingChanged = true\r\n }\r\n return\r\n }\r\n this.callBase(e);\r\n if (optionNames.width || optionNames.visible) {\r\n this.resizeCompleted.fire()\r\n }\r\n },\r\n _isElementVisible: function(elementOptions) {\r\n return elementOptions && elementOptions.visible\r\n },\r\n _alignCaptionByCenter: function($cell) {\r\n var $indicatorsContainer = this._getIndicatorContainer($cell, true);\r\n if ($indicatorsContainer && $indicatorsContainer.length) {\r\n $indicatorsContainer.filter(\".\" + VISIBILITY_HIDDEN_CLASS).remove();\r\n $indicatorsContainer = this._getIndicatorContainer($cell);\r\n $indicatorsContainer.clone().addClass(VISIBILITY_HIDDEN_CLASS).css(\"float\", \"\").insertBefore($cell.children(\".\" + this.addWidgetPrefix(CELL_CONTENT_CLASS)))\r\n }\r\n },\r\n _updateCell: function($cell, options) {\r\n if (\"header\" === options.rowType && \"center\" === options.column.alignment) {\r\n this._alignCaptionByCenter($cell)\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _updateIndicator: function($cell, column, indicatorName) {\r\n var $indicatorElement = this.callBase.apply(this, arguments);\r\n if (\"center\" === column.alignment) {\r\n this._alignCaptionByCenter($cell)\r\n }\r\n addCssClassesToCellContent(this, $cell, column);\r\n return $indicatorElement\r\n },\r\n _getIndicatorContainer: function($cell, returnAll) {\r\n var $indicatorsContainer = this.callBase($cell);\r\n return returnAll ? $indicatorsContainer : $indicatorsContainer.filter(\":not(.\" + VISIBILITY_HIDDEN_CLASS + \")\")\r\n },\r\n _isSortableElement: function() {\r\n return true\r\n },\r\n getHeadersRowHeight: function() {\r\n var $tableElement = this.getTableElement();\r\n var $headerRows = $tableElement && $tableElement.find(\".\" + HEADER_ROW_CLASS);\r\n return $headerRows && $headerRows.toArray().reduce((function(sum, headerRow) {\r\n return sum + getHeight(headerRow)\r\n }), 0) || 0\r\n },\r\n getHeaderElement: function(index) {\r\n var columnElements = this.getColumnElements();\r\n return columnElements && columnElements.eq(index)\r\n },\r\n getColumnElements: function(index, bandColumnIndex) {\r\n var that = this;\r\n var $cellElement;\r\n var columnsController = that._columnsController;\r\n var rowCount = that.getRowCount();\r\n if (that.option(\"showColumnHeaders\")) {\r\n if (rowCount > 1 && (!isDefined(index) || isDefined(bandColumnIndex))) {\r\n var result = [];\r\n var visibleColumns = isDefined(bandColumnIndex) ? columnsController.getChildrenByBandColumn(bandColumnIndex, true) : columnsController.getVisibleColumns();\r\n each(visibleColumns, (function(_, column) {\r\n var rowIndex = isDefined(index) ? index : columnsController.getRowIndex(column.index);\r\n $cellElement = that._getCellElement(rowIndex, columnsController.getVisibleIndex(column.index, rowIndex));\r\n $cellElement && result.push($cellElement.get(0))\r\n }));\r\n return $(result)\r\n } else if (!index || index < rowCount) {\r\n return that.getCellElements(index || 0)\r\n }\r\n }\r\n },\r\n getColumnIndexByElement: function($cell) {\r\n var cellIndex = this.getCellIndex($cell);\r\n var $row = $cell.closest(\".dx-row\");\r\n var rowIndex = $row[0].rowIndex;\r\n var column = this.getColumns(rowIndex)[cellIndex];\r\n return column ? column.index : -1\r\n },\r\n getVisibleColumnIndex: function(columnIndex, rowIndex) {\r\n var column = this.getColumns()[columnIndex];\r\n return column ? this._columnsController.getVisibleIndex(column.index, rowIndex) : -1\r\n },\r\n getColumnWidths: function() {\r\n var $columnElements = this.getColumnElements();\r\n if ($columnElements && $columnElements.length) {\r\n return this._getWidths($columnElements)\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n allowDragging: function(column, sourceLocation, draggingPanels) {\r\n var i;\r\n var draggableColumnCount = 0;\r\n var rowIndex = column && this._columnsController.getRowIndex(column.index);\r\n var columns = this.getColumns(0 === rowIndex ? 0 : null);\r\n var canHideColumn = (null === column || void 0 === column ? void 0 : column.allowHiding) && columns.length > 1;\r\n var allowDrag = function(column) {\r\n return column.allowReordering || column.allowGrouping || column.allowHiding\r\n };\r\n for (i = 0; i < columns.length; i++) {\r\n if (allowDrag(columns[i])) {\r\n draggableColumnCount++\r\n }\r\n }\r\n if (draggableColumnCount <= 1 && !canHideColumn) {\r\n return false\r\n } else if (!draggingPanels) {\r\n return (this.option(\"allowColumnReordering\") || this._columnsController.isColumnOptionUsed(\"allowReordering\")) && column && column.allowReordering\r\n }\r\n for (i = 0; i < draggingPanels.length; i++) {\r\n var draggingPanel = draggingPanels[i];\r\n if (draggingPanel && draggingPanel.allowDragging(column, sourceLocation)) {\r\n return true\r\n }\r\n }\r\n return false\r\n },\r\n getBoundingRect: function() {\r\n var $columnElements = this.getColumnElements();\r\n if ($columnElements && $columnElements.length) {\r\n var offset = this.getTableElement().offset();\r\n return {\r\n top: offset.top\r\n }\r\n }\r\n return null\r\n },\r\n getName: function() {\r\n return \"headers\"\r\n },\r\n getColumnCount: function() {\r\n var $columnElements = this.getColumnElements();\r\n return $columnElements ? $columnElements.length : 0\r\n },\r\n isVisible: function() {\r\n return this.option(\"showColumnHeaders\")\r\n },\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"showColumnHeaders\":\r\n case \"wordWrapEnabled\":\r\n case \"showColumnLines\":\r\n this._invalidate(true, true);\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n getHeight: function() {\r\n return this.getElementHeight()\r\n },\r\n getContextMenuItems: function(options) {\r\n var that = this;\r\n var column = options.column;\r\n if (options.row && (\"header\" === options.row.rowType || \"detailAdaptive\" === options.row.rowType)) {\r\n var sortingOptions = that.option(\"sorting\");\r\n if (sortingOptions && \"none\" !== sortingOptions.mode && column && column.allowSorting) {\r\n var onItemClick = function(params) {\r\n setTimeout((function() {\r\n that._columnsController.changeSortOrder(column.index, params.itemData.value)\r\n }))\r\n };\r\n return [{\r\n text: sortingOptions.ascendingText,\r\n value: \"asc\",\r\n disabled: \"asc\" === column.sortOrder,\r\n icon: CONTEXT_MENU_SORT_ASC_ICON,\r\n onItemClick: onItemClick\r\n }, {\r\n text: sortingOptions.descendingText,\r\n value: \"desc\",\r\n disabled: \"desc\" === column.sortOrder,\r\n icon: CONTEXT_MENU_SORT_DESC_ICON,\r\n onItemClick: onItemClick\r\n }, {\r\n text: sortingOptions.clearText,\r\n value: \"none\",\r\n disabled: !column.sortOrder,\r\n icon: CONTEXT_MENU_SORT_NONE_ICON,\r\n onItemClick: onItemClick\r\n }]\r\n }\r\n }\r\n },\r\n getRowCount: function() {\r\n return this._columnsController && this._columnsController.getRowCount()\r\n },\r\n setRowsOpacity: function(columnIndex, value, rowIndex) {\r\n var that = this;\r\n var i;\r\n var columnElements;\r\n var rowCount = that.getRowCount();\r\n var columns = that._columnsController.getColumns();\r\n var column = columns && columns[columnIndex];\r\n var columnID = column && column.isBand && column.index;\r\n var setColumnOpacity = function(index, column) {\r\n if (column.ownerBand === columnID) {\r\n columnElements.eq(index).css({\r\n opacity: value\r\n });\r\n if (column.isBand) {\r\n that.setRowsOpacity(column.index, value, i + 1)\r\n }\r\n }\r\n };\r\n if (isDefined(columnID)) {\r\n rowIndex = rowIndex || 0;\r\n for (i = rowIndex; i < rowCount; i++) {\r\n columnElements = that.getCellElements(i);\r\n each(that.getColumns(i), setColumnOpacity)\r\n }\r\n }\r\n }\r\n }\r\n }())\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.column_headers.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n columnHeadersModule\r\n} from \"../grid_core/ui.grid_core.column_headers\";\r\nexport var ColumnHeadersView = columnHeadersModule.views.columnHeadersView;\r\ngridCore.registerModule(\"columnHeaders\", columnHeadersModule);\r\n","/**\r\n * DevExtreme (esm/core/utils/date_serialization.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport config from \"../config\";\r\nimport {\r\n getFormatter as getLDMLFormatter\r\n} from \"../../localization/ldml/date.formatter\";\r\nimport defaultDateNames from \"../../localization/default_date_names\";\r\nimport {\r\n isString,\r\n isDate,\r\n isNumeric as isNumber\r\n} from \"./type\";\r\nvar NUMBER_SERIALIZATION_FORMAT = \"number\";\r\nvar DATE_SERIALIZATION_FORMAT = \"yyyy/MM/dd\";\r\nvar DATETIME_SERIALIZATION_FORMAT = \"yyyy/MM/dd HH:mm:ss\";\r\nvar ISO8601_PATTERN = /^(\\d{4,})(-)?(\\d{2})(-)?(\\d{2})(?:T(\\d{2})(:)?(\\d{2})?(:)?(\\d{2}(?:\\.(\\d{1,3})\\d*)?)?)?(Z|([+-])(\\d{2})(:)?(\\d{2})?)?$/;\r\nvar ISO8601_TIME_PATTERN = /^(\\d{2}):(\\d{2})(:(\\d{2}))?$/;\r\nvar ISO8601_PATTERN_PARTS = [\"\", \"yyyy\", \"\", \"MM\", \"\", \"dd\", \"THH\", \"\", \"mm\", \"\", \"ss\", \".SSS\"];\r\nvar DATE_SERIALIZATION_PATTERN = /^(\\d{4})\\/(\\d{2})\\/(\\d{2})$/;\r\nvar MILLISECOND_LENGHT = 3;\r\nvar dateParser = function(text, skipISO8601Parsing) {\r\n var result;\r\n if (isString(text) && !skipISO8601Parsing) {\r\n result = parseISO8601String(text)\r\n }\r\n return result || parseDate(text)\r\n};\r\n\r\nfunction getTimePart(part) {\r\n return +part || 0\r\n}\r\n\r\nfunction parseDate(text) {\r\n var isDefaultSerializationFormat = getDateSerializationFormat(text) === DATE_SERIALIZATION_FORMAT;\r\n var parsedValue = !isDate(text) && Date.parse(text);\r\n if (!parsedValue && isDefaultSerializationFormat) {\r\n var parts = text.match(DATE_SERIALIZATION_PATTERN);\r\n if (parts) {\r\n var newDate = new Date(getTimePart(parts[1]), getTimePart(parts[2]), getTimePart(parts[3]));\r\n newDate.setFullYear(getTimePart(parts[1]));\r\n newDate.setMonth(getTimePart(parts[2]) - 1);\r\n newDate.setDate(getTimePart(parts[3]));\r\n return newDate\r\n }\r\n }\r\n return isNumber(parsedValue) ? new Date(parsedValue) : text\r\n}\r\n\r\nfunction parseISO8601String(text) {\r\n var parts = text.match(ISO8601_PATTERN);\r\n if (!parts) {\r\n parts = text.match(ISO8601_TIME_PATTERN);\r\n if (parts) {\r\n return new Date(0, 0, 0, getTimePart(parts[1]), getTimePart(parts[2]), getTimePart(parts[4]))\r\n }\r\n return\r\n }\r\n var year = getTimePart(parts[1]);\r\n var month = --parts[3];\r\n var day = parts[5];\r\n var timeZoneHour = 0;\r\n var timeZoneMinute = 0;\r\n var correctYear = d => {\r\n year < 100 && d.setFullYear(year);\r\n return d\r\n };\r\n timeZoneHour = getTimePart(parts[14]);\r\n timeZoneMinute = getTimePart(parts[16]);\r\n if (\"-\" === parts[13]) {\r\n timeZoneHour = -timeZoneHour;\r\n timeZoneMinute = -timeZoneMinute\r\n }\r\n var hour = getTimePart(parts[6]) - timeZoneHour;\r\n var minute = getTimePart(parts[8]) - timeZoneMinute;\r\n var second = getTimePart(parts[10]);\r\n var millisecond = function(part) {\r\n part = part || \"\";\r\n return getTimePart(part) * Math.pow(10, MILLISECOND_LENGHT - part.length)\r\n }(parts[11]);\r\n if (parts[12]) {\r\n return correctYear(new Date(Date.UTC(year, month, day, hour, minute, second, millisecond)))\r\n }\r\n return correctYear(new Date(year, month, day, hour, minute, second, millisecond))\r\n}\r\nvar getIso8601Format = function(text, useUtc) {\r\n var parts = text.match(ISO8601_PATTERN);\r\n var result = \"\";\r\n if (!parts) {\r\n parts = text.match(ISO8601_TIME_PATTERN);\r\n if (parts) {\r\n return parts[3] ? \"HH:mm:ss\" : \"HH:mm\"\r\n }\r\n return\r\n }\r\n for (var i = 1; i < ISO8601_PATTERN_PARTS.length; i++) {\r\n if (parts[i]) {\r\n result += ISO8601_PATTERN_PARTS[i] || parts[i]\r\n }\r\n }\r\n if (\"Z\" === parts[12]) {\r\n result += \"'Z'\"\r\n }\r\n if (parts[14]) {\r\n if (parts[15]) {\r\n result += \"xxx\"\r\n } else if (parts[16]) {\r\n result += \"xx\"\r\n } else {\r\n result += \"x\"\r\n }\r\n }\r\n return result\r\n};\r\nvar deserializeDate = function(value) {\r\n if (\"number\" === typeof value) {\r\n return new Date(value)\r\n }\r\n return dateParser(value, !config().forceIsoDateParsing)\r\n};\r\nvar serializeDate = function(value, serializationFormat) {\r\n if (!serializationFormat) {\r\n return value\r\n }\r\n if (!isDate(value)) {\r\n return null\r\n }\r\n if (serializationFormat === NUMBER_SERIALIZATION_FORMAT) {\r\n return value && value.valueOf ? value.valueOf() : null\r\n }\r\n return getLDMLFormatter(serializationFormat, defaultDateNames)(value)\r\n};\r\nvar getDateSerializationFormat = function(value) {\r\n if (\"number\" === typeof value) {\r\n return NUMBER_SERIALIZATION_FORMAT\r\n } else if (isString(value)) {\r\n var format;\r\n if (config().forceIsoDateParsing) {\r\n format = getIso8601Format(value)\r\n }\r\n if (format) {\r\n return format\r\n } else if (value.indexOf(\":\") >= 0) {\r\n return DATETIME_SERIALIZATION_FORMAT\r\n } else {\r\n return DATE_SERIALIZATION_FORMAT\r\n }\r\n } else if (value) {\r\n return null\r\n }\r\n};\r\nexport default {\r\n dateParser: dateParser,\r\n deserializeDate: deserializeDate,\r\n serializeDate: serializeDate,\r\n getDateSerializationFormat: getDateSerializationFormat\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.columns_controller.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport $ from \"../../core/renderer\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport variableWrapper from \"../../core/utils/variable_wrapper\";\r\nimport {\r\n compileGetter,\r\n compileSetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n isDefined,\r\n isString,\r\n isNumeric,\r\n isFunction,\r\n isObject,\r\n isPlainObject,\r\n type\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n getDefaultAlignment\r\n} from \"../../core/utils/position\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n normalizeIndexes\r\n} from \"../../core/utils/array\";\r\nimport config from \"../../core/config\";\r\nimport {\r\n orderEach,\r\n deepExtendArraySafe\r\n} from \"../../core/utils/object\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport {\r\n captionize\r\n} from \"../../core/utils/inflector\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport numberLocalization from \"../../localization/number\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport Store from \"../../data/abstract_store\";\r\nimport {\r\n DataSource\r\n} from \"../../data/data_source/data_source\";\r\nimport {\r\n normalizeDataSourceOptions\r\n} from \"../../data/data_source/utils\";\r\nimport {\r\n equalByValue\r\n} from \"../../core/utils/common\";\r\nimport filterUtils from \"../shared/filtering\";\r\nvar USER_STATE_FIELD_NAMES_15_1 = [\"filterValues\", \"filterType\", \"fixed\", \"fixedPosition\"];\r\nvar USER_STATE_FIELD_NAMES = [\"visibleIndex\", \"dataField\", \"name\", \"dataType\", \"width\", \"visible\", \"sortOrder\", \"lastSortOrder\", \"sortIndex\", \"groupIndex\", \"filterValue\", \"bufferedFilterValue\", \"selectedFilterOperation\", \"bufferedSelectedFilterOperation\", \"added\"].concat(USER_STATE_FIELD_NAMES_15_1);\r\nvar IGNORE_COLUMN_OPTION_NAMES = {\r\n visibleWidth: true,\r\n bestFitWidth: true,\r\n bufferedFilterValue: true\r\n};\r\nvar COMMAND_EXPAND_CLASS = \"dx-command-expand\";\r\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;\r\nvar GROUP_COMMAND_COLUMN_NAME = \"groupExpand\";\r\nvar regExp = /columns\\[(\\d+)\\]\\.?/gi;\r\nvar globalColumnId = 1;\r\nexport var columnsControllerModule = {\r\n defaultOptions: function() {\r\n return {\r\n commonColumnSettings: {\r\n allowFiltering: true,\r\n allowHiding: true,\r\n allowSorting: true,\r\n allowEditing: true,\r\n encodeHtml: true,\r\n trueText: messageLocalization.format(\"dxDataGrid-trueText\"),\r\n falseText: messageLocalization.format(\"dxDataGrid-falseText\")\r\n },\r\n allowColumnReordering: false,\r\n allowColumnResizing: false,\r\n columnResizingMode: \"nextColumn\",\r\n columnMinWidth: void 0,\r\n columnWidth: void 0,\r\n adaptColumnWidthByRatio: true,\r\n columns: void 0,\r\n regenerateColumnsByVisibleItems: false,\r\n customizeColumns: null,\r\n dateSerializationFormat: void 0\r\n }\r\n },\r\n controllers: {\r\n columns: modules.Controller.inherit(function() {\r\n var DEFAULT_COLUMN_OPTIONS = {\r\n visible: true,\r\n showInColumnChooser: true\r\n };\r\n var DATATYPE_OPERATIONS = {\r\n number: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"between\"],\r\n string: [\"contains\", \"notcontains\", \"startswith\", \"endswith\", \"=\", \"<>\"],\r\n date: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"between\"],\r\n datetime: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"between\"]\r\n };\r\n var COLUMN_INDEX_OPTIONS = {\r\n visibleIndex: true,\r\n groupIndex: true,\r\n grouped: true,\r\n sortIndex: true,\r\n sortOrder: true\r\n };\r\n var setFilterOperationsAsDefaultValues = function(column) {\r\n column.filterOperations = column.defaultFilterOperations\r\n };\r\n var createColumn = function(that, columnOptions, userStateColumnOptions, bandColumn) {\r\n var commonColumnOptions = {};\r\n if (columnOptions) {\r\n if (isString(columnOptions)) {\r\n columnOptions = {\r\n dataField: columnOptions\r\n }\r\n }\r\n that.setName(columnOptions);\r\n var result = {};\r\n if (columnOptions.command) {\r\n result = deepExtendArraySafe(commonColumnOptions, columnOptions)\r\n } else {\r\n commonColumnOptions = that.getCommonSettings(columnOptions);\r\n if (userStateColumnOptions && userStateColumnOptions.name && userStateColumnOptions.dataField) {\r\n columnOptions = extend({}, columnOptions, {\r\n dataField: userStateColumnOptions.dataField\r\n })\r\n }\r\n var calculatedColumnOptions = that._createCalculatedColumnOptions(columnOptions, bandColumn);\r\n if (!columnOptions.type) {\r\n result = {\r\n headerId: \"dx-col-\".concat(globalColumnId++)\r\n }\r\n }\r\n result = deepExtendArraySafe(result, DEFAULT_COLUMN_OPTIONS);\r\n deepExtendArraySafe(result, commonColumnOptions);\r\n deepExtendArraySafe(result, calculatedColumnOptions);\r\n deepExtendArraySafe(result, columnOptions);\r\n deepExtendArraySafe(result, {\r\n selector: null\r\n })\r\n }\r\n if (columnOptions.filterOperations === columnOptions.defaultFilterOperations) {\r\n setFilterOperationsAsDefaultValues(result)\r\n }\r\n return result\r\n }\r\n };\r\n var createColumnsFromOptions = function createColumnsFromOptions(that, columnsOptions, bandColumn) {\r\n var result = [];\r\n if (columnsOptions) {\r\n each(columnsOptions, (function(index, columnOptions) {\r\n var userStateColumnOptions = that._columnsUserState && checkUserStateColumn(columnOptions, that._columnsUserState[index]) && that._columnsUserState[index];\r\n var column = createColumn(that, columnOptions, userStateColumnOptions, bandColumn);\r\n if (column) {\r\n if (bandColumn) {\r\n column.ownerBand = bandColumn\r\n }\r\n result.push(column);\r\n if (column.columns) {\r\n result = result.concat(createColumnsFromOptions(that, column.columns, column));\r\n delete column.columns;\r\n column.hasColumns = true\r\n }\r\n }\r\n }))\r\n }\r\n return result\r\n };\r\n var getParentBandColumns = function(columnIndex, columnParentByIndex) {\r\n var result = [];\r\n var parent = columnParentByIndex[columnIndex];\r\n while (parent) {\r\n result.unshift(parent);\r\n columnIndex = parent.index;\r\n parent = columnParentByIndex[columnIndex]\r\n }\r\n return result\r\n };\r\n var _getChildrenByBandColumn = function(columnIndex, columnChildrenByIndex, recursive) {\r\n var result = [];\r\n var children = columnChildrenByIndex[columnIndex];\r\n if (children) {\r\n for (var i = 0; i < children.length; i++) {\r\n var column = children[i];\r\n if (!isDefined(column.groupIndex) || column.showWhenGrouped) {\r\n result.push(column);\r\n if (recursive && column.isBand) {\r\n result = result.concat(_getChildrenByBandColumn(column.index, columnChildrenByIndex, recursive))\r\n }\r\n }\r\n }\r\n }\r\n return result\r\n };\r\n var getColumnFullPath = function(that, column) {\r\n var result = [];\r\n var columns;\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var callbackFilter = function(item) {\r\n return item.ownerBand === column.ownerBand\r\n };\r\n if (bandColumnsCache.isPlain) {\r\n var columnIndex = that._columns.indexOf(column);\r\n if (columnIndex >= 0) {\r\n result = [\"columns[\".concat(columnIndex, \"]\")]\r\n }\r\n } else {\r\n columns = that._columns.filter(callbackFilter);\r\n while (columns.length && -1 !== columns.indexOf(column)) {\r\n result.unshift(\"columns[\".concat(columns.indexOf(column), \"]\"));\r\n column = bandColumnsCache.columnParentByIndex[column.index];\r\n columns = column ? that._columns.filter(callbackFilter) : []\r\n }\r\n }\r\n return result.join(\".\")\r\n };\r\n var calculateColspan = function calculateColspan(that, columnID) {\r\n var colspan = 0;\r\n var columns = that.getChildrenByBandColumn(columnID, true);\r\n each(columns, (function(_, column) {\r\n if (column.isBand) {\r\n column.colspan = column.colspan || calculateColspan(that, column.index);\r\n colspan += column.colspan || 1\r\n } else {\r\n colspan += 1\r\n }\r\n }));\r\n return colspan\r\n };\r\n var getValueDataType = function(value) {\r\n var dataType = type(value);\r\n if (\"string\" !== dataType && \"boolean\" !== dataType && \"number\" !== dataType && \"date\" !== dataType && \"object\" !== dataType) {\r\n dataType = void 0\r\n }\r\n return dataType\r\n };\r\n var getSerializationFormat = function(dataType, value) {\r\n switch (dataType) {\r\n case \"date\":\r\n case \"datetime\":\r\n return dateSerialization.getDateSerializationFormat(value);\r\n case \"number\":\r\n if (isString(value)) {\r\n return \"string\"\r\n }\r\n if (isNumeric(value)) {\r\n return null\r\n }\r\n }\r\n };\r\n var updateSerializers = function(options, dataType) {\r\n if (!options.deserializeValue) {\r\n if (gridCoreUtils.isDateType(dataType)) {\r\n options.deserializeValue = function(value) {\r\n return dateSerialization.deserializeDate(value)\r\n };\r\n options.serializeValue = function(value) {\r\n return isString(value) ? value : dateSerialization.serializeDate(value, this.serializationFormat)\r\n }\r\n }\r\n if (\"number\" === dataType) {\r\n options.deserializeValue = function(value) {\r\n var parsedValue = parseFloat(value);\r\n return isNaN(parsedValue) ? value : parsedValue\r\n };\r\n options.serializeValue = function(value, target) {\r\n if (\"filter\" === target) {\r\n return value\r\n }\r\n return isDefined(value) && \"string\" === this.serializationFormat ? value.toString() : value\r\n }\r\n }\r\n }\r\n };\r\n var customizeTextForBooleanDataType = function(e) {\r\n if (true === e.value) {\r\n return this.trueText || \"true\"\r\n } else if (false === e.value) {\r\n return this.falseText || \"false\"\r\n } else {\r\n return e.valueText || \"\"\r\n }\r\n };\r\n var getCustomizeTextByDataType = function(dataType) {\r\n if (\"boolean\" === dataType) {\r\n return customizeTextForBooleanDataType\r\n }\r\n };\r\n var updateColumnIndexes = function(that) {\r\n each(that._columns, (function(index, column) {\r\n column.index = index\r\n }));\r\n each(that._columns, (function(index, column) {\r\n if (isObject(column.ownerBand)) {\r\n column.ownerBand = column.ownerBand.index\r\n }\r\n }));\r\n each(that._commandColumns, (function(index, column) {\r\n column.index = -(index + 1)\r\n }))\r\n };\r\n var updateColumnGroupIndexes = function(that, currentColumn) {\r\n normalizeIndexes(that._columns, \"groupIndex\", currentColumn, (function(column) {\r\n var grouped = column.grouped;\r\n delete column.grouped;\r\n return grouped\r\n }))\r\n };\r\n var getColumnIndexByVisibleIndex = function(that, visibleIndex, location) {\r\n var rowIndex = isObject(visibleIndex) ? visibleIndex.rowIndex : null;\r\n var columns = \"group\" === location ? that.getGroupColumns() : \"columnChooser\" === location ? that.getChooserColumns() : that.getVisibleColumns(rowIndex);\r\n var column;\r\n visibleIndex = isObject(visibleIndex) ? visibleIndex.columnIndex : visibleIndex;\r\n column = columns[visibleIndex];\r\n if (column && column.type === GROUP_COMMAND_COLUMN_NAME) {\r\n column = that._columns.filter(col => column.type === col.type)[0] || column\r\n }\r\n return column && isDefined(column.index) ? column.index : -1\r\n };\r\n\r\n function checkUserStateColumn(column, userStateColumn) {\r\n return column && userStateColumn && userStateColumn.name === (column.name || column.dataField) && (userStateColumn.dataField === column.dataField || column.name)\r\n }\r\n var applyUserState = function(that) {\r\n var columnsUserState = that._columnsUserState;\r\n var ignoreColumnOptionNames = that._ignoreColumnOptionNames || [];\r\n var columns = that._columns;\r\n var columnCountById = {};\r\n var resultColumns = [];\r\n var allColumnsHaveState = true;\r\n var userStateColumnIndexes = [];\r\n var column;\r\n var userStateColumnIndex;\r\n var i;\r\n\r\n function applyFieldsState(column, userStateColumn) {\r\n if (!userStateColumn) {\r\n return\r\n }\r\n for (var index = 0; index < USER_STATE_FIELD_NAMES.length; index++) {\r\n var fieldName = USER_STATE_FIELD_NAMES[index];\r\n if (ignoreColumnOptionNames.includes(fieldName)) {\r\n continue\r\n }\r\n if (\"dataType\" === fieldName) {\r\n column[fieldName] = column[fieldName] || userStateColumn[fieldName]\r\n } else if (USER_STATE_FIELD_NAMES_15_1.includes(fieldName)) {\r\n if (fieldName in userStateColumn) {\r\n column[fieldName] = userStateColumn[fieldName]\r\n }\r\n } else {\r\n if (\"selectedFilterOperation\" === fieldName && userStateColumn[fieldName]) {\r\n column.defaultSelectedFilterOperation = column[fieldName] || null\r\n }\r\n column[fieldName] = userStateColumn[fieldName]\r\n }\r\n }\r\n }\r\n\r\n function findUserStateColumn(columnsUserState, column) {\r\n var id = column.name || column.dataField;\r\n var count = columnCountById[id] || 0;\r\n for (var j = 0; j < columnsUserState.length; j++) {\r\n if (checkUserStateColumn(column, columnsUserState[j])) {\r\n if (count) {\r\n count--\r\n } else {\r\n columnCountById[id] = columnCountById[id] || 0;\r\n columnCountById[id]++;\r\n return j\r\n }\r\n }\r\n }\r\n return -1\r\n }\r\n if (columnsUserState) {\r\n for (i = 0; i < columns.length; i++) {\r\n userStateColumnIndex = findUserStateColumn(columnsUserState, columns[i]);\r\n allColumnsHaveState = allColumnsHaveState && userStateColumnIndex >= 0;\r\n userStateColumnIndexes.push(userStateColumnIndex)\r\n }\r\n for (i = 0; i < columns.length; i++) {\r\n column = columns[i];\r\n userStateColumnIndex = userStateColumnIndexes[i];\r\n if (that._hasUserState || allColumnsHaveState) {\r\n applyFieldsState(column, columnsUserState[userStateColumnIndex])\r\n }\r\n if (userStateColumnIndex >= 0 && isDefined(columnsUserState[userStateColumnIndex].initialIndex)) {\r\n resultColumns[userStateColumnIndex] = column\r\n } else {\r\n resultColumns.push(column)\r\n }\r\n }\r\n var hasAddedBands = false;\r\n for (i = 0; i < columnsUserState.length; i++) {\r\n var columnUserState = columnsUserState[i];\r\n if (columnUserState.added && findUserStateColumn(columns, columnUserState) < 0) {\r\n column = createColumn(that, columnUserState.added);\r\n applyFieldsState(column, columnUserState);\r\n resultColumns.push(column);\r\n if (columnUserState.added.columns) {\r\n hasAddedBands = true\r\n }\r\n }\r\n }\r\n if (hasAddedBands) {\r\n updateColumnIndexes(that);\r\n resultColumns = createColumnsFromOptions(that, resultColumns)\r\n }\r\n assignColumns(that, resultColumns)\r\n }\r\n };\r\n var updateIndexes = function(that, column) {\r\n updateColumnIndexes(that);\r\n updateColumnGroupIndexes(that, column);\r\n ! function(that, currentColumn) {\r\n each(that._columns, (function(index, column) {\r\n if (isDefined(column.sortIndex) && !isSortOrderValid(column.sortOrder)) {\r\n delete column.sortIndex\r\n }\r\n }));\r\n normalizeIndexes(that._columns, \"sortIndex\", currentColumn, (function(column) {\r\n return !isDefined(column.groupIndex) && isSortOrderValid(column.sortOrder)\r\n }))\r\n }(that, column);\r\n resetBandColumnsCache(that);\r\n ! function(that, currentColumn) {\r\n var column;\r\n var result = [];\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var bandedColumns = [];\r\n var columns = that._columns.filter(column => !column.command);\r\n for (var i = 0; i < columns.length; i++) {\r\n column = columns[i];\r\n var parentBandColumns = getParentBandColumns(i, bandColumnsCache.columnParentByIndex);\r\n if (parentBandColumns.length) {\r\n bandedColumns.push(column)\r\n } else {\r\n result.push(column)\r\n }\r\n }\r\n normalizeIndexes(bandedColumns, \"visibleIndex\", currentColumn);\r\n normalizeIndexes(result, \"visibleIndex\", currentColumn)\r\n }(that, column)\r\n };\r\n var resetColumnsCache = function(that) {\r\n that.resetColumnsCache()\r\n };\r\n\r\n function assignColumns(that, columns) {\r\n that._columns = columns;\r\n resetColumnsCache(that);\r\n that.updateColumnDataTypes()\r\n }\r\n var updateColumnChanges = function(that, changeType, optionName, columnIndex) {\r\n var columnChanges = that._columnChanges || {\r\n optionNames: {\r\n length: 0\r\n },\r\n changeTypes: {\r\n length: 0\r\n },\r\n columnIndex: columnIndex\r\n };\r\n optionName = optionName || \"all\";\r\n optionName = optionName.split(\".\")[0];\r\n var changeTypes = columnChanges.changeTypes;\r\n if (changeType && !changeTypes[changeType]) {\r\n changeTypes[changeType] = true;\r\n changeTypes.length++\r\n }\r\n var optionNames = columnChanges.optionNames;\r\n if (optionName && !optionNames[optionName]) {\r\n optionNames[optionName] = true;\r\n optionNames.length++\r\n }\r\n if (void 0 === columnIndex || columnIndex !== columnChanges.columnIndex) {\r\n delete columnChanges.columnIndex\r\n }\r\n that._columnChanges = columnChanges;\r\n resetColumnsCache(that)\r\n };\r\n var fireColumnsChanged = function(that) {\r\n var onColumnsChanging = that.option(\"onColumnsChanging\");\r\n var columnChanges = that._columnChanges;\r\n var reinitOptionNames = [\"dataField\", \"lookup\", \"dataType\", \"columns\"];\r\n if (that.isInitialized() && !that._updateLockCount && columnChanges) {\r\n if (onColumnsChanging) {\r\n that._updateLockCount++;\r\n onColumnsChanging(extend({\r\n component: that.component\r\n }, columnChanges));\r\n that._updateLockCount--\r\n }\r\n that._columnChanges = void 0;\r\n if (options = columnChanges.optionNames, options && reinitOptionNames.some(name => options[name])) {\r\n that.reinit()\r\n } else {\r\n that.columnsChanged.fire(columnChanges)\r\n }\r\n }\r\n var options\r\n };\r\n var updateSortOrderWhenGrouping = function(that, column, groupIndex, prevGroupIndex) {\r\n var columnWasGrouped = prevGroupIndex >= 0;\r\n if (groupIndex >= 0) {\r\n if (!columnWasGrouped) {\r\n column.lastSortOrder = column.sortOrder\r\n }\r\n } else {\r\n var sortMode = that.option(\"sorting.mode\");\r\n var sortOrder = column.lastSortOrder;\r\n if (\"single\" === sortMode) {\r\n var sortedByAnotherColumn = that._columns.some(col => col !== column && isDefined(col.sortIndex));\r\n if (sortedByAnotherColumn) {\r\n sortOrder = void 0\r\n }\r\n }\r\n column.sortOrder = sortOrder\r\n }\r\n };\r\n var fireOptionChanged = function(that, options) {\r\n var value = options.value;\r\n var optionName = options.optionName;\r\n var prevValue = options.prevValue;\r\n var fullOptionName = options.fullOptionName;\r\n var fullOptionPath = \"\".concat(fullOptionName, \".\").concat(optionName);\r\n if (!IGNORE_COLUMN_OPTION_NAMES[optionName] && that._skipProcessingColumnsChange !== fullOptionPath) {\r\n that._skipProcessingColumnsChange = fullOptionPath;\r\n that.component._notifyOptionChanged(fullOptionPath, value, prevValue);\r\n that._skipProcessingColumnsChange = false\r\n }\r\n };\r\n var columnOptionCore = function(that, column, optionName, value, notFireEvent) {\r\n var optionGetter = compileGetter(optionName);\r\n var columnIndex = column.index;\r\n var columns;\r\n var changeType;\r\n var initialColumn;\r\n if (3 === arguments.length) {\r\n return optionGetter(column, {\r\n functionsAsIs: true\r\n })\r\n }\r\n var prevValue = optionGetter(column, {\r\n functionsAsIs: true\r\n });\r\n if (!equalByValue(prevValue, value)) {\r\n if (\"groupIndex\" === optionName || \"calculateGroupValue\" === optionName) {\r\n changeType = \"grouping\";\r\n updateSortOrderWhenGrouping(that, column, value, prevValue)\r\n } else if (\"sortIndex\" === optionName || \"sortOrder\" === optionName || \"calculateSortValue\" === optionName) {\r\n changeType = \"sorting\"\r\n } else {\r\n changeType = \"columns\"\r\n }\r\n var optionSetter = compileSetter(optionName);\r\n optionSetter(column, value, {\r\n functionsAsIs: true\r\n });\r\n var fullOptionName = getColumnFullPath(that, column);\r\n if (COLUMN_INDEX_OPTIONS[optionName]) {\r\n updateIndexes(that, column);\r\n value = optionGetter(column)\r\n }\r\n if (\"name\" === optionName || \"allowEditing\" === optionName) {\r\n that._checkColumns()\r\n }\r\n if (!isDefined(prevValue) && !isDefined(value) && 0 !== optionName.indexOf(\"buffer\")) {\r\n notFireEvent = true\r\n }\r\n if (!notFireEvent) {\r\n if (!USER_STATE_FIELD_NAMES.includes(optionName) && \"visibleWidth\" !== optionName) {\r\n columns = that.option(\"columns\");\r\n initialColumn = that.getColumnByPath(fullOptionName, columns);\r\n if (isString(initialColumn)) {\r\n initialColumn = columns[columnIndex] = {\r\n dataField: initialColumn\r\n }\r\n }\r\n if (initialColumn && checkUserStateColumn(initialColumn, column)) {\r\n optionSetter(initialColumn, value, {\r\n functionsAsIs: true\r\n })\r\n }\r\n }\r\n updateColumnChanges(that, changeType, optionName, columnIndex)\r\n } else {\r\n resetColumnsCache(that)\r\n }\r\n fullOptionName && fireOptionChanged(that, {\r\n fullOptionName: fullOptionName,\r\n optionName: optionName,\r\n value: value,\r\n prevValue: prevValue\r\n })\r\n }\r\n };\r\n\r\n function isSortOrderValid(sortOrder) {\r\n return \"asc\" === sortOrder || \"desc\" === sortOrder\r\n }\r\n var defaultSetCellValue = function(data, value) {\r\n var path = this.dataField.split(\".\");\r\n var dotCount = path.length - 1;\r\n if (this.serializeValue) {\r\n value = this.serializeValue(value)\r\n }\r\n for (var i = 0; i < dotCount; i++) {\r\n var name = path[i];\r\n data = data[name] = data[name] || {}\r\n }\r\n data[path[dotCount]] = value\r\n };\r\n var isCustomCommandColumn = (that, commandColumn) => !!that._columns.filter(column => column.type === commandColumn.type).length;\r\n var getFixedPosition = function(that, column) {\r\n var rtlEnabled = that.option(\"rtlEnabled\");\r\n if (column.command && !isCustomCommandColumn(that, column) || !column.fixedPosition) {\r\n return rtlEnabled ? \"right\" : \"left\"\r\n }\r\n return column.fixedPosition\r\n };\r\n var processExpandColumns = function(columns, expandColumns, type, columnIndex) {\r\n var customColumnIndex;\r\n var rowCount = this.getRowCount();\r\n var rowspan = columns[columnIndex] && columns[columnIndex].rowspan;\r\n var expandColumnsByType = expandColumns.filter(column => column.type === type);\r\n columns.forEach((column, index) => {\r\n if (column.type === type) {\r\n customColumnIndex = index;\r\n rowspan = columns[index + 1] ? columns[index + 1].rowspan : rowCount\r\n }\r\n });\r\n if (rowspan > 1) {\r\n expandColumnsByType = map(expandColumnsByType, (function(expandColumn) {\r\n return extend({}, expandColumn, {\r\n rowspan: rowspan\r\n })\r\n }))\r\n }\r\n expandColumnsByType.unshift.apply(expandColumnsByType, isDefined(customColumnIndex) ? [customColumnIndex, 1] : [columnIndex, 0]);\r\n columns.splice.apply(columns, expandColumnsByType);\r\n return rowspan || 1\r\n };\r\n var numberToString = function(number, digitsCount) {\r\n var str = number ? number.toString() : \"0\";\r\n while (str.length < digitsCount) {\r\n str = \"0\" + str\r\n }\r\n return str\r\n };\r\n var mergeColumns = (that, columns, commandColumns, needToExtend) => {\r\n var column;\r\n var commandColumnIndex;\r\n var result = columns.slice().map(column => extend({}, column));\r\n var isColumnFixing = that._isColumnFixing();\r\n var defaultCommandColumns = commandColumns.slice().map(column => extend({\r\n fixed: isColumnFixing\r\n }, column));\r\n var getCommandColumnIndex = column => commandColumns.reduce((result, commandColumn, index) => {\r\n var columnType = needToExtend && column.type === GROUP_COMMAND_COLUMN_NAME ? \"expand\" : column.type;\r\n return commandColumn.type === columnType || commandColumn.command === column.command ? index : result\r\n }, -1);\r\n var callbackFilter = commandColumn => commandColumn.command !== commandColumns[commandColumnIndex].command;\r\n for (var i = 0; i < columns.length; i++) {\r\n column = columns[i];\r\n commandColumnIndex = column && (column.type || column.command) ? getCommandColumnIndex(column) : -1;\r\n if (commandColumnIndex >= 0) {\r\n if (needToExtend) {\r\n result[i] = extend({\r\n fixed: isColumnFixing\r\n }, commandColumns[commandColumnIndex], column);\r\n if (column.type !== GROUP_COMMAND_COLUMN_NAME) {\r\n defaultCommandColumns = defaultCommandColumns.filter(callbackFilter)\r\n }\r\n } else {\r\n var columnOptions = {\r\n visibleIndex: column.visibleIndex,\r\n index: column.index,\r\n headerId: column.headerId,\r\n allowFixing: 0 === column.groupIndex,\r\n allowReordering: 0 === column.groupIndex,\r\n groupIndex: column.groupIndex\r\n };\r\n result[i] = extend({}, column, commandColumns[commandColumnIndex], column.type === GROUP_COMMAND_COLUMN_NAME && columnOptions)\r\n }\r\n }\r\n }\r\n if (columns.length && needToExtend && defaultCommandColumns.length) {\r\n result = result.concat(defaultCommandColumns)\r\n }\r\n return result\r\n };\r\n var isColumnFixed = (that, column) => isDefined(column.fixed) || !column.type ? column.fixed : that._isColumnFixing();\r\n var resetBandColumnsCache = that => {\r\n that._bandColumnsCache = void 0\r\n };\r\n var findColumn = (columns, identifier) => {\r\n var identifierOptionName = isString(identifier) && identifier.substr(0, identifier.indexOf(\":\"));\r\n var column;\r\n if (void 0 === identifier) {\r\n return\r\n }\r\n if (identifierOptionName) {\r\n identifier = identifier.substr(identifierOptionName.length + 1)\r\n }\r\n if (identifierOptionName) {\r\n column = columns.filter(column => \"\" + column[identifierOptionName] === identifier)[0]\r\n } else {\r\n [\"index\", \"name\", \"dataField\", \"caption\"].some(optionName => {\r\n column = columns.filter(column => column[optionName] === identifier)[0];\r\n return !!column\r\n })\r\n }\r\n return column\r\n };\r\n return {\r\n _getExpandColumnOptions: function() {\r\n return {\r\n type: \"expand\",\r\n command: \"expand\",\r\n width: \"auto\",\r\n cssClass: COMMAND_EXPAND_CLASS,\r\n allowEditing: false,\r\n allowGrouping: false,\r\n allowSorting: false,\r\n allowResizing: false,\r\n allowReordering: false,\r\n allowHiding: false\r\n }\r\n },\r\n _getFirstItems: function(dataSource) {\r\n var groupsCount;\r\n var items = [];\r\n if (dataSource && dataSource.items().length > 0) {\r\n groupsCount = gridCoreUtils.normalizeSortingInfo(dataSource.group()).length;\r\n items = function getFirstItemsCore(items, groupsCount) {\r\n if (!items || !groupsCount) {\r\n return items\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var childItems = getFirstItemsCore(items[i].items || items[i].collapsedItems, groupsCount - 1);\r\n if (childItems && childItems.length) {\r\n return childItems\r\n }\r\n }\r\n }(dataSource.items(), groupsCount) || []\r\n }\r\n return items\r\n },\r\n _endUpdateCore: function() {\r\n !this._skipProcessingColumnsChange && fireColumnsChanged(this)\r\n },\r\n init: function(isApplyingUserState) {\r\n var columns = this.option(\"columns\");\r\n this._commandColumns = this._commandColumns || [];\r\n this._columns = this._columns || [];\r\n this._isColumnsFromOptions = !!columns;\r\n if (this._isColumnsFromOptions) {\r\n assignColumns(this, columns ? createColumnsFromOptions(this, columns) : []);\r\n applyUserState(this)\r\n } else {\r\n assignColumns(this, this._columnsUserState ? createColumnsFromOptions(this, this._columnsUserState) : this._columns)\r\n }! function(that) {\r\n var options = that._getExpandColumnOptions();\r\n that.addCommandColumn(options)\r\n }(this);\r\n if (this._dataSourceApplied) {\r\n this.applyDataSource(this._dataSource, true, isApplyingUserState)\r\n } else {\r\n updateIndexes(this)\r\n }\r\n this._checkColumns()\r\n },\r\n callbackNames: function() {\r\n return [\"columnsChanged\"]\r\n },\r\n getColumnByPath: function(path, columns) {\r\n var column;\r\n var columnIndexes = [];\r\n path.replace(regExp, (function(_, columnIndex) {\r\n columnIndexes.push(parseInt(columnIndex));\r\n return \"\"\r\n }));\r\n if (columnIndexes.length) {\r\n if (columns) {\r\n column = columnIndexes.reduce((function(column, index) {\r\n return column && column.columns && column.columns[index]\r\n }), {\r\n columns: columns\r\n })\r\n } else {\r\n column = function(that, columnIndexes) {\r\n var result;\r\n var columns;\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var callbackFilter = function(column) {\r\n var ownerBand = result ? result.index : void 0;\r\n return column.ownerBand === ownerBand\r\n };\r\n if (bandColumnsCache.isPlain) {\r\n result = that._columns[columnIndexes[0]]\r\n } else {\r\n columns = that._columns.filter(callbackFilter);\r\n for (var i = 0; i < columnIndexes.length; i++) {\r\n result = columns[columnIndexes[i]];\r\n if (result) {\r\n columns = that._columns.filter(callbackFilter)\r\n }\r\n }\r\n }\r\n return result\r\n }(this, columnIndexes)\r\n }\r\n }\r\n return column\r\n },\r\n optionChanged: function(args) {\r\n var needUpdateRequireResize;\r\n switch (args.name) {\r\n case \"adaptColumnWidthByRatio\":\r\n args.handled = true;\r\n break;\r\n case \"dataSource\":\r\n if (args.value !== args.previousValue && !this.option(\"columns\") && (!Array.isArray(args.value) || !Array.isArray(args.previousValue))) {\r\n this._columns = []\r\n }\r\n break;\r\n case \"columns\":\r\n needUpdateRequireResize = this._skipProcessingColumnsChange;\r\n args.handled = true;\r\n if (!this._skipProcessingColumnsChange) {\r\n if (args.name === args.fullName) {\r\n this._columnsUserState = null;\r\n this._ignoreColumnOptionNames = null;\r\n this.init()\r\n } else {\r\n this._columnOptionChanged(args);\r\n needUpdateRequireResize = true\r\n }\r\n }\r\n if (needUpdateRequireResize) {\r\n this._updateRequireResize(args)\r\n }\r\n break;\r\n case \"commonColumnSettings\":\r\n case \"columnAutoWidth\":\r\n case \"allowColumnResizing\":\r\n case \"allowColumnReordering\":\r\n case \"columnFixing\":\r\n case \"grouping\":\r\n case \"groupPanel\":\r\n case \"regenerateColumnsByVisibleItems\":\r\n case \"customizeColumns\":\r\n case \"columnHidingEnabled\":\r\n case \"dateSerializationFormat\":\r\n case \"columnResizingMode\":\r\n case \"columnMinWidth\":\r\n case \"columnWidth\":\r\n args.handled = true;\r\n var ignoreColumnOptionNames = \"columnWidth\" === args.fullName && [\"width\"];\r\n this.reinit(ignoreColumnOptionNames);\r\n break;\r\n case \"rtlEnabled\":\r\n this.reinit();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _columnOptionChanged: function(args) {\r\n var columnOptionValue = {};\r\n var column = this.getColumnByPath(args.fullName);\r\n var columnOptionName = args.fullName.replace(regExp, \"\");\r\n if (column) {\r\n if (columnOptionName) {\r\n columnOptionValue[columnOptionName] = args.value\r\n } else {\r\n columnOptionValue = args.value\r\n }\r\n this._skipProcessingColumnsChange = args.fullName;\r\n this.columnOption(column.index, columnOptionValue);\r\n this._skipProcessingColumnsChange = false\r\n }\r\n },\r\n _updateRequireResize: function(args) {\r\n var component = this.component;\r\n if (\"width\" === args.fullName.replace(regExp, \"\") && component._updateLockCount) {\r\n component._requireResize = true\r\n }\r\n },\r\n publicMethods: function() {\r\n return [\"addColumn\", \"deleteColumn\", \"columnOption\", \"columnCount\", \"clearSorting\", \"clearGrouping\", \"getVisibleColumns\", \"getVisibleColumnIndex\"]\r\n },\r\n applyDataSource: function(dataSource, forceApplying, isApplyingUserState) {\r\n var isDataSourceLoaded = dataSource && dataSource.isLoaded();\r\n this._dataSource = dataSource;\r\n if (!this._dataSourceApplied || 0 === this._dataSourceColumnsCount || forceApplying || this.option(\"regenerateColumnsByVisibleItems\")) {\r\n if (isDataSourceLoaded) {\r\n if (!this._isColumnsFromOptions) {\r\n var columnsFromDataSource = function(that, dataSource) {\r\n var firstItems = that._getFirstItems(dataSource);\r\n var fieldName;\r\n var processedFields = {};\r\n var result = [];\r\n for (var i = 0; i < firstItems.length; i++) {\r\n if (firstItems[i]) {\r\n for (fieldName in firstItems[i]) {\r\n if (!isFunction(firstItems[i][fieldName]) || variableWrapper.isWrapped(firstItems[i][fieldName])) {\r\n processedFields[fieldName] = true\r\n }\r\n }\r\n }\r\n }\r\n for (fieldName in processedFields) {\r\n if (0 !== fieldName.indexOf(\"__\")) {\r\n var column = createColumn(that, fieldName);\r\n result.push(column)\r\n }\r\n }\r\n return result\r\n }(this, dataSource);\r\n if (columnsFromDataSource.length) {\r\n assignColumns(this, columnsFromDataSource);\r\n this._dataSourceColumnsCount = this._columns.length;\r\n applyUserState(this)\r\n }\r\n }\r\n return this.updateColumns(dataSource, forceApplying, isApplyingUserState)\r\n } else {\r\n this._dataSourceApplied = false;\r\n updateIndexes(this)\r\n }\r\n } else if (isDataSourceLoaded && !this.isAllDataTypesDefined(true) && this.updateColumnDataTypes(dataSource)) {\r\n updateColumnChanges(this, \"columns\");\r\n fireColumnsChanged(this);\r\n return (new Deferred).reject().promise()\r\n }\r\n },\r\n reset: function() {\r\n this._dataSource = null;\r\n this._dataSourceApplied = false;\r\n this._dataSourceColumnsCount = void 0;\r\n this.reinit()\r\n },\r\n resetColumnsCache: function() {\r\n this._visibleColumns = void 0;\r\n this._fixedColumns = void 0;\r\n this._rowCount = void 0;\r\n resetBandColumnsCache(this)\r\n },\r\n reinit: function(ignoreColumnOptionNames) {\r\n this._columnsUserState = this.getUserState();\r\n this._ignoreColumnOptionNames = ignoreColumnOptionNames || null;\r\n this.init();\r\n if (ignoreColumnOptionNames) {\r\n this._ignoreColumnOptionNames = null\r\n }\r\n },\r\n isInitialized: function() {\r\n return !!this._columns.length || !!this.option(\"columns\")\r\n },\r\n isDataSourceApplied: function() {\r\n return this._dataSourceApplied\r\n },\r\n getCommonSettings: function(column) {\r\n var commonColumnSettings = (!column || !column.type) && this.option(\"commonColumnSettings\") || {};\r\n var groupingOptions = this.option(\"grouping\") || {};\r\n var groupPanelOptions = this.option(\"groupPanel\") || {};\r\n return extend({\r\n allowFixing: this.option(\"columnFixing.enabled\"),\r\n allowResizing: this.option(\"allowColumnResizing\") || void 0,\r\n allowReordering: this.option(\"allowColumnReordering\"),\r\n minWidth: this.option(\"columnMinWidth\"),\r\n width: this.option(\"columnWidth\"),\r\n autoExpandGroup: groupingOptions.autoExpandAll,\r\n allowCollapsing: groupingOptions.allowCollapsing,\r\n allowGrouping: groupPanelOptions.allowColumnDragging && groupPanelOptions.visible || groupingOptions.contextMenuEnabled\r\n }, commonColumnSettings)\r\n },\r\n isColumnOptionUsed: function(optionName) {\r\n for (var i = 0; i < this._columns.length; i++) {\r\n if (this._columns[i][optionName]) {\r\n return true\r\n }\r\n }\r\n },\r\n isAllDataTypesDefined: function(checkSerializers) {\r\n var columns = this._columns;\r\n if (!columns.length) {\r\n return false\r\n }\r\n for (var i = 0; i < columns.length; i++) {\r\n if (!columns[i].dataField && columns[i].calculateCellValue === columns[i].defaultCalculateCellValue) {\r\n continue\r\n }\r\n if (!columns[i].dataType || checkSerializers && columns[i].deserializeValue && void 0 === columns[i].serializationFormat) {\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n getColumns: function() {\r\n return this._columns\r\n },\r\n isBandColumnsUsed: function() {\r\n return this.getColumns().some((function(column) {\r\n return column.isBand\r\n }))\r\n },\r\n getGroupColumns: function() {\r\n var result = [];\r\n each(this._columns, (function() {\r\n if (isDefined(this.groupIndex)) {\r\n result[this.groupIndex] = this\r\n }\r\n }));\r\n return result\r\n },\r\n _shouldReturnVisibleColumns: function() {\r\n return true\r\n },\r\n _compileVisibleColumns: function(rowIndex) {\r\n this._visibleColumns = this._visibleColumns || this._compileVisibleColumnsCore();\r\n rowIndex = isDefined(rowIndex) ? rowIndex : this._visibleColumns.length - 1;\r\n return this._visibleColumns[rowIndex] || []\r\n },\r\n getVisibleColumns: function(rowIndex) {\r\n if (!this._shouldReturnVisibleColumns()) {\r\n return []\r\n }\r\n return this._compileVisibleColumns.apply(this, arguments)\r\n },\r\n getFixedColumns: function(rowIndex) {\r\n this._fixedColumns = this._fixedColumns || this._getFixedColumnsCore();\r\n rowIndex = isDefined(rowIndex) ? rowIndex : this._fixedColumns.length - 1;\r\n return this._fixedColumns[rowIndex] || []\r\n },\r\n getFilteringColumns: function() {\r\n return this.getColumns().filter(item => (item.dataField || item.name) && (item.allowFiltering || item.allowHeaderFiltering)).map(item => {\r\n var field = extend(true, {}, item);\r\n if (!isDefined(field.dataField)) {\r\n field.dataField = field.name\r\n }\r\n field.filterOperations = item.filterOperations !== item.defaultFilterOperations ? field.filterOperations : null;\r\n return field\r\n })\r\n },\r\n getColumnIndexOffset: function() {\r\n return 0\r\n },\r\n _getFixedColumnsCore: function() {\r\n var result = [];\r\n var rowCount = this.getRowCount();\r\n var isColumnFixing = this._isColumnFixing();\r\n var transparentColumn = {\r\n command: \"transparent\"\r\n };\r\n var transparentColspan = 0;\r\n var notFixedColumnCount;\r\n var transparentColumnIndex;\r\n var lastFixedPosition;\r\n if (isColumnFixing) {\r\n for (var i = 0; i <= rowCount; i++) {\r\n notFixedColumnCount = 0;\r\n lastFixedPosition = null;\r\n transparentColumnIndex = null;\r\n var visibleColumns = this.getVisibleColumns(i, true);\r\n for (var j = 0; j < visibleColumns.length; j++) {\r\n var prevColumn = visibleColumns[j - 1];\r\n var column = visibleColumns[j];\r\n if (!column.fixed) {\r\n if (0 === i) {\r\n if (column.isBand && column.colspan) {\r\n transparentColspan += column.colspan\r\n } else {\r\n transparentColspan++\r\n }\r\n }\r\n notFixedColumnCount++;\r\n if (!isDefined(transparentColumnIndex)) {\r\n transparentColumnIndex = j\r\n }\r\n } else if (prevColumn && prevColumn.fixed && getFixedPosition(this, prevColumn) !== getFixedPosition(this, column)) {\r\n if (!isDefined(transparentColumnIndex)) {\r\n transparentColumnIndex = j\r\n }\r\n } else {\r\n lastFixedPosition = column.fixedPosition\r\n }\r\n }\r\n if (0 === i && (0 === notFixedColumnCount || notFixedColumnCount >= visibleColumns.length)) {\r\n return []\r\n }\r\n if (!isDefined(transparentColumnIndex)) {\r\n transparentColumnIndex = \"right\" === lastFixedPosition ? 0 : visibleColumns.length\r\n }\r\n result[i] = visibleColumns.slice(0);\r\n if (!transparentColumn.colspan) {\r\n transparentColumn.colspan = transparentColspan\r\n }\r\n result[i].splice(transparentColumnIndex, notFixedColumnCount, transparentColumn)\r\n }\r\n }\r\n return result.map(columns => columns.map(column => {\r\n var newColumn = _extends({}, column);\r\n if (newColumn.headerId) {\r\n newColumn.headerId += \"-fixed\"\r\n }\r\n return newColumn\r\n }))\r\n },\r\n _isColumnFixing: function() {\r\n var isColumnFixing = this.option(\"columnFixing.enabled\");\r\n !isColumnFixing && each(this._columns, (function(_, column) {\r\n if (column.fixed) {\r\n isColumnFixing = true;\r\n return false\r\n }\r\n }));\r\n return isColumnFixing\r\n },\r\n _getExpandColumnsCore: function() {\r\n return this.getGroupColumns()\r\n },\r\n getExpandColumns: function() {\r\n var expandColumns = this._getExpandColumnsCore();\r\n var expandColumn;\r\n var firstGroupColumn = expandColumns.filter(column => 0 === column.groupIndex)[0];\r\n var isFixedFirstGroupColumn = firstGroupColumn && firstGroupColumn.fixed;\r\n var isColumnFixing = this._isColumnFixing();\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if (expandColumns.length) {\r\n expandColumn = this.columnOption(\"command:expand\")\r\n }\r\n expandColumns = map(expandColumns, column => extend({}, column, {\r\n visibleWidth: null,\r\n minWidth: null,\r\n cellTemplate: !isDefined(column.groupIndex) ? column.cellTemplate : null,\r\n headerCellTemplate: null,\r\n fixed: !isDefined(column.groupIndex) || !isFixedFirstGroupColumn ? isColumnFixing : true,\r\n fixedPosition: rtlEnabled ? \"right\" : \"left\"\r\n }, expandColumn, {\r\n index: column.index,\r\n type: column.type || GROUP_COMMAND_COLUMN_NAME\r\n }));\r\n return expandColumns\r\n },\r\n getBandColumnsCache: function() {\r\n if (!this._bandColumnsCache) {\r\n var columns = this._columns;\r\n var columnChildrenByIndex = {};\r\n var columnParentByIndex = {};\r\n var isPlain = true;\r\n columns.forEach((function(column) {\r\n var ownerBand = column.ownerBand;\r\n var parentIndex = isObject(ownerBand) ? ownerBand.index : ownerBand;\r\n var parent = columns[parentIndex];\r\n if (column.hasColumns) {\r\n isPlain = false\r\n }\r\n if (column.colspan) {\r\n column.colspan = void 0\r\n }\r\n if (column.rowspan) {\r\n column.rowspan = void 0\r\n }\r\n if (parent) {\r\n columnParentByIndex[column.index] = parent\r\n } else {\r\n parentIndex = -1\r\n }\r\n columnChildrenByIndex[parentIndex] = columnChildrenByIndex[parentIndex] || [];\r\n columnChildrenByIndex[parentIndex].push(column)\r\n }));\r\n this._bandColumnsCache = {\r\n isPlain: isPlain,\r\n columnChildrenByIndex: columnChildrenByIndex,\r\n columnParentByIndex: columnParentByIndex\r\n }\r\n }\r\n return this._bandColumnsCache\r\n },\r\n _isColumnVisible: function(column) {\r\n return column.visible && this.isParentColumnVisible(column.index)\r\n },\r\n _compileVisibleColumnsCore: function() {\r\n var that = this;\r\n var i;\r\n var result = [];\r\n var rowspanGroupColumns = 0;\r\n var rowspanExpandColumns = 0;\r\n var rowCount = that.getRowCount();\r\n var positiveIndexedColumns = [];\r\n var negativeIndexedColumns = [];\r\n var notGroupedColumnsCount = 0;\r\n var isFixedToEnd;\r\n var rtlEnabled = that.option(\"rtlEnabled\");\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var expandColumns = mergeColumns(that, that.getExpandColumns(), that._columns);\r\n var columns = mergeColumns(that, that._columns, that._commandColumns, true);\r\n var columnDigitsCount = function(number) {\r\n var i;\r\n for (i = 0; number > 1; i++) {\r\n number /= 10\r\n }\r\n return i\r\n }(columns.length);\r\n ! function(that, columns, bandColumnsCache) {\r\n var rowspan;\r\n for (var i = 0; i < columns.length; i++) {\r\n var column = columns[i];\r\n if (column.visible || column.command) {\r\n if (column.isBand) {\r\n column.colspan = column.colspan || calculateColspan(that, column.index)\r\n }\r\n if (!column.isBand || !column.colspan) {\r\n rowspan = that.getRowCount();\r\n if (!column.command && (!isDefined(column.groupIndex) || column.showWhenGrouped)) {\r\n rowspan -= getParentBandColumns(column.index, bandColumnsCache.columnParentByIndex).length\r\n }\r\n if (rowspan > 1) {\r\n column.rowspan = rowspan\r\n }\r\n }\r\n }\r\n }\r\n }(that, columns, bandColumnsCache);\r\n for (i = 0; i < rowCount; i++) {\r\n result[i] = [];\r\n negativeIndexedColumns[i] = [{}];\r\n positiveIndexedColumns[i] = [{}, {}, {}]\r\n }\r\n each(columns, (function() {\r\n var visibleIndex = this.visibleIndex;\r\n var indexedColumns;\r\n var parentBandColumns = getParentBandColumns(this.index, bandColumnsCache.columnParentByIndex);\r\n var visible = that._isColumnVisible(this);\r\n if (visible && (!isDefined(this.groupIndex) || this.showWhenGrouped)) {\r\n var rowIndex = parentBandColumns.length;\r\n if (visibleIndex < 0) {\r\n visibleIndex = -visibleIndex;\r\n indexedColumns = negativeIndexedColumns[rowIndex]\r\n } else {\r\n this.fixed = parentBandColumns.length ? parentBandColumns[0].fixed : this.fixed;\r\n this.fixedPosition = parentBandColumns.length ? parentBandColumns[0].fixedPosition : this.fixedPosition;\r\n if (this.fixed) {\r\n isFixedToEnd = \"right\" === this.fixedPosition;\r\n if (rtlEnabled && (!this.command || isCustomCommandColumn(that, this))) {\r\n isFixedToEnd = !isFixedToEnd\r\n }\r\n if (isFixedToEnd) {\r\n indexedColumns = positiveIndexedColumns[rowIndex][2]\r\n } else {\r\n indexedColumns = positiveIndexedColumns[rowIndex][0]\r\n }\r\n } else {\r\n indexedColumns = positiveIndexedColumns[rowIndex][1]\r\n }\r\n }\r\n if (parentBandColumns.length) {\r\n visibleIndex = numberToString(visibleIndex, columnDigitsCount);\r\n for (i = parentBandColumns.length - 1; i >= 0; i--) {\r\n visibleIndex = numberToString(parentBandColumns[i].visibleIndex, columnDigitsCount) + visibleIndex\r\n }\r\n }\r\n indexedColumns[visibleIndex] = indexedColumns[visibleIndex] || [];\r\n indexedColumns[visibleIndex].push(this);\r\n notGroupedColumnsCount++\r\n }\r\n }));\r\n each(result, (function(rowIndex) {\r\n orderEach(negativeIndexedColumns[rowIndex], (function(_, columns) {\r\n result[rowIndex].unshift.apply(result[rowIndex], columns)\r\n }));\r\n var firstPositiveIndexColumn = result[rowIndex].length;\r\n each(positiveIndexedColumns[rowIndex], (function(index, columnsByFixing) {\r\n orderEach(columnsByFixing, (function(_, columnsByVisibleIndex) {\r\n result[rowIndex].push.apply(result[rowIndex], columnsByVisibleIndex)\r\n }))\r\n }));\r\n if (rowspanExpandColumns < rowIndex + 1) {\r\n rowspanExpandColumns += processExpandColumns.call(that, result[rowIndex], expandColumns, \"detailExpand\", firstPositiveIndexColumn)\r\n }\r\n if (rowspanGroupColumns < rowIndex + 1) {\r\n rowspanGroupColumns += processExpandColumns.call(that, result[rowIndex], expandColumns, GROUP_COMMAND_COLUMN_NAME, firstPositiveIndexColumn)\r\n }\r\n }));\r\n result.push(function getDataColumns(columns, rowIndex, bandColumnID) {\r\n var result = [];\r\n rowIndex = rowIndex || 0;\r\n columns[rowIndex] && each(columns[rowIndex], (function(_, column) {\r\n if (column.ownerBand === bandColumnID || column.type === GROUP_COMMAND_COLUMN_NAME) {\r\n if (!column.isBand || !column.colspan) {\r\n if (!column.command || rowIndex < 1) {\r\n result.push(column)\r\n }\r\n } else {\r\n result.push.apply(result, getDataColumns(columns, rowIndex + 1, column.index))\r\n }\r\n }\r\n }));\r\n return result\r\n }(result));\r\n if (!notGroupedColumnsCount && that._columns.length) {\r\n result[rowCount].push({\r\n command: \"empty\"\r\n })\r\n }\r\n return result\r\n },\r\n getInvisibleColumns: function(columns, bandColumnIndex) {\r\n var that = this;\r\n var result = [];\r\n var hiddenColumnsByBand;\r\n columns = columns || that._columns;\r\n each(columns, (function(_, column) {\r\n if (column.ownerBand !== bandColumnIndex) {\r\n return\r\n }\r\n if (column.isBand) {\r\n if (!column.visible) {\r\n hiddenColumnsByBand = that.getChildrenByBandColumn(column.index)\r\n } else {\r\n hiddenColumnsByBand = that.getInvisibleColumns(that.getChildrenByBandColumn(column.index), column.index)\r\n }\r\n if (hiddenColumnsByBand.length) {\r\n result.push(column);\r\n result = result.concat(hiddenColumnsByBand)\r\n }\r\n return\r\n }\r\n if (!column.visible) {\r\n result.push(column)\r\n }\r\n }));\r\n return result\r\n },\r\n getChooserColumns: function(getAllColumns) {\r\n var columns = getAllColumns ? this.getColumns() : this.getInvisibleColumns();\r\n var columnChooserColumns = columns.filter(column => column.showInColumnChooser);\r\n var sortOrder = this.option(\"columnChooser.sortOrder\");\r\n return ((columns, sortOrder) => {\r\n if (\"asc\" !== sortOrder && \"desc\" !== sortOrder) {\r\n return columns\r\n }\r\n var sign = \"asc\" === sortOrder ? 1 : -1;\r\n columns.sort((function(column1, column2) {\r\n var caption1 = column1.caption || \"\";\r\n var caption2 = column2.caption || \"\";\r\n return sign * caption1.localeCompare(caption2)\r\n }));\r\n return columns\r\n })(columnChooserColumns, sortOrder)\r\n },\r\n allowMoveColumn: function(fromVisibleIndex, toVisibleIndex, sourceLocation, targetLocation) {\r\n var columnIndex = getColumnIndexByVisibleIndex(this, fromVisibleIndex, sourceLocation);\r\n var sourceColumn = this._columns[columnIndex];\r\n if (sourceColumn && (sourceColumn.allowReordering || sourceColumn.allowGrouping || sourceColumn.allowHiding)) {\r\n if (sourceLocation === targetLocation) {\r\n if (\"columnChooser\" === sourceLocation) {\r\n return false\r\n }\r\n fromVisibleIndex = isObject(fromVisibleIndex) ? fromVisibleIndex.columnIndex : fromVisibleIndex;\r\n toVisibleIndex = isObject(toVisibleIndex) ? toVisibleIndex.columnIndex : toVisibleIndex;\r\n return fromVisibleIndex !== toVisibleIndex && fromVisibleIndex + 1 !== toVisibleIndex\r\n } else if (\"group\" === sourceLocation && \"columnChooser\" !== targetLocation || \"group\" === targetLocation) {\r\n return sourceColumn && sourceColumn.allowGrouping\r\n } else if (\"columnChooser\" === sourceLocation || \"columnChooser\" === targetLocation) {\r\n return sourceColumn && sourceColumn.allowHiding\r\n }\r\n return true\r\n }\r\n return false\r\n },\r\n moveColumn: function(fromVisibleIndex, toVisibleIndex, sourceLocation, targetLocation) {\r\n var options = {};\r\n var prevGroupIndex;\r\n var fromIndex = getColumnIndexByVisibleIndex(this, fromVisibleIndex, sourceLocation);\r\n var toIndex = getColumnIndexByVisibleIndex(this, toVisibleIndex, targetLocation);\r\n var targetGroupIndex;\r\n if (fromIndex >= 0) {\r\n var column = this._columns[fromIndex];\r\n toVisibleIndex = isObject(toVisibleIndex) ? toVisibleIndex.columnIndex : toVisibleIndex;\r\n targetGroupIndex = toIndex >= 0 ? this._columns[toIndex].groupIndex : -1;\r\n if (isDefined(column.groupIndex) && \"group\" === sourceLocation) {\r\n if (targetGroupIndex > column.groupIndex) {\r\n targetGroupIndex--\r\n }\r\n if (\"group\" !== targetLocation) {\r\n options.groupIndex = void 0\r\n } else {\r\n prevGroupIndex = column.groupIndex;\r\n delete column.groupIndex;\r\n updateColumnGroupIndexes(this)\r\n }\r\n }\r\n if (\"group\" === targetLocation) {\r\n options.groupIndex = function(that, column, groupIndex) {\r\n var groupColumns = that.getGroupColumns();\r\n var i;\r\n if (groupIndex >= 0) {\r\n for (i = 0; i < groupColumns.length; i++) {\r\n if (groupColumns[i].groupIndex >= groupIndex) {\r\n groupColumns[i].groupIndex++\r\n }\r\n }\r\n } else {\r\n groupIndex = 0;\r\n for (i = 0; i < groupColumns.length; i++) {\r\n groupIndex = Math.max(groupIndex, groupColumns[i].groupIndex + 1)\r\n }\r\n }\r\n return groupIndex\r\n }(this, 0, targetGroupIndex);\r\n column.groupIndex = prevGroupIndex\r\n } else if (toVisibleIndex >= 0) {\r\n var targetColumn = this._columns[toIndex];\r\n if (!targetColumn || column.ownerBand !== targetColumn.ownerBand) {\r\n options.visibleIndex = MAX_SAFE_INTEGER\r\n } else if (isColumnFixed(this, column) ^ isColumnFixed(this, targetColumn)) {\r\n options.visibleIndex = MAX_SAFE_INTEGER\r\n } else {\r\n options.visibleIndex = targetColumn.visibleIndex\r\n }\r\n }\r\n var isVisible = \"columnChooser\" !== targetLocation;\r\n if (column.visible !== isVisible) {\r\n options.visible = isVisible\r\n }\r\n this.columnOption(column.index, options)\r\n }\r\n },\r\n changeSortOrder: function(columnIndex, sortOrder) {\r\n var options = {};\r\n var sortingOptions = this.option(\"sorting\");\r\n var sortingMode = sortingOptions && sortingOptions.mode;\r\n var needResetSorting = \"single\" === sortingMode || !sortOrder;\r\n var allowSorting = \"single\" === sortingMode || \"multiple\" === sortingMode;\r\n var column = this._columns[columnIndex];\r\n if (allowSorting && column && column.allowSorting) {\r\n if (needResetSorting && !isDefined(column.groupIndex)) {\r\n each(this._columns, (function(index) {\r\n if (index !== columnIndex && this.sortOrder) {\r\n if (!isDefined(this.groupIndex)) {\r\n delete this.sortOrder\r\n }\r\n delete this.sortIndex\r\n }\r\n }))\r\n }\r\n if (isSortOrderValid(sortOrder)) {\r\n if (column.sortOrder !== sortOrder) {\r\n options.sortOrder = sortOrder\r\n }\r\n } else if (\"none\" === sortOrder) {\r\n if (column.sortOrder) {\r\n options.sortIndex = void 0;\r\n options.sortOrder = void 0\r\n }\r\n } else {\r\n ! function(column) {\r\n if (\"ctrl\" === sortOrder) {\r\n if (!(\"sortOrder\" in column && \"sortIndex\" in column)) {\r\n return false\r\n }\r\n options.sortOrder = void 0;\r\n options.sortIndex = void 0\r\n } else if (isDefined(column.groupIndex) || isDefined(column.sortIndex)) {\r\n options.sortOrder = \"desc\" === column.sortOrder ? \"asc\" : \"desc\"\r\n } else {\r\n options.sortOrder = \"asc\"\r\n }\r\n return true\r\n }(column)\r\n }\r\n }\r\n this.columnOption(column.index, options)\r\n },\r\n getSortDataSourceParameters: function(useLocalSelector) {\r\n var sortColumns = [];\r\n var sort = [];\r\n each(this._columns, (function() {\r\n if ((this.dataField || this.selector || this.calculateCellValue) && isDefined(this.sortIndex) && !isDefined(this.groupIndex)) {\r\n sortColumns[this.sortIndex] = this\r\n }\r\n }));\r\n each(sortColumns, (function() {\r\n var sortOrder = this && this.sortOrder;\r\n if (isSortOrderValid(sortOrder)) {\r\n var sortItem = {\r\n selector: this.calculateSortValue || this.displayField || this.calculateDisplayValue || useLocalSelector && this.selector || this.dataField || this.calculateCellValue,\r\n desc: \"desc\" === this.sortOrder\r\n };\r\n if (this.sortingMethod) {\r\n sortItem.compare = this.sortingMethod.bind(this)\r\n }\r\n sort.push(sortItem)\r\n }\r\n }));\r\n return sort.length > 0 ? sort : null\r\n },\r\n getGroupDataSourceParameters: function(useLocalSelector) {\r\n var group = [];\r\n each(this.getGroupColumns(), (function() {\r\n var selector = this.calculateGroupValue || this.displayField || this.calculateDisplayValue || useLocalSelector && this.selector || this.dataField || this.calculateCellValue;\r\n if (selector) {\r\n var groupItem = {\r\n selector: selector,\r\n desc: \"desc\" === this.sortOrder,\r\n isExpanded: !!this.autoExpandGroup\r\n };\r\n if (this.sortingMethod) {\r\n groupItem.compare = this.sortingMethod.bind(this)\r\n }\r\n group.push(groupItem)\r\n }\r\n }));\r\n return group.length > 0 ? group : null\r\n },\r\n refresh: function(updateNewLookupsOnly) {\r\n var deferreds = [];\r\n each(this._columns, (function() {\r\n var lookup = this.lookup;\r\n if (lookup && !this.calculateDisplayValue) {\r\n if (updateNewLookupsOnly && lookup.valueMap) {\r\n return\r\n }\r\n if (lookup.update) {\r\n deferreds.push(lookup.update())\r\n }\r\n }\r\n }));\r\n return when.apply($, deferreds).done(resetColumnsCache.bind(null, this))\r\n },\r\n _updateColumnOptions: function(column, columnIndex) {\r\n column.selector = column.selector || function(data) {\r\n return column.calculateCellValue(data)\r\n };\r\n each([\"calculateSortValue\", \"calculateGroupValue\", \"calculateDisplayValue\"], (function(_, calculateCallbackName) {\r\n var calculateCallback = column[calculateCallbackName];\r\n if (isFunction(calculateCallback)) {\r\n if (!calculateCallback.originalCallback) {\r\n var context = {\r\n column: column\r\n };\r\n column[calculateCallbackName] = function(data) {\r\n return calculateCallback.call(context.column, data)\r\n };\r\n column[calculateCallbackName].originalCallback = calculateCallback;\r\n column[calculateCallbackName].columnIndex = columnIndex;\r\n column[calculateCallbackName].context = context\r\n } else {\r\n column[calculateCallbackName].context.column = column\r\n }\r\n }\r\n }));\r\n if (isString(column.calculateDisplayValue)) {\r\n column.displayField = column.calculateDisplayValue;\r\n column.calculateDisplayValue = compileGetter(column.displayField)\r\n }\r\n if (column.calculateDisplayValue) {\r\n column.displayValueMap = column.displayValueMap || {}\r\n }\r\n updateSerializers(column, column.dataType);\r\n var lookup = column.lookup;\r\n if (lookup) {\r\n updateSerializers(lookup, lookup.dataType)\r\n }\r\n var dataType = lookup ? lookup.dataType : column.dataType;\r\n if (dataType) {\r\n column.alignment = column.alignment || function(dataType, isRTL) {\r\n switch (dataType) {\r\n case \"number\":\r\n return \"right\";\r\n case \"boolean\":\r\n return \"center\";\r\n default:\r\n return getDefaultAlignment(isRTL)\r\n }\r\n }(dataType, this.option(\"rtlEnabled\"));\r\n column.format = column.format || gridCoreUtils.getFormatByDataType(dataType);\r\n column.customizeText = column.customizeText || getCustomizeTextByDataType(dataType);\r\n column.defaultFilterOperations = column.defaultFilterOperations || !lookup && DATATYPE_OPERATIONS[dataType] || [];\r\n if (!isDefined(column.filterOperations)) {\r\n setFilterOperationsAsDefaultValues(column)\r\n }\r\n column.defaultFilterOperation = column.filterOperations && column.filterOperations[0] || \"=\";\r\n column.showEditorAlways = isDefined(column.showEditorAlways) ? column.showEditorAlways : \"boolean\" === dataType && !column.cellTemplate && !column.lookup\r\n }\r\n },\r\n updateColumnDataTypes: function(dataSource) {\r\n var that = this;\r\n var dateSerializationFormat = that.option(\"dateSerializationFormat\");\r\n var firstItems = that._getFirstItems(dataSource);\r\n var isColumnDataTypesUpdated = false;\r\n each(that._columns, (function(index, column) {\r\n var i;\r\n var value;\r\n var dataType;\r\n var lookupDataType;\r\n var valueDataType;\r\n var lookup = column.lookup;\r\n if (gridCoreUtils.isDateType(column.dataType) && void 0 === column.serializationFormat) {\r\n column.serializationFormat = dateSerializationFormat\r\n }\r\n if (lookup && gridCoreUtils.isDateType(lookup.dataType) && void 0 === column.serializationFormat) {\r\n lookup.serializationFormat = dateSerializationFormat\r\n }\r\n if (column.calculateCellValue && firstItems.length) {\r\n if (!column.dataType || lookup && !lookup.dataType) {\r\n for (i = 0; i < firstItems.length; i++) {\r\n value = column.calculateCellValue(firstItems[i]);\r\n if (!column.dataType) {\r\n valueDataType = getValueDataType(value);\r\n dataType = dataType || valueDataType;\r\n if (dataType && valueDataType && dataType !== valueDataType) {\r\n dataType = \"string\"\r\n }\r\n }\r\n if (lookup && !lookup.dataType) {\r\n valueDataType = getValueDataType(gridCoreUtils.getDisplayValue(column, value, firstItems[i]));\r\n lookupDataType = lookupDataType || valueDataType;\r\n if (lookupDataType && valueDataType && lookupDataType !== valueDataType) {\r\n lookupDataType = \"string\"\r\n }\r\n }\r\n }\r\n if (dataType || lookupDataType) {\r\n if (dataType) {\r\n column.dataType = dataType\r\n }\r\n if (lookup && lookupDataType) {\r\n lookup.dataType = lookupDataType\r\n }\r\n isColumnDataTypesUpdated = true\r\n }\r\n }\r\n if (void 0 === column.serializationFormat || lookup && void 0 === lookup.serializationFormat) {\r\n for (i = 0; i < firstItems.length; i++) {\r\n value = column.calculateCellValue(firstItems[i], true);\r\n if (void 0 === column.serializationFormat) {\r\n column.serializationFormat = getSerializationFormat(column.dataType, value)\r\n }\r\n if (lookup && void 0 === lookup.serializationFormat) {\r\n lookup.serializationFormat = getSerializationFormat(lookup.dataType, lookup.calculateCellValue(value, true))\r\n }\r\n }\r\n }\r\n }\r\n that._updateColumnOptions(column, index)\r\n }));\r\n return isColumnDataTypesUpdated\r\n },\r\n _customizeColumns: function(columns) {\r\n var customizeColumns = this.option(\"customizeColumns\");\r\n if (customizeColumns) {\r\n var hasOwnerBand = columns.some((function(column) {\r\n return isObject(column.ownerBand)\r\n }));\r\n if (hasOwnerBand) {\r\n updateIndexes(this)\r\n }\r\n customizeColumns(columns);\r\n assignColumns(this, createColumnsFromOptions(this, columns))\r\n }\r\n },\r\n updateColumns: function(dataSource, forceApplying, isApplyingUserState) {\r\n if (!forceApplying) {\r\n this.updateSortingGrouping(dataSource)\r\n }\r\n if (!dataSource || dataSource.isLoaded()) {\r\n var sortParameters = dataSource ? dataSource.sort() || [] : this.getSortDataSourceParameters();\r\n var groupParameters = dataSource ? dataSource.group() || [] : this.getGroupDataSourceParameters();\r\n var filterParameters = null === dataSource || void 0 === dataSource ? void 0 : dataSource.lastLoadOptions().filter;\r\n if (!isApplyingUserState) {\r\n this._customizeColumns(this._columns)\r\n }\r\n updateIndexes(this);\r\n var columns = this._columns;\r\n return when(this.refresh(true)).always(() => {\r\n if (this._columns !== columns) {\r\n return\r\n }\r\n this._updateChanges(dataSource, {\r\n sorting: sortParameters,\r\n grouping: groupParameters,\r\n filtering: filterParameters\r\n });\r\n fireColumnsChanged(this)\r\n })\r\n }\r\n },\r\n _updateChanges: function(dataSource, parameters) {\r\n if (dataSource) {\r\n this.updateColumnDataTypes(dataSource);\r\n this._dataSourceApplied = true\r\n }\r\n if (!gridCoreUtils.equalSortParameters(parameters.sorting, this.getSortDataSourceParameters())) {\r\n updateColumnChanges(this, \"sorting\")\r\n }\r\n if (!gridCoreUtils.equalSortParameters(parameters.grouping, this.getGroupDataSourceParameters())) {\r\n updateColumnChanges(this, \"grouping\")\r\n }\r\n var dataController = this.getController(\"data\");\r\n if (dataController && !gridCoreUtils.equalFilterParameters(parameters.filtering, dataController.getCombinedFilter())) {\r\n updateColumnChanges(this, \"filtering\")\r\n }\r\n updateColumnChanges(this, \"columns\")\r\n },\r\n updateSortingGrouping: function(dataSource, fromDataSource) {\r\n var that = this;\r\n var sortParameters;\r\n var isColumnsChanged;\r\n var updateSortGroupParameterIndexes = function(columns, sortParameters, indexParameterName) {\r\n each(columns, (function(index, column) {\r\n delete column[indexParameterName];\r\n if (sortParameters) {\r\n for (var i = 0; i < sortParameters.length; i++) {\r\n var selector = sortParameters[i].selector;\r\n var isExpanded = sortParameters[i].isExpanded;\r\n if (selector === column.dataField || selector === column.name || selector === column.selector || selector === column.calculateCellValue || selector === column.calculateGroupValue || selector === column.calculateDisplayValue) {\r\n if (fromDataSource) {\r\n column.sortOrder = \"sortOrder\" in column ? column.sortOrder : sortParameters[i].desc ? \"desc\" : \"asc\"\r\n } else {\r\n column.sortOrder = column.sortOrder || (sortParameters[i].desc ? \"desc\" : \"asc\")\r\n }\r\n if (void 0 !== isExpanded) {\r\n column.autoExpandGroup = isExpanded\r\n }\r\n column[indexParameterName] = i;\r\n break\r\n }\r\n }\r\n }\r\n }))\r\n };\r\n if (dataSource) {\r\n sortParameters = gridCoreUtils.normalizeSortingInfo(dataSource.sort());\r\n var groupParameters = gridCoreUtils.normalizeSortingInfo(dataSource.group());\r\n var columnsGroupParameters = that.getGroupDataSourceParameters();\r\n var columnsSortParameters = that.getSortDataSourceParameters();\r\n var groupingChanged = !gridCoreUtils.equalSortParameters(groupParameters, columnsGroupParameters, true);\r\n var groupExpandingChanged = !groupingChanged && !gridCoreUtils.equalSortParameters(groupParameters, columnsGroupParameters);\r\n if (!that._columns.length) {\r\n each(groupParameters, (function(index, group) {\r\n that._columns.push(group.selector)\r\n }));\r\n each(sortParameters, (function(index, sort) {\r\n if (!isFunction(sort.selector)) {\r\n that._columns.push(sort.selector)\r\n }\r\n }));\r\n assignColumns(that, createColumnsFromOptions(that, that._columns))\r\n }\r\n if ((fromDataSource || !columnsGroupParameters && !that._hasUserState) && (groupingChanged || groupExpandingChanged)) {\r\n updateSortGroupParameterIndexes(that._columns, groupParameters, \"groupIndex\");\r\n if (fromDataSource) {\r\n groupingChanged && updateColumnChanges(that, \"grouping\");\r\n groupExpandingChanged && updateColumnChanges(that, \"groupExpanding\");\r\n isColumnsChanged = true\r\n }\r\n }\r\n if ((fromDataSource || !columnsSortParameters && !that._hasUserState) && !gridCoreUtils.equalSortParameters(sortParameters, columnsSortParameters)) {\r\n updateSortGroupParameterIndexes(that._columns, sortParameters, \"sortIndex\");\r\n if (fromDataSource) {\r\n updateColumnChanges(that, \"sorting\");\r\n isColumnsChanged = true\r\n }\r\n }\r\n if (isColumnsChanged) {\r\n fireColumnsChanged(that)\r\n }\r\n }\r\n },\r\n updateFilter: function(filter, remoteFiltering, columnIndex, filterValue) {\r\n if (!Array.isArray(filter)) {\r\n return filter\r\n }\r\n filter = extend([], filter);\r\n columnIndex = void 0 !== filter.columnIndex ? filter.columnIndex : columnIndex;\r\n filterValue = void 0 !== filter.filterValue ? filter.filterValue : filterValue;\r\n if (isString(filter[0]) && \"!\" !== filter[0]) {\r\n var column = this.columnOption(filter[0]);\r\n if (remoteFiltering) {\r\n if (config().forceIsoDateParsing && column && column.serializeValue && filter.length > 1) {\r\n filter[filter.length - 1] = column.serializeValue(filter[filter.length - 1], \"filter\")\r\n }\r\n } else if (column && column.selector) {\r\n filter[0] = column.selector;\r\n filter[0].columnIndex = column.index\r\n }\r\n } else if (isFunction(filter[0])) {\r\n filter[0].columnIndex = columnIndex;\r\n filter[0].filterValue = filterValue\r\n }\r\n for (var i = 0; i < filter.length; i++) {\r\n filter[i] = this.updateFilter(filter[i], remoteFiltering, columnIndex, filterValue)\r\n }\r\n return filter\r\n },\r\n columnCount: function() {\r\n return this._columns ? this._columns.length : 0\r\n },\r\n columnOption: function(identifier, option, value, notFireEvent) {\r\n var that = this;\r\n var columns = that._columns.concat(that._commandColumns);\r\n var column = findColumn(columns, identifier);\r\n if (column) {\r\n if (1 === arguments.length) {\r\n return extend({}, column)\r\n }\r\n if (isString(option)) {\r\n if (2 === arguments.length) {\r\n return columnOptionCore(that, column, option)\r\n } else {\r\n columnOptionCore(that, column, option, value, notFireEvent)\r\n }\r\n } else if (isObject(option)) {\r\n each(option, (function(optionName, value) {\r\n columnOptionCore(that, column, optionName, value, notFireEvent)\r\n }))\r\n }\r\n fireColumnsChanged(that)\r\n }\r\n },\r\n clearSorting: function() {\r\n var columnCount = this.columnCount();\r\n this.beginUpdate();\r\n for (var i = 0; i < columnCount; i++) {\r\n this.columnOption(i, \"sortOrder\", void 0)\r\n }\r\n this.endUpdate()\r\n },\r\n clearGrouping: function() {\r\n var columnCount = this.columnCount();\r\n this.beginUpdate();\r\n for (var i = 0; i < columnCount; i++) {\r\n this.columnOption(i, \"groupIndex\", void 0)\r\n }\r\n this.endUpdate()\r\n },\r\n getVisibleIndex: function(index, rowIndex) {\r\n var columns = this.getVisibleColumns(rowIndex);\r\n for (var i = columns.length - 1; i >= 0; i--) {\r\n if (columns[i].index === index) {\r\n return i\r\n }\r\n }\r\n return -1\r\n },\r\n getVisibleIndexByColumn: function(column, rowIndex) {\r\n var visibleColumns = this.getVisibleColumns(rowIndex);\r\n var visibleColumn = visibleColumns.filter(col => col.index === column.index && col.command === column.command)[0];\r\n return visibleColumns.indexOf(visibleColumn)\r\n },\r\n getVisibleColumnIndex: function(id, rowIndex) {\r\n var index = this.columnOption(id, \"index\");\r\n return this.getVisibleIndex(index, rowIndex)\r\n },\r\n addColumn: function(options) {\r\n var column = createColumn(this, options);\r\n var index = this._columns.length;\r\n this._columns.push(column);\r\n if (column.isBand) {\r\n this._columns = createColumnsFromOptions(this, this._columns);\r\n column = this._columns[index]\r\n }\r\n column.added = options;\r\n updateIndexes(this, column);\r\n this.updateColumns(this._dataSource);\r\n this._checkColumns()\r\n },\r\n deleteColumn: function(id) {\r\n var column = this.columnOption(id);\r\n if (column && column.index >= 0) {\r\n columns = this._columns, void columns.forEach(column => {\r\n if (isDefined(column.ownerBand)) {\r\n column.ownerBand = columns[column.ownerBand]\r\n }\r\n });\r\n this._columns.splice(column.index, 1);\r\n if (column.isBand) {\r\n var childIndexes = this.getChildrenByBandColumn(column.index).map(column => column.index);\r\n this._columns = this._columns.filter(column => childIndexes.indexOf(column.index) < 0)\r\n }\r\n updateIndexes(this);\r\n this.updateColumns(this._dataSource)\r\n }\r\n var columns\r\n },\r\n addCommandColumn: function(options) {\r\n var commandColumn = this._commandColumns.filter(column => column.command === options.command)[0];\r\n if (!commandColumn) {\r\n commandColumn = options;\r\n this._commandColumns.push(commandColumn)\r\n }\r\n },\r\n getUserState: function() {\r\n var columns = this._columns;\r\n var result = [];\r\n var i;\r\n\r\n function handleStateField(index, value) {\r\n if (void 0 !== columns[i][value]) {\r\n result[i][value] = columns[i][value]\r\n }\r\n }\r\n for (i = 0; i < columns.length; i++) {\r\n result[i] = {};\r\n each(USER_STATE_FIELD_NAMES, handleStateField)\r\n }\r\n return result\r\n },\r\n setName: function(column) {\r\n column.name = column.name || column.dataField || column.type\r\n },\r\n setUserState: function(state) {\r\n var dataSource = this._dataSource;\r\n var ignoreColumnOptionNames = this.option(\"stateStoring.ignoreColumnOptionNames\");\r\n null === state || void 0 === state ? void 0 : state.forEach(this.setName);\r\n if (!ignoreColumnOptionNames) {\r\n ignoreColumnOptionNames = [];\r\n var commonColumnSettings = this.getCommonSettings();\r\n if (!this.option(\"columnChooser.enabled\")) {\r\n ignoreColumnOptionNames.push(\"visible\")\r\n }\r\n if (\"none\" === this.option(\"sorting.mode\")) {\r\n ignoreColumnOptionNames.push(\"sortIndex\", \"sortOrder\")\r\n }\r\n if (!commonColumnSettings.allowGrouping) {\r\n ignoreColumnOptionNames.push(\"groupIndex\")\r\n }\r\n if (!commonColumnSettings.allowFixing) {\r\n ignoreColumnOptionNames.push(\"fixed\", \"fixedPosition\")\r\n }\r\n if (!commonColumnSettings.allowResizing) {\r\n ignoreColumnOptionNames.push(\"width\", \"visibleWidth\")\r\n }\r\n var isFilterPanelHidden = !this.option(\"filterPanel.visible\");\r\n if (!this.option(\"filterRow.visible\") && isFilterPanelHidden) {\r\n ignoreColumnOptionNames.push(\"filterValue\", \"selectedFilterOperation\")\r\n }\r\n if (!this.option(\"headerFilter.visible\") && isFilterPanelHidden) {\r\n ignoreColumnOptionNames.push(\"filterValues\", \"filterType\")\r\n }\r\n }\r\n this._columnsUserState = state;\r\n this._ignoreColumnOptionNames = ignoreColumnOptionNames;\r\n this._hasUserState = !!state;\r\n updateColumnChanges(this, \"filtering\");\r\n this.init(true);\r\n if (dataSource) {\r\n dataSource.sort(this.getSortDataSourceParameters());\r\n dataSource.group(this.getGroupDataSourceParameters())\r\n }\r\n },\r\n _checkColumns: function() {\r\n var usedNames = {};\r\n var hasEditableColumnWithoutName = false;\r\n var duplicatedNames = [];\r\n this._columns.forEach(column => {\r\n var _column$columns;\r\n var name = column.name;\r\n var isBand = null === (_column$columns = column.columns) || void 0 === _column$columns ? void 0 : _column$columns.length;\r\n var isEditable = column.allowEditing && (column.dataField || column.setCellValue) && !isBand;\r\n if (name) {\r\n if (usedNames[name]) {\r\n duplicatedNames.push('\"'.concat(name, '\"'))\r\n }\r\n usedNames[name] = true\r\n } else if (isEditable) {\r\n hasEditableColumnWithoutName = true\r\n }\r\n });\r\n if (duplicatedNames.length) {\r\n errors.log(\"E1059\", duplicatedNames.join(\", \"))\r\n }\r\n if (hasEditableColumnWithoutName) {\r\n errors.log(\"E1060\")\r\n }\r\n },\r\n _createCalculatedColumnOptions: function(columnOptions, bandColumn) {\r\n var calculatedColumnOptions = {};\r\n var dataField = columnOptions.dataField;\r\n if (Array.isArray(columnOptions.columns) && columnOptions.columns.length || columnOptions.isBand) {\r\n calculatedColumnOptions.isBand = true;\r\n dataField = null\r\n }\r\n if (dataField) {\r\n if (isString(dataField)) {\r\n var getter = compileGetter(dataField);\r\n calculatedColumnOptions = {\r\n caption: captionize(dataField),\r\n calculateCellValue: function(data, skipDeserialization) {\r\n var value = getter(data);\r\n return this.deserializeValue && !skipDeserialization ? this.deserializeValue(value) : value\r\n },\r\n setCellValue: defaultSetCellValue,\r\n parseValue: function(text) {\r\n var result;\r\n var parsedValue;\r\n if (\"number\" === this.dataType) {\r\n if (isString(text) && this.format) {\r\n result = function(text, format) {\r\n var parsedValue = numberLocalization.parse(text);\r\n if (isNumeric(parsedValue)) {\r\n var formattedValue = numberLocalization.format(parsedValue, format);\r\n var formattedValueWithDefaultFormat = numberLocalization.format(parsedValue, \"decimal\");\r\n if (formattedValue === text || formattedValueWithDefaultFormat === text) {\r\n return parsedValue\r\n }\r\n }\r\n }(text.trim(), this.format)\r\n } else if (isDefined(text) && isNumeric(text)) {\r\n result = Number(text)\r\n }\r\n } else if (\"boolean\" === this.dataType) {\r\n if (text === this.trueText) {\r\n result = true\r\n } else if (text === this.falseText) {\r\n result = false\r\n }\r\n } else if (gridCoreUtils.isDateType(this.dataType)) {\r\n parsedValue = dateLocalization.parse(text, this.format);\r\n if (parsedValue) {\r\n result = parsedValue\r\n }\r\n } else {\r\n result = text\r\n }\r\n return result\r\n }\r\n }\r\n }\r\n calculatedColumnOptions.allowFiltering = true\r\n } else {\r\n calculatedColumnOptions.allowFiltering = !!columnOptions.calculateFilterExpression\r\n }\r\n calculatedColumnOptions.calculateFilterExpression = function() {\r\n return filterUtils.defaultCalculateFilterExpression.apply(this, arguments)\r\n };\r\n calculatedColumnOptions.createFilterExpression = function(filterValue) {\r\n var result;\r\n if (this.calculateFilterExpression) {\r\n result = this.calculateFilterExpression.apply(this, arguments)\r\n }\r\n if (isFunction(result)) {\r\n result = [result, \"=\", true]\r\n }\r\n if (result) {\r\n result.columnIndex = this.index;\r\n result.filterValue = filterValue\r\n }\r\n return result\r\n };\r\n if (!dataField || !isString(dataField)) {\r\n extend(true, calculatedColumnOptions, {\r\n allowSorting: false,\r\n allowGrouping: false,\r\n calculateCellValue: function() {\r\n return null\r\n }\r\n })\r\n }\r\n if (bandColumn) {\r\n calculatedColumnOptions.allowFixing = false\r\n }\r\n if (columnOptions.dataType) {\r\n calculatedColumnOptions.userDataType = columnOptions.dataType\r\n }\r\n if (columnOptions.selectedFilterOperation && !(\"defaultSelectedFilterOperation\" in calculatedColumnOptions)) {\r\n calculatedColumnOptions.defaultSelectedFilterOperation = columnOptions.selectedFilterOperation\r\n }\r\n if (columnOptions.lookup) {\r\n calculatedColumnOptions.lookup = {\r\n calculateCellValue: function(value, skipDeserialization) {\r\n if (this.valueExpr) {\r\n value = this.valueMap && this.valueMap[value]\r\n }\r\n return this.deserializeValue && !skipDeserialization ? this.deserializeValue(value) : value\r\n },\r\n updateValueMap: function() {\r\n this.valueMap = {};\r\n if (this.items) {\r\n var calculateValue = compileGetter(this.valueExpr);\r\n var calculateDisplayValue = compileGetter(this.displayExpr);\r\n for (var i = 0; i < this.items.length; i++) {\r\n var item = this.items[i];\r\n var displayValue = calculateDisplayValue(item);\r\n this.valueMap[calculateValue(item)] = displayValue;\r\n this.dataType = this.dataType || getValueDataType(displayValue)\r\n }\r\n }\r\n },\r\n update: function() {\r\n var that = this;\r\n var dataSource = that.dataSource;\r\n if (dataSource) {\r\n if (isFunction(dataSource) && !variableWrapper.isWrapped(dataSource)) {\r\n dataSource = dataSource({})\r\n }\r\n if (isPlainObject(dataSource) || dataSource instanceof Store || Array.isArray(dataSource)) {\r\n if (that.valueExpr) {\r\n var dataSourceOptions = normalizeDataSourceOptions(dataSource);\r\n dataSourceOptions.paginate = false;\r\n dataSource = new DataSource(dataSourceOptions);\r\n return dataSource.load().done((function(data) {\r\n that.items = data;\r\n that.updateValueMap && that.updateValueMap()\r\n }))\r\n }\r\n } else {\r\n errors.log(\"E1016\")\r\n }\r\n } else {\r\n that.updateValueMap && that.updateValueMap()\r\n }\r\n }\r\n }\r\n }\r\n calculatedColumnOptions.resizedCallbacks = Callbacks();\r\n if (columnOptions.resized) {\r\n calculatedColumnOptions.resizedCallbacks.add(columnOptions.resized.bind(columnOptions))\r\n }\r\n each(calculatedColumnOptions, (function(optionName) {\r\n if (isFunction(calculatedColumnOptions[optionName]) && 0 !== optionName.indexOf(\"default\")) {\r\n var defaultOptionName = \"default\" + optionName.charAt(0).toUpperCase() + optionName.substr(1);\r\n calculatedColumnOptions[defaultOptionName] = calculatedColumnOptions[optionName]\r\n }\r\n }));\r\n return calculatedColumnOptions\r\n },\r\n getRowCount: function() {\r\n this._rowCount = this._rowCount || function(that) {\r\n var rowCount = 1;\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var columnParentByIndex = bandColumnsCache.columnParentByIndex;\r\n that._columns.forEach((function(column) {\r\n var parents = getParentBandColumns(column.index, columnParentByIndex);\r\n var invisibleParents = parents.filter((function(column) {\r\n return !column.visible\r\n }));\r\n if (column.visible && !invisibleParents.length) {\r\n rowCount = Math.max(rowCount, parents.length + 1)\r\n }\r\n }));\r\n return rowCount\r\n }(this);\r\n return this._rowCount\r\n },\r\n getRowIndex: function(columnIndex, alwaysGetRowIndex) {\r\n var column = this._columns[columnIndex];\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n return column && (alwaysGetRowIndex || column.visible && !(column.command || isDefined(column.groupIndex))) ? getParentBandColumns(columnIndex, bandColumnsCache.columnParentByIndex).length : 0\r\n },\r\n getChildrenByBandColumn: function(bandColumnIndex, onlyVisibleDirectChildren) {\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n var result = _getChildrenByBandColumn(bandColumnIndex, bandColumnsCache.columnChildrenByIndex, !onlyVisibleDirectChildren);\r\n if (onlyVisibleDirectChildren) {\r\n return result.filter((function(column) {\r\n return column.visible && !column.command\r\n })).sort((function(column1, column2) {\r\n return column1.visibleIndex - column2.visibleIndex\r\n }))\r\n }\r\n return result\r\n },\r\n isParentBandColumn: function(columnIndex, bandColumnIndex) {\r\n var result = false;\r\n var column = this._columns[columnIndex];\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n var parentBandColumns = column && getParentBandColumns(columnIndex, bandColumnsCache.columnParentByIndex);\r\n if (parentBandColumns) {\r\n each(parentBandColumns, (function(_, bandColumn) {\r\n if (bandColumn.index === bandColumnIndex) {\r\n result = true;\r\n return false\r\n }\r\n }))\r\n }\r\n return result\r\n },\r\n isParentColumnVisible: function(columnIndex) {\r\n var result = true;\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n var bandColumns = columnIndex >= 0 && getParentBandColumns(columnIndex, bandColumnsCache.columnParentByIndex);\r\n bandColumns && each(bandColumns, (function(_, bandColumn) {\r\n result = result && bandColumn.visible;\r\n return result\r\n }));\r\n return result\r\n },\r\n getColumnId: function(column) {\r\n if (column.command && column.type === GROUP_COMMAND_COLUMN_NAME) {\r\n if (isCustomCommandColumn(this, column)) {\r\n return \"type:\" + column.type\r\n }\r\n return \"command:\" + column.command\r\n }\r\n return column.index\r\n },\r\n getCustomizeTextByDataType: getCustomizeTextByDataType,\r\n getHeaderContentAlignment: function(columnAlignment) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if (rtlEnabled) {\r\n return \"left\" === columnAlignment ? \"right\" : \"left\"\r\n }\r\n return columnAlignment\r\n }\r\n }\r\n }())\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.columns_controller.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n columnsControllerModule\r\n} from \"../grid_core/ui.grid_core.columns_controller\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\ngridCore.registerModule(\"columns\", {\r\n defaultOptions: function() {\r\n return extend(true, {}, columnsControllerModule.defaultOptions(), {\r\n commonColumnSettings: {\r\n allowExporting: true\r\n }\r\n })\r\n },\r\n controllers: columnsControllerModule.controllers\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.data_source_adapter.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport gridCore from \"../data_grid/ui.data_grid.core\";\r\nimport {\r\n executeAsync,\r\n getKeyHash\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isPlainObject,\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport ArrayStore from \"../../data/array_store\";\r\nimport {\r\n applyBatch\r\n} from \"../../data/array_utils\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nexport default gridCore.Controller.inherit(function() {\r\n function cloneItems(items, groupCount) {\r\n if (items) {\r\n items = items.slice(0);\r\n if (groupCount) {\r\n for (var i = 0; i < items.length; i++) {\r\n items[i] = extend({\r\n key: items[i].key\r\n }, items[i]);\r\n items[i].items = cloneItems(items[i].items, groupCount - 1)\r\n }\r\n }\r\n }\r\n return items\r\n }\r\n\r\n function calculateOperationTypes(loadOptions, lastLoadOptions, isFullReload) {\r\n var operationTypes = {\r\n reload: true,\r\n fullReload: true\r\n };\r\n if (lastLoadOptions) {\r\n operationTypes = {\r\n sorting: !gridCore.equalSortParameters(loadOptions.sort, lastLoadOptions.sort),\r\n grouping: !gridCore.equalSortParameters(loadOptions.group, lastLoadOptions.group, true),\r\n groupExpanding: !gridCore.equalSortParameters(loadOptions.group, lastLoadOptions.group) || lastLoadOptions.groupExpand,\r\n filtering: !gridCore.equalFilterParameters(loadOptions.filter, lastLoadOptions.filter),\r\n pageIndex: loadOptions.pageIndex !== lastLoadOptions.pageIndex,\r\n skip: loadOptions.skip !== lastLoadOptions.skip,\r\n take: loadOptions.take !== lastLoadOptions.take,\r\n pageSize: loadOptions.pageSize !== lastLoadOptions.pageSize,\r\n fullReload: isFullReload\r\n };\r\n operationTypes.reload = isFullReload || operationTypes.sorting || operationTypes.grouping || operationTypes.filtering;\r\n operationTypes.paging = operationTypes.pageIndex || operationTypes.pageSize || operationTypes.take\r\n }\r\n return operationTypes\r\n }\r\n\r\n function getPageDataFromCache(options, updatePaging) {\r\n var groupCount = gridCore.normalizeSortingInfo(options.group || options.storeLoadOptions.group || options.loadOptions.group).length;\r\n var items = [];\r\n if (fillItemsFromCache(items, options, groupCount)) {\r\n return items\r\n } else if (updatePaging) {\r\n ! function(cacheItemsFromBegin, options, groupCount) {\r\n var cacheItemBeginCount = cacheItemsFromBegin.length;\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n if (void 0 !== storeLoadOptions.skip && storeLoadOptions.take && !groupCount) {\r\n var cacheItemsFromEnd = [];\r\n fillItemsFromCache(cacheItemsFromEnd, options, groupCount, true);\r\n var cacheItemEndCount = cacheItemsFromEnd.length;\r\n if (cacheItemBeginCount || cacheItemEndCount) {\r\n var _options$skip2, _options$take2;\r\n options.skip = null !== (_options$skip2 = options.skip) && void 0 !== _options$skip2 ? _options$skip2 : storeLoadOptions.skip;\r\n options.take = null !== (_options$take2 = options.take) && void 0 !== _options$take2 ? _options$take2 : storeLoadOptions.take\r\n }\r\n if (cacheItemBeginCount) {\r\n storeLoadOptions.skip += cacheItemBeginCount;\r\n storeLoadOptions.take -= cacheItemBeginCount;\r\n options.cachedDataPartBegin = cacheItemsFromBegin\r\n }\r\n if (cacheItemEndCount) {\r\n storeLoadOptions.take -= cacheItemEndCount;\r\n options.cachedDataPartEnd = cacheItemsFromEnd.reverse()\r\n }\r\n }\r\n }(items, options, groupCount)\r\n }\r\n }\r\n\r\n function fillItemsFromCache(items, options, groupCount, fromEnd) {\r\n var _ref, _options$take, _options$cachedData;\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n var take = null !== (_ref = null !== (_options$take = options.take) && void 0 !== _options$take ? _options$take : storeLoadOptions.take) && void 0 !== _ref ? _ref : 0;\r\n var cachedItems = null === (_options$cachedData = options.cachedData) || void 0 === _options$cachedData ? void 0 : _options$cachedData.items;\r\n if (take && cachedItems) {\r\n var _ref2, _options$skip;\r\n var skip = null !== (_ref2 = null !== (_options$skip = options.skip) && void 0 !== _options$skip ? _options$skip : storeLoadOptions.skip) && void 0 !== _ref2 ? _ref2 : 0;\r\n for (var i = 0; i < take; i++) {\r\n var localIndex = fromEnd ? take - 1 - i : i;\r\n var cacheItemIndex = localIndex + skip;\r\n var cacheItem = cachedItems[cacheItemIndex];\r\n if (void 0 === cacheItem && cacheItemIndex in cachedItems) {\r\n return true\r\n }\r\n var item = getItemFromCache(options, cacheItem, groupCount, localIndex, take);\r\n if (item) {\r\n items.push(item)\r\n } else {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n return false\r\n }\r\n\r\n function getItemFromCache(options, cacheItem, groupCount, index, take) {\r\n if (groupCount && cacheItem) {\r\n var skips = 0 === index && options.skips || [];\r\n var takes = index === take - 1 && options.takes || [];\r\n return function getGroupItemFromCache(cacheItem, groupCount, skips, takes) {\r\n if (groupCount && cacheItem) {\r\n var result = _extends({}, cacheItem);\r\n var skip = skips[0] || 0;\r\n var take = takes[0];\r\n var items = cacheItem.items;\r\n if (items) {\r\n if (void 0 === take && !items[skip]) {\r\n return\r\n }\r\n result.items = [];\r\n if (skips.length) {\r\n result.isContinuation = true\r\n }\r\n if (takes.length) {\r\n result.isContinuationOnNextPage = true\r\n }\r\n for (var i = 0; void 0 === take ? items[i + skip] : i < take; i++) {\r\n var childCacheItem = items[i + skip];\r\n var isLast = i + 1 === take;\r\n var item = getGroupItemFromCache(childCacheItem, groupCount - 1, 0 === i ? skips.slice(1) : [], isLast ? takes.slice(1) : []);\r\n if (void 0 !== item) {\r\n result.items.push(item)\r\n } else {\r\n return\r\n }\r\n }\r\n }\r\n return result\r\n }\r\n return cacheItem\r\n }(cacheItem, groupCount, skips, takes)\r\n } else {\r\n return cacheItem\r\n }\r\n }\r\n\r\n function getCacheItem(cacheItem, loadedItem, groupCount, skips) {\r\n if (groupCount && loadedItem) {\r\n var result = _extends({}, loadedItem);\r\n delete result.isContinuation;\r\n delete result.isContinuationOnNextPage;\r\n var skip = skips[0] || 0;\r\n if (loadedItem.items) {\r\n result.items = (null === cacheItem || void 0 === cacheItem ? void 0 : cacheItem.items) || {};\r\n loadedItem.items.forEach((item, index) => {\r\n var globalIndex = index + skip;\r\n var childSkips = 0 === index ? skips.slice(1) : [];\r\n result.items[globalIndex] = getCacheItem(result.items[globalIndex], item, groupCount - 1, childSkips)\r\n })\r\n }\r\n return result\r\n }\r\n return loadedItem\r\n }\r\n return {\r\n init: function(dataSource, remoteOperations) {\r\n var that = this;\r\n that._dataSource = dataSource;\r\n that._remoteOperations = remoteOperations || {};\r\n that._isLastPage = !dataSource.isLastPage();\r\n that._hasLastPage = false;\r\n that._currentTotalCount = 0;\r\n that._cachedData = {\r\n items: {}\r\n };\r\n that._lastOperationTypes = {};\r\n that._eventsStrategy = dataSource._eventsStrategy;\r\n that._totalCountCorrection = 0;\r\n that._isLoadingAll = false;\r\n that.changed = Callbacks();\r\n that.loadingChanged = Callbacks();\r\n that.loadError = Callbacks();\r\n that.customizeStoreLoadOptions = Callbacks();\r\n that.changing = Callbacks();\r\n that.pushed = Callbacks();\r\n that._dataChangedHandler = that._handleDataChanged.bind(that);\r\n that._customizeStoreLoadOptionsHandler = that._handleCustomizeStoreLoadOptions.bind(that);\r\n that._dataLoadedHandler = that._handleDataLoaded.bind(that);\r\n that._loadingChangedHandler = that._handleLoadingChanged.bind(that);\r\n that._loadErrorHandler = that._handleLoadError.bind(that);\r\n that._pushHandler = that._handlePush.bind(that);\r\n that._changingHandler = that._handleChanging.bind(that);\r\n dataSource.on(\"changed\", that._dataChangedHandler);\r\n dataSource.on(\"customizeStoreLoadOptions\", that._customizeStoreLoadOptionsHandler);\r\n dataSource.on(\"customizeLoadResult\", that._dataLoadedHandler);\r\n dataSource.on(\"loadingChanged\", that._loadingChangedHandler);\r\n dataSource.on(\"loadError\", that._loadErrorHandler);\r\n dataSource.on(\"changing\", that._changingHandler);\r\n dataSource.store().on(\"beforePush\", that._pushHandler);\r\n each(dataSource, (function(memberName, member) {\r\n if (!that[memberName] && isFunction(member)) {\r\n that[memberName] = function() {\r\n return this._dataSource[memberName].apply(this._dataSource, arguments)\r\n }\r\n }\r\n }))\r\n },\r\n remoteOperations: function() {\r\n return this._remoteOperations\r\n },\r\n dispose: function(isSharedDataSource) {\r\n var dataSource = this._dataSource;\r\n var store = dataSource.store();\r\n dataSource.off(\"changed\", this._dataChangedHandler);\r\n dataSource.off(\"customizeStoreLoadOptions\", this._customizeStoreLoadOptionsHandler);\r\n dataSource.off(\"customizeLoadResult\", this._dataLoadedHandler);\r\n dataSource.off(\"loadingChanged\", this._loadingChangedHandler);\r\n dataSource.off(\"loadError\", this._loadErrorHandler);\r\n dataSource.off(\"changing\", this._changingHandler);\r\n store && store.off(\"beforePush\", this._pushHandler);\r\n if (!isSharedDataSource) {\r\n dataSource.dispose()\r\n }\r\n },\r\n refresh: function(options, operationTypes) {\r\n var dataSource = this._dataSource;\r\n if (operationTypes.reload) {\r\n this.resetCurrentTotalCount();\r\n this._isLastPage = !dataSource.paginate();\r\n this._hasLastPage = this._isLastPage\r\n }\r\n },\r\n resetCurrentTotalCount: function() {\r\n this._currentTotalCount = 0;\r\n this._totalCountCorrection = 0\r\n },\r\n resetCache: function() {\r\n this._cachedStoreData = void 0;\r\n this._cachedPagingData = void 0\r\n },\r\n resetPagesCache: function() {\r\n this._cachedData = {\r\n items: {}\r\n }\r\n },\r\n _needClearStoreDataCache: function() {\r\n var remoteOperations = this.remoteOperations();\r\n var operationTypes = calculateOperationTypes(this._lastLoadOptions || {}, {});\r\n var isLocalOperations = Object.keys(remoteOperations).every(operationName => !operationTypes[operationName] || !remoteOperations[operationName]);\r\n return !isLocalOperations\r\n },\r\n push: function(changes, fromStore) {\r\n var store = this.store();\r\n if (this._needClearStoreDataCache()) {\r\n this._cachedStoreData = void 0\r\n }\r\n this._cachedPagingData = void 0;\r\n this.resetPagesCache(true);\r\n if (this._cachedStoreData) {\r\n applyBatch({\r\n keyInfo: store,\r\n data: this._cachedStoreData,\r\n changes: changes\r\n })\r\n }\r\n if (!fromStore) {\r\n this._applyBatch(changes)\r\n }\r\n this.pushed.fire(changes)\r\n },\r\n getDataIndexGetter: function() {\r\n if (!this._dataIndexGetter) {\r\n var indexByKey;\r\n var storeData;\r\n var store = this.store();\r\n this._dataIndexGetter = data => {\r\n var isCacheUpdated = storeData && storeData !== this._cachedStoreData;\r\n if (!indexByKey || isCacheUpdated) {\r\n storeData = this._cachedStoreData || [];\r\n indexByKey = {};\r\n for (var i = 0; i < storeData.length; i++) {\r\n indexByKey[getKeyHash(store.keyOf(storeData[i]))] = i\r\n }\r\n }\r\n return indexByKey[getKeyHash(store.keyOf(data))]\r\n }\r\n }\r\n return this._dataIndexGetter\r\n },\r\n _getKeyInfo: function() {\r\n return this.store()\r\n },\r\n _applyBatch: function(changes) {\r\n var keyInfo = this._getKeyInfo();\r\n var dataSource = this._dataSource;\r\n var groupCount = gridCore.normalizeSortingInfo(this.group()).length;\r\n var totalCount = this.totalCount();\r\n var isReshapeMode = \"reshape\" === this.option(\"editing.refreshMode\");\r\n var isVirtualMode = \"virtual\" === this.option(\"scrolling.mode\");\r\n var isLegacyMode = this.option(\"scrolling.legacyMode\");\r\n changes = changes.filter((function(change) {\r\n return !dataSource.paginate() || \"insert\" !== change.type || void 0 !== change.index\r\n }));\r\n var getItemCount = () => groupCount ? this.itemsCount() : this.items().length;\r\n var oldItemCount = getItemCount();\r\n applyBatch({\r\n keyInfo: keyInfo,\r\n data: this._items,\r\n changes: changes,\r\n groupCount: groupCount,\r\n useInsertIndex: true\r\n });\r\n applyBatch({\r\n keyInfo: keyInfo,\r\n data: dataSource.items(),\r\n changes: changes,\r\n groupCount: groupCount,\r\n useInsertIndex: true\r\n });\r\n var needUpdateTotalCountCorrection = this._currentTotalCount > 0 || !isReshapeMode && isVirtualMode && (!isLegacyMode || totalCount === oldItemCount);\r\n if (needUpdateTotalCountCorrection) {\r\n this._totalCountCorrection += getItemCount() - oldItemCount\r\n }\r\n changes.splice(0, changes.length)\r\n },\r\n _handlePush: function(_ref5) {\r\n var {\r\n changes: changes\r\n } = _ref5;\r\n this.push(changes, true)\r\n },\r\n _handleChanging: function(e) {\r\n this.changing.fire(e);\r\n this._applyBatch(e.changes)\r\n },\r\n _needCleanCacheByOperation: function(operationType, remoteOperations) {\r\n var operationTypesByOrder = [\"filtering\", \"sorting\", \"paging\"];\r\n var operationTypeIndex = operationTypesByOrder.indexOf(operationType);\r\n var currentOperationTypes = operationTypeIndex >= 0 ? operationTypesByOrder.slice(operationTypeIndex) : [operationType];\r\n return currentOperationTypes.some(operationType => remoteOperations[operationType])\r\n },\r\n _customizeRemoteOperations: function(options, operationTypes) {\r\n var cachedStoreData = this._cachedStoreData;\r\n var cachedPagingData = this._cachedPagingData;\r\n var cachedData = this._cachedData;\r\n if (options.storeLoadOptions.filter && !options.remoteOperations.filtering || options.storeLoadOptions.sort && !options.remoteOperations.sorting) {\r\n options.remoteOperations = {\r\n filtering: options.remoteOperations.filtering,\r\n summary: options.remoteOperations.summary\r\n }\r\n }\r\n if (operationTypes.fullReload) {\r\n cachedStoreData = void 0;\r\n cachedPagingData = void 0;\r\n cachedData = {\r\n items: {}\r\n }\r\n } else {\r\n if (operationTypes.reload) {\r\n cachedPagingData = void 0;\r\n cachedData = {\r\n items: {}\r\n }\r\n } else if (operationTypes.groupExpanding) {\r\n cachedData = {\r\n items: {}\r\n }\r\n }\r\n each(operationTypes, (operationType, value) => {\r\n if (value && this._needCleanCacheByOperation(operationType, options.remoteOperations)) {\r\n cachedStoreData = void 0;\r\n cachedPagingData = void 0\r\n }\r\n })\r\n }\r\n if (cachedPagingData) {\r\n options.remoteOperations.paging = false\r\n }\r\n options.cachedStoreData = cachedStoreData;\r\n options.cachedPagingData = cachedPagingData;\r\n options.cachedData = cachedData;\r\n if (!options.isCustomLoading) {\r\n this._cachedStoreData = cachedStoreData;\r\n this._cachedPagingData = cachedPagingData;\r\n this._cachedData = cachedData\r\n }\r\n },\r\n _handleCustomizeStoreLoadOptions(options) {\r\n var _options$data;\r\n this._handleDataLoading(options);\r\n if (!(0 === (null === (_options$data = options.data) || void 0 === _options$data ? void 0 : _options$data.length))) {\r\n options.data = getPageDataFromCache(options, true) || options.cachedStoreData\r\n }\r\n },\r\n _handleDataLoading: function(options) {\r\n var dataSource = this._dataSource;\r\n var lastLoadOptions = this._lastLoadOptions;\r\n this.customizeStoreLoadOptions.fire(options);\r\n options.delay = this.option(\"loadingTimeout\");\r\n options.originalStoreLoadOptions = options.storeLoadOptions;\r\n options.remoteOperations = extend({}, this.remoteOperations());\r\n var isFullReload = !this.isLoaded() && !this._isRefreshing;\r\n if (this.option(\"integrationOptions.renderedOnServer\") && !this.isLoaded()) {\r\n options.delay = void 0\r\n }\r\n var loadOptions = extend({\r\n pageIndex: this.pageIndex(),\r\n pageSize: this.pageSize()\r\n }, options.storeLoadOptions);\r\n var operationTypes = calculateOperationTypes(loadOptions, lastLoadOptions, isFullReload);\r\n this._customizeRemoteOperations(options, operationTypes);\r\n if (!options.isCustomLoading) {\r\n var isRefreshing = this._isRefreshing;\r\n options.pageIndex = dataSource.pageIndex();\r\n options.lastLoadOptions = loadOptions;\r\n options.operationTypes = operationTypes;\r\n this._loadingOperationTypes = operationTypes;\r\n this._isRefreshing = true;\r\n when(isRefreshing || this._isRefreshed || this.refresh(options, operationTypes)).done(() => {\r\n if (this._lastOperationId === options.operationId) {\r\n this._isRefreshed = true;\r\n this.load().always(() => {\r\n this._isRefreshed = false\r\n })\r\n }\r\n }).fail(() => {\r\n dataSource.cancel(options.operationId)\r\n }).always(() => {\r\n this._isRefreshing = false\r\n });\r\n dataSource.cancel(this._lastOperationId);\r\n this._lastOperationId = options.operationId;\r\n if (this._isRefreshing) {\r\n dataSource.cancel(this._lastOperationId)\r\n }\r\n }\r\n this._handleDataLoadingCore(options)\r\n },\r\n _handleDataLoadingCore: function(options) {\r\n var remoteOperations = options.remoteOperations;\r\n options.loadOptions = {};\r\n var cachedExtra = options.cachedData.extra;\r\n var localLoadOptionNames = {\r\n filter: !remoteOperations.filtering,\r\n sort: !remoteOperations.sorting,\r\n group: !remoteOperations.grouping,\r\n summary: !remoteOperations.summary,\r\n skip: !remoteOperations.paging,\r\n take: !remoteOperations.paging,\r\n requireTotalCount: cachedExtra && \"totalCount\" in cachedExtra || !remoteOperations.paging\r\n };\r\n each(options.storeLoadOptions, (function(optionName, optionValue) {\r\n if (localLoadOptionNames[optionName]) {\r\n options.loadOptions[optionName] = optionValue;\r\n delete options.storeLoadOptions[optionName]\r\n }\r\n }));\r\n if (cachedExtra) {\r\n options.extra = cachedExtra\r\n }\r\n },\r\n _handleDataLoaded: function(options) {\r\n var loadOptions = options.loadOptions;\r\n var localPaging = options.remoteOperations && !options.remoteOperations.paging;\r\n var cachedData = options.cachedData;\r\n var storeLoadOptions = options.storeLoadOptions;\r\n var needCache = false !== this.option(\"cacheEnabled\") && storeLoadOptions;\r\n var needPageCache = needCache && !options.isCustomLoading && cachedData && (!localPaging || storeLoadOptions.group);\r\n var needPagingCache = needCache && localPaging;\r\n var needStoreCache = needPagingCache && !options.isCustomLoading;\r\n if (!loadOptions) {\r\n this._dataSource.cancel(options.operationId);\r\n return\r\n }\r\n if (localPaging) {\r\n options.skip = loadOptions.skip;\r\n options.take = loadOptions.take;\r\n delete loadOptions.skip;\r\n delete loadOptions.take\r\n }\r\n if (loadOptions.group) {\r\n loadOptions.group = options.group || loadOptions.group\r\n }\r\n var groupCount = gridCore.normalizeSortingInfo(options.group || storeLoadOptions.group || loadOptions.group).length;\r\n if (options.cachedDataPartBegin) {\r\n options.data = options.cachedDataPartBegin.concat(options.data)\r\n }\r\n if (options.cachedDataPartEnd) {\r\n options.data = options.data.concat(options.cachedDataPartEnd)\r\n }\r\n if (!needPageCache || !getPageDataFromCache(options)) {\r\n if (needPagingCache && options.cachedPagingData) {\r\n options.data = cloneItems(options.cachedPagingData, groupCount)\r\n } else {\r\n if (needStoreCache) {\r\n if (!this._cachedStoreData) {\r\n this._cachedStoreData = cloneItems(options.data, gridCore.normalizeSortingInfo(storeLoadOptions.group).length)\r\n } else if (options.mergeStoreLoadData) {\r\n options.data = this._cachedStoreData = this._cachedStoreData.concat(options.data)\r\n }\r\n }\r\n new ArrayStore(options.data).load(loadOptions).done(data => {\r\n options.data = data;\r\n if (needStoreCache) {\r\n this._cachedPagingData = cloneItems(options.data, groupCount)\r\n }\r\n }).fail(error => {\r\n options.data = (new Deferred).reject(error)\r\n })\r\n }\r\n if (loadOptions.requireTotalCount && localPaging) {\r\n options.extra = isPlainObject(options.extra) ? options.extra : {};\r\n options.extra.totalCount = options.data.length\r\n }\r\n if (options.extra && options.extra.totalCount >= 0 && (false === storeLoadOptions.requireTotalCount || false === loadOptions.requireTotalCount)) {\r\n options.extra.totalCount = -1\r\n }\r\n this._handleDataLoadedCore(options);\r\n if (needPageCache) {\r\n cachedData.extra = cachedData.extra || extend({}, options.extra);\r\n when(options.data).done(data => {\r\n ! function(options, data, groupCount) {\r\n var _ref3, _options$skip3, _ref4, _options$take3;\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n var skip = null !== (_ref3 = null !== (_options$skip3 = options.skip) && void 0 !== _options$skip3 ? _options$skip3 : storeLoadOptions.skip) && void 0 !== _ref3 ? _ref3 : 0;\r\n var take = null !== (_ref4 = null !== (_options$take3 = options.take) && void 0 !== _options$take3 ? _options$take3 : storeLoadOptions.take) && void 0 !== _ref4 ? _ref4 : 0;\r\n for (var i = 0; i < take; i++) {\r\n var globalIndex = i + skip;\r\n var cacheItems = options.cachedData.items;\r\n var skips = 0 === i && options.skips || [];\r\n cacheItems[globalIndex] = getCacheItem(cacheItems[globalIndex], data[i], groupCount, skips)\r\n }\r\n }(options, data, groupCount)\r\n })\r\n }\r\n }\r\n when(options.data).done(() => {\r\n if (options.lastLoadOptions) {\r\n this._lastLoadOptions = options.lastLoadOptions;\r\n Object.keys(options.operationTypes).forEach(operationType => {\r\n this._lastOperationTypes[operationType] = this._lastOperationTypes[operationType] || options.operationTypes[operationType]\r\n })\r\n }\r\n });\r\n options.storeLoadOptions = options.originalStoreLoadOptions\r\n },\r\n _handleDataLoadedCore: function(options) {\r\n if (options.remoteOperations && !options.remoteOperations.paging && Array.isArray(options.data)) {\r\n if (void 0 !== options.skip) {\r\n options.data = options.data.slice(options.skip)\r\n }\r\n if (void 0 !== options.take) {\r\n options.data = options.data.slice(0, options.take)\r\n }\r\n }\r\n },\r\n _handleLoadingChanged: function(isLoading) {\r\n this.loadingChanged.fire(isLoading)\r\n },\r\n _handleLoadError: function(error) {\r\n this.loadError.fire(error);\r\n this.changed.fire({\r\n changeType: \"loadError\",\r\n error: error\r\n })\r\n },\r\n _loadPageSize: function() {\r\n return this.pageSize()\r\n },\r\n _handleDataChanged: function(args) {\r\n var currentTotalCount;\r\n var dataSource = this._dataSource;\r\n var isLoading = false;\r\n var isDataLoading = !args || isDefined(args.changeType);\r\n var itemsCount = this.itemsCount();\r\n if (isDataLoading) {\r\n this._isLastPage = !itemsCount || !this._loadPageSize() || itemsCount < this._loadPageSize();\r\n if (this._isLastPage) {\r\n this._hasLastPage = true\r\n }\r\n }\r\n if (dataSource.totalCount() >= 0) {\r\n if (dataSource.pageIndex() >= this.pageCount()) {\r\n dataSource.pageIndex(this.pageCount() - 1);\r\n this.pageIndex(dataSource.pageIndex());\r\n this.resetPagesCache();\r\n dataSource.load();\r\n isLoading = true\r\n }\r\n } else if (isDataLoading) {\r\n currentTotalCount = dataSource.pageIndex() * this.pageSize() + itemsCount;\r\n if (currentTotalCount > this._currentTotalCount) {\r\n this._currentTotalCount = currentTotalCount;\r\n if (0 === dataSource.pageIndex() || !this.option(\"scrolling.legacyMode\")) {\r\n this._totalCountCorrection = 0\r\n }\r\n }\r\n if (0 === itemsCount && dataSource.pageIndex() >= this.pageCount()) {\r\n dataSource.pageIndex(this.pageCount() - 1);\r\n if (\"infinite\" !== this.option(\"scrolling.mode\")) {\r\n dataSource.load();\r\n isLoading = true\r\n }\r\n }\r\n }\r\n if (!isLoading) {\r\n this._operationTypes = this._lastOperationTypes;\r\n this._lastOperationTypes = {};\r\n this.component._optionCache = {};\r\n this.changed.fire(args);\r\n this.component._optionCache = void 0\r\n }\r\n },\r\n _scheduleCustomLoadCallbacks: function(deferred) {\r\n var that = this;\r\n that._isCustomLoading = true;\r\n deferred.always((function() {\r\n that._isCustomLoading = false\r\n }))\r\n },\r\n loadingOperationTypes: function() {\r\n return this._loadingOperationTypes\r\n },\r\n operationTypes: function() {\r\n return this._operationTypes\r\n },\r\n lastLoadOptions: function() {\r\n return this._lastLoadOptions || {}\r\n },\r\n isLastPage: function() {\r\n return this._isLastPage\r\n },\r\n _dataSourceTotalCount: function() {\r\n return this._dataSource.totalCount()\r\n },\r\n totalCount: function() {\r\n return parseInt((this._currentTotalCount || this._dataSourceTotalCount()) + this._totalCountCorrection)\r\n },\r\n totalCountCorrection: function() {\r\n return this._totalCountCorrection\r\n },\r\n itemsCount: function() {\r\n return this._dataSource.items().length\r\n },\r\n totalItemsCount: function() {\r\n return this.totalCount()\r\n },\r\n pageSize: function() {\r\n var dataSource = this._dataSource;\r\n if (!arguments.length && !dataSource.paginate()) {\r\n return 0\r\n }\r\n return dataSource.pageSize.apply(dataSource, arguments)\r\n },\r\n pageCount: function() {\r\n var count = this.totalItemsCount() - this._totalCountCorrection;\r\n var pageSize = this.pageSize();\r\n if (pageSize && count > 0) {\r\n return Math.max(1, Math.ceil(count / pageSize))\r\n }\r\n return 1\r\n },\r\n hasKnownLastPage: function() {\r\n return this._hasLastPage || this._dataSource.totalCount() >= 0\r\n },\r\n loadFromStore: function(loadOptions, store) {\r\n var dataSource = this._dataSource;\r\n var d = new Deferred;\r\n if (!dataSource) {\r\n return\r\n }\r\n store = store || dataSource.store();\r\n store.load(loadOptions).done((function(data, extra) {\r\n if (data && !Array.isArray(data) && Array.isArray(data.data)) {\r\n extra = data;\r\n data = data.data\r\n }\r\n d.resolve(data, extra)\r\n })).fail(d.reject);\r\n return d\r\n },\r\n isCustomLoading: function() {\r\n return !!this._isCustomLoading\r\n },\r\n load: function(options) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var d = new Deferred;\r\n if (options) {\r\n var store = dataSource.store();\r\n var dataSourceLoadOptions = dataSource.loadOptions();\r\n var loadResult = {\r\n storeLoadOptions: options,\r\n isCustomLoading: true\r\n };\r\n each(store._customLoadOptions() || [], (function(_, optionName) {\r\n if (!(optionName in loadResult.storeLoadOptions)) {\r\n loadResult.storeLoadOptions[optionName] = dataSourceLoadOptions[optionName]\r\n }\r\n }));\r\n this._isLoadingAll = options.isLoadingAll;\r\n that._scheduleCustomLoadCallbacks(d);\r\n dataSource._scheduleLoadCallbacks(d);\r\n that._handleCustomizeStoreLoadOptions(loadResult);\r\n ! function(action, timeout) {\r\n if (isDefined(timeout)) {\r\n executeAsync(action, timeout)\r\n } else {\r\n action()\r\n }\r\n }((function() {\r\n if (!dataSource.store()) {\r\n return d.reject(\"canceled\")\r\n }\r\n when(loadResult.data || that.loadFromStore(loadResult.storeLoadOptions)).done((function(data, extra) {\r\n loadResult.data = data;\r\n loadResult.extra = extra || {};\r\n that._handleDataLoaded(loadResult);\r\n if (options.requireTotalCount && void 0 === loadResult.extra.totalCount) {\r\n loadResult.extra.totalCount = store.totalCount(loadResult.storeLoadOptions)\r\n }\r\n when(loadResult.data, loadResult.extra.totalCount).done((function(data, totalCount) {\r\n loadResult.extra.totalCount = totalCount;\r\n d.resolve(data, loadResult.extra)\r\n })).fail(d.reject)\r\n })).fail(d.reject)\r\n }), that.option(\"loadingTimeout\"));\r\n return d.fail((function() {\r\n that._eventsStrategy.fireEvent(\"loadError\", arguments)\r\n })).always(() => {\r\n this._isLoadingAll = false\r\n }).promise()\r\n } else {\r\n return dataSource.load()\r\n }\r\n },\r\n reload: function(full) {\r\n return full ? this._dataSource.reload() : this._dataSource.load()\r\n },\r\n getCachedStoreData: function() {\r\n return this._cachedStoreData\r\n }\r\n }\r\n}());\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.data_source_adapter.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport DataSourceAdapter from \"../grid_core/ui.grid_core.data_source_adapter\";\r\nvar dataSourceAdapterType = DataSourceAdapter;\r\nexport default {\r\n extend: function(extender) {\r\n dataSourceAdapterType = dataSourceAdapterType.inherit(extender)\r\n },\r\n create: function(component) {\r\n return new dataSourceAdapterType(component)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.data_controller.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport ArrayStore from \"../../data/array_store\";\r\nimport CustomStore from \"../../data/custom_store\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n noop,\r\n deferRender,\r\n equalByValue\r\n} from \"../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport DataHelperMixin from \"../../data_helper\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n findChanges\r\n} from \"../../core/utils/array_compare\";\r\nexport var dataControllerModule = {\r\n defaultOptions: function() {\r\n return {\r\n loadingTimeout: 0,\r\n dataSource: null,\r\n cacheEnabled: true,\r\n repaintChangesOnly: false,\r\n highlightChanges: false,\r\n onDataErrorOccurred: null,\r\n remoteOperations: \"auto\",\r\n paging: {\r\n enabled: true,\r\n pageSize: void 0,\r\n pageIndex: void 0\r\n }\r\n }\r\n },\r\n controllers: {\r\n data: modules.Controller.inherit({}).include(DataHelperMixin).inherit(function() {\r\n var changePaging = function(that, optionName, value) {\r\n var dataSource = that._dataSource;\r\n if (dataSource) {\r\n if (void 0 !== value) {\r\n var oldValue = that._getPagingOptionValue(optionName);\r\n if (oldValue !== value) {\r\n if (\"pageSize\" === optionName) {\r\n dataSource.pageIndex(0)\r\n }\r\n dataSource[optionName](value);\r\n that._skipProcessingPagingChange = true;\r\n that.option(\"paging.\" + optionName, value);\r\n that._skipProcessingPagingChange = false;\r\n var pageIndex = dataSource.pageIndex();\r\n that._isPaging = \"pageIndex\" === optionName;\r\n return dataSource[\"pageIndex\" === optionName ? \"load\" : \"reload\"]().done(() => {\r\n that._isPaging = false;\r\n that.pageChanged.fire(pageIndex)\r\n })\r\n }\r\n return Deferred().resolve().promise()\r\n }\r\n return dataSource[optionName]()\r\n }\r\n return 0\r\n };\r\n var members = {\r\n init: function() {\r\n var that = this;\r\n that._items = [];\r\n that._cachedProcessedItems = null;\r\n that._columnsController = that.getController(\"columns\");\r\n that._isPaging = false;\r\n that._currentOperationTypes = null;\r\n that._dataChangedHandler = e => {\r\n that._currentOperationTypes = this._dataSource.operationTypes();\r\n that._handleDataChanged(e);\r\n that._currentOperationTypes = null\r\n };\r\n that._columnsChangedHandler = that._handleColumnsChanged.bind(that);\r\n that._loadingChangedHandler = that._handleLoadingChanged.bind(that);\r\n that._loadErrorHandler = that._handleLoadError.bind(that);\r\n that._customizeStoreLoadOptionsHandler = that._handleCustomizeStoreLoadOptions.bind(that);\r\n that._changingHandler = that._handleChanging.bind(that);\r\n that._dataPushedHandler = that._handleDataPushed.bind(that);\r\n that._columnsController.columnsChanged.add(that._columnsChangedHandler);\r\n that._isLoading = false;\r\n that._isCustomLoading = false;\r\n that._repaintChangesOnly = void 0;\r\n that._changes = [];\r\n that.createAction(\"onDataErrorOccurred\");\r\n that.dataErrorOccurred.add((function(error) {\r\n return that.executeAction(\"onDataErrorOccurred\", {\r\n error: error\r\n })\r\n }));\r\n that._refreshDataSource()\r\n },\r\n _getPagingOptionValue: function(optionName) {\r\n return this._dataSource[optionName]()\r\n },\r\n callbackNames: function() {\r\n return [\"changed\", \"loadingChanged\", \"dataErrorOccurred\", \"pageChanged\", \"dataSourceChanged\", \"pushed\"]\r\n },\r\n callbackFlags: function(name) {\r\n if (\"dataErrorOccurred\" === name) {\r\n return {\r\n stopOnFalse: true\r\n }\r\n }\r\n },\r\n publicMethods: function() {\r\n return [\"beginCustomLoading\", \"endCustomLoading\", \"refresh\", \"filter\", \"clearFilter\", \"getCombinedFilter\", \"keyOf\", \"byKey\", \"getDataByKeys\", \"pageIndex\", \"pageSize\", \"pageCount\", \"totalCount\", \"_disposeDataSource\", \"getKeyByRowIndex\", \"getRowIndexByKey\", \"getDataSource\", \"getVisibleRows\", \"repaintRows\"]\r\n },\r\n reset: function() {\r\n this._columnsController.reset();\r\n this._items = [];\r\n this._refreshDataSource()\r\n },\r\n _handleDataSourceChange(args) {\r\n if (args.value === args.previousValue || this.option(\"columns\") && Array.isArray(args.value) && Array.isArray(args.previousValue)) {\r\n var isValueChanged = args.value !== args.previousValue;\r\n if (isValueChanged) {\r\n var store = this.store();\r\n if (store) {\r\n store._array = args.value\r\n }\r\n }\r\n if (this.needToRefreshOnDataSourceChange(args)) {\r\n this.refresh(this.option(\"repaintChangesOnly\"))\r\n }\r\n return true\r\n }\r\n return false\r\n },\r\n needToRefreshOnDataSourceChange: function(args) {\r\n return true\r\n },\r\n optionChanged: function(args) {\r\n var that = this;\r\n var dataSource;\r\n var changedPagingOptions;\r\n\r\n function handled() {\r\n args.handled = true\r\n }\r\n if (\"dataSource\" === args.name && args.name === args.fullName && this._handleDataSourceChange(args)) {\r\n handled();\r\n return\r\n }\r\n switch (args.name) {\r\n case \"cacheEnabled\":\r\n case \"repaintChangesOnly\":\r\n case \"highlightChanges\":\r\n case \"loadingTimeout\":\r\n handled();\r\n break;\r\n case \"remoteOperations\":\r\n case \"keyExpr\":\r\n case \"dataSource\":\r\n case \"scrolling\":\r\n handled();\r\n that.reset();\r\n break;\r\n case \"paging\":\r\n dataSource = that.dataSource();\r\n if (dataSource) {\r\n changedPagingOptions = that._setPagingOptions(dataSource);\r\n if (changedPagingOptions) {\r\n var pageIndex = dataSource.pageIndex();\r\n this._isPaging = changedPagingOptions.isPageIndexChanged;\r\n dataSource.load().done(() => {\r\n this._isPaging = false;\r\n that.pageChanged.fire(pageIndex)\r\n })\r\n }\r\n }\r\n handled();\r\n break;\r\n case \"rtlEnabled\":\r\n that.reset();\r\n break;\r\n case \"columns\":\r\n dataSource = that.dataSource();\r\n if (dataSource && dataSource.isLoading() && args.name === args.fullName) {\r\n this._useSortingGroupingFromColumns = true;\r\n dataSource.load()\r\n }\r\n break;\r\n default:\r\n that.callBase(args)\r\n }\r\n },\r\n isReady: function() {\r\n return !this._isLoading\r\n },\r\n getDataSource: function() {\r\n return this._dataSource && this._dataSource._dataSource\r\n },\r\n getCombinedFilter: function(returnDataField) {\r\n return this.combinedFilter(void 0, returnDataField)\r\n },\r\n combinedFilter: function(filter, returnDataField) {\r\n var dataSource = this._dataSource;\r\n var columnsController = this._columnsController;\r\n if (dataSource) {\r\n if (void 0 === filter) {\r\n filter = dataSource.filter()\r\n }\r\n var additionalFilter = this._calculateAdditionalFilter();\r\n if (additionalFilter) {\r\n if (columnsController.isDataSourceApplied() || columnsController.isAllDataTypesDefined()) {\r\n filter = gridCoreUtils.combineFilters([additionalFilter, filter])\r\n }\r\n }\r\n filter = columnsController.updateFilter(filter, returnDataField || dataSource.remoteOperations().filtering)\r\n }\r\n return filter\r\n },\r\n waitReady: function() {\r\n if (this._updateLockCount) {\r\n this._readyDeferred = new Deferred;\r\n return this._readyDeferred\r\n }\r\n return when()\r\n },\r\n _endUpdateCore: function() {\r\n var changes = this._changes;\r\n if (changes.length) {\r\n this._changes = [];\r\n var repaintChangesOnly = changes.every(change => change.repaintChangesOnly);\r\n this.updateItems(1 === changes.length ? changes[0] : {\r\n repaintChangesOnly: repaintChangesOnly\r\n })\r\n }\r\n if (this._readyDeferred) {\r\n this._readyDeferred.resolve();\r\n this._readyDeferred = null\r\n }\r\n },\r\n _handleCustomizeStoreLoadOptions: function(e) {\r\n var _storeLoadOptions$fil;\r\n var columnsController = this._columnsController;\r\n var dataSource = this._dataSource;\r\n var storeLoadOptions = e.storeLoadOptions;\r\n if (e.isCustomLoading && !storeLoadOptions.isLoadingAll) {\r\n return\r\n }\r\n storeLoadOptions.filter = this.combinedFilter(storeLoadOptions.filter);\r\n if (1 === (null === (_storeLoadOptions$fil = storeLoadOptions.filter) || void 0 === _storeLoadOptions$fil ? void 0 : _storeLoadOptions$fil.length) && \"!\" === storeLoadOptions.filter[0]) {\r\n e.data = [];\r\n e.extra = e.extra || {};\r\n e.extra.totalCount = 0\r\n }\r\n if (!columnsController.isDataSourceApplied()) {\r\n columnsController.updateColumnDataTypes(dataSource)\r\n }\r\n this._columnsUpdating = true;\r\n columnsController.updateSortingGrouping(dataSource, !this._useSortingGroupingFromColumns);\r\n this._columnsUpdating = false;\r\n storeLoadOptions.sort = columnsController.getSortDataSourceParameters();\r\n storeLoadOptions.group = columnsController.getGroupDataSourceParameters();\r\n dataSource.sort(storeLoadOptions.sort);\r\n dataSource.group(storeLoadOptions.group);\r\n storeLoadOptions.sort = columnsController.getSortDataSourceParameters(!dataSource.remoteOperations().sorting);\r\n e.group = columnsController.getGroupDataSourceParameters(!dataSource.remoteOperations().grouping)\r\n },\r\n _handleColumnsChanged: function(e) {\r\n var that = this;\r\n var changeTypes = e.changeTypes;\r\n var optionNames = e.optionNames;\r\n var filterValue;\r\n var filterValues;\r\n var filterApplied;\r\n if (changeTypes.sorting || changeTypes.grouping) {\r\n if (that._dataSource && !that._columnsUpdating) {\r\n that._dataSource.group(that._columnsController.getGroupDataSourceParameters());\r\n that._dataSource.sort(that._columnsController.getSortDataSourceParameters());\r\n that.reload()\r\n }\r\n } else if (changeTypes.columns) {\r\n filterValues = that._columnsController.columnOption(e.columnIndex, \"filterValues\");\r\n if (optionNames.filterValues || optionNames.filterType && Array.isArray(filterValues) || optionNames.filterValue || optionNames.selectedFilterOperation || optionNames.allowFiltering) {\r\n filterValue = that._columnsController.columnOption(e.columnIndex, \"filterValue\");\r\n if (Array.isArray(filterValues) || void 0 === e.columnIndex || isDefined(filterValue) || !optionNames.selectedFilterOperation || optionNames.filterValue) {\r\n that._applyFilter();\r\n filterApplied = true\r\n }\r\n }\r\n if (!that._needApplyFilter && !gridCoreUtils.checkChanges(optionNames, [\"width\", \"visibleWidth\", \"filterValue\", \"bufferedFilterValue\", \"selectedFilterOperation\", \"filterValues\", \"filterType\"])) {\r\n that._columnsController.columnsChanged.add((function updateItemsHandler(change) {\r\n var _change$changeTypes;\r\n that._columnsController.columnsChanged.remove(updateItemsHandler);\r\n that.updateItems({\r\n repaintChangesOnly: false,\r\n virtualColumnsScrolling: null === change || void 0 === change ? void 0 : null === (_change$changeTypes = change.changeTypes) || void 0 === _change$changeTypes ? void 0 : _change$changeTypes.virtualColumnsScrolling\r\n })\r\n }))\r\n }\r\n if (isDefined(optionNames.visible)) {\r\n var column = that._columnsController.columnOption(e.columnIndex);\r\n if (column && (isDefined(column.filterValue) || isDefined(column.filterValues))) {\r\n that._applyFilter();\r\n filterApplied = true\r\n }\r\n }\r\n }\r\n if (!filterApplied && changeTypes.filtering) {\r\n that.reload()\r\n }\r\n },\r\n _handleDataChanged: function(e) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var columnsController = that._columnsController;\r\n var isAsyncDataSourceApplying = false;\r\n this._useSortingGroupingFromColumns = false;\r\n if (dataSource && !that._isDataSourceApplying) {\r\n that._isDataSourceApplying = true;\r\n when(that._columnsController.applyDataSource(dataSource)).done((function() {\r\n if (that._isLoading) {\r\n that._handleLoadingChanged(false)\r\n }\r\n if (isAsyncDataSourceApplying && e && e.isDelayed) {\r\n e.isDelayed = false\r\n }\r\n that._isDataSourceApplying = false;\r\n var needApplyFilter = that._needApplyFilter;\r\n that._needApplyFilter = false;\r\n if (needApplyFilter && !that._isAllDataTypesDefined && (additionalFilter = that._calculateAdditionalFilter(), additionalFilter && additionalFilter.length)) {\r\n errors.log(\"W1005\", that.component.NAME);\r\n that._applyFilter()\r\n } else {\r\n that.updateItems(e, true)\r\n }\r\n var additionalFilter\r\n })).fail((function() {\r\n that._isDataSourceApplying = false\r\n }));\r\n if (that._isDataSourceApplying) {\r\n isAsyncDataSourceApplying = true;\r\n that._handleLoadingChanged(true)\r\n }\r\n that._needApplyFilter = !that._columnsController.isDataSourceApplied();\r\n that._isAllDataTypesDefined = columnsController.isAllDataTypesDefined()\r\n }\r\n },\r\n _handleLoadingChanged: function(isLoading) {\r\n this._isLoading = isLoading;\r\n this._fireLoadingChanged()\r\n },\r\n _handleLoadError: function(e) {\r\n this.dataErrorOccurred.fire(e)\r\n },\r\n _handleDataPushed: function(changes) {\r\n this.pushed.fire(changes)\r\n },\r\n fireError: function() {\r\n this.dataErrorOccurred.fire(errors.Error.apply(errors, arguments))\r\n },\r\n _setPagingOptions: function(dataSource) {\r\n var pageIndex = this.option(\"paging.pageIndex\");\r\n var pageSize = this.option(\"paging.pageSize\");\r\n var pagingEnabled = this.option(\"paging.enabled\");\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n var appendMode = \"infinite\" === scrollingMode;\r\n var virtualMode = \"virtual\" === scrollingMode;\r\n var paginate = pagingEnabled || virtualMode || appendMode;\r\n var isPaginateChanged = false;\r\n var isPageSizeChanged = false;\r\n var isPageIndexChanged = false;\r\n dataSource.requireTotalCount(!appendMode);\r\n if (void 0 !== pagingEnabled && dataSource.paginate() !== paginate) {\r\n dataSource.paginate(paginate);\r\n isPaginateChanged = true\r\n }\r\n if (void 0 !== pageSize && dataSource.pageSize() !== pageSize) {\r\n dataSource.pageSize(pageSize);\r\n isPageSizeChanged = true\r\n }\r\n if (void 0 !== pageIndex && dataSource.pageIndex() !== pageIndex) {\r\n dataSource.pageIndex(pageIndex);\r\n isPageIndexChanged = true\r\n }\r\n if (isPaginateChanged || isPageSizeChanged || isPageIndexChanged) {\r\n return {\r\n isPaginateChanged: isPaginateChanged,\r\n isPageSizeChanged: isPageSizeChanged,\r\n isPageIndexChanged: isPageIndexChanged\r\n }\r\n }\r\n return false\r\n },\r\n _getSpecificDataSourceOption: function() {\r\n var dataSource = this.option(\"dataSource\");\r\n if (Array.isArray(dataSource)) {\r\n return {\r\n store: {\r\n type: \"array\",\r\n data: dataSource,\r\n key: this.option(\"keyExpr\")\r\n }\r\n }\r\n }\r\n return dataSource\r\n },\r\n _initDataSource: function() {\r\n var oldDataSource = this._dataSource;\r\n this.callBase();\r\n var dataSource = this._dataSource;\r\n this._useSortingGroupingFromColumns = true;\r\n this._cachedProcessedItems = null;\r\n if (dataSource) {\r\n var changedPagingOptions = this._setPagingOptions(dataSource);\r\n this._isPaging = null === changedPagingOptions || void 0 === changedPagingOptions ? void 0 : changedPagingOptions.isPageIndexChanged;\r\n this.setDataSource(dataSource)\r\n } else if (oldDataSource) {\r\n this.updateItems()\r\n }\r\n },\r\n _loadDataSource: function() {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var result = new Deferred;\r\n when(this._columnsController.refresh(true)).always((function() {\r\n if (dataSource) {\r\n dataSource.load().done((function() {\r\n that._isPaging = false;\r\n result.resolve.apply(result, arguments)\r\n })).fail(result.reject)\r\n } else {\r\n result.resolve()\r\n }\r\n }));\r\n return result.promise()\r\n },\r\n _beforeProcessItems: function(items) {\r\n return items.slice(0)\r\n },\r\n getRowIndexDelta: function() {\r\n return 0\r\n },\r\n _processItems: function(items, change) {\r\n var that = this;\r\n var rowIndexDelta = that.getRowIndexDelta();\r\n var changeType = change.changeType;\r\n var visibleColumns = that._columnsController.getVisibleColumns(null, \"loadingAll\" === changeType);\r\n var visibleItems = that._items;\r\n var lastVisibleItem = \"append\" === changeType && visibleItems.length > 0 ? visibleItems[visibleItems.length - 1] : null;\r\n var dataIndex = isDefined(null === lastVisibleItem || void 0 === lastVisibleItem ? void 0 : lastVisibleItem.dataIndex) ? lastVisibleItem.dataIndex + 1 : 0;\r\n var options = {\r\n visibleColumns: visibleColumns,\r\n dataIndex: dataIndex\r\n };\r\n var result = [];\r\n each(items, (function(index, item) {\r\n if (isDefined(item)) {\r\n options.rowIndex = index - rowIndexDelta;\r\n item = that._processItem(item, options);\r\n result.push(item)\r\n }\r\n }));\r\n return result\r\n },\r\n _processItem: function(item, options) {\r\n item = this._generateDataItem(item, options);\r\n item = this._processDataItem(item, options);\r\n item.dataIndex = options.dataIndex++;\r\n return item\r\n },\r\n _generateDataItem: function(data) {\r\n return {\r\n rowType: \"data\",\r\n data: data,\r\n key: this.keyOf(data)\r\n }\r\n },\r\n _processDataItem: function(dataItem, options) {\r\n dataItem.values = this.generateDataValues(dataItem.data, options.visibleColumns);\r\n return dataItem\r\n },\r\n generateDataValues: function(data, columns, isModified) {\r\n var values = [];\r\n var value;\r\n for (var i = 0; i < columns.length; i++) {\r\n var column = columns[i];\r\n value = isModified ? void 0 : null;\r\n if (!column.command) {\r\n if (column.calculateCellValue) {\r\n value = column.calculateCellValue(data)\r\n } else if (column.dataField) {\r\n value = data[column.dataField]\r\n }\r\n }\r\n values.push(value)\r\n }\r\n return values\r\n },\r\n _applyChange: function(change) {\r\n if (\"update\" === change.changeType) {\r\n this._applyChangeUpdate(change)\r\n } else if (this.items().length && change.repaintChangesOnly && \"refresh\" === change.changeType) {\r\n this._applyChangesOnly(change)\r\n } else if (\"refresh\" === change.changeType) {\r\n this._applyChangeFull(change)\r\n }\r\n },\r\n _applyChangeFull: function(change) {\r\n this._items = change.items.slice(0)\r\n },\r\n _getRowIndices: function(change) {\r\n var rowIndices = change.rowIndices.slice(0);\r\n var rowIndexDelta = this.getRowIndexDelta();\r\n rowIndices.sort((function(a, b) {\r\n return a - b\r\n }));\r\n for (var i = 0; i < rowIndices.length; i++) {\r\n var correctedRowIndex = rowIndices[i];\r\n if (change.allowInvisibleRowIndices) {\r\n correctedRowIndex += rowIndexDelta\r\n }\r\n if (correctedRowIndex < 0) {\r\n rowIndices.splice(i, 1);\r\n i--\r\n }\r\n }\r\n return rowIndices\r\n },\r\n _applyChangeUpdate: function(change) {\r\n var that = this;\r\n var items = change.items;\r\n var rowIndices = that._getRowIndices(change);\r\n var rowIndexDelta = that.getRowIndexDelta();\r\n var repaintChangesOnly = that.option(\"repaintChangesOnly\");\r\n var prevIndex = -1;\r\n var rowIndexCorrection = 0;\r\n var changeType;\r\n change.items = [];\r\n change.rowIndices = [];\r\n change.columnIndices = [];\r\n change.changeTypes = [];\r\n var equalItems = function(item1, item2, strict) {\r\n var result = item1 && item2 && equalByValue(item1.key, item2.key);\r\n if (result && strict) {\r\n result = item1.rowType === item2.rowType && (\"detail\" !== item2.rowType || item1.isEditing === item2.isEditing)\r\n }\r\n return result\r\n };\r\n each(rowIndices, (function(index, rowIndex) {\r\n var columnIndices;\r\n rowIndex += rowIndexCorrection + rowIndexDelta;\r\n if (prevIndex === rowIndex) {\r\n return\r\n }\r\n prevIndex = rowIndex;\r\n var oldItem = that._items[rowIndex];\r\n var oldNextItem = that._items[rowIndex + 1];\r\n var newItem = items[rowIndex];\r\n var newNextItem = items[rowIndex + 1];\r\n var strict = equalItems(oldItem, oldNextItem) || equalItems(newItem, newNextItem);\r\n if (newItem) {\r\n newItem.rowIndex = rowIndex;\r\n change.items.push(newItem)\r\n }\r\n if (oldItem && newItem && equalItems(oldItem, newItem, strict)) {\r\n changeType = \"update\";\r\n that._items[rowIndex] = newItem;\r\n if (oldItem.visible !== newItem.visible) {\r\n change.items.splice(-1, 1, {\r\n visible: newItem.visible\r\n })\r\n } else if (repaintChangesOnly && !change.isFullUpdate) {\r\n columnIndices = that._partialUpdateRow(oldItem, newItem, rowIndex - rowIndexDelta)\r\n }\r\n } else if (newItem && !oldItem || newNextItem && equalItems(oldItem, newNextItem, strict)) {\r\n changeType = \"insert\";\r\n that._items.splice(rowIndex, 0, newItem);\r\n rowIndexCorrection++\r\n } else if (oldItem && !newItem || oldNextItem && equalItems(newItem, oldNextItem, strict)) {\r\n changeType = \"remove\";\r\n that._items.splice(rowIndex, 1);\r\n rowIndexCorrection--;\r\n prevIndex = -1\r\n } else if (newItem) {\r\n changeType = \"update\";\r\n that._items[rowIndex] = newItem\r\n } else {\r\n return\r\n }\r\n change.rowIndices.push(rowIndex - rowIndexDelta);\r\n change.changeTypes.push(changeType);\r\n change.columnIndices.push(columnIndices)\r\n }))\r\n },\r\n _isCellChanged: function(oldRow, newRow, visibleRowIndex, columnIndex, isLiveUpdate) {\r\n if (JSON.stringify(oldRow.values[columnIndex]) !== JSON.stringify(newRow.values[columnIndex])) {\r\n return true\r\n }\r\n\r\n function isCellModified(row, columnIndex) {\r\n return row.modifiedValues ? void 0 !== row.modifiedValues[columnIndex] : false\r\n }\r\n if (isCellModified(oldRow, columnIndex) !== isCellModified(newRow, columnIndex)) {\r\n return true\r\n }\r\n return false\r\n },\r\n _getChangedColumnIndices: function(oldItem, newItem, visibleRowIndex, isLiveUpdate) {\r\n var columnIndices;\r\n if (oldItem.rowType === newItem.rowType) {\r\n if (\"group\" !== newItem.rowType && \"groupFooter\" !== newItem.rowType) {\r\n columnIndices = [];\r\n if (\"detail\" !== newItem.rowType) {\r\n for (var columnIndex = 0; columnIndex < oldItem.values.length; columnIndex++) {\r\n if (this._isCellChanged(oldItem, newItem, visibleRowIndex, columnIndex, isLiveUpdate)) {\r\n columnIndices.push(columnIndex)\r\n }\r\n }\r\n }\r\n }\r\n if (\"group\" === newItem.rowType && newItem.isExpanded === oldItem.isExpanded && oldItem.cells) {\r\n columnIndices = oldItem.cells.map((cell, index) => {\r\n var _cell$column;\r\n return \"groupExpand\" !== (null === (_cell$column = cell.column) || void 0 === _cell$column ? void 0 : _cell$column.type) ? index : -1\r\n }).filter(index => index >= 0)\r\n }\r\n }\r\n return columnIndices\r\n },\r\n _partialUpdateRow: function(oldItem, newItem, visibleRowIndex, isLiveUpdate) {\r\n var _changedColumnIndices;\r\n var changedColumnIndices = this._getChangedColumnIndices(oldItem, newItem, visibleRowIndex, isLiveUpdate);\r\n if (null !== (_changedColumnIndices = changedColumnIndices) && void 0 !== _changedColumnIndices && _changedColumnIndices.length && this.option(\"dataRowTemplate\")) {\r\n changedColumnIndices = void 0\r\n }\r\n if (changedColumnIndices) {\r\n oldItem.cells && oldItem.cells.forEach((function(cell, columnIndex) {\r\n var isCellChanged = changedColumnIndices.indexOf(columnIndex) >= 0;\r\n if (!isCellChanged && cell && cell.update) {\r\n cell.update(newItem)\r\n }\r\n }));\r\n newItem.update = oldItem.update;\r\n newItem.watch = oldItem.watch;\r\n newItem.cells = oldItem.cells;\r\n if (isLiveUpdate) {\r\n newItem.oldValues = oldItem.values\r\n }\r\n oldItem.update && oldItem.update(newItem)\r\n }\r\n return changedColumnIndices\r\n },\r\n _isItemEquals: function(item1, item2) {\r\n if (JSON.stringify(item1.values) !== JSON.stringify(item2.values)) {\r\n return false\r\n }\r\n if ([\"modified\", \"isNewRow\", \"removed\", \"isEditing\"].some(field => item1[field] !== item2[field])) {\r\n return false\r\n }\r\n if (\"group\" === item1.rowType || \"groupFooter\" === item1.rowType) {\r\n var _item1$data, _item2$data, _item1$data2, _item2$data2;\r\n var expandedMatch = item1.isExpanded === item2.isExpanded;\r\n var summaryCellsMatch = JSON.stringify(item1.summaryCells) === JSON.stringify(item2.summaryCells);\r\n var continuationMatch = (null === (_item1$data = item1.data) || void 0 === _item1$data ? void 0 : _item1$data.isContinuation) === (null === (_item2$data = item2.data) || void 0 === _item2$data ? void 0 : _item2$data.isContinuation) && (null === (_item1$data2 = item1.data) || void 0 === _item1$data2 ? void 0 : _item1$data2.isContinuationOnNextPage) === (null === (_item2$data2 = item2.data) || void 0 === _item2$data2 ? void 0 : _item2$data2.isContinuationOnNextPage);\r\n if (!expandedMatch || !summaryCellsMatch || !continuationMatch) {\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n _applyChangesOnly: function(change) {\r\n var _change$isLiveUpdate;\r\n var rowIndices = [];\r\n var columnIndices = [];\r\n var changeTypes = [];\r\n var items = [];\r\n var newIndexByKey = {};\r\n var isLiveUpdate = null !== (_change$isLiveUpdate = null === change || void 0 === change ? void 0 : change.isLiveUpdate) && void 0 !== _change$isLiveUpdate ? _change$isLiveUpdate : true;\r\n\r\n function getRowKey(row) {\r\n if (row) {\r\n return row.rowType + \",\" + JSON.stringify(row.key)\r\n }\r\n }\r\n var currentItems = this._items;\r\n var oldItems = currentItems.slice();\r\n change.items.forEach((function(item, index) {\r\n var key = getRowKey(item);\r\n newIndexByKey[key] = index;\r\n item.rowIndex = index\r\n }));\r\n var result = findChanges(oldItems, change.items, getRowKey, (item1, item2) => {\r\n if (!this._isItemEquals(item1, item2)) {\r\n return false\r\n }\r\n if (item1.cells) {\r\n item1.update && item1.update(item2);\r\n item1.cells.forEach((function(cell) {\r\n if (cell && cell.update) {\r\n cell.update(item2, true)\r\n }\r\n }))\r\n }\r\n return true\r\n });\r\n if (!result) {\r\n this._applyChangeFull(change);\r\n return\r\n }\r\n result.forEach(change => {\r\n switch (change.type) {\r\n case \"update\":\r\n var index = change.index;\r\n var newItem = change.data;\r\n var oldItem = change.oldItem;\r\n var changedColumnIndices = this._partialUpdateRow(oldItem, newItem, index, isLiveUpdate);\r\n rowIndices.push(index);\r\n changeTypes.push(\"update\");\r\n items.push(newItem);\r\n currentItems[index] = newItem;\r\n columnIndices.push(changedColumnIndices);\r\n break;\r\n case \"insert\":\r\n rowIndices.push(change.index);\r\n changeTypes.push(\"insert\");\r\n items.push(change.data);\r\n columnIndices.push(void 0);\r\n currentItems.splice(change.index, 0, change.data);\r\n break;\r\n case \"remove\":\r\n rowIndices.push(change.index);\r\n changeTypes.push(\"remove\");\r\n currentItems.splice(change.index, 1);\r\n items.push(change.oldItem);\r\n columnIndices.push(void 0)\r\n }\r\n });\r\n change.repaintChangesOnly = true;\r\n change.changeType = \"update\";\r\n change.rowIndices = rowIndices;\r\n change.columnIndices = columnIndices;\r\n change.changeTypes = changeTypes;\r\n change.items = items;\r\n if (oldItems.length) {\r\n change.isLiveUpdate = true\r\n }\r\n this._correctRowIndices(rowIndex => {\r\n var oldRowIndexOffset = this._rowIndexOffset || 0;\r\n var rowIndexOffset = this.getRowIndexOffset();\r\n var oldItem = oldItems[rowIndex - oldRowIndexOffset];\r\n var key = getRowKey(oldItem);\r\n var newVisibleRowIndex = newIndexByKey[key];\r\n return newVisibleRowIndex >= 0 ? newVisibleRowIndex + rowIndexOffset - rowIndex : 0\r\n })\r\n },\r\n _correctRowIndices: noop,\r\n _afterProcessItems: function(items) {\r\n return items\r\n },\r\n _updateItemsCore: function(change) {\r\n var items;\r\n var dataSource = this._dataSource;\r\n var changeType = change.changeType || \"refresh\";\r\n change.changeType = changeType;\r\n if (dataSource) {\r\n var cachedProcessedItems = this._cachedProcessedItems;\r\n if (change.useProcessedItemsCache && cachedProcessedItems) {\r\n items = cachedProcessedItems\r\n } else {\r\n items = change.items || dataSource.items();\r\n items = this._beforeProcessItems(items);\r\n items = this._processItems(items, change);\r\n this._cachedProcessedItems = items\r\n }\r\n items = this._afterProcessItems(items, change);\r\n change.items = items;\r\n var oldItems = this._items.length === items.length && this._items;\r\n this._applyChange(change);\r\n var rowIndexDelta = this.getRowIndexDelta();\r\n each(this._items, (index, item) => {\r\n item.rowIndex = index - rowIndexDelta;\r\n if (oldItems) {\r\n item.cells = oldItems[index].cells || []\r\n }\r\n var newItem = items[index];\r\n if (newItem) {\r\n item.loadIndex = newItem.loadIndex\r\n }\r\n });\r\n this._rowIndexOffset = this.getRowIndexOffset()\r\n } else {\r\n this._items = []\r\n }\r\n },\r\n _handleChanging: function(e) {\r\n var rows = this.getVisibleRows();\r\n var dataSource = this.dataSource();\r\n if (dataSource) {\r\n e.changes.forEach((function(change) {\r\n if (\"insert\" === change.type && change.index >= 0) {\r\n var dataIndex = 0;\r\n for (var i = 0; i < change.index; i++) {\r\n var row = rows[i];\r\n if (row && (\"data\" === row.rowType || \"group\" === row.rowType)) {\r\n dataIndex++\r\n }\r\n }\r\n change.index = dataIndex\r\n }\r\n }))\r\n }\r\n },\r\n updateItems: function(change, isDataChanged) {\r\n change = change || {};\r\n if (void 0 !== this._repaintChangesOnly) {\r\n var _change$repaintChange;\r\n change.repaintChangesOnly = null !== (_change$repaintChange = change.repaintChangesOnly) && void 0 !== _change$repaintChange ? _change$repaintChange : this._repaintChangesOnly;\r\n change.needUpdateDimensions = change.needUpdateDimensions || this._needUpdateDimensions\r\n } else if (change.changes) {\r\n change.repaintChangesOnly = this.option(\"repaintChangesOnly\")\r\n } else if (isDataChanged) {\r\n var operationTypes = this.dataSource().operationTypes();\r\n change.repaintChangesOnly = operationTypes && !operationTypes.grouping && !operationTypes.filtering && this.option(\"repaintChangesOnly\");\r\n change.isDataChanged = true;\r\n if (operationTypes && (operationTypes.reload || operationTypes.paging || operationTypes.groupExpanding)) {\r\n change.needUpdateDimensions = true\r\n }\r\n }\r\n if (this._updateLockCount && !change.cancel) {\r\n this._changes.push(change);\r\n return\r\n }\r\n this._updateItemsCore(change);\r\n if (change.cancel) {\r\n return\r\n }\r\n this._fireChanged(change)\r\n },\r\n loadingOperationTypes: function() {\r\n var dataSource = this.dataSource();\r\n return dataSource && dataSource.loadingOperationTypes() || {}\r\n },\r\n _fireChanged: function(change) {\r\n if (this._currentOperationTypes) {\r\n change.operationTypes = this._currentOperationTypes;\r\n this._currentOperationTypes = null\r\n }\r\n deferRender(() => {\r\n this.changed.fire(change)\r\n })\r\n },\r\n isLoading: function() {\r\n return this._isLoading || this._isCustomLoading\r\n },\r\n _fireLoadingChanged: function() {\r\n this.loadingChanged.fire(this.isLoading(), this._loadingText)\r\n },\r\n _calculateAdditionalFilter: function() {\r\n return null\r\n },\r\n _applyFilter: function() {\r\n var dataSource = this._dataSource;\r\n if (dataSource) {\r\n dataSource.pageIndex(0);\r\n this._isFilterApplying = true;\r\n return this.reload().done(() => {\r\n if (this._isFilterApplying) {\r\n this.pageChanged.fire()\r\n }\r\n })\r\n }\r\n },\r\n resetFilterApplying: function() {\r\n this._isFilterApplying = false\r\n },\r\n filter: function(filterExpr) {\r\n var dataSource = this._dataSource;\r\n var filter = dataSource && dataSource.filter();\r\n if (0 === arguments.length) {\r\n return filter\r\n }\r\n filterExpr = arguments.length > 1 ? Array.prototype.slice.call(arguments, 0) : filterExpr;\r\n if (gridCoreUtils.equalFilterParameters(filter, filterExpr)) {\r\n return\r\n }\r\n if (dataSource) {\r\n dataSource.filter(filterExpr)\r\n }\r\n this._applyFilter()\r\n },\r\n clearFilter: function(filterName) {\r\n var that = this;\r\n var columnsController = that._columnsController;\r\n var clearColumnOption = function(optionName) {\r\n var columnCount = columnsController.columnCount();\r\n for (var index = 0; index < columnCount; index++) {\r\n columnsController.columnOption(index, optionName, void 0)\r\n }\r\n };\r\n that.component.beginUpdate();\r\n if (arguments.length > 0) {\r\n switch (filterName) {\r\n case \"dataSource\":\r\n that.filter(null);\r\n break;\r\n case \"search\":\r\n that.searchByText(\"\");\r\n break;\r\n case \"header\":\r\n clearColumnOption(\"filterValues\");\r\n break;\r\n case \"row\":\r\n clearColumnOption(\"filterValue\")\r\n }\r\n } else {\r\n that.filter(null);\r\n that.searchByText(\"\");\r\n clearColumnOption(\"filterValue\");\r\n clearColumnOption(\"bufferedFilterValue\");\r\n clearColumnOption(\"filterValues\")\r\n }\r\n that.component.endUpdate()\r\n },\r\n _fireDataSourceChanged: function() {\r\n var that = this;\r\n that.changed.add((function changedHandler() {\r\n that.changed.remove(changedHandler);\r\n that.dataSourceChanged.fire()\r\n }))\r\n },\r\n _getDataSourceAdapter: noop,\r\n _createDataSourceAdapterCore: function(dataSource, remoteOperations) {\r\n var dataSourceAdapterProvider = this._getDataSourceAdapter();\r\n var dataSourceAdapter = dataSourceAdapterProvider.create(this.component);\r\n dataSourceAdapter.init(dataSource, remoteOperations);\r\n return dataSourceAdapter\r\n },\r\n isLocalStore: function(store) {\r\n store = store || this.store();\r\n return store instanceof ArrayStore\r\n },\r\n isCustomStore: function(store) {\r\n store = store || this.store();\r\n return store instanceof CustomStore\r\n },\r\n _createDataSourceAdapter: function(dataSource) {\r\n var remoteOperations = this.option(\"remoteOperations\");\r\n var store = dataSource.store();\r\n var enabledRemoteOperations = {\r\n filtering: true,\r\n sorting: true,\r\n paging: true,\r\n grouping: true,\r\n summary: true\r\n };\r\n if (remoteOperations && remoteOperations.groupPaging) {\r\n remoteOperations = extend({}, enabledRemoteOperations, remoteOperations)\r\n }\r\n if (\"auto\" === remoteOperations) {\r\n remoteOperations = this.isLocalStore(store) || this.isCustomStore(store) ? {} : {\r\n filtering: true,\r\n sorting: true,\r\n paging: true\r\n }\r\n }\r\n if (true === remoteOperations) {\r\n remoteOperations = enabledRemoteOperations\r\n }\r\n return this._createDataSourceAdapterCore(dataSource, remoteOperations)\r\n },\r\n setDataSource: function(dataSource) {\r\n var oldDataSource = this._dataSource;\r\n if (!dataSource && oldDataSource) {\r\n oldDataSource.cancelAll();\r\n oldDataSource.changed.remove(this._dataChangedHandler);\r\n oldDataSource.loadingChanged.remove(this._loadingChangedHandler);\r\n oldDataSource.loadError.remove(this._loadErrorHandler);\r\n oldDataSource.customizeStoreLoadOptions.remove(this._customizeStoreLoadOptionsHandler);\r\n oldDataSource.changing.remove(this._changingHandler);\r\n oldDataSource.pushed.remove(this._dataPushedHandler);\r\n oldDataSource.dispose(this._isSharedDataSource)\r\n }\r\n if (dataSource) {\r\n dataSource = this._createDataSourceAdapter(dataSource)\r\n }\r\n this._dataSource = dataSource;\r\n if (dataSource) {\r\n this._fireDataSourceChanged();\r\n this._isLoading = !dataSource.isLoaded();\r\n this._needApplyFilter = true;\r\n this._isAllDataTypesDefined = this._columnsController.isAllDataTypesDefined();\r\n dataSource.changed.add(this._dataChangedHandler);\r\n dataSource.loadingChanged.add(this._loadingChangedHandler);\r\n dataSource.loadError.add(this._loadErrorHandler);\r\n dataSource.customizeStoreLoadOptions.add(this._customizeStoreLoadOptionsHandler);\r\n dataSource.changing.add(this._changingHandler);\r\n dataSource.pushed.add(this._dataPushedHandler)\r\n }\r\n },\r\n items: function() {\r\n return this._items\r\n },\r\n isEmpty: function() {\r\n return !this.items().length\r\n },\r\n pageCount: function() {\r\n return this._dataSource ? this._dataSource.pageCount() : 1\r\n },\r\n dataSource: function() {\r\n return this._dataSource\r\n },\r\n store: function() {\r\n var dataSource = this._dataSource;\r\n return dataSource && dataSource.store()\r\n },\r\n loadAll: function(data) {\r\n var that = this;\r\n var d = new Deferred;\r\n var dataSource = that._dataSource;\r\n if (dataSource) {\r\n if (data) {\r\n var options = {\r\n data: data,\r\n isCustomLoading: true,\r\n storeLoadOptions: {\r\n isLoadingAll: true\r\n },\r\n loadOptions: {\r\n filter: that.getCombinedFilter(),\r\n group: dataSource.group(),\r\n sort: dataSource.sort()\r\n }\r\n };\r\n dataSource._handleDataLoaded(options);\r\n when(options.data).done((function(data) {\r\n data = that._beforeProcessItems(data);\r\n d.resolve(that._processItems(data, {\r\n changeType: \"loadingAll\"\r\n }), options.extra && options.extra.summary)\r\n })).fail(d.reject)\r\n } else if (!dataSource.isLoading()) {\r\n var loadOptions = extend({}, dataSource.loadOptions(), {\r\n isLoadingAll: true,\r\n requireTotalCount: false\r\n });\r\n dataSource.load(loadOptions).done((function(items, extra) {\r\n items = that._beforeProcessItems(items);\r\n items = that._processItems(items, {\r\n changeType: \"loadingAll\"\r\n });\r\n d.resolve(items, extra && extra.summary)\r\n })).fail(d.reject)\r\n } else {\r\n d.reject()\r\n }\r\n } else {\r\n d.resolve([])\r\n }\r\n return d\r\n },\r\n getKeyByRowIndex: function(rowIndex, byLoaded) {\r\n var item = this.items(byLoaded)[rowIndex];\r\n if (item) {\r\n return item.key\r\n }\r\n },\r\n getRowIndexByKey: function(key, byLoaded) {\r\n return gridCoreUtils.getIndexByKey(key, this.items(byLoaded))\r\n },\r\n keyOf: function(data) {\r\n var store = this.store();\r\n if (store) {\r\n return store.keyOf(data)\r\n }\r\n },\r\n byKey: function(key) {\r\n var store = this.store();\r\n var rowIndex = this.getRowIndexByKey(key);\r\n var result;\r\n if (!store) {\r\n return\r\n }\r\n if (rowIndex >= 0) {\r\n result = (new Deferred).resolve(this.items()[rowIndex].data)\r\n }\r\n return result || store.byKey(key)\r\n },\r\n key: function() {\r\n var store = this.store();\r\n if (store) {\r\n return store.key()\r\n }\r\n },\r\n getRowIndexOffset: function() {\r\n return 0\r\n },\r\n getDataByKeys: function(rowKeys) {\r\n var that = this;\r\n var result = new Deferred;\r\n var deferreds = [];\r\n var data = [];\r\n each(rowKeys, (function(index, key) {\r\n deferreds.push(that.byKey(key).done((function(keyData) {\r\n data[index] = keyData\r\n })))\r\n }));\r\n when.apply($, deferreds).always((function() {\r\n result.resolve(data)\r\n }));\r\n return result\r\n },\r\n pageIndex: function(value) {\r\n return changePaging(this, \"pageIndex\", value)\r\n },\r\n pageSize: function(value) {\r\n return changePaging(this, \"pageSize\", value)\r\n },\r\n beginCustomLoading: function(messageText) {\r\n this._isCustomLoading = true;\r\n this._loadingText = messageText || \"\";\r\n this._fireLoadingChanged()\r\n },\r\n endCustomLoading: function() {\r\n this._isCustomLoading = false;\r\n this._loadingText = void 0;\r\n this._fireLoadingChanged()\r\n },\r\n refresh: function(options) {\r\n if (true === options) {\r\n options = {\r\n reload: true,\r\n changesOnly: true\r\n }\r\n } else if (!options) {\r\n options = {\r\n lookup: true,\r\n selection: true,\r\n reload: true\r\n }\r\n }\r\n var that = this;\r\n var dataSource = that.getDataSource();\r\n var changesOnly = options.changesOnly;\r\n var d = new Deferred;\r\n var customizeLoadResult = function() {\r\n that._repaintChangesOnly = !!changesOnly\r\n };\r\n when(!options.lookup || that._columnsController.refresh()).always((function() {\r\n if (options.load || options.reload) {\r\n dataSource && dataSource.on(\"customizeLoadResult\", customizeLoadResult);\r\n when(that.reload(options.reload, changesOnly)).always((function() {\r\n dataSource && dataSource.off(\"customizeLoadResult\", customizeLoadResult);\r\n that._repaintChangesOnly = void 0\r\n })).done(d.resolve).fail(d.reject)\r\n } else {\r\n that.updateItems({\r\n repaintChangesOnly: options.changesOnly\r\n });\r\n d.resolve()\r\n }\r\n }));\r\n return d.promise()\r\n },\r\n getVisibleRows: function() {\r\n return this.items()\r\n },\r\n _disposeDataSource: function() {\r\n this.setDataSource(null)\r\n },\r\n dispose: function() {\r\n this._disposeDataSource();\r\n this.callBase.apply(this, arguments)\r\n },\r\n repaintRows: function(rowIndexes, changesOnly) {\r\n rowIndexes = Array.isArray(rowIndexes) ? rowIndexes : [rowIndexes];\r\n if (rowIndexes.length > 1 || isDefined(rowIndexes[0])) {\r\n this.updateItems({\r\n changeType: \"update\",\r\n rowIndices: rowIndexes,\r\n isFullUpdate: !changesOnly\r\n })\r\n }\r\n },\r\n skipProcessingPagingChange: function(fullName) {\r\n return this._skipProcessingPagingChange && (\"paging.pageIndex\" === fullName || \"paging.pageSize\" === fullName)\r\n },\r\n getUserState: function() {\r\n return {\r\n searchText: this.option(\"searchPanel.text\"),\r\n pageIndex: this.pageIndex(),\r\n pageSize: this.pageSize()\r\n }\r\n },\r\n getCachedStoreData: function() {\r\n return this._dataSource && this._dataSource.getCachedStoreData()\r\n },\r\n isLastPageLoaded: function() {\r\n var pageIndex = this.pageIndex();\r\n var pageCount = this.pageCount();\r\n return pageIndex === pageCount - 1\r\n }\r\n };\r\n gridCoreUtils.proxyMethod(members, \"load\");\r\n gridCoreUtils.proxyMethod(members, \"reload\");\r\n gridCoreUtils.proxyMethod(members, \"push\");\r\n gridCoreUtils.proxyMethod(members, \"itemsCount\", 0);\r\n gridCoreUtils.proxyMethod(members, \"totalItemsCount\", 0);\r\n gridCoreUtils.proxyMethod(members, \"hasKnownLastPage\", true);\r\n gridCoreUtils.proxyMethod(members, \"isLoaded\", true);\r\n gridCoreUtils.proxyMethod(members, \"totalCount\", 0);\r\n return members\r\n }())\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.data_controller.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport dataSourceAdapterProvider from \"./ui.data_grid.data_source_adapter\";\r\nimport {\r\n dataControllerModule\r\n} from \"../grid_core/ui.grid_core.data_controller\";\r\nexport var DataController = dataControllerModule.controllers.data.inherit({\r\n _getDataSourceAdapter: function() {\r\n return dataSourceAdapterProvider\r\n },\r\n _getSpecificDataSourceOption: function() {\r\n var dataSource = this.option(\"dataSource\");\r\n if (dataSource && !Array.isArray(dataSource) && this.option(\"keyExpr\")) {\r\n errors.log(\"W1011\")\r\n }\r\n return this.callBase()\r\n }\r\n});\r\ngridCore.registerModule(\"data\", {\r\n defaultOptions: dataControllerModule.defaultOptions,\r\n controllers: {\r\n data: DataController\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.sorting_mixin.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport $ from \"../../core/renderer\";\r\nvar SORT_CLASS = \"dx-sort\";\r\nvar SORT_NONE_CLASS = \"dx-sort-none\";\r\nvar SORTUP_CLASS = \"dx-sort-up\";\r\nvar SORTDOWN_CLASS = \"dx-sort-down\";\r\nvar SORT_INDEX_CLASS = \"dx-sort-index\";\r\nvar SORT_INDEX_ICON_CLASS = \"dx-sort-index-icon\";\r\nvar HEADERS_ACTION_CLASS = \"action\";\r\nexport default {\r\n _applyColumnState: function(options) {\r\n var ariaSortState;\r\n var $sortIndicator;\r\n var sortingMode = this.option(\"sorting.mode\");\r\n var rootElement = options.rootElement;\r\n var column = options.column;\r\n var $indicatorsContainer = this._getIndicatorContainer(rootElement);\r\n if (\"sort\" === options.name) {\r\n rootElement.find(\".\" + SORT_CLASS).remove();\r\n !$indicatorsContainer.children().length && $indicatorsContainer.remove();\r\n var isSortingAllowed = \"none\" !== sortingMode && column.allowSorting;\r\n if (!isDefined(column.groupIndex) && (isSortingAllowed || isDefined(column.sortOrder))) {\r\n ariaSortState = \"asc\" === column.sortOrder ? \"ascending\" : \"descending\";\r\n $sortIndicator = this.callBase(options).toggleClass(SORTUP_CLASS, \"asc\" === column.sortOrder).toggleClass(SORTDOWN_CLASS, \"desc\" === column.sortOrder);\r\n var hasSeveralSortIndexes = this.getController && !!this.getController(\"columns\").columnOption(\"sortIndex:1\");\r\n if (hasSeveralSortIndexes && this.option(\"sorting.showSortIndexes\") && column.sortIndex >= 0) {\r\n $(\"\").addClass(SORT_INDEX_ICON_CLASS).text(column.sortIndex + 1).appendTo($sortIndicator);\r\n $sortIndicator.addClass(SORT_INDEX_CLASS)\r\n }\r\n if (isSortingAllowed) {\r\n options.rootElement.addClass(this.addWidgetPrefix(HEADERS_ACTION_CLASS))\r\n }\r\n }\r\n if (!isDefined(column.sortOrder)) {\r\n this.setAria(\"sort\", \"none\", rootElement)\r\n } else {\r\n this.setAria(\"sort\", ariaSortState, rootElement)\r\n }\r\n return $sortIndicator\r\n } else {\r\n return this.callBase(options)\r\n }\r\n },\r\n _getIndicatorClassName: function(name) {\r\n if (\"sort\" === name) {\r\n return SORT_CLASS\r\n } else if (\"sortIndex\" === name) {\r\n return SORT_INDEX_ICON_CLASS\r\n }\r\n return this.callBase(name)\r\n },\r\n _renderIndicator: function(options) {\r\n var column = options.column;\r\n var $container = options.container;\r\n var $indicator = options.indicator;\r\n if (\"sort\" === options.name) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if (!isDefined(column.sortOrder)) {\r\n $indicator && $indicator.addClass(SORT_NONE_CLASS)\r\n }\r\n if ($container.children().length && (!rtlEnabled && \"left\" === options.columnAlignment || rtlEnabled && \"right\" === options.columnAlignment)) {\r\n $container.prepend($indicator);\r\n return\r\n }\r\n }\r\n this.callBase(options)\r\n },\r\n _updateIndicator: function($cell, column, indicatorName) {\r\n if (\"sort\" === indicatorName && isDefined(column.groupIndex)) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _getIndicatorElements: function($cell, returnAll) {\r\n var $indicatorElements = this.callBase($cell);\r\n return returnAll ? $indicatorElements : $indicatorElements && $indicatorElements.not(\".\" + SORT_NONE_CLASS)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.sorting.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport sortingMixin from \"../grid_core/ui.grid_core.sorting_mixin\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nvar COLUMN_HEADERS_VIEW_NAMESPACE = \"dxDataGridColumnHeadersView\";\r\nvar ColumnHeadersViewSortingExtender = extend({}, sortingMixin, {\r\n _createRow(row) {\r\n var $row = this.callBase(row);\r\n if (\"header\" === row.rowType) {\r\n eventsEngine.on($row, addNamespace(clickEventName, COLUMN_HEADERS_VIEW_NAMESPACE), \"td\", this.createAction(e => {\r\n this._processHeaderAction(e.event, $row)\r\n }))\r\n }\r\n return $row\r\n },\r\n _processHeaderAction: function(event, $row) {\r\n if ($(event.currentTarget).parent().get(0) !== $row.get(0)) {\r\n return\r\n }\r\n var that = this;\r\n var keyName = null;\r\n var $cellElementFromEvent = $(event.currentTarget);\r\n var rowIndex = $cellElementFromEvent.parent().index();\r\n var columnIndex = -1;\r\n [].slice.call(that.getCellElements(rowIndex)).some(($cellElement, index) => {\r\n if ($cellElement === $cellElementFromEvent.get(0)) {\r\n columnIndex = index;\r\n return true\r\n }\r\n });\r\n var visibleColumns = that._columnsController.getVisibleColumns(rowIndex);\r\n var column = visibleColumns[columnIndex];\r\n var editingController = that.getController(\"editing\");\r\n var editingMode = that.option(\"editing.mode\");\r\n var isCellEditing = editingController && editingController.isEditing() && (\"batch\" === editingMode || \"cell\" === editingMode);\r\n if (isCellEditing || !that._isSortableElement($(event.target))) {\r\n return\r\n }\r\n if (column && !isDefined(column.groupIndex) && !column.command) {\r\n if (event.shiftKey) {\r\n keyName = \"shift\"\r\n } else if (isCommandKeyPressed(event)) {\r\n keyName = \"ctrl\"\r\n }\r\n setTimeout(() => {\r\n that._columnsController.changeSortOrder(column.index, keyName)\r\n })\r\n }\r\n },\r\n _renderCellContent($cell, options) {\r\n var column = options.column;\r\n if (!column.command && \"header\" === options.rowType) {\r\n this._applyColumnState({\r\n name: \"sort\",\r\n rootElement: $cell,\r\n column: column,\r\n showColumnLines: this.option(\"showColumnLines\")\r\n })\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _columnOptionChanged(e) {\r\n var changeTypes = e.changeTypes;\r\n if (1 === changeTypes.length && changeTypes.sorting) {\r\n this._updateIndicators(\"sort\");\r\n return\r\n }\r\n this.callBase(e)\r\n },\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"sorting\":\r\n this._invalidate();\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nvar HeaderPanelSortingExtender = extend({}, sortingMixin, {\r\n _createGroupPanelItem($rootElement, groupColumn) {\r\n var that = this;\r\n var $item = that.callBase(...arguments);\r\n eventsEngine.on($item, addNamespace(clickEventName, \"dxDataGridHeaderPanel\"), that.createAction(() => {\r\n that._processGroupItemAction(groupColumn.index)\r\n }));\r\n that._applyColumnState({\r\n name: \"sort\",\r\n rootElement: $item,\r\n column: {\r\n alignment: that.option(\"rtlEnabled\") ? \"right\" : \"left\",\r\n allowSorting: groupColumn.allowSorting,\r\n sortOrder: \"desc\" === groupColumn.sortOrder ? \"desc\" : \"asc\"\r\n },\r\n showColumnLines: true\r\n });\r\n return $item\r\n },\r\n _processGroupItemAction(groupColumnIndex) {\r\n setTimeout(() => this.getController(\"columns\").changeSortOrder(groupColumnIndex))\r\n },\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"sorting\":\r\n this._invalidate();\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport var sortingModule = {\r\n defaultOptions: () => ({\r\n sorting: {\r\n mode: \"single\",\r\n ascendingText: messageLocalization.format(\"dxDataGrid-sortingAscendingText\"),\r\n descendingText: messageLocalization.format(\"dxDataGrid-sortingDescendingText\"),\r\n clearText: messageLocalization.format(\"dxDataGrid-sortingClearText\"),\r\n showSortIndexes: true\r\n }\r\n }),\r\n extenders: {\r\n views: {\r\n columnHeadersView: ColumnHeadersViewSortingExtender,\r\n headerPanel: HeaderPanelSortingExtender\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.sorting.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n sortingModule\r\n} from \"../grid_core/ui.grid_core.sorting\";\r\ngridCore.registerModule(\"sorting\", sortingModule);\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.rows.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n deferRender,\r\n deferUpdate\r\n} from \"../../core/utils/common\";\r\nimport {\r\n setHeight\r\n} from \"../../core/utils/style\";\r\nimport {\r\n isDefined,\r\n isNumeric,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getBoundingRect,\r\n getDefaultAlignment\r\n} from \"../../core/utils/position\";\r\nimport {\r\n isEmpty\r\n} from \"../../core/utils/string\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport {\r\n ColumnsView\r\n} from \"./ui.grid_core.columns_view\";\r\nimport Scrollable from \"../scroll_view/ui.scrollable\";\r\nimport {\r\n removeEvent\r\n} from \"../../events/remove\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport browser from \"../../core/utils/browser\";\r\nvar ROWS_VIEW_CLASS = \"rowsview\";\r\nvar CONTENT_CLASS = \"content\";\r\nvar NOWRAP_CLASS = \"nowrap\";\r\nvar GROUP_ROW_CLASS = \"dx-group-row\";\r\nvar GROUP_CELL_CLASS = \"dx-group-cell\";\r\nvar DATA_ROW_CLASS = \"dx-data-row\";\r\nvar FREE_SPACE_CLASS = \"dx-freespace-row\";\r\nvar ROW_LINES_CLASS = \"dx-row-lines\";\r\nvar COLUMN_LINES_CLASS = \"dx-column-lines\";\r\nvar ROW_ALTERNATION_CLASS = \"dx-row-alt\";\r\nvar LAST_ROW_BORDER = \"dx-last-row-border\";\r\nvar EMPTY_CLASS = \"dx-empty\";\r\nvar ROW_INSERTED_ANIMATION_CLASS = \"row-inserted-animation\";\r\nvar LOADPANEL_HIDE_TIMEOUT = 200;\r\n\r\nfunction getMaxHorizontalScrollOffset(scrollable) {\r\n return scrollable ? Math.round(scrollable.scrollWidth() - scrollable.clientWidth()) : 0\r\n}\r\nexport var rowsModule = {\r\n defaultOptions: function() {\r\n return {\r\n hoverStateEnabled: false,\r\n scrolling: {\r\n useNative: \"auto\"\r\n },\r\n loadPanel: {\r\n enabled: \"auto\",\r\n text: messageLocalization.format(\"Loading\"),\r\n width: 200,\r\n height: 90,\r\n showIndicator: true,\r\n indicatorSrc: \"\",\r\n showPane: true\r\n },\r\n dataRowTemplate: null,\r\n columnAutoWidth: false,\r\n noDataText: messageLocalization.format(\"dxDataGrid-noDataText\"),\r\n wordWrapEnabled: false,\r\n showColumnLines: true,\r\n showRowLines: false,\r\n rowAlternationEnabled: false,\r\n activeStateEnabled: false,\r\n twoWayBindingEnabled: true\r\n }\r\n },\r\n views: {\r\n rowsView: ColumnsView.inherit(function() {\r\n var defaultCellTemplate = function($container, options) {\r\n var isDataTextEmpty = isEmpty(options.text) && \"data\" === options.rowType;\r\n var text = options.text;\r\n var container = $container.get(0);\r\n if (isDataTextEmpty) {\r\n gridCoreUtils.setEmptyText($container)\r\n } else if (options.column.encodeHtml) {\r\n container.textContent = text\r\n } else {\r\n container.innerHTML = text\r\n }\r\n };\r\n return {\r\n _getDefaultTemplate: function(column) {\r\n switch (column.command) {\r\n case \"empty\":\r\n return function(container) {\r\n container.html(\" \")\r\n };\r\n default:\r\n return defaultCellTemplate\r\n }\r\n },\r\n _getDefaultGroupTemplate: function(column) {\r\n var summaryTexts = this.option(\"summary.texts\");\r\n return function($container, options) {\r\n var data = options.data;\r\n var text = options.column.caption + \": \" + options.text;\r\n var container = $container.get(0);\r\n if (options.summaryItems && options.summaryItems.length) {\r\n text += \" \" + gridCoreUtils.getGroupRowSummaryText(options.summaryItems, summaryTexts)\r\n }\r\n if (data) {\r\n if (options.groupContinuedMessage && options.groupContinuesMessage) {\r\n text += \" (\" + options.groupContinuedMessage + \". \" + options.groupContinuesMessage + \")\"\r\n } else if (options.groupContinuesMessage) {\r\n text += \" (\" + options.groupContinuesMessage + \")\"\r\n } else if (options.groupContinuedMessage) {\r\n text += \" (\" + options.groupContinuedMessage + \")\"\r\n }\r\n }\r\n $container.addClass(GROUP_CELL_CLASS);\r\n if (column.encodeHtml) {\r\n container.textContent = text\r\n } else {\r\n container.innerHTML = text\r\n }\r\n }\r\n },\r\n _update: function() {},\r\n _getCellTemplate: function(options) {\r\n var column = options.column;\r\n var template;\r\n if (\"group\" === options.rowType && isDefined(column.groupIndex) && !column.showWhenGrouped && !column.command) {\r\n template = column.groupCellTemplate || {\r\n allowRenderToDetachedContainer: true,\r\n render: this._getDefaultGroupTemplate(column)\r\n }\r\n } else if ((\"data\" === options.rowType || column.command) && column.cellTemplate) {\r\n template = column.cellTemplate\r\n } else {\r\n template = {\r\n allowRenderToDetachedContainer: true,\r\n render: this._getDefaultTemplate(column)\r\n }\r\n }\r\n return template\r\n },\r\n _createRow: function(row) {\r\n var $row = this.callBase.apply(this, arguments);\r\n if (row) {\r\n var isGroup = \"group\" === row.rowType;\r\n var isDataRow = \"data\" === row.rowType;\r\n isDataRow && $row.addClass(DATA_ROW_CLASS);\r\n isDataRow && this.option(\"showRowLines\") && $row.addClass(ROW_LINES_CLASS);\r\n this.option(\"showColumnLines\") && $row.addClass(COLUMN_LINES_CLASS);\r\n if (false === row.visible) {\r\n $row.hide()\r\n }\r\n if (isGroup) {\r\n $row.addClass(GROUP_ROW_CLASS);\r\n var isRowExpanded = row.isExpanded;\r\n this.setAria(\"role\", \"row\", $row);\r\n this.setAria(\"expanded\", isDefined(isRowExpanded) && isRowExpanded.toString(), $row)\r\n }\r\n }\r\n return $row\r\n },\r\n _rowPrepared: function($row, rowOptions, row) {\r\n if (\"data\" === rowOptions.rowType) {\r\n if (this.option(\"rowAlternationEnabled\")) {\r\n this._isAltRow(row) && $row.addClass(ROW_ALTERNATION_CLASS);\r\n rowOptions.watch && rowOptions.watch(() => this._isAltRow(row), value => {\r\n $row.toggleClass(ROW_ALTERNATION_CLASS, value)\r\n })\r\n }\r\n this._setAriaRowIndex(rowOptions, $row);\r\n rowOptions.watch && rowOptions.watch(() => rowOptions.rowIndex, () => this._setAriaRowIndex(rowOptions, $row))\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _setAriaRowIndex: function(row, $row) {\r\n var component = this.component;\r\n var isPagerMode = \"standard\" === component.option(\"scrolling.mode\") && !gridCoreUtils.isVirtualRowRendering(component);\r\n var rowIndex = row.rowIndex + 1;\r\n if (isPagerMode) {\r\n rowIndex = component.pageIndex() * component.pageSize() + rowIndex\r\n } else {\r\n rowIndex += this._dataController.getRowIndexOffset()\r\n }\r\n this.setAria(\"rowindex\", rowIndex, $row)\r\n },\r\n _afterRowPrepared: function(e) {\r\n var arg = e.args[0];\r\n var dataController = this._dataController;\r\n var row = dataController.getVisibleRows()[arg.rowIndex];\r\n var watch = this.option(\"integrationOptions.watchMethod\");\r\n if (!arg.data || \"data\" !== arg.rowType || arg.isNewRow || !this.option(\"twoWayBindingEnabled\") || !watch || !row) {\r\n return\r\n }\r\n var dispose = watch(() => dataController.generateDataValues(arg.data, arg.columns), () => {\r\n dataController.repaintRows([row.rowIndex], this.option(\"repaintChangesOnly\"))\r\n }, {\r\n deep: true,\r\n skipImmediate: true\r\n });\r\n eventsEngine.on(arg.rowElement, removeEvent, dispose)\r\n },\r\n _renderScrollable: function(force) {\r\n var $element = this.element();\r\n if (!$element.children().length) {\r\n $element.append(\"
\")\r\n }\r\n if (force || !this._loadPanel) {\r\n this._renderLoadPanel($element, $element.parent(), this._dataController.isLocalStore())\r\n }\r\n if ((force || !this.getScrollable()) && this._dataController.isLoaded()) {\r\n var columns = this.getColumns();\r\n var allColumnsHasWidth = true;\r\n for (var i = 0; i < columns.length; i++) {\r\n if (!columns[i].width && !columns[i].minWidth) {\r\n allColumnsHasWidth = false;\r\n break\r\n }\r\n }\r\n if (this.option(\"columnAutoWidth\") || this._hasHeight || allColumnsHasWidth || this._columnsController._isColumnFixing()) {\r\n this._renderScrollableCore($element)\r\n }\r\n }\r\n },\r\n _handleScroll: function(e) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var isNativeScrolling = e.component.option(\"useNative\");\r\n this._scrollTop = e.scrollOffset.top;\r\n this._scrollLeft = e.scrollOffset.left;\r\n var scrollLeft = e.scrollOffset.left;\r\n if (rtlEnabled) {\r\n this._scrollRight = getMaxHorizontalScrollOffset(e.component) - this._scrollLeft;\r\n if (isNativeScrolling) {\r\n scrollLeft = -this._scrollRight\r\n }\r\n if (!this.isScrollbarVisible(true)) {\r\n this._scrollLeft = -1\r\n }\r\n }\r\n this.scrollChanged.fire(_extends({}, e.scrollOffset, {\r\n left: scrollLeft\r\n }), this.name)\r\n },\r\n _renderScrollableCore: function($element) {\r\n var dxScrollableOptions = this._createScrollableOptions();\r\n var scrollHandler = this._handleScroll.bind(this);\r\n dxScrollableOptions.onScroll = scrollHandler;\r\n this._scrollable = this._createComponent($element, Scrollable, dxScrollableOptions);\r\n this._scrollableContainer = this._scrollable && $(this._scrollable.container())\r\n },\r\n _renderLoadPanel: gridCoreUtils.renderLoadPanel,\r\n _renderContent: function(contentElement, tableElement) {\r\n contentElement.empty().append(tableElement);\r\n return this._findContentElement()\r\n },\r\n _updateContent: function(newTableElement, change) {\r\n var that = this;\r\n var tableElement = that.getTableElement();\r\n var contentElement = that._findContentElement();\r\n var changeType = change && change.changeType;\r\n var executors = [];\r\n var highlightChanges = this.option(\"highlightChanges\");\r\n var rowInsertedClass = this.addWidgetPrefix(ROW_INSERTED_ANIMATION_CLASS);\r\n switch (changeType) {\r\n case \"update\":\r\n each(change.rowIndices, (function(index, rowIndex) {\r\n var $newRowElement = that._getRowElements(newTableElement).eq(index);\r\n var changeType = change.changeTypes && change.changeTypes[index];\r\n var item = change.items && change.items[index];\r\n executors.push((function() {\r\n var $rowsElement = that._getRowElements();\r\n var $rowElement = $rowsElement.eq(rowIndex);\r\n switch (changeType) {\r\n case \"update\":\r\n if (item) {\r\n var columnIndices = change.columnIndices && change.columnIndices[index];\r\n if (isDefined(item.visible) && item.visible !== $rowElement.is(\":visible\")) {\r\n $rowElement.toggle(item.visible)\r\n } else if (columnIndices) {\r\n that._updateCells($rowElement, $newRowElement, columnIndices)\r\n } else {\r\n $rowElement.replaceWith($newRowElement)\r\n }\r\n }\r\n break;\r\n case \"insert\":\r\n if (!$rowsElement.length) {\r\n if (tableElement) {\r\n var target = $newRowElement.is(\"tbody\") ? tableElement : tableElement.children(\"tbody\");\r\n $newRowElement.prependTo(target)\r\n }\r\n } else if ($rowElement.length) {\r\n $newRowElement.insertBefore($rowElement)\r\n } else {\r\n $newRowElement.insertAfter($rowsElement.last())\r\n }\r\n if (highlightChanges && change.isLiveUpdate) {\r\n $newRowElement.addClass(rowInsertedClass)\r\n }\r\n break;\r\n case \"remove\":\r\n $rowElement.remove()\r\n }\r\n }))\r\n }));\r\n each(executors, (function() {\r\n this()\r\n }));\r\n newTableElement.remove();\r\n break;\r\n default:\r\n that.setTableElement(newTableElement);\r\n contentElement.addClass(that.addWidgetPrefix(CONTENT_CLASS));\r\n that._renderContent(contentElement, newTableElement)\r\n }\r\n },\r\n _createEmptyRow: function(className, isFixed, height) {\r\n var $cell;\r\n var $row = this._createRow();\r\n var columns = isFixed ? this.getFixedColumns() : this.getColumns();\r\n $row.addClass(className).toggleClass(COLUMN_LINES_CLASS, this.option(\"showColumnLines\"));\r\n for (var i = 0; i < columns.length; i++) {\r\n $cell = this._createCell({\r\n column: columns[i],\r\n rowType: \"freeSpace\",\r\n columnIndex: i,\r\n columns: columns\r\n });\r\n isNumeric(height) && $cell.css(\"height\", height);\r\n $row.append($cell)\r\n }\r\n this.setAria(\"role\", \"presentation\", $row);\r\n return $row\r\n },\r\n _appendEmptyRow: function($table, $emptyRow, location) {\r\n var $tBodies = this._getBodies($table);\r\n var isTableContainer = !$tBodies.length || $emptyRow.is(\"tbody\");\r\n var $container = isTableContainer ? $table : $tBodies;\r\n if (\"top\" === location) {\r\n $container.first().prepend($emptyRow);\r\n if (isTableContainer) {\r\n var $colgroup = $container.children(\"colgroup\");\r\n $container.prepend($colgroup)\r\n }\r\n } else {\r\n $container.last().append($emptyRow)\r\n }\r\n },\r\n _renderFreeSpaceRow: function($tableElement, change) {\r\n var $freeSpaceRowElement = this._createEmptyRow(FREE_SPACE_CLASS);\r\n $freeSpaceRowElement = this._wrapRowIfNeed($tableElement, $freeSpaceRowElement, \"refresh\" === (null === change || void 0 === change ? void 0 : change.changeType));\r\n this._appendEmptyRow($tableElement, $freeSpaceRowElement)\r\n },\r\n _checkRowKeys: function(options) {\r\n var that = this;\r\n var rows = that._getRows(options);\r\n var keyExpr = that._dataController.store() && that._dataController.store().key();\r\n keyExpr && rows.some((function(row) {\r\n if (\"data\" === row.rowType && void 0 === row.key) {\r\n that._dataController.fireError(\"E1046\", keyExpr);\r\n return true\r\n }\r\n }))\r\n },\r\n _needUpdateRowHeight: function(itemsCount) {\r\n return itemsCount > 0 && !this._rowHeight\r\n },\r\n _getRowsHeight: function($tableElement) {\r\n $tableElement = $tableElement || this._tableElement;\r\n var $rowElements = $tableElement.children(\"tbody\").children().not(\".dx-virtual-row\").not(\".\" + FREE_SPACE_CLASS);\r\n return $rowElements.toArray().reduce((function(sum, row) {\r\n return sum + getBoundingRect(row).height\r\n }), 0)\r\n },\r\n _updateRowHeight: function() {\r\n var $tableElement = this.getTableElement();\r\n var itemsCount = this._dataController.items().length;\r\n if ($tableElement && this._needUpdateRowHeight(itemsCount)) {\r\n var rowsHeight = this._getRowsHeight($tableElement);\r\n this._rowHeight = rowsHeight / itemsCount\r\n }\r\n },\r\n _findContentElement: function() {\r\n var $content = this.element();\r\n var scrollable = this.getScrollable();\r\n if ($content) {\r\n if (scrollable) {\r\n $content = $(scrollable.content())\r\n }\r\n return $content.children().first()\r\n }\r\n },\r\n _getRowElements: function(tableElement) {\r\n var $rows = this.callBase(tableElement);\r\n return $rows && $rows.not(\".\" + FREE_SPACE_CLASS)\r\n },\r\n _getFreeSpaceRowElements: function($table) {\r\n var tableElements = $table || this.getTableElements();\r\n return tableElements && tableElements.children(\"tbody\").children(\".\" + FREE_SPACE_CLASS)\r\n },\r\n _getNoDataText: function() {\r\n return this.option(\"noDataText\")\r\n },\r\n _rowClick: function(e) {\r\n var item = this._dataController.items()[e.rowIndex] || {};\r\n this.executeAction(\"onRowClick\", extend({\r\n evaluate: function(expr) {\r\n var getter = compileGetter(expr);\r\n return getter(item.data)\r\n }\r\n }, e, item))\r\n },\r\n _rowDblClick: function(e) {\r\n var item = this._dataController.items()[e.rowIndex] || {};\r\n this.executeAction(\"onRowDblClick\", extend({}, e, item))\r\n },\r\n _getColumnsCountBeforeGroups: function(columns) {\r\n for (var i = 0; i < columns.length; i++) {\r\n if (\"groupExpand\" === columns[i].type) {\r\n return i\r\n }\r\n }\r\n return 0\r\n },\r\n _getGroupCellOptions: function(options) {\r\n var columnsCountBeforeGroups = this._getColumnsCountBeforeGroups(options.columns);\r\n var columnIndex = (options.row.groupIndex || 0) + columnsCountBeforeGroups;\r\n return {\r\n columnIndex: columnIndex,\r\n colspan: options.columns.length - columnIndex - 1\r\n }\r\n },\r\n _needWrapRow: function() {\r\n return this.callBase.apply(this, arguments) || !!this.option(\"dataRowTemplate\")\r\n },\r\n _renderCells: function($row, options) {\r\n if (\"group\" === options.row.rowType) {\r\n this._renderGroupedCells($row, options)\r\n } else if (options.row.values) {\r\n this.callBase($row, options)\r\n }\r\n },\r\n _renderGroupedCells: function($row, options) {\r\n var row = options.row;\r\n var expandColumn;\r\n var columns = options.columns;\r\n var rowIndex = row.rowIndex;\r\n var isExpanded;\r\n var groupCellOptions = this._getGroupCellOptions(options);\r\n for (var i = 0; i <= groupCellOptions.columnIndex; i++) {\r\n if (i === groupCellOptions.columnIndex && columns[i].allowCollapsing && \"infinite\" !== options.scrollingMode) {\r\n isExpanded = !!row.isExpanded;\r\n expandColumn = columns[i]\r\n } else {\r\n isExpanded = null;\r\n expandColumn = {\r\n command: \"expand\",\r\n cssClass: columns[i].cssClass\r\n }\r\n }\r\n if (this._needRenderCell(i, options.columnIndices)) {\r\n this._renderCell($row, {\r\n value: isExpanded,\r\n row: row,\r\n rowIndex: rowIndex,\r\n column: expandColumn,\r\n columnIndex: i,\r\n columnIndices: options.columnIndices\r\n })\r\n }\r\n }\r\n var groupColumnAlignment = getDefaultAlignment(this.option(\"rtlEnabled\"));\r\n var groupColumn = extend({}, columns[groupCellOptions.columnIndex], {\r\n command: null,\r\n type: null,\r\n cssClass: null,\r\n width: null,\r\n showWhenGrouped: false,\r\n alignment: groupColumnAlignment\r\n });\r\n if (groupCellOptions.colspan > 1) {\r\n groupColumn.colspan = groupCellOptions.colspan\r\n }\r\n if (this._needRenderCell(groupCellOptions.columnIndex + 1, options.columnIndices)) {\r\n this._renderCell($row, {\r\n value: row.values[row.groupIndex],\r\n row: row,\r\n rowIndex: rowIndex,\r\n column: groupColumn,\r\n columnIndex: groupCellOptions.columnIndex + 1,\r\n columnIndices: options.columnIndices\r\n })\r\n }\r\n },\r\n _renderRows: function($table, options) {\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n this.callBase($table, extend({\r\n scrollingMode: scrollingMode\r\n }, options));\r\n this._checkRowKeys(options.change);\r\n this._renderFreeSpaceRow($table, options.change);\r\n if (!this._hasHeight) {\r\n this.updateFreeSpaceRowHeight($table)\r\n }\r\n },\r\n _renderDataRowByTemplate($table, options, dataRowTemplate) {\r\n var row = options.row;\r\n var rowOptions = extend({\r\n columns: options.columns\r\n }, row);\r\n var $tbody = this._createRow(row, \"tbody\");\r\n $tbody.appendTo($table);\r\n this.renderTemplate($tbody, dataRowTemplate, rowOptions, true, options.change);\r\n this._rowPrepared($tbody, rowOptions, options.row)\r\n },\r\n _renderRow: function($table, options) {\r\n var row = options.row;\r\n var rowTemplate = this.option().rowTemplate;\r\n var dataRowTemplate = this.option(\"dataRowTemplate\");\r\n if (\"data\" === row.rowType && dataRowTemplate) {\r\n this._renderDataRowByTemplate($table, options, dataRowTemplate)\r\n } else if ((\"data\" === row.rowType || \"group\" === row.rowType) && !isDefined(row.groupIndex) && rowTemplate) {\r\n this.renderTemplate($table, rowTemplate, extend({\r\n columns: options.columns\r\n }, row), true)\r\n } else {\r\n this.callBase($table, options)\r\n }\r\n },\r\n _renderTable: function(options) {\r\n var that = this;\r\n var $table = that.callBase(options);\r\n if (!isDefined(that.getTableElement())) {\r\n that.setTableElement($table);\r\n that._renderScrollable(true);\r\n that.resizeCompleted.add((function resizeCompletedHandler() {\r\n var scrollableInstance = that.getScrollable();\r\n if (scrollableInstance && that.element().closest(getWindow().document).length) {\r\n that.resizeCompleted.remove(resizeCompletedHandler);\r\n scrollableInstance._visibilityChanged(true)\r\n }\r\n }))\r\n } else {\r\n that._renderScrollable()\r\n }\r\n return $table\r\n },\r\n _createTable: function() {\r\n var $table = this.callBase.apply(this, arguments);\r\n if (this.option().rowTemplate || this.option().dataRowTemplate) {\r\n $table.appendTo(this.component.$element())\r\n }\r\n return $table\r\n },\r\n _renderCore: function(change) {\r\n var $element = this.element();\r\n $element.addClass(this.addWidgetPrefix(ROWS_VIEW_CLASS)).toggleClass(this.addWidgetPrefix(NOWRAP_CLASS), !this.option(\"wordWrapEnabled\"));\r\n $element.toggleClass(EMPTY_CLASS, this._dataController.isEmpty());\r\n this.setAria(\"role\", \"presentation\", $element);\r\n var $table = this._renderTable({\r\n change: change\r\n });\r\n this._updateContent($table, change);\r\n this.callBase(change);\r\n this._lastColumnWidths = null\r\n },\r\n _getRows: function(change) {\r\n return change && change.items || this._dataController.items()\r\n },\r\n _getCellOptions: function(options) {\r\n var column = options.column;\r\n var row = options.row;\r\n var data = row.data;\r\n var summaryCells = row && row.summaryCells;\r\n var value = options.value;\r\n var displayValue = gridCoreUtils.getDisplayValue(column, value, data, row.rowType);\r\n var parameters = this.callBase(options);\r\n parameters.value = value;\r\n parameters.oldValue = options.oldValue;\r\n parameters.displayValue = displayValue;\r\n parameters.row = row;\r\n parameters.key = row.key;\r\n parameters.data = data;\r\n parameters.rowType = row.rowType;\r\n parameters.values = row.values;\r\n parameters.text = !column.command ? gridCoreUtils.formatValue(displayValue, column) : \"\";\r\n parameters.rowIndex = row.rowIndex;\r\n parameters.summaryItems = summaryCells && summaryCells[options.columnIndex];\r\n parameters.resized = column.resizedCallbacks;\r\n if (isDefined(column.groupIndex) && !column.command) {\r\n var groupingTextsOptions = this.option(\"grouping.texts\");\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n if (\"virtual\" !== scrollingMode && \"infinite\" !== scrollingMode) {\r\n parameters.groupContinuesMessage = data && data.isContinuationOnNextPage && groupingTextsOptions && groupingTextsOptions.groupContinuesMessage;\r\n parameters.groupContinuedMessage = data && data.isContinuation && groupingTextsOptions && groupingTextsOptions.groupContinuedMessage\r\n }\r\n }\r\n return parameters\r\n },\r\n _setRowsOpacityCore: function($rows, visibleColumns, columnIndex, value) {\r\n var columnsController = this._columnsController;\r\n var columns = columnsController.getColumns();\r\n var column = columns && columns[columnIndex];\r\n var columnID = column && column.isBand && column.index;\r\n each($rows, (function(rowIndex, row) {\r\n if (!$(row).hasClass(GROUP_ROW_CLASS)) {\r\n for (var i = 0; i < visibleColumns.length; i++) {\r\n if (isNumeric(columnID) && columnsController.isParentBandColumn(visibleColumns[i].index, columnID) || visibleColumns[i].index === columnIndex) {\r\n $rows.eq(rowIndex).children().eq(i).css({\r\n opacity: value\r\n });\r\n if (!isNumeric(columnID)) {\r\n break\r\n }\r\n }\r\n }\r\n }\r\n }))\r\n },\r\n _getDevicePixelRatio: function() {\r\n return getWindow().devicePixelRatio\r\n },\r\n renderNoDataText: gridCoreUtils.renderNoDataText,\r\n getCellOptions: function(rowIndex, columnIdentifier) {\r\n var rowOptions = this._dataController.items()[rowIndex];\r\n var cellOptions;\r\n var column;\r\n if (rowOptions) {\r\n if (isString(columnIdentifier)) {\r\n column = this._columnsController.columnOption(columnIdentifier)\r\n } else {\r\n column = this._columnsController.getVisibleColumns()[columnIdentifier]\r\n }\r\n if (column) {\r\n cellOptions = this._getCellOptions({\r\n value: column.calculateCellValue(rowOptions.data),\r\n rowIndex: rowOptions.rowIndex,\r\n row: rowOptions,\r\n column: column\r\n })\r\n }\r\n }\r\n return cellOptions\r\n },\r\n getRow: function(index) {\r\n if (index >= 0) {\r\n var rows = this._getRowElements();\r\n if (rows.length > index) {\r\n return $(rows[index])\r\n }\r\n }\r\n },\r\n updateFreeSpaceRowHeight: function($table) {\r\n var dataController = this._dataController;\r\n var itemCount = dataController.items(true).length;\r\n var contentElement = this._findContentElement();\r\n var freeSpaceRowElements = this._getFreeSpaceRowElements($table);\r\n if (freeSpaceRowElements && contentElement && dataController.totalCount() >= 0) {\r\n var isFreeSpaceRowVisible = false;\r\n if (itemCount > 0) {\r\n if (!this._hasHeight) {\r\n var freeSpaceRowCount = dataController.pageSize() - itemCount;\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n if (freeSpaceRowCount > 0 && dataController.pageCount() > 1 && \"virtual\" !== scrollingMode && \"infinite\" !== scrollingMode) {\r\n setHeight(freeSpaceRowElements, freeSpaceRowCount * this._rowHeight);\r\n isFreeSpaceRowVisible = true\r\n }\r\n if (!isFreeSpaceRowVisible && $table) {\r\n setHeight(freeSpaceRowElements, 0)\r\n } else {\r\n freeSpaceRowElements.toggle(isFreeSpaceRowVisible)\r\n }\r\n this._updateLastRowBorder(isFreeSpaceRowVisible)\r\n } else {\r\n freeSpaceRowElements.hide();\r\n deferUpdate(() => {\r\n var scrollbarWidth = this.getScrollbarWidth(true);\r\n var elementHeightWithoutScrollbar = getHeight(this.element()) - scrollbarWidth;\r\n var contentHeight = getOuterHeight(contentElement);\r\n var showFreeSpaceRow = elementHeightWithoutScrollbar - contentHeight > 0;\r\n var rowsHeight = this._getRowsHeight(contentElement.children().first());\r\n var $tableElement = $table || this.getTableElements();\r\n var borderTopWidth = Math.ceil(parseFloat($tableElement.css(\"borderTopWidth\")));\r\n var heightCorrection = this._getHeightCorrection();\r\n var resultHeight = elementHeightWithoutScrollbar - rowsHeight - borderTopWidth - heightCorrection;\r\n if (showFreeSpaceRow) {\r\n deferRender(() => {\r\n freeSpaceRowElements.css(\"height\", resultHeight);\r\n isFreeSpaceRowVisible = true;\r\n freeSpaceRowElements.show()\r\n })\r\n }\r\n deferRender(() => this._updateLastRowBorder(isFreeSpaceRowVisible))\r\n })\r\n }\r\n } else {\r\n freeSpaceRowElements.css(\"height\", 0);\r\n freeSpaceRowElements.show();\r\n this._updateLastRowBorder(true)\r\n }\r\n }\r\n },\r\n _getHeightCorrection: function() {\r\n var isZoomedWebkit = browser.webkit && this._getDevicePixelRatio() >= 2;\r\n var isChromeLatest = browser.chrome && browser.version >= 91;\r\n var hasExtraBorderTop = browser.mozilla && browser.version >= 70 && !this.option(\"showRowLines\");\r\n return isZoomedWebkit || hasExtraBorderTop || isChromeLatest ? 1 : 0\r\n },\r\n _columnOptionChanged: function(e) {\r\n var optionNames = e.optionNames;\r\n if (e.changeTypes.grouping) {\r\n return\r\n }\r\n if (optionNames.width || optionNames.visibleWidth) {\r\n this.callBase(e);\r\n this._fireColumnResizedCallbacks()\r\n }\r\n },\r\n getScrollable: function() {\r\n return this._scrollable\r\n },\r\n init: function() {\r\n var that = this;\r\n var dataController = that.getController(\"data\");\r\n that.callBase();\r\n that._editorFactoryController = that.getController(\"editorFactory\");\r\n that._rowHeight = 0;\r\n that._scrollTop = 0;\r\n that._scrollLeft = -1;\r\n that._scrollRight = 0;\r\n that._hasHeight = false;\r\n dataController.loadingChanged.add((function(isLoading, messageText) {\r\n that.setLoading(isLoading, messageText)\r\n }));\r\n dataController.dataSourceChanged.add((function() {\r\n if (that._scrollLeft >= 0) {\r\n that._handleScroll({\r\n component: that.getScrollable(),\r\n scrollOffset: {\r\n top: that._scrollTop,\r\n left: that._scrollLeft\r\n }\r\n })\r\n }\r\n }))\r\n },\r\n _handleDataChanged: function(change) {\r\n switch (change.changeType) {\r\n case \"refresh\":\r\n case \"prepend\":\r\n case \"append\":\r\n case \"update\":\r\n this.render(null, change);\r\n break;\r\n default:\r\n this._update(change)\r\n }\r\n },\r\n publicMethods: function() {\r\n return [\"isScrollbarVisible\", \"getTopVisibleRowData\", \"getScrollbarWidth\", \"getCellElement\", \"getRowElement\", \"getScrollable\"]\r\n },\r\n contentWidth: function() {\r\n return getWidth(this.element()) - this.getScrollbarWidth()\r\n },\r\n getScrollbarWidth: function(isHorizontal) {\r\n var scrollableContainer = this._scrollableContainer && this._scrollableContainer.get(0);\r\n var scrollbarWidth = 0;\r\n if (scrollableContainer) {\r\n if (!isHorizontal) {\r\n scrollbarWidth = scrollableContainer.clientWidth ? scrollableContainer.offsetWidth - scrollableContainer.clientWidth : 0\r\n } else {\r\n scrollbarWidth = scrollableContainer.clientHeight ? scrollableContainer.offsetHeight - scrollableContainer.clientHeight : 0;\r\n scrollbarWidth += (that = this, scrollable = that.getScrollable(), scrollable ? Math.ceil(parseFloat($(scrollable.content()).css(\"paddingBottom\"))) : 0)\r\n }\r\n }\r\n var that, scrollable;\r\n return scrollbarWidth > 0 ? scrollbarWidth : 0\r\n },\r\n _fireColumnResizedCallbacks: function() {\r\n var lastColumnWidths = this._lastColumnWidths || [];\r\n var columnWidths = [];\r\n var columns = this.getColumns();\r\n for (var i = 0; i < columns.length; i++) {\r\n columnWidths[i] = columns[i].visibleWidth;\r\n if (columns[i].resizedCallbacks && !isDefined(columns[i].groupIndex) && lastColumnWidths[i] !== columnWidths[i]) {\r\n columns[i].resizedCallbacks.fire(columnWidths[i])\r\n }\r\n }\r\n this._lastColumnWidths = columnWidths\r\n },\r\n _updateLastRowBorder: function(isFreeSpaceRowVisible) {\r\n if (this.option(\"showBorders\") && this.option(\"showRowLines\") && !isFreeSpaceRowVisible) {\r\n this.element().addClass(LAST_ROW_BORDER)\r\n } else {\r\n this.element().removeClass(LAST_ROW_BORDER)\r\n }\r\n },\r\n _updateScrollable: function() {\r\n var dxScrollable = Scrollable.getInstance(this.element());\r\n if (dxScrollable) {\r\n dxScrollable.update();\r\n this._updateHorizontalScrollPosition()\r\n }\r\n },\r\n _updateHorizontalScrollPosition: function() {\r\n var scrollable = this.getScrollable();\r\n var scrollLeft = scrollable && scrollable.scrollOffset().left;\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if (rtlEnabled) {\r\n var maxHorizontalScrollOffset = getMaxHorizontalScrollOffset(scrollable);\r\n var scrollRight = maxHorizontalScrollOffset - scrollLeft;\r\n if (scrollRight !== this._scrollRight) {\r\n this._scrollLeft = maxHorizontalScrollOffset - this._scrollRight\r\n }\r\n }\r\n if (this._scrollLeft >= 0 && scrollLeft !== this._scrollLeft) {\r\n scrollable.scrollTo({\r\n x: this._scrollLeft\r\n })\r\n }\r\n },\r\n _resizeCore: function() {\r\n var that = this;\r\n that._fireColumnResizedCallbacks();\r\n that._updateRowHeight();\r\n deferRender((function() {\r\n that._renderScrollable();\r\n that.renderNoDataText();\r\n that.updateFreeSpaceRowHeight();\r\n deferUpdate((function() {\r\n that._updateScrollable()\r\n }))\r\n }))\r\n },\r\n scrollTo: function(location) {\r\n var $element = this.element();\r\n var dxScrollable = $element && Scrollable.getInstance($element);\r\n if (dxScrollable) {\r\n dxScrollable.scrollTo(location)\r\n }\r\n },\r\n height: function(_height, hasHeight) {\r\n var that = this;\r\n var $element = this.element();\r\n if (0 === arguments.length) {\r\n return $element ? getOuterHeight($element, true) : 0\r\n }\r\n that._hasHeight = void 0 === hasHeight ? \"auto\" !== _height : hasHeight;\r\n if (isDefined(_height) && $element) {\r\n setHeight($element, _height)\r\n }\r\n },\r\n setLoading: function(isLoading, messageText) {\r\n var loadPanel = this._loadPanel;\r\n var dataController = this._dataController;\r\n var loadPanelOptions = this.option(\"loadPanel\") || {};\r\n var animation = dataController.isLoaded() ? loadPanelOptions.animation : null;\r\n var $element = this.element();\r\n if (!hasWindow()) {\r\n return\r\n }\r\n if (!loadPanel && void 0 !== messageText && dataController.isLocalStore() && \"auto\" === loadPanelOptions.enabled && $element) {\r\n this._renderLoadPanel($element, $element.parent());\r\n loadPanel = this._loadPanel\r\n }\r\n if (loadPanel) {\r\n var visibilityOptions = {\r\n message: messageText || loadPanelOptions.text,\r\n animation: animation,\r\n visible: isLoading\r\n };\r\n if (isLoading) {\r\n visibilityOptions.position = gridCoreUtils.calculateLoadPanelPosition($element)\r\n }\r\n clearTimeout(this._hideLoadingTimeoutID);\r\n if (loadPanel.option(\"visible\") && !isLoading) {\r\n this._hideLoadingTimeoutID = setTimeout((function() {\r\n loadPanel.option(visibilityOptions)\r\n }), LOADPANEL_HIDE_TIMEOUT)\r\n } else {\r\n loadPanel.option(visibilityOptions)\r\n }\r\n }\r\n },\r\n setRowsOpacity: function(columnIndex, value) {\r\n var $rows = this._getRowElements().not(\".\" + GROUP_ROW_CLASS) || [];\r\n this._setRowsOpacityCore($rows, this.getColumns(), columnIndex, value)\r\n },\r\n _getCellElementsCore: function(rowIndex) {\r\n var $cells = this.callBase.apply(this, arguments);\r\n if ($cells) {\r\n var groupCellIndex = $cells.filter(\".\" + GROUP_CELL_CLASS).index();\r\n if (groupCellIndex >= 0 && $cells.length > groupCellIndex + 1) {\r\n return $cells.slice(0, groupCellIndex + 1)\r\n }\r\n }\r\n return $cells\r\n },\r\n _getBoundaryVisibleItemIndex: function(isTop, isFloor) {\r\n var itemIndex = 0;\r\n var prevOffset = 0;\r\n var offset = 0;\r\n var viewportBoundary = this._scrollTop;\r\n var $contentElement = this._findContentElement();\r\n var contentElementOffsetTop = $contentElement && $contentElement.offset().top;\r\n var dataController = this.getController(\"data\");\r\n var items = dataController.items();\r\n var tableElement = this.getTableElement();\r\n if (items.length && tableElement) {\r\n var rowElements = this._getRowElements(tableElement).filter(\":visible\");\r\n if (!isTop) {\r\n var height = getOuterHeight(this._hasHeight ? this.element() : getWindow());\r\n viewportBoundary += height\r\n }\r\n for (itemIndex = 0; itemIndex < items.length; itemIndex++) {\r\n prevOffset = offset;\r\n var $rowElement = $(rowElements).eq(itemIndex);\r\n if ($rowElement.length) {\r\n offset = $rowElement.offset();\r\n offset = (isTop ? offset.top : offset.top + getOuterHeight($rowElement)) - contentElementOffsetTop;\r\n if (offset > viewportBoundary) {\r\n if (itemIndex) {\r\n if (isFloor || 2 * viewportBoundary < Math.round(offset + prevOffset)) {\r\n itemIndex--\r\n }\r\n }\r\n break\r\n }\r\n }\r\n }\r\n if (itemIndex && itemIndex === items.length) {\r\n itemIndex--\r\n }\r\n }\r\n return itemIndex\r\n },\r\n getTopVisibleItemIndex: function(isFloor) {\r\n return this._getBoundaryVisibleItemIndex(true, isFloor)\r\n },\r\n getBottomVisibleItemIndex: function(isFloor) {\r\n return this._getBoundaryVisibleItemIndex(false, isFloor)\r\n },\r\n getTopVisibleRowData: function() {\r\n var itemIndex = this.getTopVisibleItemIndex();\r\n var items = this._dataController.items();\r\n if (items[itemIndex]) {\r\n return items[itemIndex].data\r\n }\r\n },\r\n _scrollToElement: function($element, offset) {\r\n var scrollable = this.getScrollable();\r\n scrollable && scrollable.scrollToElement($element, offset)\r\n },\r\n optionChanged: function(args) {\r\n this.callBase(args);\r\n switch (args.name) {\r\n case \"wordWrapEnabled\":\r\n case \"showColumnLines\":\r\n case \"showRowLines\":\r\n case \"rowAlternationEnabled\":\r\n case \"rowTemplate\":\r\n case \"dataRowTemplate\":\r\n case \"twoWayBindingEnabled\":\r\n this._invalidate(true, true);\r\n args.handled = true;\r\n break;\r\n case \"scrolling\":\r\n this._rowHeight = null;\r\n this._tableElement = null;\r\n args.handled = true;\r\n break;\r\n case \"rtlEnabled\":\r\n this._rowHeight = null;\r\n this._tableElement = null;\r\n break;\r\n case \"loadPanel\":\r\n this._tableElement = null;\r\n this._invalidate(true, \"loadPanel.enabled\" !== args.fullName);\r\n args.handled = true;\r\n break;\r\n case \"noDataText\":\r\n this.renderNoDataText();\r\n args.handled = true\r\n }\r\n },\r\n dispose: function() {\r\n clearTimeout(this._hideLoadingTimeoutID);\r\n this._scrollable && this._scrollable.dispose()\r\n },\r\n setScrollerSpacing: function() {},\r\n _restoreErrorRow: function() {}\r\n }\r\n }())\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.rows.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n rowsModule\r\n} from \"../grid_core/ui.grid_core.rows\";\r\nexport var RowsView = rowsModule.views.rowsView;\r\ngridCore.registerModule(\"rows\", rowsModule);\r\n","/**\r\n * DevExtreme (esm/ui/context_menu/ui.menu_base.edit.strategy.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n map\r\n} from \"../../core/utils/iterator\";\r\nimport PlainEditStrategy from \"../collection/ui.collection_widget.edit.strategy.plain\";\r\nclass MenuBaseEditStrategy extends PlainEditStrategy {\r\n _getPlainItems() {\r\n return map(this._collectionWidget.option(\"items\"), (function getMenuItems(item) {\r\n return item.items ? [item].concat(map(item.items, getMenuItems)) : item\r\n }))\r\n }\r\n _stringifyItem(item) {\r\n return JSON.stringify(item, (key, value) => {\r\n if (\"template\" === key) {\r\n return this._getTemplateString(value)\r\n }\r\n return value\r\n })\r\n }\r\n _getTemplateString(template) {\r\n var result;\r\n if (\"object\" === typeof template) {\r\n result = $(template).text()\r\n } else {\r\n result = template.toString()\r\n }\r\n return result\r\n }\r\n}\r\nexport default MenuBaseEditStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/context_menu/ui.menu_base.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n noop,\r\n asyncNoop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isPlainObject,\r\n isObject,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n render\r\n} from \"../widget/utils.ink_ripple\";\r\nimport HierarchicalCollectionWidget from \"../hierarchical_collection/ui.hierarchical_collection_widget\";\r\nimport MenuBaseEditStrategy from \"./ui.menu_base.edit.strategy\";\r\nimport devices from \"../../core/devices\";\r\nimport MenuItem from \"../collection/item\";\r\nvar DX_MENU_CLASS = \"dx-menu\";\r\nvar DX_MENU_NO_ICONS_CLASS = DX_MENU_CLASS + \"-no-icons\";\r\nvar DX_MENU_BASE_CLASS = \"dx-menu-base\";\r\nvar ITEM_CLASS = DX_MENU_CLASS + \"-item\";\r\nvar DX_ITEM_CONTENT_CLASS = ITEM_CLASS + \"-content\";\r\nvar DX_MENU_SELECTED_ITEM_CLASS = ITEM_CLASS + \"-selected\";\r\nvar DX_MENU_ITEM_WRAPPER_CLASS = ITEM_CLASS + \"-wrapper\";\r\nvar DX_MENU_ITEMS_CONTAINER_CLASS = DX_MENU_CLASS + \"-items-container\";\r\nvar DX_MENU_ITEM_EXPANDED_CLASS = ITEM_CLASS + \"-expanded\";\r\nvar DX_MENU_SEPARATOR_CLASS = DX_MENU_CLASS + \"-separator\";\r\nvar DX_MENU_ITEM_LAST_GROUP_ITEM = DX_MENU_CLASS + \"-last-group-item\";\r\nvar DX_ITEM_HAS_TEXT = ITEM_CLASS + \"-has-text\";\r\nvar DX_ITEM_HAS_ICON = ITEM_CLASS + \"-has-icon\";\r\nvar DX_ITEM_HAS_SUBMENU = ITEM_CLASS + \"-has-submenu\";\r\nvar DX_MENU_ITEM_POPOUT_CLASS = ITEM_CLASS + \"-popout\";\r\nvar DX_MENU_ITEM_POPOUT_CONTAINER_CLASS = DX_MENU_ITEM_POPOUT_CLASS + \"-container\";\r\nvar DX_MENU_ITEM_CAPTION_CLASS = ITEM_CLASS + \"-text\";\r\nvar SINGLE_SELECTION_MODE = \"single\";\r\nvar DEFAULT_DELAY = {\r\n show: 50,\r\n hide: 300\r\n};\r\nclass MenuBase extends HierarchicalCollectionWidget {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n items: [],\r\n cssClass: \"\",\r\n activeStateEnabled: true,\r\n showSubmenuMode: {\r\n name: \"onHover\",\r\n delay: {\r\n show: 50,\r\n hide: 300\r\n }\r\n },\r\n animation: {\r\n show: {\r\n type: \"fade\",\r\n from: 0,\r\n to: 1,\r\n duration: 100\r\n },\r\n hide: {\r\n type: \"fade\",\r\n from: 1,\r\n to: 0,\r\n duration: 100\r\n }\r\n },\r\n selectByClick: false,\r\n focusOnSelectedItem: false,\r\n keyExpr: null,\r\n _itemAttributes: {\r\n role: \"menuitem\"\r\n },\r\n useInkRipple: false\r\n })\r\n }\r\n _itemDataKey() {\r\n return \"dxMenuItemDataKey\"\r\n }\r\n _itemClass() {\r\n return ITEM_CLASS\r\n }\r\n _setAriaSelected() {}\r\n _selectedItemClass() {\r\n return DX_MENU_SELECTED_ITEM_CLASS\r\n }\r\n _widgetClass() {\r\n return DX_MENU_BASE_CLASS\r\n }\r\n _focusTarget() {\r\n return this._itemContainer()\r\n }\r\n _clean() {\r\n this.option(\"focusedElement\", null);\r\n super._clean()\r\n }\r\n _supportedKeys() {\r\n return extend(super._supportedKeys(), {\r\n space: () => {\r\n var $item = $(this.option(\"focusedElement\"));\r\n if (!$item.length || !this._isSelectionEnabled()) {\r\n return\r\n }\r\n this.selectItem($item[0])\r\n },\r\n pageUp: noop,\r\n pageDown: noop\r\n })\r\n }\r\n _isSelectionEnabled() {\r\n return this.option(\"selectionMode\") === SINGLE_SELECTION_MODE\r\n }\r\n _init() {\r\n this._activeStateUnit = \".\".concat(ITEM_CLASS);\r\n super._init();\r\n this._renderSelectedItem();\r\n this._initActions()\r\n }\r\n _getTextContainer(itemData) {\r\n var itemText = itemData.text;\r\n var $itemContainer = $(\"\").addClass(DX_MENU_ITEM_CAPTION_CLASS);\r\n var itemContent = isPlainObject(itemData) ? itemText : String(itemData);\r\n return itemText && $itemContainer.text(itemContent)\r\n }\r\n _getPopoutContainer(itemData) {\r\n var items = itemData.items;\r\n var $popOutContainer;\r\n if (items && items.length) {\r\n var $popOutImage = $(\"
\").addClass(DX_MENU_ITEM_POPOUT_CLASS);\r\n $popOutContainer = $(\"\").addClass(DX_MENU_ITEM_POPOUT_CONTAINER_CLASS).append($popOutImage)\r\n }\r\n return $popOutContainer\r\n }\r\n _getDataAdapterOptions() {\r\n return {\r\n rootValue: 0,\r\n multipleSelection: false,\r\n recursiveSelection: false,\r\n recursiveExpansion: false,\r\n searchValue: \"\"\r\n }\r\n }\r\n _selectByItem(selectedItem) {\r\n if (!selectedItem) {\r\n return\r\n }\r\n var nodeToSelect = this._dataAdapter.getNodeByItem(selectedItem);\r\n this._dataAdapter.toggleSelection(nodeToSelect.internalFields.key, true)\r\n }\r\n _renderSelectedItem() {\r\n var selectedKeys = this._dataAdapter.getSelectedNodesKeys();\r\n var selectedKey = selectedKeys.length && selectedKeys[0];\r\n var selectedItem = this.option(\"selectedItem\");\r\n if (!selectedKey) {\r\n this._selectByItem(selectedItem);\r\n return\r\n }\r\n var node = this._dataAdapter.getNodeByKey(selectedKey);\r\n if (false === node.selectable) {\r\n return\r\n }\r\n if (!selectedItem) {\r\n this.option(\"selectedItem\", node.internalFields.item);\r\n return\r\n }\r\n if (selectedItem !== node.internalFields.item) {\r\n this._dataAdapter.toggleSelection(selectedKey, false);\r\n this._selectByItem(selectedItem)\r\n }\r\n }\r\n _initActions() {}\r\n _initMarkup() {\r\n super._initMarkup();\r\n this.option(\"useInkRipple\") && this._renderInkRipple()\r\n }\r\n _renderInkRipple() {\r\n this._inkRipple = render()\r\n }\r\n _toggleActiveState($element, value, e) {\r\n super._toggleActiveState.apply(this, arguments);\r\n if (!this._inkRipple) {\r\n return\r\n }\r\n var config = {\r\n element: $element,\r\n event: e\r\n };\r\n if (value) {\r\n this._inkRipple.showWave(config)\r\n } else {\r\n this._inkRipple.hideWave(config)\r\n }\r\n }\r\n _getShowSubmenuMode() {\r\n var optionValue = this.option(\"showSubmenuMode\");\r\n optionValue = isObject(optionValue) ? optionValue.name : optionValue;\r\n return this._isDesktopDevice() ? optionValue : \"onClick\"\r\n }\r\n _initSelectedItems() {}\r\n _isDesktopDevice() {\r\n return \"desktop\" === devices.real().deviceType\r\n }\r\n _initEditStrategy() {\r\n var Strategy = MenuBaseEditStrategy;\r\n this._editStrategy = new Strategy(this)\r\n }\r\n _addCustomCssClass($element) {\r\n $element.addClass(this.option(\"cssClass\"))\r\n }\r\n _itemWrapperSelector() {\r\n return \".\".concat(DX_MENU_ITEM_WRAPPER_CLASS)\r\n }\r\n _hoverStartHandler(e) {\r\n var $itemElement = this._getItemElementByEventArgs(e);\r\n if (!$itemElement || this._isItemDisabled($itemElement)) {\r\n return\r\n }\r\n e.stopPropagation();\r\n if (\"onHover\" === this._getShowSubmenuMode()) {\r\n clearTimeout(this._showSubmenusTimeout);\r\n this._showSubmenusTimeout = setTimeout(this._showSubmenu.bind(this, $itemElement), this._getSubmenuDelay(\"show\"))\r\n }\r\n }\r\n _getAvailableItems($itemElements) {\r\n return super._getAvailableItems($itemElements).filter((function() {\r\n return \"hidden\" !== $(this).css(\"visibility\")\r\n }))\r\n }\r\n _isItemDisabled($item) {\r\n return this._disabledGetter($item.data(this._itemDataKey()))\r\n }\r\n _showSubmenu($itemElement) {\r\n this._addExpandedClass($itemElement)\r\n }\r\n _addExpandedClass(itemElement) {\r\n $(itemElement).addClass(DX_MENU_ITEM_EXPANDED_CLASS)\r\n }\r\n _getSubmenuDelay(action) {\r\n var {\r\n delay: delay\r\n } = this.option(\"showSubmenuMode\");\r\n if (!isDefined(delay)) {\r\n return DEFAULT_DELAY[action]\r\n }\r\n return isObject(delay) ? delay[action] : delay\r\n }\r\n _getItemElementByEventArgs(eventArgs) {\r\n var $target = $(eventArgs.target);\r\n if ($target.hasClass(this._itemClass()) || $target.get(0) === eventArgs.currentTarget) {\r\n return $target\r\n }\r\n while (!$target.hasClass(this._itemClass())) {\r\n $target = $target.parent();\r\n if ($target.hasClass(\"dx-submenu\")) {\r\n return null\r\n }\r\n }\r\n return $target\r\n }\r\n _hoverEndHandler() {\r\n clearTimeout(this._showSubmenusTimeout)\r\n }\r\n _hasSubmenu(node) {\r\n return node && node.internalFields.childrenKeys.length\r\n }\r\n _renderContentImpl() {\r\n this._renderItems(this._dataAdapter.getRootNodes())\r\n }\r\n _renderItems(nodes, submenuContainer) {\r\n if (nodes.length) {\r\n this.hasIcons = false;\r\n var $nodeContainer = this._renderContainer(this.$element(), submenuContainer);\r\n var firstVisibleIndex = -1;\r\n var nextGroupFirstIndex = -1;\r\n each(nodes, (index, node) => {\r\n var isVisibleNode = false !== node.visible;\r\n if (isVisibleNode && firstVisibleIndex < 0) {\r\n firstVisibleIndex = index\r\n }\r\n var isBeginGroup = firstVisibleIndex < index && (node.beginGroup || index === nextGroupFirstIndex);\r\n if (isBeginGroup) {\r\n nextGroupFirstIndex = isVisibleNode ? index : index + 1\r\n }\r\n if (index === nextGroupFirstIndex && firstVisibleIndex < index) {\r\n this._renderSeparator($nodeContainer)\r\n }\r\n this._renderItem(index, node, $nodeContainer)\r\n });\r\n if (!this.hasIcons) {\r\n $nodeContainer.addClass(DX_MENU_NO_ICONS_CLASS)\r\n }\r\n }\r\n }\r\n _renderContainer($wrapper) {\r\n var $container = $(\"
    \");\r\n this.setAria(\"role\", \"none\", $container);\r\n return $container.appendTo($wrapper).addClass(DX_MENU_ITEMS_CONTAINER_CLASS)\r\n }\r\n _createDOMElement($nodeContainer) {\r\n var $node = $(\"
  • \");\r\n this.setAria(\"role\", \"none\", $node);\r\n return $node.appendTo($nodeContainer).addClass(DX_MENU_ITEM_WRAPPER_CLASS)\r\n }\r\n _renderItem(index, node, $nodeContainer, $nodeElement) {\r\n var items = this.option(\"items\");\r\n var $node = $nodeElement || this._createDOMElement($nodeContainer);\r\n if (items[index + 1] && items[index + 1].beginGroup) {\r\n $node.addClass(DX_MENU_ITEM_LAST_GROUP_ITEM)\r\n }\r\n var $itemFrame = super._renderItem(index, node.internalFields.item, $node);\r\n if (node.internalFields.item === this.option(\"selectedItem\")) {\r\n $itemFrame.addClass(DX_MENU_SELECTED_ITEM_CLASS)\r\n }\r\n $itemFrame.attr(\"tabIndex\", -1);\r\n if (this._hasSubmenu(node)) {\r\n this.setAria(\"haspopup\", \"true\", $itemFrame)\r\n }\r\n }\r\n _renderItemFrame(index, itemData, $itemContainer) {\r\n var $itemFrame = $itemContainer.children(\".\".concat(ITEM_CLASS));\r\n return $itemFrame.length ? $itemFrame : super._renderItemFrame.apply(this, arguments)\r\n }\r\n _refreshItem($item, item) {\r\n var node = this._dataAdapter.getNodeByItem(item);\r\n var index = $item.data(this._itemIndexKey());\r\n var $nodeContainer = $item.closest(\"ul\");\r\n var $nodeElement = $item.closest(\"li\");\r\n this._renderItem(index, node, $nodeContainer, $nodeElement)\r\n }\r\n _addContentClasses(itemData, $itemFrame) {\r\n var hasText = itemData.text ? !!itemData.text.length : false;\r\n var hasIcon = !!itemData.icon;\r\n var hasSubmenu = itemData.items ? !!itemData.items.length : false;\r\n $itemFrame.toggleClass(DX_ITEM_HAS_TEXT, hasText);\r\n $itemFrame.toggleClass(DX_ITEM_HAS_ICON, hasIcon);\r\n if (!this.hasIcons) {\r\n this.hasIcons = hasIcon\r\n }\r\n $itemFrame.toggleClass(DX_ITEM_HAS_SUBMENU, hasSubmenu)\r\n }\r\n _getItemContent($itemFrame) {\r\n var $itemContent = super._getItemContent($itemFrame);\r\n if (!$itemContent.length) {\r\n $itemContent = $itemFrame.children(\".\".concat(DX_ITEM_CONTENT_CLASS))\r\n }\r\n return $itemContent\r\n }\r\n _postprocessRenderItem(args) {\r\n var $itemElement = $(args.itemElement);\r\n var selectedIndex = this._dataAdapter.getSelectedNodesKeys();\r\n if (!selectedIndex.length || !this._selectedGetter(args.itemData) || !this._isItemSelectable(args.itemData)) {\r\n this._setAriaSelected($itemElement, \"false\");\r\n return\r\n }\r\n var node = this._dataAdapter.getNodeByItem(args.itemData);\r\n if (node.internalFields.key === selectedIndex[0]) {\r\n $itemElement.addClass(this._selectedItemClass());\r\n this._setAriaSelected($itemElement, \"true\")\r\n } else {\r\n this._setAriaSelected($itemElement, \"false\")\r\n }\r\n }\r\n _isItemSelectable(item) {\r\n return false !== item.selectable\r\n }\r\n _renderSeparator($itemsContainer) {\r\n $(\"
  • \").appendTo($itemsContainer).addClass(DX_MENU_SEPARATOR_CLASS)\r\n }\r\n _itemClickHandler(e) {\r\n if (e._skipHandling) {\r\n return\r\n }\r\n var itemClickActionHandler = this._createAction(this._updateSubmenuVisibilityOnClick.bind(this));\r\n this._itemDXEventHandler(e, \"onItemClick\", {}, {\r\n afterExecute: itemClickActionHandler.bind(this)\r\n });\r\n e._skipHandling = true\r\n }\r\n _updateSubmenuVisibilityOnClick(actionArgs) {\r\n this._updateSelectedItemOnClick(actionArgs);\r\n if (\"onClick\" === this._getShowSubmenuMode()) {\r\n this._addExpandedClass(actionArgs.args[0].itemElement)\r\n }\r\n }\r\n _updateSelectedItemOnClick(actionArgs) {\r\n var args = actionArgs.args ? actionArgs.args[0] : actionArgs;\r\n if (!this._isItemSelectionAllowed(args.itemData)) {\r\n return\r\n }\r\n var selectedItemKey = this._dataAdapter.getSelectedNodesKeys();\r\n var selectedNode = selectedItemKey.length && this._dataAdapter.getNodeByKey(selectedItemKey[0]);\r\n if (selectedNode) {\r\n this._toggleItemSelection(selectedNode, false)\r\n }\r\n if (!selectedNode || selectedNode.internalFields.item !== args.itemData) {\r\n this.selectItem(args.itemData)\r\n } else {\r\n this._fireSelectionChangeEvent(null, this.option(\"selectedItem\"));\r\n this._setOptionWithoutOptionChange(\"selectedItem\", null)\r\n }\r\n }\r\n _isItemSelectionAllowed(item) {\r\n var isSelectionByClickEnabled = this._isSelectionEnabled() && this.option(\"selectByClick\");\r\n return !this._isContainerEmpty() && isSelectionByClickEnabled && this._isItemSelectable(item) && !this._itemsGetter(item)\r\n }\r\n _isContainerEmpty() {\r\n return this._itemContainer().is(\":empty\")\r\n }\r\n _syncSelectionOptions() {\r\n return asyncNoop()\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"showSubmenuMode\":\r\n break;\r\n case \"selectedItem\":\r\n var node = this._dataAdapter.getNodeByItem(args.value);\r\n var selectedKey = this._dataAdapter.getSelectedNodesKeys()[0];\r\n if (node && node.internalFields.key !== selectedKey) {\r\n if (false === node.selectable) {\r\n break\r\n }\r\n if (selectedKey) {\r\n this._toggleItemSelection(this._dataAdapter.getNodeByKey(selectedKey), false)\r\n }\r\n this._toggleItemSelection(node, true);\r\n this._updateSelectedItems()\r\n }\r\n break;\r\n case \"cssClass\":\r\n case \"position\":\r\n case \"selectByClick\":\r\n case \"animation\":\r\n case \"useInkRipple\":\r\n this._invalidate();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _toggleItemSelection(node, value) {\r\n var itemElement = this._getElementByItem(node.internalFields.item);\r\n itemElement && $(itemElement).toggleClass(DX_MENU_SELECTED_ITEM_CLASS);\r\n this._dataAdapter.toggleSelection(node.internalFields.key, value)\r\n }\r\n _getElementByItem(itemData) {\r\n var result;\r\n each(this._itemElements(), (_, itemElement) => {\r\n if ($(itemElement).data(this._itemDataKey()) !== itemData) {\r\n return true\r\n }\r\n result = itemElement;\r\n return false\r\n });\r\n return result\r\n }\r\n _updateSelectedItems(oldSelection, newSelection) {\r\n if (oldSelection || newSelection) {\r\n this._fireSelectionChangeEvent(newSelection, oldSelection)\r\n }\r\n }\r\n _fireSelectionChangeEvent(addedSelection, removedSelection) {\r\n this._createActionByOption(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })({\r\n addedItems: [addedSelection],\r\n removedItems: [removedSelection]\r\n })\r\n }\r\n selectItem(itemElement) {\r\n var itemData = itemElement.nodeType ? this._getItemData(itemElement) : itemElement;\r\n var selectedKey = this._dataAdapter.getSelectedNodesKeys()[0];\r\n var selectedItem = this.option(\"selectedItem\");\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n if (node.internalFields.key !== selectedKey) {\r\n if (selectedKey) {\r\n this._toggleItemSelection(this._dataAdapter.getNodeByKey(selectedKey), false)\r\n }\r\n this._toggleItemSelection(node, true);\r\n this._updateSelectedItems(selectedItem, itemData);\r\n this._setOptionWithoutOptionChange(\"selectedItem\", itemData)\r\n }\r\n }\r\n unselectItem(itemElement) {\r\n var itemData = itemElement.nodeType ? this._getItemData(itemElement) : itemElement;\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n var selectedItem = this.option(\"selectedItem\");\r\n if (node.internalFields.selected) {\r\n this._toggleItemSelection(node, false);\r\n this._updateSelectedItems(selectedItem, null);\r\n this._setOptionWithoutOptionChange(\"selectedItem\", null)\r\n }\r\n }\r\n}\r\nMenuBase.ItemClass = MenuItem;\r\nexport default MenuBase;\r\n","/**\r\n * DevExtreme (esm/ui/context_menu/ui.context_menu.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Guid from \"../../core/guid\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isObject,\r\n isRenderer,\r\n isWindow,\r\n isFunction,\r\n isPlainObject,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n contains\r\n} from \"../../core/utils/dom\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n hasWindow,\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport fx from \"../../animation/fx\";\r\nimport animationPosition from \"../../animation/position\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport Overlay from \"../overlay/ui.overlay\";\r\nimport MenuBase from \"./ui.menu_base\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n name as contextMenuEventName\r\n} from \"../../events/contextmenu\";\r\nimport holdEvent from \"../../events/hold\";\r\nvar DX_MENU_CLASS = \"dx-menu\";\r\nvar DX_MENU_ITEM_CLASS = DX_MENU_CLASS + \"-item\";\r\nvar DX_MENU_ITEM_EXPANDED_CLASS = DX_MENU_ITEM_CLASS + \"-expanded\";\r\nvar DX_MENU_PHONE_CLASS = \"dx-menu-phone-overlay\";\r\nvar DX_MENU_ITEMS_CONTAINER_CLASS = DX_MENU_CLASS + \"-items-container\";\r\nvar DX_MENU_ITEM_WRAPPER_CLASS = DX_MENU_ITEM_CLASS + \"-wrapper\";\r\nvar DX_SUBMENU_CLASS = \"dx-submenu\";\r\nvar DX_CONTEXT_MENU_CLASS = \"dx-context-menu\";\r\nvar DX_HAS_CONTEXT_MENU_CLASS = \"dx-has-context-menu\";\r\nvar DX_STATE_DISABLED_CLASS = \"dx-state-disabled\";\r\nvar DX_STATE_FOCUSED_CLASS = \"dx-state-focused\";\r\nvar DX_STATE_HOVER_CLASS = \"dx-state-hover\";\r\nvar OVERLAY_CONTENT_CLASS = \"dx-overlay-content\";\r\nvar FOCUS_UP = \"up\";\r\nvar FOCUS_DOWN = \"down\";\r\nvar FOCUS_LEFT = \"left\";\r\nvar FOCUS_RIGHT = \"right\";\r\nvar FOCUS_FIRST = \"first\";\r\nvar FOCUS_LAST = \"last\";\r\nvar ACTIONS = [\"onShowing\", \"onShown\", \"onSubmenuCreated\", \"onHiding\", \"onHidden\", \"onPositioning\", \"onLeftFirstItem\", \"onLeftLastItem\", \"onCloseRootSubmenu\", \"onExpandLastSubmenu\"];\r\nvar LOCAL_SUBMENU_DIRECTIONS = [FOCUS_UP, FOCUS_DOWN, FOCUS_FIRST, FOCUS_LAST];\r\nvar DEFAULT_SHOW_EVENT = \"dxcontextmenu\";\r\nvar window = getWindow();\r\nclass ContextMenu extends MenuBase {\r\n getShowEvent(showEventOption) {\r\n var result = null;\r\n if (isObject(showEventOption)) {\r\n if (null !== showEventOption.name) {\r\n result = showEventOption.name || DEFAULT_SHOW_EVENT\r\n }\r\n } else {\r\n result = showEventOption\r\n }\r\n return result\r\n }\r\n getShowDelay(showEventOption) {\r\n return isObject(showEventOption) && showEventOption.delay\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n showEvent: DEFAULT_SHOW_EVENT,\r\n hideOnOutsideClick: true,\r\n position: {\r\n at: \"top left\",\r\n my: \"top left\"\r\n },\r\n onShowing: null,\r\n onShown: null,\r\n onSubmenuCreated: null,\r\n onHiding: null,\r\n onHidden: null,\r\n onPositioning: null,\r\n submenuDirection: \"auto\",\r\n visible: false,\r\n target: void 0,\r\n onLeftFirstItem: null,\r\n onLeftLastItem: null,\r\n onCloseRootSubmenu: null,\r\n onExpandLastSubmenu: null\r\n })\r\n }\r\n _defaultOptionsRules() {\r\n return super._defaultOptionsRules().concat([{\r\n device: () => !hasWindow(),\r\n options: {\r\n animation: null\r\n }\r\n }])\r\n }\r\n _setDeprecatedOptions() {\r\n super._setDeprecatedOptions();\r\n extend(this._deprecatedOptions, {\r\n closeOnOutsideClick: {\r\n since: \"22.2\",\r\n alias: \"hideOnOutsideClick\"\r\n }\r\n })\r\n }\r\n _initActions() {\r\n this._actions = {};\r\n each(ACTIONS, (index, action) => {\r\n this._actions[action] = this._createActionByOption(action) || noop\r\n })\r\n }\r\n _setOptionsByReference() {\r\n super._setOptionsByReference();\r\n extend(this._optionsByReference, {\r\n animation: true,\r\n selectedItem: true\r\n })\r\n }\r\n _focusInHandler() {}\r\n _itemContainer() {\r\n return this._overlay ? this._overlay.$content() : $()\r\n }\r\n _eventBindingTarget() {\r\n return this._itemContainer()\r\n }\r\n itemsContainer() {\r\n return this._overlay ? this._overlay.$content() : void 0\r\n }\r\n _supportedKeys() {\r\n return extend(super._supportedKeys(), {\r\n space: () => {\r\n var $item = $(this.option(\"focusedElement\"));\r\n this.hide();\r\n if (!$item.length || !this._isSelectionEnabled()) {\r\n return\r\n }\r\n this.selectItem($item[0])\r\n },\r\n escape: this.hide\r\n })\r\n }\r\n _getActiveItem() {\r\n var $availableItems = this._getAvailableItems();\r\n var $focusedItem = $availableItems.filter(\".\".concat(DX_STATE_FOCUSED_CLASS));\r\n var $hoveredItem = $availableItems.filter(\".\".concat(DX_STATE_HOVER_CLASS));\r\n var $hoveredItemContainer = $hoveredItem.closest(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS));\r\n if ($hoveredItemContainer.find(\".\".concat(DX_MENU_ITEM_CLASS)).index($focusedItem) >= 0) {\r\n return $focusedItem\r\n }\r\n if ($hoveredItem.length) {\r\n return $hoveredItem\r\n }\r\n return super._getActiveItem()\r\n }\r\n _moveFocus(location) {\r\n var $items = this._getItemsByLocation(location);\r\n var $oldTarget = this._getActiveItem(true);\r\n var $hoveredItem = this.itemsContainer().find(\".\".concat(DX_STATE_HOVER_CLASS));\r\n var $focusedItem = $(this.option(\"focusedElement\"));\r\n var $activeItemHighlighted = !!($focusedItem.length || $hoveredItem.length);\r\n var $newTarget;\r\n switch (location) {\r\n case FOCUS_UP:\r\n $newTarget = $activeItemHighlighted ? this._prevItem($items) : $oldTarget;\r\n this._setFocusedElement($newTarget);\r\n if ($oldTarget.is($items.first())) {\r\n this._actions.onLeftFirstItem($oldTarget)\r\n }\r\n break;\r\n case FOCUS_DOWN:\r\n $newTarget = $activeItemHighlighted ? this._nextItem($items) : $oldTarget;\r\n this._setFocusedElement($newTarget);\r\n if ($oldTarget.is($items.last())) {\r\n this._actions.onLeftLastItem($oldTarget)\r\n }\r\n break;\r\n case FOCUS_RIGHT:\r\n $newTarget = this.option(\"rtlEnabled\") ? this._hideSubmenuHandler() : this._expandSubmenuHandler($items, location);\r\n this._setFocusedElement($newTarget);\r\n break;\r\n case FOCUS_LEFT:\r\n $newTarget = this.option(\"rtlEnabled\") ? this._expandSubmenuHandler($items, location) : this._hideSubmenuHandler();\r\n this._setFocusedElement($newTarget);\r\n break;\r\n case FOCUS_FIRST:\r\n $newTarget = $items.first();\r\n this._setFocusedElement($newTarget);\r\n break;\r\n case FOCUS_LAST:\r\n $newTarget = $items.last();\r\n this._setFocusedElement($newTarget);\r\n break;\r\n default:\r\n return super._moveFocus(location)\r\n }\r\n }\r\n _setFocusedElement($element) {\r\n if ($element && 0 !== $element.length) {\r\n this.option(\"focusedElement\", getPublicElement($element))\r\n }\r\n }\r\n _getItemsByLocation(location) {\r\n var $activeItem = this._getActiveItem(true);\r\n var $items;\r\n if (LOCAL_SUBMENU_DIRECTIONS.includes(location)) {\r\n $items = $activeItem.closest(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS)).children().children()\r\n }\r\n $items = this._getAvailableItems($items);\r\n return $items\r\n }\r\n _getAriaTarget() {\r\n return this.$element()\r\n }\r\n _refreshActiveDescendant() {\r\n if (isDefined(this._overlay)) {\r\n var $target = this._overlay.$content();\r\n super._refreshActiveDescendant($target)\r\n }\r\n }\r\n _hideSubmenuHandler() {\r\n var $curItem = this._getActiveItem(true);\r\n var $parentItem = $curItem.parents(\".\".concat(DX_MENU_ITEM_EXPANDED_CLASS)).first();\r\n if ($parentItem.length) {\r\n this._hideSubmenusOnSameLevel($parentItem);\r\n this._hideSubmenu($curItem.closest(\".\".concat(DX_SUBMENU_CLASS)));\r\n return $parentItem\r\n }\r\n this._actions.onCloseRootSubmenu($curItem);\r\n return $curItem\r\n }\r\n _expandSubmenuHandler($items, location) {\r\n var $curItem = this._getActiveItem(true);\r\n var itemData = this._getItemData($curItem);\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n var isItemHasSubmenu = this._hasSubmenu(node);\r\n var $submenu = $curItem.children(\".\".concat(DX_SUBMENU_CLASS));\r\n if (isItemHasSubmenu && !$curItem.hasClass(DX_STATE_DISABLED_CLASS)) {\r\n if (!$submenu.length || \"hidden\" === $submenu.css(\"visibility\")) {\r\n this._showSubmenu($curItem)\r\n }\r\n return this._nextItem(this._getItemsByLocation(location))\r\n }\r\n this._actions.onExpandLastSubmenu($curItem);\r\n return\r\n }\r\n _clean() {\r\n if (this._overlay) {\r\n this._overlay.$element().remove();\r\n this._overlay = null\r\n }\r\n this._detachShowContextMenuEvents(this._getTarget());\r\n super._clean()\r\n }\r\n _initMarkup() {\r\n this.$element().addClass(DX_HAS_CONTEXT_MENU_CLASS);\r\n super._initMarkup()\r\n }\r\n _render() {\r\n super._render();\r\n this._renderVisibility(this.option(\"visible\"));\r\n this._addWidgetClass()\r\n }\r\n _renderContentImpl() {\r\n this._detachShowContextMenuEvents(this._getTarget());\r\n this._attachShowContextMenuEvents()\r\n }\r\n _attachKeyboardEvents() {\r\n !this._keyboardListenerId && this._focusTarget().length && super._attachKeyboardEvents()\r\n }\r\n _renderContextMenuOverlay() {\r\n if (this._overlay) {\r\n return\r\n }\r\n var overlayOptions = this._getOverlayOptions();\r\n this._overlay = this._createComponent($(\"
    \").appendTo(this._$element), Overlay, overlayOptions);\r\n var $overlayContent = this._overlay.$content();\r\n $overlayContent.addClass(DX_CONTEXT_MENU_CLASS);\r\n this._addCustomCssClass($overlayContent);\r\n this._addPlatformDependentClass($overlayContent);\r\n this._attachContextMenuEvent()\r\n }\r\n preventShowingDefaultContextMenuAboveOverlay() {\r\n var $itemContainer = this._itemContainer();\r\n var eventName = addNamespace(contextMenuEventName, this.NAME);\r\n eventsEngine.off($itemContainer, eventName, \".\".concat(DX_SUBMENU_CLASS));\r\n eventsEngine.on($itemContainer, eventName, \".\".concat(DX_SUBMENU_CLASS), (e => {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n eventsEngine.off($itemContainer, eventName, \".\".concat(DX_SUBMENU_CLASS))\r\n }).bind(this))\r\n }\r\n _itemContextMenuHandler(e) {\r\n super._itemContextMenuHandler(e);\r\n e.stopPropagation()\r\n }\r\n _addPlatformDependentClass($element) {\r\n if (devices.current().phone) {\r\n $element.addClass(DX_MENU_PHONE_CLASS)\r\n }\r\n }\r\n _detachShowContextMenuEvents(target) {\r\n var showEvent = this.getShowEvent(this.option(\"showEvent\"));\r\n if (!showEvent) {\r\n return\r\n }\r\n var eventName = addNamespace(showEvent, this.NAME);\r\n if (this._showContextMenuEventHandler) {\r\n eventsEngine.off(domAdapter.getDocument(), eventName, target, this._showContextMenuEventHandler)\r\n } else {\r\n eventsEngine.off($(target), eventName)\r\n }\r\n }\r\n _attachShowContextMenuEvents() {\r\n var target = this._getTarget();\r\n var showEvent = this.getShowEvent(this.option(\"showEvent\"));\r\n if (!showEvent) {\r\n return\r\n }\r\n var eventName = addNamespace(showEvent, this.NAME);\r\n var contextMenuAction = this._createAction(e => {\r\n var delay = this.getShowDelay(this.option(\"showEvent\"));\r\n if (delay) {\r\n setTimeout(() => this._show(e.event), delay)\r\n } else {\r\n this._show(e.event)\r\n }\r\n }, {\r\n validatingTargetName: \"target\"\r\n });\r\n var handler = e => contextMenuAction({\r\n event: e,\r\n target: $(e.currentTarget)\r\n });\r\n contextMenuAction = this._createAction(contextMenuAction);\r\n if (isRenderer(target) || target.nodeType || isWindow(target)) {\r\n this._showContextMenuEventHandler = void 0;\r\n eventsEngine.on(target, eventName, handler)\r\n } else {\r\n this._showContextMenuEventHandler = handler;\r\n eventsEngine.on(domAdapter.getDocument(), eventName, target, this._showContextMenuEventHandler)\r\n }\r\n }\r\n _hoverEndHandler(e) {\r\n super._hoverEndHandler(e);\r\n e.stopPropagation()\r\n }\r\n _renderDimensions() {}\r\n _renderContainer($wrapper, submenuContainer) {\r\n var $holder = submenuContainer || this._itemContainer();\r\n $wrapper = $(\"
    \");\r\n $wrapper.appendTo($holder).addClass(DX_SUBMENU_CLASS).css(\"visibility\", submenuContainer ? \"hidden\" : \"visible\");\r\n if (!$wrapper.parent().hasClass(OVERLAY_CONTENT_CLASS)) {\r\n this._addCustomCssClass($wrapper)\r\n }\r\n var $itemsContainer = super._renderContainer($wrapper);\r\n if (submenuContainer) {\r\n return $itemsContainer\r\n }\r\n if (this.option(\"width\")) {\r\n return $itemsContainer.css(\"minWidth\", this.option(\"width\"))\r\n }\r\n if (this.option(\"height\")) {\r\n return $itemsContainer.css(\"minHeight\", this.option(\"height\"))\r\n }\r\n return $itemsContainer\r\n }\r\n _renderSubmenuItems(node, $itemFrame) {\r\n this._renderItems(this._getChildNodes(node), $itemFrame);\r\n this._actions.onSubmenuCreated({\r\n itemElement: getPublicElement($itemFrame),\r\n itemData: node.internalFields.item,\r\n submenuElement: getPublicElement($itemFrame.children(\".\".concat(DX_SUBMENU_CLASS)))\r\n })\r\n }\r\n _getOverlayOptions() {\r\n var position = this.option(\"position\");\r\n var overlayOptions = {\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n animation: this.option(\"animation\"),\r\n innerOverlay: true,\r\n hideOnOutsideClick: e => this._hideOnOutsideClickHandler(e),\r\n propagateOutsideClick: true,\r\n hideOnParentScroll: true,\r\n deferRendering: false,\r\n position: {\r\n at: position.at,\r\n my: position.my,\r\n of: this._getTarget(),\r\n collision: \"flipfit\"\r\n },\r\n shading: false,\r\n showTitle: false,\r\n height: \"auto\",\r\n width: \"auto\",\r\n onShown: this._overlayShownActionHandler.bind(this),\r\n onHiding: this._overlayHidingActionHandler.bind(this),\r\n onHidden: this._overlayHiddenActionHandler.bind(this),\r\n visualContainer: window\r\n };\r\n return overlayOptions\r\n }\r\n _overlayShownActionHandler(arg) {\r\n this._actions.onShown(arg)\r\n }\r\n _overlayHidingActionHandler(arg) {\r\n this._actions.onHiding(arg);\r\n if (!arg.cancel) {\r\n this._hideAllShownSubmenus();\r\n this._setOptionWithoutOptionChange(\"visible\", false)\r\n }\r\n }\r\n _overlayHiddenActionHandler(arg) {\r\n this._actions.onHidden(arg)\r\n }\r\n _shouldHideOnOutsideClick(e) {\r\n var {\r\n closeOnOutsideClick: closeOnOutsideClick,\r\n hideOnOutsideClick: hideOnOutsideClick\r\n } = this.option();\r\n if (isFunction(hideOnOutsideClick)) {\r\n return hideOnOutsideClick(e)\r\n } else if (isFunction(closeOnOutsideClick)) {\r\n return closeOnOutsideClick(e)\r\n } else {\r\n return hideOnOutsideClick || closeOnOutsideClick\r\n }\r\n }\r\n _hideOnOutsideClickHandler(e) {\r\n if (!this._shouldHideOnOutsideClick(e)) {\r\n return false\r\n }\r\n if (domAdapter.isDocument(e.target)) {\r\n return true\r\n }\r\n var $activeItemContainer = this._getActiveItemsContainer(e.target);\r\n var $itemContainers = this._getItemsContainers();\r\n var $clickedItem = this._searchActiveItem(e.target);\r\n var $rootItem = this.$element().parents(\".\".concat(DX_MENU_ITEM_CLASS));\r\n var isRootItemClicked = $clickedItem[0] === $rootItem[0] && $clickedItem.length && $rootItem.length;\r\n var isInnerOverlayClicked = this._isIncludeOverlay($activeItemContainer, $itemContainers) && $clickedItem.length;\r\n if (isInnerOverlayClicked || isRootItemClicked) {\r\n if (\"onClick\" === this._getShowSubmenuMode()) {\r\n this._hideAllShownChildSubmenus($clickedItem)\r\n }\r\n return false\r\n }\r\n return true\r\n }\r\n _getActiveItemsContainer(target) {\r\n return $(target).closest(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS))\r\n }\r\n _getItemsContainers() {\r\n return this._overlay.$content().find(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS))\r\n }\r\n _searchActiveItem(target) {\r\n return $(target).closest(\".\".concat(DX_MENU_ITEM_CLASS)).eq(0)\r\n }\r\n _isIncludeOverlay($activeOverlay, $allOverlays) {\r\n var isSame = false;\r\n each($allOverlays, (index, $overlay) => {\r\n if ($activeOverlay.is($overlay) && !isSame) {\r\n isSame = true\r\n }\r\n });\r\n return isSame\r\n }\r\n _hideAllShownChildSubmenus($clickedItem) {\r\n var $submenuElements = $clickedItem.find(\".\".concat(DX_SUBMENU_CLASS));\r\n var shownSubmenus = extend([], this._shownSubmenus);\r\n if ($submenuElements.length > 0) {\r\n each(shownSubmenus, (index, $submenu) => {\r\n var $context = this._searchActiveItem($submenu.context).parent();\r\n if ($context.parent().is($clickedItem.parent().parent()) && !$context.is($clickedItem.parent())) {\r\n this._hideSubmenu($submenu)\r\n }\r\n })\r\n }\r\n }\r\n _showSubmenu($item) {\r\n var node = this._dataAdapter.getNodeByItem(this._getItemData($item));\r\n this._hideSubmenusOnSameLevel($item);\r\n if (!this._hasSubmenu(node)) {\r\n return\r\n }\r\n var $submenu = $item.children(\".\".concat(DX_SUBMENU_CLASS));\r\n var isSubmenuRendered = $submenu.length;\r\n super._showSubmenu($item);\r\n if (!isSubmenuRendered) {\r\n this._renderSubmenuItems(node, $item)\r\n }\r\n if (!this._isSubmenuVisible($submenu)) {\r\n this._drawSubmenu($item)\r\n }\r\n }\r\n _hideSubmenusOnSameLevel($item) {\r\n var $expandedItems = $item.parent(\".\".concat(DX_MENU_ITEM_WRAPPER_CLASS)).siblings().find(\".\".concat(DX_MENU_ITEM_EXPANDED_CLASS));\r\n if ($expandedItems.length) {\r\n $expandedItems.removeClass(DX_MENU_ITEM_EXPANDED_CLASS);\r\n this._hideSubmenu($expandedItems.find(\".\".concat(DX_SUBMENU_CLASS)))\r\n }\r\n }\r\n _hideSubmenuGroup($submenu) {\r\n if (this._isSubmenuVisible($submenu)) {\r\n this._hideSubmenuCore($submenu)\r\n }\r\n }\r\n _isSubmenuVisible($submenu) {\r\n return \"visible\" === $submenu.css(\"visibility\")\r\n }\r\n _drawSubmenu($itemElement) {\r\n var animation = this.option(\"animation\") ? this.option(\"animation\").show : {};\r\n var $submenu = $itemElement.children(\".\".concat(DX_SUBMENU_CLASS));\r\n var submenuPosition = this._getSubmenuPosition($itemElement);\r\n if (this._overlay && this._overlay.option(\"visible\")) {\r\n if (!isDefined(this._shownSubmenus)) {\r\n this._shownSubmenus = []\r\n }\r\n if (!this._shownSubmenus.includes($submenu)) {\r\n this._shownSubmenus.push($submenu)\r\n }\r\n if (animation) {\r\n fx.stop($submenu)\r\n }\r\n animationPosition.setup($submenu, submenuPosition);\r\n if (animation) {\r\n if (isPlainObject(animation.to)) {\r\n animation.to.position = submenuPosition\r\n }\r\n this._animate($submenu, animation)\r\n }\r\n $submenu.css(\"visibility\", \"visible\")\r\n }\r\n }\r\n _animate($container, options) {\r\n fx.animate($container, options)\r\n }\r\n _getSubmenuPosition($rootItem) {\r\n var submenuDirection = this.option(\"submenuDirection\").toLowerCase();\r\n var $rootItemWrapper = $rootItem.parent(\".\".concat(DX_MENU_ITEM_WRAPPER_CLASS));\r\n var position = {\r\n collision: \"flip\",\r\n of: $rootItemWrapper,\r\n offset: {\r\n h: 0,\r\n v: -1\r\n }\r\n };\r\n switch (submenuDirection) {\r\n case \"left\":\r\n position.at = \"left top\";\r\n position.my = \"right top\";\r\n break;\r\n case \"right\":\r\n position.at = \"right top\";\r\n position.my = \"left top\";\r\n break;\r\n default:\r\n if (this.option(\"rtlEnabled\")) {\r\n position.at = \"left top\";\r\n position.my = \"right top\"\r\n } else {\r\n position.at = \"right top\";\r\n position.my = \"left top\"\r\n }\r\n }\r\n return position\r\n }\r\n _updateSubmenuVisibilityOnClick(actionArgs) {\r\n if (!actionArgs.args.length) {\r\n return\r\n }\r\n var itemData = actionArgs.args[0].itemData;\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n if (!node) {\r\n return\r\n }\r\n var $itemElement = $(actionArgs.args[0].itemElement);\r\n var $submenu = $itemElement.find(\".\".concat(DX_SUBMENU_CLASS));\r\n var shouldRenderSubmenu = this._hasSubmenu(node) && !$submenu.length;\r\n if (shouldRenderSubmenu) {\r\n this._renderSubmenuItems(node, $itemElement);\r\n $submenu = $itemElement.find(\".\".concat(DX_SUBMENU_CLASS))\r\n }\r\n if ($itemElement.context === $submenu.context && \"visible\" === $submenu.css(\"visibility\")) {\r\n return\r\n }\r\n this._updateSelectedItemOnClick(actionArgs);\r\n var notCloseMenuOnItemClick = itemData && false === itemData.closeMenuOnClick;\r\n if (!itemData || itemData.disabled || notCloseMenuOnItemClick) {\r\n return\r\n }\r\n if (0 === $submenu.length) {\r\n var $prevSubmenu = $($itemElement.parents(\".\".concat(DX_SUBMENU_CLASS))[0]);\r\n this._hideSubmenu($prevSubmenu);\r\n if (!actionArgs.canceled && this._overlay && this._overlay.option(\"visible\")) {\r\n this.option(\"visible\", false)\r\n }\r\n } else {\r\n if (this._shownSubmenus && this._shownSubmenus.length > 0) {\r\n if (this._shownSubmenus[0].is($submenu)) {\r\n this._hideSubmenu($submenu)\r\n }\r\n }\r\n this._showSubmenu($itemElement)\r\n }\r\n }\r\n _hideSubmenu($curSubmenu) {\r\n var shownSubmenus = extend([], this._shownSubmenus);\r\n each(shownSubmenus, (index, $submenu) => {\r\n if ($curSubmenu.is($submenu) || contains($curSubmenu[0], $submenu[0])) {\r\n $submenu.parent().removeClass(DX_MENU_ITEM_EXPANDED_CLASS);\r\n this._hideSubmenuCore($submenu)\r\n }\r\n })\r\n }\r\n _hideSubmenuCore($submenu) {\r\n var index = this._shownSubmenus.indexOf($submenu);\r\n var animation = this.option(\"animation\") ? this.option(\"animation\").hide : null;\r\n if (index >= 0) {\r\n this._shownSubmenus.splice(index, 1)\r\n }\r\n this._stopAnimate($submenu);\r\n animation && this._animate($submenu, animation);\r\n $submenu.css(\"visibility\", \"hidden\")\r\n }\r\n _stopAnimate($container) {\r\n fx.stop($container, true)\r\n }\r\n _hideAllShownSubmenus() {\r\n var shownSubmenus = extend([], this._shownSubmenus);\r\n var $expandedItems = this._overlay.$content().find(\".\".concat(DX_MENU_ITEM_EXPANDED_CLASS));\r\n $expandedItems.removeClass(DX_MENU_ITEM_EXPANDED_CLASS);\r\n each(shownSubmenus, (_, $submenu) => {\r\n this._hideSubmenu($submenu)\r\n })\r\n }\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this._renderContentImpl()\r\n }\r\n }\r\n _optionChanged(args) {\r\n if (ACTIONS.includes(args.name)) {\r\n this._initActions();\r\n return\r\n }\r\n switch (args.name) {\r\n case \"visible\":\r\n this._renderVisibility(args.value);\r\n break;\r\n case \"showEvent\":\r\n case \"position\":\r\n case \"submenuDirection\":\r\n this._invalidate();\r\n break;\r\n case \"target\":\r\n args.previousValue && this._detachShowContextMenuEvents(args.previousValue);\r\n this._invalidate();\r\n break;\r\n case \"closeOnOutsideClick\":\r\n case \"hideOnOutsideClick\":\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _renderVisibility(showing) {\r\n return showing ? this._show() : this._hide()\r\n }\r\n _toggleVisibility() {}\r\n _show(event) {\r\n var args = {\r\n jQEvent: event\r\n };\r\n var promise = (new Deferred).reject().promise();\r\n this._actions.onShowing(args);\r\n if (args.cancel) {\r\n return promise\r\n }\r\n var position = this._positionContextMenu(event);\r\n if (position) {\r\n var _event$originalEvent;\r\n if (!this._overlay) {\r\n this._renderContextMenuOverlay();\r\n this._overlay.$content().addClass(this._widgetClass());\r\n this._renderFocusState();\r\n this._attachHoverEvents();\r\n this._attachClickEvent();\r\n this._renderItems(this._dataAdapter.getRootNodes())\r\n }\r\n this._setOptionWithoutOptionChange(\"visible\", true);\r\n this._overlay.option(\"position\", position);\r\n promise = this._overlay.show();\r\n event && event.stopPropagation();\r\n this._setAriaAttributes();\r\n if ((null === event || void 0 === event ? void 0 : null === (_event$originalEvent = event.originalEvent) || void 0 === _event$originalEvent ? void 0 : _event$originalEvent.type) === holdEvent.name) {\r\n this.preventShowingDefaultContextMenuAboveOverlay()\r\n }\r\n }\r\n return promise\r\n }\r\n _setAriaAttributes() {\r\n this._overlayContentId = \"dx-\".concat(new Guid);\r\n this.setAria(\"owns\", this._overlayContentId);\r\n this.setAria({\r\n id: this._overlayContentId,\r\n role: \"menu\"\r\n }, this._overlay.$content())\r\n }\r\n _cleanAriaAttributes() {\r\n this._overlay && this.setAria(\"id\", null, this._overlay.$content());\r\n this.setAria(\"owns\", void 0)\r\n }\r\n _getTarget() {\r\n return this.option(\"target\") || this.option(\"position\").of || $(domAdapter.getDocument())\r\n }\r\n _getContextMenuPosition() {\r\n return extend({}, this.option(\"position\"), {\r\n of: this._getTarget()\r\n })\r\n }\r\n _positionContextMenu(jQEvent) {\r\n var position = this._getContextMenuPosition();\r\n var isInitialPosition = this._isInitialOptionValue(\"position\");\r\n var positioningAction = this._createActionByOption(\"onPositioning\", actionArgs);\r\n if (jQEvent && jQEvent.preventDefault && isInitialPosition) {\r\n position.of = jQEvent\r\n }\r\n var actionArgs = {\r\n position: position,\r\n event: jQEvent\r\n };\r\n positioningAction(actionArgs);\r\n if (actionArgs.cancel) {\r\n position = null\r\n } else if (actionArgs.event) {\r\n actionArgs.event.cancel = true;\r\n jQEvent.preventDefault()\r\n }\r\n return position\r\n }\r\n _refresh() {\r\n if (!hasWindow()) {\r\n super._refresh()\r\n } else if (this._overlay) {\r\n var lastPosition = this._overlay.option(\"position\");\r\n super._refresh();\r\n this._overlay && this._overlay.option(\"position\", lastPosition)\r\n } else {\r\n super._refresh()\r\n }\r\n }\r\n _hide() {\r\n var promise;\r\n if (this._overlay) {\r\n promise = this._overlay.hide();\r\n this._setOptionWithoutOptionChange(\"visible\", false)\r\n }\r\n this._cleanAriaAttributes();\r\n this.option(\"focusedElement\", null);\r\n return promise || (new Deferred).reject().promise()\r\n }\r\n toggle(showing) {\r\n var visible = this.option(\"visible\");\r\n showing = void 0 === showing ? !visible : showing;\r\n return this._renderVisibility(showing)\r\n }\r\n show() {\r\n return this.toggle(true)\r\n }\r\n hide() {\r\n return this.toggle(false)\r\n }\r\n}\r\nregisterComponent(\"dxContextMenu\", ContextMenu);\r\nexport default ContextMenu;\r\n","/**\r\n * DevExtreme (esm/ui/context_menu.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ContextMenu from \"./context_menu/ui.context_menu\";\r\nexport default ContextMenu;\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.context_menu.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport ContextMenu from \"../context_menu\";\r\nvar CONTEXT_MENU = \"dx-context-menu\";\r\nvar viewName = {\r\n columnHeadersView: \"header\",\r\n rowsView: \"content\",\r\n footerView: \"footer\",\r\n headerPanel: \"headerPanel\"\r\n};\r\nvar VIEW_NAMES = [\"columnHeadersView\", \"rowsView\", \"footerView\", \"headerPanel\"];\r\nvar ContextMenuController = modules.ViewController.inherit({\r\n init: function() {\r\n this.createAction(\"onContextMenuPreparing\")\r\n },\r\n getContextMenuItems: function(dxEvent) {\r\n if (!dxEvent) {\r\n return false\r\n }\r\n var that = this;\r\n var $targetElement = $(dxEvent.target);\r\n var $element;\r\n var $targetRowElement;\r\n var $targetCellElement;\r\n var menuItems;\r\n each(VIEW_NAMES, (function() {\r\n var view = that.getView(this);\r\n $element = view && view.element();\r\n if ($element && ($element.is($targetElement) || $element.find($targetElement).length)) {\r\n var _rowOptions$cells, _rowOptions$cells$col;\r\n $targetCellElement = $targetElement.closest(\".dx-row > td, .dx-row > tr\");\r\n $targetRowElement = $targetCellElement.parent();\r\n var rowIndex = view.getRowIndex($targetRowElement);\r\n var columnIndex = $targetCellElement[0] && $targetCellElement[0].cellIndex;\r\n var rowOptions = $targetRowElement.data(\"options\");\r\n var options = {\r\n event: dxEvent,\r\n targetElement: getPublicElement($targetElement),\r\n target: viewName[this],\r\n rowIndex: rowIndex,\r\n row: view._getRows()[rowIndex],\r\n columnIndex: columnIndex,\r\n column: null === rowOptions || void 0 === rowOptions ? void 0 : null === (_rowOptions$cells = rowOptions.cells) || void 0 === _rowOptions$cells ? void 0 : null === (_rowOptions$cells$col = _rowOptions$cells[columnIndex]) || void 0 === _rowOptions$cells$col ? void 0 : _rowOptions$cells$col.column\r\n };\r\n options.items = view.getContextMenuItems && view.getContextMenuItems(options);\r\n that.executeAction(\"onContextMenuPreparing\", options);\r\n that._contextMenuPrepared(options);\r\n menuItems = options.items;\r\n if (menuItems) {\r\n return false\r\n }\r\n }\r\n }));\r\n return menuItems\r\n },\r\n _contextMenuPrepared: noop\r\n});\r\nvar ContextMenuView = modules.View.inherit({\r\n _renderCore: function() {\r\n var that = this;\r\n var $element = that.element().addClass(CONTEXT_MENU);\r\n this.setAria(\"role\", \"presentation\", $element);\r\n this._createComponent($element, ContextMenu, {\r\n onPositioning: function(actionArgs) {\r\n var event = actionArgs.event;\r\n var contextMenuInstance = actionArgs.component;\r\n var items = that.getController(\"contextMenu\").getContextMenuItems(event);\r\n if (items) {\r\n contextMenuInstance.option(\"items\", items);\r\n event.stopPropagation()\r\n } else {\r\n actionArgs.cancel = true\r\n }\r\n },\r\n onItemClick: function(params) {\r\n params.itemData.onItemClick && params.itemData.onItemClick(params)\r\n },\r\n cssClass: that.getWidgetContainerClass(),\r\n target: that.component.$element()\r\n })\r\n }\r\n});\r\nexport var contextMenuModule = {\r\n defaultOptions: function() {\r\n return {\r\n onContextMenuPreparing: null\r\n }\r\n },\r\n controllers: {\r\n contextMenu: ContextMenuController\r\n },\r\n views: {\r\n contextMenuView: ContextMenuView\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.context_menu.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport treeListCore from \"./ui.data_grid.core\";\r\nimport {\r\n contextMenuModule\r\n} from \"../grid_core/ui.grid_core.context_menu\";\r\ntreeListCore.registerModule(\"contextMenu\", contextMenuModule);\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.error_handling.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nvar ERROR_ROW_CLASS = \"dx-error-row\";\r\nvar ERROR_MESSAGE_CLASS = \"dx-error-message\";\r\nvar ERROR_CLOSEBUTTON_CLASS = \"dx-closebutton\";\r\nvar ACTION_CLASS = \"action\";\r\nvar ErrorHandlingController = modules.ViewController.inherit({\r\n init: function() {\r\n this._columnHeadersView = this.getView(\"columnHeadersView\");\r\n this._rowsView = this.getView(\"rowsView\")\r\n },\r\n _createErrorRow: function(error, $tableElements) {\r\n var that = this;\r\n var $errorRow;\r\n var $closeButton;\r\n var $errorMessage = this._renderErrorMessage(error);\r\n if ($tableElements) {\r\n $errorRow = $(\"
\").addClass(ERROR_ROW_CLASS);\r\n $closeButton = $(\"
\").addClass(ERROR_CLOSEBUTTON_CLASS).addClass(that.addWidgetPrefix(ACTION_CLASS));\r\n eventsEngine.on($closeButton, clickEventName, that.createAction((function(args) {\r\n var e = args.event;\r\n var $errorRow;\r\n var errorRowIndex = $(e.currentTarget).closest(\".\" + ERROR_ROW_CLASS).index();\r\n e.stopPropagation();\r\n each($tableElements, (function(_, tableElement) {\r\n $errorRow = $(tableElement).children(\"tbody\").children(\"tr\").eq(errorRowIndex);\r\n that.removeErrorRow($errorRow)\r\n }));\r\n that.getController(\"resizing\") && that.getController(\"resizing\").fireContentReadyAction()\r\n })));\r\n $(\"
\").attr({\r\n colSpan: that.getController(\"columns\").getVisibleColumns().length,\r\n role: \"presentation\"\r\n }).prepend($closeButton).append($errorMessage).appendTo($errorRow);\r\n return $errorRow\r\n }\r\n return $errorMessage\r\n },\r\n _renderErrorMessage: function(error) {\r\n var message = error.url ? error.message.replace(error.url, \"\") : error.message || error;\r\n var $message = $(\"
\").addClass(ERROR_MESSAGE_CLASS).text(message);\r\n if (error.url) {\r\n $(\"\").attr(\"href\", error.url).text(error.url).appendTo($message)\r\n }\r\n return $message\r\n },\r\n renderErrorRow: function(error, rowIndex, $popupContent) {\r\n var that = this;\r\n var $errorMessageElement;\r\n var $firstErrorRow;\r\n if ($popupContent) {\r\n $popupContent.find(\".\" + ERROR_MESSAGE_CLASS).remove();\r\n $errorMessageElement = that._createErrorRow(error);\r\n $popupContent.prepend($errorMessageElement);\r\n return $errorMessageElement\r\n }\r\n var viewElement = rowIndex >= 0 || !that._columnHeadersView.isVisible() ? that._rowsView : that._columnHeadersView;\r\n var $tableElements = viewElement.getTableElements();\r\n each($tableElements, (function(_, tableElement) {\r\n $errorMessageElement = that._createErrorRow(error, $tableElements);\r\n $firstErrorRow = $firstErrorRow || $errorMessageElement;\r\n if (rowIndex >= 0) {\r\n var $row = viewElement._getRowElements($(tableElement)).eq(rowIndex);\r\n that.removeErrorRow($row.next());\r\n $errorMessageElement.insertAfter($row)\r\n } else {\r\n var $tbody = $(tableElement).children(\"tbody\");\r\n var rowElements = $tbody.children(\"tr\");\r\n if (that._columnHeadersView.isVisible()) {\r\n that.removeErrorRow(rowElements.last());\r\n $(tableElement).append($errorMessageElement)\r\n } else {\r\n that.removeErrorRow(rowElements.first());\r\n $tbody.first().prepend($errorMessageElement)\r\n }\r\n }\r\n }));\r\n var resizingController = that.getController(\"resizing\");\r\n resizingController && resizingController.fireContentReadyAction();\r\n return $firstErrorRow\r\n },\r\n removeErrorRow: function($row) {\r\n if (!$row) {\r\n var $columnHeaders = this._columnHeadersView && this._columnHeadersView.element();\r\n $row = $columnHeaders && $columnHeaders.find(\".\" + ERROR_ROW_CLASS);\r\n if (!$row || !$row.length) {\r\n var $rowsViewElement = this._rowsView.element();\r\n $row = $rowsViewElement && $rowsViewElement.find(\".\" + ERROR_ROW_CLASS)\r\n }\r\n }\r\n $row && $row.hasClass(ERROR_ROW_CLASS) && $row.remove()\r\n },\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"errorRowEnabled\":\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport var errorHandlingModule = {\r\n defaultOptions: function() {\r\n return {\r\n errorRowEnabled: true\r\n }\r\n },\r\n controllers: {\r\n errorHandling: ErrorHandlingController\r\n },\r\n extenders: {\r\n controllers: {\r\n data: {\r\n init: function() {\r\n var that = this;\r\n var errorHandlingController = that.getController(\"errorHandling\");\r\n that.callBase();\r\n that.dataErrorOccurred.add((function(error, $popupContent) {\r\n if (that.option(\"errorRowEnabled\")) {\r\n errorHandlingController.renderErrorRow(error, void 0, $popupContent)\r\n }\r\n }));\r\n that.changed.add((function(e) {\r\n if (e && \"loadError\" === e.changeType) {\r\n return\r\n }\r\n var errorHandlingController = that.getController(\"errorHandling\");\r\n var editingController = that.getController(\"editing\");\r\n if (editingController && !editingController.hasChanges()) {\r\n errorHandlingController && errorHandlingController.removeErrorRow()\r\n }\r\n }))\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.error_handling.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n errorHandlingModule\r\n} from \"../grid_core/ui.grid_core.error_handling\";\r\ngridCore.registerModule(\"errorHandling\", errorHandlingModule);\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.grid_view.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth,\r\n getInnerWidth,\r\n getWidth,\r\n getHeight,\r\n setHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport {\r\n deferRender,\r\n deferUpdate\r\n} from \"../../core/utils/common\";\r\nimport {\r\n hasWindow,\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isString,\r\n isDefined,\r\n isNumeric\r\n} from \"../../core/utils/type\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport * as accessibility from \"../shared/accessibility\";\r\nimport browser from \"../../core/utils/browser\";\r\nvar BORDERS_CLASS = \"borders\";\r\nvar TABLE_FIXED_CLASS = \"table-fixed\";\r\nvar IMPORTANT_MARGIN_CLASS = \"important-margin\";\r\nvar GRIDBASE_CONTAINER_CLASS = \"dx-gridbase-container\";\r\nvar HIDDEN_COLUMNS_WIDTH = \"adaptiveHidden\";\r\nvar VIEW_NAMES = [\"columnsSeparatorView\", \"blockSeparatorView\", \"trackerView\", \"headerPanel\", \"columnHeadersView\", \"rowsView\", \"footerView\", \"columnChooserView\", \"filterPanelView\", \"pagerView\", \"draggingHeaderView\", \"contextMenuView\", \"errorView\", \"headerFilterView\", \"filterBuilderView\"];\r\nvar isPercentWidth = function(width) {\r\n return isString(width) && \"%\" === width.slice(-1)\r\n};\r\nvar isPixelWidth = function(width) {\r\n return isString(width) && \"px\" === width.slice(-2)\r\n};\r\nvar getContainerHeight = function($container) {\r\n var clientHeight = $container.get(0).clientHeight;\r\n var paddingTop = parseFloat($container.css(\"paddingTop\"));\r\n var paddingBottom = parseFloat($container.css(\"paddingBottom\"));\r\n return clientHeight - paddingTop - paddingBottom\r\n};\r\nvar calculateFreeWidth = function(that, widths) {\r\n var contentWidth = that._rowsView.contentWidth();\r\n var totalWidth = that._getTotalWidth(widths, contentWidth);\r\n return contentWidth - totalWidth\r\n};\r\nvar calculateFreeWidthWithCurrentMinWidth = function(that, columnIndex, currentMinWidth, widths) {\r\n return calculateFreeWidth(that, widths.map((function(width, index) {\r\n return index === columnIndex ? currentMinWidth : width\r\n })))\r\n};\r\nvar restoreFocus = function(focusedElement, selectionRange) {\r\n accessibility.hiddenFocus(focusedElement);\r\n gridCoreUtils.setSelectionRange(focusedElement, selectionRange)\r\n};\r\nvar ResizingController = modules.ViewController.inherit({\r\n _initPostRenderHandlers: function() {\r\n var dataController = this._dataController;\r\n if (!this._refreshSizesHandler) {\r\n this._refreshSizesHandler = e => {\r\n dataController.changed.remove(this._refreshSizesHandler);\r\n var templateDeferreds = e && e.templateDeferreds || [];\r\n when.apply(this, templateDeferreds).done(() => {\r\n this._refreshSizes(e)\r\n })\r\n };\r\n dataController.changed.add(() => {\r\n dataController.changed.add(this._refreshSizesHandler)\r\n })\r\n }\r\n },\r\n _refreshSizes: function(e) {\r\n var resizeDeferred;\r\n var that = this;\r\n var changeType = e && e.changeType;\r\n var isDelayed = e && e.isDelayed;\r\n var items = that._dataController.items();\r\n if (!e || \"refresh\" === changeType || \"prepend\" === changeType || \"append\" === changeType) {\r\n if (!isDelayed) {\r\n resizeDeferred = that.resize()\r\n }\r\n } else if (\"update\" === changeType) {\r\n var _e$changeTypes;\r\n if (0 === (null === (_e$changeTypes = e.changeTypes) || void 0 === _e$changeTypes ? void 0 : _e$changeTypes.length)) {\r\n return\r\n }\r\n if ((items.length > 1 || \"insert\" !== e.changeTypes[0]) && !(0 === items.length && \"remove\" === e.changeTypes[0]) && !e.needUpdateDimensions) {\r\n deferUpdate(() => deferRender(() => deferUpdate(() => {\r\n that._setScrollerSpacing(that._hasHeight);\r\n that._rowsView.resize()\r\n })))\r\n } else {\r\n resizeDeferred = that.resize()\r\n }\r\n }\r\n if (changeType && \"updateSelection\" !== changeType && \"updateFocusedRow\" !== changeType && \"pageIndex\" !== changeType && !isDelayed) {\r\n when(resizeDeferred).done((function() {\r\n that._setAriaRowColCount();\r\n that.fireContentReadyAction()\r\n }))\r\n }\r\n },\r\n fireContentReadyAction: function() {\r\n this.component._fireContentReadyAction()\r\n },\r\n _setAriaRowColCount: function() {\r\n var component = this.component;\r\n component.setAria({\r\n rowCount: this._dataController.totalItemsCount(),\r\n colCount: component.columnCount()\r\n }, component.$element().children(\".\" + GRIDBASE_CONTAINER_CLASS))\r\n },\r\n _getBestFitWidths: function() {\r\n var _widths;\r\n var rowsView = this._rowsView;\r\n var columnHeadersView = this._columnHeadersView;\r\n var widths = rowsView.getColumnWidths();\r\n if (!(null !== (_widths = widths) && void 0 !== _widths && _widths.length)) {\r\n var _rowsView$getTableEle;\r\n var headersTableElement = columnHeadersView.getTableElement();\r\n columnHeadersView.setTableElement(null === (_rowsView$getTableEle = rowsView.getTableElement()) || void 0 === _rowsView$getTableEle ? void 0 : _rowsView$getTableEle.children(\".dx-header\"));\r\n widths = columnHeadersView.getColumnWidths();\r\n columnHeadersView.setTableElement(headersTableElement)\r\n }\r\n return widths\r\n },\r\n _setVisibleWidths: function(visibleColumns, widths) {\r\n var columnsController = this._columnsController;\r\n columnsController.beginUpdate();\r\n each(visibleColumns, (function(index, column) {\r\n var columnId = columnsController.getColumnId(column);\r\n columnsController.columnOption(columnId, \"visibleWidth\", widths[index])\r\n }));\r\n columnsController.endUpdate()\r\n },\r\n _toggleBestFitModeForView: function(view, className, isBestFit) {\r\n if (!view || !view.isVisible()) {\r\n return\r\n }\r\n var $rowsTables = this._rowsView.getTableElements();\r\n var $viewTables = view.getTableElements();\r\n each($rowsTables, (index, tableElement) => {\r\n var $tableBody;\r\n var $rowsTable = $(tableElement);\r\n var $viewTable = $viewTables.eq(index);\r\n if ($viewTable && $viewTable.length) {\r\n if (isBestFit) {\r\n $tableBody = $viewTable.children(\"tbody\").appendTo($rowsTable)\r\n } else {\r\n $tableBody = $rowsTable.children(\".\" + className).appendTo($viewTable)\r\n }\r\n $tableBody.toggleClass(className, isBestFit);\r\n $tableBody.toggleClass(this.addWidgetPrefix(\"best-fit\"), isBestFit)\r\n }\r\n })\r\n },\r\n _toggleBestFitMode: function(isBestFit) {\r\n var $rowsTable = this._rowsView.getTableElement();\r\n var $rowsFixedTable = this._rowsView.getTableElements().eq(1);\r\n if (!$rowsTable) {\r\n return\r\n }\r\n $rowsTable.css(\"tableLayout\", isBestFit ? \"auto\" : \"fixed\");\r\n $rowsTable.children(\"colgroup\").css(\"display\", isBestFit ? \"none\" : \"\");\r\n $rowsFixedTable.toggleClass(this.addWidgetPrefix(TABLE_FIXED_CLASS), !isBestFit);\r\n this._toggleBestFitModeForView(this._columnHeadersView, \"dx-header\", isBestFit);\r\n this._toggleBestFitModeForView(this._footerView, \"dx-footer\", isBestFit);\r\n this._toggleContentMinHeight(isBestFit);\r\n if (this._needStretch()) {\r\n $rowsTable.get(0).style.width = isBestFit ? \"auto\" : \"\"\r\n }\r\n },\r\n _toggleContentMinHeight: function(isBestFit) {\r\n if (this.option(\"wordWrapEnabled\")) {\r\n var scrollable = this._rowsView.getScrollable();\r\n var $contentElement = this._rowsView._findContentElement();\r\n if (false === (null === scrollable || void 0 === scrollable ? void 0 : scrollable.option(\"useNative\"))) {\r\n $contentElement.css({\r\n minHeight: isBestFit ? gridCoreUtils.getContentHeightLimit(browser) : \"\"\r\n })\r\n }\r\n }\r\n },\r\n _synchronizeColumns: function() {\r\n var columnsController = this._columnsController;\r\n var visibleColumns = columnsController.getVisibleColumns();\r\n var columnAutoWidth = this.option(\"columnAutoWidth\");\r\n var needBestFit = this._needBestFit();\r\n var hasMinWidth = false;\r\n var resetBestFitMode;\r\n var isColumnWidthsCorrected = false;\r\n var resultWidths = [];\r\n var focusedElement;\r\n var selectionRange;\r\n !needBestFit && each(visibleColumns, (function(index, column) {\r\n if (\"auto\" === column.width) {\r\n needBestFit = true;\r\n return false\r\n }\r\n }));\r\n each(visibleColumns, (function(index, column) {\r\n if (column.minWidth) {\r\n hasMinWidth = true;\r\n return false\r\n }\r\n }));\r\n this._setVisibleWidths(visibleColumns, []);\r\n if (needBestFit) {\r\n focusedElement = domAdapter.getActiveElement();\r\n selectionRange = gridCoreUtils.getSelectionRange(focusedElement);\r\n this._toggleBestFitMode(true);\r\n resetBestFitMode = true\r\n }\r\n var $element = this.component.$element();\r\n if ($element && $element[0] && this._maxWidth) {\r\n delete this._maxWidth;\r\n $element[0].style.maxWidth = \"\"\r\n }\r\n deferUpdate(() => {\r\n if (needBestFit) {\r\n resultWidths = this._getBestFitWidths();\r\n each(visibleColumns, (function(index, column) {\r\n var columnId = columnsController.getColumnId(column);\r\n columnsController.columnOption(columnId, \"bestFitWidth\", resultWidths[index], true)\r\n }))\r\n } else if (hasMinWidth) {\r\n resultWidths = this._getBestFitWidths()\r\n }\r\n each(visibleColumns, (function(index) {\r\n var width = this.width;\r\n if (\"auto\" !== width) {\r\n if (isDefined(width)) {\r\n resultWidths[index] = isNumeric(width) || isPixelWidth(width) ? parseFloat(width) : width\r\n } else if (!columnAutoWidth) {\r\n resultWidths[index] = void 0\r\n }\r\n }\r\n }));\r\n if (resetBestFitMode) {\r\n this._toggleBestFitMode(false);\r\n resetBestFitMode = false;\r\n if (focusedElement && focusedElement !== domAdapter.getActiveElement()) {\r\n var isFocusOutsideWindow = getBoundingRect(focusedElement).bottom < 0;\r\n if (!isFocusOutsideWindow) {\r\n restoreFocus(focusedElement, selectionRange)\r\n }\r\n }\r\n }\r\n isColumnWidthsCorrected = this._correctColumnWidths(resultWidths, visibleColumns);\r\n if (columnAutoWidth) {\r\n ! function() {\r\n var expandColumnWidth;\r\n each(visibleColumns, (function(index, column) {\r\n if (\"groupExpand\" === column.type) {\r\n expandColumnWidth = resultWidths[index]\r\n }\r\n }));\r\n each(visibleColumns, (function(index, column) {\r\n if (\"groupExpand\" === column.type && expandColumnWidth) {\r\n resultWidths[index] = expandColumnWidth\r\n }\r\n }))\r\n }();\r\n if (this._needStretch()) {\r\n this._processStretch(resultWidths, visibleColumns)\r\n }\r\n }\r\n deferRender(() => {\r\n if (needBestFit || isColumnWidthsCorrected) {\r\n this._setVisibleWidths(visibleColumns, resultWidths)\r\n }\r\n })\r\n })\r\n },\r\n _needBestFit: function() {\r\n return this.option(\"columnAutoWidth\")\r\n },\r\n _needStretch: function() {\r\n return this._columnsController.getVisibleColumns().some(c => \"auto\" === c.width && !c.command)\r\n },\r\n _getAverageColumnsWidth: function(resultWidths) {\r\n var freeWidth = calculateFreeWidth(this, resultWidths);\r\n var columnCountWithoutWidth = resultWidths.filter((function(width) {\r\n return void 0 === width\r\n })).length;\r\n return freeWidth / columnCountWithoutWidth\r\n },\r\n _correctColumnWidths: function(resultWidths, visibleColumns) {\r\n var that = this;\r\n var i;\r\n var hasPercentWidth = false;\r\n var hasAutoWidth = false;\r\n var isColumnWidthsCorrected = false;\r\n var $element = that.component.$element();\r\n var hasWidth = that._hasWidth;\r\n var _loop = function() {\r\n var index = i;\r\n var column = visibleColumns[index];\r\n var isHiddenColumn = resultWidths[index] === HIDDEN_COLUMNS_WIDTH;\r\n var width = resultWidths[index];\r\n var minWidth = column.minWidth;\r\n if (minWidth) {\r\n if (void 0 === width) {\r\n var averageColumnsWidth = that._getAverageColumnsWidth(resultWidths);\r\n width = averageColumnsWidth\r\n } else if (isPercentWidth(width)) {\r\n var freeWidth = calculateFreeWidthWithCurrentMinWidth(that, index, minWidth, resultWidths);\r\n if (freeWidth < 0) {\r\n width = -1\r\n }\r\n }\r\n }\r\n var realColumnWidth = that._getRealColumnWidth(index, resultWidths.map((function(columnWidth, columnIndex) {\r\n return index === columnIndex ? width : columnWidth\r\n })));\r\n if (minWidth && !isHiddenColumn && realColumnWidth < minWidth) {\r\n resultWidths[index] = minWidth;\r\n isColumnWidthsCorrected = true;\r\n i = -1\r\n }\r\n if (!isDefined(column.width)) {\r\n hasAutoWidth = true\r\n }\r\n if (isPercentWidth(column.width)) {\r\n hasPercentWidth = true\r\n }\r\n };\r\n for (i = 0; i < visibleColumns.length; i++) {\r\n _loop()\r\n }\r\n if (!hasAutoWidth && resultWidths.length) {\r\n var $rowsViewElement = that._rowsView.element();\r\n var contentWidth = that._rowsView.contentWidth();\r\n var scrollbarWidth = that._rowsView.getScrollbarWidth();\r\n var totalWidth = that._getTotalWidth(resultWidths, contentWidth);\r\n if (totalWidth < contentWidth) {\r\n var lastColumnIndex = gridCoreUtils.getLastResizableColumnIndex(visibleColumns, resultWidths);\r\n if (lastColumnIndex >= 0) {\r\n resultWidths[lastColumnIndex] = \"auto\";\r\n isColumnWidthsCorrected = true;\r\n if (false === hasWidth && !hasPercentWidth) {\r\n var borderWidth = that.option(\"showBorders\") ? Math.ceil(getOuterWidth($rowsViewElement) - getInnerWidth($rowsViewElement)) : 0;\r\n that._maxWidth = totalWidth + scrollbarWidth + borderWidth;\r\n $element.css(\"maxWidth\", that._maxWidth)\r\n }\r\n }\r\n }\r\n }\r\n return isColumnWidthsCorrected\r\n },\r\n _processStretch: function(resultSizes, visibleColumns) {\r\n var groupSize = this._rowsView.contentWidth();\r\n var tableSize = this._getTotalWidth(resultSizes, groupSize);\r\n var unusedIndexes = {\r\n length: 0\r\n };\r\n if (!resultSizes.length) {\r\n return\r\n }\r\n each(visibleColumns, (function(index) {\r\n if (this.width || resultSizes[index] === HIDDEN_COLUMNS_WIDTH) {\r\n unusedIndexes[index] = true;\r\n unusedIndexes.length++\r\n }\r\n }));\r\n var diff = groupSize - tableSize;\r\n var diffElement = Math.floor(diff / (resultSizes.length - unusedIndexes.length));\r\n var onePixelElementsCount = diff - diffElement * (resultSizes.length - unusedIndexes.length);\r\n if (diff >= 0) {\r\n for (var i = 0; i < resultSizes.length; i++) {\r\n if (unusedIndexes[i]) {\r\n continue\r\n }\r\n resultSizes[i] += diffElement;\r\n if (onePixelElementsCount > 0) {\r\n if (onePixelElementsCount < 1) {\r\n resultSizes[i] += onePixelElementsCount;\r\n onePixelElementsCount = 0\r\n } else {\r\n resultSizes[i]++;\r\n onePixelElementsCount--\r\n }\r\n }\r\n }\r\n }\r\n },\r\n _getRealColumnWidth: function(columnIndex, columnWidths, groupWidth) {\r\n var ratio = 1;\r\n var width = columnWidths[columnIndex];\r\n if (!isPercentWidth(width)) {\r\n return parseFloat(width)\r\n }\r\n var percentTotalWidth = columnWidths.reduce((sum, width, index) => {\r\n if (!isPercentWidth(width)) {\r\n return sum\r\n }\r\n return sum + parseFloat(width)\r\n }, 0);\r\n var pixelTotalWidth = columnWidths.reduce((sum, width) => {\r\n if (!width || width === HIDDEN_COLUMNS_WIDTH || isPercentWidth(width)) {\r\n return sum\r\n }\r\n return sum + parseFloat(width)\r\n }, 0);\r\n groupWidth = groupWidth || this._rowsView.contentWidth();\r\n var freeSpace = groupWidth - pixelTotalWidth;\r\n var percentTotalWidthInPixel = percentTotalWidth * groupWidth / 100;\r\n if (pixelTotalWidth > 0 && percentTotalWidthInPixel + pixelTotalWidth >= groupWidth) {\r\n ratio = percentTotalWidthInPixel > freeSpace ? freeSpace / percentTotalWidthInPixel : 1\r\n }\r\n return parseFloat(width) * groupWidth * ratio / 100\r\n },\r\n _getTotalWidth: function(widths, groupWidth) {\r\n var result = 0;\r\n for (var i = 0; i < widths.length; i++) {\r\n var width = widths[i];\r\n if (width && width !== HIDDEN_COLUMNS_WIDTH) {\r\n result += this._getRealColumnWidth(i, widths, groupWidth)\r\n }\r\n }\r\n return Math.ceil(result)\r\n },\r\n updateSize: function(rootElement) {\r\n var $groupElement;\r\n var width;\r\n var $rootElement = $(rootElement);\r\n var importantMarginClass = this.addWidgetPrefix(IMPORTANT_MARGIN_CLASS);\r\n if (void 0 === this._hasHeight && $rootElement && $rootElement.is(\":visible\") && getWidth($rootElement)) {\r\n $groupElement = $rootElement.children(\".\" + this.getWidgetContainerClass());\r\n if ($groupElement.length) {\r\n $groupElement.detach()\r\n }\r\n this._hasHeight = !!getContainerHeight($rootElement);\r\n width = getWidth($rootElement);\r\n $rootElement.addClass(importantMarginClass);\r\n this._hasWidth = getWidth($rootElement) === width;\r\n $rootElement.removeClass(importantMarginClass);\r\n if ($groupElement.length) {\r\n $groupElement.appendTo($rootElement)\r\n }\r\n }\r\n },\r\n publicMethods: function() {\r\n return [\"resize\", \"updateDimensions\"]\r\n },\r\n resize: function() {\r\n return !this.component._requireResize && this.updateDimensions()\r\n },\r\n updateDimensions: function(checkSize) {\r\n var that = this;\r\n that._initPostRenderHandlers();\r\n if (!that._checkSize(checkSize)) {\r\n return\r\n }\r\n var prevResult = that._resizeDeferred;\r\n var result = that._resizeDeferred = new Deferred;\r\n when(prevResult).always((function() {\r\n deferRender((function() {\r\n if (that._dataController.isLoaded()) {\r\n that._synchronizeColumns()\r\n }\r\n that._resetGroupElementHeight();\r\n deferUpdate((function() {\r\n deferRender((function() {\r\n deferUpdate((function() {\r\n that._updateDimensionsCore()\r\n }))\r\n }))\r\n }))\r\n })).done(result.resolve).fail(result.reject)\r\n }));\r\n return result.promise()\r\n },\r\n _resetGroupElementHeight: function() {\r\n var groupElement = this.component.$element().children().get(0);\r\n var scrollable = this._rowsView.getScrollable();\r\n if (groupElement && groupElement.style.height && (!scrollable || !scrollable.scrollTop())) {\r\n groupElement.style.height = \"\"\r\n }\r\n },\r\n _checkSize: function(checkSize) {\r\n var $rootElement = this.component.$element();\r\n if (checkSize && (this._lastWidth === getWidth($rootElement) && this._lastHeight === getHeight($rootElement) && this._devicePixelRatio === getWindow().devicePixelRatio || !$rootElement.is(\":visible\"))) {\r\n return false\r\n }\r\n return true\r\n },\r\n _setScrollerSpacingCore: function(hasHeight) {\r\n var that = this;\r\n var vScrollbarWidth = hasHeight ? that._rowsView.getScrollbarWidth() : 0;\r\n var hScrollbarWidth = that._rowsView.getScrollbarWidth(true);\r\n deferRender((function() {\r\n that._columnHeadersView && that._columnHeadersView.setScrollerSpacing(vScrollbarWidth);\r\n that._footerView && that._footerView.setScrollerSpacing(vScrollbarWidth);\r\n that._rowsView.setScrollerSpacing(vScrollbarWidth, hScrollbarWidth)\r\n }))\r\n },\r\n _setScrollerSpacing: function(hasHeight) {\r\n if (true === this.option(\"scrolling.useNative\")) {\r\n deferRender(() => {\r\n deferUpdate(() => {\r\n this._setScrollerSpacingCore(hasHeight)\r\n })\r\n })\r\n } else {\r\n this._setScrollerSpacingCore(hasHeight)\r\n }\r\n },\r\n _updateDimensionsCore: function() {\r\n var that = this;\r\n var dataController = that._dataController;\r\n var rowsView = that._rowsView;\r\n var $rootElement = that.component.$element();\r\n var groupElement = $rootElement.children().get(0);\r\n var rootElementHeight = $rootElement && ($rootElement.get(0).clientHeight || getHeight($rootElement));\r\n var maxHeight = parseInt($rootElement.css(\"maxHeight\"));\r\n var maxHeightHappened = maxHeight && rootElementHeight >= maxHeight;\r\n var height = that.option(\"height\") || $rootElement.get(0).style.height;\r\n var editorFactory = that.getController(\"editorFactory\");\r\n var isMaxHeightApplied = maxHeightHappened && groupElement.scrollHeight === groupElement.offsetHeight;\r\n var $testDiv;\r\n that.updateSize($rootElement);\r\n var hasHeight = that._hasHeight || maxHeightHappened;\r\n if (height && that._hasHeight ^ \"auto\" !== height) {\r\n $testDiv = $(\"
\");\r\n setHeight($testDiv, height);\r\n $testDiv.appendTo($rootElement);\r\n that._hasHeight = !!getHeight($testDiv);\r\n $testDiv.remove()\r\n }\r\n deferRender((function() {\r\n rowsView.height(null, hasHeight);\r\n if (maxHeightHappened && !isMaxHeightApplied) {\r\n $(groupElement).css(\"height\", maxHeight)\r\n }\r\n if (!dataController.isLoaded()) {\r\n rowsView.setLoading(dataController.isLoading());\r\n return\r\n }\r\n deferUpdate((function() {\r\n that._updateLastSizes($rootElement);\r\n that._setScrollerSpacing(hasHeight);\r\n each(VIEW_NAMES, (function(index, viewName) {\r\n var view = that.getView(viewName);\r\n if (view) {\r\n view.resize()\r\n }\r\n }));\r\n editorFactory && editorFactory.resize()\r\n }))\r\n }))\r\n },\r\n _updateLastSizes: function($rootElement) {\r\n this._lastWidth = getWidth($rootElement);\r\n this._lastHeight = getHeight($rootElement);\r\n this._devicePixelRatio = getWindow().devicePixelRatio\r\n },\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"width\":\r\n case \"height\":\r\n this.component._renderDimensions();\r\n this.resize();\r\n case \"renderAsync\":\r\n args.handled = true;\r\n return;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n init: function() {\r\n this._dataController = this.getController(\"data\");\r\n this._columnsController = this.getController(\"columns\");\r\n this._columnHeadersView = this.getView(\"columnHeadersView\");\r\n this._footerView = this.getView(\"footerView\");\r\n this._rowsView = this.getView(\"rowsView\")\r\n }\r\n});\r\nvar SynchronizeScrollingController = modules.ViewController.inherit({\r\n _scrollChangedHandler: function(views, pos, viewName) {\r\n for (var j = 0; j < views.length; j++) {\r\n if (views[j] && views[j].name !== viewName) {\r\n views[j].scrollTo({\r\n left: pos.left,\r\n top: pos.top\r\n })\r\n }\r\n }\r\n },\r\n init: function() {\r\n var views = [this.getView(\"columnHeadersView\"), this.getView(\"footerView\"), this.getView(\"rowsView\")];\r\n for (var i = 0; i < views.length; i++) {\r\n var view = views[i];\r\n if (view) {\r\n view.scrollChanged.add(this._scrollChangedHandler.bind(this, views))\r\n }\r\n }\r\n }\r\n});\r\nvar GridView = modules.View.inherit({\r\n _endUpdateCore: function() {\r\n if (this.component._requireResize) {\r\n this.component._requireResize = false;\r\n this._resizingController.resize()\r\n }\r\n },\r\n _getWidgetAriaLabel: function() {\r\n return \"dxDataGrid-ariaDataGrid\"\r\n },\r\n init: function() {\r\n this._resizingController = this.getController(\"resizing\");\r\n this._dataController = this.getController(\"data\")\r\n },\r\n getView: function(name) {\r\n return this.component._views[name]\r\n },\r\n element: function() {\r\n return this._groupElement\r\n },\r\n optionChanged: function(args) {\r\n if (isDefined(this._groupElement) && \"showBorders\" === args.name) {\r\n this._groupElement.toggleClass(this.addWidgetPrefix(BORDERS_CLASS), !!args.value);\r\n args.handled = true\r\n } else {\r\n this.callBase(args)\r\n }\r\n },\r\n _renderViews: function($groupElement) {\r\n var that = this;\r\n each(VIEW_NAMES, (function(index, viewName) {\r\n var view = that.getView(viewName);\r\n if (view) {\r\n view.render($groupElement)\r\n }\r\n }))\r\n },\r\n _getTableRoleName: function() {\r\n return \"grid\"\r\n },\r\n render: function($rootElement) {\r\n var isFirstRender = !this._groupElement;\r\n var $groupElement = this._groupElement || $(\"
\").addClass(this.getWidgetContainerClass());\r\n $groupElement.addClass(GRIDBASE_CONTAINER_CLASS);\r\n $groupElement.toggleClass(this.addWidgetPrefix(BORDERS_CLASS), !!this.option(\"showBorders\"));\r\n this.setAria(\"role\", \"presentation\", $rootElement);\r\n this.component.setAria({\r\n role: this._getTableRoleName(),\r\n label: messageLocalization.format(this._getWidgetAriaLabel())\r\n }, $groupElement);\r\n this._rootElement = $rootElement || this._rootElement;\r\n if (isFirstRender) {\r\n this._groupElement = $groupElement;\r\n hasWindow() && this.getController(\"resizing\").updateSize($rootElement);\r\n $groupElement.appendTo($rootElement)\r\n }\r\n this._renderViews($groupElement)\r\n },\r\n update: function() {\r\n var $rootElement = this._rootElement;\r\n var $groupElement = this._groupElement;\r\n var resizingController = this.getController(\"resizing\");\r\n if ($rootElement && $groupElement) {\r\n resizingController.resize();\r\n if (this._dataController.isLoaded()) {\r\n this._resizingController.fireContentReadyAction()\r\n }\r\n }\r\n }\r\n});\r\nexport var gridViewModule = {\r\n defaultOptions: function() {\r\n return {\r\n showBorders: false,\r\n renderAsync: false\r\n }\r\n },\r\n controllers: {\r\n resizing: ResizingController,\r\n synchronizeScrolling: SynchronizeScrollingController\r\n },\r\n views: {\r\n gridView: GridView\r\n },\r\n VIEW_NAMES: VIEW_NAMES\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.grid_view.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n gridViewModule\r\n} from \"../grid_core/ui.grid_core.grid_view\";\r\ngridCore.registerModule(\"gridView\", gridViewModule);\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/ui.toolbar.menu.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n ListBase\r\n} from \"../list/ui.list.base\";\r\nvar TOOLBAR_MENU_ACTION_CLASS = \"dx-toolbar-menu-action\";\r\nvar TOOLBAR_HIDDEN_BUTTON_CLASS = \"dx-toolbar-hidden-button\";\r\nvar TOOLBAR_HIDDEN_BUTTON_GROUP_CLASS = \"dx-toolbar-hidden-button-group\";\r\nvar TOOLBAR_MENU_SECTION_CLASS = \"dx-toolbar-menu-section\";\r\nvar TOOLBAR_MENU_LAST_SECTION_CLASS = \"dx-toolbar-menu-last-section\";\r\nvar ToolbarMenu = ListBase.inherit({\r\n _activeStateUnit: \".\" + TOOLBAR_MENU_ACTION_CLASS,\r\n _initMarkup: function() {\r\n this._renderSections();\r\n this.callBase()\r\n },\r\n _getSections: function() {\r\n return this._itemContainer().children()\r\n },\r\n _itemElements: function() {\r\n return this._getSections().children(this._itemSelector())\r\n },\r\n _renderSections: function() {\r\n var that = this;\r\n var $container = this._itemContainer();\r\n each([\"before\", \"center\", \"after\", \"menu\"], (function() {\r\n var sectionName = \"_$\" + this + \"Section\";\r\n var $section = that[sectionName];\r\n if (!$section) {\r\n that[sectionName] = $section = $(\"
\").addClass(TOOLBAR_MENU_SECTION_CLASS)\r\n }\r\n $section.appendTo($container)\r\n }))\r\n },\r\n _renderItems: function() {\r\n this.callBase.apply(this, arguments);\r\n this._updateSections()\r\n },\r\n _updateSections: function() {\r\n var $sections = this.$element().find(\".\" + TOOLBAR_MENU_SECTION_CLASS);\r\n $sections.removeClass(TOOLBAR_MENU_LAST_SECTION_CLASS);\r\n $sections.not(\":empty\").eq(-1).addClass(TOOLBAR_MENU_LAST_SECTION_CLASS)\r\n },\r\n _renderItem: function(index, item, itemContainer, $after) {\r\n var location = item.location || \"menu\";\r\n var $container = this[\"_$\" + location + \"Section\"];\r\n var itemElement = this.callBase(index, item, $container, $after);\r\n if (this._getItemTemplateName({\r\n itemData: item\r\n })) {\r\n itemElement.addClass(\"dx-toolbar-menu-custom\")\r\n }\r\n if (\"menu\" === location || \"dxButton\" === item.widget || \"dxButtonGroup\" === item.widget || item.isAction) {\r\n itemElement.addClass(TOOLBAR_MENU_ACTION_CLASS)\r\n }\r\n if (\"dxButton\" === item.widget) {\r\n itemElement.addClass(TOOLBAR_HIDDEN_BUTTON_CLASS)\r\n }\r\n if (\"dxButtonGroup\" === item.widget) {\r\n itemElement.addClass(TOOLBAR_HIDDEN_BUTTON_GROUP_CLASS)\r\n }\r\n itemElement.addClass(item.cssClass);\r\n return itemElement\r\n },\r\n _getItemTemplateName: function(args) {\r\n var template = this.callBase(args);\r\n var data = args.itemData;\r\n var menuTemplate = data && data.menuItemTemplate;\r\n return menuTemplate || template\r\n },\r\n _itemClickHandler: function(e, args, config) {\r\n if ($(e.target).closest(\".\" + TOOLBAR_MENU_ACTION_CLASS).length) {\r\n this.callBase(e, args, config)\r\n }\r\n },\r\n _clean: function() {\r\n this._getSections().empty();\r\n this.callBase()\r\n }\r\n});\r\nregisterComponent(\"dxToolbarMenu\", ToolbarMenu);\r\nexport default ToolbarMenu;\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/ui.toolbar.utils.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nvar BUTTON_GROUP_CLASS = \"dx-buttongroup\";\r\nvar TOOLBAR_ITEMS = [\"dxAutocomplete\", \"dxButton\", \"dxCheckBox\", \"dxDateBox\", \"dxMenu\", \"dxSelectBox\", \"dxTabs\", \"dxTextBox\", \"dxButtonGroup\", \"dxDropDownButton\"];\r\nvar getItemInstance = function($element) {\r\n var itemData = $element.data && $element.data();\r\n var dxComponents = itemData && itemData.dxComponents;\r\n var widgetName = dxComponents && dxComponents[0];\r\n return widgetName && itemData[widgetName]\r\n};\r\nexport function toggleItemFocusableElementTabIndex(context, item) {\r\n var _itemData$options;\r\n if (!context) {\r\n return\r\n }\r\n var $item = context._findItemElementByItem(item);\r\n if (!$item.length) {\r\n return\r\n }\r\n var itemData = context._getItemData($item);\r\n var isItemNotFocusable = !!(null !== (_itemData$options = itemData.options) && void 0 !== _itemData$options && _itemData$options.disabled || itemData.disabled || context.option(\"disabled\"));\r\n var {\r\n widget: widget\r\n } = itemData;\r\n if (widget && -1 !== TOOLBAR_ITEMS.indexOf(widget)) {\r\n var $widget = $item.find(widget.toLowerCase().replace(\"dx\", \".dx-\"));\r\n if ($widget.length) {\r\n var _itemInstance$_focusT, _itemData$options2;\r\n var itemInstance = getItemInstance($widget);\r\n var $focusTarget = \"dxDropDownButton\" === widget ? itemInstance._focusTarget().find(\".\".concat(BUTTON_GROUP_CLASS)) : (null === itemInstance || void 0 === itemInstance ? void 0 : null === (_itemInstance$_focusT = itemInstance._focusTarget) || void 0 === _itemInstance$_focusT ? void 0 : _itemInstance$_focusT.call(itemInstance)) || $(itemInstance.element());\r\n var tabIndex = null === (_itemData$options2 = itemData.options) || void 0 === _itemData$options2 ? void 0 : _itemData$options2.tabIndex;\r\n if (isItemNotFocusable) {\r\n $focusTarget.attr(\"tabIndex\", -1)\r\n } else {\r\n $focusTarget.attr(\"tabIndex\", tabIndex ? tabIndex : 0)\r\n }\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/drop_down_menu.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight,\r\n setHeight\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nvar window = getWindow();\r\nimport devices from \"../core/devices\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport Widget from \"./widget/ui.widget\";\r\nimport Button from \"./button\";\r\nimport Popover from \"./popover\";\r\nimport DataHelperMixin from \"../data_helper\";\r\nimport List from \"./list_light\";\r\nimport {\r\n isMaterial\r\n} from \"./themes\";\r\nimport {\r\n ChildDefaultTemplate\r\n} from \"../core/templates/child_default_template\";\r\nimport {\r\n toggleItemFocusableElementTabIndex\r\n} from \"./toolbar/ui.toolbar.utils\";\r\nvar DROP_DOWN_MENU_CLASS = \"dx-dropdownmenu\";\r\nvar DROP_DOWN_MENU_POPUP_CLASS = \"dx-dropdownmenu-popup\";\r\nvar DROP_DOWN_MENU_POPUP_WRAPPER_CLASS = \"dx-dropdownmenu-popup-wrapper\";\r\nvar DROP_DOWN_MENU_LIST_CLASS = \"dx-dropdownmenu-list\";\r\nvar DROP_DOWN_MENU_BUTTON_CLASS = \"dx-dropdownmenu-button\";\r\nvar POPUP_OPTION_MAP = {\r\n popupWidth: \"width\",\r\n popupHeight: \"height\",\r\n popupMaxHeight: \"maxHeight\",\r\n popupAutoResizeEnabled: \"autoResizeEnabled\"\r\n};\r\nvar BUTTON_OPTION_MAP = {\r\n buttonIcon: \"icon\",\r\n buttonText: \"text\",\r\n buttonWidth: \"width\",\r\n buttonHeight: \"height\",\r\n buttonTemplate: \"template\"\r\n};\r\nvar DropDownMenu = Widget.inherit({\r\n _supportedKeys: function() {\r\n var extension = {};\r\n if (!this.option(\"opened\") || !this._list.option(\"focusedElement\")) {\r\n extension = this._button._supportedKeys()\r\n }\r\n return extend(this.callBase(), extension, {\r\n tab: function() {\r\n this._popup && this._popup.hide()\r\n }\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n items: [],\r\n onItemClick: null,\r\n dataSource: null,\r\n itemTemplate: \"item\",\r\n buttonText: \"\",\r\n buttonIcon: \"overflow\",\r\n buttonWidth: void 0,\r\n buttonHeight: void 0,\r\n buttonTemplate: \"content\",\r\n onButtonClick: null,\r\n usePopover: false,\r\n popupWidth: \"auto\",\r\n popupHeight: \"auto\",\r\n activeStateEnabled: true,\r\n hoverStateEnabled: true,\r\n opened: false,\r\n selectionMode: \"none\",\r\n selectedItemKeys: [],\r\n deferRendering: false,\r\n popupPosition: {\r\n my: \"top center\",\r\n at: \"bottom center\",\r\n collision: \"fit flip\",\r\n offset: {\r\n v: 1\r\n }\r\n },\r\n popupAnimation: void 0,\r\n onItemRendered: null,\r\n menuWidget: List,\r\n popupMaxHeight: void 0,\r\n closeOnClick: true,\r\n useInkRipple: false,\r\n container: void 0,\r\n popupAutoResizeEnabled: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n usePopover: true\r\n }\r\n }, {\r\n device: {\r\n platform: \"generic\"\r\n },\r\n options: {\r\n popupPosition: {\r\n offset: {\r\n v: 4\r\n }\r\n }\r\n }\r\n }, {\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n popupPosition: {\r\n my: \"top \" + (this.option(\"rtlEnabled\") ? \"left\" : \"right\"),\r\n at: \"top \" + (this.option(\"rtlEnabled\") ? \"left\" : \"right\"),\r\n collision: \"flipfit\"\r\n },\r\n popupAnimation: {\r\n show: {\r\n type: \"pop\",\r\n duration: 200,\r\n from: {\r\n scale: 0\r\n },\r\n to: {\r\n scale: 1\r\n }\r\n },\r\n hide: {\r\n type: \"pop\",\r\n duration: 200,\r\n from: {\r\n scale: 1\r\n },\r\n to: {\r\n scale: 0\r\n }\r\n }\r\n }\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterial()\r\n },\r\n options: {\r\n useInkRipple: true\r\n }\r\n }])\r\n },\r\n _initOptions: function(options) {\r\n if (\"android\" === devices.current().platform) {\r\n if (!options.popupPosition) {\r\n options.popupPosition = {\r\n at: (options.usePopover ? \"bottom \" : \"top \") + (options.rtlEnabled ? \"left\" : \"right\")\r\n }\r\n }\r\n }\r\n this.callBase(options)\r\n },\r\n _dataSourceOptions: function() {\r\n return {\r\n paginate: false\r\n }\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(DROP_DOWN_MENU_CLASS);\r\n this._initDataSource();\r\n this._initItemClickAction();\r\n this._initButtonClickAction()\r\n },\r\n _initItemClickAction: function() {\r\n this._itemClickAction = this._createActionByOption(\"onItemClick\")\r\n },\r\n _initButtonClickAction: function() {\r\n this._buttonClickAction = this._createActionByOption(\"onButtonClick\")\r\n },\r\n _initTemplates: function() {\r\n this._templateManager.addDefaultTemplates({\r\n content: new ChildDefaultTemplate(\"content\")\r\n });\r\n this.callBase()\r\n },\r\n _initMarkup: function() {\r\n this._renderButton();\r\n this.callBase()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this.setAria({\r\n role: \"menubar\",\r\n haspopup: true,\r\n expanded: this.option(\"opened\")\r\n })\r\n },\r\n _renderContentImpl: function() {\r\n if (this.option(\"opened\")) {\r\n this._renderPopup()\r\n }\r\n },\r\n _clean: function() {\r\n this._cleanFocusState();\r\n if (this._popup) {\r\n this._popup.$element().remove();\r\n delete this._$popup\r\n }\r\n },\r\n _renderButton: function() {\r\n var $button = this.$element().addClass(DROP_DOWN_MENU_BUTTON_CLASS);\r\n var config = this._buttonOptions();\r\n this._button = this._createComponent($button, Button, config)\r\n },\r\n _toggleActiveState: function($element, value, e) {\r\n this._button._toggleActiveState($element, value, e)\r\n },\r\n _buttonOptions: function() {\r\n return {\r\n text: this.option(\"buttonText\"),\r\n icon: this.option(\"buttonIcon\"),\r\n width: this.option(\"buttonWidth\"),\r\n height: this.option(\"buttonHeight\"),\r\n useInkRipple: this.option(\"useInkRipple\"),\r\n template: this.option(\"buttonTemplate\"),\r\n hoverStateEnabled: false,\r\n focusStateEnabled: false,\r\n onClick: function(e) {\r\n this.option(\"opened\", !this.option(\"opened\"));\r\n this._buttonClickAction(e)\r\n }.bind(this)\r\n }\r\n },\r\n _toggleMenuVisibility: function(opened) {\r\n var state = void 0 === opened ? !this._popup.option(\"visible\") : opened;\r\n if (opened) {\r\n this._renderPopup()\r\n }\r\n this._popup.toggle(state);\r\n this.setAria(\"expanded\", state)\r\n },\r\n _renderPopup: function() {\r\n if (this._$popup) {\r\n return\r\n }\r\n var $popup = this._$popup = $(\"
\").appendTo(this.$element());\r\n var config = this._popupOptions();\r\n this._popup = this._createComponent($popup, Popover, config)\r\n },\r\n _popupOptions: function() {\r\n var usePopup = !this.option(\"usePopover\");\r\n return {\r\n onInitialized: function(args) {\r\n args.component.$wrapper().addClass(DROP_DOWN_MENU_POPUP_WRAPPER_CLASS).toggleClass(DROP_DOWN_MENU_POPUP_CLASS, usePopup)\r\n },\r\n deferRendering: false,\r\n contentTemplate: function(contentElement) {\r\n this._renderList(contentElement)\r\n }.bind(this),\r\n position: this.option(\"popupPosition\"),\r\n animation: this.option(\"popupAnimation\"),\r\n onOptionChanged: function(args) {\r\n if (\"visible\" === args.name) {\r\n this.option(\"opened\", args.value)\r\n }\r\n }.bind(this),\r\n target: this.$element(),\r\n height: this.option(\"popupHeight\"),\r\n width: this.option(\"popupWidth\"),\r\n maxHeight: this.option(\"popupMaxHeight\"),\r\n container: this.option(\"container\"),\r\n autoResizeEnabled: this.option(\"popupAutoResizeEnabled\")\r\n }\r\n },\r\n _renderList: function(contentElement) {\r\n var $content = $(contentElement);\r\n var listConfig = this._listOptions();\r\n $content.addClass(DROP_DOWN_MENU_LIST_CLASS);\r\n this._list = this._createComponent($content, this.option(\"menuWidget\"), listConfig);\r\n this._list._getAriaTarget = function() {\r\n return this.$element()\r\n }.bind(this);\r\n this._setListDataSource();\r\n var listMaxHeight = .5 * getHeight(window);\r\n if (getHeight($content) > listMaxHeight) {\r\n setHeight($content, listMaxHeight)\r\n }\r\n },\r\n _itemOptionChanged: function(item, property, value) {\r\n var _this$_list;\r\n null === (_this$_list = this._list) || void 0 === _this$_list ? void 0 : _this$_list._itemOptionChanged(item, property, value);\r\n toggleItemFocusableElementTabIndex(this._list, item)\r\n },\r\n _listOptions: function() {\r\n return {\r\n pageLoadMode: \"scrollBottom\",\r\n indicateLoading: false,\r\n noDataText: \"\",\r\n selectionMode: this.option(\"selectionMode\"),\r\n selectedItemKeys: this.option(\"selectedItemKeys\"),\r\n itemTemplate: this.option(\"itemTemplate\"),\r\n onItemClick: function(e) {\r\n if (this.option(\"closeOnClick\")) {\r\n this.option(\"opened\", false)\r\n }\r\n this._itemClickAction(e)\r\n }.bind(this),\r\n tabIndex: -1,\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n activeStateEnabled: this.option(\"activeStateEnabled\"),\r\n onItemRendered: this.option(\"onItemRendered\"),\r\n _itemAttributes: {\r\n role: \"menuitem\"\r\n }\r\n }\r\n },\r\n _setListDataSource: function() {\r\n if (this._list) {\r\n this._list.option(\"dataSource\", this._dataSource || this.option(\"items\"))\r\n }\r\n delete this._deferRendering\r\n },\r\n _getKeyboardListeners() {\r\n return this.callBase().concat([this._list])\r\n },\r\n _toggleVisibility: function(visible) {\r\n this.callBase(visible);\r\n this._button.option(\"visible\", visible)\r\n },\r\n _optionChanged: function(args) {\r\n var name = args.name;\r\n var value = args.value;\r\n switch (name) {\r\n case \"items\":\r\n case \"dataSource\":\r\n if (this.option(\"deferRendering\") && !this.option(\"opened\")) {\r\n this._deferRendering = true\r\n } else {\r\n this._refreshDataSource();\r\n this._setListDataSource()\r\n }\r\n break;\r\n case \"itemTemplate\":\r\n if (this._list) {\r\n this._list.option(name, this._getTemplate(value))\r\n }\r\n break;\r\n case \"onItemClick\":\r\n this._initItemClickAction();\r\n break;\r\n case \"onButtonClick\":\r\n this._buttonClickAction();\r\n break;\r\n case \"buttonIcon\":\r\n case \"buttonText\":\r\n case \"buttonWidth\":\r\n case \"buttonHeight\":\r\n case \"buttonTemplate\":\r\n this._button.option(BUTTON_OPTION_MAP[name], value);\r\n this._renderPopup();\r\n break;\r\n case \"popupWidth\":\r\n case \"popupHeight\":\r\n case \"popupMaxHeight\":\r\n case \"popupAutoResizeEnabled\":\r\n this._popup.option(POPUP_OPTION_MAP[name], value);\r\n break;\r\n case \"usePopover\":\r\n case \"menuWidget\":\r\n case \"useInkRipple\":\r\n this._invalidate();\r\n break;\r\n case \"focusStateEnabled\":\r\n case \"activeStateEnabled\":\r\n if (this._list) {\r\n this._list.option(name, value)\r\n }\r\n this.callBase(args);\r\n break;\r\n case \"selectionMode\":\r\n case \"selectedItemKeys\":\r\n case \"onItemRendered\":\r\n if (this._list) {\r\n this._list.option(name, value)\r\n }\r\n break;\r\n case \"opened\":\r\n if (this._deferRendering) {\r\n this._refreshDataSource();\r\n this._setListDataSource()\r\n }\r\n this._toggleMenuVisibility(value);\r\n this._updateFocusableItemsTabIndex();\r\n break;\r\n case \"deferRendering\":\r\n case \"popupPosition\":\r\n case \"closeOnClick\":\r\n break;\r\n case \"container\":\r\n this._popup && this._popup.option(args.name, args.value);\r\n break;\r\n case \"disabled\":\r\n if (this._list) {\r\n this._updateFocusableItemsTabIndex()\r\n }\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _updateFocusableItemsTabIndex() {\r\n this.option(\"items\").forEach(item => toggleItemFocusableElementTabIndex(this._list, item))\r\n },\r\n open: function() {\r\n this.option(\"opened\", true)\r\n },\r\n close: function() {\r\n this.option(\"opened\", false)\r\n }\r\n}).include(DataHelperMixin);\r\nregisterComponent(\"dxDropDownMenu\", DropDownMenu);\r\nexport default DropDownMenu;\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/ui.toolbar.drop_down_menu.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport ToolbarMenu from \"./ui.toolbar.menu\";\r\nimport DropDownMenu from \"../drop_down_menu\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nvar MENU_INVISIBLE_CLASS = \"dx-state-invisible\";\r\nvar TOOLBAR_DROP_DOWN_MENU_CONTAINER_CLASS = \"dx-toolbar-menu-container\";\r\nvar POPOVER_BOUNDARY_OFFSET = 10;\r\nclass ToolbarDropDownMenu {\r\n constructor(toolbar) {\r\n this._toolbar = toolbar\r\n }\r\n render() {\r\n if (!this._hasVisibleMenuItems()) {\r\n return\r\n }\r\n this._renderMenuButtonContainer();\r\n var $menu = $(\"
\").appendTo(this._dropDownMenuContainer());\r\n this._dropDownMenu = this._toolbar._createComponent($menu, DropDownMenu, this._dropDownMenuOptions());\r\n this.renderMenuItems()\r\n }\r\n renderMenuItems() {\r\n if (!this._dropDownMenu) {\r\n this.render()\r\n }\r\n this._dropDownMenu && this._dropDownMenu.option(\"items\", this._getMenuItems());\r\n if (this._dropDownMenu && !this._dropDownMenu.option(\"items\").length) {\r\n this._dropDownMenu.close()\r\n }\r\n }\r\n _renderMenuButtonContainer() {\r\n var $afterSection = this._toolbar._$afterSection;\r\n this._$menuButtonContainer = $(\"
\").appendTo($afterSection).addClass(this._toolbar._buttonClass()).addClass(TOOLBAR_DROP_DOWN_MENU_CONTAINER_CLASS)\r\n }\r\n _getMenuItemTemplate() {\r\n return this._toolbar._getTemplateByOption(\"menuItemTemplate\")\r\n }\r\n _dropDownMenuOptions() {\r\n var itemClickAction = this._toolbar._createActionByOption(\"onItemClick\");\r\n var topAndBottomOffset = 2 * POPOVER_BOUNDARY_OFFSET;\r\n return {\r\n disabled: this._toolbar.option(\"disabled\"),\r\n itemTemplate: this._getMenuItemTemplate.bind(this),\r\n onItemClick: function(e) {\r\n itemClickAction(e)\r\n }.bind(this),\r\n deferRendering: true,\r\n container: this._toolbar.option(\"menuContainer\"),\r\n popupMaxHeight: \"android\" === devices.current().platform ? domAdapter.getDocumentElement().clientHeight - topAndBottomOffset : void 0,\r\n menuWidget: ToolbarMenu,\r\n onOptionChanged: _ref => {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref;\r\n if (\"opened\" === name) {\r\n this._toolbar.option(\"overflowMenuVisible\", value)\r\n }\r\n if (\"items\" === name) {\r\n this._updateMenuVisibility(value)\r\n }\r\n },\r\n popupPosition: {\r\n at: \"bottom right\",\r\n my: \"top right\"\r\n }\r\n }\r\n }\r\n _updateMenuVisibility(menuItems) {\r\n var items = menuItems || this._getMenuItems();\r\n var isMenuVisible = items.length && this._hasVisibleMenuItems(items);\r\n this._toggleMenuVisibility(isMenuVisible)\r\n }\r\n _getMenuItems() {\r\n return this._toolbar._getMenuItems()\r\n }\r\n _hasVisibleMenuItems(items) {\r\n var menuItems = items || this._toolbar.option(\"items\");\r\n var result = false;\r\n var optionGetter = compileGetter(\"visible\");\r\n var overflowGetter = compileGetter(\"locateInMenu\");\r\n each(menuItems, (function(index, item) {\r\n var itemVisible = optionGetter(item, {\r\n functionsAsIs: true\r\n });\r\n var itemOverflow = overflowGetter(item, {\r\n functionsAsIs: true\r\n });\r\n if (false !== itemVisible && (\"auto\" === itemOverflow || \"always\" === itemOverflow) || \"menu\" === item.location) {\r\n result = true\r\n }\r\n }));\r\n return result\r\n }\r\n _toggleMenuVisibility(value) {\r\n if (!this._dropDownMenuContainer()) {\r\n return\r\n }\r\n this._dropDownMenuContainer().toggleClass(MENU_INVISIBLE_CLASS, !value)\r\n }\r\n _dropDownMenuContainer() {\r\n return this._$menuButtonContainer\r\n }\r\n widgetOption(name, value) {\r\n this._dropDownMenu && this._dropDownMenu.option(name, value)\r\n }\r\n itemOption(item, property, value) {\r\n if (\"disabled\" === property || \"options.disabled\" === property) {\r\n var _this$_dropDownMenu;\r\n null === (_this$_dropDownMenu = this._dropDownMenu) || void 0 === _this$_dropDownMenu ? void 0 : _this$_dropDownMenu._itemOptionChanged(item, property, value)\r\n } else {\r\n this.renderMenuItems()\r\n }\r\n }\r\n}\r\nexport default ToolbarDropDownMenu;\r\n","/**\r\n * DevExtreme (esm/ui/toolbar.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n getOuterWidth\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n grep,\r\n deferRender\r\n} from \"../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport ToolbarDropDownMenu from \"./toolbar/ui.toolbar.drop_down_menu\";\r\nimport ToolbarBase from \"./toolbar/ui.toolbar.base\";\r\nimport {\r\n ChildDefaultTemplate\r\n} from \"../core/templates/child_default_template\";\r\nimport {\r\n toggleItemFocusableElementTabIndex\r\n} from \"./toolbar/ui.toolbar.utils\";\r\nvar TOOLBAR_AUTO_HIDE_ITEM_CLASS = \"dx-toolbar-item-auto-hide\";\r\nvar TOOLBAR_AUTO_HIDE_TEXT_CLASS = \"dx-toolbar-text-auto-hide\";\r\nvar TOOLBAR_HIDDEN_ITEM = \"dx-toolbar-item-invisible\";\r\nvar Toolbar = ToolbarBase.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n menuItemTemplate: \"menuItem\",\r\n menuContainer: void 0,\r\n overflowMenuVisible: false\r\n })\r\n },\r\n updateDimensions: function() {\r\n this._dimensionChanged()\r\n },\r\n _dimensionChanged: function(dimension) {\r\n if (\"height\" === dimension) {\r\n return\r\n }\r\n this.callBase();\r\n this._menu.renderMenuItems()\r\n },\r\n _initTemplates: function() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n actionSheetItem: new ChildDefaultTemplate(\"item\")\r\n })\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._updateFocusableItemsTabIndex();\r\n this._renderMenu()\r\n },\r\n _postProcessRenderItems: function() {\r\n this._hideOverflowItems();\r\n this._menu._updateMenuVisibility();\r\n this.callBase();\r\n deferRender(() => {\r\n this._menu.renderMenuItems()\r\n })\r\n },\r\n _renderItem: function(index, item, itemContainer, $after) {\r\n var itemElement = this.callBase(index, item, itemContainer, $after);\r\n if (\"auto\" === item.locateInMenu) {\r\n itemElement.addClass(TOOLBAR_AUTO_HIDE_ITEM_CLASS)\r\n }\r\n if (\"dxButton\" === item.widget && \"inMenu\" === item.showText) {\r\n itemElement.toggleClass(TOOLBAR_AUTO_HIDE_TEXT_CLASS)\r\n }\r\n return itemElement\r\n },\r\n _getItemsWidth: function() {\r\n return this._getSummaryItemsWidth([this._$beforeSection, this._$centerSection, this._$afterSection])\r\n },\r\n _hideOverflowItems: function(elementWidth) {\r\n var overflowItems = this.$element().find(\".\" + TOOLBAR_AUTO_HIDE_ITEM_CLASS);\r\n if (!overflowItems.length) {\r\n return\r\n }\r\n elementWidth = elementWidth || getWidth(this.$element());\r\n $(overflowItems).removeClass(TOOLBAR_HIDDEN_ITEM);\r\n var itemsWidth = this._getItemsWidth();\r\n while (overflowItems.length && elementWidth < itemsWidth) {\r\n var $item = overflowItems.eq(-1);\r\n itemsWidth -= getOuterWidth($item);\r\n $item.addClass(TOOLBAR_HIDDEN_ITEM);\r\n overflowItems.splice(-1, 1)\r\n }\r\n },\r\n _getMenuItems: function() {\r\n var that = this;\r\n var menuItems = grep(this.option(\"items\") || [], (function(item) {\r\n return that._isMenuItem(item)\r\n }));\r\n var $hiddenItems = this._itemContainer().children(\".\" + TOOLBAR_AUTO_HIDE_ITEM_CLASS + \".\" + TOOLBAR_HIDDEN_ITEM).not(\".dx-state-invisible\");\r\n this._restoreItems = this._restoreItems || [];\r\n var overflowItems = [].slice.call($hiddenItems).map(item => {\r\n var itemData = that._getItemData(item);\r\n var $itemContainer = $(item);\r\n var $itemMarkup = $itemContainer.children();\r\n return extend({\r\n menuItemTemplate: function() {\r\n that._restoreItems.push({\r\n container: $itemContainer,\r\n item: $itemMarkup\r\n });\r\n var $container = $(\"
\").addClass(TOOLBAR_AUTO_HIDE_ITEM_CLASS);\r\n return $container.append($itemMarkup)\r\n }\r\n }, itemData)\r\n });\r\n return [...overflowItems, ...menuItems]\r\n },\r\n _getToolbarItems: function() {\r\n var that = this;\r\n return grep(this.option(\"items\") || [], (function(item) {\r\n return !that._isMenuItem(item)\r\n }))\r\n },\r\n _renderMenu: function() {\r\n this._renderMenuStrategy();\r\n deferRender(() => {\r\n this._menu.render()\r\n })\r\n },\r\n _renderMenuStrategy: function() {\r\n if (!this._menu) {\r\n this._menu = new ToolbarDropDownMenu(this)\r\n }\r\n },\r\n _arrangeItems: function() {\r\n if (this.$element().is(\":hidden\")) {\r\n return\r\n }\r\n this._$centerSection.css({\r\n margin: \"0 auto\",\r\n float: \"none\"\r\n });\r\n each(this._restoreItems || [], (function(_, obj) {\r\n $(obj.container).append(obj.item)\r\n }));\r\n this._restoreItems = [];\r\n var elementWidth = getWidth(this.$element());\r\n this._hideOverflowItems(elementWidth);\r\n this.callBase(elementWidth)\r\n },\r\n _itemOptionChanged: function(item, property, value) {\r\n if (this._isMenuItem(item)) {\r\n this._menu.itemOption(item, property, value)\r\n } else if (this._isToolbarItem(item)) {\r\n this.callBase(item, property, value)\r\n } else {\r\n this.callBase(item, property, value);\r\n this._menu.renderMenuItems()\r\n }\r\n if (\"disabled\" === property || \"options.disabled\" === property) {\r\n toggleItemFocusableElementTabIndex(this, item)\r\n }\r\n if (\"location\" === property) {\r\n this.repaint()\r\n }\r\n },\r\n _updateFocusableItemsTabIndex() {\r\n this._getToolbarItems().forEach(item => toggleItemFocusableElementTabIndex(this, item))\r\n },\r\n _isMenuItem: function(itemData) {\r\n return \"menu\" === itemData.location || \"always\" === itemData.locateInMenu\r\n },\r\n _isToolbarItem: function(itemData) {\r\n return void 0 === itemData.location || \"never\" === itemData.locateInMenu\r\n },\r\n _optionChanged: function(args) {\r\n var {\r\n name: name,\r\n value: value\r\n } = args;\r\n switch (name) {\r\n case \"menuItemTemplate\":\r\n this._changeMenuOption(\"itemTemplate\", this._getTemplate(value));\r\n break;\r\n case \"onItemClick\":\r\n this._changeMenuOption(name, value);\r\n this.callBase.apply(this, arguments);\r\n break;\r\n case \"menuContainer\":\r\n this._changeMenuOption(\"container\", value);\r\n break;\r\n case \"overflowMenuVisible\":\r\n this._changeMenuOption(\"opened\", value);\r\n break;\r\n case \"disabled\":\r\n this._changeMenuOption(\"disabled\", value);\r\n this.callBase.apply(this, arguments);\r\n this._updateFocusableItemsTabIndex();\r\n break;\r\n default:\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _changeMenuOption: function(name, value) {\r\n this._menu.widgetOption(name, value)\r\n }\r\n});\r\nregisterComponent(\"dxToolbar\", Toolbar);\r\nexport default Toolbar;\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.header_panel.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport $ from \"../../core/renderer\";\r\nimport Toolbar from \"../toolbar\";\r\nimport {\r\n ColumnsView\r\n} from \"./ui.grid_core.columns_view\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport \"../drop_down_menu\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getPathParts\r\n} from \"../../core/utils/data\";\r\nvar HEADER_PANEL_CLASS = \"header-panel\";\r\nvar TOOLBAR_BUTTON_CLASS = \"toolbar-button\";\r\nvar TOOLBAR_ARIA_LABEL = \"-ariaToolbar\";\r\nvar DEFAULT_TOOLBAR_ITEM_NAMES = [\"addRowButton\", \"applyFilterButton\", \"columnChooserButton\", \"exportButton\", \"groupPanel\", \"revertButton\", \"saveButton\", \"searchPanel\"];\r\nvar HeaderPanel = ColumnsView.inherit({\r\n _getToolbarItems: function() {\r\n return []\r\n },\r\n _getButtonContainer: function() {\r\n return $(\"
\").addClass(this.addWidgetPrefix(TOOLBAR_BUTTON_CLASS))\r\n },\r\n _getToolbarButtonClass: function(specificClass) {\r\n var secondClass = specificClass ? \" \" + specificClass : \"\";\r\n return this.addWidgetPrefix(TOOLBAR_BUTTON_CLASS) + secondClass\r\n },\r\n _getToolbarOptions: function() {\r\n var userToolbarOptions = this.option(\"toolbar\");\r\n var options = {\r\n toolbarOptions: {\r\n items: this._getToolbarItems(),\r\n visible: null === userToolbarOptions || void 0 === userToolbarOptions ? void 0 : userToolbarOptions.visible,\r\n disabled: null === userToolbarOptions || void 0 === userToolbarOptions ? void 0 : userToolbarOptions.disabled,\r\n onItemRendered: function(e) {\r\n var itemRenderedCallback = e.itemData.onItemRendered;\r\n if (itemRenderedCallback) {\r\n itemRenderedCallback(e)\r\n }\r\n }\r\n }\r\n };\r\n var userItems = null === userToolbarOptions || void 0 === userToolbarOptions ? void 0 : userToolbarOptions.items;\r\n options.toolbarOptions.items = this._normalizeToolbarItems(options.toolbarOptions.items, userItems);\r\n this.executeAction(\"onToolbarPreparing\", options);\r\n if (options.toolbarOptions && !isDefined(options.toolbarOptions.visible)) {\r\n var toolbarItems = options.toolbarOptions.items;\r\n options.toolbarOptions.visible = !!(null !== toolbarItems && void 0 !== toolbarItems && toolbarItems.length)\r\n }\r\n return options.toolbarOptions\r\n },\r\n _normalizeToolbarItems(defaultItems, userItems) {\r\n defaultItems.forEach(button => {\r\n if (!DEFAULT_TOOLBAR_ITEM_NAMES.includes(button.name)) {\r\n throw new Error(\"Default toolbar item '\".concat(button.name, \"' is not added to DEFAULT_TOOLBAR_ITEM_NAMES\"))\r\n }\r\n });\r\n var defaultProps = {\r\n location: \"after\"\r\n };\r\n var isArray = Array.isArray(userItems);\r\n if (!isDefined(userItems)) {\r\n return defaultItems\r\n }\r\n if (!isArray) {\r\n userItems = [userItems]\r\n }\r\n var defaultButtonsByNames = {};\r\n defaultItems.forEach(button => {\r\n defaultButtonsByNames[button.name] = button\r\n });\r\n var normalizedItems = userItems.map(button => {\r\n if (isString(button)) {\r\n button = {\r\n name: button\r\n }\r\n }\r\n if (isDefined(button.name)) {\r\n if (isDefined(defaultButtonsByNames[button.name])) {\r\n button = extend(true, {}, defaultButtonsByNames[button.name], button)\r\n } else if (DEFAULT_TOOLBAR_ITEM_NAMES.includes(button.name)) {\r\n button = _extends({}, button, {\r\n visible: false\r\n })\r\n }\r\n }\r\n return extend(true, {}, defaultProps, button)\r\n });\r\n return isArray ? normalizedItems : normalizedItems[0]\r\n },\r\n _renderCore: function() {\r\n if (!this._toolbar) {\r\n var $headerPanel = this.element();\r\n $headerPanel.addClass(this.addWidgetPrefix(HEADER_PANEL_CLASS));\r\n var label = messageLocalization.format(this.component.NAME + TOOLBAR_ARIA_LABEL);\r\n var $toolbar = $(\"
\").attr(\"aria-label\", label).appendTo($headerPanel);\r\n this._toolbar = this._createComponent($toolbar, Toolbar, this._toolbarOptions)\r\n } else {\r\n this._toolbar.option(this._toolbarOptions)\r\n }\r\n },\r\n _columnOptionChanged: noop,\r\n _handleDataChanged: function() {\r\n if (this._requireReady) {\r\n this.render()\r\n }\r\n },\r\n init: function() {\r\n this.callBase();\r\n this.createAction(\"onToolbarPreparing\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n render: function() {\r\n this._toolbarOptions = this._getToolbarOptions();\r\n this.callBase.apply(this, arguments)\r\n },\r\n setToolbarItemDisabled: function(name, optionValue) {\r\n var toolbarInstance = this._toolbar;\r\n if (toolbarInstance) {\r\n var items = toolbarInstance.option(\"items\") || [];\r\n var itemIndex = items.indexOf(items.filter((function(item) {\r\n return item.name === name\r\n }))[0]);\r\n if (itemIndex >= 0) {\r\n var itemOptionPrefix = \"items[\" + itemIndex + \"]\";\r\n if (toolbarInstance.option(itemOptionPrefix + \".options\")) {\r\n toolbarInstance.option(itemOptionPrefix + \".options.disabled\", optionValue)\r\n } else {\r\n toolbarInstance.option(itemOptionPrefix + \".disabled\", optionValue)\r\n }\r\n }\r\n }\r\n },\r\n updateToolbarDimensions: function() {\r\n var _this$_toolbar;\r\n null === (_this$_toolbar = this._toolbar) || void 0 === _this$_toolbar ? void 0 : _this$_toolbar.updateDimensions()\r\n },\r\n getHeaderPanel: function() {\r\n return this.element()\r\n },\r\n getHeight: function() {\r\n return this.getElementHeight()\r\n },\r\n optionChanged: function(args) {\r\n if (\"onToolbarPreparing\" === args.name) {\r\n this._invalidate();\r\n args.handled = true\r\n }\r\n if (\"toolbar\" === args.name) {\r\n args.handled = true;\r\n if (this._toolbar) {\r\n var parts = getPathParts(args.fullName);\r\n var optionName = args.fullName.replace(/^toolbar\\./, \"\");\r\n if (1 === parts.length) {\r\n var toolbarOptions = this._getToolbarOptions();\r\n this._toolbar.option(toolbarOptions)\r\n } else if (\"items\" === parts[1]) {\r\n if (2 === parts.length) {\r\n var _toolbarOptions = this._getToolbarOptions();\r\n this._toolbar.option(\"items\", _toolbarOptions.items)\r\n } else if (3 === parts.length) {\r\n var normalizedItem = this._normalizeToolbarItems(this._getToolbarItems(), args.value);\r\n this._toolbar.option(optionName, normalizedItem)\r\n } else if (parts.length >= 4) {\r\n this._toolbar.option(optionName, args.value)\r\n }\r\n } else {\r\n this._toolbar.option(optionName, args.value)\r\n }\r\n }\r\n }\r\n this.callBase(args)\r\n },\r\n isVisible: function() {\r\n return this._toolbarOptions && this._toolbarOptions.visible\r\n },\r\n allowDragging: noop\r\n});\r\nexport var headerPanelModule = {\r\n defaultOptions: function() {\r\n return {}\r\n },\r\n views: {\r\n headerPanel: HeaderPanel\r\n },\r\n extenders: {\r\n controllers: {\r\n resizing: {\r\n _updateDimensionsCore: function() {\r\n this.callBase.apply(this, arguments);\r\n this.getView(\"headerPanel\").updateToolbarDimensions()\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.header_panel.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n headerPanelModule\r\n} from \"../grid_core/ui.grid_core.header_panel\";\r\nexport var HeaderPanel = headerPanelModule.views.headerPanel;\r\ngridCore.registerModule(\"headerPanel\", headerPanelModule);\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.base.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n deferRender,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isFunction,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n logger\r\n} from \"../../core/utils/console\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n isMaterial\r\n} from \"../themes\";\r\nvar DATAGRID_ROW_SELECTOR = \".dx-row\";\r\nvar DATAGRID_DEPRECATED_TEMPLATE_WARNING = \"Specifying grid templates with the jQuery selector name is now deprecated. Use the DOM Node or the jQuery object that references this selector instead.\";\r\nimport \"./ui.data_grid.column_headers\";\r\nimport \"./ui.data_grid.columns_controller\";\r\nimport \"./ui.data_grid.data_controller\";\r\nimport \"./ui.data_grid.sorting\";\r\nimport \"./ui.data_grid.rows\";\r\nimport \"./ui.data_grid.context_menu\";\r\nimport \"./ui.data_grid.error_handling\";\r\nimport \"./ui.data_grid.grid_view\";\r\nimport \"./ui.data_grid.header_panel\";\r\ngridCore.registerModulesOrder([\"stateStoring\", \"columns\", \"selection\", \"editorFactory\", \"columnChooser\", \"grouping\", \"editing\", \"editingRowBased\", \"editingFormBased\", \"editingCellBased\", \"masterDetail\", \"validating\", \"adaptivity\", \"data\", \"virtualScrolling\", \"columnHeaders\", \"filterRow\", \"headerPanel\", \"headerFilter\", \"sorting\", \"search\", \"rows\", \"pager\", \"columnsResizingReordering\", \"contextMenu\", \"keyboardNavigation\", \"errorHandling\", \"summary\", \"columnFixing\", \"export\", \"gridView\"]);\r\nvar DataGrid = Widget.inherit({\r\n _activeStateUnit: DATAGRID_ROW_SELECTOR,\r\n _getDefaultOptions: function() {\r\n var result = this.callBase();\r\n each(gridCore.modules, (function() {\r\n if (isFunction(this.defaultOptions)) {\r\n extend(true, result, this.defaultOptions())\r\n }\r\n }));\r\n return result\r\n },\r\n _setDeprecatedOptions: function() {\r\n this.callBase();\r\n extend(this._deprecatedOptions, {\r\n useKeyboard: {\r\n since: \"19.2\",\r\n alias: \"keyboardNavigation.enabled\"\r\n },\r\n rowTemplate: {\r\n since: \"21.2\",\r\n message: 'Use the \"dataRowTemplate\" option instead'\r\n }\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n showRowLines: true\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterial()\r\n },\r\n options: {\r\n showRowLines: true,\r\n showColumnLines: false,\r\n headerFilter: {\r\n height: 315\r\n },\r\n editing: {\r\n useIcons: true\r\n },\r\n selection: {\r\n showCheckBoxesMode: \"always\"\r\n }\r\n }\r\n }, {\r\n device: function() {\r\n return browser.webkit\r\n },\r\n options: {\r\n loadingTimeout: 30,\r\n loadPanel: {\r\n animation: {\r\n show: {\r\n easing: \"cubic-bezier(1, 0, 1, 0)\",\r\n duration: 500,\r\n from: {\r\n opacity: 0\r\n },\r\n to: {\r\n opacity: 1\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }, {\r\n device: function(_device) {\r\n return \"desktop\" !== _device.deviceType\r\n },\r\n options: {\r\n grouping: {\r\n expandMode: \"rowClick\"\r\n }\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n gridCore.processModules(this, gridCore);\r\n gridCore.callModuleItemsMethod(this, \"init\")\r\n },\r\n _clean: noop,\r\n _optionChanged: function(args) {\r\n gridCore.callModuleItemsMethod(this, \"optionChanged\", [args]);\r\n if (!args.handled) {\r\n this.callBase(args)\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n this.updateDimensions(true)\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this.updateDimensions()\r\n }\r\n },\r\n _initMarkup: function() {\r\n this.callBase.apply(this, arguments);\r\n this.getView(\"gridView\").render(this.$element())\r\n },\r\n _renderContentImpl: function() {\r\n this.getView(\"gridView\").update()\r\n },\r\n _renderContent: function() {\r\n var that = this;\r\n deferRender((function() {\r\n that._renderContentImpl()\r\n }))\r\n },\r\n _getTemplate: function(templateName) {\r\n var template = templateName;\r\n if (isString(template) && \"#\" === template[0]) {\r\n template = $(templateName);\r\n logger.warn(DATAGRID_DEPRECATED_TEMPLATE_WARNING)\r\n }\r\n return this.callBase(template)\r\n },\r\n _dispose: function() {\r\n this.callBase();\r\n gridCore.callModuleItemsMethod(this, \"dispose\")\r\n },\r\n isReady: function() {\r\n return this.getController(\"data\").isReady()\r\n },\r\n beginUpdate: function() {\r\n this.callBase();\r\n gridCore.callModuleItemsMethod(this, \"beginUpdate\")\r\n },\r\n endUpdate: function() {\r\n gridCore.callModuleItemsMethod(this, \"endUpdate\");\r\n this.callBase()\r\n },\r\n getController: function(name) {\r\n return this._controllers[name]\r\n },\r\n getView: function(name) {\r\n return this._views[name]\r\n },\r\n focus: function(element) {\r\n this.getController(\"keyboardNavigation\").focus(element)\r\n }\r\n});\r\nDataGrid.registerModule = gridCore.registerModule.bind(gridCore);\r\nregisterComponent(\"dxDataGrid\", DataGrid);\r\nexport default DataGrid;\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.state_storing_core.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n sessionStorage\r\n} from \"../../core/utils/storage\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isDefined,\r\n isPlainObject,\r\n isEmptyObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n fromPromise\r\n} from \"../../core/utils/deferred\";\r\nvar DATE_REGEX = /^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)Z$/;\r\nvar parseDates = function parseDates(state) {\r\n if (!state) {\r\n return\r\n }\r\n each(state, (function(key, value) {\r\n if (isPlainObject(value) || Array.isArray(value)) {\r\n parseDates(value)\r\n } else if (\"string\" === typeof value) {\r\n var date = DATE_REGEX.exec(value);\r\n if (date) {\r\n state[key] = new Date(Date.UTC(+date[1], +date[2] - 1, +date[3], +date[4], +date[5], +date[6]))\r\n }\r\n }\r\n }))\r\n};\r\nexport var StateStoringController = modules.ViewController.inherit(function() {\r\n var getStorage = function(options) {\r\n var storage = \"sessionStorage\" === options.type ? sessionStorage() : getWindow().localStorage;\r\n if (!storage) {\r\n throw new Error(\"E1007\")\r\n }\r\n return storage\r\n };\r\n var getUniqueStorageKey = function(options) {\r\n return isDefined(options.storageKey) ? options.storageKey : \"storage\"\r\n };\r\n return {\r\n _loadState: function() {\r\n var options = this.option(\"stateStoring\");\r\n if (\"custom\" === options.type) {\r\n return options.customLoad && options.customLoad()\r\n }\r\n try {\r\n return JSON.parse(getStorage(options).getItem(getUniqueStorageKey(options)))\r\n } catch (e) {\r\n errors.log(e.message)\r\n }\r\n },\r\n _saveState: function(state) {\r\n var options = this.option(\"stateStoring\");\r\n if (\"custom\" === options.type) {\r\n options.customSave && options.customSave(state);\r\n return\r\n }\r\n try {\r\n getStorage(options).setItem(getUniqueStorageKey(options), JSON.stringify(state))\r\n } catch (e) {\r\n errors.log(e.message)\r\n }\r\n },\r\n publicMethods: function() {\r\n return [\"state\"]\r\n },\r\n isEnabled: function() {\r\n return this.option(\"stateStoring.enabled\")\r\n },\r\n init: function() {\r\n var that = this;\r\n that._state = {};\r\n that._isLoaded = false;\r\n that._isLoading = false;\r\n that._windowUnloadHandler = function() {\r\n if (void 0 !== that._savingTimeoutID) {\r\n that._saveState(that.state())\r\n }\r\n };\r\n eventsEngine.on(getWindow(), \"unload\", that._windowUnloadHandler);\r\n return that\r\n },\r\n isLoaded: function() {\r\n return this._isLoaded\r\n },\r\n isLoading: function() {\r\n return this._isLoading\r\n },\r\n load: function() {\r\n this._isLoading = true;\r\n var loadResult = fromPromise(this._loadState());\r\n loadResult.always(() => {\r\n this._isLoaded = true;\r\n this._isLoading = false\r\n }).done(state => {\r\n if (null !== state && !isEmptyObject(state)) {\r\n this.state(state)\r\n }\r\n });\r\n return loadResult\r\n },\r\n state: function(_state) {\r\n var that = this;\r\n if (!arguments.length) {\r\n return extend(true, {}, that._state)\r\n } else {\r\n that._state = extend({}, _state);\r\n parseDates(that._state)\r\n }\r\n },\r\n save: function() {\r\n var that = this;\r\n clearTimeout(that._savingTimeoutID);\r\n that._savingTimeoutID = setTimeout((function() {\r\n that._saveState(that.state());\r\n that._savingTimeoutID = void 0\r\n }), that.option(\"stateStoring.savingTimeout\"))\r\n },\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"stateStoring\":\r\n if (this.isEnabled() && !this.isLoading()) {\r\n this.load()\r\n }\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n dispose: function() {\r\n clearTimeout(this._savingTimeoutID);\r\n eventsEngine.off(getWindow(), \"unload\", this._windowUnloadHandler)\r\n }\r\n }\r\n}());\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.state_storing.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getKeyHash,\r\n equalByValue\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n StateStoringController\r\n} from \"./ui.grid_core.state_storing_core\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar getDataState = that => {\r\n var pagerView = that.getView(\"pagerView\");\r\n var dataController = that.getController(\"data\");\r\n var state = {\r\n allowedPageSizes: pagerView ? pagerView.getPageSizes() : void 0,\r\n filterPanel: {\r\n filterEnabled: that.option(\"filterPanel.filterEnabled\")\r\n },\r\n filterValue: that.option(\"filterValue\"),\r\n focusedRowKey: that.option(\"focusedRowEnabled\") ? that.option(\"focusedRowKey\") : void 0\r\n };\r\n return extend(state, dataController.getUserState())\r\n};\r\nvar processLoadState = that => {\r\n var columnsController = that.getController(\"columns\");\r\n var selectionController = that.getController(\"selection\");\r\n var exportController = that.getController(\"export\");\r\n var dataController = that.getController(\"data\");\r\n if (columnsController) {\r\n columnsController.columnsChanged.add((function() {\r\n that.updateState({\r\n columns: columnsController.getUserState()\r\n })\r\n }))\r\n }\r\n if (selectionController) {\r\n selectionController.selectionChanged.add((function(e) {\r\n that.updateState({\r\n selectedRowKeys: e.selectedRowKeys,\r\n selectionFilter: e.selectionFilter\r\n })\r\n }))\r\n }\r\n if (dataController) {\r\n that._initialPageSize = that.option(\"paging.pageSize\");\r\n that._initialFilterValue = that.option(\"filterValue\");\r\n dataController.changed.add((function() {\r\n var state = getDataState(that);\r\n that.updateState(state)\r\n }))\r\n }\r\n if (exportController) {\r\n exportController.selectionOnlyChanged.add((function() {\r\n that.updateState({\r\n exportSelectionOnly: exportController.selectionOnly()\r\n })\r\n }))\r\n }\r\n};\r\nvar DEFAULT_FILTER_VALUE = null;\r\nvar getFilterValue = (that, state) => {\r\n var filterSyncController = that.getController(\"filterSync\");\r\n var columnsController = that.getController(\"columns\");\r\n var hasFilterState = state.columns || void 0 !== state.filterValue;\r\n if (filterSyncController) {\r\n if (hasFilterState) {\r\n return state.filterValue || filterSyncController.getFilterValueFromColumns(state.columns)\r\n } else {\r\n return that._initialFilterValue || filterSyncController.getFilterValueFromColumns(columnsController.getColumns())\r\n }\r\n }\r\n return DEFAULT_FILTER_VALUE\r\n};\r\nexport var stateStoringModule = {\r\n defaultOptions: function() {\r\n return {\r\n stateStoring: {\r\n enabled: false,\r\n storageKey: null,\r\n type: \"localStorage\",\r\n customLoad: null,\r\n customSave: null,\r\n savingTimeout: 2e3\r\n }\r\n }\r\n },\r\n controllers: {\r\n stateStoring: StateStoringController\r\n },\r\n extenders: {\r\n views: {\r\n rowsView: {\r\n init: function() {\r\n var that = this;\r\n var dataController = that.getController(\"data\");\r\n that.callBase();\r\n dataController.stateLoaded.add((function() {\r\n if (dataController.isLoaded() && !dataController.getDataSource()) {\r\n that.setLoading(false);\r\n that.renderNoDataText();\r\n var columnHeadersView = that.component.getView(\"columnHeadersView\");\r\n columnHeadersView && columnHeadersView.render();\r\n that.component._fireContentReadyAction()\r\n }\r\n }))\r\n }\r\n }\r\n },\r\n controllers: {\r\n stateStoring: {\r\n init: function() {\r\n this.callBase.apply(this, arguments);\r\n processLoadState(this)\r\n },\r\n isLoading: function() {\r\n return this.callBase() || this.getController(\"data\").isStateLoading()\r\n },\r\n state: function(_state) {\r\n var result = this.callBase.apply(this, arguments);\r\n if (void 0 !== _state) {\r\n this.applyState(extend(true, {}, _state))\r\n }\r\n return result\r\n },\r\n updateState: function(state) {\r\n if (this.isEnabled()) {\r\n var oldState = this.state();\r\n var newState = extend({}, oldState, state);\r\n var oldStateHash = getKeyHash(oldState);\r\n var newStateHash = getKeyHash(newState);\r\n if (!equalByValue(oldStateHash, newStateHash)) {\r\n state = extend(true, {}, state);\r\n extend(this._state, state);\r\n this.save()\r\n }\r\n } else {\r\n extend(this._state, state)\r\n }\r\n },\r\n applyState: function(state) {\r\n var allowedPageSizes = state.allowedPageSizes;\r\n var searchText = state.searchText;\r\n var selectedRowKeys = state.selectedRowKeys;\r\n var selectionFilter = state.selectionFilter;\r\n var exportController = this.getController(\"export\");\r\n var columnsController = this.getController(\"columns\");\r\n var dataController = this.getController(\"data\");\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n var isVirtualScrollingMode = \"virtual\" === scrollingMode || \"infinite\" === scrollingMode;\r\n var showPageSizeSelector = true === this.option(\"pager.visible\") && this.option(\"pager.showPageSizeSelector\");\r\n this.component.beginUpdate();\r\n if (columnsController) {\r\n columnsController.setUserState(state.columns)\r\n }\r\n if (exportController) {\r\n exportController.selectionOnly(state.exportSelectionOnly)\r\n }\r\n if (!this.option(\"selection.deferred\")) {\r\n this.option(\"selectedRowKeys\", selectedRowKeys || [])\r\n }\r\n this.option(\"selectionFilter\", selectionFilter);\r\n if (allowedPageSizes && \"auto\" === this.option(\"pager.allowedPageSizes\")) {\r\n this.option(\"pager\").allowedPageSizes = allowedPageSizes\r\n }\r\n if (this.option(\"focusedRowEnabled\")) {\r\n this.option(\"focusedRowIndex\", -1);\r\n this.option(\"focusedRowKey\", state.focusedRowKey || null)\r\n }\r\n this.component.endUpdate();\r\n this.option(\"searchPanel.text\", searchText || \"\");\r\n this.option(\"filterValue\", getFilterValue(this, state));\r\n this.option(\"filterPanel.filterEnabled\", state.filterPanel ? state.filterPanel.filterEnabled : true);\r\n this.option(\"paging.pageIndex\", state.pageIndex || 0);\r\n this.option(\"paging.pageSize\", (!isVirtualScrollingMode || showPageSizeSelector) && isDefined(state.pageSize) ? state.pageSize : this._initialPageSize);\r\n dataController && dataController.reset()\r\n }\r\n },\r\n columns: {\r\n _shouldReturnVisibleColumns: function() {\r\n var result = this.callBase.apply(this, arguments);\r\n var stateStoringController = this.getController(\"stateStoring\");\r\n return result && (!stateStoringController.isEnabled() || stateStoringController.isLoaded())\r\n }\r\n },\r\n data: {\r\n callbackNames: function() {\r\n return this.callBase().concat([\"stateLoaded\"])\r\n },\r\n _refreshDataSource: function() {\r\n var callBase = this.callBase;\r\n var stateStoringController = this.getController(\"stateStoring\");\r\n if (stateStoringController.isEnabled() && !stateStoringController.isLoaded()) {\r\n clearTimeout(this._restoreStateTimeoutID);\r\n var deferred = new Deferred;\r\n this._restoreStateTimeoutID = setTimeout(() => {\r\n stateStoringController.load().always(() => {\r\n this._restoreStateTimeoutID = null\r\n }).done(() => {\r\n callBase.call(this);\r\n this.stateLoaded.fire();\r\n deferred.resolve()\r\n }).fail(error => {\r\n this.stateLoaded.fire();\r\n this._handleLoadError(error || \"Unknown error\");\r\n deferred.reject()\r\n })\r\n });\r\n return deferred.promise()\r\n } else if (!this.isStateLoading()) {\r\n callBase.call(this)\r\n }\r\n },\r\n isLoading: function() {\r\n var stateStoringController = this.getController(\"stateStoring\");\r\n return this.callBase() || stateStoringController.isLoading()\r\n },\r\n isStateLoading: function() {\r\n return isDefined(this._restoreStateTimeoutID)\r\n },\r\n isLoaded: function() {\r\n return this.callBase() && !this.isStateLoading()\r\n },\r\n dispose: function() {\r\n clearTimeout(this._restoreStateTimeoutID);\r\n this.callBase()\r\n }\r\n },\r\n selection: {\r\n _fireSelectionChanged: function(options) {\r\n var stateStoringController = this.getController(\"stateStoring\");\r\n var isDeferredSelection = this.option(\"selection.deferred\");\r\n if (stateStoringController.isLoading() && isDeferredSelection) {\r\n return\r\n }\r\n this.callBase.apply(this, arguments)\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.state_storing.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n stateStoringModule\r\n} from \"../grid_core/ui.grid_core.state_storing\";\r\ngridCore.registerModule(\"stateStoring\", stateStoringModule);\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.selection.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport gridCore from \"../data_grid/ui.data_grid.core\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n touch\r\n} from \"../../core/utils/support\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nimport holdEvent from \"../../events/hold\";\r\nimport Selection from \"../selection/selection\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport errors from \"../widget/ui.errors\";\r\nvar EDITOR_CELL_CLASS = \"dx-editor-cell\";\r\nvar ROW_CLASS = \"dx-row\";\r\nvar ROW_SELECTION_CLASS = \"dx-selection\";\r\nvar SELECT_CHECKBOX_CLASS = \"dx-select-checkbox\";\r\nvar CHECKBOXES_HIDDEN_CLASS = \"dx-select-checkboxes-hidden\";\r\nvar COMMAND_SELECT_CLASS = \"dx-command-select\";\r\nvar SELECTION_DISABLED_CLASS = \"dx-selection-disabled\";\r\nvar DATA_ROW_CLASS = \"dx-data-row\";\r\nvar SHOW_CHECKBOXES_MODE = \"selection.showCheckBoxesMode\";\r\nvar SELECTION_MODE = \"selection.mode\";\r\nvar processLongTap = function(that, dxEvent) {\r\n var selectionController = that.getController(\"selection\");\r\n var rowsView = that.getView(\"rowsView\");\r\n var $row = $(dxEvent.target).closest(\".\" + DATA_ROW_CLASS);\r\n var rowIndex = rowsView.getRowIndex($row);\r\n if (rowIndex < 0) {\r\n return\r\n }\r\n if (\"onLongTap\" === that.option(SHOW_CHECKBOXES_MODE)) {\r\n if (selectionController.isSelectionWithCheckboxes()) {\r\n selectionController.stopSelectionWithCheckboxes()\r\n } else {\r\n selectionController.startSelectionWithCheckboxes()\r\n }\r\n } else {\r\n if (\"onClick\" === that.option(SHOW_CHECKBOXES_MODE)) {\r\n selectionController.startSelectionWithCheckboxes()\r\n }\r\n if (\"always\" !== that.option(SHOW_CHECKBOXES_MODE)) {\r\n selectionController.changeItemSelection(rowIndex, {\r\n control: true\r\n })\r\n }\r\n }\r\n};\r\nvar SelectionController = gridCore.Controller.inherit(function() {\r\n var selectionCellTemplate = (container, options) => {\r\n var component = options.component;\r\n var rowsView = component.getView(\"rowsView\");\r\n if (component.option(\"renderAsync\") && !component.option(\"selection.deferred\")) {\r\n options.value = component.isRowSelected(options.row.key)\r\n }\r\n rowsView.renderSelectCheckBoxContainer($(container), options)\r\n };\r\n var selectionHeaderTemplate = (container, options) => {\r\n var column = options.column;\r\n var $cellElement = $(container);\r\n var columnHeadersView = options.component.getView(\"columnHeadersView\");\r\n $cellElement.addClass(EDITOR_CELL_CLASS);\r\n columnHeadersView._renderSelectAllCheckBox($cellElement, column);\r\n columnHeadersView._attachSelectAllCheckBoxClickEvent($cellElement)\r\n };\r\n return {\r\n init: function() {\r\n var {\r\n deferred: deferred,\r\n selectAllMode: selectAllMode,\r\n mode: mode\r\n } = this.option(\"selection\") || {};\r\n if (\"infinite\" === this.option(\"scrolling.mode\") && !deferred && \"multiple\" === mode && \"allPages\" === selectAllMode) {\r\n errors.log(\"W1018\")\r\n }\r\n this._dataController = this.getController(\"data\");\r\n this._selectionMode = mode;\r\n this._isSelectionWithCheckboxes = false;\r\n this._selection = this._createSelection();\r\n this._updateSelectColumn();\r\n this.createAction(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this._dataController && this._dataController.pushed.add(this._handleDataPushed.bind(this))\r\n },\r\n _handleDataPushed: function(changes) {\r\n var removedKeys = changes.filter(change => \"remove\" === change.type).map(change => change.key);\r\n removedKeys.length && this.deselectRows(removedKeys)\r\n },\r\n _getSelectionConfig: function() {\r\n var dataController = this._dataController;\r\n var columnsController = this.getController(\"columns\");\r\n var selectionOptions = this.option(\"selection\") || {};\r\n var deferred = selectionOptions.deferred;\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n var virtualPaging = \"virtual\" === scrollingMode || \"infinite\" === scrollingMode;\r\n var allowSelectAll = this.option(\"selection.allowSelectAll\");\r\n var legacyScrollingMode = this.option(\"scrolling.legacyMode\");\r\n return {\r\n selectedKeys: this.option(\"selectedRowKeys\"),\r\n mode: this._selectionMode,\r\n deferred: deferred,\r\n maxFilterLengthInRequest: selectionOptions.maxFilterLengthInRequest,\r\n selectionFilter: this.option(\"selectionFilter\"),\r\n ignoreDisabledItems: true,\r\n allowLoadByRange: function() {\r\n var hasGroupColumns = columnsController.getGroupColumns().length > 0;\r\n return virtualPaging && !legacyScrollingMode && !hasGroupColumns && allowSelectAll && !deferred\r\n },\r\n key: function() {\r\n return null === dataController || void 0 === dataController ? void 0 : dataController.key()\r\n },\r\n keyOf: function(item) {\r\n return null === dataController || void 0 === dataController ? void 0 : dataController.keyOf(item)\r\n },\r\n dataFields: function() {\r\n var _dataController$dataS;\r\n return null === (_dataController$dataS = dataController.dataSource()) || void 0 === _dataController$dataS ? void 0 : _dataController$dataS.select()\r\n },\r\n load: function(options) {\r\n var _dataController$dataS2;\r\n return (null === (_dataController$dataS2 = dataController.dataSource()) || void 0 === _dataController$dataS2 ? void 0 : _dataController$dataS2.load(options)) || (new Deferred).resolve([])\r\n },\r\n plainItems: function() {\r\n return dataController.items(true)\r\n },\r\n isItemSelected: function(item) {\r\n return item.selected\r\n },\r\n isSelectableItem: function(item) {\r\n return \"data\" === (null === item || void 0 === item ? void 0 : item.rowType) && !item.isNewRow\r\n },\r\n getItemData: function(item) {\r\n return (null === item || void 0 === item ? void 0 : item.oldData) || (null === item || void 0 === item ? void 0 : item.data) || item\r\n },\r\n filter: function() {\r\n return dataController.getCombinedFilter(deferred)\r\n },\r\n totalCount: () => dataController.totalCount(),\r\n getLoadOptions: function(loadItemIndex, focusedItemIndex, shiftItemIndex) {\r\n var _dataController$dataS3, _dataController$dataS4;\r\n var {\r\n sort: sort,\r\n filter: filter\r\n } = null !== (_dataController$dataS3 = null === (_dataController$dataS4 = dataController.dataSource()) || void 0 === _dataController$dataS4 ? void 0 : _dataController$dataS4.lastLoadOptions()) && void 0 !== _dataController$dataS3 ? _dataController$dataS3 : {};\r\n var minIndex = Math.min(loadItemIndex, focusedItemIndex);\r\n var maxIndex = Math.max(loadItemIndex, focusedItemIndex);\r\n if (isDefined(shiftItemIndex)) {\r\n minIndex = Math.min(shiftItemIndex, minIndex);\r\n maxIndex = Math.max(shiftItemIndex, maxIndex)\r\n }\r\n var take = maxIndex - minIndex + 1;\r\n return {\r\n skip: minIndex,\r\n take: take,\r\n filter: filter,\r\n sort: sort\r\n }\r\n },\r\n onSelectionChanged: this._updateSelectedItems.bind(this)\r\n }\r\n },\r\n _updateSelectColumn: function() {\r\n var columnsController = this.getController(\"columns\");\r\n var isSelectColumnVisible = this.isSelectColumnVisible();\r\n columnsController.addCommandColumn({\r\n type: \"selection\",\r\n command: \"select\",\r\n visible: isSelectColumnVisible,\r\n visibleIndex: -1,\r\n dataType: \"boolean\",\r\n alignment: \"center\",\r\n cssClass: COMMAND_SELECT_CLASS,\r\n width: \"auto\",\r\n cellTemplate: selectionCellTemplate,\r\n headerCellTemplate: selectionHeaderTemplate\r\n });\r\n columnsController.columnOption(\"command:select\", \"visible\", isSelectColumnVisible)\r\n },\r\n _createSelection: function() {\r\n var options = this._getSelectionConfig();\r\n return new Selection(options)\r\n },\r\n _fireSelectionChanged: function(options) {\r\n var argument = this.option(\"selection.deferred\") ? {\r\n selectionFilter: this.option(\"selectionFilter\")\r\n } : {\r\n selectedRowKeys: this.option(\"selectedRowKeys\")\r\n };\r\n this.selectionChanged.fire(argument);\r\n if (options) {\r\n this.executeAction(\"onSelectionChanged\", options)\r\n }\r\n },\r\n _updateCheckboxesState: function(options) {\r\n var isDeferredMode = options.isDeferredMode;\r\n var selectionFilter = options.selectionFilter;\r\n var selectedItemKeys = options.selectedItemKeys;\r\n var removedItemKeys = options.removedItemKeys;\r\n if (\"onClick\" === this.option(SHOW_CHECKBOXES_MODE)) {\r\n if (isDeferredMode ? selectionFilter && function(that, selectionFilter) {\r\n var keyIndex = 0;\r\n var store = that._dataController.store();\r\n var key = store && store.key();\r\n var isComplexKey = Array.isArray(key);\r\n if (!selectionFilter.length) {\r\n return false\r\n }\r\n if (isComplexKey && Array.isArray(selectionFilter[0]) && \"and\" === selectionFilter[1]) {\r\n for (var i = 0; i < selectionFilter.length; i++) {\r\n if (Array.isArray(selectionFilter[i])) {\r\n if (selectionFilter[i][0] !== key[keyIndex] || \"=\" !== selectionFilter[i][1]) {\r\n return true\r\n }\r\n keyIndex++\r\n }\r\n }\r\n return false\r\n }\r\n return key !== selectionFilter[0]\r\n }(this, selectionFilter) : selectedItemKeys.length > 1) {\r\n this.startSelectionWithCheckboxes()\r\n } else if (isDeferredMode ? selectionFilter && !selectionFilter.length : 0 === selectedItemKeys.length && removedItemKeys.length) {\r\n this.stopSelectionWithCheckboxes()\r\n }\r\n }\r\n },\r\n _updateSelectedItems: function(args) {\r\n var selectionChangedOptions;\r\n var isDeferredMode = this.option(\"selection.deferred\");\r\n var selectionFilter = this._selection.selectionFilter();\r\n var dataController = this._dataController;\r\n var items = dataController.items(true);\r\n var visibleItems = dataController.items();\r\n if (!items) {\r\n return\r\n }\r\n var isSelectionWithCheckboxes = this.isSelectionWithCheckboxes();\r\n var changedItemIndexes = this.getChangedItemIndexes(items);\r\n var visibleChangedItemIndexes = this.getChangedItemIndexes(visibleItems);\r\n this._updateCheckboxesState({\r\n selectedItemKeys: args.selectedItemKeys,\r\n removedItemKeys: args.removedItemKeys,\r\n selectionFilter: selectionFilter,\r\n isDeferredMode: isDeferredMode\r\n });\r\n if (changedItemIndexes.length || isSelectionWithCheckboxes !== this.isSelectionWithCheckboxes()) {\r\n dataController.updateItems({\r\n changeType: \"updateSelection\",\r\n itemIndexes: visibleChangedItemIndexes\r\n })\r\n }\r\n if (isDeferredMode) {\r\n this.option(\"selectionFilter\", selectionFilter);\r\n selectionChangedOptions = {}\r\n } else if (args.addedItemKeys.length || args.removedItemKeys.length) {\r\n this._selectedItemsInternalChange = true;\r\n this.option(\"selectedRowKeys\", args.selectedItemKeys.slice(0));\r\n this._selectedItemsInternalChange = false;\r\n selectionChangedOptions = {\r\n selectedRowsData: args.selectedItems.slice(0),\r\n selectedRowKeys: args.selectedItemKeys.slice(0),\r\n currentSelectedRowKeys: args.addedItemKeys.slice(0),\r\n currentDeselectedRowKeys: args.removedItemKeys.slice(0)\r\n }\r\n }\r\n this._fireSelectionChanged(selectionChangedOptions)\r\n },\r\n getChangedItemIndexes: function(items) {\r\n var itemIndexes = [];\r\n var isDeferredSelection = this.option(\"selection.deferred\");\r\n for (var i = 0, length = items.length; i < length; i++) {\r\n var row = items[i];\r\n var isItemSelected = this.isRowSelected(isDeferredSelection ? row.data : row.key);\r\n if (this._selection.isDataItem(row) && row.isSelected !== isItemSelected) {\r\n itemIndexes.push(i)\r\n }\r\n }\r\n return itemIndexes\r\n },\r\n callbackNames: function() {\r\n return [\"selectionChanged\"]\r\n },\r\n optionChanged: function(args) {\r\n this.callBase(args);\r\n switch (args.name) {\r\n case \"selection\":\r\n var oldSelectionMode = this._selectionMode;\r\n this.init();\r\n if (\"selection.showCheckBoxesMode\" !== args.fullName) {\r\n var selectionMode = this._selectionMode;\r\n var selectedRowKeys = this.option(\"selectedRowKeys\");\r\n if (oldSelectionMode !== selectionMode) {\r\n if (\"single\" === selectionMode) {\r\n if (selectedRowKeys.length > 1) {\r\n selectedRowKeys = [selectedRowKeys[0]]\r\n }\r\n } else if (\"multiple\" !== selectionMode) {\r\n selectedRowKeys = []\r\n }\r\n }\r\n this.selectRows(selectedRowKeys).always(() => {\r\n this._fireSelectionChanged()\r\n })\r\n }\r\n this.getController(\"columns\").updateColumns();\r\n args.handled = true;\r\n break;\r\n case \"selectionFilter\":\r\n this._selection.selectionFilter(args.value);\r\n args.handled = true;\r\n break;\r\n case \"selectedRowKeys\":\r\n var value = args.value || [];\r\n if (Array.isArray(value) && !this._selectedItemsInternalChange && (this.component.getDataSource() || !value.length)) {\r\n this.selectRows(value)\r\n }\r\n args.handled = true\r\n }\r\n },\r\n publicMethods: function() {\r\n return [\"selectRows\", \"deselectRows\", \"selectRowsByIndexes\", \"getSelectedRowKeys\", \"getSelectedRowsData\", \"clearSelection\", \"selectAll\", \"deselectAll\", \"startSelectionWithCheckboxes\", \"stopSelectionWithCheckboxes\", \"isRowSelected\"]\r\n },\r\n isRowSelected: function(arg) {\r\n return this._selection.isItemSelected(arg)\r\n },\r\n isSelectColumnVisible: function() {\r\n return \"multiple\" === this.option(SELECTION_MODE) && (\"always\" === this.option(SHOW_CHECKBOXES_MODE) || \"onClick\" === this.option(SHOW_CHECKBOXES_MODE) || this._isSelectionWithCheckboxes)\r\n },\r\n _isOnePageSelectAll: function() {\r\n return \"page\" === this.option(\"selection.selectAllMode\")\r\n },\r\n isSelectAll: function() {\r\n return this._selection.getSelectAllState(this._isOnePageSelectAll())\r\n },\r\n selectAll: function() {\r\n if (\"onClick\" === this.option(SHOW_CHECKBOXES_MODE)) {\r\n this.startSelectionWithCheckboxes()\r\n }\r\n return this._selection.selectAll(this._isOnePageSelectAll())\r\n },\r\n deselectAll: function() {\r\n return this._selection.deselectAll(this._isOnePageSelectAll())\r\n },\r\n clearSelection: function() {\r\n return this.selectedItemKeys([])\r\n },\r\n refresh: function() {\r\n var selectedRowKeys = this.option(\"selectedRowKeys\") || [];\r\n if (!this.option(\"selection.deferred\") && selectedRowKeys.length) {\r\n return this.selectedItemKeys(selectedRowKeys)\r\n }\r\n return (new Deferred).resolve().promise()\r\n },\r\n selectedItemKeys: function(value, preserve, isDeselect, isSelectAll) {\r\n return this._selection.selectedItemKeys(value, preserve, isDeselect, isSelectAll)\r\n },\r\n getSelectedRowKeys: function() {\r\n return this._selection.getSelectedItemKeys()\r\n },\r\n selectRows: function(keys, preserve) {\r\n return this.selectedItemKeys(keys, preserve)\r\n },\r\n deselectRows: function(keys) {\r\n return this.selectedItemKeys(keys, true, true)\r\n },\r\n selectRowsByIndexes: function(indexes) {\r\n var items = this._dataController.items();\r\n var keys = [];\r\n if (!Array.isArray(indexes)) {\r\n indexes = Array.prototype.slice.call(arguments, 0)\r\n }\r\n each(indexes, (function() {\r\n var item = items[this];\r\n if (item && \"data\" === item.rowType) {\r\n keys.push(item.key)\r\n }\r\n }));\r\n return this.selectRows(keys)\r\n },\r\n getSelectedRowsData: function() {\r\n return this._selection.getSelectedItems()\r\n },\r\n changeItemSelection: function(visibleItemIndex, keys, setFocusOnly) {\r\n keys = keys || {};\r\n if (this.isSelectionWithCheckboxes()) {\r\n keys.control = true\r\n }\r\n var loadedItemIndex = visibleItemIndex + this._dataController.getRowIndexOffset() - this._dataController.getRowIndexOffset(true);\r\n return this._selection.changeItemSelection(loadedItemIndex, keys, setFocusOnly)\r\n },\r\n focusedItemIndex: function(itemIndex) {\r\n if (isDefined(itemIndex)) {\r\n this._selection._focusedItemIndex = itemIndex\r\n } else {\r\n return this._selection._focusedItemIndex\r\n }\r\n },\r\n isSelectionWithCheckboxes: function() {\r\n return \"multiple\" === this.option(SELECTION_MODE) && (\"always\" === this.option(SHOW_CHECKBOXES_MODE) || this._isSelectionWithCheckboxes)\r\n },\r\n startSelectionWithCheckboxes: function() {\r\n if (\"multiple\" === this.option(SELECTION_MODE) && !this.isSelectionWithCheckboxes()) {\r\n this._isSelectionWithCheckboxes = true;\r\n this._updateSelectColumn();\r\n return true\r\n }\r\n return false\r\n },\r\n stopSelectionWithCheckboxes: function() {\r\n if (this._isSelectionWithCheckboxes) {\r\n this._isSelectionWithCheckboxes = false;\r\n this._updateSelectColumn();\r\n return true\r\n }\r\n return false\r\n }\r\n }\r\n}());\r\nexport var selectionModule = {\r\n defaultOptions: function() {\r\n return {\r\n selection: {\r\n mode: \"none\",\r\n showCheckBoxesMode: \"onClick\",\r\n allowSelectAll: true,\r\n selectAllMode: \"allPages\",\r\n maxFilterLengthInRequest: 1500,\r\n deferred: false\r\n },\r\n selectionFilter: [],\r\n selectedRowKeys: []\r\n }\r\n },\r\n controllers: {\r\n selection: SelectionController\r\n },\r\n extenders: {\r\n controllers: {\r\n data: {\r\n init: function() {\r\n var selectionController = this.getController(\"selection\");\r\n var isDeferredMode = this.option(\"selection.deferred\");\r\n this.callBase.apply(this, arguments);\r\n if (isDeferredMode) {\r\n selectionController._updateCheckboxesState({\r\n isDeferredMode: true,\r\n selectionFilter: this.option(\"selectionFilter\")\r\n })\r\n }\r\n },\r\n _loadDataSource: function() {\r\n var that = this;\r\n return that.callBase().done((function() {\r\n that.getController(\"selection\").refresh()\r\n }))\r\n },\r\n _processDataItem: function(item, options) {\r\n var that = this;\r\n var selectionController = that.getController(\"selection\");\r\n var hasSelectColumn = selectionController.isSelectColumnVisible();\r\n var isDeferredSelection = options.isDeferredSelection = void 0 === options.isDeferredSelection ? this.option(\"selection.deferred\") : options.isDeferredSelection;\r\n var dataItem = this.callBase.apply(this, arguments);\r\n dataItem.isSelected = selectionController.isRowSelected(isDeferredSelection ? dataItem.data : dataItem.key);\r\n if (hasSelectColumn && dataItem.values) {\r\n for (var i = 0; i < options.visibleColumns.length; i++) {\r\n if (\"select\" === options.visibleColumns[i].command) {\r\n dataItem.values[i] = dataItem.isSelected;\r\n break\r\n }\r\n }\r\n }\r\n return dataItem\r\n },\r\n refresh: function(options) {\r\n var that = this;\r\n var d = new Deferred;\r\n this.callBase.apply(this, arguments).done((function() {\r\n if (!options || options.selection) {\r\n that.getController(\"selection\").refresh().done(d.resolve).fail(d.reject)\r\n } else {\r\n d.resolve()\r\n }\r\n })).fail(d.reject);\r\n return d.promise()\r\n },\r\n _handleDataChanged: function(e) {\r\n this.callBase.apply(this, arguments);\r\n if ((!e || \"refresh\" === e.changeType) && !this._repaintChangesOnly) {\r\n this.getController(\"selection\").focusedItemIndex(-1)\r\n }\r\n },\r\n _applyChange: function(change) {\r\n if (change && \"updateSelection\" === change.changeType) {\r\n change.items.forEach((item, index) => {\r\n var currentItem = this._items[index];\r\n if (currentItem) {\r\n currentItem.isSelected = item.isSelected;\r\n currentItem.values = item.values\r\n }\r\n });\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _endUpdateCore: function() {\r\n var changes = this._changes;\r\n var isUpdateSelection = changes.length > 1 && changes.every(change => \"updateSelection\" === change.changeType);\r\n if (isUpdateSelection) {\r\n var itemIndexes = changes.map(change => change.itemIndexes || []).reduce((a, b) => a.concat(b));\r\n this._changes = [{\r\n changeType: \"updateSelection\",\r\n itemIndexes: itemIndexes\r\n }]\r\n }\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n contextMenu: {\r\n _contextMenuPrepared: function(options) {\r\n var dxEvent = options.event;\r\n if (dxEvent.originalEvent && \"dxhold\" !== dxEvent.originalEvent.type || options.items && options.items.length > 0) {\r\n return\r\n }\r\n processLongTap(this, dxEvent)\r\n }\r\n }\r\n },\r\n views: {\r\n columnHeadersView: {\r\n init: function() {\r\n this.callBase();\r\n this.getController(\"selection\").selectionChanged.add(this._updateSelectAllValue.bind(this))\r\n },\r\n _updateSelectAllValue: function() {\r\n var $element = this.element();\r\n var $editor = $element && $element.find(\".\" + SELECT_CHECKBOX_CLASS);\r\n if ($element && $editor.length && \"multiple\" === this.option(\"selection.mode\")) {\r\n var selectAllValue = this.getController(\"selection\").isSelectAll();\r\n var hasSelection = false !== selectAllValue;\r\n var isVisible = this.option(\"selection.allowSelectAll\") ? !this.getController(\"data\").isEmpty() : hasSelection;\r\n $editor.dxCheckBox(\"instance\").option({\r\n visible: isVisible,\r\n value: selectAllValue\r\n })\r\n }\r\n },\r\n _handleDataChanged: function(e) {\r\n this.callBase(e);\r\n if (!e || \"refresh\" === e.changeType || e.repaintChangesOnly && \"update\" === e.changeType) {\r\n this._updateSelectAllValue()\r\n }\r\n },\r\n _renderSelectAllCheckBox: function($container, column) {\r\n var that = this;\r\n var selectionController = that.getController(\"selection\");\r\n var isEmptyData = that.getController(\"data\").isEmpty();\r\n var groupElement = $(\"
\").appendTo($container).addClass(SELECT_CHECKBOX_CLASS);\r\n that.setAria(\"label\", messageLocalization.format(\"dxDataGrid-ariaSelectAll\"), groupElement);\r\n that.getController(\"editorFactory\").createEditor(groupElement, extend({}, column, {\r\n parentType: \"headerRow\",\r\n dataType: \"boolean\",\r\n value: selectionController.isSelectAll(),\r\n editorOptions: {\r\n visible: !isEmptyData && (that.option(\"selection.allowSelectAll\") || false !== selectionController.isSelectAll())\r\n },\r\n tabIndex: that.option(\"useLegacyKeyboardNavigation\") ? -1 : that.option(\"tabIndex\") || 0,\r\n setValue: function(value, e) {\r\n var allowSelectAll = that.option(\"selection.allowSelectAll\");\r\n e.component.option(\"visible\", allowSelectAll || false !== e.component.option(\"value\"));\r\n if (!e.event || selectionController.isSelectAll() === value) {\r\n return\r\n }\r\n if (e.value && !allowSelectAll) {\r\n e.component.option(\"value\", false)\r\n } else {\r\n e.value ? selectionController.selectAll() : selectionController.deselectAll()\r\n }\r\n e.event.preventDefault()\r\n }\r\n }));\r\n return groupElement\r\n },\r\n _attachSelectAllCheckBoxClickEvent: function($element) {\r\n eventsEngine.on($element, clickEventName, this.createAction((function(e) {\r\n var event = e.event;\r\n if (!$(event.target).closest(\".\" + SELECT_CHECKBOX_CLASS).length) {\r\n eventsEngine.trigger($(event.currentTarget).children(\".\" + SELECT_CHECKBOX_CLASS), clickEventName)\r\n }\r\n event.preventDefault()\r\n })))\r\n }\r\n },\r\n rowsView: {\r\n renderSelectCheckBoxContainer: function($container, options) {\r\n if (\"data\" === options.rowType && !options.row.isNewRow) {\r\n $container.addClass(EDITOR_CELL_CLASS);\r\n this._attachCheckBoxClickEvent($container);\r\n this._renderSelectCheckBox($container, options)\r\n } else {\r\n gridCoreUtils.setEmptyText($container)\r\n }\r\n },\r\n _renderSelectCheckBox: function(container, options) {\r\n var groupElement = $(\"
\").addClass(SELECT_CHECKBOX_CLASS).appendTo(container);\r\n this.setAria(\"label\", messageLocalization.format(\"dxDataGrid-ariaSelectRow\"), groupElement);\r\n this.getController(\"editorFactory\").createEditor(groupElement, extend({}, options.column, {\r\n parentType: \"dataRow\",\r\n dataType: \"boolean\",\r\n lookup: null,\r\n value: options.value,\r\n setValue: function(value, e) {\r\n var _e$event;\r\n if (\"keydown\" === (null === e || void 0 === e ? void 0 : null === (_e$event = e.event) || void 0 === _e$event ? void 0 : _e$event.type)) {\r\n eventsEngine.trigger(e.element, clickEventName, e)\r\n }\r\n },\r\n row: options.row\r\n }));\r\n return groupElement\r\n },\r\n _attachCheckBoxClickEvent: function($element) {\r\n eventsEngine.on($element, clickEventName, this.createAction((function(e) {\r\n var selectionController = this.getController(\"selection\");\r\n var event = e.event;\r\n var rowIndex = this.getRowIndex($(event.currentTarget).closest(\".\" + ROW_CLASS));\r\n if (rowIndex >= 0) {\r\n selectionController.startSelectionWithCheckboxes();\r\n selectionController.changeItemSelection(rowIndex, {\r\n shift: event.shiftKey\r\n });\r\n if ($(event.target).closest(\".\" + SELECT_CHECKBOX_CLASS).length) {\r\n this.getController(\"data\").updateItems({\r\n changeType: \"updateSelection\",\r\n itemIndexes: [rowIndex]\r\n })\r\n }\r\n }\r\n })))\r\n },\r\n _update: function(change) {\r\n var that = this;\r\n var tableElements = that.getTableElements();\r\n if (\"updateSelection\" === change.changeType) {\r\n if (tableElements.length > 0) {\r\n each(tableElements, (function(_, tableElement) {\r\n each(change.itemIndexes || [], (function(_, index) {\r\n var $row;\r\n if (change.items[index]) {\r\n $row = that._getRowElements($(tableElement)).eq(index);\r\n if ($row.length) {\r\n var isSelected = change.items[index].isSelected;\r\n $row.toggleClass(ROW_SELECTION_CLASS, void 0 === isSelected ? false : isSelected).find(\".\" + SELECT_CHECKBOX_CLASS).dxCheckBox(\"option\", \"value\", isSelected);\r\n that.setAria(\"selected\", isSelected, $row)\r\n }\r\n }\r\n }))\r\n }));\r\n that._updateCheckboxesClass()\r\n }\r\n } else {\r\n that.callBase(change)\r\n }\r\n },\r\n _createTable: function() {\r\n var that = this;\r\n var selectionMode = that.option(\"selection.mode\");\r\n var $table = that.callBase.apply(that, arguments);\r\n if (\"none\" !== selectionMode) {\r\n if (\"onLongTap\" === that.option(SHOW_CHECKBOXES_MODE) || !touch) {\r\n eventsEngine.on($table, addNamespace(holdEvent.name, \"dxDataGridRowsView\"), \".\" + DATA_ROW_CLASS, that.createAction((function(e) {\r\n processLongTap(that.component, e.event);\r\n e.event.stopPropagation()\r\n })))\r\n }\r\n eventsEngine.on($table, \"mousedown selectstart\", that.createAction((function(e) {\r\n var event = e.event;\r\n if (event.shiftKey) {\r\n event.preventDefault()\r\n }\r\n })))\r\n }\r\n return $table\r\n },\r\n _createRow: function(row) {\r\n var $row = this.callBase.apply(this, arguments);\r\n if (row) {\r\n var isSelected = row.isSelected;\r\n if (isSelected) {\r\n $row.addClass(ROW_SELECTION_CLASS)\r\n }\r\n var selectionMode = this.option(SELECTION_MODE);\r\n if (\"none\" !== selectionMode) {\r\n this.setAria(\"selected\", isSelected, $row)\r\n }\r\n }\r\n return $row\r\n },\r\n _rowClick: function(e) {\r\n var dxEvent = e.event;\r\n var isSelectionDisabled = $(dxEvent.target).closest(\".\" + SELECTION_DISABLED_CLASS).length;\r\n if (!this.isClickableElement($(dxEvent.target))) {\r\n if (!isSelectionDisabled && (\"multiple\" !== this.option(SELECTION_MODE) || \"always\" !== this.option(SHOW_CHECKBOXES_MODE))) {\r\n if (this.getController(\"selection\").changeItemSelection(e.rowIndex, {\r\n control: isCommandKeyPressed(dxEvent),\r\n shift: dxEvent.shiftKey\r\n })) {\r\n dxEvent.preventDefault();\r\n e.handled = true\r\n }\r\n }\r\n this.callBase(e)\r\n }\r\n },\r\n isClickableElement: function($target) {\r\n var isCommandSelect = $target.closest(\".\" + COMMAND_SELECT_CLASS).length;\r\n return !!isCommandSelect\r\n },\r\n _renderCore: function(change) {\r\n this.callBase(change);\r\n this._updateCheckboxesClass()\r\n },\r\n _updateCheckboxesClass: function() {\r\n var tableElements = this.getTableElements();\r\n var selectionController = this.getController(\"selection\");\r\n var isCheckBoxesHidden = selectionController.isSelectColumnVisible() && !selectionController.isSelectionWithCheckboxes();\r\n each(tableElements, (function(_, tableElement) {\r\n $(tableElement).toggleClass(CHECKBOXES_HIDDEN_CLASS, isCheckBoxesHidden)\r\n }))\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.selection.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n selectionModule\r\n} from \"../grid_core/ui.grid_core.selection\";\r\ngridCore.registerModule(\"selection\", selectionModule);\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.column_chooser.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth,\r\n getOuterHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n deferUpdate,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport {\r\n ColumnsView\r\n} from \"./ui.grid_core.columns_view\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n isMaterial as isMaterialTheme,\r\n isGeneric,\r\n current\r\n} from \"../themes\";\r\nimport TreeView from \"../tree_view\";\r\nimport devices from \"../../core/devices\";\r\nimport Popup from \"../popup\";\r\nimport Button from \"../button\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nvar COLUMN_CHOOSER_CLASS = \"column-chooser\";\r\nvar COLUMN_CHOOSER_BUTTON_CLASS = \"column-chooser-button\";\r\nvar NOTOUCH_ACTION_CLASS = \"notouch-action\";\r\nvar COLUMN_CHOOSER_LIST_CLASS = \"column-chooser-list\";\r\nvar COLUMN_CHOOSER_PLAIN_CLASS = \"column-chooser-plain\";\r\nvar COLUMN_CHOOSER_DRAG_CLASS = \"column-chooser-mode-drag\";\r\nvar COLUMN_CHOOSER_SELECT_CLASS = \"column-chooser-mode-select\";\r\nvar COLUMN_CHOOSER_ICON_NAME = \"column-chooser\";\r\nvar COLUMN_CHOOSER_ITEM_CLASS = \"dx-column-chooser-item\";\r\nvar TREEVIEW_NODE_SELECTOR = \".dx-treeview-node\";\r\nvar CHECKBOX_SELECTOR = \".dx-checkbox\";\r\nvar CLICK_TIMEOUT = 300;\r\nvar processItems = function(that, chooserColumns) {\r\n var items = [];\r\n var isSelectMode = \"select\" === that.option(\"columnChooser.mode\");\r\n if (chooserColumns.length) {\r\n each(chooserColumns, (function(index, column) {\r\n var item = {\r\n text: column.caption,\r\n cssClass: column.cssClass,\r\n allowHiding: column.allowHiding,\r\n expanded: true,\r\n id: column.index,\r\n disabled: false,\r\n disableCheckBox: false === column.allowHiding,\r\n parentId: isDefined(column.ownerBand) ? column.ownerBand : null\r\n };\r\n if (isSelectMode) {\r\n item.selected = column.visible\r\n }\r\n items.push(item)\r\n }))\r\n }\r\n return items\r\n};\r\nvar ColumnChooserController = modules.ViewController.inherit({\r\n renderShowColumnChooserButton: function($element) {\r\n var that = this;\r\n var columnChooserButtonClass = that.addWidgetPrefix(COLUMN_CHOOSER_BUTTON_CLASS);\r\n var columnChooserEnabled = that.option(\"columnChooser.enabled\");\r\n var $showColumnChooserButton = $element.find(\".\" + columnChooserButtonClass);\r\n var $columnChooserButton;\r\n if (columnChooserEnabled) {\r\n if (!$showColumnChooserButton.length) {\r\n $columnChooserButton = $(\"
\").addClass(columnChooserButtonClass).appendTo($element);\r\n that._createComponent($columnChooserButton, Button, {\r\n icon: COLUMN_CHOOSER_ICON_NAME,\r\n onClick: function() {\r\n that.getView(\"columnChooserView\").showColumnChooser()\r\n },\r\n hint: that.option(\"columnChooser.title\"),\r\n integrationOptions: {}\r\n })\r\n } else {\r\n $showColumnChooserButton.show()\r\n }\r\n } else {\r\n $showColumnChooserButton.hide()\r\n }\r\n },\r\n getPosition: function() {\r\n var rowsView = this.getView(\"rowsView\");\r\n return {\r\n my: \"right bottom\",\r\n at: \"right bottom\",\r\n of: rowsView && rowsView.element(),\r\n collision: \"fit\",\r\n offset: \"-2 -2\",\r\n boundaryOffset: \"2 2\"\r\n }\r\n }\r\n});\r\nvar ColumnChooserView = ColumnsView.inherit({\r\n _resizeCore: noop,\r\n _isWinDevice: function() {\r\n return !!devices.real().win\r\n },\r\n _updateList: function(change) {\r\n var items;\r\n var $popupContent = this._popupContainer.$content();\r\n var isSelectMode = \"select\" === this.option(\"columnChooser.mode\");\r\n var columnChooserList = this._columnChooserList;\r\n var chooserColumns = this._columnsController.getChooserColumns(isSelectMode);\r\n this._popupContainer.setAria({\r\n role: \"dialog\",\r\n label: messageLocalization.format(\"dxDataGrid-columnChooserTitle\")\r\n });\r\n if (isSelectMode && columnChooserList && change && \"selection\" === change.changeType) {\r\n items = processItems(this, chooserColumns);\r\n for (var i = 0; i < items.length; i++) {\r\n var selected = items[i].selected;\r\n var id = items[i].id;\r\n if (id === change.columnIndex) {\r\n if (selected) {\r\n columnChooserList.selectItem(id, selected)\r\n } else {\r\n columnChooserList.unselectItem(id, selected)\r\n }\r\n }\r\n }\r\n } else if (!isSelectMode || !columnChooserList || \"full\" === change) {\r\n this._popupContainer.$wrapper().toggleClass(this.addWidgetPrefix(COLUMN_CHOOSER_DRAG_CLASS), !isSelectMode).toggleClass(this.addWidgetPrefix(COLUMN_CHOOSER_SELECT_CLASS), isSelectMode);\r\n items = processItems(this, chooserColumns);\r\n this._renderTreeView($popupContent, items)\r\n }\r\n },\r\n _initializePopupContainer: function() {\r\n var that = this;\r\n var $element = that.element().addClass(that.addWidgetPrefix(COLUMN_CHOOSER_CLASS));\r\n var columnChooserOptions = that.option(\"columnChooser\");\r\n var themeName = current();\r\n var isGenericTheme = isGeneric(themeName);\r\n var isMaterial = isMaterialTheme(themeName);\r\n var dxPopupOptions = {\r\n visible: false,\r\n shading: false,\r\n showCloseButton: false,\r\n dragEnabled: true,\r\n resizeEnabled: true,\r\n copyRootClassesToWrapper: true,\r\n _ignoreCopyRootClassesToWrapperDeprecation: true,\r\n toolbarItems: [{\r\n text: columnChooserOptions.title,\r\n toolbar: \"top\",\r\n location: isGenericTheme || isMaterial ? \"before\" : \"center\"\r\n }],\r\n position: that.getController(\"columnChooser\").getPosition(),\r\n width: columnChooserOptions.width,\r\n height: columnChooserOptions.height,\r\n rtlEnabled: that.option(\"rtlEnabled\"),\r\n onHidden: function() {\r\n if (that._isWinDevice()) {\r\n $(\"body\").removeClass(that.addWidgetPrefix(NOTOUCH_ACTION_CLASS))\r\n }\r\n },\r\n container: columnChooserOptions.container\r\n };\r\n if (isGenericTheme || isMaterial) {\r\n extend(dxPopupOptions, {\r\n showCloseButton: true\r\n })\r\n } else {\r\n dxPopupOptions.toolbarItems[dxPopupOptions.toolbarItems.length] = {\r\n shortcut: \"cancel\"\r\n }\r\n }\r\n if (!isDefined(this._popupContainer)) {\r\n that._popupContainer = that._createComponent($element, Popup, dxPopupOptions);\r\n that._popupContainer.on(\"optionChanged\", (function(args) {\r\n if (\"visible\" === args.name) {\r\n that.renderCompleted.fire()\r\n }\r\n }))\r\n } else {\r\n this._popupContainer.option(dxPopupOptions)\r\n }\r\n },\r\n _renderCore: function(change) {\r\n if (this._popupContainer) {\r\n this._updateList(change)\r\n }\r\n },\r\n _renderTreeView: function($container, items) {\r\n var that = this;\r\n var columnChooser = this.option(\"columnChooser\");\r\n var isSelectMode = \"select\" === columnChooser.mode;\r\n var treeViewConfig = {\r\n items: items,\r\n dataStructure: \"plain\",\r\n activeStateEnabled: true,\r\n focusStateEnabled: true,\r\n hoverStateEnabled: true,\r\n itemTemplate: \"item\",\r\n showCheckBoxesMode: \"none\",\r\n rootValue: null,\r\n searchEnabled: columnChooser.allowSearch,\r\n searchTimeout: columnChooser.searchTimeout,\r\n onItemRendered: function(e) {\r\n if (e.itemData.disableCheckBox) {\r\n var $treeViewNode = $(e.itemElement).closest(TREEVIEW_NODE_SELECTOR);\r\n var $checkBox;\r\n if ($treeViewNode.length) {\r\n $checkBox = $treeViewNode.find(CHECKBOX_SELECTOR);\r\n if ($checkBox.length) {\r\n var checkBoxInstance = $checkBox.data(\"dxCheckBox\");\r\n checkBoxInstance && checkBoxInstance.option(\"disabled\", true)\r\n }\r\n }\r\n }\r\n }\r\n };\r\n var scrollableInstance = $container.find(\".dx-scrollable\").data(\"dxScrollable\");\r\n var scrollTop = scrollableInstance && scrollableInstance.scrollTop();\r\n if (isSelectMode && !this._columnsController.isBandColumnsUsed()) {\r\n $container.addClass(this.addWidgetPrefix(COLUMN_CHOOSER_PLAIN_CLASS))\r\n }\r\n treeViewConfig.onContentReady = function(e) {\r\n deferUpdate((function() {\r\n if (scrollTop) {\r\n var scrollable = $(e.element).find(\".dx-scrollable\").data(\"dxScrollable\");\r\n scrollable && scrollable.scrollTo({\r\n y: scrollTop\r\n })\r\n }\r\n that.renderCompleted.fire()\r\n }))\r\n };\r\n if (this._isWinDevice()) {\r\n treeViewConfig.useNativeScrolling = false\r\n }\r\n extend(treeViewConfig, isSelectMode ? this._prepareSelectModeConfig() : this._prepareDragModeConfig());\r\n if (this._columnChooserList) {\r\n if (!treeViewConfig.searchEnabled) {\r\n treeViewConfig.searchValue = \"\"\r\n }\r\n this._columnChooserList.option(treeViewConfig)\r\n } else {\r\n this._columnChooserList = this._createComponent($container, TreeView, treeViewConfig);\r\n $container.addClass(this.addWidgetPrefix(COLUMN_CHOOSER_LIST_CLASS))\r\n }\r\n },\r\n _prepareDragModeConfig: function() {\r\n var columnChooserOptions = this.option(\"columnChooser\");\r\n return {\r\n noDataText: columnChooserOptions.emptyPanelText,\r\n activeStateEnabled: false,\r\n focusStateEnabled: false,\r\n hoverStateEnabled: false,\r\n itemTemplate: function(data, index, item) {\r\n $(item).text(data.text).parent().addClass(data.cssClass).addClass(COLUMN_CHOOSER_ITEM_CLASS)\r\n }\r\n }\r\n },\r\n _prepareSelectModeConfig: function() {\r\n var that = this;\r\n return {\r\n selectNodesRecursive: false,\r\n showCheckBoxesMode: \"normal\",\r\n onItemSelectionChanged: function(e) {\r\n var visibleColumns = that._columnsController.getVisibleColumns().filter((function(item) {\r\n return !item.command\r\n }));\r\n var isLastColumnUnselected = 1 === visibleColumns.length && !e.itemData.selected;\r\n if (isLastColumnUnselected) {\r\n e.component.selectItem(e.itemElement)\r\n } else {\r\n setTimeout((function() {\r\n that._columnsController.columnOption(e.itemData.id, \"visible\", e.itemData.selected)\r\n }), CLICK_TIMEOUT)\r\n }\r\n }\r\n }\r\n },\r\n _columnOptionChanged: function(e) {\r\n var changeTypes = e.changeTypes;\r\n var optionNames = e.optionNames;\r\n var isSelectMode = \"select\" === this.option(\"columnChooser.mode\");\r\n this.callBase(e);\r\n if (isSelectMode) {\r\n var needPartialRender = optionNames.visible && 1 === optionNames.length && void 0 !== e.columnIndex;\r\n var needFullRender = optionNames.showInColumnChooser || optionNames.caption || optionNames.visible || changeTypes.columns && optionNames.all;\r\n if (needPartialRender) {\r\n this.render(null, {\r\n changeType: \"selection\",\r\n columnIndex: e.columnIndex\r\n })\r\n } else if (needFullRender) {\r\n this.render(null, \"full\")\r\n }\r\n }\r\n },\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"columnChooser\":\r\n this._initializePopupContainer();\r\n this.render(null, \"full\");\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n getColumnElements: function() {\r\n var result = [];\r\n var $node;\r\n var isSelectMode = \"select\" === this.option(\"columnChooser.mode\");\r\n var chooserColumns = this._columnsController.getChooserColumns(isSelectMode);\r\n var $content = this._popupContainer && this._popupContainer.$content();\r\n var $nodes = $content && $content.find(\".dx-treeview-node\");\r\n if ($nodes) {\r\n chooserColumns.forEach((function(column) {\r\n $node = $nodes.filter(\"[data-item-id = '\" + column.index + \"']\");\r\n var item = $node.length ? $node.children(\".\" + COLUMN_CHOOSER_ITEM_CLASS).get(0) : null;\r\n result.push(item)\r\n }))\r\n }\r\n return $(result)\r\n },\r\n getName: function() {\r\n return \"columnChooser\"\r\n },\r\n getColumns: function() {\r\n return this._columnsController.getChooserColumns()\r\n },\r\n allowDragging: function(column, sourceLocation) {\r\n var columnVisible = column && column.allowHiding && (\"columnChooser\" !== sourceLocation || !column.visible && this._columnsController.isParentColumnVisible(column.index));\r\n return this.isColumnChooserVisible() && columnVisible\r\n },\r\n getBoundingRect: function() {\r\n var container = this._popupContainer && this._popupContainer.$overlayContent();\r\n if (container && container.is(\":visible\")) {\r\n var offset = container.offset();\r\n return {\r\n left: offset.left,\r\n top: offset.top,\r\n right: offset.left + getOuterWidth(container),\r\n bottom: offset.top + getOuterHeight(container)\r\n }\r\n }\r\n return null\r\n },\r\n showColumnChooser: function() {\r\n if (!this._popupContainer) {\r\n this._initializePopupContainer();\r\n this.render()\r\n }\r\n this._popupContainer.show();\r\n if (this._isWinDevice()) {\r\n $(\"body\").addClass(this.addWidgetPrefix(NOTOUCH_ACTION_CLASS))\r\n }\r\n },\r\n hideColumnChooser: function() {\r\n if (this._popupContainer) {\r\n this._popupContainer.hide()\r\n }\r\n },\r\n isColumnChooserVisible: function() {\r\n var popupContainer = this._popupContainer;\r\n return popupContainer && popupContainer.option(\"visible\")\r\n },\r\n publicMethods: function() {\r\n return [\"showColumnChooser\", \"hideColumnChooser\"]\r\n }\r\n});\r\nexport var columnChooserModule = {\r\n defaultOptions: function() {\r\n return {\r\n columnChooser: {\r\n enabled: false,\r\n allowSearch: false,\r\n searchTimeout: 500,\r\n mode: \"dragAndDrop\",\r\n width: 250,\r\n height: 260,\r\n title: messageLocalization.format(\"dxDataGrid-columnChooserTitle\"),\r\n emptyPanelText: messageLocalization.format(\"dxDataGrid-columnChooserEmptyText\"),\r\n container: void 0\r\n }\r\n }\r\n },\r\n controllers: {\r\n columnChooser: ColumnChooserController\r\n },\r\n views: {\r\n columnChooserView: ColumnChooserView\r\n },\r\n extenders: {\r\n views: {\r\n headerPanel: {\r\n _getToolbarItems: function() {\r\n var items = this.callBase();\r\n return this._appendColumnChooserItem(items)\r\n },\r\n _appendColumnChooserItem: function(items) {\r\n var that = this;\r\n var columnChooserEnabled = that.option(\"columnChooser.enabled\");\r\n if (columnChooserEnabled) {\r\n var hintText = that.option(\"columnChooser.title\");\r\n var toolbarItem = {\r\n widget: \"dxButton\",\r\n options: {\r\n icon: COLUMN_CHOOSER_ICON_NAME,\r\n onClick: function() {\r\n that.component.getView(\"columnChooserView\").showColumnChooser()\r\n },\r\n hint: hintText,\r\n text: hintText,\r\n onInitialized: function(e) {\r\n $(e.element).addClass(that._getToolbarButtonClass(that.addWidgetPrefix(COLUMN_CHOOSER_BUTTON_CLASS)))\r\n },\r\n elementAttr: {\r\n \"aria-haspopup\": \"dialog\"\r\n }\r\n },\r\n showText: \"inMenu\",\r\n location: \"after\",\r\n name: \"columnChooserButton\",\r\n locateInMenu: \"auto\",\r\n sortIndex: 40\r\n };\r\n items.push(toolbarItem)\r\n }\r\n return items\r\n },\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"columnChooser\":\r\n this._invalidate();\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n isVisible: function() {\r\n var columnChooserEnabled = this.option(\"columnChooser.enabled\");\r\n return this.callBase() || columnChooserEnabled\r\n }\r\n }\r\n },\r\n controllers: {\r\n columns: {\r\n allowMoveColumn: function(fromVisibleIndex, toVisibleIndex, sourceLocation, targetLocation) {\r\n var columnChooserMode = this.option(\"columnChooser.mode\");\r\n var isMoveColumnDisallowed = \"select\" === columnChooserMode && \"columnChooser\" === targetLocation;\r\n return isMoveColumnDisallowed ? false : this.callBase(fromVisibleIndex, toVisibleIndex, sourceLocation, targetLocation)\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.column_chooser.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n columnChooserModule\r\n} from \"../grid_core/ui.grid_core.column_chooser\";\r\nexport var ColumnChooserController = columnChooserModule.controllers.columnChooser;\r\nexport var ColumnChooserView = columnChooserModule.views.columnChooserView;\r\ngridCore.registerModule(\"columnChooser\", columnChooserModule);\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.grouping.core.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Class from \"../../core/class\";\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n normalizeSortingInfo\r\n} from \"../../data/utils\";\r\nimport {\r\n when\r\n} from \"../../core/utils/deferred\";\r\nexport function createOffsetFilter(path, storeLoadOptions, lastLevelOnly) {\r\n var groups = normalizeSortingInfo(storeLoadOptions.group);\r\n var filter = [];\r\n for (var i = lastLevelOnly ? path.length - 1 : 0; i < path.length; i++) {\r\n var filterElement = [];\r\n for (var j = 0; j <= i; j++) {\r\n var selector = groups[j].selector;\r\n if (i === j && (null === path[j] || false === path[j] || true === path[j])) {\r\n if (false === path[j]) {\r\n filterElement.push([selector, \"=\", groups[j].desc ? true : null])\r\n } else if (path[j] ? !groups[j].desc : groups[j].desc) {\r\n filterElement.push([selector, \"<>\", path[j]])\r\n } else {\r\n filterElement.push([selector, \"<>\", null]);\r\n filterElement.push([selector, \"=\", null])\r\n }\r\n } else {\r\n var currentFilter = [selector, i === j ? groups[j].desc ? \">\" : \"<\" : \"=\", path[j]];\r\n if (\"<\" === currentFilter[1]) {\r\n filterElement.push([currentFilter, \"or\", [selector, \"=\", null]])\r\n } else {\r\n filterElement.push(currentFilter)\r\n }\r\n }\r\n }\r\n filter.push(gridCore.combineFilters(filterElement))\r\n }\r\n filter = gridCore.combineFilters(filter, \"or\");\r\n return gridCore.combineFilters([filter, storeLoadOptions.filter])\r\n}\r\nexport var GroupingHelper = Class.inherit(function() {\r\n var findGroupInfoByKey = function(groupsInfo, key) {\r\n var hash = groupsInfo.hash;\r\n return hash && hash[JSON.stringify(key)]\r\n };\r\n var getGroupInfoIndexByOffset = function(groupsInfo, offset) {\r\n var leftIndex = 0;\r\n var rightIndex = groupsInfo.length - 1;\r\n if (!groupsInfo.length) {\r\n return 0\r\n }\r\n do {\r\n var middleIndex = rightIndex + leftIndex >> 1;\r\n if (groupsInfo[middleIndex].offset > offset) {\r\n rightIndex = middleIndex\r\n } else {\r\n leftIndex = middleIndex\r\n }\r\n } while (rightIndex - leftIndex > 1);\r\n var index;\r\n for (index = leftIndex; index <= rightIndex; index++) {\r\n if (groupsInfo[index].offset > offset) {\r\n break\r\n }\r\n }\r\n return index\r\n };\r\n return {\r\n ctor: function(dataSourceAdapter) {\r\n this._dataSource = dataSourceAdapter;\r\n this.reset()\r\n },\r\n reset: function() {\r\n this._groupsInfo = [];\r\n this._totalCountCorrection = 0\r\n },\r\n totalCountCorrection: function() {\r\n return this._totalCountCorrection\r\n },\r\n updateTotalItemsCount: function(totalCountCorrection) {\r\n this._totalCountCorrection = totalCountCorrection || 0\r\n },\r\n isGroupItemCountable: function(item) {\r\n return !this._isVirtualPaging() || !item.isContinuation\r\n },\r\n _isVirtualPaging: function() {\r\n var scrollingMode = this._dataSource.option(\"scrolling.mode\");\r\n return \"virtual\" === scrollingMode || \"infinite\" === scrollingMode\r\n },\r\n itemsCount: function() {\r\n var dataSourceAdapter = this._dataSource;\r\n var dataSource = dataSourceAdapter._dataSource;\r\n var groupCount = gridCore.normalizeSortingInfo(dataSource.group() || []).length;\r\n var itemsCount = function calculateItemsCount(that, items, groupsCount) {\r\n var result = 0;\r\n if (items) {\r\n if (!groupsCount) {\r\n result = items.length\r\n } else {\r\n for (var i = 0; i < items.length; i++) {\r\n if (that.isGroupItemCountable(items[i])) {\r\n result++\r\n }\r\n result += calculateItemsCount(that, items[i].items, groupsCount - 1)\r\n }\r\n }\r\n }\r\n return result\r\n }(this, dataSource.items(), groupCount);\r\n return itemsCount\r\n },\r\n foreachGroups: function(callback, childrenAtFirst, foreachCollapsedGroups, updateOffsets, updateParentOffsets) {\r\n var that = this;\r\n return function foreachGroupsCore(groupsInfo, callback, childrenAtFirst, parents) {\r\n var callbackResults = [];\r\n\r\n function executeCallback(callback, data, parents, callbackResults) {\r\n var callbackResult = data && callback(data, parents);\r\n callbackResult && callbackResults.push(callbackResult);\r\n return callbackResult\r\n }\r\n for (var i = 0; i < groupsInfo.length; i++) {\r\n parents.push(groupsInfo[i].data);\r\n if (!childrenAtFirst && false === executeCallback(callback, groupsInfo[i].data, parents, callbackResults)) {\r\n return false\r\n }\r\n if (!groupsInfo[i].data || groupsInfo[i].data.isExpanded || foreachCollapsedGroups) {\r\n var children = groupsInfo[i].children;\r\n var callbackResult = children.length && foreachGroupsCore(children, callback, childrenAtFirst, parents);\r\n callbackResult && callbackResults.push(callbackResult);\r\n if (false === callbackResult) {\r\n return false\r\n }\r\n }\r\n if (childrenAtFirst && false === executeCallback(callback, groupsInfo[i].data, parents, callbackResults)) {\r\n return false\r\n }\r\n if (!groupsInfo[i].data || groupsInfo[i].data.offset !== groupsInfo[i].offset) {\r\n updateOffsets = true\r\n }\r\n parents.pop()\r\n }\r\n var currentParents = updateParentOffsets && parents.slice(0);\r\n return updateOffsets && when.apply($, callbackResults).always((function() {\r\n that._updateGroupInfoOffsets(groupsInfo, currentParents)\r\n }))\r\n }(that._groupsInfo, callback, childrenAtFirst, [])\r\n },\r\n _updateGroupInfoOffsets: function(groupsInfo, parents) {\r\n parents = parents || [];\r\n for (var index = 0; index < groupsInfo.length; index++) {\r\n var groupInfo = groupsInfo[index];\r\n if (groupInfo.data && groupInfo.data.offset !== groupInfo.offset) {\r\n groupInfo.offset = groupInfo.data.offset;\r\n for (var parentIndex = 0; parentIndex < parents.length; parentIndex++) {\r\n parents[parentIndex].offset = groupInfo.offset\r\n }\r\n }\r\n }\r\n groupsInfo.sort((function(a, b) {\r\n return a.offset - b.offset\r\n }))\r\n },\r\n findGroupInfo: function(path) {\r\n var groupInfo;\r\n var groupsInfo = this._groupsInfo;\r\n for (var pathIndex = 0; groupsInfo && pathIndex < path.length; pathIndex++) {\r\n groupInfo = findGroupInfoByKey(groupsInfo, path[pathIndex]);\r\n groupsInfo = groupInfo && groupInfo.children\r\n }\r\n return groupInfo && groupInfo.data\r\n },\r\n addGroupInfo: function(groupInfoData) {\r\n var groupInfo;\r\n var path = groupInfoData.path;\r\n var groupsInfo = this._groupsInfo;\r\n for (var pathIndex = 0; pathIndex < path.length; pathIndex++) {\r\n groupInfo = findGroupInfoByKey(groupsInfo, path[pathIndex]);\r\n if (!groupInfo) {\r\n groupInfo = {\r\n key: path[pathIndex],\r\n offset: groupInfoData.offset,\r\n data: {\r\n offset: groupInfoData.offset,\r\n isExpanded: true,\r\n path: path.slice(0, pathIndex + 1)\r\n },\r\n children: []\r\n };\r\n var index = getGroupInfoIndexByOffset(groupsInfo, groupInfoData.offset);\r\n groupsInfo.splice(index, 0, groupInfo);\r\n groupsInfo.hash = groupsInfo.hash || {};\r\n groupsInfo.hash[JSON.stringify(groupInfo.key)] = groupInfo\r\n }\r\n if (pathIndex === path.length - 1) {\r\n groupInfo.data = groupInfoData;\r\n if (groupInfo.offset !== groupInfoData.offset) {\r\n this._updateGroupInfoOffsets(groupsInfo)\r\n }\r\n }\r\n groupsInfo = groupInfo.children\r\n }\r\n },\r\n allowCollapseAll: function() {\r\n return true\r\n },\r\n refresh: function(options) {\r\n var storeLoadOptions = options.storeLoadOptions;\r\n var groups = normalizeSortingInfo(storeLoadOptions.group || []);\r\n var oldGroups = \"_group\" in this ? normalizeSortingInfo(this._group || []) : groups;\r\n var groupsCount = Math.min(oldGroups.length, groups.length);\r\n this._group = storeLoadOptions.group;\r\n for (var groupIndex = 0; groupIndex < groupsCount; groupIndex++) {\r\n if (oldGroups[groupIndex].selector !== groups[groupIndex].selector) {\r\n groupsCount = groupIndex;\r\n break\r\n }\r\n }\r\n if (!groupsCount) {\r\n this.reset()\r\n } else {\r\n ! function cleanGroupsInfo(groupsInfo, groupIndex, groupsCount) {\r\n for (var i = 0; i < groupsInfo.length; i++) {\r\n if (groupIndex + 1 >= groupsCount) {\r\n groupsInfo[i].children = []\r\n } else {\r\n cleanGroupsInfo(groupsInfo[i].children, groupIndex + 1, groupsCount)\r\n }\r\n }\r\n }(this._groupsInfo, 0, groupsCount)\r\n }\r\n },\r\n handleDataLoading: function() {},\r\n handleDataLoaded: function(options, callBase) {\r\n callBase(options)\r\n },\r\n handleDataLoadedCore: function(options, callBase) {\r\n callBase(options)\r\n }\r\n }\r\n}());\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.utils.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCoreUtils from \"../grid_core/ui.grid_core.utils\";\r\nimport {\r\n normalizeSortingInfo\r\n} from \"../../data/utils\";\r\nexport function createGroupFilter(path, storeLoadOptions) {\r\n var groups = normalizeSortingInfo(storeLoadOptions.group);\r\n var filter = [];\r\n for (var i = 0; i < path.length; i++) {\r\n filter.push([groups[i].selector, \"=\", path[i]])\r\n }\r\n if (storeLoadOptions.filter) {\r\n filter.push(storeLoadOptions.filter)\r\n }\r\n return gridCoreUtils.combineFilters(filter)\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.grouping.expanded.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n toComparable\r\n} from \"../../core/utils/data\";\r\nimport {\r\n keysEqual\r\n} from \"../../data/utils\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport storeHelper from \"../../data/store_helper\";\r\nimport dataGridCore from \"./ui.data_grid.core\";\r\nimport {\r\n GroupingHelper as GroupingHelperCore,\r\n createOffsetFilter\r\n} from \"./ui.data_grid.grouping.core\";\r\nimport {\r\n createGroupFilter\r\n} from \"./ui.data_grid.utils\";\r\nimport dataQuery from \"../../data/query\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar loadTotalCount = function(dataSource, options) {\r\n var d = new Deferred;\r\n var loadOptions = extend({\r\n skip: 0,\r\n take: 1,\r\n requireTotalCount: true\r\n }, options);\r\n dataSource.load(loadOptions).done((function(data, extra) {\r\n d.resolve(extra && extra.totalCount)\r\n })).fail(d.reject.bind(d));\r\n return d\r\n};\r\nexport var GroupingHelper = GroupingHelperCore.inherit(function() {\r\n var foreachCollapsedGroups = function(that, callback, updateOffsets) {\r\n return that.foreachGroups((function(groupInfo) {\r\n if (!groupInfo.isExpanded) {\r\n return callback(groupInfo)\r\n }\r\n }), false, false, updateOffsets, true)\r\n };\r\n var correctSkipLoadOption = function(that, skip) {\r\n var skipCorrection = 0;\r\n var resultSkip = skip || 0;\r\n if (skip) {\r\n foreachCollapsedGroups(that, (function(groupInfo) {\r\n if (groupInfo.offset - skipCorrection >= skip) {\r\n return false\r\n }\r\n skipCorrection += groupInfo.count - 1\r\n }));\r\n resultSkip += skipCorrection\r\n }\r\n return resultSkip\r\n };\r\n var pathEquals = function(path1, path2) {\r\n if (path1.length !== path2.length) {\r\n return false\r\n }\r\n for (var i = 0; i < path1.length; i++) {\r\n if (!keysEqual(null, path1[i], path2[i])) {\r\n return false\r\n }\r\n }\r\n return true\r\n };\r\n var updateGroupOffsets = function updateGroupOffsets(that, items, path, offset, additionalGroupInfo) {\r\n if (!items) {\r\n return\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (\"key\" in item && void 0 !== item.items) {\r\n path.push(item.key);\r\n if (additionalGroupInfo && pathEquals(additionalGroupInfo.path, path) && !item.isContinuation) {\r\n additionalGroupInfo.offset = offset\r\n }\r\n var groupInfo = that.findGroupInfo(path);\r\n if (groupInfo && !item.isContinuation) {\r\n groupInfo.offset = offset\r\n }\r\n if (groupInfo && !groupInfo.isExpanded) {\r\n offset += groupInfo.count\r\n } else {\r\n offset = updateGroupOffsets(that, item.items, path, offset, additionalGroupInfo)\r\n }\r\n path.pop()\r\n } else {\r\n offset++\r\n }\r\n }\r\n return offset\r\n };\r\n var getGroupCount = function getGroupCount(item, groupCount) {\r\n var count = item.count || item.items.length;\r\n if (!item.count && groupCount > 1) {\r\n count = 0;\r\n for (var i = 0; i < item.items.length; i++) {\r\n count += getGroupCount(item.items[i], groupCount - 1)\r\n }\r\n }\r\n return count\r\n };\r\n return {\r\n handleDataLoading: function(options) {\r\n var storeLoadOptions = options.storeLoadOptions;\r\n var collapsedGroups = [];\r\n var collapsedItemsCount = 0;\r\n var skipFirstItem = false;\r\n var take;\r\n var group = options.loadOptions.group;\r\n var skipCorrection = 0;\r\n ! function(storeLoadOptions, loadOptions) {\r\n if (loadOptions.group) {\r\n var groups = dataGridCore.normalizeSortingInfo(loadOptions.group);\r\n var sorts = dataGridCore.normalizeSortingInfo(storeLoadOptions.sort);\r\n storeLoadOptions.sort = storeHelper.arrangeSortingInfo(groups, sorts);\r\n delete loadOptions.group\r\n }\r\n }(storeLoadOptions, options.loadOptions);\r\n options.group = options.group || group;\r\n if (options.isCustomLoading) {\r\n return\r\n }\r\n var loadOptions = extend({}, storeLoadOptions);\r\n loadOptions.skip = correctSkipLoadOption(this, storeLoadOptions.skip);\r\n if (loadOptions.skip && loadOptions.take && group) {\r\n loadOptions.skip--;\r\n loadOptions.take++;\r\n skipFirstItem = true\r\n }\r\n if (loadOptions.take && group) {\r\n take = loadOptions.take;\r\n loadOptions.take++\r\n }\r\n foreachCollapsedGroups(this, (function(groupInfo) {\r\n if (groupInfo.offset >= loadOptions.skip + loadOptions.take + skipCorrection) {\r\n return false\r\n } else if (groupInfo.offset >= loadOptions.skip + skipCorrection && groupInfo.count) {\r\n skipCorrection += groupInfo.count - 1;\r\n collapsedGroups.push(groupInfo);\r\n collapsedItemsCount += groupInfo.count\r\n }\r\n }));\r\n each(collapsedGroups, (function() {\r\n loadOptions.filter = function(path, storeLoadOptions, group) {\r\n var groups = dataGridCore.normalizeSortingInfo(group || storeLoadOptions.group);\r\n var filter = [];\r\n for (var i = 0; i < path.length; i++) {\r\n var filterElement = [];\r\n for (var j = 0; j <= i; j++) {\r\n filterElement.push([groups[j].selector, i === j ? \"<>\" : \"=\", path[j]])\r\n }\r\n filter.push(dataGridCore.combineFilters(filterElement))\r\n }\r\n filter = dataGridCore.combineFilters(filter, \"or\");\r\n return dataGridCore.combineFilters([filter, storeLoadOptions.filter])\r\n }(this.path, loadOptions, group)\r\n }));\r\n options.storeLoadOptions = loadOptions;\r\n options.collapsedGroups = collapsedGroups;\r\n options.collapsedItemsCount = collapsedItemsCount;\r\n options.skip = loadOptions.skip || 0;\r\n options.skipFirstItem = skipFirstItem;\r\n options.take = take\r\n },\r\n handleDataLoaded: function(options, callBase) {\r\n var collapsedGroups = options.collapsedGroups;\r\n var groups = dataGridCore.normalizeSortingInfo(options.group);\r\n var groupCount = groups.length;\r\n\r\n function appendCollapsedPath(data, path, groups, collapsedGroup, offset) {\r\n if (!data || !path.length || !groups.length) {\r\n return\r\n }\r\n var keyValue;\r\n var i;\r\n var pathValue = toComparable(path[0], true);\r\n for (i = 0; i < data.length; i++) {\r\n keyValue = toComparable(data[i].key, true);\r\n if (offset >= collapsedGroup.offset || pathValue === keyValue) {\r\n break\r\n } else {\r\n offset += getGroupCount(data[i], groups.length)\r\n }\r\n }\r\n if (!data.length || pathValue !== keyValue) {\r\n data.splice(i, 0, {\r\n key: path[0],\r\n items: [],\r\n count: 1 === path.length ? collapsedGroup.count : void 0\r\n })\r\n }\r\n appendCollapsedPath(data[i].items, path.slice(1), groups.slice(1), collapsedGroup, offset)\r\n }\r\n if (options.collapsedItemsCount && options.extra && options.extra.totalCount >= 0) {\r\n if (!options.extra._totalCountWasIncreasedByCollapsedItems) {\r\n options.extra.totalCount += options.collapsedItemsCount;\r\n options.extra._totalCountWasIncreasedByCollapsedItems = true\r\n }\r\n }\r\n callBase(options);\r\n if (groupCount) {\r\n var data = options.data;\r\n var query = dataQuery(data);\r\n storeHelper.multiLevelGroup(query, groups).enumerate().done((function(groupedData) {\r\n data = groupedData\r\n }));\r\n if (collapsedGroups) {\r\n for (var pathIndex = 0; pathIndex < collapsedGroups.length; pathIndex++) {\r\n appendCollapsedPath(data, collapsedGroups[pathIndex].path, groups, collapsedGroups[pathIndex], options.skip)\r\n }\r\n }\r\n if (!options.isCustomLoading) {\r\n ! function processGroupItems(that, items, path, offset, skipFirstItem, take) {\r\n var removeLastItemsCount = 0;\r\n var needRemoveFirstItem = false;\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (void 0 !== item.items) {\r\n path.push(item.key);\r\n var groupInfo = that.findGroupInfo(path);\r\n if (groupInfo && !groupInfo.isExpanded) {\r\n item.collapsedItems = item.items;\r\n item.items = null;\r\n offset += groupInfo.count;\r\n take--;\r\n if (take < 0) {\r\n removeLastItemsCount++\r\n }\r\n if (skipFirstItem) {\r\n needRemoveFirstItem = true\r\n }\r\n } else if (item.items) {\r\n var offsetInfo = processGroupItems(that, item.items, path, offset, skipFirstItem, take);\r\n if (skipFirstItem) {\r\n if (offsetInfo.offset - offset > 1) {\r\n item.isContinuation = true\r\n } else {\r\n needRemoveFirstItem = true\r\n }\r\n }\r\n offset = offsetInfo.offset;\r\n take = offsetInfo.take;\r\n if (take < 0) {\r\n if (item.items.length) {\r\n item.isContinuationOnNextPage = true\r\n } else {\r\n removeLastItemsCount++\r\n }\r\n }\r\n }\r\n path.pop()\r\n } else {\r\n if (skipFirstItem) {\r\n needRemoveFirstItem = true\r\n }\r\n offset++;\r\n take--;\r\n if (take < 0) {\r\n removeLastItemsCount++\r\n }\r\n }\r\n skipFirstItem = false\r\n }\r\n if (needRemoveFirstItem) {\r\n items.splice(0, 1)\r\n }\r\n if (removeLastItemsCount) {\r\n items.splice(-removeLastItemsCount, removeLastItemsCount)\r\n }\r\n return {\r\n offset: offset,\r\n take: take\r\n }\r\n }(this, data, [], options.skip, options.skipFirstItem, options.take)\r\n }\r\n options.data = data\r\n }\r\n },\r\n isGroupItemCountable: function(item) {\r\n return null === item.items\r\n },\r\n updateTotalItemsCount: function() {\r\n var itemsCountCorrection = 0;\r\n foreachCollapsedGroups(this, (function(groupInfo) {\r\n if (groupInfo.count) {\r\n itemsCountCorrection -= groupInfo.count - 1\r\n }\r\n }));\r\n this.callBase(itemsCountCorrection)\r\n },\r\n changeRowExpand: function(path) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var beginPageIndex = dataSource.beginPageIndex ? dataSource.beginPageIndex() : dataSource.pageIndex();\r\n var dataSourceItems = dataSource.items();\r\n var offset = correctSkipLoadOption(that, beginPageIndex * dataSource.pageSize());\r\n var groupInfo = that.findGroupInfo(path);\r\n var groupCountQuery;\r\n if (groupInfo && !groupInfo.isExpanded) {\r\n groupCountQuery = (new Deferred).resolve(groupInfo.count)\r\n } else {\r\n groupCountQuery = loadTotalCount(dataSource, {\r\n filter: createGroupFilter(path, {\r\n filter: dataSource.filter(),\r\n group: dataSource.group()\r\n })\r\n })\r\n }\r\n return when(groupCountQuery).done((function(count) {\r\n count = parseInt(count.length ? count[0] : count);\r\n if (groupInfo) {\r\n updateGroupOffsets(that, dataSourceItems, [], offset);\r\n groupInfo.isExpanded = !groupInfo.isExpanded;\r\n groupInfo.count = count\r\n } else {\r\n groupInfo = {\r\n offset: -1,\r\n count: count,\r\n path: path,\r\n isExpanded: false\r\n };\r\n updateGroupOffsets(that, dataSourceItems, [], offset, groupInfo);\r\n if (groupInfo.offset >= 0) {\r\n that.addGroupInfo(groupInfo)\r\n }\r\n }\r\n that.updateTotalItemsCount()\r\n })).fail((function() {\r\n dataSource._eventsStrategy.fireEvent(\"loadError\", arguments)\r\n }))\r\n },\r\n allowCollapseAll: function() {\r\n return false\r\n },\r\n refresh: function(options, operationTypes) {\r\n var that = this;\r\n var storeLoadOptions = options.storeLoadOptions;\r\n var dataSource = that._dataSource;\r\n this.callBase.apply(this, arguments);\r\n if (operationTypes.reload) {\r\n return foreachCollapsedGroups(that, (function(groupInfo) {\r\n var groupCountQuery = loadTotalCount(dataSource, {\r\n filter: createGroupFilter(groupInfo.path, storeLoadOptions)\r\n });\r\n var groupOffsetQuery = loadTotalCount(dataSource, {\r\n filter: createOffsetFilter(groupInfo.path, storeLoadOptions)\r\n });\r\n return when(groupOffsetQuery, groupCountQuery).done((function(offset, count) {\r\n offset = parseInt(offset.length ? offset[0] : offset);\r\n count = parseInt(count.length ? count[0] : count);\r\n groupInfo.offset = offset;\r\n if (groupInfo.count !== count) {\r\n groupInfo.count = count;\r\n that.updateTotalItemsCount()\r\n }\r\n }))\r\n }), true)\r\n }\r\n }\r\n }\r\n}());\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.grouping.collapsed.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport dataGridCore from \"./ui.data_grid.core\";\r\nimport {\r\n GroupingHelper as GroupingHelperCore,\r\n createOffsetFilter\r\n} from \"./ui.data_grid.grouping.core\";\r\nimport {\r\n createGroupFilter\r\n} from \"./ui.data_grid.utils\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n errors as dataErrors\r\n} from \"../../data/errors\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\n\r\nfunction getContinuationGroupCount(groupOffset, pageSize, groupSize, groupIndex) {\r\n groupIndex = groupIndex || 0;\r\n if (pageSize > 1 && groupSize > 0) {\r\n var pageOffset = groupOffset - Math.floor(groupOffset / pageSize) * pageSize || pageSize;\r\n pageOffset += groupSize - groupIndex - 2;\r\n if (pageOffset < 0) {\r\n pageOffset += pageSize\r\n }\r\n return Math.floor(pageOffset / (pageSize - groupIndex - 1))\r\n }\r\n return 0\r\n}\r\nexport var GroupingHelper = GroupingHelperCore.inherit(function() {\r\n var foreachExpandedGroups = function(that, callback, updateGroups) {\r\n return that.foreachGroups((function(groupInfo, parents) {\r\n if (groupInfo.isExpanded) {\r\n return callback(groupInfo, parents)\r\n }\r\n }), true, false, updateGroups, updateGroups)\r\n };\r\n var processGroupItems = function processGroupItems(that, items, groupsCount, expandedInfo, path, isCustomLoading, isLastGroupExpanded) {\r\n var isExpanded;\r\n expandedInfo.items = expandedInfo.items || [];\r\n expandedInfo.paths = expandedInfo.paths || [];\r\n expandedInfo.count = expandedInfo.count || 0;\r\n expandedInfo.lastCount = expandedInfo.lastCount || 0;\r\n if (!groupsCount) {\r\n return\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (void 0 !== item.items) {\r\n path.push(item.key);\r\n if (isCustomLoading) {\r\n isExpanded = true\r\n } else {\r\n var groupInfo = that.findGroupInfo(path);\r\n isExpanded = groupInfo && groupInfo.isExpanded\r\n }\r\n if (!isExpanded) {\r\n item.collapsedItems = item.items;\r\n item.items = null\r\n } else if (item.items) {\r\n processGroupItems(that, item.items, groupsCount - 1, expandedInfo, path, isCustomLoading, isLastGroupExpanded)\r\n } else if (1 === groupsCount && item.count && (!isCustomLoading || isLastGroupExpanded)) {\r\n expandedInfo.items.push(item);\r\n expandedInfo.paths.push(path.slice(0));\r\n expandedInfo.count += expandedInfo.lastCount;\r\n expandedInfo.lastCount = item.count\r\n }\r\n path.pop()\r\n }\r\n }\r\n };\r\n var updateGroupInfoItem = function(that, item, isLastGroupLevel, path, offset) {\r\n var groupInfo = that.findGroupInfo(path);\r\n var count;\r\n if (!groupInfo) {\r\n if (isLastGroupLevel) {\r\n count = item.count > 0 ? item.count : item.items.length\r\n }\r\n that.addGroupInfo({\r\n isExpanded: that._isGroupExpanded(path.length - 1),\r\n path: path.slice(0),\r\n offset: offset,\r\n count: count || 0\r\n })\r\n } else {\r\n if (isLastGroupLevel) {\r\n groupInfo.count = item.count > 0 ? item.count : item.items && item.items.length || 0\r\n } else {\r\n item.count = groupInfo.count || item.count\r\n }\r\n groupInfo.offset = offset\r\n }\r\n };\r\n var updateGroupInfos = function updateGroupInfos(that, options, items, loadedGroupCount, groupIndex, path, parentIndex) {\r\n var groupCount = options.group ? options.group.length : 0;\r\n var isLastGroupLevel = groupCount === loadedGroupCount;\r\n var remotePaging = options.remoteOperations.paging;\r\n var offset = 0;\r\n var totalCount = 0;\r\n var count;\r\n groupIndex = groupIndex || 0;\r\n path = path || [];\r\n if (remotePaging && !parentIndex) {\r\n offset = 0 === groupIndex ? options.skip || 0 : options.skips[groupIndex - 1] || 0\r\n }\r\n if (groupIndex >= loadedGroupCount) {\r\n return items.length\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (item) {\r\n path.push(item.key);\r\n if (!item.count && !item.items || void 0 === item.items) {\r\n return -1\r\n }\r\n updateGroupInfoItem(that, item, isLastGroupLevel, path, offset + i);\r\n count = item.items ? updateGroupInfos(that, options, item.items, loadedGroupCount, groupIndex + 1, path, i) : item.count || -1;\r\n if (count < 0) {\r\n return -1\r\n }\r\n totalCount += count;\r\n path.pop()\r\n }\r\n }\r\n return totalCount\r\n };\r\n var isGroupExpanded = function(groups, groupIndex) {\r\n return groups && groups.length && groups[groupIndex] && !!groups[groupIndex].isExpanded\r\n };\r\n var getTotalOffset = function(groupInfos, pageSize, offset) {\r\n var groupSize;\r\n var totalOffset = offset;\r\n for (var groupIndex = 0; groupIndex < groupInfos.length; groupIndex++) {\r\n groupSize = groupInfos[groupIndex].offset + 1;\r\n if (groupIndex > 0) {\r\n groupSize += groupInfos[groupIndex - 1].childrenTotalCount;\r\n if (pageSize) {\r\n groupSize += getContinuationGroupCount(totalOffset, pageSize, groupSize, groupIndex - 1) * groupIndex\r\n }\r\n }\r\n totalOffset += groupSize\r\n }\r\n return totalOffset\r\n };\r\n\r\n function applyContinuationToGroupItem(options, expandedInfo, groupLevel, expandedItemIndex) {\r\n var item = expandedInfo.items[expandedItemIndex];\r\n var skip = options.skips && options.skips[groupLevel];\r\n var take = options.takes && options.takes[groupLevel];\r\n var isLastExpandedItem = expandedItemIndex === expandedInfo.items.length - 1;\r\n var isFirstExpandedItem = 0 === expandedItemIndex;\r\n var lastExpandedItemSkip = isFirstExpandedItem && skip || 0;\r\n var isItemsTruncatedByTake = item.count > take + lastExpandedItemSkip;\r\n if (isFirstExpandedItem && void 0 !== skip) {\r\n item.isContinuation = true\r\n }\r\n if (isLastExpandedItem && void 0 !== take && isItemsTruncatedByTake) {\r\n item.isContinuationOnNextPage = true\r\n }\r\n }\r\n\r\n function isDataDeferred(data) {\r\n return !Array.isArray(data)\r\n }\r\n\r\n function makeDataDeferred(options) {\r\n if (!isDataDeferred(options.data)) {\r\n options.data = new Deferred\r\n }\r\n }\r\n\r\n function loadGroupItems(that, options, loadedGroupCount, expandedInfo, groupLevel, data) {\r\n if (!options.isCustomLoading) {\r\n expandedInfo = {};\r\n processGroupItems(that, data, loadedGroupCount, expandedInfo, []);\r\n ! function(options, expandedInfo, currentGroupCount) {\r\n var currentGroupIndex = currentGroupCount - 1;\r\n var groupCount = options.group ? options.group.length : 0;\r\n expandedInfo.skip = options.skips && options.skips[currentGroupIndex];\r\n if (options.takes && void 0 !== options.takes[currentGroupIndex]) {\r\n if (groupCount === currentGroupCount) {\r\n expandedInfo.take = expandedInfo.count ? expandedInfo.count - (expandedInfo.skip || 0) : 0\r\n } else {\r\n expandedInfo.take = 0\r\n }\r\n expandedInfo.take += options.takes[currentGroupIndex]\r\n }\r\n }(options, expandedInfo, loadedGroupCount)\r\n }\r\n var groupCount = options.group ? options.group.length : 0;\r\n if (expandedInfo.paths.length && groupCount - loadedGroupCount > 0) {\r\n makeDataDeferred(options);\r\n ! function(that, options, expandedInfo, loadedGroupCount, groupLevel, data) {\r\n var groups = options.group || [];\r\n var currentGroup = groups[groupLevel + 1];\r\n var deferreds = [];\r\n each(expandedInfo.paths, (function(expandedItemIndex) {\r\n var loadOptions = {\r\n requireTotalCount: false,\r\n requireGroupCount: true,\r\n group: [currentGroup],\r\n groupSummary: options.storeLoadOptions.groupSummary,\r\n filter: createGroupFilter(expandedInfo.paths[expandedItemIndex], {\r\n filter: options.storeLoadOptions.filter,\r\n group: groups\r\n }),\r\n select: options.storeLoadOptions.select\r\n };\r\n if (0 === expandedItemIndex) {\r\n loadOptions.skip = expandedInfo.skip || 0\r\n }\r\n if (expandedItemIndex === expandedInfo.paths.length - 1) {\r\n loadOptions.take = expandedInfo.take\r\n }\r\n var loadResult = 0 === loadOptions.take ? [] : that._dataSource.loadFromStore(loadOptions);\r\n when(loadResult).done((function(data) {\r\n var item = expandedInfo.items[expandedItemIndex];\r\n applyContinuationToGroupItem(options, expandedInfo, groupLevel, expandedItemIndex);\r\n item.items = data\r\n }));\r\n deferreds.push(loadResult)\r\n }));\r\n when.apply(null, deferreds).done((function() {\r\n updateGroupInfos(that, options, data, loadedGroupCount + 1);\r\n loadGroupItems(that, options, loadedGroupCount + 1, expandedInfo, groupLevel + 1, data)\r\n }))\r\n }(that, options, expandedInfo, loadedGroupCount, groupLevel, data)\r\n } else if (expandedInfo.paths.length && options.storeLoadOptions.group) {\r\n makeDataDeferred(options);\r\n ! function(that, options, expandedInfo, data) {\r\n var expandedFilters = [];\r\n var groups = options.group || [];\r\n each(expandedInfo.paths, (function(_, expandedPath) {\r\n expandedFilters.push(createGroupFilter(expandedPath, {\r\n group: options.isCustomLoading ? options.storeLoadOptions.group : groups\r\n }))\r\n }));\r\n var filter = options.storeLoadOptions.filter;\r\n if (!options.storeLoadOptions.isLoadingAll) {\r\n filter = dataGridCore.combineFilters([filter, dataGridCore.combineFilters(expandedFilters, \"or\")])\r\n }\r\n var loadOptions = extend({}, options.storeLoadOptions, {\r\n requireTotalCount: false,\r\n requireGroupCount: false,\r\n group: null,\r\n sort: groups.concat(dataGridCore.normalizeSortingInfo(options.storeLoadOptions.sort || [])),\r\n filter: filter\r\n });\r\n var isPagingLocal = that._dataSource.isLastLevelGroupItemsPagingLocal();\r\n if (!isPagingLocal) {\r\n loadOptions.skip = expandedInfo.skip;\r\n loadOptions.take = expandedInfo.take\r\n }\r\n when(0 === expandedInfo.take ? [] : that._dataSource.loadFromStore(loadOptions)).done((function(items, extra) {\r\n if (isPagingLocal) {\r\n items = that._dataSource.sortLastLevelGroupItems(items, groups, expandedInfo.paths);\r\n items = expandedInfo.skip ? items.slice(expandedInfo.skip) : items;\r\n items = expandedInfo.take ? items.slice(0, expandedInfo.take) : items\r\n }\r\n each(expandedInfo.items, (function(index, item) {\r\n var itemCount = item.count - (0 === index && expandedInfo.skip || 0);\r\n var expandedItems = items.splice(0, itemCount);\r\n applyContinuationToGroupItem(options, expandedInfo, groups.length - 1, index);\r\n item.items = expandedItems\r\n }));\r\n options.data.resolve(data)\r\n })).fail(options.data.reject)\r\n }(that, options, expandedInfo, data)\r\n } else if (isDataDeferred(options.data)) {\r\n options.data.resolve(data)\r\n }\r\n }\r\n var loadGroupTotalCount = function(dataSource, options) {\r\n var d = new Deferred;\r\n var isGrouping = !!(options.group && options.group.length);\r\n var loadOptions = extend({\r\n skip: 0,\r\n take: 1,\r\n requireGroupCount: isGrouping,\r\n requireTotalCount: !isGrouping\r\n }, options, {\r\n group: isGrouping ? options.group : null\r\n });\r\n dataSource.load(loadOptions).done((function(data, extra) {\r\n var count = extra && (isGrouping ? extra.groupCount : extra.totalCount);\r\n if (!isFinite(count)) {\r\n d.reject(dataErrors.Error(isGrouping ? \"E4022\" : \"E4021\"));\r\n return\r\n }\r\n d.resolve(count)\r\n })).fail(d.reject.bind(d));\r\n return d\r\n };\r\n return {\r\n updateTotalItemsCount: function(options) {\r\n var totalItemsCount = 0;\r\n var totalCount = options.extra && options.extra.totalCount || 0;\r\n var groupCount = options.extra && options.extra.groupCount || 0;\r\n var pageSize = this._dataSource.pageSize();\r\n var isVirtualPaging = this._isVirtualPaging();\r\n foreachExpandedGroups(this, (function(groupInfo) {\r\n groupInfo.childrenTotalCount = 0\r\n }));\r\n foreachExpandedGroups(this, (function(groupInfo, parents) {\r\n var totalOffset = getTotalOffset(parents, isVirtualPaging ? 0 : pageSize, totalItemsCount);\r\n var count = groupInfo.count + groupInfo.childrenTotalCount;\r\n if (!isVirtualPaging) {\r\n count += getContinuationGroupCount(totalOffset, pageSize, count, parents.length - 1)\r\n }\r\n if (parents[parents.length - 2]) {\r\n parents[parents.length - 2].childrenTotalCount += count\r\n } else {\r\n totalItemsCount += count\r\n }\r\n }));\r\n this.callBase(totalItemsCount - totalCount + groupCount)\r\n },\r\n _isGroupExpanded: function(groupIndex) {\r\n var groups = this._dataSource.group();\r\n return isGroupExpanded(groups, groupIndex)\r\n },\r\n _updatePagingOptions: function(options, callback) {\r\n var isVirtualPaging = this._isVirtualPaging();\r\n var pageSize = this._dataSource.pageSize();\r\n var skips = [];\r\n var takes = [];\r\n var skipChildrenTotalCount = 0;\r\n var childrenTotalCount = 0;\r\n if (options.take) {\r\n foreachExpandedGroups(this, (function(groupInfo) {\r\n groupInfo.childrenTotalCount = 0;\r\n groupInfo.skipChildrenTotalCount = 0\r\n }));\r\n foreachExpandedGroups(this, (function(groupInfo, parents) {\r\n var take;\r\n var takeCorrection = 0;\r\n var parentTakeCorrection = 0;\r\n var totalOffset = getTotalOffset(parents, isVirtualPaging ? 0 : pageSize, childrenTotalCount);\r\n var continuationGroupCount = 0;\r\n var skipContinuationGroupCount = 0;\r\n var groupInfoCount = groupInfo.count + groupInfo.childrenTotalCount;\r\n var childrenGroupInfoCount = groupInfoCount;\r\n callback && callback(groupInfo, totalOffset);\r\n var skip = options.skip - totalOffset;\r\n if (totalOffset <= options.skip + options.take && groupInfoCount) {\r\n take = options.take;\r\n if (!isVirtualPaging) {\r\n continuationGroupCount = getContinuationGroupCount(totalOffset, pageSize, groupInfoCount, parents.length - 1);\r\n groupInfoCount += continuationGroupCount * parents.length;\r\n childrenGroupInfoCount += continuationGroupCount;\r\n if (pageSize && skip >= 0) {\r\n takeCorrection = parents.length;\r\n parentTakeCorrection = parents.length - 1;\r\n skipContinuationGroupCount = Math.floor(skip / pageSize)\r\n }\r\n }\r\n if (skip >= 0) {\r\n if (totalOffset + groupInfoCount > options.skip) {\r\n skips.unshift(skip - skipContinuationGroupCount * takeCorrection - groupInfo.skipChildrenTotalCount)\r\n }\r\n if (totalOffset + groupInfoCount >= options.skip + take) {\r\n takes.unshift(take - takeCorrection - groupInfo.childrenTotalCount + groupInfo.skipChildrenTotalCount)\r\n }\r\n } else if (totalOffset + groupInfoCount >= options.skip + take) {\r\n takes.unshift(take + skip - groupInfo.childrenTotalCount)\r\n }\r\n }\r\n if (totalOffset <= options.skip) {\r\n if (parents[parents.length - 2]) {\r\n parents[parents.length - 2].skipChildrenTotalCount += Math.min(childrenGroupInfoCount, skip + 1 - skipContinuationGroupCount * parentTakeCorrection)\r\n } else {\r\n skipChildrenTotalCount += Math.min(childrenGroupInfoCount, skip + 1)\r\n }\r\n }\r\n if (totalOffset <= options.skip + take) {\r\n groupInfoCount = Math.min(childrenGroupInfoCount, skip + take - (skipContinuationGroupCount + 1) * parentTakeCorrection);\r\n if (parents[parents.length - 2]) {\r\n parents[parents.length - 2].childrenTotalCount += groupInfoCount\r\n } else {\r\n childrenTotalCount += groupInfoCount\r\n }\r\n }\r\n }));\r\n options.skip -= skipChildrenTotalCount;\r\n options.take -= childrenTotalCount - skipChildrenTotalCount\r\n }\r\n options.skips = skips;\r\n options.takes = takes\r\n },\r\n changeRowExpand: function(path) {\r\n var groupInfo = this.findGroupInfo(path);\r\n var dataSource = this._dataSource;\r\n var remoteGroupPaging = dataSource.remoteOperations().groupPaging;\r\n var groups = dataGridCore.normalizeSortingInfo(dataSource.group());\r\n if (groupInfo) {\r\n groupInfo.isExpanded = !groupInfo.isExpanded;\r\n if (remoteGroupPaging && groupInfo.isExpanded && path.length < groups.length) {\r\n return loadGroupTotalCount(dataSource, {\r\n filter: createGroupFilter(path, {\r\n filter: dataSource.lastLoadOptions().filter,\r\n group: dataSource.group()\r\n }),\r\n group: [groups[path.length]],\r\n select: dataSource.select()\r\n }).done((function(groupCount) {\r\n groupInfo.count = groupCount\r\n }))\r\n }\r\n return (new Deferred).resolve()\r\n }\r\n return (new Deferred).reject()\r\n },\r\n handleDataLoading: function(options) {\r\n var storeLoadOptions = options.storeLoadOptions;\r\n var groups = dataGridCore.normalizeSortingInfo(storeLoadOptions.group || options.loadOptions.group);\r\n if (options.isCustomLoading || !groups.length) {\r\n return\r\n }\r\n if (options.remoteOperations.grouping) {\r\n var remotePaging = this._dataSource.remoteOperations().paging;\r\n storeLoadOptions.group = dataGridCore.normalizeSortingInfo(storeLoadOptions.group);\r\n storeLoadOptions.group.forEach((function(group, index) {\r\n var isLastGroup = index === storeLoadOptions.group.length - 1;\r\n group.isExpanded = !remotePaging || !isLastGroup\r\n }))\r\n }\r\n options.group = options.group || groups;\r\n if (options.remoteOperations.paging) {\r\n options.skip = storeLoadOptions.skip;\r\n options.take = storeLoadOptions.take;\r\n storeLoadOptions.requireGroupCount = true;\r\n storeLoadOptions.group = groups.slice(0, 1);\r\n this._updatePagingOptions(options);\r\n storeLoadOptions.skip = options.skip;\r\n storeLoadOptions.take = options.take\r\n } else {\r\n options.skip = options.loadOptions.skip;\r\n options.take = options.loadOptions.take;\r\n this._updatePagingOptions(options)\r\n }\r\n },\r\n handleDataLoadedCore: function(options, callBase) {\r\n var loadedGroupCount = dataGridCore.normalizeSortingInfo(options.storeLoadOptions.group || options.loadOptions.group).length;\r\n var groupCount = options.group ? options.group.length : 0;\r\n var totalCount;\r\n var expandedInfo = {};\r\n if (options.isCustomLoading) {\r\n callBase(options);\r\n processGroupItems(this, options.data, loadedGroupCount, expandedInfo, [], options.isCustomLoading, options.storeLoadOptions.isLoadingAll)\r\n } else {\r\n if (!options.remoteOperations.paging) {\r\n this.foreachGroups((function(groupInfo) {\r\n groupInfo.count = 0\r\n }))\r\n }\r\n totalCount = updateGroupInfos(this, options, options.data, loadedGroupCount);\r\n if (totalCount < 0) {\r\n options.data = (new Deferred).reject(errors.Error(\"E1037\"));\r\n return\r\n }\r\n if (!options.remoteOperations.paging) {\r\n if (loadedGroupCount && options.extra && options.loadOptions.requireTotalCount) {\r\n options.extra.totalCount = totalCount;\r\n options.extra.groupCount = options.data.length\r\n }\r\n }\r\n if (groupCount && options.storeLoadOptions.requireGroupCount && !isFinite(options.extra.groupCount)) {\r\n options.data = (new Deferred).reject(dataErrors.Error(\"E4022\"));\r\n return\r\n }\r\n this.updateTotalItemsCount(options);\r\n if (!options.remoteOperations.paging) {\r\n this._updatePagingOptions(options)\r\n }\r\n callBase(options);\r\n if (!options.remoteOperations.paging) {\r\n this._processPaging(options, loadedGroupCount)\r\n }\r\n }\r\n loadGroupItems(this, options, loadedGroupCount, expandedInfo, 0, options.data)\r\n },\r\n _processSkips: function(items, skips, groupCount) {\r\n if (!groupCount) {\r\n return\r\n }\r\n var firstItem = items[0];\r\n var skip = skips[0];\r\n var children = firstItem && firstItem.items;\r\n if (void 0 !== skip) {\r\n firstItem.isContinuation = true;\r\n if (children) {\r\n firstItem.items = children.slice(skip);\r\n this._processSkips(firstItem.items, skips.slice(1), groupCount - 1)\r\n }\r\n }\r\n },\r\n _processTakes: function(items, skips, takes, groupCount, parents) {\r\n if (!groupCount || !items) {\r\n return\r\n }\r\n parents = parents || [];\r\n var lastItem = items[items.length - 1];\r\n var children = lastItem && lastItem.items;\r\n var take = takes[0];\r\n var skip = skips[0];\r\n if (lastItem) {\r\n var maxTakeCount = lastItem.count - (lastItem.isContinuation && skip || 0) || children.length;\r\n if (void 0 !== take && maxTakeCount > take) {\r\n lastItem.isContinuationOnNextPage = true;\r\n parents.forEach((function(parent) {\r\n parent.isContinuationOnNextPage = true\r\n }));\r\n if (children) {\r\n children = children.slice(0, take);\r\n lastItem.items = children\r\n }\r\n }\r\n parents.push(lastItem);\r\n this._processTakes(children, skips.slice(1), takes.slice(1), groupCount - 1, parents)\r\n }\r\n },\r\n _processPaging: function(options, groupCount) {\r\n this._processSkips(options.data, options.skips, groupCount);\r\n this._processTakes(options.data, options.skips, options.takes, groupCount)\r\n },\r\n isLastLevelGroupItemsPagingLocal: function() {\r\n return false\r\n },\r\n sortLastLevelGroupItems: function(items) {\r\n return items\r\n },\r\n refresh: function(options, operationTypes) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var storeLoadOptions = options.storeLoadOptions;\r\n var group = options.group || options.storeLoadOptions.group;\r\n var oldGroups = dataGridCore.normalizeSortingInfo(that._group);\r\n var isExpanded;\r\n var groupIndex;\r\n\r\n function handleGroup(groupInfo, parents) {\r\n if (parents.length === groupIndex + 1) {\r\n groupInfo.isExpanded = isExpanded\r\n }\r\n }\r\n for (groupIndex = 0; groupIndex < oldGroups.length; groupIndex++) {\r\n isExpanded = isGroupExpanded(group, groupIndex);\r\n if (isGroupExpanded(that._group, groupIndex) !== isExpanded) {\r\n that.foreachGroups(handleGroup)\r\n }\r\n }\r\n that.callBase.apply(this, arguments);\r\n if (group && options.remoteOperations.paging && operationTypes.reload) {\r\n return foreachExpandedGroups(that, (function(groupInfo) {\r\n var groupCountQuery = loadGroupTotalCount(dataSource, {\r\n filter: createGroupFilter(groupInfo.path, {\r\n filter: storeLoadOptions.filter,\r\n group: group\r\n }),\r\n group: group.slice(groupInfo.path.length),\r\n select: storeLoadOptions.select\r\n });\r\n var groupOffsetQuery = loadGroupTotalCount(dataSource, {\r\n filter: createOffsetFilter(groupInfo.path, {\r\n filter: storeLoadOptions.filter,\r\n group: group\r\n }, true),\r\n group: group.slice(groupInfo.path.length - 1, groupInfo.path.length),\r\n select: storeLoadOptions.select\r\n });\r\n return when(groupOffsetQuery, groupCountQuery).done((function(offset, count) {\r\n offset = parseInt(offset.length ? offset[0] : offset);\r\n count = parseInt(count.length ? count[0] : count);\r\n groupInfo.offset = offset;\r\n if (groupInfo.count !== count) {\r\n groupInfo.count = count;\r\n that.updateTotalItemsCount(options)\r\n }\r\n }))\r\n }), true)\r\n }\r\n }\r\n }\r\n}());\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.grouping.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n GroupingHelper as ExpandedGroupingHelper\r\n} from \"./ui.data_grid.grouping.expanded\";\r\nimport {\r\n GroupingHelper as CollapsedGroupingHelper\r\n} from \"./ui.data_grid.grouping.collapsed\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport dataSourceAdapter from \"./ui.data_grid.data_source_adapter\";\r\nimport {\r\n isDefined,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n registerKeyboardAction\r\n} from \"../grid_core/ui.grid_core.accessibility\";\r\nimport {\r\n setTabIndex,\r\n restoreFocus\r\n} from \"../shared/accessibility\";\r\nvar DATAGRID_GROUP_PANEL_CLASS = \"dx-datagrid-group-panel\";\r\nvar DATAGRID_GROUP_PANEL_MESSAGE_CLASS = \"dx-group-panel-message\";\r\nvar DATAGRID_GROUP_PANEL_ITEM_CLASS = \"dx-group-panel-item\";\r\nvar DATAGRID_GROUP_PANEL_LABEL_CLASS = \"dx-toolbar-label\";\r\nvar DATAGRID_GROUP_PANEL_CONTAINER_CLASS = \"dx-toolbar-item\";\r\nvar DATAGRID_EXPAND_CLASS = \"dx-datagrid-expand\";\r\nvar DATAGRID_GROUP_ROW_CLASS = \"dx-group-row\";\r\nvar HEADER_FILTER_CLASS_SELECTOR = \".dx-header-filter\";\r\nvar GroupingDataSourceAdapterExtender = {\r\n init: function() {\r\n this.callBase.apply(this, arguments);\r\n this._initGroupingHelper()\r\n },\r\n _initGroupingHelper: function(options) {\r\n var grouping = this._grouping;\r\n var isAutoExpandAll = this.option(\"grouping.autoExpandAll\");\r\n var isFocusedRowEnabled = this.option(\"focusedRowEnabled\");\r\n var remoteOperations = options ? options.remoteOperations : this.remoteOperations();\r\n var isODataRemoteOperations = remoteOperations.filtering && remoteOperations.sorting && remoteOperations.paging;\r\n if (isODataRemoteOperations && !remoteOperations.grouping && (isAutoExpandAll || !isFocusedRowEnabled)) {\r\n if (!grouping || grouping instanceof CollapsedGroupingHelper) {\r\n this._grouping = new ExpandedGroupingHelper(this)\r\n }\r\n } else if (!grouping || grouping instanceof ExpandedGroupingHelper) {\r\n this._grouping = new CollapsedGroupingHelper(this)\r\n }\r\n },\r\n totalItemsCount: function() {\r\n var totalCount = this.callBase();\r\n return totalCount > 0 && this._dataSource.group() && this._dataSource.requireTotalCount() ? totalCount + this._grouping.totalCountCorrection() : totalCount\r\n },\r\n itemsCount: function() {\r\n return this._dataSource.group() ? this._grouping.itemsCount() || 0 : this.callBase.apply(this, arguments)\r\n },\r\n allowCollapseAll: function() {\r\n return this._grouping.allowCollapseAll()\r\n },\r\n isGroupItemCountable: function(item) {\r\n return this._grouping.isGroupItemCountable(item)\r\n },\r\n isRowExpanded: function(key) {\r\n var groupInfo = this._grouping.findGroupInfo(key);\r\n return groupInfo ? groupInfo.isExpanded : !this._grouping.allowCollapseAll()\r\n },\r\n collapseAll: function(groupIndex) {\r\n return this._collapseExpandAll(groupIndex, false)\r\n },\r\n expandAll: function(groupIndex) {\r\n return this._collapseExpandAll(groupIndex, true)\r\n },\r\n _collapseExpandAll: function(groupIndex, isExpand) {\r\n var dataSource = this._dataSource;\r\n var group = dataSource.group();\r\n var groups = gridCore.normalizeSortingInfo(group || []);\r\n if (groups.length) {\r\n for (var i = 0; i < groups.length; i++) {\r\n if (void 0 === groupIndex || groupIndex === i) {\r\n groups[i].isExpanded = isExpand\r\n } else if (group && group[i]) {\r\n groups[i].isExpanded = group[i].isExpanded\r\n }\r\n }\r\n dataSource.group(groups);\r\n this._grouping.foreachGroups((function(groupInfo, parents) {\r\n if (void 0 === groupIndex || groupIndex === parents.length - 1) {\r\n groupInfo.isExpanded = isExpand\r\n }\r\n }), false, true);\r\n this.resetPagesCache()\r\n }\r\n return true\r\n },\r\n refresh: function() {\r\n this.callBase.apply(this, arguments);\r\n return this._grouping.refresh.apply(this._grouping, arguments)\r\n },\r\n changeRowExpand: function(path) {\r\n var dataSource = this._dataSource;\r\n if (dataSource.group()) {\r\n dataSource.beginLoading();\r\n if (this._lastLoadOptions) {\r\n this._lastLoadOptions.groupExpand = true\r\n }\r\n return this._changeRowExpandCore(path).always((function() {\r\n dataSource.endLoading()\r\n }))\r\n }\r\n },\r\n _changeRowExpandCore: function(path) {\r\n return this._grouping.changeRowExpand(path)\r\n },\r\n _hasGroupLevelsExpandState: function(group, isExpanded) {\r\n if (group && Array.isArray(group)) {\r\n for (var i = 0; i < group.length; i++) {\r\n if (group[i].isExpanded === isExpanded) {\r\n return true\r\n }\r\n }\r\n }\r\n },\r\n _customizeRemoteOperations: function(options, operationTypes) {\r\n var remoteOperations = options.remoteOperations;\r\n if (options.storeLoadOptions.group) {\r\n if (remoteOperations.grouping && !options.isCustomLoading) {\r\n if (!remoteOperations.groupPaging || this._hasGroupLevelsExpandState(options.storeLoadOptions.group, true)) {\r\n remoteOperations.paging = false\r\n }\r\n }\r\n if (!remoteOperations.grouping && (!remoteOperations.sorting || !remoteOperations.filtering || options.isCustomLoading || this._hasGroupLevelsExpandState(options.storeLoadOptions.group, false))) {\r\n remoteOperations.paging = false\r\n }\r\n } else if (!options.isCustomLoading && remoteOperations.paging && operationTypes.grouping) {\r\n this.resetCache()\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _handleDataLoading: function(options) {\r\n this.callBase(options);\r\n this._initGroupingHelper(options);\r\n return this._grouping.handleDataLoading(options)\r\n },\r\n _handleDataLoaded: function(options) {\r\n return this._grouping.handleDataLoaded(options, this.callBase.bind(this))\r\n },\r\n _handleDataLoadedCore: function(options) {\r\n return this._grouping.handleDataLoadedCore(options, this.callBase.bind(this))\r\n }\r\n};\r\ndataSourceAdapter.extend(GroupingDataSourceAdapterExtender);\r\nvar GroupingDataControllerExtender = {\r\n init: function() {\r\n this.callBase();\r\n this.createAction(\"onRowExpanding\");\r\n this.createAction(\"onRowExpanded\");\r\n this.createAction(\"onRowCollapsing\");\r\n this.createAction(\"onRowCollapsed\")\r\n },\r\n _beforeProcessItems: function(items) {\r\n var groupColumns = this._columnsController.getGroupColumns();\r\n items = this.callBase(items);\r\n if (items.length && groupColumns.length) {\r\n items = this._processGroupItems(items, groupColumns.length)\r\n }\r\n return items\r\n },\r\n _processItem: function(item, options) {\r\n if (isDefined(item.groupIndex) && isString(item.rowType) && 0 === item.rowType.indexOf(\"group\")) {\r\n item = this._processGroupItem(item, options);\r\n options.dataIndex = 0\r\n } else {\r\n item = this.callBase.apply(this, arguments)\r\n }\r\n return item\r\n },\r\n _processGroupItem: function(item) {\r\n return item\r\n },\r\n _processGroupItems: function(items, groupsCount, options) {\r\n var groupedColumns = this._columnsController.getGroupColumns();\r\n var column = groupedColumns[groupedColumns.length - groupsCount];\r\n if (!options) {\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n options = {\r\n collectContinuationItems: \"virtual\" !== scrollingMode && \"infinite\" !== scrollingMode,\r\n resultItems: [],\r\n path: [],\r\n values: []\r\n }\r\n }\r\n var resultItems = options.resultItems;\r\n if (options.data) {\r\n if (options.collectContinuationItems || !options.data.isContinuation) {\r\n resultItems.push({\r\n rowType: \"group\",\r\n data: options.data,\r\n groupIndex: options.path.length - 1,\r\n isExpanded: !!options.data.items,\r\n key: options.path.slice(0),\r\n values: options.values.slice(0)\r\n })\r\n }\r\n }\r\n if (items) {\r\n if (0 === groupsCount) {\r\n resultItems.push.apply(resultItems, items)\r\n } else {\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (item && \"items\" in item) {\r\n options.data = item;\r\n options.path.push(item.key);\r\n options.values.push(column && column.deserializeValue && !column.calculateDisplayValue ? column.deserializeValue(item.key) : item.key);\r\n this._processGroupItems(item.items, groupsCount - 1, options);\r\n options.data = void 0;\r\n options.path.pop();\r\n options.values.pop()\r\n } else {\r\n resultItems.push(item)\r\n }\r\n }\r\n }\r\n }\r\n return resultItems\r\n },\r\n publicMethods: function() {\r\n return this.callBase().concat([\"collapseAll\", \"expandAll\", \"isRowExpanded\", \"expandRow\", \"collapseRow\"])\r\n },\r\n collapseAll: function(groupIndex) {\r\n var dataSource = this._dataSource;\r\n if (dataSource && dataSource.collapseAll(groupIndex)) {\r\n dataSource.pageIndex(0);\r\n dataSource.reload()\r\n }\r\n },\r\n expandAll: function(groupIndex) {\r\n var dataSource = this._dataSource;\r\n if (dataSource && dataSource.expandAll(groupIndex)) {\r\n dataSource.pageIndex(0);\r\n dataSource.reload()\r\n }\r\n },\r\n changeRowExpand: function(key) {\r\n var that = this;\r\n var expanded = that.isRowExpanded(key);\r\n var args = {\r\n key: key,\r\n expanded: expanded\r\n };\r\n that.executeAction(expanded ? \"onRowCollapsing\" : \"onRowExpanding\", args);\r\n if (!args.cancel) {\r\n return when(that._changeRowExpandCore(key)).done((function() {\r\n args.expanded = !expanded;\r\n that.executeAction(expanded ? \"onRowCollapsed\" : \"onRowExpanded\", args)\r\n }))\r\n }\r\n return (new Deferred).resolve()\r\n },\r\n _changeRowExpandCore: function(key) {\r\n var that = this;\r\n var dataSource = this._dataSource;\r\n var d = new Deferred;\r\n if (!dataSource) {\r\n d.resolve()\r\n } else {\r\n when(dataSource.changeRowExpand(key)).done((function() {\r\n that.load().done(d.resolve).fail(d.reject)\r\n })).fail(d.reject)\r\n }\r\n return d\r\n },\r\n isRowExpanded: function(key) {\r\n var dataSource = this._dataSource;\r\n return dataSource && dataSource.isRowExpanded(key)\r\n },\r\n expandRow: function(key) {\r\n if (!this.isRowExpanded(key)) {\r\n return this.changeRowExpand(key)\r\n }\r\n return (new Deferred).resolve()\r\n },\r\n collapseRow: function(key) {\r\n if (this.isRowExpanded(key)) {\r\n return this.changeRowExpand(key)\r\n }\r\n return (new Deferred).resolve()\r\n },\r\n optionChanged: function(args) {\r\n if (\"grouping\" === args.name) {\r\n args.name = \"dataSource\"\r\n }\r\n this.callBase(args)\r\n }\r\n};\r\nvar onGroupingMenuItemClick = function(column, params) {\r\n var columnsController = this._columnsController;\r\n switch (params.itemData.value) {\r\n case \"group\":\r\n var groups = columnsController._dataSource.group() || [];\r\n columnsController.columnOption(column.dataField, \"groupIndex\", groups.length);\r\n break;\r\n case \"ungroup\":\r\n columnsController.columnOption(column.dataField, \"groupIndex\", -1);\r\n break;\r\n case \"ungroupAll\":\r\n this.component.clearGrouping()\r\n }\r\n};\r\nexport var GroupingHeaderPanelExtender = {\r\n _getToolbarItems: function() {\r\n var items = this.callBase();\r\n return this._appendGroupingItem(items)\r\n },\r\n _appendGroupingItem: function(items) {\r\n if (this._isGroupPanelVisible()) {\r\n var isRendered = false;\r\n var toolbarItem = {\r\n template: () => {\r\n var $groupPanel = $(\"
\").addClass(DATAGRID_GROUP_PANEL_CLASS);\r\n this._updateGroupPanelContent($groupPanel);\r\n registerKeyboardAction(\"groupPanel\", this, $groupPanel, void 0, this._handleActionKeyDown.bind(this));\r\n return $groupPanel\r\n },\r\n name: \"groupPanel\",\r\n onItemRendered: () => {\r\n isRendered && this.renderCompleted.fire();\r\n isRendered = true\r\n },\r\n location: \"before\",\r\n locateInMenu: \"never\",\r\n sortIndex: 1\r\n };\r\n items.push(toolbarItem)\r\n }\r\n return items\r\n },\r\n _handleActionKeyDown: function(args) {\r\n var event = args.event;\r\n var $target = $(event.target);\r\n var groupColumnIndex = $target.closest(\".\".concat(DATAGRID_GROUP_PANEL_ITEM_CLASS)).index();\r\n var column = this._columnsController.getGroupColumns()[groupColumnIndex];\r\n var columnIndex = column && column.index;\r\n if ($target.is(HEADER_FILTER_CLASS_SELECTOR)) {\r\n this.getController(\"headerFilter\").showHeaderFilterMenu(columnIndex, true)\r\n } else {\r\n this._processGroupItemAction(columnIndex)\r\n }\r\n event.preventDefault()\r\n },\r\n _isGroupPanelVisible: function() {\r\n var groupPanelOptions = this.option(\"groupPanel\");\r\n var isVisible;\r\n if (groupPanelOptions) {\r\n isVisible = groupPanelOptions.visible;\r\n if (\"auto\" === isVisible) {\r\n isVisible = \"desktop\" === devices.current().deviceType ? true : false\r\n }\r\n }\r\n return isVisible\r\n },\r\n _renderGroupPanelItems: function($groupPanel, groupColumns) {\r\n var that = this;\r\n $groupPanel.empty();\r\n each(groupColumns, (function(index, groupColumn) {\r\n that._createGroupPanelItem($groupPanel, groupColumn)\r\n }));\r\n restoreFocus(this)\r\n },\r\n _createGroupPanelItem: function($rootElement, groupColumn) {\r\n var $groupPanelItem = $(\"
\").addClass(groupColumn.cssClass).addClass(DATAGRID_GROUP_PANEL_ITEM_CLASS).data(\"columnData\", groupColumn).appendTo($rootElement).text(groupColumn.caption);\r\n setTabIndex(this, $groupPanelItem);\r\n return $groupPanelItem\r\n },\r\n _columnOptionChanged: function(e) {\r\n if (!this._requireReady && !gridCore.checkChanges(e.optionNames, [\"width\", \"visibleWidth\"])) {\r\n var $toolbarElement = this.element();\r\n var $groupPanel = $toolbarElement && $toolbarElement.find(\".\" + DATAGRID_GROUP_PANEL_CLASS);\r\n if ($groupPanel && $groupPanel.length) {\r\n this._updateGroupPanelContent($groupPanel);\r\n this.renderCompleted.fire()\r\n }\r\n }\r\n this.callBase()\r\n },\r\n _updateGroupPanelContent: function($groupPanel) {\r\n var groupColumns = this.getController(\"columns\").getGroupColumns();\r\n var groupPanelOptions = this.option(\"groupPanel\");\r\n this._renderGroupPanelItems($groupPanel, groupColumns);\r\n if (groupPanelOptions.allowColumnDragging && !groupColumns.length) {\r\n $(\"
\").addClass(DATAGRID_GROUP_PANEL_MESSAGE_CLASS).text(groupPanelOptions.emptyPanelText).appendTo($groupPanel);\r\n $groupPanel.closest(\".\" + DATAGRID_GROUP_PANEL_CONTAINER_CLASS).addClass(DATAGRID_GROUP_PANEL_LABEL_CLASS);\r\n $groupPanel.closest(\".\" + DATAGRID_GROUP_PANEL_LABEL_CLASS).css(\"maxWidth\", \"none\");\r\n this.updateToolbarDimensions()\r\n }\r\n },\r\n allowDragging: function(column) {\r\n var groupPanelOptions = this.option(\"groupPanel\");\r\n return this._isGroupPanelVisible() && groupPanelOptions.allowColumnDragging && column && column.allowGrouping\r\n },\r\n getColumnElements: function() {\r\n var $element = this.element();\r\n return $element && $element.find(\".\" + DATAGRID_GROUP_PANEL_ITEM_CLASS)\r\n },\r\n getColumns: function() {\r\n return this.getController(\"columns\").getGroupColumns()\r\n },\r\n getBoundingRect: function() {\r\n var $element = this.element();\r\n if ($element && $element.find(\".\" + DATAGRID_GROUP_PANEL_CLASS).length) {\r\n var offset = $element.offset();\r\n return {\r\n top: offset.top,\r\n bottom: offset.top + getHeight($element)\r\n }\r\n }\r\n return null\r\n },\r\n getName: function() {\r\n return \"group\"\r\n },\r\n getContextMenuItems: function(options) {\r\n var contextMenuEnabled = this.option(\"grouping.contextMenuEnabled\");\r\n var $groupedColumnElement = $(options.targetElement).closest(\".\" + DATAGRID_GROUP_PANEL_ITEM_CLASS);\r\n var items;\r\n if ($groupedColumnElement.length) {\r\n options.column = $groupedColumnElement.data(\"columnData\")\r\n }\r\n if (contextMenuEnabled && options.column) {\r\n var column = options.column;\r\n var isGroupingAllowed = isDefined(column.allowGrouping) ? column.allowGrouping : true;\r\n if (isGroupingAllowed) {\r\n var isColumnGrouped = isDefined(column.groupIndex) && column.groupIndex > -1;\r\n var groupingTexts = this.option(\"grouping.texts\");\r\n var onItemClick = onGroupingMenuItemClick.bind(this, column);\r\n items = [{\r\n text: groupingTexts.ungroup,\r\n value: \"ungroup\",\r\n disabled: !isColumnGrouped,\r\n onItemClick: onItemClick\r\n }, {\r\n text: groupingTexts.ungroupAll,\r\n value: \"ungroupAll\",\r\n onItemClick: onItemClick\r\n }]\r\n }\r\n }\r\n return items\r\n },\r\n isVisible: function() {\r\n return this.callBase() || this._isGroupPanelVisible()\r\n },\r\n optionChanged: function(args) {\r\n if (\"groupPanel\" === args.name) {\r\n this._invalidate();\r\n args.handled = true\r\n } else {\r\n this.callBase(args)\r\n }\r\n }\r\n};\r\nvar GroupingRowsViewExtender = {\r\n getContextMenuItems: function(options) {\r\n var contextMenuEnabled = this.option(\"grouping.contextMenuEnabled\");\r\n var items;\r\n if (contextMenuEnabled && options.row && \"group\" === options.row.rowType) {\r\n var columnsController = this._columnsController;\r\n var column = columnsController.columnOption(\"groupIndex:\" + options.row.groupIndex);\r\n if (column && column.allowGrouping) {\r\n var groupingTexts = this.option(\"grouping.texts\");\r\n var onItemClick = onGroupingMenuItemClick.bind(this, column);\r\n items = [];\r\n items.push({\r\n text: groupingTexts.ungroup,\r\n value: \"ungroup\",\r\n onItemClick: onItemClick\r\n }, {\r\n text: groupingTexts.ungroupAll,\r\n value: \"ungroupAll\",\r\n onItemClick: onItemClick\r\n })\r\n }\r\n }\r\n return items\r\n },\r\n _rowClick: function(e) {\r\n var expandMode = this.option(\"grouping.expandMode\");\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n var isGroupRowStateChanged = \"infinite\" !== scrollingMode && \"rowClick\" === expandMode && $(e.event.target).closest(\".\" + DATAGRID_GROUP_ROW_CLASS).length;\r\n var isExpandButtonClicked = $(e.event.target).closest(\".\" + DATAGRID_EXPAND_CLASS).length;\r\n if (isGroupRowStateChanged || isExpandButtonClicked) {\r\n this._changeGroupRowState(e)\r\n }\r\n this.callBase(e)\r\n },\r\n _changeGroupRowState: function(e) {\r\n var dataController = this.getController(\"data\");\r\n var row = dataController.items()[e.rowIndex];\r\n var allowCollapsing = this._columnsController.columnOption(\"groupIndex:\" + row.groupIndex, \"allowCollapsing\");\r\n if (\"data\" === row.rowType || \"group\" === row.rowType && false !== allowCollapsing) {\r\n dataController.changeRowExpand(row.key, true);\r\n e.event.preventDefault();\r\n e.handled = true\r\n }\r\n }\r\n};\r\nvar columnHeadersViewExtender = {\r\n getContextMenuItems: function(options) {\r\n var contextMenuEnabled = this.option(\"grouping.contextMenuEnabled\");\r\n var items = this.callBase(options);\r\n if (contextMenuEnabled && options.row && (\"header\" === options.row.rowType || \"detailAdaptive\" === options.row.rowType)) {\r\n var column = options.column;\r\n if (!column.command && (!isDefined(column.allowGrouping) || column.allowGrouping)) {\r\n var groupingTexts = this.option(\"grouping.texts\");\r\n var isColumnGrouped = isDefined(column.groupIndex) && column.groupIndex > -1;\r\n var onItemClick = onGroupingMenuItemClick.bind(this, column);\r\n items = items || [];\r\n items.push({\r\n text: groupingTexts.groupByThisColumn,\r\n value: \"group\",\r\n beginGroup: true,\r\n disabled: isColumnGrouped,\r\n onItemClick: onItemClick\r\n });\r\n if (column.showWhenGrouped) {\r\n items.push({\r\n text: groupingTexts.ungroup,\r\n value: \"ungroup\",\r\n disabled: !isColumnGrouped,\r\n onItemClick: onItemClick\r\n })\r\n }\r\n items.push({\r\n text: groupingTexts.ungroupAll,\r\n value: \"ungroupAll\",\r\n onItemClick: onItemClick\r\n })\r\n }\r\n }\r\n return items\r\n }\r\n};\r\ngridCore.registerModule(\"grouping\", {\r\n defaultOptions: function() {\r\n return {\r\n grouping: {\r\n autoExpandAll: true,\r\n allowCollapsing: true,\r\n contextMenuEnabled: false,\r\n expandMode: \"buttonClick\",\r\n texts: {\r\n groupContinuesMessage: messageLocalization.format(\"dxDataGrid-groupContinuesMessage\"),\r\n groupContinuedMessage: messageLocalization.format(\"dxDataGrid-groupContinuedMessage\"),\r\n groupByThisColumn: messageLocalization.format(\"dxDataGrid-groupHeaderText\"),\r\n ungroup: messageLocalization.format(\"dxDataGrid-ungroupHeaderText\"),\r\n ungroupAll: messageLocalization.format(\"dxDataGrid-ungroupAllText\")\r\n }\r\n },\r\n groupPanel: {\r\n visible: false,\r\n emptyPanelText: messageLocalization.format(\"dxDataGrid-groupPanelEmptyText\"),\r\n allowColumnDragging: true\r\n }\r\n }\r\n },\r\n extenders: {\r\n controllers: {\r\n data: GroupingDataControllerExtender,\r\n columns: {\r\n _getExpandColumnOptions: function() {\r\n var options = this.callBase.apply(this, arguments);\r\n options.cellTemplate = gridCore.getExpandCellTemplate();\r\n return options\r\n }\r\n },\r\n editing: {\r\n _isProcessedItem: function(item) {\r\n return isDefined(item.groupIndex) && isString(item.rowType) && 0 === item.rowType.indexOf(\"group\")\r\n }\r\n }\r\n },\r\n views: {\r\n headerPanel: GroupingHeaderPanelExtender,\r\n rowsView: GroupingRowsViewExtender,\r\n columnHeadersView: columnHeadersViewExtender\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.master_detail.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight,\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport {\r\n grep\r\n} from \"../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar MASTER_DETAIL_CELL_CLASS = \"dx-master-detail-cell\";\r\nvar MASTER_DETAIL_ROW_CLASS = \"dx-master-detail-row\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar ROW_LINES_CLASS = \"dx-row-lines\";\r\nexport var masterDetailModule = {\r\n defaultOptions: function() {\r\n return {\r\n masterDetail: {\r\n enabled: false,\r\n autoExpandAll: false,\r\n template: null\r\n }\r\n }\r\n },\r\n extenders: {\r\n controllers: {\r\n columns: {\r\n _getExpandColumnsCore: function() {\r\n var expandColumns = this.callBase();\r\n if (this.option(\"masterDetail.enabled\")) {\r\n expandColumns.push({\r\n type: \"detailExpand\",\r\n cellTemplate: gridCoreUtils.getExpandCellTemplate()\r\n })\r\n }\r\n return expandColumns\r\n }\r\n },\r\n data: function() {\r\n var initMasterDetail = function(that) {\r\n that._expandedItems = [];\r\n that._isExpandAll = that.option(\"masterDetail.autoExpandAll\")\r\n };\r\n return {\r\n init: function() {\r\n initMasterDetail(this);\r\n this.callBase()\r\n },\r\n expandAll: function(groupIndex) {\r\n var that = this;\r\n if (groupIndex < 0) {\r\n that._isExpandAll = true;\r\n that._expandedItems = [];\r\n that.updateItems()\r\n } else {\r\n that.callBase.apply(that, arguments)\r\n }\r\n },\r\n collapseAll: function(groupIndex) {\r\n var that = this;\r\n if (groupIndex < 0) {\r\n that._isExpandAll = false;\r\n that._expandedItems = [];\r\n that.updateItems()\r\n } else {\r\n that.callBase.apply(that, arguments)\r\n }\r\n },\r\n isRowExpanded: function(key) {\r\n var that = this;\r\n var expandIndex = gridCoreUtils.getIndexByKey(key, that._expandedItems);\r\n if (Array.isArray(key)) {\r\n return that.callBase.apply(that, arguments)\r\n } else {\r\n return !!(that._isExpandAll ^ (expandIndex >= 0 && that._expandedItems[expandIndex].visible))\r\n }\r\n },\r\n _getRowIndicesForExpand: function(key) {\r\n var rowIndex = this.getRowIndexByKey(key);\r\n return [rowIndex, rowIndex + 1]\r\n },\r\n _changeRowExpandCore: function(key) {\r\n var that = this;\r\n var result;\r\n if (Array.isArray(key)) {\r\n result = that.callBase.apply(that, arguments)\r\n } else {\r\n var expandIndex = gridCoreUtils.getIndexByKey(key, that._expandedItems);\r\n if (expandIndex >= 0) {\r\n var visible = that._expandedItems[expandIndex].visible;\r\n that._expandedItems[expandIndex].visible = !visible\r\n } else {\r\n that._expandedItems.push({\r\n key: key,\r\n visible: true\r\n })\r\n }\r\n that.updateItems({\r\n changeType: \"update\",\r\n rowIndices: that._getRowIndicesForExpand(key)\r\n });\r\n result = (new Deferred).resolve()\r\n }\r\n return result\r\n },\r\n _processDataItem: function(data, options) {\r\n var that = this;\r\n var dataItem = that.callBase.apply(that, arguments);\r\n dataItem.isExpanded = that.isRowExpanded(dataItem.key);\r\n if (void 0 === options.detailColumnIndex) {\r\n options.detailColumnIndex = -1;\r\n each(options.visibleColumns, (function(index, column) {\r\n if (\"expand\" === column.command && !isDefined(column.groupIndex)) {\r\n options.detailColumnIndex = index;\r\n return false\r\n }\r\n }))\r\n }\r\n if (options.detailColumnIndex >= 0) {\r\n dataItem.values[options.detailColumnIndex] = dataItem.isExpanded\r\n }\r\n return dataItem\r\n },\r\n _processItems: function(items, change) {\r\n var that = this;\r\n var changeType = change.changeType;\r\n var result = [];\r\n items = that.callBase.apply(that, arguments);\r\n if (\"loadingAll\" === changeType) {\r\n return items\r\n }\r\n if (\"refresh\" === changeType) {\r\n that._expandedItems = grep(that._expandedItems, (function(item) {\r\n return item.visible\r\n }))\r\n }\r\n each(items, (function(index, item) {\r\n result.push(item);\r\n var expandIndex = gridCoreUtils.getIndexByKey(item.key, that._expandedItems);\r\n if (\"data\" === item.rowType && (item.isExpanded || expandIndex >= 0) && !item.isNewRow) {\r\n result.push({\r\n visible: item.isExpanded,\r\n rowType: \"detail\",\r\n key: item.key,\r\n data: item.data,\r\n values: []\r\n })\r\n }\r\n }));\r\n return result\r\n },\r\n optionChanged: function(args) {\r\n var isEnabledChanged;\r\n var isAutoExpandAllChanged;\r\n if (\"masterDetail\" === args.name) {\r\n args.name = \"dataSource\";\r\n switch (args.fullName) {\r\n case \"masterDetail\":\r\n var value = args.value || {};\r\n var previousValue = args.previousValue || {};\r\n isEnabledChanged = value.enabled !== previousValue.enabled;\r\n isAutoExpandAllChanged = value.autoExpandAll !== previousValue.autoExpandAll;\r\n break;\r\n case \"masterDetail.template\":\r\n initMasterDetail(this);\r\n break;\r\n case \"masterDetail.enabled\":\r\n isEnabledChanged = true;\r\n break;\r\n case \"masterDetail.autoExpandAll\":\r\n isAutoExpandAllChanged = true\r\n }\r\n if (isEnabledChanged || isAutoExpandAllChanged) {\r\n initMasterDetail(this)\r\n }\r\n }\r\n this.callBase(args)\r\n }\r\n }\r\n }(),\r\n resizing: {\r\n fireContentReadyAction: function() {\r\n this.callBase.apply(this, arguments);\r\n this._updateParentDataGrids(this.component.$element())\r\n },\r\n _updateParentDataGrids: function($element) {\r\n var $masterDetailRow = $element.closest(\".\" + MASTER_DETAIL_ROW_CLASS);\r\n if ($masterDetailRow.length) {\r\n when(this._updateMasterDataGrid($masterDetailRow, $element)).done(() => {\r\n this._updateParentDataGrids($masterDetailRow.parent())\r\n })\r\n }\r\n },\r\n _updateMasterDataGrid: function($masterDetailRow, $detailElement) {\r\n var masterRowOptions = $($masterDetailRow).data(\"options\");\r\n var masterDataGrid = $($masterDetailRow).closest(\".\" + this.getWidgetContainerClass()).parent().data(\"dxDataGrid\");\r\n if (masterRowOptions && masterDataGrid) {\r\n return this._updateMasterDataGridCore(masterDataGrid, masterRowOptions)\r\n }\r\n },\r\n _updateMasterDataGridCore: function(masterDataGrid, masterRowOptions) {\r\n var d = Deferred();\r\n if (masterDataGrid.getView(\"rowsView\").isFixedColumns()) {\r\n this._updateFixedMasterDetailGrids(masterDataGrid, masterRowOptions.rowIndex, $(masterRowOptions.rowElement)).done(d.resolve)\r\n } else {\r\n if (true === masterDataGrid.option(\"scrolling.useNative\")) {\r\n masterDataGrid.updateDimensions().done(() => d.resolve(true));\r\n return\r\n }\r\n var scrollable = masterDataGrid.getScrollable();\r\n if (scrollable) {\r\n null === scrollable || void 0 === scrollable ? void 0 : scrollable.update().done(() => d.resolve())\r\n } else {\r\n d.resolve()\r\n }\r\n }\r\n return d.promise()\r\n },\r\n _updateFixedMasterDetailGrids: function(masterDataGrid, masterRowIndex, $detailElement) {\r\n var d = Deferred();\r\n var $rows = $(masterDataGrid.getRowElement(masterRowIndex));\r\n var $tables = $(masterDataGrid.getView(\"rowsView\").getTableElements());\r\n var rowsNotEqual = 2 === (null === $rows || void 0 === $rows ? void 0 : $rows.length) && getHeight($rows.eq(0)) !== getHeight($rows.eq(1));\r\n var tablesNotEqual = 2 === (null === $tables || void 0 === $tables ? void 0 : $tables.length) && getHeight($tables.eq(0)) !== getHeight($tables.eq(1));\r\n if (rowsNotEqual || tablesNotEqual) {\r\n var detailElementWidth = getWidth($detailElement);\r\n masterDataGrid.updateDimensions().done(() => {\r\n var isDetailHorizontalScrollCanBeShown = this.option(\"columnAutoWidth\") && true === masterDataGrid.option(\"scrolling.useNative\");\r\n var isDetailGridWidthChanged = isDetailHorizontalScrollCanBeShown && detailElementWidth !== getWidth($detailElement);\r\n if (isDetailHorizontalScrollCanBeShown && isDetailGridWidthChanged) {\r\n this.updateDimensions().done(() => d.resolve(true))\r\n } else {\r\n d.resolve(true)\r\n }\r\n });\r\n return d.promise()\r\n }\r\n return Deferred().resolve()\r\n },\r\n _toggleBestFitMode: function(isBestFit) {\r\n this.callBase.apply(this, arguments);\r\n if (this.option(\"masterDetail.template\")) {\r\n var $rowsTable = this._rowsView.getTableElement();\r\n if ($rowsTable) {\r\n $rowsTable.find(\".dx-master-detail-cell\").css(\"maxWidth\", isBestFit ? 0 : \"\")\r\n }\r\n }\r\n }\r\n }\r\n },\r\n views: {\r\n rowsView: {\r\n _getCellTemplate: function(options) {\r\n var that = this;\r\n var column = options.column;\r\n var editingController = that.getController(\"editing\");\r\n var isEditRow = editingController && editingController.isEditRow(options.rowIndex);\r\n var template;\r\n if (\"detail\" === column.command && !isEditRow) {\r\n template = that.option(\"masterDetail.template\") || {\r\n allowRenderToDetachedContainer: false,\r\n render: that._getDefaultTemplate(column)\r\n }\r\n } else {\r\n template = that.callBase.apply(that, arguments)\r\n }\r\n return template\r\n },\r\n _isDetailRow: function(row) {\r\n return row && row.rowType && 0 === row.rowType.indexOf(\"detail\")\r\n },\r\n _createRow: function(row) {\r\n var $row = this.callBase.apply(this, arguments);\r\n if (row && this._isDetailRow(row)) {\r\n this.option(\"showRowLines\") && $row.addClass(ROW_LINES_CLASS);\r\n $row.addClass(MASTER_DETAIL_ROW_CLASS);\r\n if (isDefined(row.visible)) {\r\n $row.toggle(row.visible)\r\n }\r\n }\r\n return $row\r\n },\r\n _renderCells: function($row, options) {\r\n var row = options.row;\r\n var $detailCell;\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n if (row.rowType && this._isDetailRow(row)) {\r\n if (this._needRenderCell(0, options.columnIndices)) {\r\n $detailCell = this._renderCell($row, {\r\n value: null,\r\n row: row,\r\n rowIndex: row.rowIndex,\r\n column: {\r\n command: \"detail\"\r\n },\r\n columnIndex: 0,\r\n change: options.change\r\n });\r\n $detailCell.addClass(CELL_FOCUS_DISABLED_CLASS).addClass(MASTER_DETAIL_CELL_CLASS).attr(\"colSpan\", visibleColumns.length)\r\n }\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.master_detail.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n masterDetailModule\r\n} from \"../grid_core/ui.grid_core.master_detail\";\r\ngridCore.registerModule(\"masterDetail\", masterDetailModule);\r\n","/**\r\n * DevExtreme (esm/ui/number_box/utils.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n adjust\r\n} from \"../../core/utils/math\";\r\nvar getRealSeparatorIndex = function(str) {\r\n var quoteBalance = 0;\r\n var separatorCount = 0;\r\n for (var i = 0; i < str.length; ++i) {\r\n if (\"'\" === str[i]) {\r\n quoteBalance++\r\n }\r\n if (\".\" === str[i]) {\r\n ++separatorCount;\r\n if (quoteBalance % 2 === 0) {\r\n return {\r\n occurrence: separatorCount,\r\n index: i\r\n }\r\n }\r\n }\r\n }\r\n return {\r\n occurrence: 1,\r\n index: -1\r\n }\r\n};\r\nvar getNthOccurrence = function(str, c, n) {\r\n var i = -1;\r\n while (n-- && i++ < str.length) {\r\n i = str.indexOf(c, i)\r\n }\r\n return i\r\n};\r\nvar splitByIndex = function(str, index) {\r\n if (-1 === index) {\r\n return [str]\r\n }\r\n return [str.slice(0, index), str.slice(index + 1)]\r\n};\r\nvar adjustPercentValue = function(rawValue, precision) {\r\n return rawValue && adjust(rawValue / 100, precision)\r\n};\r\nexport {\r\n getRealSeparatorIndex,\r\n getNthOccurrence,\r\n splitByIndex,\r\n adjustPercentValue\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/number_box/number_box.caret.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n fitIntoRange\r\n} from \"../../core/utils/math\";\r\nimport {\r\n escapeRegExp\r\n} from \"../../core/utils/common\";\r\nimport number from \"../../localization/number\";\r\nimport {\r\n getRealSeparatorIndex,\r\n getNthOccurrence,\r\n splitByIndex\r\n} from \"./utils\";\r\nexport var getCaretBoundaries = function(text, format) {\r\n if (\"string\" === typeof format) {\r\n var signParts = format.split(\";\");\r\n var sign = number.getSign(text, format);\r\n signParts[1] = signParts[1] || \"-\" + signParts[0];\r\n format = signParts[sign < 0 ? 1 : 0];\r\n format = (str = format, str.replace(/'([^']*)'/g, str => str.split(\"\").map(() => \" \").join(\"\").substr(2)));\r\n var prefixStubLength = /^[^#0.,]*/.exec(format)[0].length;\r\n var postfixStubLength = /[^#0.,]*$/.exec(format)[0].length;\r\n return {\r\n start: prefixStubLength,\r\n end: text.length - postfixStubLength\r\n }\r\n } else {\r\n return {\r\n start: 0,\r\n end: text.length\r\n }\r\n }\r\n var str\r\n};\r\nvar _getDigitCountBeforeIndex = function(index, text) {\r\n var decimalSeparator = number.getDecimalSeparator();\r\n var regExp = new RegExp(\"[^0-9\" + escapeRegExp(decimalSeparator) + \"]\", \"g\");\r\n var textBeforePosition = text.slice(0, index);\r\n return textBeforePosition.replace(regExp, \"\").length\r\n};\r\nvar _reverseText = function(text) {\r\n return text.split(\"\").reverse().join(\"\")\r\n};\r\nvar _getDigitPositionByIndex = function(digitIndex, text) {\r\n if (!digitIndex) {\r\n return -1\r\n }\r\n var regExp = /[0-9]/g;\r\n var counter = 1;\r\n var index = null;\r\n var result = regExp.exec(text);\r\n while (result) {\r\n index = result.index;\r\n if (counter >= digitIndex) {\r\n return index\r\n }\r\n counter++;\r\n result = regExp.exec(text)\r\n }\r\n return null === index ? text.length : index\r\n};\r\nvar _trimNonNumericCharsFromEnd = function(text) {\r\n return text.replace(/[^0-9e]+$/, \"\")\r\n};\r\nexport var getCaretWithOffset = function(caret, offset) {\r\n if (void 0 === caret.start) {\r\n caret = {\r\n start: caret,\r\n end: caret\r\n }\r\n }\r\n return {\r\n start: caret.start + offset,\r\n end: caret.end + offset\r\n }\r\n};\r\nexport var getCaretAfterFormat = function(text, formatted, caret, format) {\r\n caret = getCaretWithOffset(caret, 0);\r\n var point = number.getDecimalSeparator();\r\n var isSeparatorBasedText = isSeparatorBasedString(text);\r\n var realSeparatorOccurrenceIndex = getRealSeparatorIndex(format).occurrence;\r\n var pointPosition = isSeparatorBasedText ? 0 : getNthOccurrence(text, point, realSeparatorOccurrenceIndex);\r\n var newPointPosition = getNthOccurrence(formatted, point, realSeparatorOccurrenceIndex);\r\n var textParts = splitByIndex(text, pointPosition);\r\n var formattedParts = splitByIndex(formatted, newPointPosition);\r\n var isCaretOnFloat = -1 !== pointPosition && caret.start > pointPosition;\r\n if (isCaretOnFloat) {\r\n var relativeIndex = caret.start - pointPosition - 1;\r\n var digitsBefore = _getDigitCountBeforeIndex(relativeIndex, textParts[1]);\r\n var newPosition = formattedParts[1] ? newPointPosition + 1 + _getDigitPositionByIndex(digitsBefore, formattedParts[1]) + 1 : formatted.length;\r\n return getCaretInBoundaries(newPosition, formatted, format)\r\n } else {\r\n var formattedIntPart = _trimNonNumericCharsFromEnd(formattedParts[0]);\r\n var positionFromEnd = textParts[0].length - caret.start;\r\n var digitsFromEnd = _getDigitCountBeforeIndex(positionFromEnd, _reverseText(textParts[0]));\r\n var newPositionFromEnd = _getDigitPositionByIndex(digitsFromEnd, _reverseText(formattedIntPart));\r\n var newPositionFromBegin = formattedIntPart.length - (newPositionFromEnd + 1);\r\n return getCaretInBoundaries(newPositionFromBegin, formatted, format)\r\n }\r\n};\r\n\r\nfunction isSeparatorBasedString(text) {\r\n return 1 === text.length && !!text.match(/^[,.][0-9]*$/g)\r\n}\r\nexport var isCaretInBoundaries = function(caret, text, format) {\r\n caret = getCaretWithOffset(caret, 0);\r\n var boundaries = getCaretInBoundaries(caret, text, format);\r\n return caret.start >= boundaries.start && caret.end <= boundaries.end\r\n};\r\nexport function getCaretInBoundaries(caret, text, format) {\r\n caret = getCaretWithOffset(caret, 0);\r\n var boundaries = getCaretBoundaries(text, format);\r\n var adjustedCaret = {\r\n start: fitIntoRange(caret.start, boundaries.start, boundaries.end),\r\n end: fitIntoRange(caret.end, boundaries.start, boundaries.end)\r\n };\r\n return adjustedCaret\r\n}\r\nexport var getCaretOffset = function(previousText, newText, format) {\r\n var previousBoundaries = getCaretBoundaries(previousText, format);\r\n var newBoundaries = getCaretBoundaries(newText, format);\r\n return newBoundaries.start - previousBoundaries.start\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/number_box/number_box.spin.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n lock\r\n} from \"../../events/core/emitter.feedback\";\r\nimport holdEvent from \"../../events/hold\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar SPIN_CLASS = \"dx-numberbox-spin\";\r\nvar SPIN_BUTTON_CLASS = \"dx-numberbox-spin-button\";\r\nvar SPIN_HOLD_DELAY = 100;\r\nvar NUMBER_BOX = \"dxNumberBox\";\r\nvar POINTERUP_EVENT_NAME = addNamespace(pointerEvents.up, NUMBER_BOX);\r\nvar POINTERCANCEL_EVENT_NAME = addNamespace(pointerEvents.cancel, NUMBER_BOX);\r\nvar SpinButton = Widget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n direction: \"up\",\r\n onChange: null,\r\n activeStateEnabled: true,\r\n hoverStateEnabled: true\r\n })\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n var direction = SPIN_CLASS + \"-\" + this.option(\"direction\");\r\n this.$element().addClass(SPIN_BUTTON_CLASS).addClass(direction);\r\n this._spinIcon = $(\"
\").addClass(direction + \"-icon\").appendTo(this.$element())\r\n },\r\n _render: function() {\r\n this.callBase();\r\n var eventName = addNamespace(pointerEvents.down, this.NAME);\r\n var $element = this.$element();\r\n eventsEngine.off($element, eventName);\r\n eventsEngine.on($element, eventName, this._spinDownHandler.bind(this));\r\n this._spinChangeHandler = this._createActionByOption(\"onChange\")\r\n },\r\n _spinDownHandler: function(e) {\r\n e.preventDefault();\r\n this._clearTimer();\r\n eventsEngine.on(this.$element(), holdEvent.name, function() {\r\n this._feedBackDeferred = new Deferred;\r\n lock(this._feedBackDeferred);\r\n this._spinChangeHandler({\r\n event: e\r\n });\r\n this._holdTimer = setInterval(this._spinChangeHandler, SPIN_HOLD_DELAY, {\r\n event: e\r\n })\r\n }.bind(this));\r\n var document = domAdapter.getDocument();\r\n eventsEngine.on(document, POINTERUP_EVENT_NAME, this._clearTimer.bind(this));\r\n eventsEngine.on(document, POINTERCANCEL_EVENT_NAME, this._clearTimer.bind(this));\r\n this._spinChangeHandler({\r\n event: e\r\n })\r\n },\r\n _dispose: function() {\r\n this._clearTimer();\r\n this.callBase()\r\n },\r\n _clearTimer: function() {\r\n eventsEngine.off(this.$element(), holdEvent.name);\r\n var document = domAdapter.getDocument();\r\n eventsEngine.off(document, POINTERUP_EVENT_NAME);\r\n eventsEngine.off(document, POINTERCANCEL_EVENT_NAME);\r\n if (this._feedBackDeferred) {\r\n this._feedBackDeferred.resolve()\r\n }\r\n if (this._holdTimer) {\r\n clearInterval(this._holdTimer)\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"onChange\":\r\n case \"direction\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport default SpinButton;\r\n","/**\r\n * DevExtreme (esm/ui/number_box/number_box.spins.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport TextEditorButton from \"../text_box/texteditor_button_collection/button\";\r\nimport SpinButton from \"./number_box.spin\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport pointer from \"../../events/pointer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nvar SPIN_CLASS = \"dx-numberbox-spin\";\r\nvar SPIN_CONTAINER_CLASS = \"dx-numberbox-spin-container\";\r\nvar SPIN_TOUCH_FRIENDLY_CLASS = \"dx-numberbox-spin-touch-friendly\";\r\nexport default class SpinButtons extends TextEditorButton {\r\n _attachEvents(instance, $spinContainer) {\r\n var {\r\n editor: editor\r\n } = this;\r\n var eventName = addNamespace(pointer.down, editor.NAME);\r\n var $spinContainerChildren = $spinContainer.children();\r\n var pointerDownAction = editor._createAction(e => editor._spinButtonsPointerDownHandler(e));\r\n eventsEngine.off($spinContainer, eventName);\r\n eventsEngine.on($spinContainer, eventName, e => pointerDownAction({\r\n event: e\r\n }));\r\n SpinButton.getInstance($spinContainerChildren.eq(0)).option(\"onChange\", e => editor._spinUpChangeHandler(e));\r\n SpinButton.getInstance($spinContainerChildren.eq(1)).option(\"onChange\", e => editor._spinDownChangeHandler(e))\r\n }\r\n _create() {\r\n var {\r\n editor: editor\r\n } = this;\r\n var $spinContainer = $(\"
\").addClass(SPIN_CONTAINER_CLASS);\r\n var $spinUp = $(\"
\").appendTo($spinContainer);\r\n var $spinDown = $(\"
\").appendTo($spinContainer);\r\n var options = this._getOptions();\r\n this._addToContainer($spinContainer);\r\n editor._createComponent($spinUp, SpinButton, extend({\r\n direction: \"up\"\r\n }, options));\r\n editor._createComponent($spinDown, SpinButton, extend({\r\n direction: \"down\"\r\n }, options));\r\n this._legacyRender(editor.$element(), this._isTouchFriendly(), options.visible);\r\n return {\r\n instance: $spinContainer,\r\n $element: $spinContainer\r\n }\r\n }\r\n _getOptions() {\r\n var {\r\n editor: editor\r\n } = this;\r\n var visible = this._isVisible();\r\n var disabled = editor.option(\"disabled\");\r\n return {\r\n visible: visible,\r\n disabled: disabled\r\n }\r\n }\r\n _isVisible() {\r\n var {\r\n editor: editor\r\n } = this;\r\n return super._isVisible() && editor.option(\"showSpinButtons\")\r\n }\r\n _isTouchFriendly() {\r\n var {\r\n editor: editor\r\n } = this;\r\n return editor.option(\"showSpinButtons\") && editor.option(\"useLargeSpinButtons\")\r\n }\r\n _legacyRender($editor, isTouchFriendly, isVisible) {\r\n $editor.toggleClass(SPIN_TOUCH_FRIENDLY_CLASS, isTouchFriendly);\r\n $editor.toggleClass(SPIN_CLASS, isVisible)\r\n }\r\n update() {\r\n var shouldUpdate = super.update();\r\n if (shouldUpdate) {\r\n var {\r\n editor: editor,\r\n instance: instance\r\n } = this;\r\n var $editor = editor.$element();\r\n var isVisible = this._isVisible();\r\n var isTouchFriendly = this._isTouchFriendly();\r\n var $spinButtons = instance.children();\r\n var spinUp = SpinButton.getInstance($spinButtons.eq(0));\r\n var spinDown = SpinButton.getInstance($spinButtons.eq(1));\r\n var options = this._getOptions();\r\n spinUp.option(options);\r\n spinDown.option(options);\r\n this._legacyRender($editor, isTouchFriendly, isVisible)\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/number_box/number_box.base.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n applyServerDecimalSeparator,\r\n ensureDefined\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n fitIntoRange,\r\n inRange\r\n} from \"../../core/utils/math\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport devices from \"../../core/devices\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport TextEditor from \"../text_box/ui.text_editor\";\r\nimport {\r\n addNamespace,\r\n getChar,\r\n isCommandKeyPressed,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport SpinButtons from \"./number_box.spins\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar math = Math;\r\nvar WIDGET_CLASS = \"dx-numberbox\";\r\nvar FIREFOX_CONTROL_KEYS = [\"tab\", \"del\", \"backspace\", \"leftArrow\", \"rightArrow\", \"home\", \"end\", \"enter\"];\r\nvar FORCE_VALUECHANGE_EVENT_NAMESPACE = \"NumberBoxForceValueChange\";\r\nvar NumberBoxBase = TextEditor.inherit({\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), {\r\n upArrow: function(e) {\r\n if (!isCommandKeyPressed(e)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this._spinUpChangeHandler(e)\r\n }\r\n },\r\n downArrow: function(e) {\r\n if (!isCommandKeyPressed(e)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this._spinDownChangeHandler(e)\r\n }\r\n },\r\n enter: function() {}\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n value: 0,\r\n min: void 0,\r\n max: void 0,\r\n step: 1,\r\n showSpinButtons: false,\r\n useLargeSpinButtons: true,\r\n mode: \"text\",\r\n invalidValueMessage: messageLocalization.format(\"dxNumberBox-invalidValueMessage\"),\r\n buttons: void 0\r\n })\r\n },\r\n _useTemplates: function() {\r\n return false\r\n },\r\n _getDefaultButtons: function() {\r\n return this.callBase().concat([{\r\n name: \"spins\",\r\n Ctor: SpinButtons\r\n }])\r\n },\r\n _isSupportInputMode: function() {\r\n var version = parseFloat(browser.version);\r\n return browser.chrome && version >= 66 || browser.safari && version >= 12\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return devices.real().generic && !devices.isSimulator()\r\n },\r\n options: {\r\n useLargeSpinButtons: false\r\n }\r\n }, {\r\n device: function() {\r\n return \"desktop\" !== devices.real().deviceType && !this._isSupportInputMode()\r\n }.bind(this),\r\n options: {\r\n mode: \"number\"\r\n }\r\n }])\r\n },\r\n _initMarkup: function() {\r\n this._renderSubmitElement();\r\n this.$element().addClass(WIDGET_CLASS);\r\n this.callBase()\r\n },\r\n _getDefaultAttributes: function() {\r\n var attributes = this.callBase();\r\n attributes.inputmode = \"decimal\";\r\n return attributes\r\n },\r\n _renderContentImpl: function() {\r\n this.option(\"isValid\") && this._validateValue(this.option(\"value\"));\r\n this.setAria(\"role\", \"spinbutton\")\r\n },\r\n _renderSubmitElement: function() {\r\n this._$submitElement = $(\"\").attr(\"type\", \"hidden\").appendTo(this.$element());\r\n this._setSubmitValue(this.option(\"value\"))\r\n },\r\n _setSubmitValue: function(value) {\r\n this._getSubmitElement().val(applyServerDecimalSeparator(value))\r\n },\r\n _getSubmitElement: function() {\r\n return this._$submitElement\r\n },\r\n _keyPressHandler: function(e) {\r\n this.callBase(e);\r\n var char = getChar(e);\r\n var isInputCharValid = /[\\d.,eE\\-+]/.test(char);\r\n if (!isInputCharValid) {\r\n var keyName = normalizeKeyName(e);\r\n if (isCommandKeyPressed(e) || keyName && FIREFOX_CONTROL_KEYS.includes(keyName)) {\r\n return\r\n }\r\n e.preventDefault();\r\n return false\r\n }\r\n this._keyPressed = true\r\n },\r\n _onMouseWheel: function(dxEvent) {\r\n dxEvent.delta > 0 ? this._spinValueChange(1, dxEvent) : this._spinValueChange(-1, dxEvent)\r\n },\r\n _renderValue: function() {\r\n var inputValue = this._input().val();\r\n var value = this.option(\"value\");\r\n if (!inputValue.length || Number(inputValue) !== value) {\r\n this._forceValueRender();\r\n this._toggleEmptinessEventHandler()\r\n }\r\n var valueText = isDefined(value) ? null : messageLocalization.format(\"dxNumberBox-noDataText\");\r\n this.setAria({\r\n valuenow: ensureDefined(value, \"\"),\r\n valuetext: valueText\r\n });\r\n this.option(\"text\", this._input().val());\r\n this._updateButtons();\r\n return (new Deferred).resolve()\r\n },\r\n _forceValueRender: function() {\r\n var value = this.option(\"value\");\r\n var number = Number(value);\r\n var formattedValue = isNaN(number) ? \"\" : this._applyDisplayValueFormatter(value);\r\n this._renderDisplayText(formattedValue)\r\n },\r\n _applyDisplayValueFormatter: function(value) {\r\n return this.option(\"displayValueFormatter\")(value)\r\n },\r\n _renderProps: function() {\r\n this._input().prop({\r\n min: this.option(\"min\"),\r\n max: this.option(\"max\"),\r\n step: this.option(\"step\")\r\n });\r\n this.setAria({\r\n valuemin: ensureDefined(this.option(\"min\"), \"\"),\r\n valuemax: ensureDefined(this.option(\"max\"), \"\")\r\n })\r\n },\r\n _spinButtonsPointerDownHandler: function() {\r\n var $input = this._input();\r\n if (!this.option(\"useLargeSpinButtons\") && domAdapter.getActiveElement() !== $input[0]) {\r\n eventsEngine.trigger($input, \"focus\")\r\n }\r\n },\r\n _spinUpChangeHandler: function(e) {\r\n if (!this.option(\"readOnly\")) {\r\n this._spinValueChange(1, e.event || e)\r\n }\r\n },\r\n _spinDownChangeHandler: function(e) {\r\n if (!this.option(\"readOnly\")) {\r\n this._spinValueChange(-1, e.event || e)\r\n }\r\n },\r\n _spinValueChange: function(sign, dxEvent) {\r\n var step = parseFloat(this.option(\"step\"));\r\n if (0 === step) {\r\n return\r\n }\r\n var value = parseFloat(this._normalizeInputValue()) || 0;\r\n value = this._correctRounding(value, step * sign);\r\n var min = this.option(\"min\");\r\n var max = this.option(\"max\");\r\n if (isDefined(min)) {\r\n value = Math.max(min, value)\r\n }\r\n if (isDefined(max)) {\r\n value = Math.min(max, value)\r\n }\r\n this._saveValueChangeEvent(dxEvent);\r\n this.option(\"value\", value)\r\n },\r\n _correctRounding: function(value, step) {\r\n var regex = /[,.](.*)/;\r\n var isFloatValue = regex.test(value);\r\n var isFloatStep = regex.test(step);\r\n if (isFloatValue || isFloatStep) {\r\n var valueAccuracy = isFloatValue ? regex.exec(value)[0].length : 0;\r\n var stepAccuracy = isFloatStep ? regex.exec(step)[0].length : 0;\r\n var accuracy = math.max(valueAccuracy, stepAccuracy);\r\n value = this._round(value + step, accuracy);\r\n return value\r\n }\r\n return value + step\r\n },\r\n _round: function(value, precision) {\r\n precision = precision || 0;\r\n var multiplier = Math.pow(10, precision);\r\n value *= multiplier;\r\n value = Math.round(value) / multiplier;\r\n return value\r\n },\r\n _renderValueChangeEvent: function() {\r\n this.callBase();\r\n var forceValueChangeEvent = addNamespace(\"focusout\", FORCE_VALUECHANGE_EVENT_NAMESPACE);\r\n eventsEngine.off(this.element(), forceValueChangeEvent);\r\n eventsEngine.on(this.element(), forceValueChangeEvent, this._forceRefreshInputValue.bind(this))\r\n },\r\n _forceRefreshInputValue: function() {\r\n if (\"number\" === this.option(\"mode\")) {\r\n return\r\n }\r\n var $input = this._input();\r\n var formattedValue = this._applyDisplayValueFormatter(this.option(\"value\"));\r\n $input.val(null);\r\n $input.val(formattedValue)\r\n },\r\n _valueChangeEventHandler: function(e) {\r\n var $input = this._input();\r\n var inputValue = this._normalizeText();\r\n var value = this._parseValue(inputValue);\r\n var valueHasDigits = \".\" !== inputValue && \"-\" !== inputValue;\r\n if (this._isValueValid() && !this._validateValue(value)) {\r\n $input.val(this._applyDisplayValueFormatter(value));\r\n return\r\n }\r\n if (valueHasDigits) {\r\n this.callBase(e, isNaN(value) ? null : value)\r\n }\r\n this._applyValueBoundaries(inputValue, value);\r\n this.validationRequest.fire({\r\n value: value,\r\n editor: this\r\n })\r\n },\r\n _applyValueBoundaries: function(inputValue, parsedValue) {\r\n var isValueIncomplete = this._isValueIncomplete(inputValue);\r\n var isValueCorrect = this._isValueInRange(inputValue);\r\n if (!isValueIncomplete && !isValueCorrect && null !== parsedValue) {\r\n if (Number(inputValue) !== parsedValue) {\r\n this._input().val(this._applyDisplayValueFormatter(parsedValue))\r\n }\r\n }\r\n },\r\n _replaceCommaWithPoint: function(value) {\r\n return value.replace(\",\", \".\")\r\n },\r\n _inputIsInvalid: function() {\r\n var isNumberMode = \"number\" === this.option(\"mode\");\r\n var validityState = this._input().get(0).validity;\r\n return isNumberMode && validityState && validityState.badInput\r\n },\r\n _renderDisplayText: function(text) {\r\n if (this._inputIsInvalid()) {\r\n return\r\n }\r\n this.callBase(text)\r\n },\r\n _isValueIncomplete: function(value) {\r\n return /(^-$)|(^-?\\d*\\.$)|(\\d+e-?$)/i.test(value)\r\n },\r\n _isValueInRange: function(value) {\r\n return inRange(value, this.option(\"min\"), this.option(\"max\"))\r\n },\r\n _isNumber: function(value) {\r\n return null !== this._parseValue(value)\r\n },\r\n _validateValue: function(value) {\r\n var inputValue = this._normalizeText();\r\n var isValueValid = this._isValueValid();\r\n var isValid = true;\r\n var isNumber = this._isNumber(inputValue);\r\n if (isNaN(Number(value))) {\r\n isValid = false\r\n }\r\n if (!value && isValueValid) {\r\n isValid = true\r\n } else if (!isNumber && !isValueValid) {\r\n isValid = false\r\n }\r\n this.option({\r\n isValid: isValid,\r\n validationError: isValid ? null : {\r\n editorSpecific: true,\r\n message: this.option(\"invalidValueMessage\")\r\n }\r\n });\r\n return isValid\r\n },\r\n _normalizeInputValue: function() {\r\n return this._parseValue(this._normalizeText())\r\n },\r\n _normalizeText: function() {\r\n var value = this._input().val().trim();\r\n return this._replaceCommaWithPoint(value)\r\n },\r\n _parseValue: function(value) {\r\n var number = parseFloat(value);\r\n if (isNaN(number)) {\r\n return null\r\n }\r\n return fitIntoRange(number, this.option(\"min\"), this.option(\"max\"))\r\n },\r\n _clearValue: function() {\r\n if (this._inputIsInvalid()) {\r\n this._input().val(\"\");\r\n this._validateValue()\r\n }\r\n this.callBase()\r\n },\r\n reset: function() {\r\n if (null === this.option(\"value\")) {\r\n this.option(\"text\", \"\");\r\n this._renderValue()\r\n } else {\r\n this.option(\"value\", null)\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"value\":\r\n this._validateValue(args.value);\r\n this._setSubmitValue(args.value);\r\n this.callBase(args);\r\n this._resumeValueChangeAction();\r\n break;\r\n case \"step\":\r\n this._renderProps();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n this._renderProps();\r\n this.option(\"value\", this._parseValue(this.option(\"value\")));\r\n break;\r\n case \"showSpinButtons\":\r\n case \"useLargeSpinButtons\":\r\n this._updateButtons([\"spins\"]);\r\n break;\r\n case \"invalidValueMessage\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport default NumberBoxBase;\r\n","/**\r\n * DevExtreme (esm/ui/number_box/number_box.mask.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isNumeric,\r\n isDefined,\r\n isFunction,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n fitIntoRange,\r\n inRange\r\n} from \"../../core/utils/math\";\r\nimport number from \"../../localization/number\";\r\nimport {\r\n getCaretWithOffset,\r\n isCaretInBoundaries,\r\n getCaretInBoundaries,\r\n getCaretBoundaries,\r\n getCaretAfterFormat,\r\n getCaretOffset\r\n} from \"./number_box.caret\";\r\nimport {\r\n getFormat as getLDMLFormat\r\n} from \"../../localization/ldml/number\";\r\nimport NumberBoxBase from \"./number_box.base\";\r\nimport {\r\n addNamespace,\r\n getChar,\r\n normalizeKeyName,\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nimport {\r\n ensureDefined,\r\n escapeRegExp\r\n} from \"../../core/utils/common\";\r\nimport {\r\n getRealSeparatorIndex,\r\n getNthOccurrence,\r\n splitByIndex,\r\n adjustPercentValue\r\n} from \"./utils\";\r\nvar NUMBER_FORMATTER_NAMESPACE = \"dxNumberFormatter\";\r\nvar MOVE_FORWARD = 1;\r\nvar MOVE_BACKWARD = -1;\r\nvar MINUS = \"-\";\r\nvar MINUS_KEY = \"minus\";\r\nvar INPUT_EVENT = \"input\";\r\nvar CARET_TIMEOUT_DURATION = 0;\r\nvar NumberBoxMask = NumberBoxBase.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n useMaskBehavior: true,\r\n format: null\r\n })\r\n },\r\n _isDeleteKey: function(key) {\r\n return \"del\" === key\r\n },\r\n _supportedKeys: function() {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase()\r\n }\r\n return extend(this.callBase(), {\r\n minus: this._revertSign.bind(this),\r\n del: this._removeHandler.bind(this),\r\n backspace: this._removeHandler.bind(this),\r\n leftArrow: this._arrowHandler.bind(this, MOVE_BACKWARD),\r\n rightArrow: this._arrowHandler.bind(this, MOVE_FORWARD),\r\n home: this._moveCaretToBoundaryEventHandler.bind(this, MOVE_FORWARD),\r\n enter: this._updateFormattedValue.bind(this),\r\n end: this._moveCaretToBoundaryEventHandler.bind(this, MOVE_BACKWARD)\r\n })\r\n },\r\n _getTextSeparatorIndex: function(text) {\r\n var decimalSeparator = number.getDecimalSeparator();\r\n var realSeparatorOccurrenceIndex = getRealSeparatorIndex(this.option(\"format\")).occurrence;\r\n return getNthOccurrence(text, decimalSeparator, realSeparatorOccurrenceIndex)\r\n },\r\n _focusInHandler: function(e) {\r\n if (!this._preventNestedFocusEvent(e)) {\r\n this.clearCaretTimeout();\r\n this._caretTimeout = setTimeout(function() {\r\n this._caretTimeout = void 0;\r\n var caret = this._caret();\r\n if (caret.start === caret.end && this._useMaskBehavior()) {\r\n var text = this._getInputVal();\r\n var decimalSeparatorIndex = this._getTextSeparatorIndex(text);\r\n if (decimalSeparatorIndex >= 0) {\r\n this._caret({\r\n start: decimalSeparatorIndex,\r\n end: decimalSeparatorIndex\r\n })\r\n } else {\r\n this._moveCaretToBoundaryEventHandler(MOVE_BACKWARD, e)\r\n }\r\n }\r\n }.bind(this), CARET_TIMEOUT_DURATION)\r\n }\r\n this.callBase(e)\r\n },\r\n _focusOutHandler: function(e) {\r\n var shouldHandleEvent = !this._preventNestedFocusEvent(e);\r\n if (shouldHandleEvent) {\r\n this._focusOutOccurs = true;\r\n if (this._useMaskBehavior()) {\r\n this._updateFormattedValue()\r\n }\r\n }\r\n this.callBase(e);\r\n if (shouldHandleEvent) {\r\n this._focusOutOccurs = false\r\n }\r\n },\r\n _hasValueBeenChanged(inputValue) {\r\n var format = this._getFormatPattern();\r\n var value = this.option(\"value\");\r\n var formatted = this._format(value, format) || \"\";\r\n return formatted !== inputValue\r\n },\r\n _updateFormattedValue: function() {\r\n var inputValue = this._getInputVal();\r\n if (this._hasValueBeenChanged(inputValue)) {\r\n this._updateParsedValue();\r\n this._adjustParsedValue();\r\n this._setTextByParsedValue();\r\n if (this._parsedValue !== this.option(\"value\")) {\r\n eventsEngine.trigger(this._input(), \"change\")\r\n }\r\n }\r\n },\r\n _arrowHandler: function(step, e) {\r\n if (!this._useMaskBehavior()) {\r\n return\r\n }\r\n var text = this._getInputVal();\r\n var format = this._getFormatPattern();\r\n var nextCaret = getCaretWithOffset(this._caret(), step);\r\n if (!isCaretInBoundaries(nextCaret, text, format)) {\r\n nextCaret = step === MOVE_FORWARD ? nextCaret.end : nextCaret.start;\r\n e.preventDefault();\r\n this._caret(getCaretInBoundaries(nextCaret, text, format))\r\n }\r\n },\r\n _moveCaretToBoundary: function(direction) {\r\n var boundaries = getCaretBoundaries(this._getInputVal(), this._getFormatPattern());\r\n var newCaret = getCaretWithOffset(direction === MOVE_FORWARD ? boundaries.start : boundaries.end, 0);\r\n this._caret(newCaret)\r\n },\r\n _moveCaretToBoundaryEventHandler: function(direction, e) {\r\n if (!this._useMaskBehavior() || e && e.shiftKey) {\r\n return\r\n }\r\n this._moveCaretToBoundary(direction);\r\n e && e.preventDefault()\r\n },\r\n _shouldMoveCaret: function(text, caret) {\r\n var decimalSeparator = number.getDecimalSeparator();\r\n var isDecimalSeparatorNext = text.charAt(caret.end) === decimalSeparator;\r\n var moveToFloat = (this._lastKey === decimalSeparator || \".\" === this._lastKey || \",\" === this._lastKey) && isDecimalSeparatorNext;\r\n return moveToFloat\r\n },\r\n _getInputVal: function() {\r\n return number.convertDigits(this._input().val(), true)\r\n },\r\n _keyboardHandler: function(e) {\r\n this.clearCaretTimeout();\r\n this._lastKey = number.convertDigits(getChar(e), true);\r\n this._lastKeyName = normalizeKeyName(e);\r\n if (!this._shouldHandleKey(e.originalEvent)) {\r\n return this.callBase(e)\r\n }\r\n var normalizedText = this._getInputVal();\r\n var caret = this._caret();\r\n var enteredChar = this._lastKeyName === MINUS_KEY ? \"\" : this._lastKey;\r\n var newValue = this._tryParse(normalizedText, caret, enteredChar);\r\n if (this._shouldMoveCaret(normalizedText, caret)) {\r\n this._moveCaret(1);\r\n e.originalEvent.preventDefault()\r\n }\r\n if (void 0 === newValue) {\r\n if (this._lastKeyName !== MINUS_KEY) {\r\n e.originalEvent.preventDefault()\r\n }\r\n } else {\r\n this._parsedValue = newValue\r\n }\r\n return this.callBase(e)\r\n },\r\n _keyPressHandler: function(e) {\r\n if (!this._useMaskBehavior()) {\r\n this.callBase(e)\r\n }\r\n },\r\n _removeHandler: function(e) {\r\n var caret = this._caret();\r\n var text = this._getInputVal();\r\n var start = caret.start;\r\n var end = caret.end;\r\n this._lastKey = getChar(e);\r\n this._lastKeyName = normalizeKeyName(e);\r\n var isDeleteKey = this._isDeleteKey(this._lastKeyName);\r\n var isBackspaceKey = !isDeleteKey;\r\n if (start === end) {\r\n var caretPosition = start;\r\n var canDelete = isBackspaceKey && caretPosition > 0 || isDeleteKey && caretPosition < text.length;\r\n if (canDelete) {\r\n isDeleteKey && end++;\r\n isBackspaceKey && start--\r\n } else {\r\n e.preventDefault();\r\n return\r\n }\r\n }\r\n var char = text.slice(start, end);\r\n if (this._isStub(char)) {\r\n this._moveCaret(isDeleteKey ? 1 : -1);\r\n if (this._parsedValue < 0 || 1 / this._parsedValue === -1 / 0) {\r\n this._revertSign(e);\r\n this._setTextByParsedValue()\r\n }\r\n e.preventDefault();\r\n return\r\n }\r\n var decimalSeparator = number.getDecimalSeparator();\r\n if (char === decimalSeparator) {\r\n var decimalSeparatorIndex = text.indexOf(decimalSeparator);\r\n if (this._isNonStubAfter(decimalSeparatorIndex + 1)) {\r\n this._moveCaret(isDeleteKey ? 1 : -1);\r\n e.preventDefault()\r\n }\r\n return\r\n }\r\n if (end - start < text.length) {\r\n var editedText = this._replaceSelectedText(text, {\r\n start: start,\r\n end: end\r\n }, \"\");\r\n var noDigits = editedText.search(/[0-9]/) < 0;\r\n if (noDigits && this._isValueInRange(0)) {\r\n this._parsedValue = this._parsedValue < 0 || 1 / this._parsedValue === -1 / 0 ? -0 : 0;\r\n return\r\n }\r\n }\r\n var valueAfterRemoving = this._tryParse(text, {\r\n start: start,\r\n end: end\r\n }, \"\");\r\n if (void 0 === valueAfterRemoving) {\r\n e.preventDefault()\r\n } else {\r\n this._parsedValue = valueAfterRemoving\r\n }\r\n },\r\n _isPercentFormat: function() {\r\n var format = this._getFormatPattern();\r\n var noEscapedFormat = format.replace(/'[^']+'/g, \"\");\r\n return -1 !== noEscapedFormat.indexOf(\"%\")\r\n },\r\n _parse: function(text, format) {\r\n var formatOption = this.option(\"format\");\r\n var isCustomParser = isFunction(formatOption.parser);\r\n var parser = isCustomParser ? formatOption.parser : number.parse;\r\n var integerPartStartIndex = 0;\r\n if (!isCustomParser) {\r\n var formatPointIndex = getRealSeparatorIndex(format).index;\r\n var textPointIndex = this._getTextSeparatorIndex(text);\r\n var formatIntegerPartLength = -1 !== formatPointIndex ? formatPointIndex : format.length;\r\n var textIntegerPartLength = -1 !== textPointIndex ? textPointIndex : text.length;\r\n if (textIntegerPartLength > formatIntegerPartLength && -1 === format.indexOf(\"#\")) {\r\n integerPartStartIndex = textIntegerPartLength - formatIntegerPartLength\r\n }\r\n }\r\n text = text.substr(integerPartStartIndex);\r\n return parser(text, format)\r\n },\r\n _format: function(value, format) {\r\n var formatOption = this.option(\"format\");\r\n var customFormatter = (null === formatOption || void 0 === formatOption ? void 0 : formatOption.formatter) || formatOption;\r\n var formatter = isFunction(customFormatter) ? customFormatter : number.format;\r\n var formattedValue = null === value ? \"\" : formatter(value, format);\r\n return formattedValue\r\n },\r\n _getFormatPattern: function() {\r\n if (!this._currentFormat) {\r\n this._updateFormat()\r\n }\r\n return this._currentFormat\r\n },\r\n _updateFormat: function() {\r\n var format = this.option(\"format\");\r\n var isCustomParser = isFunction(null === format || void 0 === format ? void 0 : format.parser);\r\n var isLDMLPattern = isString(format) && (format.indexOf(\"0\") >= 0 || format.indexOf(\"#\") >= 0);\r\n var isExponentialFormat = \"exponential\" === format || \"exponential\" === (null === format || void 0 === format ? void 0 : format.type);\r\n var shouldUseFormatAsIs = isCustomParser || isLDMLPattern || isExponentialFormat;\r\n this._currentFormat = shouldUseFormatAsIs ? format : getLDMLFormat(value => {\r\n var text = this._format(value, format);\r\n return number.convertDigits(text, true)\r\n })\r\n },\r\n _getFormatForSign: function(text) {\r\n var format = this._getFormatPattern();\r\n if (isString(format)) {\r\n var signParts = format.split(\";\");\r\n var sign = number.getSign(text, format);\r\n signParts[1] = signParts[1] || \"-\" + signParts[0];\r\n return sign < 0 ? signParts[1] : signParts[0]\r\n } else {\r\n var _sign = number.getSign(text);\r\n return _sign < 0 ? \"-\" : \"\"\r\n }\r\n },\r\n _removeStubs: function(text, excludeComma) {\r\n var format = this._getFormatForSign(text);\r\n var thousandsSeparator = number.getThousandsSeparator();\r\n var stubs = this._getStubs(format);\r\n var result = text;\r\n if (stubs.length) {\r\n var prefixStubs = stubs[0];\r\n var postfixRegex = new RegExp(\"(\" + escapeRegExp(stubs[1] || \"\") + \")$\", \"g\");\r\n var decoratorsRegex = new RegExp(\"[-\" + escapeRegExp(excludeComma ? \"\" : thousandsSeparator) + \"]\", \"g\");\r\n result = result.replace(prefixStubs, \"\").replace(postfixRegex, \"\").replace(decoratorsRegex, \"\")\r\n }\r\n return result\r\n },\r\n _getStubs: function(format) {\r\n var regExpResult = /[^']([#0.,]+)/g.exec(format);\r\n var pattern = regExpResult && regExpResult[0].trim();\r\n return format.split(pattern).map((function(stub) {\r\n return stub.replace(/'/g, \"\")\r\n }))\r\n },\r\n _truncateToPrecision: function(value, maxPrecision) {\r\n if (isDefined(value)) {\r\n var strValue = value.toString();\r\n var decimalSeparatorIndex = strValue.indexOf(\".\");\r\n if (strValue && decimalSeparatorIndex > -1) {\r\n var parsedValue = parseFloat(strValue.substr(0, decimalSeparatorIndex + maxPrecision + 1));\r\n return isNaN(parsedValue) ? value : parsedValue\r\n }\r\n }\r\n return value\r\n },\r\n _tryParse: function(text, selection, char) {\r\n var editedText = this._replaceSelectedText(text, selection, char);\r\n var format = this._getFormatPattern();\r\n var isTextSelected = selection.start !== selection.end;\r\n var parsedValue = this._getParsedValue(editedText, format);\r\n var maxPrecision = !format.parser && this._getPrecisionLimits(editedText).max;\r\n var isValueChanged = parsedValue !== this._parsedValue;\r\n var decimalSeparator = number.getDecimalSeparator();\r\n var isDecimalPointRestricted = char === decimalSeparator && 0 === maxPrecision;\r\n var isUselessCharRestricted = !isTextSelected && !isValueChanged && char !== MINUS && !this._isValueIncomplete(editedText) && this._isStub(char);\r\n if (isDecimalPointRestricted || isUselessCharRestricted) {\r\n return\r\n }\r\n if (\"\" === this._removeStubs(editedText)) {\r\n parsedValue = Math.abs(0 * this._parsedValue)\r\n }\r\n if (isNaN(parsedValue)) {\r\n return\r\n }\r\n var value = null === parsedValue ? this._parsedValue : parsedValue;\r\n parsedValue = maxPrecision ? this._truncateToPrecision(value, maxPrecision) : parsedValue;\r\n return !format.parser && this._isPercentFormat() ? adjustPercentValue(parsedValue, maxPrecision) : parsedValue\r\n },\r\n _getParsedValue: function(text, format) {\r\n var sign = number.getSign(text, (null === format || void 0 === format ? void 0 : format.formatter) || format);\r\n var textWithoutStubs = this._removeStubs(text, true);\r\n var parsedValue = this._parse(textWithoutStubs, format);\r\n var parsedValueSign = parsedValue < 0 ? -1 : 1;\r\n var parsedValueWithSign = isNumeric(parsedValue) && sign !== parsedValueSign ? sign * parsedValue : parsedValue;\r\n return parsedValueWithSign\r\n },\r\n _isValueIncomplete: function(text) {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase(text)\r\n }\r\n var caret = this._caret();\r\n var point = number.getDecimalSeparator();\r\n var pointIndex = this._getTextSeparatorIndex(text);\r\n var isCaretOnFloat = pointIndex >= 0 && pointIndex < caret.start;\r\n var textParts = this._removeStubs(text, true).split(point);\r\n if (!isCaretOnFloat || 2 !== textParts.length) {\r\n return false\r\n }\r\n var floatLength = textParts[1].length;\r\n var format = this._getFormatPattern();\r\n var isCustomParser = !!format.parser;\r\n var precision = !isCustomParser && this._getPrecisionLimits(this._getFormatPattern(), text);\r\n var isPrecisionInRange = isCustomParser ? true : inRange(floatLength, precision.min, precision.max);\r\n var endsWithZero = \"0\" === textParts[1].charAt(floatLength - 1);\r\n return isPrecisionInRange && (endsWithZero || !floatLength)\r\n },\r\n _isValueInRange: function(value) {\r\n var min = ensureDefined(this.option(\"min\"), -1 / 0);\r\n var max = ensureDefined(this.option(\"max\"), 1 / 0);\r\n return inRange(value, min, max)\r\n },\r\n _setInputText: function(text) {\r\n var normalizedText = number.convertDigits(text, true);\r\n var newCaret = getCaretAfterFormat(this._getInputVal(), normalizedText, this._caret(), this._getFormatPattern());\r\n this._input().val(text);\r\n this._toggleEmptinessEventHandler();\r\n this._formattedValue = text;\r\n if (!this._focusOutOccurs) {\r\n this._caret(newCaret)\r\n }\r\n },\r\n _useMaskBehavior: function() {\r\n return !!this.option(\"format\") && this.option(\"useMaskBehavior\")\r\n },\r\n _renderInputType: function() {\r\n var isNumberType = \"number\" === this.option(\"mode\");\r\n var isDesktop = \"desktop\" === devices.real().deviceType;\r\n if (this._useMaskBehavior() && isNumberType) {\r\n this._setInputType(isDesktop || this._isSupportInputMode() ? \"text\" : \"tel\")\r\n } else {\r\n this.callBase()\r\n }\r\n },\r\n _isChar: function(str) {\r\n return isString(str) && 1 === str.length\r\n },\r\n _moveCaret: function(offset) {\r\n if (!offset) {\r\n return\r\n }\r\n var newCaret = getCaretWithOffset(this._caret(), offset);\r\n var adjustedCaret = getCaretInBoundaries(newCaret, this._getInputVal(), this._getFormatPattern());\r\n this._caret(adjustedCaret)\r\n },\r\n _shouldHandleKey: function(e) {\r\n var keyName = normalizeKeyName(e);\r\n var isSpecialChar = isCommandKeyPressed(e) || e.altKey || e.shiftKey || !this._isChar(keyName);\r\n var isMinusKey = keyName === MINUS_KEY;\r\n var useMaskBehavior = this._useMaskBehavior();\r\n return useMaskBehavior && !isSpecialChar && !isMinusKey\r\n },\r\n _renderInput: function() {\r\n this.callBase();\r\n this._renderFormatter()\r\n },\r\n _renderFormatter: function() {\r\n this._clearCache();\r\n this._detachFormatterEvents();\r\n if (this._useMaskBehavior()) {\r\n this._attachFormatterEvents()\r\n }\r\n },\r\n _detachFormatterEvents: function() {\r\n eventsEngine.off(this._input(), \".\" + NUMBER_FORMATTER_NAMESPACE)\r\n },\r\n _isInputFromPaste: function(e) {\r\n var inputType = e.originalEvent && e.originalEvent.inputType;\r\n if (isDefined(inputType)) {\r\n return \"insertFromPaste\" === inputType\r\n } else {\r\n return this._isValuePasted\r\n }\r\n },\r\n _attachFormatterEvents: function() {\r\n var $input = this._input();\r\n eventsEngine.on($input, addNamespace(INPUT_EVENT, NUMBER_FORMATTER_NAMESPACE), function(e) {\r\n this._formatValue(e);\r\n this._isValuePasted = false\r\n }.bind(this));\r\n eventsEngine.on($input, addNamespace(\"dxclick\", NUMBER_FORMATTER_NAMESPACE), function() {\r\n if (!this._caretTimeout) {\r\n this._caretTimeout = setTimeout(function() {\r\n this._caretTimeout = void 0;\r\n this._caret(getCaretInBoundaries(this._caret(), this._getInputVal(), this._getFormatPattern()))\r\n }.bind(this), CARET_TIMEOUT_DURATION)\r\n }\r\n }.bind(this));\r\n eventsEngine.on($input, \"dxdblclick\", function() {\r\n this.clearCaretTimeout()\r\n }.bind(this))\r\n },\r\n clearCaretTimeout: function() {\r\n clearTimeout(this._caretTimeout);\r\n this._caretTimeout = void 0\r\n },\r\n _forceRefreshInputValue: function() {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase()\r\n }\r\n },\r\n _isNonStubAfter: function(index) {\r\n var text = this._getInputVal().slice(index);\r\n return text && !this._isStub(text, true)\r\n },\r\n _isStub: function(str, isString) {\r\n var escapedDecimalSeparator = escapeRegExp(number.getDecimalSeparator());\r\n var regExpString = \"^[^0-9\" + escapedDecimalSeparator + \"]+$\";\r\n var stubRegExp = new RegExp(regExpString, \"g\");\r\n return stubRegExp.test(str) && (isString || this._isChar(str))\r\n },\r\n _parseValue: function(text) {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase(text)\r\n }\r\n return this._parsedValue\r\n },\r\n _getPrecisionLimits: function(text) {\r\n var currentFormat = this._getFormatForSign(text);\r\n var realSeparatorIndex = getRealSeparatorIndex(currentFormat).index;\r\n var floatPart = (splitByIndex(currentFormat, realSeparatorIndex)[1] || \"\").replace(/[^#0]/g, \"\");\r\n var minPrecision = floatPart.replace(/^(0*)#*/, \"$1\").length;\r\n var maxPrecision = floatPart.length;\r\n return {\r\n min: minPrecision,\r\n max: maxPrecision\r\n }\r\n },\r\n _revertSign: function(e) {\r\n if (!this._useMaskBehavior()) {\r\n return\r\n }\r\n var caret = this._caret();\r\n if (caret.start !== caret.end) {\r\n if (normalizeKeyName(e) === MINUS_KEY) {\r\n this._applyRevertedSign(e, caret, true);\r\n return\r\n } else {\r\n this._caret(getCaretInBoundaries(0, this._getInputVal(), this._getFormatPattern()))\r\n }\r\n }\r\n this._applyRevertedSign(e, caret)\r\n },\r\n _applyRevertedSign: function(e, caret, preserveSelectedText) {\r\n var newValue = -1 * ensureDefined(this._parsedValue, null);\r\n if (this._isValueInRange(newValue)) {\r\n this._parsedValue = newValue;\r\n if (preserveSelectedText) {\r\n var format = this._getFormatPattern();\r\n var previousText = this._getInputVal();\r\n this._setTextByParsedValue();\r\n e.preventDefault();\r\n var currentText = this._getInputVal();\r\n var offset = getCaretOffset(previousText, currentText, format);\r\n caret = getCaretWithOffset(caret, offset);\r\n var caretInBoundaries = getCaretInBoundaries(caret, currentText, format);\r\n this._caret(caretInBoundaries)\r\n }\r\n }\r\n },\r\n _removeMinusFromText: function(text, caret) {\r\n var isMinusPressed = this._lastKeyName === MINUS_KEY && text.charAt(caret.start - 1) === MINUS;\r\n return isMinusPressed ? this._replaceSelectedText(text, {\r\n start: caret.start - 1,\r\n end: caret.start\r\n }, \"\") : text\r\n },\r\n _setTextByParsedValue: function() {\r\n var format = this._getFormatPattern();\r\n var parsed = this._parseValue();\r\n var formatted = this._format(parsed, format) || \"\";\r\n this._setInputText(formatted)\r\n },\r\n _formatValue: function(e) {\r\n var normalizedText = this._getInputVal();\r\n var caret = this._caret();\r\n var textWithoutMinus = this._removeMinusFromText(normalizedText, caret);\r\n var wasMinusRemoved = textWithoutMinus !== normalizedText;\r\n normalizedText = textWithoutMinus;\r\n if (!this._isInputFromPaste(e) && this._isValueIncomplete(textWithoutMinus)) {\r\n this._formattedValue = normalizedText;\r\n if (wasMinusRemoved) {\r\n this._setTextByParsedValue()\r\n }\r\n return\r\n }\r\n var textWasChanged = number.convertDigits(this._formattedValue, true) !== normalizedText;\r\n if (textWasChanged) {\r\n var value = this._tryParse(normalizedText, caret, \"\");\r\n if (isDefined(value)) {\r\n this._parsedValue = value\r\n }\r\n }\r\n this._setTextByParsedValue()\r\n },\r\n _renderDisplayText: function() {\r\n if (this._useMaskBehavior()) {\r\n this._toggleEmptinessEventHandler()\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _renderValue: function() {\r\n if (this._useMaskBehavior()) {\r\n this._parsedValue = this.option(\"value\");\r\n this._setTextByParsedValue()\r\n }\r\n return this.callBase()\r\n },\r\n _updateParsedValue: function() {\r\n var inputValue = this._getInputVal();\r\n this._parsedValue = this._tryParse(inputValue, this._caret())\r\n },\r\n _adjustParsedValue: function() {\r\n if (!this._useMaskBehavior()) {\r\n return\r\n }\r\n var clearedText = this._removeStubs(this._getInputVal());\r\n var parsedValue = clearedText ? this._parseValue() : null;\r\n if (!isNumeric(parsedValue)) {\r\n this._parsedValue = parsedValue;\r\n return\r\n }\r\n this._parsedValue = fitIntoRange(parsedValue, this.option(\"min\"), this.option(\"max\"))\r\n },\r\n _valueChangeEventHandler: function(e) {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase(e)\r\n }\r\n var caret = this._caret();\r\n this._saveValueChangeEvent(e);\r\n this._lastKey = null;\r\n this._lastKeyName = null;\r\n this._updateParsedValue();\r\n this._adjustParsedValue();\r\n this.option(\"value\", this._parsedValue);\r\n if (caret) {\r\n this._caret(caret)\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"format\":\r\n case \"useMaskBehavior\":\r\n this._renderInputType();\r\n this._updateFormat();\r\n this._renderFormatter();\r\n this._renderValue();\r\n this._refreshValueChangeEvent();\r\n this._refreshEvents();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n this._adjustParsedValue();\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clearCache: function() {\r\n delete this._formattedValue;\r\n delete this._lastKey;\r\n delete this._lastKeyName;\r\n delete this._parsedValue;\r\n delete this._focusOutOccurs;\r\n clearTimeout(this._caretTimeout);\r\n delete this._caretTimeout\r\n },\r\n _clean: function() {\r\n this._clearCache();\r\n this.callBase()\r\n }\r\n});\r\nexport default NumberBoxMask;\r\n","/**\r\n * DevExtreme (esm/ui/number_box/number_box.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport NumberBoxMask from \"./number_box.mask\";\r\nregisterComponent(\"dxNumberBox\", NumberBoxMask);\r\nexport default NumberBoxMask;\r\n","/**\r\n * DevExtreme (esm/ui/number_box.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport NumberBox from \"./number_box/number_box\";\r\nexport default NumberBox;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.mask.parts.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getPatternSetters\r\n} from \"../../localization/ldml/date.parser\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n fitIntoRange\r\n} from \"../../core/utils/math\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar monthGetter = date => date.getMonth() + 1;\r\nvar monthSetter = (date, value) => {\r\n var day = date.getDate();\r\n var monthLimits = getLimits(\"M\", date);\r\n var newValue = fitIntoRange(parseInt(value), monthLimits.min, monthLimits.max);\r\n date.setMonth(newValue - 1, 1);\r\n var {\r\n min: min,\r\n max: max\r\n } = getLimits(\"dM\", date);\r\n var newDay = fitIntoRange(day, min, max);\r\n date.setDate(newDay)\r\n};\r\nvar PATTERN_GETTERS = {\r\n a: date => date.getHours() < 12 ? 0 : 1,\r\n E: \"getDay\",\r\n y: \"getFullYear\",\r\n M: monthGetter,\r\n L: monthGetter,\r\n d: \"getDate\",\r\n H: \"getHours\",\r\n h: \"getHours\",\r\n m: \"getMinutes\",\r\n s: \"getSeconds\",\r\n S: \"getMilliseconds\"\r\n};\r\nvar PATTERN_SETTERS = extend({}, getPatternSetters(), {\r\n a: (date, value) => {\r\n var hours = date.getHours();\r\n var current = hours >= 12;\r\n if (current === !!parseInt(value)) {\r\n return\r\n }\r\n date.setHours((hours + 12) % 24)\r\n },\r\n d: (date, value) => {\r\n var lastDayInMonth = getLimits(\"dM\", date).max;\r\n if (value > lastDayInMonth) {\r\n date.setMonth(date.getMonth() + 1)\r\n }\r\n date.setDate(value)\r\n },\r\n h: (date, value) => {\r\n var isPM = date.getHours() >= 12;\r\n date.setHours(+value % 12 + (isPM ? 12 : 0))\r\n },\r\n M: monthSetter,\r\n L: monthSetter,\r\n E: (date, value) => {\r\n if (value < 0) {\r\n return\r\n }\r\n date.setDate(date.getDate() - date.getDay() + parseInt(value))\r\n },\r\n y: (date, value) => {\r\n var currentYear = date.getFullYear();\r\n var valueLength = String(value).length;\r\n var maxLimitLength = String(getLimits(\"y\", date).max).length;\r\n var newValue = parseInt(String(currentYear).substr(0, maxLimitLength - valueLength) + value);\r\n date.setFullYear(newValue)\r\n }\r\n});\r\nvar getPatternGetter = patternChar => PATTERN_GETTERS[patternChar] || (() => patternChar);\r\nexport var renderDateParts = (text, regExpInfo) => {\r\n var result = regExpInfo.regexp.exec(text);\r\n var start = 0;\r\n var end = 0;\r\n var sections = [];\r\n var _loop = function(i) {\r\n start = end;\r\n end = start + result[i].length;\r\n var pattern = regExpInfo.patterns[i - 1].replace(/^'|'$/g, \"\");\r\n var getter = getPatternGetter(pattern[0]);\r\n sections.push({\r\n index: i - 1,\r\n isStub: pattern === result[i],\r\n caret: {\r\n start: start,\r\n end: end\r\n },\r\n pattern: pattern,\r\n text: result[i],\r\n limits: function() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n return getLimits(pattern[0], ...args)\r\n },\r\n setter: PATTERN_SETTERS[pattern[0]] || noop,\r\n getter: getter\r\n })\r\n };\r\n for (var i = 1; i < result.length; i++) {\r\n _loop(i)\r\n }\r\n return sections\r\n};\r\nvar getLimits = (pattern, date, forcedPattern) => {\r\n var limits = {\r\n y: {\r\n min: 0,\r\n max: 9999\r\n },\r\n M: {\r\n min: 1,\r\n max: 12\r\n },\r\n L: {\r\n min: 1,\r\n max: 12\r\n },\r\n d: {\r\n min: 1,\r\n max: 31\r\n },\r\n dM: {\r\n min: 1,\r\n max: new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate()\r\n },\r\n E: {\r\n min: 0,\r\n max: 6\r\n },\r\n H: {\r\n min: 0,\r\n max: 23\r\n },\r\n h: {\r\n min: 0,\r\n max: 23\r\n },\r\n m: {\r\n min: 0,\r\n max: 59\r\n },\r\n s: {\r\n min: 0,\r\n max: 59\r\n },\r\n S: {\r\n min: 0,\r\n max: 999\r\n },\r\n a: {\r\n min: 0,\r\n max: 1\r\n }\r\n };\r\n return limits[forcedPattern || pattern] || limits.getAmPm\r\n};\r\nexport var getDatePartIndexByPosition = (dateParts, position) => {\r\n for (var i = 0; i < dateParts.length; i++) {\r\n var caretInGroup = dateParts[i].caret.end >= position;\r\n if (!dateParts[i].isStub && caretInGroup) {\r\n return i\r\n }\r\n }\r\n return null\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_utils.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport {\r\n isDate\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport dateLocalization from \"../../localization/date\";\r\nvar DATE_COMPONENTS = [\"year\", \"day\", \"month\", \"day\"];\r\nvar TIME_COMPONENTS = [\"hours\", \"minutes\", \"seconds\", \"milliseconds\"];\r\nvar ONE_MINUTE = 6e4;\r\nvar ONE_DAY = 60 * ONE_MINUTE * 24;\r\nvar ONE_YEAR = 365 * ONE_DAY;\r\nvar getStringFormat = function(format) {\r\n var formatType = typeof format;\r\n if (\"string\" === formatType) {\r\n return \"format\"\r\n }\r\n if (\"object\" === formatType && void 0 !== format.type) {\r\n return format.type\r\n }\r\n return null\r\n};\r\nvar dateUtils = {\r\n SUPPORTED_FORMATS: [\"date\", \"time\", \"datetime\"],\r\n ONE_MINUTE: ONE_MINUTE,\r\n ONE_DAY: ONE_DAY,\r\n ONE_YEAR: ONE_YEAR,\r\n MIN_DATEVIEW_DEFAULT_DATE: new Date(1900, 0, 1),\r\n MAX_DATEVIEW_DEFAULT_DATE: function() {\r\n var newDate = new Date;\r\n return new Date(newDate.getFullYear() + 50, newDate.getMonth(), newDate.getDate(), 23, 59, 59)\r\n }(),\r\n FORMATS_INFO: {\r\n date: {\r\n getStandardPattern: function() {\r\n return \"yyyy-MM-dd\"\r\n },\r\n components: DATE_COMPONENTS\r\n },\r\n time: {\r\n getStandardPattern: function() {\r\n return \"HH:mm\"\r\n },\r\n components: TIME_COMPONENTS\r\n },\r\n datetime: {\r\n getStandardPattern: function() {\r\n var standardPattern;\r\n ! function() {\r\n var $input = $(\"\").attr(\"type\", \"datetime\");\r\n $input.val(\"2000-01-01T01:01Z\");\r\n if ($input.val()) {\r\n standardPattern = \"yyyy-MM-ddTHH:mmZ\"\r\n }\r\n }();\r\n if (!standardPattern) {\r\n standardPattern = \"yyyy-MM-ddTHH:mm:ssZ\"\r\n }\r\n dateUtils.FORMATS_INFO.datetime.getStandardPattern = function() {\r\n return standardPattern\r\n };\r\n return standardPattern\r\n },\r\n components: [...DATE_COMPONENTS, ...TIME_COMPONENTS]\r\n },\r\n \"datetime-local\": {\r\n getStandardPattern: function() {\r\n return \"yyyy-MM-ddTHH:mm:ss\"\r\n },\r\n components: [...DATE_COMPONENTS, \"hours\", \"minutes\", \"seconds\"]\r\n }\r\n },\r\n FORMATS_MAP: {\r\n date: \"shortdate\",\r\n time: \"shorttime\",\r\n datetime: \"shortdateshorttime\"\r\n },\r\n SUBMIT_FORMATS_MAP: {\r\n date: \"date\",\r\n time: \"time\",\r\n datetime: \"datetime-local\"\r\n },\r\n toStandardDateFormat: function(date, type) {\r\n var pattern = dateUtils.FORMATS_INFO[type].getStandardPattern();\r\n return dateSerialization.serializeDate(date, pattern)\r\n },\r\n fromStandardDateFormat: function(text) {\r\n var date = dateSerialization.dateParser(text);\r\n return isDate(date) ? date : void 0\r\n },\r\n getMaxMonthDay: function(year, month) {\r\n return new Date(year, month + 1, 0).getDate()\r\n },\r\n mergeDates: function(oldValue, newValue, format) {\r\n if (!newValue) {\r\n return newValue || null\r\n }\r\n if (!oldValue || isNaN(oldValue.getTime())) {\r\n var now = new Date(null);\r\n oldValue = new Date(now.getFullYear(), now.getMonth(), now.getDate())\r\n }\r\n var result = new Date(oldValue.valueOf());\r\n var formatInfo = dateUtils.FORMATS_INFO[format];\r\n each(formatInfo.components, (function() {\r\n var componentInfo = dateUtils.DATE_COMPONENTS_INFO[this];\r\n result[componentInfo.setter](newValue[componentInfo.getter]())\r\n }));\r\n return result\r\n },\r\n getLongestCaptionIndex: function(captionArray) {\r\n var longestIndex = 0;\r\n var longestCaptionLength = 0;\r\n var i;\r\n for (i = 0; i < captionArray.length; ++i) {\r\n if (captionArray[i].length > longestCaptionLength) {\r\n longestIndex = i;\r\n longestCaptionLength = captionArray[i].length\r\n }\r\n }\r\n return longestIndex\r\n },\r\n formatUsesMonthName: function(format) {\r\n return dateLocalization.formatUsesMonthName(format)\r\n },\r\n formatUsesDayName: function(format) {\r\n return dateLocalization.formatUsesDayName(format)\r\n },\r\n getLongestDate: function(format, monthNames, dayNames) {\r\n var stringFormat = getStringFormat(format);\r\n var month = 9;\r\n if (!stringFormat || dateUtils.formatUsesMonthName(stringFormat)) {\r\n month = dateUtils.getLongestCaptionIndex(monthNames)\r\n }\r\n var longestDate = new Date(1888, month, 21, 23, 59, 59, 999);\r\n if (!stringFormat || dateUtils.formatUsesDayName(stringFormat)) {\r\n var date = longestDate.getDate() - longestDate.getDay() + dateUtils.getLongestCaptionIndex(dayNames);\r\n longestDate.setDate(date)\r\n }\r\n return longestDate\r\n },\r\n normalizeTime: function(date) {\r\n date.setSeconds(0);\r\n date.setMilliseconds(0)\r\n }\r\n};\r\ndateUtils.DATE_COMPONENTS_INFO = {\r\n year: {\r\n getter: \"getFullYear\",\r\n setter: \"setFullYear\",\r\n formatter: function(value, date) {\r\n var formatDate = new Date(date.getTime());\r\n formatDate.setFullYear(value);\r\n return dateLocalization.format(formatDate, \"yyyy\")\r\n },\r\n startValue: void 0,\r\n endValue: void 0\r\n },\r\n day: {\r\n getter: \"getDate\",\r\n setter: \"setDate\",\r\n formatter: function(value, date) {\r\n var formatDate = new Date(date.getTime());\r\n formatDate.setDate(value);\r\n return dateLocalization.format(formatDate, \"d\")\r\n },\r\n startValue: 1,\r\n endValue: void 0\r\n },\r\n month: {\r\n getter: \"getMonth\",\r\n setter: \"setMonth\",\r\n formatter: function(value) {\r\n return dateLocalization.getMonthNames()[value]\r\n },\r\n startValue: 0,\r\n endValue: 11\r\n },\r\n hours: {\r\n getter: \"getHours\",\r\n setter: \"setHours\",\r\n formatter: function(value) {\r\n return dateLocalization.format(new Date(0, 0, 0, value), \"hour\")\r\n },\r\n startValue: 0,\r\n endValue: 23\r\n },\r\n minutes: {\r\n getter: \"getMinutes\",\r\n setter: \"setMinutes\",\r\n formatter: function(value) {\r\n return dateLocalization.format(new Date(0, 0, 0, 0, value), \"minute\")\r\n },\r\n startValue: 0,\r\n endValue: 59\r\n },\r\n seconds: {\r\n getter: \"getSeconds\",\r\n setter: \"setSeconds\",\r\n formatter: function(value) {\r\n return dateLocalization.format(new Date(0, 0, 0, 0, 0, value), \"second\")\r\n },\r\n startValue: 0,\r\n endValue: 59\r\n },\r\n milliseconds: {\r\n getter: \"getMilliseconds\",\r\n setter: \"setMilliseconds\",\r\n formatter: function(value) {\r\n return dateLocalization.format(new Date(0, 0, 0, 0, 0, 0, value), \"millisecond\")\r\n },\r\n startValue: 0,\r\n endValue: 999\r\n }\r\n};\r\nexport default dateUtils;\r\n","/**\r\n * DevExtreme (esm/events/gesture/swipeable.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n start as swipeEventStart,\r\n swipe as swipeEventSwipe,\r\n end as swipeEventEnd\r\n} from \"../swipe\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport DOMComponent from \"../../core/dom_component\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n addNamespace\r\n} from \"../utils/index\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n name\r\n} from \"../../core/utils/public_component\";\r\nvar DX_SWIPEABLE = \"dxSwipeable\";\r\nvar SWIPEABLE_CLASS = \"dx-swipeable\";\r\nvar ACTION_TO_EVENT_MAP = {\r\n onStart: swipeEventStart,\r\n onUpdated: swipeEventSwipe,\r\n onEnd: swipeEventEnd,\r\n onCancel: \"dxswipecancel\"\r\n};\r\nvar Swipeable = DOMComponent.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n elastic: true,\r\n immediate: false,\r\n direction: \"horizontal\",\r\n itemSizeFunc: null,\r\n onStart: null,\r\n onUpdated: null,\r\n onEnd: null,\r\n onCancel: null\r\n })\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this.$element().addClass(SWIPEABLE_CLASS);\r\n this._attachEventHandlers()\r\n },\r\n _attachEventHandlers: function() {\r\n this._detachEventHandlers();\r\n if (this.option(\"disabled\")) {\r\n return\r\n }\r\n var NAME = this.NAME;\r\n this._createEventData();\r\n each(ACTION_TO_EVENT_MAP, function(actionName, eventName) {\r\n var action = this._createActionByOption(actionName, {\r\n context: this\r\n });\r\n eventName = addNamespace(eventName, NAME);\r\n eventsEngine.on(this.$element(), eventName, this._eventData, (function(e) {\r\n return action({\r\n event: e\r\n })\r\n }))\r\n }.bind(this))\r\n },\r\n _createEventData: function() {\r\n this._eventData = {\r\n elastic: this.option(\"elastic\"),\r\n itemSizeFunc: this.option(\"itemSizeFunc\"),\r\n direction: this.option(\"direction\"),\r\n immediate: this.option(\"immediate\")\r\n }\r\n },\r\n _detachEventHandlers: function() {\r\n eventsEngine.off(this.$element(), \".\" + DX_SWIPEABLE)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"disabled\":\r\n case \"onStart\":\r\n case \"onUpdated\":\r\n case \"onEnd\":\r\n case \"onCancel\":\r\n case \"elastic\":\r\n case \"immediate\":\r\n case \"itemSizeFunc\":\r\n case \"direction\":\r\n this._detachEventHandlers();\r\n this._attachEventHandlers();\r\n break;\r\n case \"rtlEnabled\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _useTemplates: function() {\r\n return false\r\n }\r\n});\r\nname(Swipeable, DX_SWIPEABLE);\r\nexport default Swipeable;\r\n","/**\r\n * DevExtreme (esm/ui/calendar/ui.calendar.navigator.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport Button from \"../button\";\r\nvar CALENDAR_NAVIGATOR_CLASS = \"dx-calendar-navigator\";\r\nvar CALENDAR_NAVIGATOR_PREVIOUS_MONTH_CLASS = \"dx-calendar-navigator-previous-month\";\r\nvar CALENDAR_NAVIGATOR_NEXT_MONTH_CLASS = \"dx-calendar-navigator-next-month\";\r\nvar CALENDAR_NAVIGATOR_PREVIOUS_VIEW_CLASS = \"dx-calendar-navigator-previous-view\";\r\nvar CALENDAR_NAVIGATOR_NEXT_VIEW_CLASS = \"dx-calendar-navigator-next-view\";\r\nvar CALENDAR_NAVIGATOR_DISABLED_LINK_CLASS = \"dx-calendar-disabled-navigator-link\";\r\nvar CALENDAR_NAVIGATOR_CAPTION_BUTTON_CLASS = \"dx-calendar-caption-button\";\r\nvar Navigator = Widget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n onClick: null,\r\n onCaptionClick: null,\r\n text: \"\"\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initActions()\r\n },\r\n _initActions: function() {\r\n this._clickAction = this._createActionByOption(\"onClick\");\r\n this._captionClickAction = this._createActionByOption(\"onCaptionClick\")\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this.$element().addClass(CALENDAR_NAVIGATOR_CLASS);\r\n this._renderButtons();\r\n this._renderCaption()\r\n },\r\n _renderButtons: function() {\r\n var that = this;\r\n var direction = this.option(\"rtlEnabled\") ? -1 : 1;\r\n this._prevButton = this._createComponent($(\"\"), Button, {\r\n focusStateEnabled: false,\r\n icon: \"chevronleft\",\r\n onClick: function(e) {\r\n that._clickAction({\r\n direction: -direction,\r\n event: e\r\n })\r\n },\r\n integrationOptions: {}\r\n });\r\n var $prevButton = this._prevButton.$element().addClass(CALENDAR_NAVIGATOR_PREVIOUS_VIEW_CLASS).addClass(CALENDAR_NAVIGATOR_PREVIOUS_MONTH_CLASS);\r\n this._nextButton = this._createComponent($(\"\"), Button, {\r\n focusStateEnabled: false,\r\n icon: \"chevronright\",\r\n onClick: function(e) {\r\n that._clickAction({\r\n direction: direction,\r\n event: e\r\n })\r\n },\r\n integrationOptions: {}\r\n });\r\n var $nextButton = this._nextButton.$element().addClass(CALENDAR_NAVIGATOR_NEXT_VIEW_CLASS).addClass(CALENDAR_NAVIGATOR_NEXT_MONTH_CLASS);\r\n this._caption = this._createComponent($(\"\").addClass(CALENDAR_NAVIGATOR_CAPTION_BUTTON_CLASS), Button, {\r\n focusStateEnabled: false,\r\n onClick: function(e) {\r\n that._captionClickAction({\r\n event: e\r\n })\r\n },\r\n integrationOptions: {}\r\n });\r\n var $caption = this._caption.$element();\r\n this.$element().append($prevButton, $caption, $nextButton)\r\n },\r\n _renderCaption: function() {\r\n this._caption.option(\"text\", this.option(\"text\"))\r\n },\r\n toggleButton: function(buttonPrefix, value) {\r\n var buttonName = \"_\" + buttonPrefix + \"Button\";\r\n var button = this[buttonName];\r\n if (button) {\r\n button.option(\"disabled\", value);\r\n button.$element().toggleClass(CALENDAR_NAVIGATOR_DISABLED_LINK_CLASS, value)\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"text\":\r\n this._renderCaption();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport default Navigator;\r\n","/**\r\n * DevExtreme (esm/ui/calendar/ui.calendar.base_view.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n data as elementData\r\n} from \"../../core/element_data\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport coreDateUtils from \"../../core/utils/date\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nvar {\r\n abstract: abstract\r\n} = Widget;\r\nvar CALENDAR_OTHER_VIEW_CLASS = \"dx-calendar-other-view\";\r\nvar CALENDAR_CELL_CLASS = \"dx-calendar-cell\";\r\nvar CALENDAR_EMPTY_CELL_CLASS = \"dx-calendar-empty-cell\";\r\nvar CALENDAR_TODAY_CLASS = \"dx-calendar-today\";\r\nvar CALENDAR_SELECTED_DATE_CLASS = \"dx-calendar-selected-date\";\r\nvar CALENDAR_CONTOURED_DATE_CLASS = \"dx-calendar-contoured-date\";\r\nvar CALENDAR_DXCLICK_EVENT_NAME = addNamespace(clickEventName, \"dxCalendar\");\r\nvar CALENDAR_DATE_VALUE_KEY = \"dxDateValueKey\";\r\nvar BaseView = Widget.inherit({\r\n _getViewName: function() {\r\n return \"base\"\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n date: new Date,\r\n focusStateEnabled: false,\r\n cellTemplate: null,\r\n disabledDates: null,\r\n onCellClick: null,\r\n rowCount: 3,\r\n colCount: 4,\r\n allowValueSelection: true,\r\n _todayDate: () => new Date\r\n })\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._renderImpl()\r\n },\r\n _renderImpl: function() {\r\n this.$element().append(this._createTable());\r\n this._createDisabledDatesHandler();\r\n this._renderBody();\r\n this._renderContouredDate();\r\n this._renderValue();\r\n this._renderEvents()\r\n },\r\n _createTable: function() {\r\n this._$table = $(\"\");\r\n this.setAria({\r\n label: messageLocalization.format(\"dxCalendar-ariaWidgetName\"),\r\n role: \"grid\"\r\n }, this._$table);\r\n return this._$table\r\n },\r\n _renderBody: function() {\r\n this.$body = $(\"\").appendTo(this._$table);\r\n var rowData = {\r\n cellDate: this._getFirstCellData(),\r\n prevCellDate: null\r\n };\r\n for (var rowIndex = 0, rowCount = this.option(\"rowCount\"); rowIndex < rowCount; rowIndex++) {\r\n rowData.row = this._createRow();\r\n for (var colIndex = 0, colCount = this.option(\"colCount\"); colIndex < colCount; colIndex++) {\r\n this._renderCell(rowData, colIndex)\r\n }\r\n }\r\n },\r\n _createRow: function() {\r\n var row = domAdapter.createElement(\"tr\");\r\n this.setAria(\"role\", \"row\", $(row));\r\n this.$body.get(0).appendChild(row);\r\n return row\r\n },\r\n _appendCell: function(row, cell) {\r\n if (!this._appendMethodName) {\r\n this._cacheAppendMethodName()\r\n }\r\n $(row)[this._appendMethodName](cell)\r\n },\r\n _cacheAppendMethodName: function(rtlEnabled) {\r\n this._appendMethodName = (null !== rtlEnabled && void 0 !== rtlEnabled ? rtlEnabled : this.option(\"rtlEnabled\")) ? \"prepend\" : \"append\"\r\n },\r\n _createCell: function(cellDate) {\r\n var cell = domAdapter.createElement(\"td\");\r\n var $cell = $(cell);\r\n cell.className = this._getClassNameByDate(cellDate);\r\n cell.setAttribute(\"data-value\", dateSerialization.serializeDate(cellDate, coreDateUtils.getShortDateFormat()));\r\n elementData(cell, CALENDAR_DATE_VALUE_KEY, cellDate);\r\n this.setAria({\r\n role: \"gridcell\",\r\n label: this.getCellAriaLabel(cellDate)\r\n }, $cell);\r\n return {\r\n cell: cell,\r\n $cell: $cell\r\n }\r\n },\r\n _renderCell: function(params, cellIndex) {\r\n var {\r\n cellDate: cellDate,\r\n prevCellDate: prevCellDate,\r\n row: row\r\n } = params;\r\n if (prevCellDate) {\r\n coreDateUtils.fixTimezoneGap(prevCellDate, cellDate)\r\n }\r\n params.prevCellDate = cellDate;\r\n var {\r\n cell: cell,\r\n $cell: $cell\r\n } = this._createCell(cellDate);\r\n var cellTemplate = this.option(\"cellTemplate\");\r\n this._appendCell(row, cell);\r\n if (cellTemplate) {\r\n cellTemplate.render(this._prepareCellTemplateData(cellDate, cellIndex, $cell))\r\n } else {\r\n cell.innerHTML = this._getCellText(cellDate)\r\n }\r\n params.cellDate = this._getNextCellData(cellDate)\r\n },\r\n _getClassNameByDate: function(cellDate) {\r\n var className = CALENDAR_CELL_CLASS;\r\n if (this._isTodayCell(cellDate)) {\r\n className += \" \".concat(CALENDAR_TODAY_CLASS)\r\n }\r\n if (this._isDateOutOfRange(cellDate) || this.isDateDisabled(cellDate)) {\r\n className += \" \".concat(CALENDAR_EMPTY_CELL_CLASS)\r\n }\r\n if (this._isOtherView(cellDate)) {\r\n className += \" \".concat(CALENDAR_OTHER_VIEW_CLASS)\r\n }\r\n return className\r\n },\r\n _prepareCellTemplateData: function(cellDate, cellIndex, $cell) {\r\n return {\r\n model: {\r\n text: this._getCellText(cellDate),\r\n date: cellDate,\r\n view: this._getViewName()\r\n },\r\n container: getPublicElement($cell),\r\n index: cellIndex\r\n }\r\n },\r\n _renderEvents: function() {\r\n this._createCellClickAction();\r\n eventsEngine.off(this._$table, CALENDAR_DXCLICK_EVENT_NAME);\r\n eventsEngine.on(this._$table, CALENDAR_DXCLICK_EVENT_NAME, \"td\", e => {\r\n if (!$(e.currentTarget).hasClass(CALENDAR_EMPTY_CELL_CLASS)) {\r\n this._cellClickAction({\r\n event: e,\r\n value: $(e.currentTarget).data(CALENDAR_DATE_VALUE_KEY)\r\n })\r\n }\r\n })\r\n },\r\n _createCellClickAction: function() {\r\n this._cellClickAction = this._createActionByOption(\"onCellClick\")\r\n },\r\n _createDisabledDatesHandler: function() {\r\n var disabledDates = this.option(\"disabledDates\");\r\n this._disabledDatesHandler = Array.isArray(disabledDates) ? this._getDefaultDisabledDatesHandler(disabledDates) : disabledDates || noop\r\n },\r\n _getDefaultDisabledDatesHandler: function(disabledDates) {\r\n return noop\r\n },\r\n _isTodayCell: abstract,\r\n _isDateOutOfRange: abstract,\r\n isDateDisabled: function(cellDate) {\r\n var dateParts = {\r\n date: cellDate,\r\n view: this._getViewName()\r\n };\r\n return this._disabledDatesHandler(dateParts)\r\n },\r\n _isOtherView: abstract,\r\n _getCellText: abstract,\r\n _getFirstCellData: abstract,\r\n _getNextCellData: abstract,\r\n _renderContouredDate: function(contouredDate) {\r\n if (!this.option(\"focusStateEnabled\")) {\r\n return\r\n }\r\n contouredDate = contouredDate || this.option(\"contouredDate\");\r\n var $oldContouredCell = this._getContouredCell();\r\n var $newContouredCell = this._getCellByDate(contouredDate);\r\n $oldContouredCell.removeClass(CALENDAR_CONTOURED_DATE_CLASS);\r\n $newContouredCell.addClass(CALENDAR_CONTOURED_DATE_CLASS)\r\n },\r\n _getContouredCell: function() {\r\n return this._$table.find(\".\".concat(CALENDAR_CONTOURED_DATE_CLASS))\r\n },\r\n _changeValue: function(cellDate) {\r\n if (cellDate) {\r\n var value = this.option(\"value\");\r\n var newValue = value ? new Date(value) : new Date;\r\n newValue.setDate(cellDate.getDate());\r\n newValue.setMonth(cellDate.getMonth());\r\n newValue.setFullYear(cellDate.getFullYear());\r\n newValue.setDate(cellDate.getDate());\r\n this.option(\"value\", newValue)\r\n } else {\r\n this.option(\"value\", null)\r\n }\r\n },\r\n _renderValue: function() {\r\n if (!this.option(\"allowValueSelection\")) {\r\n return\r\n }\r\n var value = this.option(\"value\");\r\n var selectedCell = this._getCellByDate(value);\r\n if (this._selectedCell) {\r\n this._selectedCell.removeClass(CALENDAR_SELECTED_DATE_CLASS)\r\n }\r\n selectedCell.addClass(CALENDAR_SELECTED_DATE_CLASS);\r\n this._selectedCell = selectedCell\r\n },\r\n getCellAriaLabel: function(date) {\r\n return this._getCellText(date)\r\n },\r\n _getFirstAvailableDate: function() {\r\n var date = this.option(\"date\");\r\n var min = this.option(\"min\");\r\n date = coreDateUtils.getFirstDateView(this._getViewName(), date);\r\n return new Date(min && date < min ? min : date)\r\n },\r\n _getCellByDate: abstract,\r\n isBoundary: abstract,\r\n _optionChanged: function(args) {\r\n var {\r\n name: name,\r\n value: value\r\n } = args;\r\n switch (name) {\r\n case \"value\":\r\n this._renderValue();\r\n break;\r\n case \"contouredDate\":\r\n this._renderContouredDate(value);\r\n break;\r\n case \"onCellClick\":\r\n this._createCellClickAction();\r\n break;\r\n case \"disabledDates\":\r\n case \"cellTemplate\":\r\n this._invalidate();\r\n break;\r\n case \"rtlEnabled\":\r\n this._cacheAppendMethodName(value);\r\n this.callBase(args);\r\n break;\r\n case \"_todayDate\":\r\n this._renderBody();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport default BaseView;\r\n","/**\r\n * DevExtreme (esm/ui/calendar/ui.calendar.views.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport BaseView from \"./ui.calendar.base_view\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nvar CALENDAR_OTHER_MONTH_CLASS = \"dx-calendar-other-month\";\r\nvar CALENDAR_OTHER_VIEW_CLASS = \"dx-calendar-other-view\";\r\nvar Views = {\r\n month: BaseView.inherit({\r\n _getViewName: function() {\r\n return \"month\"\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n firstDayOfWeek: void 0,\r\n rowCount: 6,\r\n colCount: 7\r\n })\r\n },\r\n _renderImpl: function() {\r\n this.callBase();\r\n this._renderHeader()\r\n },\r\n _renderBody: function() {\r\n this.callBase();\r\n this._$table.find(\".\".concat(CALENDAR_OTHER_VIEW_CLASS)).addClass(CALENDAR_OTHER_MONTH_CLASS)\r\n },\r\n _renderFocusTarget: noop,\r\n getCellAriaLabel: function(date) {\r\n return dateLocalization.format(date, \"longdate\")\r\n },\r\n _renderHeader: function() {\r\n var $headerRow = $(\"\");\r\n var $header = $(\"\").append($headerRow);\r\n this._$table.prepend($header);\r\n for (var colIndex = 0, colCount = this.option(\"colCount\"); colIndex < colCount; colIndex++) {\r\n this._renderHeaderCell(colIndex, $headerRow)\r\n }\r\n },\r\n _renderHeaderCell: function(cellIndex, $headerRow) {\r\n var {\r\n full: fullCaption,\r\n abbreviated: abbrCaption\r\n } = this._getDayCaption(this._getFirstDayOfWeek() + cellIndex);\r\n var $cell = $(\"
\").attr({\r\n scope: \"col\",\r\n abbr: fullCaption\r\n }).text(abbrCaption);\r\n this._appendCell($headerRow, $cell)\r\n },\r\n getNavigatorCaption: function() {\r\n return dateLocalization.format(this.option(\"date\"), \"monthandyear\")\r\n },\r\n _isTodayCell: function(cellDate) {\r\n var today = this.option(\"_todayDate\")();\r\n return dateUtils.sameDate(cellDate, today)\r\n },\r\n _isDateOutOfRange: function(cellDate) {\r\n var minDate = this.option(\"min\");\r\n var maxDate = this.option(\"max\");\r\n return !dateUtils.dateInRange(cellDate, minDate, maxDate, \"date\")\r\n },\r\n _isOtherView: function(cellDate) {\r\n return cellDate.getMonth() !== this.option(\"date\").getMonth()\r\n },\r\n _getCellText: function(cellDate) {\r\n return dateLocalization.format(cellDate, \"d\")\r\n },\r\n _getDayCaption: function(day) {\r\n var daysInWeek = this.option(\"colCount\");\r\n var dayIndex = day % daysInWeek;\r\n return {\r\n full: dateLocalization.getDayNames()[dayIndex],\r\n abbreviated: dateLocalization.getDayNames(\"abbreviated\")[dayIndex]\r\n }\r\n },\r\n _getFirstCellData: function() {\r\n var firstDay = dateUtils.getFirstMonthDate(this.option(\"date\"));\r\n var firstMonthDayOffset = this._getFirstDayOfWeek() - firstDay.getDay();\r\n var daysInWeek = this.option(\"colCount\");\r\n if (firstMonthDayOffset >= 0) {\r\n firstMonthDayOffset -= daysInWeek\r\n }\r\n firstDay.setDate(firstDay.getDate() + firstMonthDayOffset);\r\n return firstDay\r\n },\r\n _getNextCellData: function(date) {\r\n date = new Date(date);\r\n date.setDate(date.getDate() + 1);\r\n return date\r\n },\r\n _getFirstDayOfWeek: function() {\r\n return isDefined(this.option(\"firstDayOfWeek\")) ? this.option(\"firstDayOfWeek\") : dateLocalization.firstDayOfWeekIndex()\r\n },\r\n _getCellByDate: function(date) {\r\n return this._$table.find(\"td[data-value='\".concat(dateSerialization.serializeDate(date, dateUtils.getShortDateFormat()), \"']\"))\r\n },\r\n isBoundary: function(date) {\r\n return dateUtils.sameMonthAndYear(date, this.option(\"min\")) || dateUtils.sameMonthAndYear(date, this.option(\"max\"))\r\n },\r\n _getDefaultDisabledDatesHandler: function(disabledDates) {\r\n return function(args) {\r\n var isDisabledDate = disabledDates.some((function(item) {\r\n return dateUtils.sameDate(item, args.date)\r\n }));\r\n if (isDisabledDate) {\r\n return true\r\n }\r\n }\r\n }\r\n }),\r\n year: BaseView.inherit({\r\n _getViewName: function() {\r\n return \"year\"\r\n },\r\n _isTodayCell: function(cellDate) {\r\n var today = this.option(\"_todayDate\")();\r\n return dateUtils.sameMonthAndYear(cellDate, today)\r\n },\r\n _isDateOutOfRange: function(cellDate) {\r\n return !dateUtils.dateInRange(cellDate, dateUtils.getFirstMonthDate(this.option(\"min\")), dateUtils.getLastMonthDate(this.option(\"max\")))\r\n },\r\n _isOtherView: function() {\r\n return false\r\n },\r\n _getCellText: function(cellDate) {\r\n return dateLocalization.getMonthNames(\"abbreviated\")[cellDate.getMonth()]\r\n },\r\n _getFirstCellData: function() {\r\n var currentDate = this.option(\"date\");\r\n var data = new Date(currentDate);\r\n data.setDate(1);\r\n data.setMonth(0);\r\n return data\r\n },\r\n _getNextCellData: function(date) {\r\n date = new Date(date);\r\n date.setMonth(date.getMonth() + 1);\r\n return date\r\n },\r\n _getCellByDate: function(date) {\r\n var foundDate = new Date(date);\r\n foundDate.setDate(1);\r\n return this._$table.find(\"td[data-value='\".concat(dateSerialization.serializeDate(foundDate, dateUtils.getShortDateFormat()), \"']\"))\r\n },\r\n getCellAriaLabel: function(date) {\r\n return dateLocalization.format(date, \"monthandyear\")\r\n },\r\n getNavigatorCaption: function() {\r\n return dateLocalization.format(this.option(\"date\"), \"yyyy\")\r\n },\r\n isBoundary: function(date) {\r\n return dateUtils.sameYear(date, this.option(\"min\")) || dateUtils.sameYear(date, this.option(\"max\"))\r\n }\r\n }),\r\n decade: BaseView.inherit({\r\n _getViewName: function() {\r\n return \"decade\"\r\n },\r\n _isTodayCell: function(cellDate) {\r\n var today = this.option(\"_todayDate\")();\r\n return dateUtils.sameYear(cellDate, today)\r\n },\r\n _isDateOutOfRange: function(cellDate) {\r\n var min = this.option(\"min\");\r\n var max = this.option(\"max\");\r\n return !dateUtils.dateInRange(cellDate.getFullYear(), min && min.getFullYear(), max && max.getFullYear())\r\n },\r\n _isOtherView: function(cellDate) {\r\n var date = new Date(cellDate);\r\n date.setMonth(1);\r\n return !dateUtils.sameDecade(date, this.option(\"date\"))\r\n },\r\n _getCellText: function(cellDate) {\r\n return dateLocalization.format(cellDate, \"yyyy\")\r\n },\r\n _getFirstCellData: function() {\r\n var year = dateUtils.getFirstYearInDecade(this.option(\"date\")) - 1;\r\n return dateUtils.createDateWithFullYear(year, 0, 1)\r\n },\r\n _getNextCellData: function(date) {\r\n date = new Date(date);\r\n date.setFullYear(date.getFullYear() + 1);\r\n return date\r\n },\r\n getNavigatorCaption: function() {\r\n var currentDate = this.option(\"date\");\r\n var firstYearInDecade = dateUtils.getFirstYearInDecade(currentDate);\r\n var startDate = new Date(currentDate);\r\n var endDate = new Date(currentDate);\r\n startDate.setFullYear(firstYearInDecade);\r\n endDate.setFullYear(firstYearInDecade + 9);\r\n return dateLocalization.format(startDate, \"yyyy\") + \"-\" + dateLocalization.format(endDate, \"yyyy\")\r\n },\r\n _isValueOnCurrentView: function(currentDate, value) {\r\n return dateUtils.sameDecade(currentDate, value)\r\n },\r\n _getCellByDate: function(date) {\r\n var foundDate = new Date(date);\r\n foundDate.setDate(1);\r\n foundDate.setMonth(0);\r\n return this._$table.find(\"td[data-value='\".concat(dateSerialization.serializeDate(foundDate, dateUtils.getShortDateFormat()), \"']\"))\r\n },\r\n isBoundary: function(date) {\r\n return dateUtils.sameDecade(date, this.option(\"min\")) || dateUtils.sameDecade(date, this.option(\"max\"))\r\n }\r\n }),\r\n century: BaseView.inherit({\r\n _getViewName: function() {\r\n return \"century\"\r\n },\r\n _isTodayCell: function(cellDate) {\r\n var today = this.option(\"_todayDate\")();\r\n return dateUtils.sameDecade(cellDate, today)\r\n },\r\n _isDateOutOfRange: function(cellDate) {\r\n var decade = dateUtils.getFirstYearInDecade(cellDate);\r\n var minDecade = dateUtils.getFirstYearInDecade(this.option(\"min\"));\r\n var maxDecade = dateUtils.getFirstYearInDecade(this.option(\"max\"));\r\n return !dateUtils.dateInRange(decade, minDecade, maxDecade)\r\n },\r\n _isOtherView: function(cellDate) {\r\n var date = new Date(cellDate);\r\n date.setMonth(1);\r\n return !dateUtils.sameCentury(date, this.option(\"date\"))\r\n },\r\n _getCellText: function(cellDate) {\r\n var startDate = dateLocalization.format(cellDate, \"yyyy\");\r\n var endDate = new Date(cellDate);\r\n endDate.setFullYear(endDate.getFullYear() + 9);\r\n return startDate + \" - \" + dateLocalization.format(endDate, \"yyyy\")\r\n },\r\n _getFirstCellData: function() {\r\n var decade = dateUtils.getFirstDecadeInCentury(this.option(\"date\")) - 10;\r\n return dateUtils.createDateWithFullYear(decade, 0, 1)\r\n },\r\n _getNextCellData: function(date) {\r\n date = new Date(date);\r\n date.setFullYear(date.getFullYear() + 10);\r\n return date\r\n },\r\n _getCellByDate: function(date) {\r\n var foundDate = new Date(date);\r\n foundDate.setDate(1);\r\n foundDate.setMonth(0);\r\n foundDate.setFullYear(dateUtils.getFirstYearInDecade(foundDate));\r\n return this._$table.find(\"td[data-value='\".concat(dateSerialization.serializeDate(foundDate, dateUtils.getShortDateFormat()), \"']\"))\r\n },\r\n getNavigatorCaption: function() {\r\n var currentDate = this.option(\"date\");\r\n var firstDecadeInCentury = dateUtils.getFirstDecadeInCentury(currentDate);\r\n var startDate = new Date(currentDate);\r\n var endDate = new Date(currentDate);\r\n startDate.setFullYear(firstDecadeInCentury);\r\n endDate.setFullYear(firstDecadeInCentury + 99);\r\n return dateLocalization.format(startDate, \"yyyy\") + \"-\" + dateLocalization.format(endDate, \"yyyy\")\r\n },\r\n isBoundary: function(date) {\r\n return dateUtils.sameCentury(date, this.option(\"min\")) || dateUtils.sameCentury(date, this.option(\"max\"))\r\n }\r\n })\r\n};\r\nexport default Views;\r\n","/**\r\n * DevExtreme (esm/ui/calendar/ui.calendar.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport Guid from \"../../core/guid\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isNumeric,\r\n isString,\r\n isFunction,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n inRange\r\n} from \"../../core/utils/math\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport Button from \"../button\";\r\nimport Editor from \"../editor/editor\";\r\nimport Swipeable from \"../../events/gesture/swipeable\";\r\nimport Navigator from \"./ui.calendar.navigator\";\r\nimport Views from \"./ui.calendar.views\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport devices from \"../../core/devices\";\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n FunctionTemplate\r\n} from \"../../core/templates/function_template\";\r\nimport {\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nvar CALENDAR_CLASS = \"dx-calendar\";\r\nvar CALENDAR_BODY_CLASS = \"dx-calendar-body\";\r\nvar CALENDAR_CELL_CLASS = \"dx-calendar-cell\";\r\nvar CALENDAR_FOOTER_CLASS = \"dx-calendar-footer\";\r\nvar CALENDAR_TODAY_BUTTON_CLASS = \"dx-calendar-today-button\";\r\nvar CALENDAR_HAS_FOOTER_CLASS = \"dx-calendar-with-footer\";\r\nvar CALENDAR_VIEWS_WRAPPER_CLASS = \"dx-calendar-views-wrapper\";\r\nvar CALENDAR_VIEW_CLASS = \"dx-calendar-view\";\r\nvar FOCUSED_STATE_CLASS = \"dx-state-focused\";\r\nvar ANIMATION_DURATION_SHOW_VIEW = 250;\r\nvar POP_ANIMATION_FROM = .6;\r\nvar POP_ANIMATION_TO = 1;\r\nvar CALENDAR_INPUT_STANDARD_PATTERN = \"yyyy-MM-dd\";\r\nvar CALENDAR_DATE_VALUE_KEY = \"dxDateValueKey\";\r\nvar LEVEL_COMPARE_MAP = {\r\n month: 3,\r\n year: 2,\r\n decade: 1,\r\n century: 0\r\n};\r\nvar ZOOM_LEVEL = {\r\n MONTH: \"month\",\r\n YEAR: \"year\",\r\n DECADE: \"decade\",\r\n CENTURY: \"century\"\r\n};\r\n\r\nfunction elementHasFocus(element) {\r\n return element.hasClass(FOCUSED_STATE_CLASS)\r\n}\r\nvar Calendar = Editor.inherit({\r\n _activeStateUnit: \".\" + CALENDAR_CELL_CLASS,\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n hoverStateEnabled: true,\r\n activeStateEnabled: true,\r\n currentDate: new Date,\r\n value: null,\r\n dateSerializationFormat: void 0,\r\n min: new Date(1e3, 0),\r\n max: new Date(3e3, 0),\r\n firstDayOfWeek: void 0,\r\n zoomLevel: ZOOM_LEVEL.MONTH,\r\n maxZoomLevel: ZOOM_LEVEL.MONTH,\r\n minZoomLevel: ZOOM_LEVEL.CENTURY,\r\n showTodayButton: false,\r\n cellTemplate: \"cell\",\r\n disabledDates: null,\r\n onCellClick: null,\r\n onContouredChanged: null,\r\n skipFocusCheck: false,\r\n _todayDate: () => new Date\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), {\r\n rightArrow: function(e) {\r\n e.preventDefault();\r\n if (isCommandKeyPressed(e)) {\r\n this._waitRenderView(1)\r\n } else {\r\n this._moveCurrentDateByOffset(1 * this._getRtlCorrection())\r\n }\r\n },\r\n leftArrow: function(e) {\r\n e.preventDefault();\r\n if (isCommandKeyPressed(e)) {\r\n this._waitRenderView(-1)\r\n } else {\r\n this._moveCurrentDateByOffset(-1 * this._getRtlCorrection())\r\n }\r\n },\r\n upArrow: function(e) {\r\n e.preventDefault();\r\n if (isCommandKeyPressed(e)) {\r\n this._navigateUp()\r\n } else {\r\n if (fx.isAnimating(this._view.$element())) {\r\n return\r\n }\r\n this._moveCurrentDateByOffset(-1 * this._view.option(\"colCount\"))\r\n }\r\n },\r\n downArrow: function(e) {\r\n e.preventDefault();\r\n if (isCommandKeyPressed(e)) {\r\n this._navigateDown()\r\n } else {\r\n if (fx.isAnimating(this._view.$element())) {\r\n return\r\n }\r\n this._moveCurrentDateByOffset(1 * this._view.option(\"colCount\"))\r\n }\r\n },\r\n home: function(e) {\r\n e.preventDefault();\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var currentDate = this.option(\"currentDate\");\r\n var min = this._dateOption(\"min\");\r\n if (this._view.isDateDisabled(currentDate)) {\r\n return\r\n }\r\n var date = dateUtils.sameView(zoomLevel, currentDate, min) ? min : dateUtils.getViewFirstCellDate(zoomLevel, currentDate);\r\n this._moveToClosestAvailableDate(date)\r\n },\r\n end: function(e) {\r\n e.preventDefault();\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var currentDate = this.option(\"currentDate\");\r\n var max = this._dateOption(\"max\");\r\n if (this._view.isDateDisabled(currentDate)) {\r\n return\r\n }\r\n var date = dateUtils.sameView(zoomLevel, currentDate, max) ? max : dateUtils.getViewLastCellDate(zoomLevel, currentDate);\r\n this._moveToClosestAvailableDate(date)\r\n },\r\n pageUp: function(e) {\r\n e.preventDefault();\r\n this._waitRenderView(-1 * this._getRtlCorrection())\r\n },\r\n pageDown: function(e) {\r\n e.preventDefault();\r\n this._waitRenderView(1 * this._getRtlCorrection())\r\n },\r\n tab: noop,\r\n enter: function(e) {\r\n if (!this._isMaxZoomLevel()) {\r\n this._navigateDown()\r\n } else if (!this._view.isDateDisabled(this.option(\"currentDate\"))) {\r\n var value = this._updateTimeComponent(this.option(\"currentDate\"));\r\n this._dateValue(value, e)\r\n }\r\n }\r\n })\r\n },\r\n _getSerializationFormat: function(optionName) {\r\n var value = this.option(optionName || \"value\");\r\n if (this.option(\"dateSerializationFormat\")) {\r\n return this.option(\"dateSerializationFormat\")\r\n }\r\n if (isNumeric(value)) {\r\n return \"number\"\r\n }\r\n if (!isString(value)) {\r\n return\r\n }\r\n return dateSerialization.getDateSerializationFormat(value)\r\n },\r\n _convertToDate: function(value, optionName) {\r\n return dateSerialization.deserializeDate(value)\r\n },\r\n _dateValue: function(value, event) {\r\n if (event) {\r\n if (\"keydown\" === event.type) {\r\n var cellElement = this._view._getContouredCell().get(0);\r\n event.target = cellElement\r\n }\r\n this._saveValueChangeEvent(event)\r\n }\r\n this._dateOption(\"value\", value)\r\n },\r\n _dateOption: function(optionName, optionValue) {\r\n if (1 === arguments.length) {\r\n return this._convertToDate(this.option(optionName), optionName)\r\n }\r\n var serializationFormat = this._getSerializationFormat(optionName);\r\n this.option(optionName, dateSerialization.serializeDate(optionValue, serializationFormat))\r\n },\r\n _shiftDate: function(zoomLevel, date, offset, reverse) {\r\n switch (zoomLevel) {\r\n case ZOOM_LEVEL.MONTH:\r\n date.setDate(date.getDate() + offset * reverse);\r\n break;\r\n case ZOOM_LEVEL.YEAR:\r\n date.setMonth(date.getMonth() + offset * reverse);\r\n break;\r\n case ZOOM_LEVEL.DECADE:\r\n date.setFullYear(date.getFullYear() + offset * reverse);\r\n break;\r\n case ZOOM_LEVEL.CENTURY:\r\n date.setFullYear(date.getFullYear() + 10 * offset * reverse)\r\n }\r\n },\r\n _moveCurrentDateByOffset: function(offset) {\r\n var baseDate = this.option(\"currentDate\");\r\n var currentDate = new Date(baseDate);\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n this._shiftDate(zoomLevel, currentDate, offset, 1);\r\n var maxDate = this._getMaxDate();\r\n var minDate = this._getMinDate();\r\n var isDateForwardInNeighborView = this._areDatesInNeighborView(zoomLevel, currentDate, baseDate);\r\n var isDateForwardInRange = inRange(currentDate, minDate, maxDate) && isDateForwardInNeighborView;\r\n var dateForward = new Date(currentDate);\r\n while (isDateForwardInRange) {\r\n if (!this._view.isDateDisabled(dateForward)) {\r\n currentDate = dateForward;\r\n break\r\n }\r\n this._shiftDate(zoomLevel, dateForward, offset, 1);\r\n isDateForwardInNeighborView = this._areDatesInNeighborView(zoomLevel, dateForward, baseDate);\r\n isDateForwardInRange = inRange(dateForward, minDate, maxDate) && isDateForwardInNeighborView\r\n }\r\n if (this._view.isDateDisabled(baseDate) || this._view.isDateDisabled(currentDate)) {\r\n this._waitRenderView(offset > 0 ? 1 : -1)\r\n } else {\r\n this.option(\"currentDate\", currentDate)\r\n }\r\n },\r\n _areDatesInSameView(zoomLevel, date1, date2) {\r\n switch (zoomLevel) {\r\n case ZOOM_LEVEL.MONTH:\r\n return date1.getMonth() === date2.getMonth();\r\n case ZOOM_LEVEL.YEAR:\r\n return date1.getYear() === date2.getYear();\r\n case ZOOM_LEVEL.DECADE:\r\n return parseInt(date1.getYear() / 10) === parseInt(date2.getYear() / 10);\r\n case ZOOM_LEVEL.CENTURY:\r\n return parseInt(date1.getYear() / 100) === parseInt(date2.getYear() / 100)\r\n }\r\n },\r\n _areDatesInNeighborView(zoomLevel, date1, date2) {\r\n switch (zoomLevel) {\r\n case ZOOM_LEVEL.MONTH:\r\n return (a = date1.getMonth(), b = date2.getMonth(), abs = Math.abs(a - b), Math.min(abs, 12 - abs)) <= 1;\r\n case ZOOM_LEVEL.YEAR:\r\n return Math.abs(date1.getYear() - date2.getYear()) <= 1;\r\n case ZOOM_LEVEL.DECADE:\r\n return Math.abs(date1.getYear() - date2.getYear()) <= 10;\r\n case ZOOM_LEVEL.CENTURY:\r\n return Math.abs(date1.getYear() - date2.getYear()) <= 100\r\n }\r\n var a, b, abs\r\n },\r\n _moveToClosestAvailableDate: function() {\r\n var baseDate = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.option(\"currentDate\");\r\n var currentDate = new Date(baseDate);\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var isCurrentDateAvailable = !this._isDateNotAvailable(currentDate);\r\n var isDateForwardAvailable = isCurrentDateAvailable;\r\n var isDateBackwardAvailable = isCurrentDateAvailable;\r\n var isDateForwardInStartView;\r\n var isDateBackwardInStartView;\r\n var dateForward = new Date(currentDate);\r\n var dateBackward = new Date(currentDate);\r\n do {\r\n if (isDateForwardAvailable) {\r\n currentDate = dateForward;\r\n break\r\n }\r\n if (isDateBackwardAvailable) {\r\n currentDate = dateBackward;\r\n break\r\n }\r\n this._shiftDate(zoomLevel, dateForward, 1, 1);\r\n this._shiftDate(zoomLevel, dateBackward, 1, -1);\r\n isDateForwardInStartView = this._areDatesInSameView(zoomLevel, dateForward, baseDate);\r\n isDateBackwardInStartView = this._areDatesInSameView(zoomLevel, dateBackward, baseDate);\r\n isDateForwardAvailable = isDateForwardInStartView && !this._isDateNotAvailable(dateForward);\r\n isDateBackwardAvailable = isDateBackwardInStartView && !this._isDateNotAvailable(dateBackward)\r\n } while (isDateForwardInStartView || isDateBackwardInStartView);\r\n this.option(\"currentDate\", currentDate)\r\n },\r\n _isDateNotAvailable: function(date) {\r\n var maxDate = this._getMaxDate();\r\n var minDate = this._getMinDate();\r\n return !inRange(date, minDate, maxDate) || this._view.isDateDisabled(date)\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._correctZoomLevel();\r\n this._initCurrentDate();\r\n this._initActions()\r\n },\r\n _correctZoomLevel: function() {\r\n var minZoomLevel = this.option(\"minZoomLevel\");\r\n var maxZoomLevel = this.option(\"maxZoomLevel\");\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n if (LEVEL_COMPARE_MAP[maxZoomLevel] < LEVEL_COMPARE_MAP[minZoomLevel]) {\r\n return\r\n }\r\n if (LEVEL_COMPARE_MAP[zoomLevel] > LEVEL_COMPARE_MAP[maxZoomLevel]) {\r\n this.option(\"zoomLevel\", maxZoomLevel)\r\n } else if (LEVEL_COMPARE_MAP[zoomLevel] < LEVEL_COMPARE_MAP[minZoomLevel]) {\r\n this.option(\"zoomLevel\", minZoomLevel)\r\n }\r\n },\r\n _initCurrentDate: function() {\r\n var currentDate = this._getNormalizedDate(this._dateOption(\"value\")) || this._getNormalizedDate(this.option(\"currentDate\"));\r\n this.option(\"currentDate\", currentDate)\r\n },\r\n _getNormalizedDate: function(date) {\r\n date = dateUtils.normalizeDate(date, this._getMinDate(), this._getMaxDate());\r\n return isDefined(date) ? this._getDate(date) : date\r\n },\r\n _initActions: function() {\r\n this._cellClickAction = this._createActionByOption(\"onCellClick\");\r\n this._onContouredChanged = this._createActionByOption(\"onContouredChanged\")\r\n },\r\n _initTemplates: function() {\r\n this._templateManager.addDefaultTemplates({\r\n cell: new FunctionTemplate((function(options) {\r\n var data = options.model;\r\n $(options.container).append($(\"\").text(data && data.text || String(data)))\r\n }))\r\n });\r\n this.callBase()\r\n },\r\n _updateCurrentDate: function(date) {\r\n if (fx.isAnimating(this._$viewsWrapper)) {\r\n fx.stop(this._$viewsWrapper, true)\r\n }\r\n var min = this._getMinDate();\r\n var max = this._getMaxDate();\r\n if (min > max) {\r\n this.option(\"currentDate\", new Date);\r\n return\r\n }\r\n var normalizedDate = this._getNormalizedDate(date);\r\n if (date.getTime() !== normalizedDate.getTime()) {\r\n this.option(\"currentDate\", new Date(normalizedDate));\r\n return\r\n }\r\n var offset = this._getViewsOffset(this._view.option(\"date\"), normalizedDate);\r\n if (0 !== offset && !this._isMaxZoomLevel() && this._isOtherViewCellClicked) {\r\n offset = 0\r\n }\r\n if (this._view && 0 !== offset && !this._suppressNavigation) {\r\n this._navigate(offset, normalizedDate)\r\n } else {\r\n this._renderNavigator();\r\n this._setViewContoured(normalizedDate);\r\n this._updateAriaId(normalizedDate)\r\n }\r\n },\r\n _setViewContoured: function(date) {\r\n if (this.option(\"skipFocusCheck\") || elementHasFocus(this._focusTarget())) {\r\n this._view.option(\"contouredDate\", date)\r\n }\r\n },\r\n _getMinDate: function() {\r\n if (this.min) {\r\n return this.min\r\n }\r\n this.min = this._dateOption(\"min\") || new Date(1e3, 0);\r\n return this.min\r\n },\r\n _getMaxDate: function() {\r\n if (this.max) {\r\n return this.max\r\n }\r\n this.max = this._dateOption(\"max\") || new Date(3e3, 0);\r\n return this.max\r\n },\r\n _getViewsOffset: function(startDate, endDate) {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n if (zoomLevel === ZOOM_LEVEL.MONTH) {\r\n return this._getMonthsOffset(startDate, endDate)\r\n }\r\n var zoomCorrection;\r\n switch (zoomLevel) {\r\n case ZOOM_LEVEL.CENTURY:\r\n zoomCorrection = 100;\r\n break;\r\n case ZOOM_LEVEL.DECADE:\r\n zoomCorrection = 10;\r\n break;\r\n default:\r\n zoomCorrection = 1\r\n }\r\n return parseInt(endDate.getFullYear() / zoomCorrection) - parseInt(startDate.getFullYear() / zoomCorrection)\r\n },\r\n _getMonthsOffset: function(startDate, endDate) {\r\n var yearOffset = endDate.getFullYear() - startDate.getFullYear();\r\n var monthOffset = endDate.getMonth() - startDate.getMonth();\r\n return 12 * yearOffset + monthOffset\r\n },\r\n _waitRenderView: function(offset) {\r\n if (this._alreadyViewRender) {\r\n return\r\n }\r\n this._alreadyViewRender = true;\r\n var date = this._getDateByOffset(offset * this._getRtlCorrection());\r\n this._moveToClosestAvailableDate(date);\r\n this._waitRenderViewTimeout = setTimeout(() => {\r\n this._alreadyViewRender = false\r\n })\r\n },\r\n _getRtlCorrection: function() {\r\n return this.option(\"rtlEnabled\") ? -1 : 1\r\n },\r\n _getDateByOffset: function(offset, date) {\r\n var _date;\r\n date = this._getDate(null !== (_date = date) && void 0 !== _date ? _date : this.option(\"currentDate\"));\r\n var currentDay = date.getDate();\r\n var difference = dateUtils.getDifferenceInMonth(this.option(\"zoomLevel\")) * offset;\r\n date.setDate(1);\r\n date.setMonth(date.getMonth() + difference);\r\n var lastDay = dateUtils.getLastMonthDate(date).getDate();\r\n date.setDate(currentDay > lastDay ? lastDay : currentDay);\r\n return date\r\n },\r\n _focusTarget: function() {\r\n return this.$element()\r\n },\r\n _initMarkup: function() {\r\n this._renderSubmitElement();\r\n this.callBase();\r\n var $element = this.$element();\r\n $element.addClass(CALENDAR_CLASS);\r\n this._renderBody();\r\n $element.append(this.$body);\r\n this._renderViews();\r\n this._renderNavigator();\r\n $element.append(this._navigator.$element());\r\n this._renderSwipeable();\r\n this._renderFooter();\r\n this._updateAriaSelected();\r\n this._updateAriaId();\r\n this._moveToClosestAvailableDate()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._setViewContoured(this.option(\"currentDate\"))\r\n },\r\n _renderBody: function() {\r\n if (!this._$viewsWrapper) {\r\n this.$body = $(\"
\").addClass(CALENDAR_BODY_CLASS);\r\n this._$viewsWrapper = $(\"
\").addClass(CALENDAR_VIEWS_WRAPPER_CLASS);\r\n this.$body.append(this._$viewsWrapper)\r\n }\r\n },\r\n _getKeyboardListeners() {\r\n return this.callBase().concat([this._view])\r\n },\r\n _renderViews: function() {\r\n this.$element().addClass(CALENDAR_VIEW_CLASS + \"-\" + this.option(\"zoomLevel\"));\r\n var currentDate = this.option(\"currentDate\");\r\n this._view = this._renderSpecificView(currentDate);\r\n if (hasWindow()) {\r\n var beforeDate = this._getDateByOffset(-1, currentDate);\r\n this._beforeView = this._isViewAvailable(beforeDate) ? this._renderSpecificView(beforeDate) : null;\r\n var afterDate = this._getDateByOffset(1, currentDate);\r\n afterDate.setDate(1);\r\n this._afterView = this._isViewAvailable(afterDate) ? this._renderSpecificView(afterDate) : null\r\n }\r\n this._translateViews()\r\n },\r\n _renderSpecificView: function(date) {\r\n var specificView = Views[this.option(\"zoomLevel\")];\r\n var $view = $(\"
\").appendTo(this._$viewsWrapper);\r\n var config = this._viewConfig(date);\r\n return this._createComponent($view, specificView, config)\r\n },\r\n _viewConfig: function(date) {\r\n var disabledDates = this.option(\"disabledDates\");\r\n disabledDates = isFunction(disabledDates) ? this._injectComponent(disabledDates.bind(this)) : disabledDates;\r\n return {\r\n date: date,\r\n min: this._getMinDate(),\r\n max: this._getMaxDate(),\r\n firstDayOfWeek: this.option(\"firstDayOfWeek\"),\r\n value: this._dateOption(\"value\"),\r\n tabIndex: void 0,\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n disabledDates: disabledDates,\r\n onCellClick: this._cellClickHandler.bind(this),\r\n cellTemplate: this._getTemplateByOption(\"cellTemplate\"),\r\n allowValueSelection: this._isMaxZoomLevel(),\r\n _todayDate: this.option(\"_todayDate\")\r\n }\r\n },\r\n _injectComponent: function(func) {\r\n var that = this;\r\n return function(params) {\r\n extend(params, {\r\n component: that\r\n });\r\n return func(params)\r\n }\r\n },\r\n _isViewAvailable: function(date) {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var min = dateUtils.getViewMinBoundaryDate(zoomLevel, this._getMinDate());\r\n var max = dateUtils.getViewMaxBoundaryDate(zoomLevel, this._getMaxDate());\r\n return dateUtils.dateInRange(date, min, max)\r\n },\r\n _translateViews: function() {\r\n move(this._view.$element(), {\r\n left: 0,\r\n top: 0\r\n });\r\n this._beforeView && move(this._beforeView.$element(), {\r\n left: this._getViewPosition(-1),\r\n top: 0\r\n });\r\n this._afterView && move(this._afterView.$element(), {\r\n left: this._getViewPosition(1),\r\n top: 0\r\n })\r\n },\r\n _getViewPosition: function(coefficient) {\r\n var rtlCorrection = this.option(\"rtlEnabled\") ? -1 : 1;\r\n return 100 * coefficient * rtlCorrection + \"%\"\r\n },\r\n _cellClickHandler: function(e) {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var nextView = dateUtils.getViewDown(zoomLevel);\r\n var isMaxZoomLevel = this._isMaxZoomLevel();\r\n if (nextView && !isMaxZoomLevel) {\r\n this._navigateDown(e.event.currentTarget)\r\n } else {\r\n var newValue = this._updateTimeComponent(e.value);\r\n this._dateValue(newValue, e.event);\r\n this._cellClickAction(e)\r\n }\r\n },\r\n _updateTimeComponent: function(date) {\r\n var result = new Date(date);\r\n var currentValue = this._dateOption(\"value\");\r\n if (currentValue) {\r\n result.setHours(currentValue.getHours());\r\n result.setMinutes(currentValue.getMinutes());\r\n result.setSeconds(currentValue.getSeconds());\r\n result.setMilliseconds(currentValue.getMilliseconds())\r\n }\r\n return result\r\n },\r\n _isMaxZoomLevel: function() {\r\n return this.option(\"zoomLevel\") === this.option(\"maxZoomLevel\")\r\n },\r\n _navigateDown: function(cell) {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n if (this._isMaxZoomLevel()) {\r\n return\r\n }\r\n var nextView = dateUtils.getViewDown(zoomLevel);\r\n if (!nextView) {\r\n return\r\n }\r\n var newCurrentDate = this._view.option(\"contouredDate\") || this._view.option(\"date\");\r\n if (cell) {\r\n newCurrentDate = $(cell).data(CALENDAR_DATE_VALUE_KEY)\r\n }\r\n this._isOtherViewCellClicked = true;\r\n this.option(\"currentDate\", newCurrentDate);\r\n this.option(\"zoomLevel\", nextView);\r\n this._isOtherViewCellClicked = false;\r\n this._renderNavigator();\r\n this._animateShowView();\r\n this._moveToClosestAvailableDate();\r\n this._setViewContoured(this._getNormalizedDate(this.option(\"currentDate\")))\r\n },\r\n _renderNavigator: function() {\r\n if (!this._navigator) {\r\n this._navigator = new Navigator($(\"
\"), this._navigatorConfig())\r\n }\r\n this._navigator.option(\"text\", this._view.getNavigatorCaption());\r\n this._updateButtonsVisibility()\r\n },\r\n _navigatorConfig: function() {\r\n return {\r\n text: this._view.getNavigatorCaption(),\r\n onClick: this._navigatorClickHandler.bind(this),\r\n onCaptionClick: this._navigateUp.bind(this),\r\n rtlEnabled: this.option(\"rtlEnabled\")\r\n }\r\n },\r\n _navigatorClickHandler: function(e) {\r\n var currentDate = this._getDateByOffset(e.direction, this.option(\"currentDate\"));\r\n this._moveToClosestAvailableDate(currentDate)\r\n },\r\n _navigateUp: function() {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var nextView = dateUtils.getViewUp(zoomLevel);\r\n if (!nextView || this._isMinZoomLevel(zoomLevel)) {\r\n return\r\n }\r\n this.option(\"zoomLevel\", nextView);\r\n this._renderNavigator();\r\n this._animateShowView();\r\n this._moveToClosestAvailableDate();\r\n this._setViewContoured(this._getNormalizedDate(this.option(\"currentDate\")))\r\n },\r\n _isMinZoomLevel: function(zoomLevel) {\r\n var min = this._getMinDate();\r\n var max = this._getMaxDate();\r\n return dateUtils.sameView(zoomLevel, min, max) || this.option(\"minZoomLevel\") === zoomLevel\r\n },\r\n _updateButtonsVisibility: function() {\r\n this._navigator.toggleButton(\"next\", !isDefined(this._getRequiredView(\"next\")));\r\n this._navigator.toggleButton(\"prev\", !isDefined(this._getRequiredView(\"prev\")))\r\n },\r\n _renderSwipeable: function() {\r\n if (!this._swipeable) {\r\n this._swipeable = this._createComponent(this.$element(), Swipeable, {\r\n onStart: this._swipeStartHandler.bind(this),\r\n onUpdated: this._swipeUpdateHandler.bind(this),\r\n onEnd: this._swipeEndHandler.bind(this),\r\n itemSizeFunc: this._viewWidth.bind(this)\r\n })\r\n }\r\n },\r\n _swipeStartHandler: function(e) {\r\n fx.stop(this._$viewsWrapper, true);\r\n e.event.maxLeftOffset = this._getRequiredView(\"next\") ? 1 : 0;\r\n e.event.maxRightOffset = this._getRequiredView(\"prev\") ? 1 : 0\r\n },\r\n _getRequiredView: function(name) {\r\n var view;\r\n var isRtl = this.option(\"rtlEnabled\");\r\n if (\"next\" === name) {\r\n view = isRtl ? this._beforeView : this._afterView\r\n } else if (\"prev\" === name) {\r\n view = isRtl ? this._afterView : this._beforeView\r\n }\r\n return view\r\n },\r\n _swipeUpdateHandler: function(e) {\r\n var offset = e.event.offset;\r\n move(this._$viewsWrapper, {\r\n left: offset * this._viewWidth(),\r\n top: 0\r\n });\r\n this._updateNavigatorCaption(offset)\r\n },\r\n _swipeEndHandler: function(e) {\r\n var targetOffset = e.event.targetOffset;\r\n var moveOffset = !targetOffset ? 0 : targetOffset / Math.abs(targetOffset);\r\n if (0 === moveOffset) {\r\n this._animateWrapper(0, ANIMATION_DURATION_SHOW_VIEW);\r\n return\r\n }\r\n var date = this._getDateByOffset(-moveOffset * this._getRtlCorrection());\r\n if (this._isDateInInvalidRange(date)) {\r\n if (moveOffset >= 0) {\r\n date = new Date(this._getMinDate())\r\n } else {\r\n date = new Date(this._getMaxDate())\r\n }\r\n }\r\n this.option(\"currentDate\", date)\r\n },\r\n _viewWidth: function() {\r\n if (!this._viewWidthValue) {\r\n this._viewWidthValue = getWidth(this.$element())\r\n }\r\n return this._viewWidthValue\r\n },\r\n _updateNavigatorCaption: function(offset) {\r\n offset *= this._getRtlCorrection();\r\n var view = this._view;\r\n if (offset > .5 && this._beforeView) {\r\n view = this._beforeView\r\n } else if (offset < -.5 && this._afterView) {\r\n view = this._afterView\r\n }\r\n this._navigator.option(\"text\", view.getNavigatorCaption())\r\n },\r\n _isDateInInvalidRange: function(date) {\r\n if (this._view.isBoundary(date)) {\r\n return\r\n }\r\n var min = this._getMinDate();\r\n var max = this._getMaxDate();\r\n var normalizedDate = dateUtils.normalizeDate(date, min, max);\r\n return normalizedDate === min || normalizedDate === max\r\n },\r\n _renderFooter: function() {\r\n var showTodayButton = this.option(\"showTodayButton\");\r\n if (showTodayButton) {\r\n var $todayButton = this._createComponent($(\"\"), Button, {\r\n focusStateEnabled: false,\r\n text: messageLocalization.format(\"dxCalendar-todayButtonText\"),\r\n onClick: function(args) {\r\n this._toTodayView(args)\r\n }.bind(this),\r\n integrationOptions: {}\r\n }).$element().addClass(CALENDAR_TODAY_BUTTON_CLASS);\r\n this._$footer = $(\"
\").addClass(CALENDAR_FOOTER_CLASS).append($todayButton);\r\n this.$element().append(this._$footer)\r\n }\r\n this.$element().toggleClass(CALENDAR_HAS_FOOTER_CLASS, showTodayButton)\r\n },\r\n _renderSubmitElement: function() {\r\n this._$submitElement = $(\"\").attr(\"type\", \"hidden\").appendTo(this.$element());\r\n this._setSubmitValue(this.option(\"value\"))\r\n },\r\n _setSubmitValue: function(value) {\r\n var dateValue = this._convertToDate(value);\r\n this._getSubmitElement().val(dateSerialization.serializeDate(dateValue, CALENDAR_INPUT_STANDARD_PATTERN))\r\n },\r\n _getSubmitElement: function() {\r\n return this._$submitElement\r\n },\r\n _animateShowView: function() {\r\n fx.stop(this._view.$element(), true);\r\n return this._popAnimationView(this._view, POP_ANIMATION_FROM, POP_ANIMATION_TO, ANIMATION_DURATION_SHOW_VIEW).promise()\r\n },\r\n _popAnimationView: function(view, from, to, duration) {\r\n return fx.animate(view.$element(), {\r\n type: \"pop\",\r\n from: {\r\n scale: from,\r\n opacity: from\r\n },\r\n to: {\r\n scale: to,\r\n opacity: to\r\n },\r\n duration: duration\r\n })\r\n },\r\n _navigate: function(offset, value) {\r\n if (0 !== offset && 1 !== Math.abs(offset) && this._isViewAvailable(value)) {\r\n var newView = this._renderSpecificView(value);\r\n if (offset > 0) {\r\n this._afterView && this._afterView.$element().remove();\r\n this._afterView = newView\r\n } else {\r\n this._beforeView && this._beforeView.$element().remove();\r\n this._beforeView = newView\r\n }\r\n this._translateViews()\r\n }\r\n var rtlCorrection = this._getRtlCorrection();\r\n var offsetSign = offset > 0 ? 1 : offset < 0 ? -1 : 0;\r\n var endPosition = -rtlCorrection * offsetSign * this._viewWidth();\r\n var viewsWrapperPosition = this._$viewsWrapper.position().left;\r\n if (viewsWrapperPosition !== endPosition) {\r\n if (this._preventViewChangeAnimation) {\r\n this._wrapperAnimationEndHandler(offset, value)\r\n } else {\r\n this._animateWrapper(endPosition, ANIMATION_DURATION_SHOW_VIEW).done(this._wrapperAnimationEndHandler.bind(this, offset, value))\r\n }\r\n }\r\n },\r\n _animateWrapper: function(to, duration) {\r\n return fx.animate(this._$viewsWrapper, {\r\n type: \"slide\",\r\n from: {\r\n left: this._$viewsWrapper.position().left\r\n },\r\n to: {\r\n left: to\r\n },\r\n duration: duration\r\n })\r\n },\r\n _getDate: value => new Date(value),\r\n _toTodayView: function(args) {\r\n this._saveValueChangeEvent(args.event);\r\n var today = new Date;\r\n if (this._isMaxZoomLevel()) {\r\n this._dateOption(\"value\", today);\r\n return\r\n }\r\n this._preventViewChangeAnimation = true;\r\n this.option(\"zoomLevel\", this.option(\"maxZoomLevel\"));\r\n this._dateOption(\"value\", today);\r\n this._animateShowView();\r\n this._preventViewChangeAnimation = false\r\n },\r\n _wrapperAnimationEndHandler: function(offset, newDate) {\r\n this._rearrangeViews(offset);\r\n this._translateViews();\r\n this._resetLocation();\r\n this._renderNavigator();\r\n this._setViewContoured(newDate);\r\n this._updateAriaId(newDate)\r\n },\r\n _rearrangeViews: function(offset) {\r\n if (0 === offset) {\r\n return\r\n }\r\n var viewOffset;\r\n var viewToCreateKey;\r\n var viewToRemoveKey;\r\n if (offset < 0) {\r\n viewOffset = 1;\r\n viewToCreateKey = \"_beforeView\";\r\n viewToRemoveKey = \"_afterView\"\r\n } else {\r\n viewOffset = -1;\r\n viewToCreateKey = \"_afterView\";\r\n viewToRemoveKey = \"_beforeView\"\r\n }\r\n if (!this[viewToCreateKey]) {\r\n return\r\n }\r\n var destinationDate = this[viewToCreateKey].option(\"date\");\r\n if (this[viewToRemoveKey]) {\r\n this[viewToRemoveKey].$element().remove()\r\n }\r\n if (offset === viewOffset) {\r\n this[viewToRemoveKey] = this._view\r\n } else {\r\n this[viewToRemoveKey] = this._renderSpecificView(this._getDateByOffset(viewOffset, destinationDate));\r\n this._view.$element().remove()\r\n }\r\n this._view = this[viewToCreateKey];\r\n var dateByOffset = this._getDateByOffset(-viewOffset, destinationDate);\r\n this[viewToCreateKey] = this._isViewAvailable(dateByOffset) ? this._renderSpecificView(dateByOffset) : null\r\n },\r\n _resetLocation: function() {\r\n move(this._$viewsWrapper, {\r\n left: 0,\r\n top: 0\r\n })\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n this._clearViewWidthCache();\r\n delete this._$viewsWrapper;\r\n delete this._navigator;\r\n delete this._$footer\r\n },\r\n _clearViewWidthCache: function() {\r\n delete this._viewWidthValue\r\n },\r\n _disposeViews: function() {\r\n this._view.$element().remove();\r\n this._beforeView && this._beforeView.$element().remove();\r\n this._afterView && this._afterView.$element().remove();\r\n delete this._view;\r\n delete this._beforeView;\r\n delete this._afterView\r\n },\r\n _dispose: function() {\r\n clearTimeout(this._waitRenderViewTimeout);\r\n this.callBase()\r\n },\r\n _refreshViews: function() {\r\n this._disposeViews();\r\n this._renderViews()\r\n },\r\n _visibilityChanged: function() {\r\n this._translateViews()\r\n },\r\n _focusInHandler: function() {\r\n this.callBase.apply(this, arguments);\r\n this._view.option(\"contouredDate\", this.option(\"currentDate\"))\r\n },\r\n _focusOutHandler: function() {\r\n this.callBase.apply(this, arguments);\r\n this._view.option(\"contouredDate\", null)\r\n },\r\n _updateViewsValue: function(value) {\r\n var newValue = value ? new Date(value) : null;\r\n this._view.option(\"value\", newValue);\r\n this._beforeView && this._beforeView.option(\"value\", newValue);\r\n this._afterView && this._afterView.option(\"value\", newValue)\r\n },\r\n _updateAriaSelected: function(value, previousValue) {\r\n var _value;\r\n value = null !== (_value = value) && void 0 !== _value ? _value : this._dateOption(\"value\");\r\n var $prevSelectedCell = this._view._getCellByDate(previousValue);\r\n var $selectedCell = this._view._getCellByDate(value);\r\n this.setAria(\"selected\", void 0, $prevSelectedCell);\r\n this.setAria(\"selected\", true, $selectedCell);\r\n if (value && this.option(\"currentDate\").getTime() === value.getTime()) {\r\n this._updateAriaId(value)\r\n }\r\n },\r\n _updateAriaId: function(value) {\r\n var _value2;\r\n value = null !== (_value2 = value) && void 0 !== _value2 ? _value2 : this.option(\"currentDate\");\r\n var ariaId = \"dx-\" + new Guid;\r\n var $newCell = this._view._getCellByDate(value);\r\n this.setAria(\"id\", ariaId, $newCell);\r\n this.setAria(\"activedescendant\", ariaId);\r\n this._onContouredChanged(ariaId)\r\n },\r\n _suppressingNavigation: function(callback, args) {\r\n this._suppressNavigation = true;\r\n callback.apply(this, args);\r\n delete this._suppressNavigation\r\n },\r\n _optionChanged: function(args) {\r\n var value = args.value;\r\n var previousValue = args.previousValue;\r\n switch (args.name) {\r\n case \"width\":\r\n this.callBase(args);\r\n this._clearViewWidthCache();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n this.min = void 0;\r\n this.max = void 0;\r\n this._suppressingNavigation(this._updateCurrentDate, [this.option(\"currentDate\")]);\r\n this._refreshViews();\r\n this._renderNavigator();\r\n break;\r\n case \"firstDayOfWeek\":\r\n this._refreshViews();\r\n this._updateButtonsVisibility();\r\n break;\r\n case \"currentDate\":\r\n this.setAria(\"id\", void 0, this._view._getCellByDate(previousValue));\r\n this._updateCurrentDate(value);\r\n break;\r\n case \"zoomLevel\":\r\n this.$element().removeClass(CALENDAR_VIEW_CLASS + \"-\" + previousValue);\r\n this._correctZoomLevel();\r\n this._refreshViews();\r\n this._renderNavigator();\r\n this._updateAriaId();\r\n break;\r\n case \"minZoomLevel\":\r\n case \"maxZoomLevel\":\r\n this._correctZoomLevel();\r\n this._updateButtonsVisibility();\r\n break;\r\n case \"value\":\r\n value = this._convertToDate(value);\r\n previousValue = this._convertToDate(previousValue);\r\n this._updateAriaSelected(value, previousValue);\r\n this.option(\"currentDate\", isDefined(value) ? new Date(value) : new Date);\r\n this._updateViewsValue(value);\r\n this._setSubmitValue(value);\r\n this.callBase(args);\r\n break;\r\n case \"onCellClick\":\r\n this._view.option(\"onCellClick\", value);\r\n break;\r\n case \"onContouredChanged\":\r\n this._onContouredChanged = this._createActionByOption(\"onContouredChanged\");\r\n break;\r\n case \"disabledDates\":\r\n case \"dateSerializationFormat\":\r\n case \"cellTemplate\":\r\n case \"showTodayButton\":\r\n this._invalidate();\r\n break;\r\n case \"skipFocusCheck\":\r\n break;\r\n case \"_todayDate\":\r\n this._refreshViews();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n getContouredDate: function() {\r\n return this._view.option(\"contouredDate\")\r\n }\r\n});\r\nregisterComponent(\"dxCalendar\", Calendar);\r\nexport default Calendar;\r\n","/**\r\n * DevExtreme (esm/ui/calendar.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Calendar from \"./calendar/ui.calendar\";\r\nexport default Calendar;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.strategy.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport Class from \"../../core/class\";\r\nimport dateLocalization from \"../../localization/date\";\r\nvar abstract = Class.abstract;\r\nvar DateBoxStrategy = Class.inherit({\r\n ctor: function(dateBox) {\r\n this.dateBox = dateBox\r\n },\r\n widgetOption: function() {\r\n return this._widget && this._widget.option.apply(this._widget, arguments)\r\n },\r\n _renderWidget: function(element) {\r\n element = element || $(\"
\");\r\n this._widget = this._createWidget(element);\r\n this._widget.$element().appendTo(this._getWidgetContainer())\r\n },\r\n _createWidget: function(element) {\r\n var widgetName = this._getWidgetName();\r\n var widgetOptions = this._getWidgetOptions();\r\n return this.dateBox._createComponent(element, widgetName, widgetOptions)\r\n },\r\n _getWidgetOptions: abstract,\r\n _getWidgetName: abstract,\r\n getDefaultOptions: function() {\r\n return {\r\n mode: \"text\"\r\n }\r\n },\r\n getDisplayFormat: abstract,\r\n supportedKeys: noop,\r\n getKeyboardListener: noop,\r\n customizeButtons: noop,\r\n getParsedText: function(text, format) {\r\n var value = dateLocalization.parse(text, format);\r\n return value ? value : dateLocalization.parse(text)\r\n },\r\n renderInputMinMax: noop,\r\n renderOpenedState: function() {\r\n this._updateValue()\r\n },\r\n popupConfig: abstract,\r\n _dimensionChanged: function() {\r\n var _this$_getPopup;\r\n null === (_this$_getPopup = this._getPopup()) || void 0 === _this$_getPopup ? void 0 : _this$_getPopup.repaint()\r\n },\r\n renderPopupContent: function() {\r\n var popup = this._getPopup();\r\n this._renderWidget();\r\n var $popupContent = popup.$content().parent();\r\n eventsEngine.off($popupContent, \"mousedown\");\r\n eventsEngine.on($popupContent, \"mousedown\", this._preventFocusOnPopup.bind(this))\r\n },\r\n getFirstPopupElement: noop,\r\n getLastPopupElement: noop,\r\n _preventFocusOnPopup: function(e) {\r\n e.preventDefault()\r\n },\r\n _getWidgetContainer: function() {\r\n return this._getPopup().$content()\r\n },\r\n _getPopup: function() {\r\n return this.dateBox._popup\r\n },\r\n popupShowingHandler: noop,\r\n popupHiddenHandler: noop,\r\n _updateValue: function() {\r\n this._widget && this._widget.option(\"value\", this.dateBoxValue())\r\n },\r\n useCurrentDateByDefault: noop,\r\n getDefaultDate: function() {\r\n return new Date\r\n },\r\n textChangedHandler: noop,\r\n renderValue: function() {\r\n if (this.dateBox.option(\"opened\")) {\r\n this._updateValue()\r\n }\r\n },\r\n getValue: function() {\r\n return this._widget.option(\"value\")\r\n },\r\n isAdaptivityChanged: function() {\r\n return false\r\n },\r\n dispose: function() {\r\n var popup = this._getPopup();\r\n if (popup) {\r\n popup.$content().empty()\r\n }\r\n },\r\n dateBoxValue: function() {\r\n if (arguments.length) {\r\n return this.dateBox.dateValue.apply(this.dateBox, arguments)\r\n } else {\r\n return this.dateBox.dateOption.apply(this.dateBox, [\"value\"])\r\n }\r\n }\r\n});\r\nexport default DateBoxStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.strategy.calendar.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Calendar from \"../calendar\";\r\nimport DateBoxStrategy from \"./ui.date_box.strategy\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport {\r\n splitPair\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isFunction,\r\n isEmptyObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport messageLocalization from \"../../localization/message\";\r\nvar CalendarStrategy = DateBoxStrategy.inherit({\r\n NAME: \"Calendar\",\r\n supportedKeys: function() {\r\n var homeEndHandler = function(e) {\r\n if (this.option(\"opened\")) {\r\n e.preventDefault();\r\n return true\r\n }\r\n return false\r\n };\r\n return {\r\n rightArrow: function() {\r\n if (this.option(\"opened\")) {\r\n return true\r\n }\r\n },\r\n leftArrow: function() {\r\n if (this.option(\"opened\")) {\r\n return true\r\n }\r\n },\r\n enter: function(e) {\r\n if (this.dateBox.option(\"opened\")) {\r\n e.preventDefault();\r\n if (this._widget.option(\"zoomLevel\") === this._widget.option(\"maxZoomLevel\")) {\r\n var viewValue = this._getContouredValue();\r\n var lastActionElement = this._lastActionElement;\r\n var shouldCloseDropDown = this._closeDropDownByEnter();\r\n if (shouldCloseDropDown && viewValue && \"calendar\" === lastActionElement) {\r\n this.dateBoxValue(viewValue, e)\r\n }\r\n shouldCloseDropDown && this.dateBox.close();\r\n this.dateBox._valueChangeEventHandler(e);\r\n return !shouldCloseDropDown\r\n } else {\r\n return true\r\n }\r\n } else {\r\n this.dateBox._valueChangeEventHandler(e)\r\n }\r\n }.bind(this),\r\n home: homeEndHandler,\r\n end: homeEndHandler\r\n }\r\n },\r\n getDisplayFormat: function(displayFormat) {\r\n return displayFormat || \"shortdate\"\r\n },\r\n _closeDropDownByEnter: () => true,\r\n _getWidgetName: function() {\r\n return Calendar\r\n },\r\n _getContouredValue: function() {\r\n return this._widget._view.option(\"contouredDate\")\r\n },\r\n getKeyboardListener() {\r\n return this._widget\r\n },\r\n _getWidgetOptions: function() {\r\n var disabledDates = this.dateBox.option(\"disabledDates\");\r\n return extend(this.dateBox.option(\"calendarOptions\"), {\r\n value: this.dateBoxValue() || null,\r\n dateSerializationFormat: null,\r\n min: this.dateBox.dateOption(\"min\"),\r\n max: this.dateBox.dateOption(\"max\"),\r\n onValueChanged: this._valueChangedHandler.bind(this),\r\n onCellClick: this._cellClickHandler.bind(this),\r\n tabIndex: null,\r\n disabledDates: isFunction(disabledDates) ? this._injectComponent(disabledDates.bind(this.dateBox)) : disabledDates,\r\n onContouredChanged: this._refreshActiveDescendant.bind(this),\r\n skipFocusCheck: true\r\n })\r\n },\r\n _injectComponent: function(func) {\r\n var that = this;\r\n return function(params) {\r\n extend(params, {\r\n component: that.dateBox\r\n });\r\n return func(params)\r\n }\r\n },\r\n _refreshActiveDescendant: function(e) {\r\n this._lastActionElement = \"calendar\";\r\n this.dateBox.setAria(\"activedescendant\", e.actionValue)\r\n },\r\n popupConfig: function(_popupConfig) {\r\n var toolbarItems = _popupConfig.toolbarItems;\r\n var buttonsLocation = this.dateBox.option(\"buttonsLocation\");\r\n var position = [];\r\n if (\"default\" !== buttonsLocation) {\r\n position = splitPair(buttonsLocation)\r\n } else {\r\n position = [\"bottom\", \"center\"]\r\n }\r\n if (\"useButtons\" === this.dateBox.option(\"applyValueMode\") && this._isCalendarVisible()) {\r\n toolbarItems.unshift({\r\n widget: \"dxButton\",\r\n toolbar: position[0],\r\n location: \"after\" === position[1] ? \"before\" : position[1],\r\n options: {\r\n onInitialized: function(e) {\r\n e.component.registerKeyHandler(\"escape\", this._escapeHandler.bind(this))\r\n }.bind(this),\r\n onClick: args => {\r\n this._widget._toTodayView(args)\r\n },\r\n text: messageLocalization.format(\"dxCalendar-todayButtonText\"),\r\n type: \"today\"\r\n }\r\n })\r\n }\r\n return extend(true, _popupConfig, {\r\n toolbarItems: toolbarItems,\r\n position: {\r\n collision: \"flipfit flip\"\r\n },\r\n width: \"auto\"\r\n })\r\n },\r\n _isCalendarVisible: function() {\r\n return isEmptyObject(this.dateBox.option(\"calendarOptions\")) || false !== this.dateBox.option(\"calendarOptions.visible\")\r\n },\r\n _escapeHandler: function() {\r\n this.dateBox.close();\r\n this.dateBox.focus()\r\n },\r\n _valueChangedHandler: function(e) {\r\n var value = e.value;\r\n var prevValue = e.previousValue;\r\n if (dateUtils.sameDate(value, prevValue) && dateUtils.sameHoursAndMinutes(value, prevValue)) {\r\n return\r\n }\r\n if (\"instantly\" === this.dateBox.option(\"applyValueMode\")) {\r\n this.dateBoxValue(this.getValue(), e.event)\r\n }\r\n },\r\n _updateValue: function() {\r\n if (!this._widget) {\r\n return\r\n }\r\n this._widget.option(\"value\", this.dateBoxValue())\r\n },\r\n textChangedHandler: function() {\r\n this._lastActionElement = \"input\";\r\n if (this.dateBox.option(\"opened\") && this._widget) {\r\n this._updateValue(true)\r\n }\r\n },\r\n _cellClickHandler: function(e) {\r\n var dateBox = this.dateBox;\r\n if (\"instantly\" === dateBox.option(\"applyValueMode\")) {\r\n dateBox.option(\"opened\", false);\r\n this.dateBoxValue(this.getValue(), e.event)\r\n }\r\n }\r\n});\r\nexport default CalendarStrategy;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/scroll_direction.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n DIRECTION_VERTICAL,\r\n DIRECTION_HORIZONTAL,\r\n DIRECTION_BOTH\r\n} from \"../common/consts\";\r\nexport class ScrollDirection {\r\n constructor(direction) {\r\n this.DIRECTION_HORIZONTAL = \"horizontal\";\r\n this.DIRECTION_VERTICAL = \"vertical\";\r\n this.DIRECTION_BOTH = \"both\";\r\n this.direction = null !== direction && void 0 !== direction ? direction : DIRECTION_VERTICAL\r\n }\r\n get isHorizontal() {\r\n return this.direction === DIRECTION_HORIZONTAL || this.direction === DIRECTION_BOTH\r\n }\r\n get isVertical() {\r\n return this.direction === DIRECTION_VERTICAL || this.direction === DIRECTION_BOTH\r\n }\r\n get isBoth() {\r\n return this.direction === DIRECTION_BOTH\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/convert_location.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined,\r\n isPlainObject\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n ensureDefined\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n ScrollDirection\r\n} from \"./scroll_direction\";\r\nexport function convertToLocation(location, direction) {\r\n if (isPlainObject(location)) {\r\n var left = ensureDefined(location.left, location.x);\r\n var top = ensureDefined(location.top, location.y);\r\n return {\r\n left: isDefined(left) ? left : void 0,\r\n top: isDefined(top) ? top : void 0\r\n }\r\n }\r\n var {\r\n isHorizontal: isHorizontal,\r\n isVertical: isVertical\r\n } = new ScrollDirection(direction);\r\n return {\r\n left: isHorizontal && isDefined(location) ? location : void 0,\r\n top: isVertical && isDefined(location) ? location : void 0\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_view_roller.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport Scrollable from \"../scroll_view/ui.scrollable.old\";\r\nimport devices from \"../../core/devices\";\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n resetPosition\r\n} from \"../../animation/translator\";\r\nimport {\r\n convertToLocation\r\n} from \"../../renovation/ui/scroll_view/utils/convert_location\";\r\nvar DATEVIEW_ROLLER_CLASS = \"dx-dateviewroller\";\r\nvar DATEVIEW_ROLLER_ACTIVE_CLASS = \"dx-state-active\";\r\nvar DATEVIEW_ROLLER_CURRENT_CLASS = \"dx-dateviewroller-current\";\r\nvar DATEVIEW_ROLLER_ITEM_CLASS = \"dx-dateview-item\";\r\nvar DATEVIEW_ROLLER_ITEM_SELECTED_CLASS = \"dx-dateview-item-selected\";\r\nvar DATEVIEW_ROLLER_ITEM_SELECTED_FRAME_CLASS = \"dx-dateview-item-selected-frame\";\r\nvar DATEVIEW_ROLLER_ITEM_SELECTED_BORDER_CLASS = \"dx-dateview-item-selected-border\";\r\nclass DateViewRoller extends Scrollable {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n showScrollbar: \"never\",\r\n useNative: false,\r\n selectedIndex: 0,\r\n bounceEnabled: false,\r\n items: [],\r\n showOnClick: false,\r\n onClick: null,\r\n onSelectedIndexChanged: null,\r\n scrollByContent: true\r\n })\r\n }\r\n _init() {\r\n super._init();\r\n this.option(\"onVisibilityChange\", this._visibilityChangedHandler.bind(this));\r\n this.option(\"onEnd\", this._endActionHandler.bind(this))\r\n }\r\n _render() {\r\n super._render();\r\n this._renderSelectedItemFrame();\r\n this.$element().addClass(DATEVIEW_ROLLER_CLASS);\r\n this._renderContainerClick();\r\n this._renderItems();\r\n this._renderSelectedValue();\r\n this._renderItemsClick();\r\n this._renderWheelEvent();\r\n this._renderSelectedIndexChanged()\r\n }\r\n _renderSelectedIndexChanged() {\r\n this._selectedIndexChanged = this._createActionByOption(\"onSelectedIndexChanged\")\r\n }\r\n _renderWheelEvent() {\r\n eventsEngine.on($(this.container()), \"dxmousewheel\", e => {\r\n this._isWheelScrolled = true\r\n })\r\n }\r\n _renderContainerClick() {\r\n if (!this.option(\"showOnClick\")) {\r\n return\r\n }\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n var clickAction = this._createActionByOption(\"onClick\");\r\n eventsEngine.off($(this.container()), eventName);\r\n eventsEngine.on($(this.container()), eventName, (function(e) {\r\n clickAction({\r\n event: e\r\n })\r\n }))\r\n }\r\n _renderItems() {\r\n var items = this.option(\"items\") || [];\r\n var $items = $();\r\n $(this.content()).empty();\r\n items.forEach((function(item) {\r\n $items = $items.add($(\"
\").addClass(DATEVIEW_ROLLER_ITEM_CLASS).append(item))\r\n }));\r\n $(this.content()).append($items);\r\n this._$items = $items;\r\n this.update()\r\n }\r\n _renderSelectedItemFrame() {\r\n $(\"
\").addClass(DATEVIEW_ROLLER_ITEM_SELECTED_FRAME_CLASS).append($(\"
\").addClass(DATEVIEW_ROLLER_ITEM_SELECTED_BORDER_CLASS)).appendTo($(this.container()))\r\n }\r\n _renderSelectedValue(selectedIndex) {\r\n var index = this._fitIndex(null !== selectedIndex && void 0 !== selectedIndex ? selectedIndex : this.option(\"selectedIndex\"));\r\n this._moveTo({\r\n top: this._getItemPosition(index)\r\n });\r\n this._renderActiveStateItem()\r\n }\r\n _fitIndex(index) {\r\n var items = this.option(\"items\") || [];\r\n var itemCount = items.length;\r\n if (index >= itemCount) {\r\n return itemCount - 1\r\n }\r\n if (index < 0) {\r\n return 0\r\n }\r\n return index\r\n }\r\n _getItemPosition(index) {\r\n return Math.round(this._itemHeight() * index)\r\n }\r\n _renderItemsClick() {\r\n var itemSelector = this._getItemSelector();\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n eventsEngine.off(this.$element(), eventName, itemSelector);\r\n eventsEngine.on(this.$element(), eventName, itemSelector, this._itemClickHandler.bind(this))\r\n }\r\n _getItemSelector() {\r\n return \".\" + DATEVIEW_ROLLER_ITEM_CLASS\r\n }\r\n _itemClickHandler(e) {\r\n this.option(\"selectedIndex\", this._itemElementIndex(e.currentTarget))\r\n }\r\n _itemElementIndex(itemElement) {\r\n return this._itemElements().index(itemElement)\r\n }\r\n _itemElements() {\r\n return this.$element().find(this._getItemSelector())\r\n }\r\n _renderActiveStateItem() {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n each(this._$items, (function(index) {\r\n $(this).toggleClass(DATEVIEW_ROLLER_ITEM_SELECTED_CLASS, selectedIndex === index)\r\n }))\r\n }\r\n _shouldScrollToNeighborItem() {\r\n return \"desktop\" === devices.real().deviceType && this._isWheelScrolled\r\n }\r\n _moveTo(targetLocation) {\r\n var {\r\n top: top,\r\n left: left\r\n } = convertToLocation(targetLocation);\r\n var location = this.scrollOffset();\r\n var delta = {\r\n x: location.left - left,\r\n y: location.top - top\r\n };\r\n if (this._isVisible() && (delta.x || delta.y)) {\r\n this._prepareDirections(true);\r\n if (this._animation && !this._shouldScrollToNeighborItem()) {\r\n var that = this;\r\n fx.stop($(this.content()));\r\n fx.animate($(this.content()), {\r\n duration: 200,\r\n type: \"slide\",\r\n to: {\r\n top: Math.floor(delta.y)\r\n },\r\n complete() {\r\n resetPosition($(that.content()));\r\n that.handleMove({\r\n delta: delta\r\n })\r\n }\r\n });\r\n delete this._animation\r\n } else {\r\n this.handleMove({\r\n delta: delta\r\n })\r\n }\r\n }\r\n }\r\n _validate(e) {\r\n return this._moveIsAllowed(e)\r\n }\r\n _fitSelectedIndexInRange(index) {\r\n var itemsCount = this.option(\"items\").length;\r\n return Math.max(Math.min(index, itemsCount - 1), 0)\r\n }\r\n _isInNullNeighborhood(x) {\r\n return -.1 <= x && x <= .1\r\n }\r\n _getSelectedIndexAfterScroll(currentSelectedIndex) {\r\n var locationTop = this.scrollOffset().top;\r\n var currentSelectedIndexPosition = currentSelectedIndex * this._itemHeight();\r\n var dy = locationTop - currentSelectedIndexPosition;\r\n if (this._isInNullNeighborhood(dy)) {\r\n return currentSelectedIndex\r\n }\r\n var direction = dy > 0 ? 1 : -1;\r\n var newSelectedIndex = this._fitSelectedIndexInRange(currentSelectedIndex + direction);\r\n return newSelectedIndex\r\n }\r\n _getNewSelectedIndex(currentSelectedIndex) {\r\n if (this._shouldScrollToNeighborItem()) {\r\n return this._getSelectedIndexAfterScroll(currentSelectedIndex)\r\n }\r\n this._animation = true;\r\n var ratio = this.scrollOffset().top / this._itemHeight();\r\n return Math.round(ratio)\r\n }\r\n _endActionHandler() {\r\n var currentSelectedIndex = this.option(\"selectedIndex\");\r\n var newSelectedIndex = this._getNewSelectedIndex(currentSelectedIndex);\r\n if (newSelectedIndex === currentSelectedIndex) {\r\n this._renderSelectedValue(newSelectedIndex)\r\n } else {\r\n this.option(\"selectedIndex\", newSelectedIndex)\r\n }\r\n this._isWheelScrolled = false\r\n }\r\n _itemHeight() {\r\n var $item = this._$items.first();\r\n return getHeight($item)\r\n }\r\n _toggleActive(state) {\r\n this.$element().toggleClass(DATEVIEW_ROLLER_ACTIVE_CLASS, state)\r\n }\r\n _isVisible() {\r\n return $(this.container()).is(\":visible\")\r\n }\r\n _fireSelectedIndexChanged(value, previousValue) {\r\n this._selectedIndexChanged({\r\n value: value,\r\n previousValue: previousValue,\r\n event: void 0\r\n })\r\n }\r\n _visibilityChanged(visible) {\r\n super._visibilityChanged(visible);\r\n this._visibilityChangedHandler(visible)\r\n }\r\n _visibilityChangedHandler(visible) {\r\n if (visible) {\r\n this._visibilityTimer = setTimeout(() => {\r\n this._renderSelectedValue(this.option(\"selectedIndex\"))\r\n })\r\n }\r\n this.toggleActiveState(false)\r\n }\r\n toggleActiveState(state) {\r\n this.$element().toggleClass(DATEVIEW_ROLLER_CURRENT_CLASS, state)\r\n }\r\n _refreshSelectedIndex() {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var fitIndex = this._fitIndex(selectedIndex);\r\n if (fitIndex === selectedIndex) {\r\n this._renderActiveStateItem()\r\n } else {\r\n this.option(\"selectedIndex\", fitIndex)\r\n }\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"selectedIndex\":\r\n this._fireSelectedIndexChanged(args.value, args.previousValue);\r\n this._renderSelectedValue(args.value);\r\n break;\r\n case \"items\":\r\n this._renderItems();\r\n this._refreshSelectedIndex();\r\n break;\r\n case \"onClick\":\r\n case \"showOnClick\":\r\n this._renderContainerClick();\r\n break;\r\n case \"onSelectedIndexChanged\":\r\n this._renderSelectedIndexChanged();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _dispose() {\r\n clearTimeout(this._visibilityTimer);\r\n super._dispose()\r\n }\r\n}\r\nregisterComponent(\"dxDateViewRoller\", DateViewRoller);\r\nexport default DateViewRoller;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_view.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Editor from \"../editor/editor\";\r\nimport DateViewRoller from \"./ui.date_view_roller\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport uiDateUtils from \"./ui.date_utils\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport dateLocalization from \"../../localization/date\";\r\nvar DATEVIEW_CLASS = \"dx-dateview\";\r\nvar DATEVIEW_COMPACT_CLASS = \"dx-dateview-compact\";\r\nvar DATEVIEW_WRAPPER_CLASS = \"dx-dateview-wrapper\";\r\nvar DATEVIEW_ROLLER_CONTAINER_CLASS = \"dx-dateview-rollers\";\r\nvar DATEVIEW_ROLLER_CLASS = \"dx-dateviewroller\";\r\nvar TYPE = {\r\n date: \"date\",\r\n datetime: \"datetime\",\r\n time: \"time\"\r\n};\r\nvar ROLLER_TYPE = {\r\n year: \"year\",\r\n month: \"month\",\r\n day: \"day\",\r\n hours: \"hours\"\r\n};\r\nvar DateView = Editor.inherit({\r\n _valueOption: function() {\r\n var value = this.option(\"value\");\r\n var date = new Date(value);\r\n return !value || isNaN(date) ? this._getDefaultDate() : date\r\n },\r\n _getDefaultDate: function() {\r\n var date = new Date;\r\n if (this.option(\"type\") === TYPE.date) {\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate())\r\n }\r\n return date\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n minDate: uiDateUtils.MIN_DATEVIEW_DEFAULT_DATE,\r\n maxDate: uiDateUtils.MAX_DATEVIEW_DEFAULT_DATE,\r\n type: TYPE.date,\r\n value: new Date,\r\n applyCompactClass: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function(_device) {\r\n return \"desktop\" !== _device.deviceType\r\n },\r\n options: {\r\n applyCompactClass: true\r\n }\r\n }])\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this.$element().addClass(DATEVIEW_CLASS);\r\n this._toggleFormatClasses(this.option(\"type\"));\r\n this._toggleCompactClass()\r\n },\r\n _toggleFormatClasses: function(currentFormat, previousFormat) {\r\n this.$element().addClass(DATEVIEW_CLASS + \"-\" + currentFormat);\r\n previousFormat && this.$element().removeClass(DATEVIEW_CLASS + \"-\" + previousFormat)\r\n },\r\n _toggleCompactClass: function() {\r\n this.$element().toggleClass(DATEVIEW_COMPACT_CLASS, this.option(\"applyCompactClass\"))\r\n },\r\n _wrapper: function() {\r\n return this._$wrapper\r\n },\r\n _renderContentImpl: function() {\r\n this._$wrapper = $(\"
\").addClass(DATEVIEW_WRAPPER_CLASS);\r\n this._renderRollers();\r\n this._$wrapper.appendTo(this.$element())\r\n },\r\n _renderRollers: function() {\r\n if (!this._$rollersContainer) {\r\n this._$rollersContainer = $(\"
\").addClass(DATEVIEW_ROLLER_CONTAINER_CLASS)\r\n }\r\n this._$rollersContainer.empty();\r\n this._createRollerConfigs();\r\n this._rollers = {};\r\n var that = this;\r\n each(that._rollerConfigs, (function(name) {\r\n var $roller = $(\"
\").appendTo(that._$rollersContainer).addClass(DATEVIEW_ROLLER_CLASS + \"-\" + that._rollerConfigs[name].type);\r\n that._rollers[that._rollerConfigs[name].type] = that._createComponent($roller, DateViewRoller, {\r\n items: that._rollerConfigs[name].displayItems,\r\n selectedIndex: that._rollerConfigs[name].selectedIndex,\r\n showScrollbar: \"never\",\r\n scrollByContent: true,\r\n onStart: function(e) {\r\n var roller = e.component;\r\n roller._toggleActive(true);\r\n that._setActiveRoller(that._rollerConfigs[name], roller.option(\"selectedIndex\"))\r\n },\r\n onEnd: function(e) {\r\n var roller = e.component;\r\n roller._toggleActive(false)\r\n },\r\n onClick: function(e) {\r\n var roller = e.component;\r\n roller._toggleActive(true);\r\n that._setActiveRoller(that._rollerConfigs[name], roller.option(\"selectedIndex\"));\r\n that._setRollerState(that._rollerConfigs[name], roller.option(\"selectedIndex\"));\r\n roller._toggleActive(false)\r\n },\r\n onSelectedIndexChanged: function(e) {\r\n var roller = e.component;\r\n that._setRollerState(that._rollerConfigs[name], roller.option(\"selectedIndex\"))\r\n }\r\n })\r\n }));\r\n that._$rollersContainer.appendTo(that._wrapper())\r\n },\r\n _createRollerConfigs: function(type) {\r\n var that = this;\r\n type = type || that.option(\"type\");\r\n that._rollerConfigs = {};\r\n dateLocalization.getFormatParts(uiDateUtils.FORMATS_MAP[type]).forEach((function(partName) {\r\n that._createRollerConfig(partName)\r\n }))\r\n },\r\n _createRollerConfig: function(componentName) {\r\n var componentInfo = uiDateUtils.DATE_COMPONENTS_INFO[componentName];\r\n var valueRange = this._calculateRollerConfigValueRange(componentName);\r\n var startValue = valueRange.startValue;\r\n var endValue = valueRange.endValue;\r\n var formatter = componentInfo.formatter;\r\n var curDate = this._getCurrentDate();\r\n var config = {\r\n type: componentName,\r\n setValue: componentInfo.setter,\r\n valueItems: [],\r\n displayItems: [],\r\n getIndex: function(value) {\r\n return value[componentInfo.getter]() - startValue\r\n }\r\n };\r\n for (var i = startValue; i <= endValue; i++) {\r\n config.valueItems.push(i);\r\n config.displayItems.push(formatter(i, curDate))\r\n }\r\n config.selectedIndex = config.getIndex(curDate);\r\n this._rollerConfigs[componentName] = config\r\n },\r\n _setActiveRoller: function(currentRoller) {\r\n var activeRoller = currentRoller && this._rollers[currentRoller.type];\r\n each(this._rollers, (function() {\r\n this.toggleActiveState(this === activeRoller)\r\n }))\r\n },\r\n _updateRollersPosition: function() {\r\n var that = this;\r\n each(this._rollers, (function(type) {\r\n var correctIndex = that._rollerConfigs[type].getIndex(that._getCurrentDate());\r\n this.option(\"selectedIndex\", correctIndex)\r\n }))\r\n },\r\n _setRollerState: function(roller, selectedIndex) {\r\n if (selectedIndex !== roller.selectedIndex) {\r\n var rollerValue = roller.valueItems[selectedIndex];\r\n var setValue = roller.setValue;\r\n var currentValue = new Date(this._getCurrentDate());\r\n var currentDate = currentValue.getDate();\r\n var minDate = this.option(\"minDate\");\r\n var maxDate = this.option(\"maxDate\");\r\n if (roller.type === ROLLER_TYPE.month) {\r\n currentDate = Math.min(currentDate, uiDateUtils.getMaxMonthDay(currentValue.getFullYear(), rollerValue))\r\n } else if (roller.type === ROLLER_TYPE.year) {\r\n currentDate = Math.min(currentDate, uiDateUtils.getMaxMonthDay(rollerValue, currentValue.getMonth()))\r\n }\r\n currentValue.setDate(currentDate);\r\n currentValue[setValue](rollerValue);\r\n var normalizedDate = dateUtils.normalizeDate(currentValue, minDate, maxDate);\r\n currentValue = uiDateUtils.mergeDates(normalizedDate, currentValue, \"time\");\r\n currentValue = dateUtils.normalizeDate(currentValue, minDate, maxDate);\r\n this.option(\"value\", currentValue);\r\n roller.selectedIndex = selectedIndex\r\n }\r\n if (roller.type === ROLLER_TYPE.year) {\r\n this._refreshRollers()\r\n }\r\n if (roller.type === ROLLER_TYPE.month) {\r\n this._refreshRoller(ROLLER_TYPE.day);\r\n this._refreshRoller(ROLLER_TYPE.hours)\r\n }\r\n },\r\n _refreshRoller: function(rollerType) {\r\n var roller = this._rollers[rollerType];\r\n if (roller) {\r\n this._createRollerConfig(rollerType);\r\n var rollerConfig = this._rollerConfigs[rollerType];\r\n if (rollerType === ROLLER_TYPE.day || rollerConfig.displayItems.toString() !== roller.option(\"items\").toString()) {\r\n roller.option({\r\n items: rollerConfig.displayItems,\r\n selectedIndex: rollerConfig.selectedIndex\r\n })\r\n }\r\n }\r\n },\r\n _getCurrentDate: function() {\r\n var curDate = this._valueOption();\r\n var minDate = this.option(\"minDate\");\r\n var maxDate = this.option(\"maxDate\");\r\n return dateUtils.normalizeDate(curDate, minDate, maxDate)\r\n },\r\n _calculateRollerConfigValueRange: function(componentName) {\r\n var curDate = this._getCurrentDate();\r\n var minDate = this.option(\"minDate\");\r\n var maxDate = this.option(\"maxDate\");\r\n var minYear = dateUtils.sameYear(curDate, minDate);\r\n var minMonth = minYear && curDate.getMonth() === minDate.getMonth();\r\n var maxYear = dateUtils.sameYear(curDate, maxDate);\r\n var maxMonth = maxYear && curDate.getMonth() === maxDate.getMonth();\r\n var minHour = minMonth && curDate.getDate() === minDate.getDate();\r\n var maxHour = maxMonth && curDate.getDate() === maxDate.getDate();\r\n var componentInfo = uiDateUtils.DATE_COMPONENTS_INFO[componentName];\r\n var startValue = componentInfo.startValue;\r\n var endValue = componentInfo.endValue;\r\n if (componentName === ROLLER_TYPE.year) {\r\n startValue = minDate.getFullYear();\r\n endValue = maxDate.getFullYear()\r\n }\r\n if (componentName === ROLLER_TYPE.month) {\r\n if (minYear) {\r\n startValue = minDate.getMonth()\r\n }\r\n if (maxYear) {\r\n endValue = maxDate.getMonth()\r\n }\r\n }\r\n if (componentName === ROLLER_TYPE.day) {\r\n endValue = uiDateUtils.getMaxMonthDay(curDate.getFullYear(), curDate.getMonth());\r\n if (minYear && minMonth) {\r\n startValue = minDate.getDate()\r\n }\r\n if (maxYear && maxMonth) {\r\n endValue = maxDate.getDate()\r\n }\r\n }\r\n if (componentName === ROLLER_TYPE.hours) {\r\n startValue = minHour ? minDate.getHours() : startValue;\r\n endValue = maxHour ? maxDate.getHours() : endValue\r\n }\r\n return {\r\n startValue: startValue,\r\n endValue: endValue\r\n }\r\n },\r\n _refreshRollers: function() {\r\n this._refreshRoller(ROLLER_TYPE.month);\r\n this._refreshRoller(ROLLER_TYPE.day);\r\n this._refreshRoller(ROLLER_TYPE.hours)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"minDate\":\r\n case \"maxDate\":\r\n case \"type\":\r\n this._renderRollers();\r\n this._toggleFormatClasses(args.value, args.previousValue);\r\n break;\r\n case \"visible\":\r\n this.callBase(args);\r\n if (args.value) {\r\n this._renderRollers()\r\n }\r\n break;\r\n case \"value\":\r\n this.option(\"value\", this._valueOption());\r\n this._refreshRollers();\r\n this._updateRollersPosition();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n delete this._$rollersContainer\r\n }\r\n});\r\nregisterComponent(\"dxDateView\", DateView);\r\nexport default DateView;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.strategy.date_view.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport DateView from \"./ui.date_view\";\r\nimport DateBoxStrategy from \"./ui.date_box.strategy\";\r\nimport {\r\n inputType\r\n} from \"../../core/utils/support\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport dateUtils from \"./ui.date_utils\";\r\nimport messageLocalization from \"../../localization/message\";\r\nvar DateViewStrategy = DateBoxStrategy.inherit({\r\n NAME: \"DateView\",\r\n getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n openOnFieldClick: true,\r\n applyButtonText: messageLocalization.format(\"OK\"),\r\n \"dropDownOptions.showTitle\": true\r\n })\r\n },\r\n getDisplayFormat: function(displayFormat) {\r\n return displayFormat || dateUtils.FORMATS_MAP[this.dateBox.option(\"type\")]\r\n },\r\n popupConfig: function(config) {\r\n return {\r\n toolbarItems: this.dateBox._popupToolbarItemsConfig(),\r\n onInitialized: config.onInitialized,\r\n defaultOptionsRules: [{\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n width: 333,\r\n height: 331\r\n }\r\n }, {\r\n device: function(_device) {\r\n var platform = _device.platform;\r\n return \"generic\" === platform || \"ios\" === platform\r\n },\r\n options: {\r\n width: \"auto\",\r\n height: \"auto\"\r\n }\r\n }, {\r\n device: function(_device2) {\r\n var platform = _device2.platform;\r\n var phone = _device2.phone;\r\n return \"generic\" === platform && phone\r\n },\r\n options: {\r\n width: 333,\r\n maxWidth: \"100%\",\r\n maxHeight: \"100%\",\r\n height: \"auto\",\r\n position: {\r\n collision: \"flipfit flip\"\r\n }\r\n }\r\n }, {\r\n device: {\r\n platform: \"ios\",\r\n phone: true\r\n },\r\n options: {\r\n width: \"100%\",\r\n position: {\r\n my: \"bottom\",\r\n at: \"bottom\",\r\n of: window\r\n }\r\n }\r\n }]\r\n }\r\n },\r\n _renderWidget: function() {\r\n if (inputType(this.dateBox.option(\"mode\")) && this.dateBox._isNativeType() || this.dateBox.option(\"readOnly\")) {\r\n if (this._widget) {\r\n this._widget.$element().remove();\r\n this._widget = null\r\n }\r\n return\r\n }\r\n var popup = this._getPopup();\r\n if (this._widget) {\r\n this._widget.option(this._getWidgetOptions())\r\n } else {\r\n var element = $(\"
\").appendTo(popup.$content());\r\n this._widget = this._createWidget(element)\r\n }\r\n this._widget.$element().appendTo(this._getWidgetContainer())\r\n },\r\n _getWidgetName: function() {\r\n return DateView\r\n },\r\n renderOpenedState: function() {\r\n this.callBase();\r\n if (this._widget) {\r\n this._widget.option(\"value\", this._widget._getCurrentDate())\r\n }\r\n },\r\n _getWidgetOptions: function() {\r\n return {\r\n value: this.dateBoxValue() || new Date,\r\n type: this.dateBox.option(\"type\"),\r\n minDate: this.dateBox.dateOption(\"min\") || new Date(1900, 0, 1),\r\n maxDate: this.dateBox.dateOption(\"max\") || new Date(Date.now() + 50 * dateUtils.ONE_YEAR),\r\n onDisposing: function() {\r\n this._widget = null\r\n }.bind(this)\r\n }\r\n }\r\n});\r\nexport default DateViewStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.strategy.native.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport DateBoxStrategy from \"./ui.date_box.strategy\";\r\nimport {\r\n inputType\r\n} from \"../../core/utils/support\";\r\nimport dateUtils from \"./ui.date_utils\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport devices from \"../../core/devices\";\r\nvar NativeStrategy = DateBoxStrategy.inherit({\r\n NAME: \"Native\",\r\n popupConfig: function(_popupConfig) {\r\n return extend({}, _popupConfig, {\r\n width: \"auto\"\r\n })\r\n },\r\n getParsedText: function(text) {\r\n if (!text) {\r\n return null\r\n }\r\n if (\"datetime\" === this.dateBox.option(\"type\")) {\r\n return new Date(text.replace(/-/g, \"/\").replace(\"T\", \" \").split(\".\")[0])\r\n }\r\n return dateUtils.fromStandardDateFormat(text)\r\n },\r\n renderPopupContent: noop,\r\n _getWidgetName: noop,\r\n _getWidgetOptions: noop,\r\n _getDateBoxType: function() {\r\n var type = this.dateBox.option(\"type\");\r\n if (!dateUtils.SUPPORTED_FORMATS.includes(type)) {\r\n type = \"date\"\r\n } else if (\"datetime\" === type && !inputType(type)) {\r\n type = \"datetime-local\"\r\n }\r\n return type\r\n },\r\n customizeButtons: function() {\r\n var dropDownButton = this.dateBox.getButton(\"dropDown\");\r\n if (devices.real().android && dropDownButton) {\r\n dropDownButton.on(\"click\", function() {\r\n this.dateBox._input().get(0).click()\r\n }.bind(this))\r\n }\r\n },\r\n getDefaultOptions: function() {\r\n return {\r\n mode: this._getDateBoxType()\r\n }\r\n },\r\n getDisplayFormat: function(displayFormat) {\r\n var type = this._getDateBoxType();\r\n return displayFormat || dateUtils.FORMATS_MAP[type]\r\n },\r\n renderInputMinMax: function($input) {\r\n $input.attr({\r\n min: dateSerialization.serializeDate(this.dateBox.dateOption(\"min\"), \"yyyy-MM-dd\"),\r\n max: dateSerialization.serializeDate(this.dateBox.dateOption(\"max\"), \"yyyy-MM-dd\")\r\n })\r\n }\r\n});\r\nexport default NativeStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/box.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n noop\r\n} from \"../core/utils/common\";\r\nimport {\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n dasherize\r\n} from \"../core/utils/inflector\";\r\nimport {\r\n isDefined\r\n} from \"../core/utils/type\";\r\nimport {\r\n normalizeStyleProp,\r\n styleProp,\r\n stylePropPrefix\r\n} from \"../core/utils/style\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n getWidth,\r\n setWidth,\r\n getHeight,\r\n setHeight\r\n} from \"../core/utils/size\";\r\nimport CollectionWidgetItem from \"./collection/item\";\r\nimport CollectionWidget from \"./collection/ui.collection_widget.edit\";\r\nvar BOX_CLASS = \"dx-box\";\r\nvar BOX_SELECTOR = \".dx-box\";\r\nvar BOX_ITEM_CLASS = \"dx-box-item\";\r\nvar BOX_ITEM_DATA_KEY = \"dxBoxItemData\";\r\nvar MINSIZE_MAP = {\r\n row: \"minWidth\",\r\n col: \"minHeight\"\r\n};\r\nvar MAXSIZE_MAP = {\r\n row: \"maxWidth\",\r\n col: \"maxHeight\"\r\n};\r\nvar SHRINK = 1;\r\nvar FLEX_JUSTIFY_CONTENT_MAP = {\r\n start: \"flex-start\",\r\n end: \"flex-end\",\r\n center: \"center\",\r\n \"space-between\": \"space-between\",\r\n \"space-around\": \"space-around\"\r\n};\r\nvar FLEX_ALIGN_ITEMS_MAP = {\r\n start: \"flex-start\",\r\n end: \"flex-end\",\r\n center: \"center\",\r\n stretch: \"stretch\"\r\n};\r\nvar FLEX_DIRECTION_MAP = {\r\n row: \"row\",\r\n col: \"column\"\r\n};\r\nvar setFlexProp = (element, prop, value) => {\r\n value = normalizeStyleProp(prop, value);\r\n element.style[styleProp(prop)] = value;\r\n if (!hasWindow()) {\r\n if (\"\" === value || !isDefined(value)) {\r\n return\r\n }\r\n var cssName = dasherize(prop);\r\n var styleExpr = cssName + \": \" + value + \";\";\r\n if (!element.attributes.style) {\r\n element.setAttribute(\"style\", styleExpr)\r\n } else if (element.attributes.style.value.indexOf(styleExpr) < 0) {\r\n element.attributes.style.value += \" \" + styleExpr\r\n }\r\n }\r\n};\r\nvar BOX_EVENTNAMESPACE = \"dxBox\";\r\nvar UPDATE_EVENT = \"dxupdate.\" + BOX_EVENTNAMESPACE;\r\nvar FALLBACK_BOX_ITEM = \"dx-box-fallback-item\";\r\nvar FALLBACK_WRAP_MAP = {\r\n row: \"nowrap\",\r\n col: \"normal\"\r\n};\r\nvar FALLBACK_MAIN_SIZE_MAP = {\r\n row: {\r\n name: \"width\",\r\n getter: getWidth,\r\n setter: setWidth\r\n },\r\n col: {\r\n name: \"height\",\r\n getter: getHeight,\r\n setter: setHeight\r\n }\r\n};\r\nvar FALLBACK_CROSS_SIZE_MAP = {\r\n row: FALLBACK_MAIN_SIZE_MAP.col,\r\n col: FALLBACK_MAIN_SIZE_MAP.row\r\n};\r\nvar FALLBACK_PRE_MARGIN_MAP = {\r\n row: \"marginLeft\",\r\n col: \"marginTop\"\r\n};\r\nvar FALLBACK_POST_MARGIN_MAP = {\r\n row: \"marginRight\",\r\n col: \"marginBottom\"\r\n};\r\nvar FALLBACK_CROSS_PRE_MARGIN_MAP = {\r\n row: \"marginTop\",\r\n col: \"marginLeft\"\r\n};\r\nvar FALLBACK_CROSS_POST_MARGIN_MAP = {\r\n row: \"marginBottom\",\r\n col: \"marginRight\"\r\n};\r\nvar MARGINS_RTL_FLIP_MAP = {\r\n marginLeft: \"marginRight\",\r\n marginRight: \"marginLeft\"\r\n};\r\nclass BoxItem extends CollectionWidgetItem {\r\n _renderVisible(value, oldValue) {\r\n super._renderVisible(value);\r\n if (isDefined(oldValue)) {\r\n this._options.fireItemStateChangedAction({\r\n name: \"visible\",\r\n state: value,\r\n oldState: oldValue\r\n })\r\n }\r\n }\r\n}\r\nclass FlexLayoutStrategy {\r\n constructor($element, option) {\r\n this._$element = $element;\r\n this._option = option;\r\n this.initSize = noop;\r\n this.update = noop\r\n }\r\n renderBox() {\r\n this._$element.css({\r\n display: stylePropPrefix(\"flexDirection\") + \"flex\"\r\n });\r\n setFlexProp(this._$element.get(0), \"flexDirection\", FLEX_DIRECTION_MAP[this._option(\"direction\")])\r\n }\r\n renderAlign() {\r\n this._$element.css({\r\n justifyContent: this._normalizedAlign()\r\n })\r\n }\r\n _normalizedAlign() {\r\n var align = this._option(\"align\");\r\n return align in FLEX_JUSTIFY_CONTENT_MAP ? FLEX_JUSTIFY_CONTENT_MAP[align] : align\r\n }\r\n renderCrossAlign() {\r\n this._$element.css({\r\n alignItems: this._normalizedCrossAlign()\r\n })\r\n }\r\n _normalizedCrossAlign() {\r\n var crossAlign = this._option(\"crossAlign\");\r\n return crossAlign in FLEX_ALIGN_ITEMS_MAP ? FLEX_ALIGN_ITEMS_MAP[crossAlign] : crossAlign\r\n }\r\n renderItems($items) {\r\n var flexPropPrefix = stylePropPrefix(\"flexDirection\");\r\n var direction = this._option(\"direction\");\r\n each($items, (function() {\r\n var $item = $(this);\r\n var item = $item.data(BOX_ITEM_DATA_KEY);\r\n $item.css({\r\n display: flexPropPrefix + \"flex\"\r\n }).css(MAXSIZE_MAP[direction], item.maxSize || \"none\").css(MINSIZE_MAP[direction], item.minSize || \"0\");\r\n setFlexProp($item.get(0), \"flexBasis\", item.baseSize || 0);\r\n setFlexProp($item.get(0), \"flexGrow\", item.ratio);\r\n setFlexProp($item.get(0), \"flexShrink\", isDefined(item.shrink) ? item.shrink : SHRINK);\r\n $item.children().each((_, itemContent) => {\r\n $(itemContent).css({\r\n width: \"auto\",\r\n height: \"auto\",\r\n display: stylePropPrefix(\"flexDirection\") + \"flex\",\r\n flexBasis: 0\r\n });\r\n setFlexProp(itemContent, \"flexGrow\", 1);\r\n setFlexProp(itemContent, \"flexDirection\", $(itemContent)[0].style.flexDirection || \"column\")\r\n })\r\n }))\r\n }\r\n}\r\nclass FallbackLayoutStrategy {\r\n constructor($element, option) {\r\n this._$element = $element;\r\n this._option = option\r\n }\r\n renderBox() {\r\n this._$element.css({\r\n fontSize: 0,\r\n whiteSpace: FALLBACK_WRAP_MAP[this._option(\"direction\")],\r\n verticalAlign: \"top\"\r\n });\r\n eventsEngine.off(this._$element, UPDATE_EVENT);\r\n eventsEngine.on(this._$element, UPDATE_EVENT, this.update.bind(this))\r\n }\r\n renderAlign() {\r\n var $items = this._$items;\r\n if (!$items) {\r\n return\r\n }\r\n var align = this._option(\"align\");\r\n var totalItemSize = this.totalItemSize;\r\n var direction = this._option(\"direction\");\r\n var boxSize = FALLBACK_MAIN_SIZE_MAP[direction].getter(this._$element);\r\n var freeSpace = boxSize - totalItemSize;\r\n var shift = 0;\r\n this._setItemsMargins($items, direction, 0);\r\n switch (align) {\r\n case \"start\":\r\n break;\r\n case \"end\":\r\n shift = freeSpace;\r\n $items.first().css(this._chooseMarginSide(FALLBACK_PRE_MARGIN_MAP[direction]), shift);\r\n break;\r\n case \"center\":\r\n shift = .5 * freeSpace;\r\n $items.first().css(this._chooseMarginSide(FALLBACK_PRE_MARGIN_MAP[direction]), shift);\r\n $items.last().css(this._chooseMarginSide(FALLBACK_POST_MARGIN_MAP[direction]), shift);\r\n break;\r\n case \"space-between\":\r\n shift = .5 * freeSpace / ($items.length - 1);\r\n this._setItemsMargins($items, direction, shift);\r\n $items.first().css(this._chooseMarginSide(FALLBACK_PRE_MARGIN_MAP[direction]), 0);\r\n $items.last().css(this._chooseMarginSide(FALLBACK_POST_MARGIN_MAP[direction]), 0);\r\n break;\r\n case \"space-around\":\r\n shift = .5 * freeSpace / $items.length;\r\n this._setItemsMargins($items, direction, shift)\r\n }\r\n }\r\n _setItemsMargins($items, direction, shift) {\r\n $items.css(this._chooseMarginSide(FALLBACK_PRE_MARGIN_MAP[direction]), shift).css(this._chooseMarginSide(FALLBACK_POST_MARGIN_MAP[direction]), shift)\r\n }\r\n renderCrossAlign() {\r\n var $items = this._$items;\r\n if (!$items) {\r\n return\r\n }\r\n var crossAlign = this._option(\"crossAlign\");\r\n var direction = this._option(\"direction\");\r\n var size = FALLBACK_CROSS_SIZE_MAP[direction].getter(this._$element);\r\n var that = this;\r\n switch (crossAlign) {\r\n case \"start\":\r\n break;\r\n case \"end\":\r\n each($items, (function() {\r\n var $item = $(this);\r\n var itemSize = FALLBACK_CROSS_SIZE_MAP[direction].getter($item);\r\n var shift = size - itemSize;\r\n $item.css(that._chooseMarginSide(FALLBACK_CROSS_PRE_MARGIN_MAP[direction]), shift)\r\n }));\r\n break;\r\n case \"center\":\r\n each($items, (function() {\r\n var $item = $(this);\r\n var itemSize = FALLBACK_CROSS_SIZE_MAP[direction].getter($item);\r\n var shift = .5 * (size - itemSize);\r\n $item.css(that._chooseMarginSide(FALLBACK_CROSS_PRE_MARGIN_MAP[direction]), shift).css(that._chooseMarginSide(FALLBACK_CROSS_POST_MARGIN_MAP[direction]), shift)\r\n }));\r\n break;\r\n case \"stretch\":\r\n $items.css(that._chooseMarginSide(FALLBACK_CROSS_PRE_MARGIN_MAP[direction]), 0).css(that._chooseMarginSide(FALLBACK_CROSS_POST_MARGIN_MAP[direction]), 0).css(FALLBACK_CROSS_SIZE_MAP[direction].name, \"100%\")\r\n }\r\n }\r\n _chooseMarginSide(value) {\r\n if (!this._option(\"rtlEnabled\")) {\r\n return value\r\n }\r\n return MARGINS_RTL_FLIP_MAP[value] || value\r\n }\r\n renderItems($items) {\r\n this._$items = $items;\r\n var direction = this._option(\"direction\");\r\n var totalRatio = 0;\r\n var totalWeightedShrink = 0;\r\n var totalBaseSize = 0;\r\n each($items, (_, item) => {\r\n var $item = $(item);\r\n $item.css({\r\n display: \"inline-block\",\r\n verticalAlign: \"top\"\r\n });\r\n FALLBACK_MAIN_SIZE_MAP[direction].setter($item, \"auto\");\r\n $item.removeClass(FALLBACK_BOX_ITEM);\r\n var itemData = $item.data(BOX_ITEM_DATA_KEY);\r\n var ratio = itemData.ratio || 0;\r\n var size = this._baseSize($item);\r\n var shrink = isDefined(itemData.shrink) ? itemData.shrink : SHRINK;\r\n totalRatio += ratio;\r\n totalWeightedShrink += shrink * size;\r\n totalBaseSize += size\r\n });\r\n var freeSpaceSize = this._boxSize() - totalBaseSize;\r\n var itemSize = $item => {\r\n var itemData = $item.data(BOX_ITEM_DATA_KEY);\r\n var size = this._baseSize($item);\r\n var factor = freeSpaceSize >= 0 ? itemData.ratio || 0 : (isDefined(itemData.shrink) ? itemData.shrink : SHRINK) * size;\r\n var totalFactor = freeSpaceSize >= 0 ? totalRatio : totalWeightedShrink;\r\n var shift = totalFactor ? Math.round(freeSpaceSize * factor / totalFactor) : 0;\r\n return size + shift\r\n };\r\n var totalItemSize = 0;\r\n each($items, (_, item) => {\r\n var $item = $(item);\r\n var itemData = $(item).data(BOX_ITEM_DATA_KEY);\r\n var size = itemSize($item);\r\n totalItemSize += size;\r\n $item.css(MAXSIZE_MAP[direction], itemData.maxSize || \"none\").css(MINSIZE_MAP[direction], itemData.minSize || \"0\").css(FALLBACK_MAIN_SIZE_MAP[direction].name, size);\r\n $item.addClass(FALLBACK_BOX_ITEM)\r\n });\r\n this.totalItemSize = totalItemSize\r\n }\r\n _baseSize(item) {\r\n var itemData = $(item).data(BOX_ITEM_DATA_KEY);\r\n return null == itemData.baseSize ? 0 : \"auto\" === itemData.baseSize ? this._contentSize(item) : this._parseSize(itemData.baseSize)\r\n }\r\n _contentSize(item) {\r\n return FALLBACK_MAIN_SIZE_MAP[this._option(\"direction\")].getter($(item))\r\n }\r\n _parseSize(size) {\r\n return String(size).match(/.+%$/) ? .01 * parseFloat(size) * this._boxSizeValue : size\r\n }\r\n _boxSize(value) {\r\n if (!arguments.length) {\r\n this._boxSizeValue = this._boxSizeValue || this._totalBaseSize();\r\n return this._boxSizeValue\r\n }\r\n this._boxSizeValue = value\r\n }\r\n _totalBaseSize() {\r\n var result = 0;\r\n each(this._$items, (_, item) => {\r\n result += this._baseSize(item)\r\n });\r\n return result\r\n }\r\n initSize() {\r\n this._boxSize(FALLBACK_MAIN_SIZE_MAP[this._option(\"direction\")].getter(this._$element))\r\n }\r\n update() {\r\n if (!this._$items || this._$element.is(\":hidden\")) {\r\n return\r\n }\r\n this._$items.detach();\r\n this.initSize();\r\n this._$element.append(this._$items);\r\n this.renderItems(this._$items);\r\n this.renderAlign();\r\n this.renderCrossAlign();\r\n var element = this._$element.get(0);\r\n this._$items.find(BOX_SELECTOR).each((function() {\r\n if (element === $(this).parent().closest(BOX_SELECTOR).get(0)) {\r\n eventsEngine.triggerHandler(this, UPDATE_EVENT)\r\n }\r\n }))\r\n }\r\n}\r\nclass Box extends CollectionWidget {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n direction: \"row\",\r\n align: \"start\",\r\n crossAlign: \"stretch\",\r\n activeStateEnabled: false,\r\n focusStateEnabled: false,\r\n onItemStateChanged: void 0,\r\n _layoutStrategy: \"flex\",\r\n _queue: void 0\r\n })\r\n }\r\n _itemClass() {\r\n return BOX_ITEM_CLASS\r\n }\r\n _itemDataKey() {\r\n return BOX_ITEM_DATA_KEY\r\n }\r\n _itemElements() {\r\n return this._itemContainer().children(this._itemSelector())\r\n }\r\n _init() {\r\n super._init();\r\n this.$element().addClass(\"\".concat(BOX_CLASS, \"-\").concat(this.option(\"_layoutStrategy\")));\r\n this._initLayout();\r\n this._initBoxQueue()\r\n }\r\n _initLayout() {\r\n this._layout = \"fallback\" === this.option(\"_layoutStrategy\") ? new FallbackLayoutStrategy(this.$element(), this.option.bind(this)) : new FlexLayoutStrategy(this.$element(), this.option.bind(this))\r\n }\r\n _initBoxQueue() {\r\n this._queue = this.option(\"_queue\") || []\r\n }\r\n _queueIsNotEmpty() {\r\n return this.option(\"_queue\") ? false : !!this._queue.length\r\n }\r\n _pushItemToQueue($item, config) {\r\n this._queue.push({\r\n $item: $item,\r\n config: config\r\n })\r\n }\r\n _shiftItemFromQueue() {\r\n return this._queue.shift()\r\n }\r\n _initMarkup() {\r\n this.$element().addClass(BOX_CLASS);\r\n this._layout.renderBox();\r\n super._initMarkup();\r\n this._renderAlign();\r\n this._renderActions()\r\n }\r\n _renderActions() {\r\n this._onItemStateChanged = this._createActionByOption(\"onItemStateChanged\")\r\n }\r\n _renderAlign() {\r\n this._layout.renderAlign();\r\n this._layout.renderCrossAlign()\r\n }\r\n _renderItems(items) {\r\n this._layout.initSize();\r\n super._renderItems(items);\r\n while (this._queueIsNotEmpty()) {\r\n var item = this._shiftItemFromQueue();\r\n this._createComponent(item.$item, Box, extend({\r\n _layoutStrategy: this.option(\"_layoutStrategy\"),\r\n itemTemplate: this.option(\"itemTemplate\"),\r\n itemHoldTimeout: this.option(\"itemHoldTimeout\"),\r\n onItemHold: this.option(\"onItemHold\"),\r\n onItemClick: this.option(\"onItemClick\"),\r\n onItemContextMenu: this.option(\"onItemContextMenu\"),\r\n onItemRendered: this.option(\"onItemRendered\"),\r\n _queue: this._queue\r\n }, item.config))\r\n }\r\n this._layout.renderItems(this._itemElements());\r\n clearTimeout(this._updateTimer);\r\n this._updateTimer = setTimeout(() => {\r\n if (!this._isUpdated) {\r\n this._layout.update()\r\n }\r\n this._isUpdated = false;\r\n this._updateTimer = null\r\n })\r\n }\r\n _renderItemContent(args) {\r\n var $itemNode = args.itemData && args.itemData.node;\r\n if ($itemNode) {\r\n return this._renderItemContentByNode(args, $itemNode)\r\n }\r\n return super._renderItemContent(args)\r\n }\r\n _postprocessRenderItem(args) {\r\n var boxConfig = args.itemData.box;\r\n if (!boxConfig) {\r\n return\r\n }\r\n this._pushItemToQueue(args.itemContent, boxConfig)\r\n }\r\n _createItemByTemplate(itemTemplate, args) {\r\n if (args.itemData.box) {\r\n return itemTemplate.source ? itemTemplate.source() : $()\r\n }\r\n return super._createItemByTemplate(itemTemplate, args)\r\n }\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this._dimensionChanged()\r\n }\r\n }\r\n _dimensionChanged() {\r\n if (this._updateTimer) {\r\n return\r\n }\r\n this._isUpdated = true;\r\n this._layout.update()\r\n }\r\n _dispose() {\r\n clearTimeout(this._updateTimer);\r\n super._dispose.apply(this, arguments)\r\n }\r\n _itemOptionChanged(item, property, value, oldValue) {\r\n if (\"visible\" === property) {\r\n this._onItemStateChanged({\r\n name: property,\r\n state: value,\r\n oldState: false !== oldValue\r\n })\r\n }\r\n super._itemOptionChanged(item, property, value)\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"_layoutStrategy\":\r\n case \"_queue\":\r\n case \"direction\":\r\n this._invalidate();\r\n break;\r\n case \"align\":\r\n this._layout.renderAlign();\r\n break;\r\n case \"crossAlign\":\r\n this._layout.renderCrossAlign();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _itemOptions() {\r\n var options = super._itemOptions();\r\n options.fireItemStateChangedAction = e => {\r\n this._onItemStateChanged(e)\r\n };\r\n return options\r\n }\r\n repaint() {\r\n this._dimensionChanged()\r\n }\r\n}\r\nBox.ItemClass = BoxItem;\r\nregisterComponent(\"dxBox\", Box);\r\nexport default Box;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.time_view.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Editor from \"../editor/editor\";\r\nimport NumberBox from \"../number_box\";\r\nimport SelectBox from \"../select_box\";\r\nimport Box from \"../box\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport dateUtils from \"./ui.date_utils\";\r\nvar TIMEVIEW_CLASS = \"dx-timeview\";\r\nvar TIMEVIEW_CLOCK_CLASS = \"dx-timeview-clock\";\r\nvar TIMEVIEW_FIELD_CLASS = \"dx-timeview-field\";\r\nvar TIMEVIEW_HOURARROW_CLASS = \"dx-timeview-hourarrow\";\r\nvar TIMEVIEW_TIME_SEPARATOR_CLASS = \"dx-timeview-time-separator\";\r\nvar TIMEVIEW_FORMAT12_CLASS = \"dx-timeview-format12\";\r\nvar TIMEVIEW_FORMAT12_AM = -1;\r\nvar TIMEVIEW_FORMAT12_PM = 1;\r\nvar TIMEVIEW_MINUTEARROW_CLASS = \"dx-timeview-minutearrow\";\r\nvar rotateArrow = function($arrow, angle, offset) {\r\n cssRotate($arrow, angle, offset)\r\n};\r\nvar cssRotate = function($arrow, angle, offset) {\r\n $arrow.css(\"transform\", \"rotate(\" + angle + \"deg) translate(0,\" + offset + \"px)\")\r\n};\r\nvar TimeView = Editor.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n value: new Date(Date.now()),\r\n use24HourFormat: true,\r\n _showClock: true,\r\n _arrowOffset: 5,\r\n stylingMode: void 0\r\n })\r\n },\r\n _getValue: function() {\r\n return this.option(\"value\") || new Date\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(TIMEVIEW_CLASS)\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._renderBox();\r\n this._updateTime()\r\n },\r\n _renderBox: function() {\r\n var $box = $(\"
\").appendTo(this.$element());\r\n var items = [];\r\n if (this.option(\"_showClock\")) {\r\n items.push({\r\n ratio: 1,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: this._renderClock.bind(this)\r\n })\r\n }\r\n items.push({\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: this._renderField.bind(this)\r\n });\r\n this._createComponent($box, Box, {\r\n height: \"100%\",\r\n width: \"100%\",\r\n direction: \"col\",\r\n items: items\r\n })\r\n },\r\n _renderClock: function(_, __, container) {\r\n this._$hourArrow = $(\"
\").addClass(TIMEVIEW_HOURARROW_CLASS);\r\n this._$minuteArrow = $(\"
\").addClass(TIMEVIEW_MINUTEARROW_CLASS);\r\n var $container = $(container);\r\n $container.addClass(TIMEVIEW_CLOCK_CLASS).append(this._$hourArrow).append(this._$minuteArrow);\r\n this.setAria(\"role\", \"presentation\", $container)\r\n },\r\n _updateClock: function() {\r\n var time = this._getValue();\r\n var hourArrowAngle = time.getHours() / 12 * 360 + time.getMinutes() / 60 * 30;\r\n var minuteArrowAngle = time.getMinutes() / 60 * 360;\r\n rotateArrow(this._$hourArrow, hourArrowAngle, this.option(\"_arrowOffset\"));\r\n rotateArrow(this._$minuteArrow, minuteArrowAngle, this.option(\"_arrowOffset\"))\r\n },\r\n _getBoxItems: function(is12HourFormat) {\r\n var items = [{\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: () => this._hourBox.$element()\r\n }, {\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: $(\"
\").addClass(TIMEVIEW_TIME_SEPARATOR_CLASS).text(dateLocalization.getTimeSeparator())\r\n }, {\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: () => this._minuteBox.$element()\r\n }];\r\n if (is12HourFormat) {\r\n items.push({\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: () => this._format12.$element()\r\n })\r\n }\r\n return items\r\n },\r\n _renderField: function() {\r\n var is12HourFormat = !this.option(\"use24HourFormat\");\r\n this._createHourBox(is12HourFormat);\r\n this._createMinuteBox();\r\n if (is12HourFormat) {\r\n this._createFormat12Box()\r\n }\r\n return this._createComponent($(\"
\").addClass(TIMEVIEW_FIELD_CLASS), Box, {\r\n direction: \"row\",\r\n align: \"center\",\r\n crossAlign: \"center\",\r\n items: this._getBoxItems(is12HourFormat)\r\n }).$element()\r\n },\r\n _createHourBox: function(is12HourFormat) {\r\n var editor = this._hourBox = this._createComponent($(\"
\"), NumberBox, extend({\r\n min: -1,\r\n max: is12HourFormat ? 13 : 24,\r\n value: this._getValue().getHours(),\r\n onValueChanged: this._onHourBoxValueChanged.bind(this),\r\n onKeyboardHandled: opts => this._keyboardHandler(opts)\r\n }, this._getNumberBoxConfig()));\r\n editor.setAria(\"label\", \"hours\")\r\n },\r\n _isPM: function() {\r\n return !this.option(\"use24HourFormat\") && 1 === this._format12.option(\"value\")\r\n },\r\n _onHourBoxValueChanged: function(_ref) {\r\n var {\r\n value: value,\r\n component: component\r\n } = _ref;\r\n var currentValue = this._getValue();\r\n var newValue = new Date(currentValue);\r\n var newHours = this._convertMaxHourToMin(value);\r\n component.option(\"value\", newHours);\r\n if (this._isPM()) {\r\n newHours += 12\r\n }\r\n newValue.setHours(newHours);\r\n dateUtils.normalizeTime(newValue);\r\n this.option(\"value\", newValue)\r\n },\r\n _convertMaxHourToMin: function(hours) {\r\n var maxHoursValue = this.option(\"use24HourFormat\") ? 24 : 12;\r\n return (maxHoursValue + hours) % maxHoursValue\r\n },\r\n _createMinuteBox: function() {\r\n var editor = this._minuteBox = this._createComponent($(\"
\"), NumberBox, extend({\r\n min: -1,\r\n max: 60,\r\n value: this._getValue().getMinutes(),\r\n onKeyboardHandled: opts => this._keyboardHandler(opts),\r\n onValueChanged: _ref2 => {\r\n var {\r\n value: value,\r\n component: component\r\n } = _ref2;\r\n var newMinutes = (60 + value) % 60;\r\n component.option(\"value\", newMinutes);\r\n var time = new Date(this._getValue());\r\n time.setMinutes(newMinutes);\r\n dateUtils.normalizeTime(time);\r\n this.option(\"value\", time)\r\n }\r\n }, this._getNumberBoxConfig()));\r\n editor.setAria(\"label\", \"minutes\")\r\n },\r\n _createFormat12Box: function() {\r\n var periodNames = dateLocalization.getPeriodNames();\r\n var editor = this._format12 = this._createComponent($(\"
\").addClass(TIMEVIEW_FORMAT12_CLASS), SelectBox, {\r\n items: [{\r\n value: TIMEVIEW_FORMAT12_AM,\r\n text: periodNames[0]\r\n }, {\r\n value: TIMEVIEW_FORMAT12_PM,\r\n text: periodNames[1]\r\n }],\r\n valueExpr: \"value\",\r\n displayExpr: \"text\",\r\n onKeyboardHandled: opts => this._keyboardHandler(opts),\r\n onValueChanged: _ref3 => {\r\n var {\r\n value: value\r\n } = _ref3;\r\n var hours = this._getValue().getHours();\r\n var time = new Date(this._getValue());\r\n var newHours = (hours + 12 * value) % 24;\r\n time.setHours(newHours);\r\n this.option(\"value\", time)\r\n },\r\n value: this._getValue().getHours() >= 12 ? TIMEVIEW_FORMAT12_PM : TIMEVIEW_FORMAT12_AM,\r\n stylingMode: this.option(\"stylingMode\")\r\n });\r\n editor.setAria(\"label\", \"type\")\r\n },\r\n _refreshFormat12: function() {\r\n if (this.option(\"use24HourFormat\")) {\r\n return\r\n }\r\n var value = this._getValue();\r\n var hours = value.getHours();\r\n var isPM = hours >= 12;\r\n var newValue = isPM ? TIMEVIEW_FORMAT12_PM : TIMEVIEW_FORMAT12_AM;\r\n this._silentEditorValueUpdate(this._format12, newValue)\r\n },\r\n _silentEditorValueUpdate: function(editor, value) {\r\n if (editor) {\r\n editor._suppressValueChangeAction();\r\n editor.option(\"value\", value);\r\n editor._resumeValueChangeAction()\r\n }\r\n },\r\n _getNumberBoxConfig: function() {\r\n return {\r\n showSpinButtons: true,\r\n displayValueFormatter: function(value) {\r\n return (value < 10 ? \"0\" : \"\") + value\r\n },\r\n stylingMode: this.option(\"stylingMode\")\r\n }\r\n },\r\n _normalizeHours: function(hours) {\r\n return this.option(\"use24HourFormat\") ? hours : hours % 12 || 12\r\n },\r\n _updateField: function() {\r\n var hours = this._normalizeHours(this._getValue().getHours());\r\n this._silentEditorValueUpdate(this._hourBox, hours);\r\n this._silentEditorValueUpdate(this._minuteBox, this._getValue().getMinutes());\r\n this._refreshFormat12()\r\n },\r\n _updateTime: function() {\r\n if (this.option(\"_showClock\")) {\r\n this._updateClock()\r\n }\r\n this._updateField()\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._updateTime()\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"value\":\r\n this._updateTime();\r\n this.callBase(args);\r\n break;\r\n case \"_arrowOffset\":\r\n break;\r\n case \"use24HourFormat\":\r\n case \"_showClock\":\r\n case \"stylingMode\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxTimeView\", TimeView);\r\nexport default TimeView;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.strategy.calendar_with_time.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport CalendarStrategy from \"./ui.date_box.strategy.calendar\";\r\nimport TimeView from \"./ui.time_view\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport Box from \"../box\";\r\nimport uiDateUtils from \"./ui.date_utils\";\r\nvar SHRINK_VIEW_SCREEN_WIDTH = 573;\r\nvar DATEBOX_ADAPTIVITY_MODE_CLASS = \"dx-datebox-adaptivity-mode\";\r\nvar DATEBOX_TIMEVIEW_SIDE_CLASS = \"dx-datebox-datetime-time-side\";\r\nvar CalendarWithTimeStrategy = CalendarStrategy.inherit({\r\n NAME: \"CalendarWithTime\",\r\n getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n applyValueMode: \"useButtons\",\r\n buttonsLocation: \"bottom after\",\r\n \"dropDownOptions.showTitle\": false\r\n })\r\n },\r\n _closeDropDownByEnter: function() {\r\n return dateUtils.sameDate(this._getContouredValue(), this.widgetOption(\"value\"))\r\n },\r\n getDisplayFormat: function(displayFormat) {\r\n return displayFormat || \"shortdateshorttime\"\r\n },\r\n _is24HourFormat: function() {\r\n return dateLocalization.is24HourFormat(this.getDisplayFormat(this.dateBox.option(\"displayFormat\")))\r\n },\r\n _getContouredValue: function() {\r\n var viewDate = this.callBase();\r\n return this._updateDateTime(viewDate)\r\n },\r\n _renderWidget: function() {\r\n this.callBase();\r\n this._timeView = this.dateBox._createComponent($(\"
\"), TimeView, {\r\n value: this.dateBoxValue(),\r\n _showClock: !this._isShrinkView(),\r\n use24HourFormat: this._is24HourFormat(),\r\n onValueChanged: this._valueChangedHandler.bind(this),\r\n stylingMode: this.dateBox.option(\"stylingMode\")\r\n });\r\n this._timeView.registerKeyHandler(\"escape\", this._escapeHandler.bind(this))\r\n },\r\n renderOpenedState: function() {\r\n this.callBase();\r\n var popup = this._getPopup();\r\n if (popup) {\r\n popup.$wrapper().toggleClass(DATEBOX_ADAPTIVITY_MODE_CLASS, this._isSmallScreen())\r\n }\r\n clearTimeout(this._repaintTimer);\r\n this._repaintTimer = setTimeout(function() {\r\n this._getPopup() && this._getPopup().repaint()\r\n }.bind(this), 0)\r\n },\r\n isAdaptivityChanged: function() {\r\n var isAdaptiveMode = this._isShrinkView();\r\n var currentAdaptiveMode = this._currentAdaptiveMode;\r\n if (isAdaptiveMode !== currentAdaptiveMode) {\r\n this._currentAdaptiveMode = isAdaptiveMode;\r\n return void 0 !== currentAdaptiveMode\r\n }\r\n return this.callBase()\r\n },\r\n _updateValue: function(preventDefaultValue) {\r\n var date = this.dateBoxValue();\r\n if (!date && !preventDefaultValue) {\r\n date = new Date;\r\n uiDateUtils.normalizeTime(date)\r\n }\r\n this.callBase();\r\n if (this._timeView) {\r\n date && this._timeView.option(\"value\", date);\r\n this._timeView.option(\"use24HourFormat\", this._is24HourFormat())\r\n }\r\n },\r\n _isSmallScreen: function() {\r\n return getWidth(window) <= SHRINK_VIEW_SCREEN_WIDTH\r\n },\r\n _isShrinkView: function() {\r\n return !this.dateBox.option(\"showAnalogClock\") || this.dateBox.option(\"adaptivityEnabled\") && this._isSmallScreen()\r\n },\r\n _getBoxItems: function() {\r\n var items = [{\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n name: \"calendar\"\r\n }];\r\n if (!this._isShrinkView()) {\r\n items.push({\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n name: \"time\"\r\n })\r\n }\r\n return items\r\n },\r\n renderPopupContent: function() {\r\n this.callBase();\r\n this._currentAdaptiveMode = this._isShrinkView();\r\n var $popupContent = this._getPopup().$content();\r\n this._box = this.dateBox._createComponent($(\"
\").appendTo($popupContent), Box, {\r\n direction: \"row\",\r\n crossAlign: \"stretch\",\r\n items: this._getBoxItems(),\r\n itemTemplate: function(data, i, element) {\r\n var $container = $(\"
\");\r\n switch (data.name) {\r\n case \"calendar\":\r\n $container.append(this._widget.$element());\r\n if (this._isShrinkView()) {\r\n this._timeView.$element().addClass(DATEBOX_TIMEVIEW_SIDE_CLASS);\r\n $container.append(this._timeView.$element())\r\n }\r\n break;\r\n case \"time\":\r\n $container.append(this._timeView.$element());\r\n $(element).addClass(DATEBOX_TIMEVIEW_SIDE_CLASS)\r\n }\r\n return $container\r\n }.bind(this)\r\n });\r\n this._attachTabHandler()\r\n },\r\n popupConfig: function(_popupConfig) {\r\n var calendarPopupConfig = this.callBase(_popupConfig);\r\n var result = extend(calendarPopupConfig, {\r\n width: \"auto\",\r\n onShowing: function() {\r\n if (\"fallback\" === this._box.option(\"_layoutStrategy\")) {\r\n var clockMinWidth = this._getPopup().$content().find(\".dx-timeview-clock\").css(\"minWidth\");\r\n this._timeView.$element().css(\"maxWidth\", clockMinWidth)\r\n }\r\n }.bind(this)\r\n });\r\n return result\r\n },\r\n getFirstPopupElement: function() {\r\n return this._timeView._hourBox.$element().find(\"input\")\r\n },\r\n _attachTabHandler: function() {\r\n var dateBox = this.dateBox;\r\n this._timeView._hourBox.registerKeyHandler(\"tab\", (function(e) {\r\n if (e.shiftKey) {\r\n e.preventDefault();\r\n dateBox.focus()\r\n }\r\n }))\r\n },\r\n _preventFocusOnPopup: function(e) {\r\n if (!$(e.target).hasClass(\"dx-texteditor-input\")) {\r\n this.callBase.apply(this, arguments);\r\n if (!this.dateBox._hasFocusClass()) {\r\n this.dateBox.focus()\r\n }\r\n }\r\n },\r\n _updateDateTime: function(date) {\r\n var time = this._timeView.option(\"value\");\r\n date.setHours(time.getHours(), time.getMinutes(), time.getSeconds(), time.getMilliseconds());\r\n return date\r\n },\r\n getValue: function() {\r\n var _this$_widget$option;\r\n var date = null !== (_this$_widget$option = this._widget.option(\"value\")) && void 0 !== _this$_widget$option ? _this$_widget$option : this._widget.getContouredDate();\r\n date = date ? new Date(date) : new Date;\r\n return this._updateDateTime(date)\r\n },\r\n dispose: function() {\r\n clearTimeout(this._removeMinWidthTimer);\r\n clearTimeout(this._repaintTimer);\r\n this.callBase()\r\n }\r\n});\r\nexport default CalendarWithTimeStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.strategy.list.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterHeight,\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport List from \"../list_light\";\r\nimport \"../list/modules/selection\";\r\nimport DateBoxStrategy from \"./ui.date_box.strategy\";\r\nimport {\r\n noop,\r\n ensureDefined\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDate\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport dateUtils from \"./ui.date_utils\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport {\r\n getSizeValue\r\n} from \"../drop_down_editor/utils\";\r\nvar DATE_FORMAT = \"date\";\r\nvar BOUNDARY_VALUES = {\r\n min: new Date(0, 0, 0, 0, 0),\r\n max: new Date(0, 0, 0, 23, 59)\r\n};\r\nvar ListStrategy = DateBoxStrategy.inherit({\r\n NAME: \"List\",\r\n supportedKeys: function() {\r\n return {\r\n tab: function() {\r\n var {\r\n opened: opened,\r\n applyValueMode: applyValueMode\r\n } = this.option();\r\n if (opened && \"instantly\" === applyValueMode) {\r\n this.close()\r\n }\r\n },\r\n space: noop,\r\n home: noop,\r\n end: noop\r\n }\r\n },\r\n getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n applyValueMode: \"instantly\"\r\n })\r\n },\r\n getDisplayFormat: function(displayFormat) {\r\n return displayFormat || \"shorttime\"\r\n },\r\n popupConfig: function(_popupConfig) {\r\n return _popupConfig\r\n },\r\n getValue: function() {\r\n var selectedIndex = this._widget.option(\"selectedIndex\");\r\n if (-1 === selectedIndex) {\r\n return this.dateBox.option(\"value\")\r\n }\r\n var itemData = this._widgetItems[selectedIndex];\r\n return this._getDateByItemData(itemData)\r\n },\r\n useCurrentDateByDefault: function() {\r\n return true\r\n },\r\n getDefaultDate: function() {\r\n return new Date(null)\r\n },\r\n popupShowingHandler: function() {\r\n this.dateBox._dimensionChanged()\r\n },\r\n _renderWidget: function() {\r\n this.callBase();\r\n this._refreshItems()\r\n },\r\n _getWidgetName: function() {\r\n return List\r\n },\r\n _getWidgetOptions: function() {\r\n return {\r\n itemTemplate: this._timeListItemTemplate.bind(this),\r\n onItemClick: this._listItemClickHandler.bind(this),\r\n tabIndex: -1,\r\n onFocusedItemChanged: this._refreshActiveDescendant.bind(this),\r\n selectionMode: \"single\"\r\n }\r\n },\r\n _refreshActiveDescendant: function(e) {\r\n this.dateBox.setAria(\"activedescendant\", \"\");\r\n this.dateBox.setAria(\"activedescendant\", e.actionValue)\r\n },\r\n _refreshItems: function() {\r\n this._widgetItems = this._getTimeListItems();\r\n this._widget.option(\"items\", this._widgetItems)\r\n },\r\n renderOpenedState: function() {\r\n if (!this._widget) {\r\n return\r\n }\r\n this._widget.option(\"focusedElement\", null);\r\n this._setSelectedItemsByValue();\r\n if (this._widget.option(\"templatesRenderAsynchronously\")) {\r\n this._asyncScrollTimeout = setTimeout(this._scrollToSelectedItem.bind(this))\r\n } else {\r\n this._scrollToSelectedItem()\r\n }\r\n },\r\n dispose: function() {\r\n this.callBase();\r\n clearTimeout(this._asyncScrollTimeout)\r\n },\r\n _updateValue: function() {\r\n if (!this._widget) {\r\n return\r\n }\r\n this._refreshItems();\r\n this._setSelectedItemsByValue();\r\n this._scrollToSelectedItem()\r\n },\r\n _setSelectedItemsByValue: function() {\r\n var value = this.dateBoxValue();\r\n var dateIndex = this._getDateIndex(value);\r\n if (-1 === dateIndex) {\r\n this._widget.option(\"selectedItems\", [])\r\n } else {\r\n this._widget.option(\"selectedIndex\", dateIndex)\r\n }\r\n },\r\n _scrollToSelectedItem: function() {\r\n this._widget.scrollToItem(this._widget.option(\"selectedIndex\"))\r\n },\r\n _getDateIndex: function(date) {\r\n var result = -1;\r\n for (var i = 0, n = this._widgetItems.length; i < n; i++) {\r\n if (this._areDatesEqual(date, this._widgetItems[i])) {\r\n result = i;\r\n break\r\n }\r\n }\r\n return result\r\n },\r\n _areDatesEqual: function(first, second) {\r\n return isDate(first) && isDate(second) && first.getHours() === second.getHours() && first.getMinutes() === second.getMinutes()\r\n },\r\n _getTimeListItems: function() {\r\n var min = this.dateBox.dateOption(\"min\") || this._getBoundaryDate(\"min\");\r\n var max = this.dateBox.dateOption(\"max\") || this._getBoundaryDate(\"max\");\r\n var value = this.dateBox.dateOption(\"value\") || null;\r\n var delta = max - min;\r\n var minutes = min.getMinutes() % this.dateBox.option(\"interval\");\r\n if (delta < 0) {\r\n return []\r\n }\r\n if (delta > dateUtils.ONE_DAY) {\r\n delta = dateUtils.ONE_DAY\r\n }\r\n if (value - min < dateUtils.ONE_DAY) {\r\n return this._getRangeItems(min, new Date(min), delta)\r\n }\r\n min = this._getBoundaryDate(\"min\");\r\n min.setMinutes(minutes);\r\n if (value && Math.abs(value - max) < dateUtils.ONE_DAY) {\r\n delta = (60 * max.getHours() + Math.abs(max.getMinutes() - minutes)) * dateUtils.ONE_MINUTE\r\n }\r\n return this._getRangeItems(min, new Date(min), delta)\r\n },\r\n _getRangeItems: function(startValue, currentValue, rangeDuration) {\r\n var rangeItems = [];\r\n var interval = this.dateBox.option(\"interval\");\r\n while (currentValue - startValue <= rangeDuration) {\r\n rangeItems.push(new Date(currentValue));\r\n currentValue.setMinutes(currentValue.getMinutes() + interval)\r\n }\r\n return rangeItems\r\n },\r\n _getBoundaryDate: function(boundary) {\r\n var boundaryValue = BOUNDARY_VALUES[boundary];\r\n var currentValue = new Date(ensureDefined(this.dateBox.dateOption(\"value\"), 0));\r\n return new Date(currentValue.getFullYear(), currentValue.getMonth(), currentValue.getDate(), boundaryValue.getHours(), boundaryValue.getMinutes())\r\n },\r\n _timeListItemTemplate: function(itemData) {\r\n var displayFormat = this.dateBox.option(\"displayFormat\");\r\n return dateLocalization.format(itemData, this.getDisplayFormat(displayFormat))\r\n },\r\n _listItemClickHandler: function(e) {\r\n if (\"useButtons\" === this.dateBox.option(\"applyValueMode\")) {\r\n return\r\n }\r\n var date = this._getDateByItemData(e.itemData);\r\n this.dateBox.option(\"opened\", false);\r\n this.dateBoxValue(date, e.event)\r\n },\r\n _getDateByItemData: function(itemData) {\r\n var date = this.dateBox.option(\"value\");\r\n var hours = itemData.getHours();\r\n var minutes = itemData.getMinutes();\r\n var seconds = itemData.getSeconds();\r\n var year = itemData.getFullYear();\r\n var month = itemData.getMonth();\r\n var day = itemData.getDate();\r\n if (date) {\r\n if (this.dateBox.option(\"dateSerializationFormat\")) {\r\n date = dateSerialization.deserializeDate(date)\r\n } else {\r\n date = new Date(date)\r\n }\r\n date.setHours(hours);\r\n date.setMinutes(minutes);\r\n date.setSeconds(seconds);\r\n date.setFullYear(year);\r\n date.setMonth(month);\r\n date.setDate(day)\r\n } else {\r\n date = new Date(year, month, day, hours, minutes, 0, 0)\r\n }\r\n return date\r\n },\r\n getKeyboardListener: function() {\r\n return this._widget\r\n },\r\n _updatePopupHeight: function() {\r\n var dropDownOptionsHeight = getSizeValue(this.dateBox.option(\"dropDownOptions.height\"));\r\n if (void 0 === dropDownOptionsHeight || \"auto\" === dropDownOptionsHeight) {\r\n this.dateBox._setPopupOption(\"height\", \"auto\");\r\n var popupHeight = getOuterHeight(this._widget.$element());\r\n var maxHeight = .45 * getHeight(window);\r\n this.dateBox._setPopupOption(\"height\", Math.min(popupHeight, maxHeight))\r\n }\r\n this.dateBox._timeList && this.dateBox._timeList.updateDimensions()\r\n },\r\n getParsedText: function(text, format) {\r\n var value = this.callBase(text, format);\r\n if (value) {\r\n value = dateUtils.mergeDates(value, new Date(null), DATE_FORMAT)\r\n }\r\n return value\r\n }\r\n});\r\nexport default ListStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.base.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport {\r\n isDate as isDateType,\r\n isString,\r\n isNumeric\r\n} from \"../../core/utils/type\";\r\nimport {\r\n createTextElementHiddenCopy\r\n} from \"../../core/utils/dom\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n inputType\r\n} from \"../../core/utils/support\";\r\nimport devices from \"../../core/devices\";\r\nimport config from \"../../core/config\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport uiDateUtils from \"./ui.date_utils\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport DropDownEditor from \"../drop_down_editor/ui.drop_down_editor\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport Calendar from \"./ui.date_box.strategy.calendar\";\r\nimport DateView from \"./ui.date_box.strategy.date_view\";\r\nimport Native from \"./ui.date_box.strategy.native\";\r\nimport CalendarWithTime from \"./ui.date_box.strategy.calendar_with_time\";\r\nimport List from \"./ui.date_box.strategy.list\";\r\nvar DATEBOX_CLASS = \"dx-datebox\";\r\nvar DX_AUTO_WIDTH_CLASS = \"dx-auto-width\";\r\nvar DX_INVALID_BADGE_CLASS = \"dx-show-invalid-badge\";\r\nvar DX_CLEAR_BUTTON_CLASS = \"dx-clear-button-area\";\r\nvar DATEBOX_WRAPPER_CLASS = \"dx-datebox-wrapper\";\r\nvar DROPDOWNEDITOR_OVERLAY_CLASS = \"dx-dropdowneditor-overlay\";\r\nvar PICKER_TYPE = {\r\n calendar: \"calendar\",\r\n rollers: \"rollers\",\r\n list: \"list\",\r\n native: \"native\"\r\n};\r\nvar TYPE = {\r\n date: \"date\",\r\n datetime: \"datetime\",\r\n time: \"time\"\r\n};\r\nvar STRATEGY_NAME = {\r\n calendar: \"Calendar\",\r\n dateView: \"DateView\",\r\n native: \"Native\",\r\n calendarWithTime: \"CalendarWithTime\",\r\n list: \"List\"\r\n};\r\nvar STRATEGY_CLASSES = {\r\n Calendar: Calendar,\r\n DateView: DateView,\r\n Native: Native,\r\n CalendarWithTime: CalendarWithTime,\r\n List: List\r\n};\r\nvar DateBox = DropDownEditor.inherit({\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), this._strategy.supportedKeys())\r\n },\r\n _renderButtonContainers: function() {\r\n this.callBase.apply(this, arguments);\r\n this._strategy.customizeButtons()\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n type: \"date\",\r\n showAnalogClock: true,\r\n value: null,\r\n dateSerializationFormat: void 0,\r\n min: void 0,\r\n max: void 0,\r\n displayFormat: null,\r\n interval: 30,\r\n disabledDates: null,\r\n pickerType: PICKER_TYPE.calendar,\r\n invalidDateMessage: messageLocalization.format(\"dxDateBox-validation-datetime\"),\r\n dateOutOfRangeMessage: messageLocalization.format(\"validation-range\"),\r\n applyButtonText: messageLocalization.format(\"OK\"),\r\n adaptivityEnabled: false,\r\n calendarOptions: {},\r\n useHiddenSubmitElement: true\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n \"dropDownOptions.showTitle\": true\r\n }\r\n }, {\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n buttonsLocation: \"bottom after\"\r\n }\r\n }, {\r\n device: function() {\r\n var realDevice = devices.real();\r\n var platform = realDevice.platform;\r\n return \"ios\" === platform || \"android\" === platform\r\n },\r\n options: {\r\n pickerType: PICKER_TYPE.native\r\n }\r\n }, {\r\n device: {\r\n platform: \"generic\",\r\n deviceType: \"desktop\"\r\n },\r\n options: {\r\n buttonsLocation: \"bottom after\"\r\n }\r\n }])\r\n },\r\n _initOptions: function(options) {\r\n this._userOptions = extend({}, options);\r\n this.callBase(options);\r\n this._updatePickerOptions()\r\n },\r\n _updatePickerOptions: function() {\r\n var pickerType = this.option(\"pickerType\");\r\n var type = this.option(\"type\");\r\n if (pickerType === PICKER_TYPE.list && (type === TYPE.datetime || type === TYPE.date)) {\r\n pickerType = PICKER_TYPE.calendar\r\n }\r\n if (type === TYPE.time && pickerType === PICKER_TYPE.calendar) {\r\n pickerType = PICKER_TYPE.list\r\n }\r\n this.option(\"showDropDownButton\", \"generic\" !== devices.real().platform || pickerType !== PICKER_TYPE.native);\r\n this._pickerType = pickerType\r\n },\r\n _init: function() {\r\n this._initStrategy();\r\n this.option(extend({}, this._strategy.getDefaultOptions(), this._userOptions));\r\n delete this._userOptions;\r\n this.callBase()\r\n },\r\n _toLowerCaseFirstLetter: function(string) {\r\n return string.charAt(0).toLowerCase() + string.substr(1)\r\n },\r\n _initStrategy: function() {\r\n var strategyName = this._getStrategyName(this._getFormatType());\r\n var strategy = STRATEGY_CLASSES[strategyName];\r\n if (!(this._strategy && this._strategy.NAME === strategyName)) {\r\n this._strategy = new strategy(this)\r\n }\r\n },\r\n _getFormatType: function() {\r\n var currentType = this.option(\"type\");\r\n var isTime = /h|m|s/g.test(currentType);\r\n var isDate = /d|M|Y/g.test(currentType);\r\n var type = \"\";\r\n if (isDate) {\r\n type += TYPE.date\r\n }\r\n if (isTime) {\r\n type += TYPE.time\r\n }\r\n return type\r\n },\r\n _getStrategyName: function(type) {\r\n var pickerType = this._pickerType;\r\n if (pickerType === PICKER_TYPE.rollers) {\r\n return STRATEGY_NAME.dateView\r\n } else if (pickerType === PICKER_TYPE.native) {\r\n return STRATEGY_NAME.native\r\n }\r\n if (type === TYPE.date) {\r\n return STRATEGY_NAME.calendar\r\n }\r\n if (type === TYPE.datetime) {\r\n return STRATEGY_NAME.calendarWithTime\r\n }\r\n return STRATEGY_NAME.list\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(DATEBOX_CLASS);\r\n this.callBase();\r\n this._refreshFormatClass();\r\n this._refreshPickerTypeClass();\r\n this._strategy.renderInputMinMax(this._input())\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._formatValidationIcon()\r\n },\r\n _renderDimensions: function() {\r\n this.callBase();\r\n this.$element().toggleClass(DX_AUTO_WIDTH_CLASS, !this.option(\"width\"));\r\n this._dimensionChanged()\r\n },\r\n _dimensionChanged: function() {\r\n this.callBase(arguments);\r\n if (this._popup) {\r\n var _this$_strategy$_upda, _this$_strategy;\r\n null === (_this$_strategy$_upda = (_this$_strategy = this._strategy)._updatePopupHeight) || void 0 === _this$_strategy$_upda ? void 0 : _this$_strategy$_upda.call(_this$_strategy)\r\n }\r\n },\r\n _refreshFormatClass: function() {\r\n var $element = this.$element();\r\n each(TYPE, (function(_, item) {\r\n $element.removeClass(DATEBOX_CLASS + \"-\" + item)\r\n }));\r\n $element.addClass(DATEBOX_CLASS + \"-\" + this.option(\"type\"))\r\n },\r\n _refreshPickerTypeClass: function() {\r\n var $element = this.$element();\r\n each(PICKER_TYPE, (function(_, item) {\r\n $element.removeClass(DATEBOX_CLASS + \"-\" + item)\r\n }));\r\n $element.addClass(DATEBOX_CLASS + \"-\" + this._pickerType)\r\n },\r\n _formatValidationIcon: function() {\r\n if (!hasWindow()) {\r\n return\r\n }\r\n var inputElement = this._input().get(0);\r\n var isRtlEnabled = this.option(\"rtlEnabled\");\r\n var clearButtonWidth = this._getClearButtonWidth();\r\n var longestElementDimensions = this._getLongestElementDimensions();\r\n var curWidth = parseFloat(window.getComputedStyle(inputElement).width) - clearButtonWidth;\r\n var shouldHideValidationIcon = longestElementDimensions.width > curWidth;\r\n var style = inputElement.style;\r\n this.$element().toggleClass(DX_INVALID_BADGE_CLASS, !shouldHideValidationIcon);\r\n if (shouldHideValidationIcon) {\r\n if (void 0 === this._storedPadding) {\r\n this._storedPadding = isRtlEnabled ? longestElementDimensions.leftPadding : longestElementDimensions.rightPadding\r\n }\r\n isRtlEnabled ? style.paddingLeft = 0 : style.paddingRight = 0\r\n } else {\r\n isRtlEnabled ? style.paddingLeft = this._storedPadding + \"px\" : style.paddingRight = this._storedPadding + \"px\"\r\n }\r\n },\r\n _getClearButtonWidth: function() {\r\n var clearButtonWidth = 0;\r\n if (this._isClearButtonVisible() && \"\" === this._input().val()) {\r\n var clearButtonElement = this.$element().find(\".\" + DX_CLEAR_BUTTON_CLASS).get(0);\r\n clearButtonWidth = parseFloat(window.getComputedStyle(clearButtonElement).width)\r\n }\r\n return clearButtonWidth\r\n },\r\n _getLongestElementDimensions: function() {\r\n var format = this._strategy.getDisplayFormat(this.option(\"displayFormat\"));\r\n var longestValue = dateLocalization.format(uiDateUtils.getLongestDate(format, dateLocalization.getMonthNames(), dateLocalization.getDayNames()), format);\r\n var $input = this._input();\r\n var inputElement = $input.get(0);\r\n var $longestValueElement = createTextElementHiddenCopy($input, longestValue);\r\n var isPaddingStored = void 0 !== this._storedPadding;\r\n var storedPadding = !isPaddingStored ? 0 : this._storedPadding;\r\n $longestValueElement.appendTo(this.$element());\r\n var elementWidth = parseFloat(window.getComputedStyle($longestValueElement.get(0)).width);\r\n var rightPadding = parseFloat(window.getComputedStyle(inputElement).paddingRight);\r\n var leftPadding = parseFloat(window.getComputedStyle(inputElement).paddingLeft);\r\n var necessaryWidth = elementWidth + leftPadding + rightPadding + storedPadding;\r\n $longestValueElement.remove();\r\n return {\r\n width: necessaryWidth,\r\n leftPadding: leftPadding,\r\n rightPadding: rightPadding\r\n }\r\n },\r\n _getKeyboardListeners() {\r\n return this.callBase().concat([this._strategy && this._strategy.getKeyboardListener()])\r\n },\r\n _renderPopup: function() {\r\n this.callBase();\r\n this._popup.$wrapper().addClass(DATEBOX_WRAPPER_CLASS);\r\n this._renderPopupWrapper()\r\n },\r\n _popupConfig: function() {\r\n var popupConfig = this.callBase();\r\n return extend(this._strategy.popupConfig(popupConfig), {\r\n title: this._getPopupTitle(),\r\n dragEnabled: false\r\n })\r\n },\r\n _renderPopupWrapper: function() {\r\n if (!this._popup) {\r\n return\r\n }\r\n var $element = this.$element();\r\n var classPostfixes = extend({}, TYPE, PICKER_TYPE);\r\n each(classPostfixes, function(_, item) {\r\n $element.removeClass(DATEBOX_WRAPPER_CLASS + \"-\" + item)\r\n }.bind(this));\r\n this._popup.$wrapper().addClass(DATEBOX_WRAPPER_CLASS + \"-\" + this.option(\"type\")).addClass(DATEBOX_WRAPPER_CLASS + \"-\" + this._pickerType).addClass(DROPDOWNEDITOR_OVERLAY_CLASS)\r\n },\r\n _renderPopupContent: function() {\r\n this.callBase();\r\n this._strategy.renderPopupContent()\r\n },\r\n _getFirstPopupElement: function() {\r\n return this._strategy.getFirstPopupElement() || this.callBase()\r\n },\r\n _getLastPopupElement: function() {\r\n return this._strategy.getLastPopupElement() || this.callBase()\r\n },\r\n _popupShowingHandler: function() {\r\n this.callBase();\r\n this._strategy.popupShowingHandler()\r\n },\r\n _popupShownHandler: function() {\r\n this.callBase();\r\n this._strategy.renderOpenedState()\r\n },\r\n _popupHiddenHandler: function() {\r\n this.callBase();\r\n this._strategy.renderOpenedState();\r\n this._strategy.popupHiddenHandler()\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._formatValidationIcon()\r\n }\r\n },\r\n _clearValueHandler: function(e) {\r\n this.option(\"text\", \"\");\r\n this.callBase(e)\r\n },\r\n _readOnlyPropValue: function() {\r\n if (this._pickerType === PICKER_TYPE.rollers) {\r\n return true\r\n }\r\n var platform = devices.real().platform;\r\n var isCustomValueDisabled = this._isNativeType() && (\"ios\" === platform || \"android\" === platform);\r\n if (isCustomValueDisabled) {\r\n return this.option(\"readOnly\")\r\n }\r\n return this.callBase()\r\n },\r\n _isClearButtonVisible: function() {\r\n return this.callBase() && !this._isNativeType()\r\n },\r\n _renderValue: function() {\r\n var value = this.dateOption(\"value\");\r\n this.option(\"text\", this._getDisplayedText(value));\r\n this._strategy.renderValue();\r\n return this.callBase()\r\n },\r\n _setSubmitValue: function() {\r\n var value = this.dateOption(\"value\");\r\n var dateSerializationFormat = this.option(\"dateSerializationFormat\");\r\n var submitFormat = uiDateUtils.SUBMIT_FORMATS_MAP[this.option(\"type\")];\r\n var submitValue = dateSerializationFormat ? dateSerialization.serializeDate(value, dateSerializationFormat) : uiDateUtils.toStandardDateFormat(value, submitFormat);\r\n this._getSubmitElement().val(submitValue)\r\n },\r\n _getDisplayedText: function(value) {\r\n var mode = this.option(\"mode\");\r\n var displayedText;\r\n if (\"text\" === mode) {\r\n var displayFormat = this._strategy.getDisplayFormat(this.option(\"displayFormat\"));\r\n displayedText = dateLocalization.format(value, displayFormat)\r\n } else {\r\n var format = this._getFormatByMode(mode);\r\n if (format) {\r\n displayedText = dateLocalization.format(value, format)\r\n } else {\r\n displayedText = uiDateUtils.toStandardDateFormat(value, mode)\r\n }\r\n }\r\n return displayedText\r\n },\r\n _getFormatByMode: function(mode) {\r\n return inputType(mode) ? null : uiDateUtils.FORMATS_MAP[mode]\r\n },\r\n _valueChangeEventHandler: function(e) {\r\n var {\r\n text: text,\r\n type: type,\r\n validationError: validationError\r\n } = this.option();\r\n var currentValue = this.dateOption(\"value\");\r\n if (text === this._getDisplayedText(currentValue)) {\r\n if (!validationError || validationError.editorSpecific) {\r\n this._applyInternalValidation(currentValue);\r\n this._applyCustomValidation(currentValue)\r\n }\r\n return\r\n }\r\n var parsedDate = this._getParsedDate(text);\r\n var value = null !== currentValue && void 0 !== currentValue ? currentValue : this._getDateByDefault();\r\n var newValue = uiDateUtils.mergeDates(value, parsedDate, type);\r\n var date = parsedDate && \"time\" === type ? newValue : parsedDate;\r\n if (this._applyInternalValidation(date).isValid) {\r\n var displayedText = this._getDisplayedText(newValue);\r\n if (value && newValue && value.getTime() === newValue.getTime() && displayedText !== text) {\r\n this._renderValue()\r\n } else {\r\n this.dateValue(newValue, e)\r\n }\r\n }\r\n },\r\n _getDateByDefault: function() {\r\n return this._strategy.useCurrentDateByDefault() && this._strategy.getDefaultDate()\r\n },\r\n _getParsedDate: function(text) {\r\n var displayFormat = this._strategy.getDisplayFormat(this.option(\"displayFormat\"));\r\n var parsedText = this._strategy.getParsedText(text, displayFormat);\r\n return null !== parsedText && void 0 !== parsedText ? parsedText : void 0\r\n },\r\n _applyInternalValidation(value) {\r\n var text = this.option(\"text\");\r\n var hasText = !!text && null !== value;\r\n var isDate = !!value && isDateType(value) && !isNaN(value.getTime());\r\n var isDateInRange = isDate && dateUtils.dateInRange(value, this.dateOption(\"min\"), this.dateOption(\"max\"), this.option(\"type\"));\r\n var isValid = !hasText && !value || isDateInRange;\r\n var validationMessage = \"\";\r\n if (!isDate) {\r\n validationMessage = this.option(\"invalidDateMessage\")\r\n } else if (!isDateInRange) {\r\n validationMessage = this.option(\"dateOutOfRangeMessage\")\r\n }\r\n this.option({\r\n isValid: isValid,\r\n validationError: isValid ? null : {\r\n editorSpecific: true,\r\n message: validationMessage\r\n }\r\n });\r\n return {\r\n isValid: isValid,\r\n isDate: isDate\r\n }\r\n },\r\n _applyCustomValidation: function(value) {\r\n this.validationRequest.fire({\r\n editor: this,\r\n value: this._serializeDate(value)\r\n })\r\n },\r\n _isValueChanged: function(newValue) {\r\n var oldValue = this.dateOption(\"value\");\r\n var oldTime = oldValue && oldValue.getTime();\r\n var newTime = newValue && newValue.getTime();\r\n return oldTime !== newTime\r\n },\r\n _isTextChanged: function(newValue) {\r\n var oldText = this.option(\"text\");\r\n var newText = newValue && this._getDisplayedText(newValue) || \"\";\r\n return oldText !== newText\r\n },\r\n _renderProps: function() {\r\n this.callBase();\r\n this._input().attr(\"autocomplete\", \"off\")\r\n },\r\n _renderOpenedState: function() {\r\n if (!this._isNativeType()) {\r\n this.callBase()\r\n }\r\n if (this._strategy.isAdaptivityChanged()) {\r\n this._refreshStrategy()\r\n }\r\n },\r\n _getPopupTitle: function() {\r\n var placeholder = this.option(\"placeholder\");\r\n if (placeholder) {\r\n return placeholder\r\n }\r\n var type = this.option(\"type\");\r\n if (type === TYPE.time) {\r\n return messageLocalization.format(\"dxDateBox-simulatedDataPickerTitleTime\")\r\n }\r\n if (type === TYPE.date || type === TYPE.datetime) {\r\n return messageLocalization.format(\"dxDateBox-simulatedDataPickerTitleDate\")\r\n }\r\n return \"\"\r\n },\r\n _refreshStrategy: function() {\r\n this._strategy.dispose();\r\n this._initStrategy();\r\n this.option(this._strategy.getDefaultOptions());\r\n this._refresh()\r\n },\r\n _applyButtonHandler: function(e) {\r\n var value = this._strategy.getValue();\r\n this.dateValue(value, e.event);\r\n this.callBase()\r\n },\r\n _dispose: function() {\r\n var _this$_strategy2;\r\n this.callBase();\r\n null === (_this$_strategy2 = this._strategy) || void 0 === _this$_strategy2 ? void 0 : _this$_strategy2.dispose()\r\n },\r\n _isNativeType: function() {\r\n return this._pickerType === PICKER_TYPE.native\r\n },\r\n _updatePopupTitle: function() {\r\n var _this$_popup;\r\n null === (_this$_popup = this._popup) || void 0 === _this$_popup ? void 0 : _this$_popup.option(\"title\", this._getPopupTitle())\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"showClearButton\":\r\n case \"buttons\":\r\n this.callBase.apply(this, arguments);\r\n this._formatValidationIcon();\r\n break;\r\n case \"pickerType\":\r\n this._updatePickerOptions({\r\n pickerType: args.value\r\n });\r\n this._refreshStrategy();\r\n this._refreshPickerTypeClass();\r\n this._invalidate();\r\n break;\r\n case \"type\":\r\n this._updatePickerOptions({\r\n format: args.value\r\n });\r\n this._refreshStrategy();\r\n this._refreshFormatClass();\r\n this._renderPopupWrapper();\r\n this._formatValidationIcon();\r\n this._updateValue();\r\n break;\r\n case \"placeholder\":\r\n this.callBase.apply(this, arguments);\r\n this._updatePopupTitle();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n var isValid = this.option(\"isValid\");\r\n this._applyInternalValidation(this.dateOption(\"value\"));\r\n if (!isValid) {\r\n this._applyCustomValidation(this.dateOption(\"value\"))\r\n }\r\n this._invalidate();\r\n break;\r\n case \"dateSerializationFormat\":\r\n case \"interval\":\r\n case \"disabledDates\":\r\n case \"calendarOptions\":\r\n this._invalidate();\r\n break;\r\n case \"displayFormat\":\r\n this.option(\"text\", this._getDisplayedText(this.dateOption(\"value\")));\r\n this._renderInputValue();\r\n break;\r\n case \"text\":\r\n this._strategy.textChangedHandler(args.value);\r\n this.callBase.apply(this, arguments);\r\n break;\r\n case \"isValid\":\r\n this.callBase.apply(this, arguments);\r\n this._formatValidationIcon();\r\n break;\r\n case \"showDropDownButton\":\r\n this._formatValidationIcon();\r\n this.callBase.apply(this, arguments);\r\n break;\r\n case \"readOnly\":\r\n this.callBase.apply(this, arguments);\r\n this._formatValidationIcon();\r\n break;\r\n case \"invalidDateMessage\":\r\n case \"dateOutOfRangeMessage\":\r\n case \"adaptivityEnabled\":\r\n case \"showAnalogClock\":\r\n break;\r\n default:\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _getSerializationFormat: function() {\r\n var value = this.option(\"value\");\r\n if (this.option(\"dateSerializationFormat\") && config().forceIsoDateParsing) {\r\n return this.option(\"dateSerializationFormat\")\r\n }\r\n if (isNumeric(value)) {\r\n return \"number\"\r\n }\r\n if (!isString(value)) {\r\n return\r\n }\r\n return dateSerialization.getDateSerializationFormat(value)\r\n },\r\n _updateValue: function(value) {\r\n this.callBase();\r\n this._applyInternalValidation(null !== value && void 0 !== value ? value : this.dateOption(\"value\"))\r\n },\r\n dateValue: function(value, dxEvent) {\r\n var isValueChanged = this._isValueChanged(value);\r\n if (isValueChanged && dxEvent) {\r\n this._saveValueChangeEvent(dxEvent)\r\n }\r\n if (!isValueChanged) {\r\n if (this._isTextChanged(value)) {\r\n this._updateValue(value)\r\n } else if (\"\" === this.option(\"text\")) {\r\n this._applyCustomValidation(value)\r\n }\r\n }\r\n return this.dateOption(\"value\", value)\r\n },\r\n dateOption: function(optionName, value) {\r\n if (1 === arguments.length) {\r\n return dateSerialization.deserializeDate(this.option(optionName))\r\n }\r\n this.option(optionName, this._serializeDate(value))\r\n },\r\n _serializeDate: function(date) {\r\n var serializationFormat = this._getSerializationFormat();\r\n return dateSerialization.serializeDate(date, serializationFormat)\r\n },\r\n _clearValue: function() {\r\n var value = this.option(\"value\");\r\n this.callBase();\r\n if (null === value) {\r\n this._applyCustomValidation(null)\r\n }\r\n },\r\n reset: function() {\r\n var value = this.option(\"value\");\r\n this.callBase();\r\n if (null === value) {\r\n this._applyInternalValidation(null)\r\n }\r\n }\r\n});\r\nexport default DateBox;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.mask.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n addNamespace,\r\n normalizeKeyName,\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nimport {\r\n isFunction,\r\n isString,\r\n isDate,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n clipboardText\r\n} from \"../../core/utils/dom\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n fitIntoRange,\r\n inRange,\r\n sign\r\n} from \"../../core/utils/math\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n getDatePartIndexByPosition,\r\n renderDateParts\r\n} from \"./ui.date_box.mask.parts\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport {\r\n getRegExpInfo\r\n} from \"../../localization/ldml/date.parser\";\r\nimport {\r\n getFormat\r\n} from \"../../localization/ldml/date.format\";\r\nimport DateBoxBase from \"./ui.date_box.base\";\r\nimport numberLocalization from \"../../localization/number\";\r\nimport devices from \"../../core/devices\";\r\nimport browser from \"../../core/utils/browser\";\r\nvar MASK_EVENT_NAMESPACE = \"dateBoxMask\";\r\nvar FORWARD = 1;\r\nvar BACKWARD = -1;\r\nvar DateBoxMask = DateBoxBase.inherit({\r\n _supportedKeys(e) {\r\n var originalHandlers = this.callBase(e);\r\n var callOriginalHandler = e => {\r\n var originalHandler = originalHandlers[normalizeKeyName(e)];\r\n return originalHandler && originalHandler.apply(this, [e])\r\n };\r\n var applyHandler = (e, maskHandler) => {\r\n if (this._shouldUseOriginalHandler(e)) {\r\n return callOriginalHandler.apply(this, [e])\r\n } else {\r\n return maskHandler.apply(this, [e])\r\n }\r\n };\r\n return extend({}, originalHandlers, {\r\n del: e => applyHandler(e, event => {\r\n this._revertPart(FORWARD);\r\n this._isAllSelected() || event.preventDefault()\r\n }),\r\n backspace: e => applyHandler(e, event => {\r\n this._revertPart(BACKWARD);\r\n this._isAllSelected() || event.preventDefault()\r\n }),\r\n home: e => applyHandler(e, event => {\r\n this._selectFirstPart();\r\n event.preventDefault()\r\n }),\r\n end: e => applyHandler(e, event => {\r\n this._selectLastPart();\r\n event.preventDefault()\r\n }),\r\n escape: e => applyHandler(e, event => {\r\n this._revertChanges(event)\r\n }),\r\n enter: e => applyHandler(e, event => {\r\n this._enterHandler(event)\r\n }),\r\n leftArrow: e => applyHandler(e, event => {\r\n this._selectNextPart(BACKWARD);\r\n event.preventDefault()\r\n }),\r\n rightArrow: e => applyHandler(e, event => {\r\n this._selectNextPart(FORWARD);\r\n event.preventDefault()\r\n }),\r\n upArrow: e => applyHandler(e, event => {\r\n this._upDownArrowHandler(FORWARD);\r\n event.preventDefault()\r\n }),\r\n downArrow: e => applyHandler(e, event => {\r\n this._upDownArrowHandler(BACKWARD);\r\n event.preventDefault()\r\n })\r\n })\r\n },\r\n _shouldUseOriginalHandler(e) {\r\n var isNotDeletingInCalendar = this.option(\"opened\") && e && -1 === [\"backspace\", \"del\"].indexOf(normalizeKeyName(e));\r\n return !this._useMaskBehavior() || isNotDeletingInCalendar || e && e.altKey\r\n },\r\n _upDownArrowHandler(step) {\r\n this._setNewDateIfEmpty();\r\n var originalValue = this._getActivePartValue(this._initialMaskValue);\r\n var currentValue = this._getActivePartValue();\r\n var delta = currentValue - originalValue;\r\n this._loadMaskValue(this._initialMaskValue);\r\n this._partIncrease(delta + step, true)\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n useMaskBehavior: false,\r\n emptyDateValue: new Date(2e3, 0, 1, 0, 0, 0)\r\n })\r\n },\r\n _isSingleCharKey(_ref) {\r\n var {\r\n originalEvent: originalEvent,\r\n alt: alt\r\n } = _ref;\r\n var key = originalEvent.data || originalEvent.key;\r\n return \"string\" === typeof key && 1 === key.length && !alt && !isCommandKeyPressed(originalEvent)\r\n },\r\n _isSingleDigitKey(e) {\r\n var _e$originalEvent;\r\n var data = null === (_e$originalEvent = e.originalEvent) || void 0 === _e$originalEvent ? void 0 : _e$originalEvent.data;\r\n return 1 === (null === data || void 0 === data ? void 0 : data.length) && parseInt(data, 10)\r\n },\r\n _useBeforeInputEvent: function() {\r\n return devices.real().android\r\n },\r\n _keyInputHandler(e, key) {\r\n var oldInputValue = this._input().val();\r\n this._processInputKey(key);\r\n e.preventDefault();\r\n var isValueChanged = oldInputValue !== this._input().val();\r\n isValueChanged && eventsEngine.trigger(this._input(), \"input\")\r\n },\r\n _keyboardHandler(e) {\r\n var key = e.originalEvent.key;\r\n var result = this.callBase(e);\r\n if (!this._useMaskBehavior() || this._useBeforeInputEvent()) {\r\n return result\r\n }\r\n if (browser.chrome && \"Process\" === e.key && 0 === e.code.indexOf(\"Digit\")) {\r\n key = e.code.replace(\"Digit\", \"\");\r\n this._processInputKey(key);\r\n this._maskInputHandler = () => {\r\n this._renderSelectedPart()\r\n }\r\n } else if (this._isSingleCharKey(e)) {\r\n this._keyInputHandler(e.originalEvent, key)\r\n }\r\n return result\r\n },\r\n _maskBeforeInputHandler(e) {\r\n this._maskInputHandler = null;\r\n var {\r\n inputType: inputType\r\n } = e.originalEvent;\r\n if (\"insertCompositionText\" === inputType) {\r\n this._maskInputHandler = () => {\r\n this._renderSelectedPart()\r\n }\r\n }\r\n var isBackwardDeletion = \"deleteContentBackward\" === inputType;\r\n var isForwardDeletion = \"deleteContentForward\" === inputType;\r\n if (isBackwardDeletion || isForwardDeletion) {\r\n var direction = isBackwardDeletion ? BACKWARD : FORWARD;\r\n this._maskInputHandler = () => {\r\n this._revertPart();\r\n this._selectNextPart(direction)\r\n }\r\n }\r\n if (!this._useMaskBehavior() || !this._isSingleCharKey(e)) {\r\n return\r\n }\r\n var key = e.originalEvent.data;\r\n this._keyInputHandler(e, key);\r\n return true\r\n },\r\n _keyPressHandler(e) {\r\n var {\r\n originalEvent: event\r\n } = e;\r\n if (\"insertCompositionText\" === (null === event || void 0 === event ? void 0 : event.inputType) && this._isSingleDigitKey(e)) {\r\n this._processInputKey(event.data);\r\n this._renderDisplayText(this._getDisplayedText(this._maskValue));\r\n this._selectNextPart()\r\n }\r\n this.callBase(e);\r\n if (this._maskInputHandler) {\r\n this._maskInputHandler();\r\n this._maskInputHandler = null\r\n }\r\n },\r\n _processInputKey(key) {\r\n if (this._isAllSelected()) {\r\n this._activePartIndex = 0\r\n }\r\n this._setNewDateIfEmpty();\r\n if (isNaN(parseInt(key))) {\r\n this._searchString(key)\r\n } else {\r\n this._searchNumber(key)\r\n }\r\n },\r\n _isAllSelected() {\r\n var caret = this._caret();\r\n return caret.end - caret.start === this.option(\"text\").length\r\n },\r\n _getFormatPattern() {\r\n if (this._formatPattern) {\r\n return this._formatPattern\r\n }\r\n var format = this._strategy.getDisplayFormat(this.option(\"displayFormat\"));\r\n var isLDMLPattern = isString(format) && !dateLocalization._getPatternByFormat(format);\r\n if (isLDMLPattern) {\r\n this._formatPattern = format\r\n } else {\r\n this._formatPattern = getFormat((function(value) {\r\n return dateLocalization.format(value, format)\r\n }))\r\n }\r\n return this._formatPattern\r\n },\r\n _setNewDateIfEmpty() {\r\n if (!this._maskValue) {\r\n var value = \"time\" === this.option(\"type\") ? new Date(null) : new Date;\r\n this._maskValue = value;\r\n this._initialMaskValue = value;\r\n this._renderDateParts()\r\n }\r\n },\r\n _partLimitsReached(max) {\r\n var maxLimitLength = String(max).length;\r\n var formatLength = this._getActivePartProp(\"pattern\").length;\r\n var isShortFormat = 1 === formatLength;\r\n var maxSearchLength = isShortFormat ? maxLimitLength : Math.min(formatLength, maxLimitLength);\r\n var isLengthExceeded = this._searchValue.length === maxSearchLength;\r\n var isValueOverflowed = parseInt(this._searchValue + \"0\") > max;\r\n return isLengthExceeded || isValueOverflowed\r\n },\r\n _searchNumber(char) {\r\n var {\r\n max: max\r\n } = this._getActivePartLimits();\r\n var maxLimitLength = String(max).length;\r\n this._searchValue = (this._searchValue + char).substr(-maxLimitLength);\r\n if (isNaN(this._searchValue)) {\r\n this._searchValue = char\r\n }\r\n this._setActivePartValue(this._searchValue);\r\n if (this._partLimitsReached(max)) {\r\n this._selectNextPart(FORWARD)\r\n }\r\n },\r\n _searchString(char) {\r\n if (!isNaN(parseInt(this._getActivePartProp(\"text\")))) {\r\n return\r\n }\r\n var limits = this._getActivePartProp(\"limits\")(this._maskValue);\r\n var startString = this._searchValue + char.toLowerCase();\r\n var endLimit = limits.max - limits.min;\r\n for (var i = 0; i <= endLimit; i++) {\r\n this._loadMaskValue(this._initialMaskValue);\r\n this._partIncrease(i + 1);\r\n if (0 === this._getActivePartProp(\"text\").toLowerCase().indexOf(startString)) {\r\n this._searchValue = startString;\r\n return\r\n }\r\n }\r\n this._setNewDateIfEmpty();\r\n if (this._searchValue) {\r\n this._clearSearchValue();\r\n this._searchString(char)\r\n }\r\n },\r\n _clearSearchValue() {\r\n this._searchValue = \"\"\r\n },\r\n _revertPart: function(direction) {\r\n if (!this._isAllSelected()) {\r\n var actual = this._getActivePartValue(this.option(\"emptyDateValue\"));\r\n this._setActivePartValue(actual);\r\n this._selectNextPart(direction)\r\n }\r\n this._clearSearchValue()\r\n },\r\n _useMaskBehavior() {\r\n return this.option(\"useMaskBehavior\") && \"text\" === this.option(\"mode\")\r\n },\r\n _prepareRegExpInfo() {\r\n this._regExpInfo = getRegExpInfo(this._getFormatPattern(), dateLocalization);\r\n var regexp = this._regExpInfo.regexp;\r\n var source = regexp.source;\r\n var flags = regexp.flags;\r\n var quantifierRegexp = new RegExp(/(\\{[0-9]+,?[0-9]*\\})/);\r\n var convertedSource = source.split(quantifierRegexp).map(sourcePart => quantifierRegexp.test(sourcePart) ? sourcePart : numberLocalization.convertDigits(sourcePart, false)).join(\"\");\r\n this._regExpInfo.regexp = new RegExp(convertedSource, flags)\r\n },\r\n _initMaskState() {\r\n this._activePartIndex = 0;\r\n this._formatPattern = null;\r\n this._prepareRegExpInfo();\r\n this._loadMaskValue()\r\n },\r\n _renderMask() {\r\n this.callBase();\r\n this._detachMaskEvents();\r\n this._clearMaskState();\r\n if (this._useMaskBehavior()) {\r\n this._attachMaskEvents();\r\n this._initMaskState();\r\n this._renderDateParts()\r\n }\r\n },\r\n _renderDateParts() {\r\n if (!this._useMaskBehavior()) {\r\n return\r\n }\r\n var text = this.option(\"text\") || this._getDisplayedText(this._maskValue);\r\n if (text) {\r\n this._dateParts = renderDateParts(text, this._regExpInfo);\r\n if (!this._input().is(\":hidden\")) {\r\n this._selectNextPart()\r\n }\r\n }\r\n },\r\n _detachMaskEvents() {\r\n eventsEngine.off(this._input(), \".\" + MASK_EVENT_NAMESPACE)\r\n },\r\n _attachMaskEvents() {\r\n eventsEngine.on(this._input(), addNamespace(\"dxclick\", MASK_EVENT_NAMESPACE), this._maskClickHandler.bind(this));\r\n eventsEngine.on(this._input(), addNamespace(\"paste\", MASK_EVENT_NAMESPACE), this._maskPasteHandler.bind(this));\r\n eventsEngine.on(this._input(), addNamespace(\"drop\", MASK_EVENT_NAMESPACE), () => {\r\n this._renderSelectedPart()\r\n });\r\n eventsEngine.on(this._input(), addNamespace(\"compositionend\", MASK_EVENT_NAMESPACE), this._maskCompositionEndHandler.bind(this));\r\n if (this._useBeforeInputEvent()) {\r\n eventsEngine.on(this._input(), addNamespace(\"beforeinput\", MASK_EVENT_NAMESPACE), this._maskBeforeInputHandler.bind(this))\r\n }\r\n },\r\n _renderSelectedPart() {\r\n this._renderDisplayText(this._getDisplayedText(this._maskValue));\r\n this._selectNextPart()\r\n },\r\n _selectLastPart() {\r\n if (this.option(\"text\")) {\r\n this._activePartIndex = this._dateParts.length;\r\n this._selectNextPart(BACKWARD)\r\n }\r\n },\r\n _selectFirstPart() {\r\n if (this.option(\"text\")) {\r\n this._activePartIndex = -1;\r\n this._selectNextPart(FORWARD)\r\n }\r\n },\r\n _onMouseWheel(e) {\r\n if (this._useMaskBehavior()) {\r\n this._partIncrease(e.delta > 0 ? FORWARD : BACKWARD, e)\r\n }\r\n },\r\n _selectNextPart() {\r\n var step = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0;\r\n if (!this.option(\"text\") || this._disposed) {\r\n return\r\n }\r\n if (step) {\r\n this._initialMaskValue = new Date(this._maskValue)\r\n }\r\n var index = fitIntoRange(this._activePartIndex + step, 0, this._dateParts.length - 1);\r\n if (this._dateParts[index].isStub) {\r\n var isBoundaryIndex = 0 === index && step < 0 || index === this._dateParts.length - 1 && step > 0;\r\n if (!isBoundaryIndex) {\r\n this._selectNextPart(step >= 0 ? step + 1 : step - 1);\r\n return\r\n } else {\r\n index = this._activePartIndex\r\n }\r\n }\r\n if (this._activePartIndex !== index) {\r\n this._clearSearchValue()\r\n }\r\n this._activePartIndex = index;\r\n this._caret(this._getActivePartProp(\"caret\"))\r\n },\r\n _getRealLimitsPattern() {\r\n if (\"d\" === this._getActivePartProp(\"pattern\")[0]) {\r\n return \"dM\"\r\n }\r\n },\r\n _getActivePartLimits(lockOtherParts) {\r\n var limitFunction = this._getActivePartProp(\"limits\");\r\n return limitFunction(this._maskValue, lockOtherParts && this._getRealLimitsPattern())\r\n },\r\n _getActivePartValue(dateValue) {\r\n dateValue = dateValue || this._maskValue;\r\n var getter = this._getActivePartProp(\"getter\");\r\n return isFunction(getter) ? getter(dateValue) : dateValue[getter]()\r\n },\r\n _addLeadingZeroes(value) {\r\n var zeroes = this._searchValue.match(/^0+/);\r\n var limits = this._getActivePartLimits();\r\n var maxLimitLength = String(limits.max).length;\r\n return ((zeroes && zeroes[0] || \"\") + String(value)).substr(-maxLimitLength)\r\n },\r\n _setActivePartValue(value, dateValue) {\r\n dateValue = dateValue || this._maskValue;\r\n var setter = this._getActivePartProp(\"setter\");\r\n var limits = this._getActivePartLimits();\r\n value = inRange(value, limits.min, limits.max) ? value : value % 10;\r\n value = this._addLeadingZeroes(fitIntoRange(value, limits.min, limits.max));\r\n isFunction(setter) ? setter(dateValue, value) : dateValue[setter](value);\r\n this._renderDisplayText(this._getDisplayedText(dateValue));\r\n this._renderDateParts()\r\n },\r\n _getActivePartProp(property) {\r\n if (!this._dateParts || !this._dateParts[this._activePartIndex]) {\r\n return\r\n }\r\n return this._dateParts[this._activePartIndex][property]\r\n },\r\n _loadMaskValue() {\r\n var value = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.dateOption(\"value\");\r\n this._maskValue = value && new Date(value);\r\n this._initialMaskValue = value && new Date(value)\r\n },\r\n _saveMaskValue() {\r\n var value = this._maskValue && new Date(this._maskValue);\r\n if (value && \"date\" === this.option(\"type\")) {\r\n value.setHours(0, 0, 0, 0)\r\n }\r\n this._initialMaskValue = new Date(value);\r\n this.dateOption(\"value\", value)\r\n },\r\n _revertChanges() {\r\n this._loadMaskValue();\r\n this._renderDisplayText(this._getDisplayedText(this._maskValue));\r\n this._renderDateParts()\r\n },\r\n _renderDisplayText(text) {\r\n this.callBase(text);\r\n if (this._useMaskBehavior()) {\r\n this.option(\"text\", text)\r\n }\r\n },\r\n _partIncrease(step, lockOtherParts) {\r\n this._setNewDateIfEmpty();\r\n var {\r\n max: max,\r\n min: min\r\n } = this._getActivePartLimits(lockOtherParts);\r\n var limitDelta = max - min;\r\n if (1 === limitDelta) {\r\n limitDelta++\r\n }\r\n var newValue = step + this._getActivePartValue();\r\n if (newValue > max) {\r\n newValue = this._applyLimits(newValue, {\r\n limitBase: min,\r\n limitClosest: max,\r\n limitDelta: limitDelta\r\n })\r\n } else if (newValue < min) {\r\n newValue = this._applyLimits(newValue, {\r\n limitBase: max,\r\n limitClosest: min,\r\n limitDelta: limitDelta\r\n })\r\n }\r\n this._setActivePartValue(newValue)\r\n },\r\n _applyLimits(newValue, _ref2) {\r\n var {\r\n limitBase: limitBase,\r\n limitClosest: limitClosest,\r\n limitDelta: limitDelta\r\n } = _ref2;\r\n var delta = (newValue - limitClosest) % limitDelta;\r\n return delta ? limitBase + delta - 1 * sign(delta) : limitClosest\r\n },\r\n _maskClickHandler() {\r\n this._loadMaskValue(this._maskValue);\r\n if (this.option(\"text\")) {\r\n this._activePartIndex = getDatePartIndexByPosition(this._dateParts, this._caret().start);\r\n if (!this._isAllSelected()) {\r\n if (isDefined(this._activePartIndex)) {\r\n this._caret(this._getActivePartProp(\"caret\"))\r\n } else {\r\n this._selectLastPart()\r\n }\r\n }\r\n }\r\n },\r\n _maskCompositionEndHandler(e) {\r\n this._input().val(this._getDisplayedText(this._maskValue));\r\n this._selectNextPart();\r\n this._maskInputHandler = () => {\r\n this._renderSelectedPart()\r\n }\r\n },\r\n _maskPasteHandler(e) {\r\n var newText = this._replaceSelectedText(this.option(\"text\"), this._caret(), clipboardText(e));\r\n var date = dateLocalization.parse(newText, this._getFormatPattern());\r\n if (date && this._isDateValid(date)) {\r\n this._maskValue = date;\r\n this._renderDisplayText(this._getDisplayedText(this._maskValue));\r\n this._renderDateParts();\r\n this._selectNextPart()\r\n }\r\n e.preventDefault()\r\n },\r\n _isDateValid: date => isDate(date) && !isNaN(date),\r\n _isValueDirty() {\r\n var value = this.dateOption(\"value\");\r\n return (this._maskValue && this._maskValue.getTime()) !== (value && value.getTime())\r\n },\r\n _fireChangeEvent() {\r\n this._clearSearchValue();\r\n if (this._isValueDirty()) {\r\n eventsEngine.trigger(this._input(), \"change\")\r\n }\r\n },\r\n _enterHandler(e) {\r\n this._fireChangeEvent();\r\n this._selectNextPart(FORWARD);\r\n e.preventDefault()\r\n },\r\n _focusOutHandler(e) {\r\n var shouldFireChangeEvent = this._useMaskBehavior() && !e.isDefaultPrevented();\r\n if (shouldFireChangeEvent) {\r\n this._fireChangeEvent();\r\n this.callBase(e);\r\n this._selectFirstPart(e)\r\n } else {\r\n this.callBase(e)\r\n }\r\n },\r\n _valueChangeEventHandler(e) {\r\n var text = this.option(\"text\");\r\n if (this._useMaskBehavior()) {\r\n this._saveValueChangeEvent(e);\r\n if (!text) {\r\n this._maskValue = null\r\n } else if (null === this._maskValue) {\r\n this._loadMaskValue(text)\r\n }\r\n this._saveMaskValue()\r\n } else {\r\n this.callBase(e)\r\n }\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"useMaskBehavior\":\r\n this._renderMask();\r\n break;\r\n case \"displayFormat\":\r\n case \"mode\":\r\n this.callBase(args);\r\n this._renderMask();\r\n break;\r\n case \"value\":\r\n this._loadMaskValue();\r\n this.callBase(args);\r\n this._renderDateParts();\r\n break;\r\n case \"emptyDateValue\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clearMaskState() {\r\n this._clearSearchValue();\r\n delete this._dateParts;\r\n delete this._activePartIndex;\r\n delete this._maskValue\r\n },\r\n reset() {\r\n this._clearMaskState();\r\n this._activePartIndex = 0;\r\n this.callBase()\r\n },\r\n _clean() {\r\n this.callBase();\r\n this._detachMaskEvents();\r\n this._clearMaskState()\r\n }\r\n});\r\nexport default DateBoxMask;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport DateBoxMask from \"./ui.date_box.mask\";\r\nregisterComponent(\"dxDateBox\", DateBoxMask);\r\nexport default DateBoxMask;\r\n","/**\r\n * DevExtreme (esm/ui/shared/ui.editor_factory_mixin.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n isDefined,\r\n isObject,\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport variableWrapper from \"../../core/utils/variable_wrapper\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n normalizeDataSourceOptions\r\n} from \"../../data/data_source/utils\";\r\nimport {\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nvar {\r\n isWrapped: isWrapped\r\n} = variableWrapper;\r\nimport \"../text_box\";\r\nimport \"../number_box\";\r\nimport \"../check_box\";\r\nimport \"../select_box\";\r\nimport \"../date_box\";\r\nvar CHECKBOX_SIZE_CLASS = \"checkbox-size\";\r\nvar EDITOR_INLINE_BLOCK = \"dx-editor-inline-block\";\r\nvar EditorFactoryMixin = function() {\r\n var getResultConfig = function(config, options) {\r\n return extend(config, {\r\n readOnly: options.readOnly,\r\n placeholder: options.placeholder,\r\n inputAttr: {\r\n id: options.id\r\n },\r\n tabIndex: options.tabIndex\r\n }, options.editorOptions)\r\n };\r\n var checkEnterBug = function() {\r\n return browser.mozilla || devices.real().ios\r\n };\r\n var getTextEditorConfig = function(options) {\r\n var data = {};\r\n var isEnterBug = checkEnterBug();\r\n var sharedData = options.sharedData || data;\r\n return getResultConfig({\r\n placeholder: options.placeholder,\r\n width: options.width,\r\n value: options.value,\r\n onValueChanged: function(e) {\r\n var needDelayedUpdate = \"filterRow\" === options.parentType || \"searchPanel\" === options.parentType;\r\n var isInputOrKeyUpEvent = e.event && (\"input\" === e.event.type || \"keyup\" === e.event.type);\r\n var updateValue = function(e, notFireEvent) {\r\n options && options.setValue(e.value, notFireEvent)\r\n };\r\n clearTimeout(data.valueChangeTimeout);\r\n if (isInputOrKeyUpEvent && needDelayedUpdate) {\r\n sharedData.valueChangeTimeout = data.valueChangeTimeout = setTimeout((function() {\r\n updateValue(e, data.valueChangeTimeout !== sharedData.valueChangeTimeout)\r\n }), isDefined(options.updateValueTimeout) ? options.updateValueTimeout : 0)\r\n } else {\r\n updateValue(e)\r\n }\r\n },\r\n onKeyDown: function(e) {\r\n if (isEnterBug && \"enter\" === normalizeKeyName(e.event)) {\r\n eventsEngine.trigger($(e.component._input()), \"change\")\r\n }\r\n },\r\n valueChangeEvent: \"change\" + (\"filterRow\" === options.parentType ? \" keyup input\" : \"\")\r\n }, options)\r\n };\r\n var prepareBooleanEditor = function(options) {\r\n if (\"filterRow\" === options.parentType || \"filterBuilder\" === options.parentType) {\r\n prepareSelectBox(extend(options, {\r\n lookup: {\r\n displayExpr: function(data) {\r\n if (true === data) {\r\n return options.trueText || \"true\"\r\n } else if (false === data) {\r\n return options.falseText || \"false\"\r\n }\r\n },\r\n dataSource: [true, false]\r\n }\r\n }))\r\n } else {\r\n ! function(options) {\r\n options.editorName = \"dxCheckBox\";\r\n options.editorOptions = getResultConfig({\r\n elementAttr: {\r\n id: options.id\r\n },\r\n value: isDefined(options.value) ? options.value : void 0,\r\n hoverStateEnabled: !options.readOnly,\r\n focusStateEnabled: !options.readOnly,\r\n activeStateEnabled: false,\r\n onValueChanged: function(e) {\r\n options.setValue && options.setValue(e.value, e)\r\n }\r\n }, options)\r\n }(options)\r\n }\r\n };\r\n\r\n function prepareSelectBox(options) {\r\n var lookup = options.lookup;\r\n var displayGetter;\r\n var dataSource;\r\n var postProcess;\r\n var isFilterRow = \"filterRow\" === options.parentType;\r\n if (lookup) {\r\n displayGetter = compileGetter(lookup.displayExpr);\r\n dataSource = lookup.dataSource;\r\n if (isFunction(dataSource) && !isWrapped(dataSource)) {\r\n dataSource = dataSource(options.row || {});\r\n ! function(options) {\r\n if (options.row && options.row.watch && \"dataRow\" === options.parentType) {\r\n var editorOptions = options.editorOptions || {};\r\n options.editorOptions = editorOptions;\r\n var selectBox;\r\n var onInitialized = editorOptions.onInitialized;\r\n editorOptions.onInitialized = function(e) {\r\n onInitialized && onInitialized.apply(this, arguments);\r\n selectBox = e.component;\r\n selectBox.on(\"disposing\", stopWatch)\r\n };\r\n var dataSource;\r\n var stopWatch = options.row.watch(() => {\r\n dataSource = options.lookup.dataSource(options.row);\r\n return dataSource && dataSource.filter\r\n }, () => {\r\n selectBox.option(\"dataSource\", dataSource)\r\n }, row => {\r\n options.row = row\r\n })\r\n }\r\n }(options)\r\n }\r\n if (isObject(dataSource) || Array.isArray(dataSource)) {\r\n dataSource = normalizeDataSourceOptions(dataSource);\r\n if (isFilterRow) {\r\n postProcess = dataSource.postProcess;\r\n dataSource.postProcess = function(items) {\r\n if (0 === this.pageIndex()) {\r\n items = items.slice(0);\r\n items.unshift(null)\r\n }\r\n if (postProcess) {\r\n return postProcess.call(this, items)\r\n }\r\n return items\r\n }\r\n }\r\n }\r\n var allowClearing = Boolean(lookup.allowClearing && !isFilterRow);\r\n options.editorName = \"dxSelectBox\";\r\n options.editorOptions = getResultConfig({\r\n searchEnabled: true,\r\n value: options.value,\r\n valueExpr: options.lookup.valueExpr,\r\n searchExpr: options.lookup.searchExpr || options.lookup.displayExpr,\r\n allowClearing: allowClearing,\r\n showClearButton: allowClearing,\r\n displayExpr: function(data) {\r\n if (null === data) {\r\n return options.showAllText\r\n }\r\n return displayGetter(data)\r\n },\r\n dataSource: dataSource,\r\n onValueChanged: function(e) {\r\n var params = [e.value];\r\n !isFilterRow && params.push(e.component.option(\"text\"));\r\n options.setValue.apply(this, params)\r\n }\r\n }, options)\r\n }\r\n }\r\n return {\r\n createEditor: function($container, options) {\r\n options.cancel = false;\r\n options.editorElement = getPublicElement($container);\r\n if (!isDefined(options.tabIndex)) {\r\n options.tabIndex = this.option(\"tabIndex\")\r\n }\r\n if (options.lookup) {\r\n prepareSelectBox(options)\r\n } else {\r\n switch (options.dataType) {\r\n case \"date\":\r\n case \"datetime\":\r\n ! function(options) {\r\n options.editorName = \"dxDateBox\";\r\n options.editorOptions = getResultConfig({\r\n value: options.value,\r\n onValueChanged: function(args) {\r\n options.setValue(args.value)\r\n },\r\n onKeyDown: function(_ref) {\r\n var {\r\n component: component,\r\n event: event\r\n } = _ref;\r\n var useMaskBehavior = component.option(\"useMaskBehavior\");\r\n if ((checkEnterBug() || useMaskBehavior) && \"enter\" === normalizeKeyName(event)) {\r\n component.blur();\r\n component.focus()\r\n }\r\n },\r\n displayFormat: options.format,\r\n type: options.dataType,\r\n dateSerializationFormat: null,\r\n width: \"filterBuilder\" === options.parentType ? void 0 : \"auto\"\r\n }, options)\r\n }(options);\r\n break;\r\n case \"boolean\":\r\n prepareBooleanEditor(options);\r\n break;\r\n case \"number\":\r\n ! function(options) {\r\n var config = getTextEditorConfig(options);\r\n config.value = isDefined(options.value) ? options.value : null;\r\n options.editorName = \"dxNumberBox\";\r\n options.editorOptions = config\r\n }(options);\r\n break;\r\n default:\r\n ! function(options) {\r\n var config = getTextEditorConfig(options);\r\n var isSearching = \"searchPanel\" === options.parentType;\r\n if (options.editorType && \"dxTextBox\" !== options.editorType) {\r\n config.value = options.value\r\n } else {\r\n config.value = (value = options.value, isDefined(value) ? value.toString() : \"\")\r\n }\r\n var value;\r\n config.valueChangeEvent += isSearching ? \" keyup input search\" : \"\";\r\n config.mode = config.mode || (isSearching ? \"search\" : \"text\");\r\n options.editorName = \"dxTextBox\";\r\n options.editorOptions = config\r\n }(options)\r\n }\r\n }\r\n if (\"dataRow\" === options.parentType && options.editorType) {\r\n options.editorName = options.editorType\r\n }\r\n this.executeAction(\"onEditorPreparing\", options);\r\n if (options.cancel) {\r\n return\r\n }\r\n if (\"dataRow\" === options.parentType && !options.isOnForm && !isDefined(options.editorOptions.showValidationMark)) {\r\n options.editorOptions.showValidationMark = false\r\n }! function(that, options) {\r\n var $editorElement = $(options.editorElement);\r\n if (options.editorName && options.editorOptions && $editorElement[options.editorName]) {\r\n if (\"dxCheckBox\" === options.editorName || \"dxSwitch\" === options.editorName) {\r\n if (!options.isOnForm) {\r\n $editorElement.addClass(that.addWidgetPrefix(CHECKBOX_SIZE_CLASS));\r\n $editorElement.parent().addClass(EDITOR_INLINE_BLOCK)\r\n }\r\n }\r\n that._createComponent($editorElement, options.editorName, options.editorOptions);\r\n if (\"dxDateBox\" === options.editorName) {\r\n var dateBox = $editorElement.dxDateBox(\"instance\");\r\n var defaultEnterKeyHandler = dateBox._supportedKeys().enter;\r\n dateBox.registerKeyHandler(\"enter\", e => {\r\n if (dateBox.option(\"opened\")) {\r\n defaultEnterKeyHandler(e)\r\n }\r\n return true\r\n })\r\n }\r\n if (\"dxTextArea\" === options.editorName) {\r\n $editorElement.dxTextArea(\"instance\").registerKeyHandler(\"enter\", (function(event) {\r\n if (\"enter\" === normalizeKeyName(event) && !event.ctrlKey && !event.shiftKey) {\r\n event.stopPropagation()\r\n }\r\n }))\r\n }\r\n }\r\n }(this, options);\r\n this.executeAction(\"onEditorPrepared\", options)\r\n }\r\n }\r\n}();\r\nexport default EditorFactoryMixin;\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.editor_factory.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n setOuterWidth,\r\n getOuterWidth,\r\n setOuterHeight,\r\n getOuterHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport positionUtils from \"../../animation/position\";\r\nimport {\r\n addNamespace,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport EditorFactoryMixin from \"../shared/ui.editor_factory_mixin\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nvar EDITOR_INLINE_BLOCK = \"dx-editor-inline-block\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar FOCUS_OVERLAY_CLASS = \"focus-overlay\";\r\nvar CONTENT_CLASS = \"content\";\r\nvar FOCUSED_ELEMENT_CLASS = \"dx-focused\";\r\nvar ROW_CLASS = \"dx-row\";\r\nvar MODULE_NAMESPACE = \"dxDataGridEditorFactory\";\r\nvar UPDATE_FOCUS_EVENTS = addNamespace([pointerEvents.down, \"focusin\", clickEventName].join(\" \"), MODULE_NAMESPACE);\r\nvar DX_HIDDEN = \"dx-hidden\";\r\nvar EditorFactory = modules.ViewController.inherit({\r\n _getFocusedElement: function($dataGridElement) {\r\n var rowSelector = this.option(\"focusedRowEnabled\") ? \"tr[tabindex]:focus\" : \"tr[tabindex]:not(.dx-data-row):focus\";\r\n var focusedElementSelector = \"td[tabindex]:focus, \".concat(rowSelector, \", input:focus, textarea:focus, .dx-lookup-field:focus, .dx-checkbox:focus, .dx-switch:focus, .dx-dropdownbutton .dx-buttongroup:focus\");\r\n var $focusedElement = $dataGridElement.find(focusedElementSelector);\r\n return this.elementIsInsideGrid($focusedElement) && $focusedElement\r\n },\r\n _getFocusCellSelector: function() {\r\n return \".dx-row > td\"\r\n },\r\n _updateFocusCore: function() {\r\n var $dataGridElement = this.component && this.component.$element();\r\n var $focusCell;\r\n var hideBorders;\r\n if ($dataGridElement) {\r\n var $focus = this._getFocusedElement($dataGridElement);\r\n if ($focus && $focus.length) {\r\n if (!$focus.hasClass(CELL_FOCUS_DISABLED_CLASS) && !$focus.hasClass(ROW_CLASS)) {\r\n $focusCell = $focus.closest(this._getFocusCellSelector() + \", .\" + CELL_FOCUS_DISABLED_CLASS);\r\n hideBorders = $focusCell.get(0) !== $focus.get(0) && $focusCell.hasClass(EDITOR_INLINE_BLOCK);\r\n $focus = $focusCell\r\n }\r\n if ($focus.length && !$focus.hasClass(CELL_FOCUS_DISABLED_CLASS)) {\r\n this.focus($focus, hideBorders);\r\n return\r\n }\r\n }\r\n }\r\n this.loseFocus()\r\n },\r\n _updateFocus: function(e) {\r\n var that = this;\r\n var isFocusOverlay = e && e.event && $(e.event.target).hasClass(that.addWidgetPrefix(FOCUS_OVERLAY_CLASS));\r\n that._isFocusOverlay = that._isFocusOverlay || isFocusOverlay;\r\n clearTimeout(that._updateFocusTimeoutID);\r\n that._updateFocusTimeoutID = setTimeout((function() {\r\n delete that._updateFocusTimeoutID;\r\n if (!that._isFocusOverlay) {\r\n that._updateFocusCore()\r\n }\r\n that._isFocusOverlay = false\r\n }))\r\n },\r\n _updateFocusOverlaySize: function($element, position) {\r\n $element.hide();\r\n var location = positionUtils.calculate($element, extend({\r\n collision: \"fit\"\r\n }, position));\r\n if (location.h.oversize > 0) {\r\n setOuterWidth($element, getOuterWidth($element) - location.h.oversize)\r\n }\r\n if (location.v.oversize > 0) {\r\n setOuterHeight($element, getOuterHeight($element) - location.v.oversize)\r\n }\r\n $element.show()\r\n },\r\n callbackNames: function() {\r\n return [\"focused\"]\r\n },\r\n focus: function($element, hideBorder) {\r\n var that = this;\r\n if (void 0 === $element) {\r\n return that._$focusedElement\r\n } else if ($element) {\r\n if (!$element.is(that._$focusedElement)) {\r\n that._$focusedElement && that._$focusedElement.removeClass(FOCUSED_ELEMENT_CLASS)\r\n }\r\n that._$focusedElement = $element;\r\n clearTimeout(that._focusTimeoutID);\r\n that._focusTimeoutID = setTimeout((function() {\r\n delete that._focusTimeoutID;\r\n that.renderFocusOverlay($element, hideBorder);\r\n $element.addClass(FOCUSED_ELEMENT_CLASS);\r\n that.focused.fire($element)\r\n }))\r\n }\r\n },\r\n refocus: function() {\r\n var $focus = this.focus();\r\n this.focus($focus)\r\n },\r\n renderFocusOverlay: function($element, hideBorder) {\r\n if (!gridCoreUtils.isElementInCurrentGrid(this, $element)) {\r\n return\r\n }\r\n if (!this._$focusOverlay) {\r\n this._$focusOverlay = $(\"
\").addClass(this.addWidgetPrefix(FOCUS_OVERLAY_CLASS))\r\n }\r\n if (hideBorder) {\r\n this._$focusOverlay.addClass(DX_HIDDEN)\r\n } else if ($element.length) {\r\n var align = browser.mozilla ? \"right bottom\" : \"left top\";\r\n var $content = $element.closest(\".\" + this.addWidgetPrefix(CONTENT_CLASS));\r\n var elemCoord = getBoundingRect($element.get(0));\r\n this._$focusOverlay.removeClass(DX_HIDDEN).appendTo($content);\r\n setOuterHeight(this._$focusOverlay, elemCoord.bottom - elemCoord.top + 1);\r\n setOuterWidth(this._$focusOverlay, elemCoord.right - elemCoord.left + 1);\r\n var focusOverlayPosition = {\r\n precise: true,\r\n my: align,\r\n at: align,\r\n of: $element,\r\n boundary: $content.length && $content\r\n };\r\n this._updateFocusOverlaySize(this._$focusOverlay, focusOverlayPosition);\r\n positionUtils.setup(this._$focusOverlay, focusOverlayPosition);\r\n this._$focusOverlay.css(\"visibility\", \"visible\")\r\n }\r\n },\r\n resize: function() {\r\n var $focusedElement = this._$focusedElement;\r\n if ($focusedElement) {\r\n this.focus($focusedElement)\r\n }\r\n },\r\n loseFocus: function() {\r\n this._$focusedElement && this._$focusedElement.removeClass(FOCUSED_ELEMENT_CLASS);\r\n this._$focusedElement = null;\r\n this._$focusOverlay && this._$focusOverlay.addClass(DX_HIDDEN)\r\n },\r\n init: function() {\r\n this.createAction(\"onEditorPreparing\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n });\r\n this.createAction(\"onEditorPrepared\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n });\r\n this._updateFocusHandler = this._updateFocusHandler || this.createAction(this._updateFocus.bind(this));\r\n eventsEngine.on(domAdapter.getDocument(), UPDATE_FOCUS_EVENTS, this._updateFocusHandler);\r\n this._attachContainerEventHandlers()\r\n },\r\n _attachContainerEventHandlers: function() {\r\n var that = this;\r\n var $container = that.component && that.component.$element();\r\n if ($container) {\r\n eventsEngine.on($container, addNamespace(\"keydown\", MODULE_NAMESPACE), (function(e) {\r\n if (\"tab\" === normalizeKeyName(e)) {\r\n that._updateFocusHandler(e)\r\n }\r\n }))\r\n }\r\n },\r\n dispose: function() {\r\n clearTimeout(this._focusTimeoutID);\r\n clearTimeout(this._updateFocusTimeoutID);\r\n eventsEngine.off(domAdapter.getDocument(), UPDATE_FOCUS_EVENTS, this._updateFocusHandler)\r\n }\r\n}).include(EditorFactoryMixin);\r\nexport var editorFactoryModule = {\r\n defaultOptions: function() {\r\n return {}\r\n },\r\n controllers: {\r\n editorFactory: EditorFactory\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.editor_factory.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n editorFactoryModule\r\n} from \"../grid_core/ui.grid_core.editor_factory\";\r\ngridCore.registerModule(\"editorFactory\", editorFactoryModule);\r\n","/**\r\n * DevExtreme (esm/ui/dialog.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight,\r\n getWidth\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n Component\r\n} from \"../core/component\";\r\nimport Action from \"../core/action\";\r\nimport devices from \"../core/devices\";\r\nimport config from \"../core/config\";\r\nimport {\r\n resetActiveElement\r\n} from \"../core/utils/dom\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n isPlainObject\r\n} from \"../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n value as getViewport\r\n} from \"../core/utils/view_port\";\r\nimport messageLocalization from \"../localization/message\";\r\nimport errors from \"./widget/ui.errors\";\r\nimport Popup from \"./popup\";\r\nimport {\r\n ensureDefined\r\n} from \"../core/utils/common\";\r\nvar window = getWindow();\r\nvar DEFAULT_BUTTON = {\r\n text: \"OK\",\r\n onClick: function() {\r\n return true\r\n }\r\n};\r\nvar DX_DIALOG_CLASSNAME = \"dx-dialog\";\r\nvar DX_DIALOG_WRAPPER_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-wrapper\");\r\nvar DX_DIALOG_ROOT_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-root\");\r\nvar DX_DIALOG_CONTENT_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-content\");\r\nvar DX_DIALOG_MESSAGE_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-message\");\r\nvar DX_DIALOG_BUTTONS_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-buttons\");\r\nvar DX_DIALOG_BUTTON_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-button\");\r\nvar DX_BUTTON_CLASSNAME = \"dx-button\";\r\nexport var FakeDialogComponent = Component.inherit({\r\n ctor: function(element, options) {\r\n this.callBase(options)\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n width: 276\r\n }\r\n }])\r\n }\r\n});\r\nexport var custom = function(options) {\r\n var _options$title;\r\n var deferred = new Deferred;\r\n var defaultOptions = (new FakeDialogComponent).option();\r\n options = extend(defaultOptions, options);\r\n var $element = $(\"
\").addClass(DX_DIALOG_CLASSNAME).appendTo(getViewport());\r\n var isMessageDefined = \"message\" in options;\r\n var isMessageHtmlDefined = \"messageHtml\" in options;\r\n if (isMessageDefined) {\r\n errors.log(\"W1013\")\r\n }\r\n var messageHtml = String(isMessageHtmlDefined ? options.messageHtml : options.message);\r\n var $message = $(\"
\").addClass(DX_DIALOG_MESSAGE_CLASSNAME).html(messageHtml);\r\n var popupToolbarItems = [];\r\n each(options.buttons || [DEFAULT_BUTTON], (function() {\r\n var action = new Action(this.onClick, {\r\n context: popupInstance\r\n });\r\n popupToolbarItems.push({\r\n toolbar: \"bottom\",\r\n location: devices.current().android ? \"after\" : \"center\",\r\n widget: \"dxButton\",\r\n options: extend({}, this, {\r\n onClick: function() {\r\n var result = action.execute(...arguments);\r\n hide(result)\r\n }\r\n })\r\n })\r\n }));\r\n var popupInstance = new Popup($element, extend({\r\n title: null !== (_options$title = options.title) && void 0 !== _options$title ? _options$title : \"\",\r\n showTitle: ensureDefined(options.showTitle, true),\r\n dragEnabled: ensureDefined(options.dragEnabled, true),\r\n height: \"auto\",\r\n width: options.width,\r\n showCloseButton: options.showCloseButton || false,\r\n ignoreChildEvents: false,\r\n container: $element,\r\n visualContainer: window,\r\n onContentReady: function(args) {\r\n args.component.$content().addClass(DX_DIALOG_CONTENT_CLASSNAME).append($message)\r\n },\r\n onShowing: function(e) {\r\n e.component.bottomToolbar().addClass(DX_DIALOG_BUTTONS_CLASSNAME).find(\".\".concat(DX_BUTTON_CLASSNAME)).addClass(DX_DIALOG_BUTTON_CLASSNAME);\r\n resetActiveElement()\r\n },\r\n onShown: function(e) {\r\n var $firstButton = e.component.bottomToolbar().find(\".\".concat(DX_BUTTON_CLASSNAME)).first();\r\n eventsEngine.trigger($firstButton, \"focus\")\r\n },\r\n onHiding: function() {\r\n deferred.reject()\r\n },\r\n toolbarItems: popupToolbarItems,\r\n animation: {\r\n show: {\r\n type: \"pop\",\r\n duration: 400\r\n },\r\n hide: {\r\n type: \"pop\",\r\n duration: 400,\r\n to: {\r\n opacity: 0,\r\n scale: 0\r\n },\r\n from: {\r\n opacity: 1,\r\n scale: 1\r\n }\r\n }\r\n },\r\n rtlEnabled: config().rtlEnabled,\r\n position: {\r\n boundaryOffset: {\r\n h: 10,\r\n v: 0\r\n }\r\n }\r\n }, options.popupOptions));\r\n popupInstance.$wrapper().addClass(DX_DIALOG_WRAPPER_CLASSNAME);\r\n if (options.position) {\r\n popupInstance.option(\"position\", options.position)\r\n }\r\n popupInstance.$wrapper().addClass(DX_DIALOG_ROOT_CLASSNAME);\r\n\r\n function hide(value) {\r\n deferred.resolve(value);\r\n popupInstance.hide().done((function() {\r\n popupInstance.$element().remove()\r\n }))\r\n }\r\n return {\r\n show: function() {\r\n if (\"android\" === devices.real().platform) {\r\n var isPortrait = getHeight(window) > getWidth(window);\r\n var width = isPortrait ? \"80%\" : \"60%\";\r\n popupInstance.option({\r\n width: width\r\n })\r\n }\r\n popupInstance.show();\r\n return deferred.promise()\r\n },\r\n hide: hide\r\n }\r\n};\r\nexport var alert = function(messageHtml) {\r\n var title = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : \"\";\r\n var showTitle = arguments.length > 2 ? arguments[2] : void 0;\r\n var options = isPlainObject(messageHtml) ? messageHtml : {\r\n title: title,\r\n messageHtml: messageHtml,\r\n showTitle: showTitle,\r\n dragEnabled: showTitle\r\n };\r\n return custom(options).show()\r\n};\r\nexport var confirm = function(messageHtml) {\r\n var title = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : \"\";\r\n var showTitle = arguments.length > 2 ? arguments[2] : void 0;\r\n var options = isPlainObject(messageHtml) ? messageHtml : {\r\n title: title,\r\n messageHtml: messageHtml,\r\n showTitle: showTitle,\r\n buttons: [{\r\n text: messageLocalization.format(\"Yes\"),\r\n onClick: function() {\r\n return true\r\n }\r\n }, {\r\n text: messageLocalization.format(\"No\"),\r\n onClick: function() {\r\n return false\r\n }\r\n }],\r\n dragEnabled: showTitle\r\n };\r\n return custom(options).show()\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.editing_constants.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var EDITOR_CELL_CLASS = \"dx-editor-cell\";\r\nexport var ROW_CLASS = \"dx-row\";\r\nexport var CELL_MODIFIED_CLASS = \"dx-cell-modified\";\r\nexport var ROW_SELECTED_CLASS = \"dx-selection\";\r\nexport var EDIT_FORM_CLASS = \"edit-form\";\r\nexport var DATA_EDIT_DATA_INSERT_TYPE = \"insert\";\r\nexport var DATA_EDIT_DATA_REMOVE_TYPE = \"remove\";\r\nexport var EDITING_POPUP_OPTION_NAME = \"editing.popup\";\r\nexport var EDITING_FORM_OPTION_NAME = \"editing.form\";\r\nexport var EDITING_EDITROWKEY_OPTION_NAME = \"editing.editRowKey\";\r\nexport var EDITING_EDITCOLUMNNAME_OPTION_NAME = \"editing.editColumnName\";\r\nexport var TARGET_COMPONENT_NAME = \"targetComponent\";\r\nexport var EDITORS_INPUT_SELECTOR = \"input:not([type='hidden'])\";\r\nexport var FOCUSABLE_ELEMENT_SELECTOR = \"[tabindex], \" + EDITORS_INPUT_SELECTOR;\r\nexport var EDIT_MODE_BATCH = \"batch\";\r\nexport var EDIT_MODE_ROW = \"row\";\r\nexport var EDIT_MODE_CELL = \"cell\";\r\nexport var EDIT_MODE_FORM = \"form\";\r\nexport var EDIT_MODE_POPUP = \"popup\";\r\nexport var FIRST_NEW_ROW_POSITION = \"first\";\r\nexport var LAST_NEW_ROW_POSITION = \"last\";\r\nexport var PAGE_BOTTOM_NEW_ROW_POSITION = \"pageBottom\";\r\nexport var PAGE_TOP_NEW_ROW_POSITION = \"pageTop\";\r\nexport var VIEWPORT_BOTTOM_NEW_ROW_POSITION = \"viewportBottom\";\r\nexport var VIEWPORT_TOP_NEW_ROW_POSITION = \"viewportTop\";\r\nexport var EDIT_MODES = [EDIT_MODE_BATCH, EDIT_MODE_ROW, EDIT_MODE_CELL, EDIT_MODE_FORM, EDIT_MODE_POPUP];\r\nexport var ROW_BASED_MODES = [EDIT_MODE_ROW, EDIT_MODE_FORM, EDIT_MODE_POPUP];\r\nexport var MODES_WITH_DELAYED_FOCUS = [EDIT_MODE_ROW, EDIT_MODE_FORM];\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.editing.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Guid from \"../../core/guid\";\r\nimport {\r\n resetActiveElement\r\n} from \"../../core/utils/dom\";\r\nimport {\r\n isDefined,\r\n isObject,\r\n isFunction,\r\n isEmptyObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport {\r\n createObjectWithChanges\r\n} from \"../../data/array_utils\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n confirm\r\n} from \"../dialog\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n when,\r\n Deferred,\r\n fromPromise\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n equalByValue,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport * as iconUtils from \"../../core/utils/icon\";\r\nimport {\r\n EDITOR_CELL_CLASS,\r\n ROW_CLASS,\r\n EDIT_FORM_CLASS,\r\n DATA_EDIT_DATA_INSERT_TYPE,\r\n DATA_EDIT_DATA_REMOVE_TYPE,\r\n EDITING_POPUP_OPTION_NAME,\r\n EDITING_EDITROWKEY_OPTION_NAME,\r\n EDITING_EDITCOLUMNNAME_OPTION_NAME,\r\n TARGET_COMPONENT_NAME,\r\n EDITORS_INPUT_SELECTOR,\r\n FOCUSABLE_ELEMENT_SELECTOR,\r\n EDIT_MODE_ROW,\r\n EDIT_MODES,\r\n ROW_BASED_MODES,\r\n FIRST_NEW_ROW_POSITION,\r\n LAST_NEW_ROW_POSITION,\r\n PAGE_BOTTOM_NEW_ROW_POSITION,\r\n PAGE_TOP_NEW_ROW_POSITION,\r\n VIEWPORT_BOTTOM_NEW_ROW_POSITION,\r\n VIEWPORT_TOP_NEW_ROW_POSITION\r\n} from \"./ui.grid_core.editing_constants\";\r\nvar READONLY_CLASS = \"readonly\";\r\nvar LINK_CLASS = \"dx-link\";\r\nvar ROW_SELECTED = \"dx-selection\";\r\nvar EDIT_BUTTON_CLASS = \"dx-edit-button\";\r\nvar COMMAND_EDIT_CLASS = \"dx-command-edit\";\r\nvar COMMAND_EDIT_WITH_ICONS_CLASS = COMMAND_EDIT_CLASS + \"-with-icons\";\r\nvar INSERT_INDEX = \"__DX_INSERT_INDEX__\";\r\nvar ROW_INSERTED = \"dx-row-inserted\";\r\nvar ROW_MODIFIED = \"dx-row-modified\";\r\nvar CELL_MODIFIED = \"dx-cell-modified\";\r\nvar EDITING_NAMESPACE = \"dxDataGridEditing\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar DATA_EDIT_DATA_UPDATE_TYPE = \"update\";\r\nvar DEFAULT_START_EDIT_ACTION = \"click\";\r\nvar EDIT_LINK_CLASS = {\r\n save: \"dx-link-save\",\r\n cancel: \"dx-link-cancel\",\r\n edit: \"dx-link-edit\",\r\n undelete: \"dx-link-undelete\",\r\n delete: \"dx-link-delete\",\r\n add: \"dx-link-add\"\r\n};\r\nvar EDIT_ICON_CLASS = {\r\n save: \"save\",\r\n cancel: \"revert\",\r\n edit: \"edit\",\r\n undelete: \"revert\",\r\n delete: \"trash\",\r\n add: \"add\"\r\n};\r\nvar METHOD_NAMES = {\r\n edit: \"editRow\",\r\n delete: \"deleteRow\",\r\n undelete: \"undeleteRow\",\r\n save: \"saveEditData\",\r\n cancel: \"cancelEditData\",\r\n add: \"addRowByRowIndex\"\r\n};\r\nvar ACTION_OPTION_NAMES = {\r\n add: \"allowAdding\",\r\n edit: \"allowUpdating\",\r\n delete: \"allowDeleting\"\r\n};\r\nvar BUTTON_NAMES = [\"edit\", \"save\", \"cancel\", \"delete\", \"undelete\"];\r\nvar EDITING_CHANGES_OPTION_NAME = \"editing.changes\";\r\nvar createFailureHandler = function(deferred) {\r\n return function(arg) {\r\n var error = arg instanceof Error ? arg : new Error(arg && String(arg) || \"Unknown error\");\r\n deferred.reject(error)\r\n }\r\n};\r\nvar isEditingCell = function(isEditRow, cellOptions) {\r\n return cellOptions.isEditing || isEditRow && cellOptions.column.allowEditing\r\n};\r\nvar isEditingOrShowEditorAlwaysDataCell = function(isEditRow, cellOptions) {\r\n var isCommandCell = !!cellOptions.column.command;\r\n var isEditing = isEditingCell(isEditRow, cellOptions);\r\n var isEditorCell = !isCommandCell && (isEditing || cellOptions.column.showEditorAlways);\r\n return \"data\" === cellOptions.rowType && isEditorCell\r\n};\r\nvar EditingController = modules.ViewController.inherit(function() {\r\n var getButtonIndex = (buttons, name) => {\r\n var result = -1;\r\n buttons.some((button, index) => {\r\n if (getButtonName(button) === name) {\r\n result = index;\r\n return true\r\n }\r\n });\r\n return result\r\n };\r\n\r\n function getButtonName(button) {\r\n return isObject(button) ? button.name : button\r\n }\r\n return {\r\n init: function() {\r\n this._columnsController = this.getController(\"columns\");\r\n this._dataController = this.getController(\"data\");\r\n this._rowsView = this.getView(\"rowsView\");\r\n this._lastOperation = null;\r\n if (this._deferreds) {\r\n this._deferreds.forEach(d => d.reject(\"cancel\"))\r\n }\r\n this._deferreds = [];\r\n if (!this._dataChangedHandler) {\r\n this._dataChangedHandler = this._handleDataChanged.bind(this);\r\n this._dataController.changed.add(this._dataChangedHandler)\r\n }\r\n if (!this._saveEditorHandler) {\r\n this.createAction(\"onInitNewRow\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onRowInserting\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onRowInserted\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onEditingStart\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onRowUpdating\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onRowUpdated\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onRowRemoving\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onRowRemoved\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onSaved\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onSaving\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onEditCanceling\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onEditCanceled\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n }\r\n this._updateEditColumn();\r\n this._updateEditButtons();\r\n if (!this._internalState) {\r\n this._internalState = []\r\n }\r\n this.component._optionsByReference[EDITING_EDITROWKEY_OPTION_NAME] = true;\r\n this.component._optionsByReference[EDITING_CHANGES_OPTION_NAME] = true\r\n },\r\n getEditMode: function() {\r\n var editMode = this.option(\"editing.mode\");\r\n if (-1 !== EDIT_MODES.indexOf(editMode)) {\r\n return editMode\r\n }\r\n return EDIT_MODE_ROW\r\n },\r\n _getDefaultEditorTemplate: function() {\r\n return (container, options) => {\r\n var $editor = $(\"
\").appendTo(container);\r\n this.getController(\"editorFactory\").createEditor($editor, extend({}, options.column, {\r\n value: options.value,\r\n setValue: options.setValue,\r\n row: options.row,\r\n parentType: \"dataRow\",\r\n width: null,\r\n readOnly: !options.setValue,\r\n isOnForm: options.isOnForm,\r\n id: options.id\r\n }))\r\n }\r\n },\r\n _getNewRowPosition: function() {\r\n var newRowPosition = this.option(\"editing.newRowPosition\");\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n if (\"virtual\" === scrollingMode) {\r\n switch (newRowPosition) {\r\n case PAGE_TOP_NEW_ROW_POSITION:\r\n return VIEWPORT_TOP_NEW_ROW_POSITION;\r\n case PAGE_BOTTOM_NEW_ROW_POSITION:\r\n return VIEWPORT_BOTTOM_NEW_ROW_POSITION;\r\n default:\r\n return newRowPosition\r\n }\r\n }\r\n return newRowPosition\r\n },\r\n getChanges: function() {\r\n return this.option(EDITING_CHANGES_OPTION_NAME)\r\n },\r\n getInsertRowCount: function() {\r\n var changes = this.option(EDITING_CHANGES_OPTION_NAME);\r\n return changes.filter(change => \"insert\" === change.type).length\r\n },\r\n resetChanges: function() {\r\n var changes = this.getChanges();\r\n var needReset = null === changes || void 0 === changes ? void 0 : changes.length;\r\n if (needReset) {\r\n this._silentOption(EDITING_CHANGES_OPTION_NAME, [])\r\n }\r\n },\r\n _getInternalData: function(key) {\r\n return this._internalState.filter(item => equalByValue(item.key, key))[0]\r\n },\r\n _addInternalData: function(params) {\r\n var internalData = this._getInternalData(params.key);\r\n if (internalData) {\r\n return extend(internalData, params)\r\n }\r\n this._internalState.push(params);\r\n return params\r\n },\r\n _getOldData: function(key) {\r\n var _this$_getInternalDat;\r\n return null === (_this$_getInternalDat = this._getInternalData(key)) || void 0 === _this$_getInternalDat ? void 0 : _this$_getInternalDat.oldData\r\n },\r\n getUpdatedData: function(data) {\r\n var key = this._dataController.keyOf(data);\r\n var changes = this.getChanges();\r\n var editIndex = gridCoreUtils.getIndexByKey(key, changes);\r\n if (changes[editIndex]) {\r\n return createObjectWithChanges(data, changes[editIndex].data)\r\n }\r\n return data\r\n },\r\n getInsertedData: function() {\r\n return this.getChanges().filter(change => change.data && change.type === DATA_EDIT_DATA_INSERT_TYPE).map(change => change.data)\r\n },\r\n getRemovedData: function() {\r\n return this.getChanges().filter(change => this._getOldData(change.key) && change.type === DATA_EDIT_DATA_REMOVE_TYPE).map(change => this._getOldData(change.key))\r\n },\r\n _fireDataErrorOccurred: function(arg) {\r\n if (\"cancel\" === arg) {\r\n return\r\n }\r\n var $popupContent = this.getPopupContent();\r\n this._dataController.dataErrorOccurred.fire(arg, $popupContent)\r\n },\r\n _needToCloseEditableCell: noop,\r\n _closeEditItem: noop,\r\n _handleDataChanged: noop,\r\n _isDefaultButtonVisible: function(button, options) {\r\n var result = true;\r\n switch (button.name) {\r\n case \"delete\":\r\n result = this.allowDeleting(options);\r\n break;\r\n case \"undelete\":\r\n result = false\r\n }\r\n return result\r\n },\r\n _isButtonVisible: function(button, options) {\r\n var visible = button.visible;\r\n if (!isDefined(visible)) {\r\n return this._isDefaultButtonVisible(button, options)\r\n }\r\n return isFunction(visible) ? visible.call(button, {\r\n component: options.component,\r\n row: options.row,\r\n column: options.column\r\n }) : visible\r\n },\r\n _isButtonDisabled: function(button, options) {\r\n var disabled = button.disabled;\r\n return isFunction(disabled) ? disabled.call(button, {\r\n component: options.component,\r\n row: options.row,\r\n column: options.column\r\n }) : !!disabled\r\n },\r\n _getButtonConfig: function(button, options) {\r\n var config = isObject(button) ? button : {};\r\n var buttonName = getButtonName(button);\r\n var editingTexts = (options => {\r\n var editingTexts = options.component.option(\"editing.texts\") || {};\r\n return {\r\n save: editingTexts.saveRowChanges,\r\n cancel: editingTexts.cancelRowChanges,\r\n edit: editingTexts.editRow,\r\n undelete: editingTexts.undeleteRow,\r\n delete: editingTexts.deleteRow,\r\n add: editingTexts.addRowToNode\r\n }\r\n })(options);\r\n var methodName = METHOD_NAMES[buttonName];\r\n var editingOptions = this.option(\"editing\");\r\n var actionName = ACTION_OPTION_NAMES[buttonName];\r\n var allowAction = actionName ? editingOptions[actionName] : true;\r\n return extend({\r\n name: buttonName,\r\n text: editingTexts[buttonName],\r\n cssClass: EDIT_LINK_CLASS[buttonName]\r\n }, {\r\n onClick: methodName && (e => {\r\n var event = e.event;\r\n event.stopPropagation();\r\n event.preventDefault();\r\n setTimeout(() => {\r\n options.row && allowAction && this[methodName] && this[methodName](options.row.rowIndex)\r\n })\r\n })\r\n }, config)\r\n },\r\n _getEditingButtons: function(options) {\r\n var buttonIndex;\r\n var haveCustomButtons = !!options.column.buttons;\r\n var buttons = (options.column.buttons || []).slice();\r\n if (haveCustomButtons) {\r\n buttonIndex = getButtonIndex(buttons, \"edit\");\r\n if (buttonIndex >= 0) {\r\n if (getButtonIndex(buttons, \"save\") < 0) {\r\n buttons.splice(buttonIndex + 1, 0, \"save\")\r\n }\r\n if (getButtonIndex(buttons, \"cancel\") < 0) {\r\n buttons.splice(getButtonIndex(buttons, \"save\") + 1, 0, \"cancel\")\r\n }\r\n }\r\n buttonIndex = getButtonIndex(buttons, \"delete\");\r\n if (buttonIndex >= 0 && getButtonIndex(buttons, \"undelete\") < 0) {\r\n buttons.splice(buttonIndex + 1, 0, \"undelete\")\r\n }\r\n } else {\r\n buttons = BUTTON_NAMES.slice()\r\n }\r\n return buttons.map(button => this._getButtonConfig(button, options))\r\n },\r\n _renderEditingButtons: function($container, buttons, options, change) {\r\n buttons.forEach(button => {\r\n if (this._isButtonVisible(button, options)) {\r\n this._createButton($container, button, options, change)\r\n }\r\n })\r\n },\r\n _getEditCommandCellTemplate: function() {\r\n return (container, options, change) => {\r\n var $container = $(container);\r\n if (\"data\" === options.rowType) {\r\n var buttons = this._getEditingButtons(options);\r\n this._renderEditingButtons($container, buttons, options, change);\r\n options.watch && options.watch(() => buttons.map(button => this._isButtonVisible(button, options)), () => {\r\n $container.empty();\r\n this._renderEditingButtons($container, buttons, options)\r\n })\r\n } else {\r\n gridCoreUtils.setEmptyText($container)\r\n }\r\n }\r\n },\r\n isRowBasedEditMode: function() {\r\n var editMode = this.getEditMode();\r\n return -1 !== ROW_BASED_MODES.indexOf(editMode)\r\n },\r\n getFirstEditableColumnIndex: function() {\r\n var columnsController = this.getController(\"columns\");\r\n var columnIndex;\r\n var visibleColumns = columnsController.getVisibleColumns();\r\n each(visibleColumns, (function(index, column) {\r\n if (column.allowEditing) {\r\n columnIndex = index;\r\n return false\r\n }\r\n }));\r\n return columnIndex\r\n },\r\n getFirstEditableCellInRow: function(rowIndex) {\r\n var rowsView = this.getView(\"rowsView\");\r\n return rowsView && rowsView._getCellElement(rowIndex ? rowIndex : 0, this.getFirstEditableColumnIndex())\r\n },\r\n getFocusedCellInRow: function(rowIndex) {\r\n return this.getFirstEditableCellInRow(rowIndex)\r\n },\r\n getIndexByKey: function(key, items) {\r\n return gridCoreUtils.getIndexByKey(key, items)\r\n },\r\n hasChanges: function(rowIndex) {\r\n var changes = this.getChanges();\r\n var result = false;\r\n for (var i = 0; i < (null === changes || void 0 === changes ? void 0 : changes.length); i++) {\r\n if (changes[i].type && (!isDefined(rowIndex) || this._dataController.getRowIndexByKey(changes[i].key) === rowIndex)) {\r\n result = true;\r\n break\r\n }\r\n }\r\n return result\r\n },\r\n dispose: function() {\r\n this.callBase();\r\n clearTimeout(this._inputFocusTimeoutID);\r\n eventsEngine.off(domAdapter.getDocument(), pointerEvents.up, this._pointerUpEditorHandler);\r\n eventsEngine.off(domAdapter.getDocument(), pointerEvents.down, this._pointerDownEditorHandler);\r\n eventsEngine.off(domAdapter.getDocument(), clickEventName, this._saveEditorHandler)\r\n },\r\n optionChanged: function(args) {\r\n if (\"editing\" === args.name) {\r\n var fullName = args.fullName;\r\n if (fullName === EDITING_EDITROWKEY_OPTION_NAME) {\r\n this._handleEditRowKeyChange(args)\r\n } else if (fullName === EDITING_CHANGES_OPTION_NAME) {\r\n this._handleChangesChange(args)\r\n } else if (!args.handled) {\r\n this._columnsController.reinit();\r\n this.init();\r\n this.resetChanges();\r\n this._resetEditColumnName();\r\n this._resetEditRowKey()\r\n }\r\n args.handled = true\r\n } else {\r\n this.callBase(args)\r\n }\r\n },\r\n _handleEditRowKeyChange: function(args) {\r\n var rowIndex = this._dataController.getRowIndexByKey(args.value);\r\n var oldRowIndexCorrection = this._getEditRowIndexCorrection();\r\n var oldRowIndex = this._dataController.getRowIndexByKey(args.previousValue) + oldRowIndexCorrection;\r\n if (isDefined(args.value)) {\r\n if (args.value !== args.previousValue) {\r\n this._editRowFromOptionChanged(rowIndex, oldRowIndex)\r\n }\r\n } else {\r\n this.cancelEditData()\r\n }\r\n },\r\n _handleChangesChange: function(args) {\r\n var dataController = this._dataController;\r\n var changes = args.value;\r\n if (!args.value.length && !args.previousValue.length) {\r\n return\r\n }\r\n changes.forEach(change => {\r\n if (\"insert\" === change.type) {\r\n this._addInsertInfo(change)\r\n } else {\r\n var _items$rowIndex;\r\n var items = dataController.items();\r\n var rowIndex = dataController.getRowIndexByKey(change.key);\r\n this._addInternalData({\r\n key: change.key,\r\n oldData: null === (_items$rowIndex = items[rowIndex]) || void 0 === _items$rowIndex ? void 0 : _items$rowIndex.data\r\n })\r\n }\r\n });\r\n dataController.updateItems({\r\n repaintChangesOnly: true,\r\n isLiveUpdate: false\r\n })\r\n },\r\n publicMethods: function() {\r\n return [\"addRow\", \"deleteRow\", \"undeleteRow\", \"editRow\", \"saveEditData\", \"cancelEditData\", \"hasEditData\"]\r\n },\r\n refresh: function() {\r\n if (!isDefined(this._pageIndex)) {\r\n return\r\n }\r\n this._refreshCore.apply(this, arguments)\r\n },\r\n _refreshCore: noop,\r\n isEditing: function() {\r\n var isEditRowKeyDefined = isDefined(this.option(EDITING_EDITROWKEY_OPTION_NAME));\r\n return isEditRowKeyDefined\r\n },\r\n isEditRow: function() {\r\n return false\r\n },\r\n _setEditRowKey: function(value, silent) {\r\n if (silent) {\r\n this._silentOption(EDITING_EDITROWKEY_OPTION_NAME, value)\r\n } else {\r\n this.option(EDITING_EDITROWKEY_OPTION_NAME, value)\r\n }\r\n },\r\n _setEditRowKeyByIndex: function(rowIndex, silent) {\r\n var key = this._dataController.getKeyByRowIndex(rowIndex);\r\n if (void 0 === key) {\r\n this._dataController.fireError(\"E1043\");\r\n return\r\n }\r\n this._setEditRowKey(key, silent)\r\n },\r\n getEditRowIndex: function() {\r\n return this._getVisibleEditRowIndex()\r\n },\r\n getEditFormRowIndex: function() {\r\n return -1\r\n },\r\n isEditRowByIndex(rowIndex) {\r\n var key = this._dataController.getKeyByRowIndex(rowIndex);\r\n var isKeyEqual = isDefined(key) && equalByValue(this.option(EDITING_EDITROWKEY_OPTION_NAME), key);\r\n if (isKeyEqual) {\r\n return this._getVisibleEditRowIndex() === rowIndex\r\n }\r\n return isKeyEqual\r\n },\r\n isEditCell: function(visibleRowIndex, columnIndex) {\r\n return this.isEditRowByIndex(visibleRowIndex) && this._getVisibleEditColumnIndex() === columnIndex\r\n },\r\n getPopupContent: noop,\r\n _isProcessedItem: function(item) {\r\n return false\r\n },\r\n _getInsertRowIndex: function(items, change, isProcessedItems) {\r\n var result = -1;\r\n var dataController = this._dataController;\r\n var key = this._getInsertAfterOrBeforeKey(change);\r\n if (!isDefined(key) && 0 === items.length) {\r\n result = 0\r\n } else if (isDefined(key)) {\r\n items.some((item, index) => {\r\n var isProcessedItem = isProcessedItems || this._isProcessedItem(item);\r\n if (isObject(item)) {\r\n if (isProcessedItem || isDefined(item[INSERT_INDEX])) {\r\n if (equalByValue(item.key, key)) {\r\n result = index\r\n }\r\n } else if (equalByValue(dataController.keyOf(item), key)) {\r\n result = index\r\n }\r\n }\r\n if (result >= 0) {\r\n var nextItem = items[result + 1];\r\n if (nextItem && (\"detail\" === nextItem.rowType || \"detailAdaptive\" === nextItem.rowType) && isDefined(change.insertAfterKey)) {\r\n return\r\n }\r\n if (isDefined(change.insertAfterKey)) {\r\n result += 1\r\n }\r\n return true\r\n }\r\n })\r\n }\r\n return result\r\n },\r\n _generateNewItem: function(key) {\r\n var _this$_getInternalDat2;\r\n var item = {\r\n key: key\r\n };\r\n var insertInfo = null === (_this$_getInternalDat2 = this._getInternalData(key)) || void 0 === _this$_getInternalDat2 ? void 0 : _this$_getInternalDat2.insertInfo;\r\n if (null !== insertInfo && void 0 !== insertInfo && insertInfo[INSERT_INDEX]) {\r\n item[INSERT_INDEX] = insertInfo[INSERT_INDEX]\r\n }\r\n return item\r\n },\r\n _getLoadedRowIndex: function(items, change, isProcessedItems) {\r\n var loadedRowIndex = this._getInsertRowIndex(items, change, isProcessedItems);\r\n var dataController = this._dataController;\r\n if (loadedRowIndex < 0) {\r\n var newRowPosition = this._getNewRowPosition();\r\n var pageIndex = dataController.pageIndex();\r\n var insertAfterOrBeforeKey = this._getInsertAfterOrBeforeKey(change);\r\n if (newRowPosition !== LAST_NEW_ROW_POSITION && 0 === pageIndex && !isDefined(insertAfterOrBeforeKey)) {\r\n loadedRowIndex = 0\r\n } else if (newRowPosition === LAST_NEW_ROW_POSITION && dataController.isLastPageLoaded()) {\r\n loadedRowIndex = items.length\r\n }\r\n }\r\n return loadedRowIndex\r\n },\r\n processItems: function(items, e) {\r\n var changeType = e.changeType;\r\n this.update(changeType);\r\n var changes = this.getChanges();\r\n changes.forEach(change => {\r\n var _this$_getInternalDat3;\r\n var isInsert = change.type === DATA_EDIT_DATA_INSERT_TYPE;\r\n if (!isInsert) {\r\n return\r\n }\r\n var key = change.key;\r\n var insertInfo = null === (_this$_getInternalDat3 = this._getInternalData(key)) || void 0 === _this$_getInternalDat3 ? void 0 : _this$_getInternalDat3.insertInfo;\r\n if (!isDefined(key) || !isDefined(insertInfo)) {\r\n insertInfo = this._addInsertInfo(change);\r\n key = insertInfo.key\r\n }\r\n var loadedRowIndex = this._getLoadedRowIndex(items, change);\r\n var item = this._generateNewItem(key);\r\n if (loadedRowIndex >= 0) {\r\n items.splice(loadedRowIndex, 0, item)\r\n }\r\n });\r\n return items\r\n },\r\n processDataItem: function(item, options, generateDataValues) {\r\n var columns = options.visibleColumns;\r\n var key = item.data[INSERT_INDEX] ? item.data.key : item.key;\r\n var changes = this.getChanges();\r\n var editIndex = gridCoreUtils.getIndexByKey(key, changes);\r\n item.isEditing = false;\r\n if (editIndex >= 0) {\r\n this._processDataItemCore(item, changes[editIndex], key, columns, generateDataValues)\r\n }\r\n },\r\n _processDataItemCore: function(item, change, key, columns, generateDataValues) {\r\n var {\r\n data: data,\r\n type: type\r\n } = change;\r\n switch (type) {\r\n case DATA_EDIT_DATA_INSERT_TYPE:\r\n item.isNewRow = true;\r\n item.key = key;\r\n item.data = data;\r\n break;\r\n case DATA_EDIT_DATA_UPDATE_TYPE:\r\n item.modified = true;\r\n item.oldData = item.data;\r\n item.data = createObjectWithChanges(item.data, data);\r\n item.modifiedValues = generateDataValues(data, columns, true);\r\n break;\r\n case DATA_EDIT_DATA_REMOVE_TYPE:\r\n item.removed = true\r\n }\r\n },\r\n _initNewRow: function(options) {\r\n this.executeAction(\"onInitNewRow\", options);\r\n if (options.promise) {\r\n var deferred = new Deferred;\r\n when(fromPromise(options.promise)).done(deferred.resolve).fail(createFailureHandler(deferred)).fail(arg => this._fireDataErrorOccurred(arg));\r\n return deferred\r\n }\r\n },\r\n _createInsertInfo: function() {\r\n var insertInfo = {};\r\n insertInfo[INSERT_INDEX] = this._getInsertIndex();\r\n return insertInfo\r\n },\r\n _addInsertInfo: function(change, parentKey) {\r\n var _this$_getInternalDat4;\r\n var insertInfo;\r\n var {\r\n key: key\r\n } = change;\r\n if (!isDefined(key)) {\r\n key = String(new Guid);\r\n change.key = key\r\n }\r\n insertInfo = null === (_this$_getInternalDat4 = this._getInternalData(key)) || void 0 === _this$_getInternalDat4 ? void 0 : _this$_getInternalDat4.insertInfo;\r\n if (!isDefined(insertInfo)) {\r\n var insertAfterOrBeforeKey = this._getInsertAfterOrBeforeKey(change);\r\n insertInfo = this._createInsertInfo();\r\n if (!isDefined(insertAfterOrBeforeKey)) {\r\n this._setInsertAfterOrBeforeKey(change, parentKey)\r\n }\r\n }\r\n this._addInternalData({\r\n insertInfo: insertInfo,\r\n key: key\r\n });\r\n return {\r\n insertInfo: insertInfo,\r\n key: key\r\n }\r\n },\r\n _setInsertAfterOrBeforeKey: function(change, parentKey) {\r\n var dataController = this._dataController;\r\n var allItems = dataController.items(true);\r\n var rowsView = this.getView(\"rowsView\");\r\n var newRowPosition = this._getNewRowPosition();\r\n switch (newRowPosition) {\r\n case FIRST_NEW_ROW_POSITION:\r\n case LAST_NEW_ROW_POSITION:\r\n break;\r\n case PAGE_TOP_NEW_ROW_POSITION:\r\n case PAGE_BOTTOM_NEW_ROW_POSITION:\r\n if (allItems.length) {\r\n var itemIndex = newRowPosition === PAGE_TOP_NEW_ROW_POSITION ? 0 : allItems.length - 1;\r\n change[0 === itemIndex ? \"insertBeforeKey\" : \"insertAfterKey\"] = allItems[itemIndex].key\r\n }\r\n break;\r\n default:\r\n var isViewportBottom = newRowPosition === VIEWPORT_BOTTOM_NEW_ROW_POSITION;\r\n var visibleItemIndex = isViewportBottom ? null === rowsView || void 0 === rowsView ? void 0 : rowsView.getBottomVisibleItemIndex() : null === rowsView || void 0 === rowsView ? void 0 : rowsView.getTopVisibleItemIndex();\r\n var row = dataController.getVisibleRows()[visibleItemIndex];\r\n if (row && (!row.isEditing && \"detail\" === row.rowType || \"detailAdaptive\" === row.rowType)) {\r\n visibleItemIndex++\r\n }\r\n var insertKey = dataController.getKeyByRowIndex(visibleItemIndex);\r\n if (isDefined(insertKey)) {\r\n change.insertBeforeKey = insertKey\r\n }\r\n }\r\n },\r\n _getInsertIndex: function() {\r\n var maxInsertIndex = 0;\r\n this.getChanges().forEach(editItem => {\r\n var _this$_getInternalDat5;\r\n var insertInfo = null === (_this$_getInternalDat5 = this._getInternalData(editItem.key)) || void 0 === _this$_getInternalDat5 ? void 0 : _this$_getInternalDat5.insertInfo;\r\n if (isDefined(insertInfo) && editItem.type === DATA_EDIT_DATA_INSERT_TYPE && insertInfo[INSERT_INDEX] > maxInsertIndex) {\r\n maxInsertIndex = insertInfo[INSERT_INDEX]\r\n }\r\n });\r\n return maxInsertIndex + 1\r\n },\r\n _getInsertAfterOrBeforeKey: function(insertChange) {\r\n var _insertChange$insertA;\r\n return null !== (_insertChange$insertA = insertChange.insertAfterKey) && void 0 !== _insertChange$insertA ? _insertChange$insertA : insertChange.insertBeforeKey\r\n },\r\n _getPageIndexToInsertRow: function() {\r\n var newRowPosition = this._getNewRowPosition();\r\n var dataController = this._dataController;\r\n var pageIndex = dataController.pageIndex();\r\n var lastPageIndex = dataController.pageCount() - 1;\r\n if (newRowPosition === FIRST_NEW_ROW_POSITION && 0 !== pageIndex) {\r\n return 0\r\n } else if (newRowPosition === LAST_NEW_ROW_POSITION && pageIndex !== lastPageIndex) {\r\n return lastPageIndex\r\n }\r\n return -1\r\n },\r\n addRow: function(parentKey) {\r\n var dataController = this._dataController;\r\n var store = dataController.store();\r\n if (!store) {\r\n dataController.fireError(\"E1052\", this.component.NAME);\r\n return (new Deferred).reject()\r\n }\r\n return this._addRow(parentKey)\r\n },\r\n _addRow: function(parentKey) {\r\n var dataController = this._dataController;\r\n var store = dataController.store();\r\n var key = store && store.key();\r\n var param = {\r\n data: {}\r\n };\r\n var oldEditRowIndex = this._getVisibleEditRowIndex();\r\n var deferred = new Deferred;\r\n this.refresh({\r\n allowCancelEditing: true\r\n });\r\n if (!this._allowRowAdding()) {\r\n when(this._navigateToNewRow(oldEditRowIndex)).done(deferred.resolve).fail(deferred.reject);\r\n return deferred.promise()\r\n }\r\n if (!key) {\r\n param.data.__KEY__ = String(new Guid)\r\n }\r\n when(this._initNewRow(param, parentKey)).done(() => {\r\n if (this._allowRowAdding()) {\r\n when(this._addRowCore(param.data, parentKey, oldEditRowIndex)).done(deferred.resolve).fail(deferred.reject)\r\n } else {\r\n deferred.reject(\"cancel\")\r\n }\r\n }).fail(deferred.reject);\r\n return deferred.promise()\r\n },\r\n _allowRowAdding: function() {\r\n var insertIndex = this._getInsertIndex();\r\n if (insertIndex > 1) {\r\n return false\r\n }\r\n return true\r\n },\r\n _addRowCore: function(data, parentKey, initialOldEditRowIndex) {\r\n var change = {\r\n data: data,\r\n type: DATA_EDIT_DATA_INSERT_TYPE\r\n };\r\n var editRowIndex = this._getVisibleEditRowIndex();\r\n var insertInfo = this._addInsertInfo(change, parentKey);\r\n var key = insertInfo.key;\r\n this._setEditRowKey(key, true);\r\n this._addChange(change);\r\n return this._navigateToNewRow(initialOldEditRowIndex, change, editRowIndex)\r\n },\r\n _navigateToNewRow: function(oldEditRowIndex, change, editRowIndex) {\r\n var _editRowIndex, _change;\r\n var d = new Deferred;\r\n var dataController = this._dataController;\r\n var focusController = this.getController(\"focus\");\r\n editRowIndex = null !== (_editRowIndex = editRowIndex) && void 0 !== _editRowIndex ? _editRowIndex : -1;\r\n change = null !== (_change = change) && void 0 !== _change ? _change : this.getChanges().filter(c => c.type === DATA_EDIT_DATA_INSERT_TYPE)[0];\r\n if (!change) {\r\n return d.reject(\"cancel\").promise()\r\n }\r\n var pageIndexToInsertRow = this._getPageIndexToInsertRow();\r\n var rowIndex = this._getLoadedRowIndex(dataController.items(), change, true);\r\n var navigateToRowByKey = key => {\r\n when(null === focusController || void 0 === focusController ? void 0 : focusController.navigateToRow(key)).done(() => {\r\n rowIndex = dataController.getRowIndexByKey(change.key);\r\n d.resolve()\r\n })\r\n };\r\n var insertAfterOrBeforeKey = this._getInsertAfterOrBeforeKey(change);\r\n if (pageIndexToInsertRow >= 0) {\r\n dataController.pageIndex(pageIndexToInsertRow).done(() => {\r\n navigateToRowByKey(change.key)\r\n }).fail(d.reject)\r\n } else if (rowIndex < 0 && isDefined(insertAfterOrBeforeKey)) {\r\n navigateToRowByKey(insertAfterOrBeforeKey)\r\n } else {\r\n dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [oldEditRowIndex, editRowIndex, rowIndex]\r\n });\r\n rowIndex = dataController.getRowIndexByKey(change.key);\r\n if (rowIndex < 0) {\r\n navigateToRowByKey(change.key)\r\n } else {\r\n d.resolve()\r\n }\r\n }\r\n d.done(() => {\r\n this._showAddedRow(rowIndex);\r\n this._afterInsertRow(change.key)\r\n });\r\n return d.promise()\r\n },\r\n _showAddedRow: function(rowIndex) {\r\n this._focusFirstEditableCellInRow(rowIndex)\r\n },\r\n _beforeFocusElementInRow: noop,\r\n _focusFirstEditableCellInRow: function(rowIndex) {\r\n var dataController = this._dataController;\r\n var key = dataController.getKeyByRowIndex(rowIndex);\r\n var $firstCell = this.getFirstEditableCellInRow(rowIndex);\r\n this._editCellInProgress = true;\r\n this._delayedInputFocus($firstCell, () => {\r\n rowIndex = dataController.getRowIndexByKey(key);\r\n this._editCellInProgress = false;\r\n this._beforeFocusElementInRow(rowIndex)\r\n })\r\n },\r\n _isEditingStart: function(options) {\r\n this.executeAction(\"onEditingStart\", options);\r\n return options.cancel\r\n },\r\n _beforeUpdateItems: noop,\r\n _getVisibleEditColumnIndex: function() {\r\n var editColumnName = this.option(EDITING_EDITCOLUMNNAME_OPTION_NAME);\r\n if (!isDefined(editColumnName)) {\r\n return -1\r\n }\r\n return this._columnsController.getVisibleColumnIndex(editColumnName)\r\n },\r\n _setEditColumnNameByIndex: function(index, silent) {\r\n var _visibleColumns$index;\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n this._setEditColumnName(null === (_visibleColumns$index = visibleColumns[index]) || void 0 === _visibleColumns$index ? void 0 : _visibleColumns$index.name, silent)\r\n },\r\n _setEditColumnName: function(name, silent) {\r\n if (silent) {\r\n this._silentOption(EDITING_EDITCOLUMNNAME_OPTION_NAME, name)\r\n } else {\r\n this.option(EDITING_EDITCOLUMNNAME_OPTION_NAME, name)\r\n }\r\n },\r\n _resetEditColumnName: function() {\r\n this._setEditColumnName(null, true)\r\n },\r\n _getEditColumn: function() {\r\n var editColumnName = this.option(EDITING_EDITCOLUMNNAME_OPTION_NAME);\r\n return this._getColumnByName(editColumnName)\r\n },\r\n _getColumnByName: function(name) {\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var editColumn;\r\n isDefined(name) && visibleColumns.some(column => {\r\n if (column.name === name) {\r\n editColumn = column;\r\n return true\r\n }\r\n });\r\n return editColumn\r\n },\r\n _getVisibleEditRowIndex: function(columnName) {\r\n var dataController = this._dataController;\r\n var editRowKey = this.option(EDITING_EDITROWKEY_OPTION_NAME);\r\n var rowIndex = dataController.getRowIndexByKey(editRowKey);\r\n if (-1 === rowIndex) {\r\n return rowIndex\r\n }\r\n return rowIndex + this._getEditRowIndexCorrection(columnName)\r\n },\r\n _getEditRowIndexCorrection: function(columnName) {\r\n var editColumn = columnName ? this._getColumnByName(columnName) : this._getEditColumn();\r\n var isColumnHidden = \"adaptiveHidden\" === (null === editColumn || void 0 === editColumn ? void 0 : editColumn.visibleWidth);\r\n return isColumnHidden ? 1 : 0\r\n },\r\n _resetEditRowKey: function() {\r\n this._setEditRowKey(null, true)\r\n },\r\n _resetEditIndices: function() {\r\n this._resetEditColumnName();\r\n this._resetEditRowKey()\r\n },\r\n editRow: function(rowIndex) {\r\n var _item$oldData;\r\n var dataController = this._dataController;\r\n var items = dataController.items();\r\n var item = items[rowIndex];\r\n var params = {\r\n data: item && item.data,\r\n cancel: false\r\n };\r\n var oldRowIndex = this._getVisibleEditRowIndex();\r\n if (!item) {\r\n return\r\n }\r\n if (rowIndex === oldRowIndex) {\r\n return true\r\n }\r\n if (void 0 === item.key) {\r\n this._dataController.fireError(\"E1043\");\r\n return\r\n }\r\n if (!item.isNewRow) {\r\n params.key = item.key\r\n }\r\n if (this._isEditingStart(params)) {\r\n return\r\n }\r\n this.resetChanges();\r\n this.init();\r\n this._resetEditColumnName();\r\n this._pageIndex = dataController.pageIndex();\r\n this._addInternalData({\r\n key: item.key,\r\n oldData: null !== (_item$oldData = item.oldData) && void 0 !== _item$oldData ? _item$oldData : item.data\r\n });\r\n this._setEditRowKey(item.key)\r\n },\r\n _editRowFromOptionChanged: function(rowIndex, oldRowIndex) {\r\n var rowIndices = [oldRowIndex, rowIndex];\r\n this._beforeUpdateItems(rowIndices, rowIndex, oldRowIndex);\r\n this._editRowFromOptionChangedCore(rowIndices, rowIndex)\r\n },\r\n _editRowFromOptionChangedCore: function(rowIndices, rowIndex, preventRendering) {\r\n this._needFocusEditor = true;\r\n this._dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: rowIndices,\r\n cancel: preventRendering\r\n })\r\n },\r\n _focusEditorIfNeed: noop,\r\n _showEditPopup: noop,\r\n _repaintEditPopup: noop,\r\n _getEditPopupHiddenHandler: function() {\r\n return e => {\r\n if (this.isEditing()) {\r\n this.cancelEditData()\r\n }\r\n }\r\n },\r\n _getPopupEditFormTemplate: noop,\r\n _getSaveButtonConfig: function() {\r\n return {\r\n text: this.option(\"editing.texts.saveRowChanges\"),\r\n onClick: this.saveEditData.bind(this)\r\n }\r\n },\r\n _getCancelButtonConfig: function() {\r\n return {\r\n text: this.option(\"editing.texts.cancelRowChanges\"),\r\n onClick: this.cancelEditData.bind(this)\r\n }\r\n },\r\n _removeInternalData: function(key) {\r\n var internalData = this._getInternalData(key);\r\n var index = this._internalState.indexOf(internalData);\r\n if (index > -1) {\r\n this._internalState.splice(index, 1)\r\n }\r\n },\r\n _updateInsertAfterOrBeforeKeys: function(changes, index) {\r\n var removeChange = changes[index];\r\n changes.forEach(change => {\r\n var insertAfterOrBeforeKey = this._getInsertAfterOrBeforeKey(change);\r\n if (equalByValue(insertAfterOrBeforeKey, removeChange.key)) {\r\n change[isDefined(change.insertAfterKey) ? \"insertAfterKey\" : \"insertBeforeKey\"] = this._getInsertAfterOrBeforeKey(removeChange)\r\n }\r\n })\r\n },\r\n _removeChange: function(index) {\r\n if (index >= 0) {\r\n var changes = [...this.getChanges()];\r\n var key = changes[index].key;\r\n this._removeInternalData(key);\r\n this._updateInsertAfterOrBeforeKeys(changes, index);\r\n changes.splice(index, 1);\r\n this._silentOption(EDITING_CHANGES_OPTION_NAME, changes);\r\n if (equalByValue(this.option(EDITING_EDITROWKEY_OPTION_NAME), key)) {\r\n this._resetEditIndices()\r\n }\r\n }\r\n },\r\n executeOperation: function(deferred, func) {\r\n this._lastOperation && this._lastOperation.reject();\r\n this._lastOperation = deferred;\r\n this.waitForDeferredOperations().done(() => {\r\n if (\"rejected\" === deferred.state()) {\r\n return\r\n }\r\n func();\r\n this._lastOperation = null\r\n }).fail(() => {\r\n deferred.reject();\r\n this._lastOperation = null\r\n })\r\n },\r\n waitForDeferredOperations: function() {\r\n return when(...this._deferreds)\r\n },\r\n _processCanceledEditingCell: noop,\r\n _repaintEditCell: function(column, oldColumn, oldEditRowIndex) {\r\n this._needFocusEditor = true;\r\n if (!column || !column.showEditorAlways || oldColumn && !oldColumn.showEditorAlways) {\r\n this._editCellInProgress = true;\r\n this.getController(\"editorFactory\").loseFocus();\r\n this._dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [oldEditRowIndex, this._getVisibleEditRowIndex()]\r\n })\r\n } else if (column !== oldColumn) {\r\n this._dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: []\r\n })\r\n }\r\n },\r\n _delayedInputFocus: function($cell, beforeFocusCallback, callBeforeFocusCallbackAlways) {\r\n var inputFocus = () => {\r\n if (beforeFocusCallback) {\r\n beforeFocusCallback()\r\n }\r\n if ($cell) {\r\n var $focusableElement = $cell.find(FOCUSABLE_ELEMENT_SELECTOR).first();\r\n gridCoreUtils.focusAndSelectElement(this, $focusableElement)\r\n }\r\n this._beforeFocusCallback = null\r\n };\r\n if (devices.real().ios || devices.real().android) {\r\n inputFocus()\r\n } else {\r\n if (this._beforeFocusCallback) {\r\n this._beforeFocusCallback()\r\n }\r\n clearTimeout(this._inputFocusTimeoutID);\r\n if (callBeforeFocusCallbackAlways) {\r\n this._beforeFocusCallback = beforeFocusCallback\r\n }\r\n this._inputFocusTimeoutID = setTimeout(inputFocus)\r\n }\r\n },\r\n _focusEditingCell: function(beforeFocusCallback, $editCell, callBeforeFocusCallbackAlways) {\r\n var rowsView = this.getView(\"rowsView\");\r\n var editColumnIndex = this._getVisibleEditColumnIndex();\r\n $editCell = $editCell || rowsView && rowsView._getCellElement(this._getVisibleEditRowIndex(), editColumnIndex);\r\n if ($editCell) {\r\n this._delayedInputFocus($editCell, beforeFocusCallback, callBeforeFocusCallbackAlways)\r\n }\r\n },\r\n deleteRow: function(rowIndex) {\r\n this._checkAndDeleteRow(rowIndex)\r\n },\r\n _checkAndDeleteRow: function(rowIndex) {\r\n var editingOptions = this.option(\"editing\");\r\n var editingTexts = null === editingOptions || void 0 === editingOptions ? void 0 : editingOptions.texts;\r\n var confirmDelete = null === editingOptions || void 0 === editingOptions ? void 0 : editingOptions.confirmDelete;\r\n var confirmDeleteMessage = null === editingTexts || void 0 === editingTexts ? void 0 : editingTexts.confirmDeleteMessage;\r\n var item = this._dataController.items()[rowIndex];\r\n var allowDeleting = !this.isEditing() || item.isNewRow;\r\n if (item && allowDeleting) {\r\n if (!confirmDelete || !confirmDeleteMessage) {\r\n this._deleteRowCore(rowIndex)\r\n } else {\r\n var confirmDeleteTitle = editingTexts && editingTexts.confirmDeleteTitle;\r\n var showDialogTitle = isDefined(confirmDeleteTitle) && confirmDeleteTitle.length > 0;\r\n confirm(confirmDeleteMessage, confirmDeleteTitle, showDialogTitle).done(confirmResult => {\r\n if (confirmResult) {\r\n this._deleteRowCore(rowIndex)\r\n }\r\n })\r\n }\r\n }\r\n },\r\n _deleteRowCore: function(rowIndex) {\r\n var dataController = this._dataController;\r\n var item = dataController.items()[rowIndex];\r\n var key = item && item.key;\r\n var oldEditRowIndex = this._getVisibleEditRowIndex();\r\n this.refresh();\r\n var changes = this.getChanges();\r\n var editIndex = gridCoreUtils.getIndexByKey(key, changes);\r\n if (editIndex >= 0) {\r\n if (changes[editIndex].type === DATA_EDIT_DATA_INSERT_TYPE) {\r\n this._removeChange(editIndex)\r\n } else {\r\n this._addChange({\r\n key: key,\r\n type: DATA_EDIT_DATA_REMOVE_TYPE\r\n })\r\n }\r\n } else {\r\n this._addChange({\r\n key: key,\r\n oldData: item.data,\r\n type: DATA_EDIT_DATA_REMOVE_TYPE\r\n })\r\n }\r\n return this._afterDeleteRow(rowIndex, oldEditRowIndex)\r\n },\r\n _afterDeleteRow: function(rowIndex, oldEditRowIndex) {\r\n return this.saveEditData()\r\n },\r\n undeleteRow: function(rowIndex) {\r\n var dataController = this._dataController;\r\n var item = dataController.items()[rowIndex];\r\n var oldEditRowIndex = this._getVisibleEditRowIndex();\r\n var key = item && item.key;\r\n var changes = this.getChanges();\r\n if (item) {\r\n var editIndex = gridCoreUtils.getIndexByKey(key, changes);\r\n if (editIndex >= 0) {\r\n var {\r\n data: data\r\n } = changes[editIndex];\r\n if (isEmptyObject(data)) {\r\n this._removeChange(editIndex)\r\n } else {\r\n this._addChange({\r\n key: key,\r\n type: DATA_EDIT_DATA_UPDATE_TYPE\r\n })\r\n }\r\n dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [oldEditRowIndex, rowIndex]\r\n })\r\n }\r\n }\r\n },\r\n _fireOnSaving: function() {\r\n var onSavingParams = {\r\n cancel: false,\r\n promise: null,\r\n changes: [...this.getChanges()]\r\n };\r\n this.executeAction(\"onSaving\", onSavingParams);\r\n var d = new Deferred;\r\n when(fromPromise(onSavingParams.promise)).done(() => {\r\n d.resolve(onSavingParams)\r\n }).fail(arg => {\r\n createFailureHandler(d);\r\n this._fireDataErrorOccurred(arg);\r\n d.resolve({\r\n cancel: true\r\n })\r\n });\r\n return d\r\n },\r\n _executeEditingAction: function(actionName, params, func) {\r\n if (this.component._disposed) {\r\n return null\r\n }\r\n var deferred = new Deferred;\r\n this.executeAction(actionName, params);\r\n when(fromPromise(params.cancel)).done((function(cancel) {\r\n if (cancel) {\r\n setTimeout((function() {\r\n deferred.resolve(\"cancel\")\r\n }))\r\n } else {\r\n func(params).done(deferred.resolve).fail(createFailureHandler(deferred))\r\n }\r\n })).fail(createFailureHandler(deferred));\r\n return deferred\r\n },\r\n _processChanges: function(deferreds, results, dataChanges, changes) {\r\n var store = this._dataController.store();\r\n each(changes, (index, change) => {\r\n var oldData = this._getOldData(change.key);\r\n var {\r\n data: data,\r\n type: type\r\n } = change;\r\n var changeCopy = _extends({}, change);\r\n var deferred;\r\n var params;\r\n if (this._beforeSaveEditData(change, index)) {\r\n return\r\n }\r\n switch (type) {\r\n case DATA_EDIT_DATA_REMOVE_TYPE:\r\n params = {\r\n data: oldData,\r\n key: change.key,\r\n cancel: false\r\n };\r\n deferred = this._executeEditingAction(\"onRowRemoving\", params, (function() {\r\n return store.remove(change.key).done((function(key) {\r\n dataChanges.push({\r\n type: \"remove\",\r\n key: key\r\n })\r\n }))\r\n }));\r\n break;\r\n case DATA_EDIT_DATA_INSERT_TYPE:\r\n params = {\r\n data: data,\r\n cancel: false\r\n };\r\n deferred = this._executeEditingAction(\"onRowInserting\", params, (function() {\r\n return store.insert(params.data).done((function(data, key) {\r\n if (isDefined(key)) {\r\n changeCopy.key = key\r\n }\r\n if (data && isObject(data) && data !== params.data) {\r\n changeCopy.data = data\r\n }\r\n dataChanges.push({\r\n type: \"insert\",\r\n data: data,\r\n index: 0\r\n })\r\n }))\r\n }));\r\n break;\r\n case DATA_EDIT_DATA_UPDATE_TYPE:\r\n params = {\r\n newData: data,\r\n oldData: oldData,\r\n key: change.key,\r\n cancel: false\r\n };\r\n deferred = this._executeEditingAction(\"onRowUpdating\", params, (function() {\r\n return store.update(change.key, params.newData).done((function(data, key) {\r\n if (data && isObject(data) && data !== params.newData) {\r\n changeCopy.data = data\r\n }\r\n dataChanges.push({\r\n type: \"update\",\r\n key: key,\r\n data: data\r\n })\r\n }))\r\n }))\r\n }\r\n changes[index] = changeCopy;\r\n if (deferred) {\r\n var doneDeferred = new Deferred;\r\n deferred.always((function(data) {\r\n results.push({\r\n key: change.key,\r\n result: data\r\n })\r\n })).always(doneDeferred.resolve);\r\n deferreds.push(doneDeferred.promise())\r\n }\r\n })\r\n },\r\n _processRemoveIfError: function(changes, editIndex) {\r\n var change = changes[editIndex];\r\n if ((null === change || void 0 === change ? void 0 : change.type) === DATA_EDIT_DATA_REMOVE_TYPE) {\r\n if (editIndex >= 0) {\r\n changes.splice(editIndex, 1)\r\n }\r\n }\r\n return true\r\n },\r\n _processRemove: function(changes, editIndex, cancel) {\r\n var change = changes[editIndex];\r\n if (!cancel || !change || change.type === DATA_EDIT_DATA_REMOVE_TYPE) {\r\n return this._processRemoveCore(changes, editIndex, !cancel || !change)\r\n }\r\n },\r\n _processRemoveCore: function(changes, editIndex) {\r\n if (editIndex >= 0) {\r\n changes.splice(editIndex, 1)\r\n }\r\n return true\r\n },\r\n _processSaveEditDataResult: function(results) {\r\n var hasSavedData = false;\r\n var changes = [...this.getChanges()];\r\n var changesLength = changes.length;\r\n for (var i = 0; i < results.length; i++) {\r\n var arg = results[i].result;\r\n var cancel = \"cancel\" === arg;\r\n var editIndex = gridCoreUtils.getIndexByKey(results[i].key, changes);\r\n var change = changes[editIndex];\r\n var isError = arg && arg instanceof Error;\r\n if (isError) {\r\n if (change) {\r\n this._addInternalData({\r\n key: change.key,\r\n error: arg\r\n })\r\n }\r\n this._fireDataErrorOccurred(arg);\r\n if (this._processRemoveIfError(changes, editIndex)) {\r\n break\r\n }\r\n } else if (this._processRemove(changes, editIndex, cancel)) {\r\n hasSavedData = !cancel\r\n }\r\n }\r\n if (changes.length < changesLength) {\r\n this._silentOption(EDITING_CHANGES_OPTION_NAME, changes)\r\n }\r\n return hasSavedData\r\n },\r\n _fireSaveEditDataEvents: function(changes) {\r\n each(changes, (_, _ref) => {\r\n var {\r\n data: data,\r\n key: key,\r\n type: type\r\n } = _ref;\r\n var internalData = this._addInternalData({\r\n key: key\r\n });\r\n var params = {\r\n key: key,\r\n data: data\r\n };\r\n if (internalData.error) {\r\n params.error = internalData.error\r\n }\r\n switch (type) {\r\n case DATA_EDIT_DATA_REMOVE_TYPE:\r\n this.executeAction(\"onRowRemoved\", extend({}, params, {\r\n data: internalData.oldData\r\n }));\r\n break;\r\n case DATA_EDIT_DATA_INSERT_TYPE:\r\n this.executeAction(\"onRowInserted\", params);\r\n break;\r\n case DATA_EDIT_DATA_UPDATE_TYPE:\r\n this.executeAction(\"onRowUpdated\", params)\r\n }\r\n });\r\n this.executeAction(\"onSaved\", {\r\n changes: changes\r\n })\r\n },\r\n saveEditData: function() {\r\n var deferred = new Deferred;\r\n this.waitForDeferredOperations().done(() => {\r\n if (this.isSaving()) {\r\n this._resolveAfterSave(deferred);\r\n return\r\n }\r\n when(this._beforeSaveEditData()).done(cancel => {\r\n if (cancel) {\r\n this._resolveAfterSave(deferred, {\r\n cancel: cancel\r\n });\r\n return\r\n }\r\n this._saving = true;\r\n var options = {};\r\n this._saveEditDataInner(options).always(() => {\r\n this._saving = false;\r\n options.needFocusEditCell && this._focusEditingCell()\r\n }).done(deferred.resolve).fail(deferred.reject)\r\n }).fail(deferred.reject)\r\n }).fail(deferred.reject);\r\n return deferred.promise()\r\n },\r\n _resolveAfterSave: function(deferred) {\r\n var {\r\n cancel: cancel,\r\n error: error\r\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n when(this._afterSaveEditData(cancel)).done((function() {\r\n deferred.resolve(error)\r\n })).fail(deferred.reject)\r\n },\r\n _saveEditDataInner: function(options) {\r\n var results = [];\r\n var deferreds = [];\r\n var dataChanges = [];\r\n var dataController = this._dataController;\r\n var dataSource = dataController.dataSource();\r\n var result = new Deferred;\r\n when(this._fireOnSaving()).done(_ref2 => {\r\n var {\r\n cancel: cancel,\r\n changes: changes\r\n } = _ref2;\r\n if (cancel) {\r\n return result.resolve().promise()\r\n }\r\n this._processChanges(deferreds, results, dataChanges, changes);\r\n if (deferreds.length) {\r\n null === dataSource || void 0 === dataSource ? void 0 : dataSource.beginLoading();\r\n when(...deferreds).done(() => {\r\n if (this._processSaveEditDataResult(results)) {\r\n this._endSaving(dataChanges, changes, result)\r\n } else {\r\n null === dataSource || void 0 === dataSource ? void 0 : dataSource.endLoading();\r\n result.resolve()\r\n }\r\n }).fail(error => {\r\n null === dataSource || void 0 === dataSource ? void 0 : dataSource.endLoading();\r\n result.resolve(error)\r\n });\r\n return result.always(() => {\r\n options.needFocusEditCell = true\r\n }).promise()\r\n }\r\n this._cancelSaving(result)\r\n }).fail(result.reject);\r\n return result.promise()\r\n },\r\n _beforeEndSaving: function(changes) {\r\n this._resetEditIndices()\r\n },\r\n _endSaving: function(dataChanges, changes, deferred) {\r\n var dataSource = this._dataController.dataSource();\r\n this._beforeEndSaving(changes);\r\n null === dataSource || void 0 === dataSource ? void 0 : dataSource.endLoading();\r\n this._refreshDataAfterSave(dataChanges, changes, deferred)\r\n },\r\n _cancelSaving: function(result) {\r\n this.executeAction(\"onSaved\", {\r\n changes: []\r\n });\r\n this._resolveAfterSave(result)\r\n },\r\n _refreshDataAfterSave: function(dataChanges, changes, deferred) {\r\n var dataController = this._dataController;\r\n var refreshMode = this.option(\"editing.refreshMode\");\r\n var isFullRefresh = \"reshape\" !== refreshMode && \"repaint\" !== refreshMode;\r\n if (!isFullRefresh) {\r\n dataController.push(dataChanges)\r\n }\r\n when(dataController.refresh({\r\n selection: isFullRefresh,\r\n reload: isFullRefresh,\r\n load: \"reshape\" === refreshMode,\r\n changesOnly: this.option(\"repaintChangesOnly\")\r\n })).always(() => {\r\n this._fireSaveEditDataEvents(changes)\r\n }).done(() => {\r\n this._resolveAfterSave(deferred)\r\n }).fail(error => {\r\n this._resolveAfterSave(deferred, {\r\n error: error\r\n })\r\n })\r\n },\r\n isSaving: function() {\r\n return this._saving\r\n },\r\n _updateEditColumn: function() {\r\n var isEditColumnVisible = this._isEditColumnVisible();\r\n var useIcons = this.option(\"editing.useIcons\");\r\n var cssClass = COMMAND_EDIT_CLASS + (useIcons ? \" \" + COMMAND_EDIT_WITH_ICONS_CLASS : \"\");\r\n this._columnsController.addCommandColumn({\r\n type: \"buttons\",\r\n command: \"edit\",\r\n visible: isEditColumnVisible,\r\n cssClass: cssClass,\r\n width: \"auto\",\r\n alignment: \"center\",\r\n cellTemplate: this._getEditCommandCellTemplate(),\r\n fixedPosition: \"right\"\r\n });\r\n this._columnsController.columnOption(\"command:edit\", {\r\n visible: isEditColumnVisible,\r\n cssClass: cssClass\r\n })\r\n },\r\n _isEditColumnVisible: function() {\r\n var editingOptions = this.option(\"editing\");\r\n return editingOptions.allowDeleting\r\n },\r\n _isEditButtonDisabled: function() {\r\n var hasChanges = this.hasChanges();\r\n var isEditRowDefined = isDefined(this.option(\"editing.editRowKey\"));\r\n return !(isEditRowDefined || hasChanges)\r\n },\r\n _updateEditButtons: function() {\r\n var headerPanel = this.getView(\"headerPanel\");\r\n var isButtonDisabled = this._isEditButtonDisabled();\r\n if (headerPanel) {\r\n headerPanel.setToolbarItemDisabled(\"saveButton\", isButtonDisabled);\r\n headerPanel.setToolbarItemDisabled(\"revertButton\", isButtonDisabled)\r\n }\r\n },\r\n _applyModified: function($element) {\r\n $element && $element.addClass(CELL_MODIFIED)\r\n },\r\n _beforeCloseEditCellInBatchMode: noop,\r\n cancelEditData: function() {\r\n var changes = this.getChanges();\r\n var params = {\r\n cancel: false,\r\n changes: changes\r\n };\r\n this.executeAction(\"onEditCanceling\", params);\r\n if (!params.cancel) {\r\n this._cancelEditDataCore();\r\n this.executeAction(\"onEditCanceled\", {\r\n changes: changes\r\n })\r\n }\r\n },\r\n _cancelEditDataCore: function() {\r\n var rowIndex = this._getVisibleEditRowIndex();\r\n this._beforeCancelEditData();\r\n this.init();\r\n this.resetChanges();\r\n this._resetEditColumnName();\r\n this._resetEditRowKey();\r\n this._afterCancelEditData(rowIndex)\r\n },\r\n _afterCancelEditData: function(rowIndex) {\r\n var dataController = this._dataController;\r\n dataController.updateItems({\r\n repaintChangesOnly: this.option(\"repaintChangesOnly\")\r\n })\r\n },\r\n _hideEditPopup: noop,\r\n hasEditData: function() {\r\n return this.hasChanges()\r\n },\r\n update: function(changeType) {\r\n var dataController = this._dataController;\r\n if (dataController && this._pageIndex !== dataController.pageIndex()) {\r\n if (\"refresh\" === changeType) {\r\n this.refresh({\r\n isPageChanged: true\r\n })\r\n }\r\n this._pageIndex = dataController.pageIndex()\r\n }\r\n this._updateEditButtons()\r\n },\r\n _getRowIndicesForCascadeUpdating: function(row, skipCurrentRow) {\r\n return skipCurrentRow ? [] : [row.rowIndex]\r\n },\r\n addDeferred: function(deferred) {\r\n if (this._deferreds.indexOf(deferred) < 0) {\r\n this._deferreds.push(deferred);\r\n deferred.always(() => {\r\n var index = this._deferreds.indexOf(deferred);\r\n if (index >= 0) {\r\n this._deferreds.splice(index, 1)\r\n }\r\n })\r\n }\r\n },\r\n _prepareChange: function(options, value, text) {\r\n var _options$row;\r\n var newData = {};\r\n var oldData = null === (_options$row = options.row) || void 0 === _options$row ? void 0 : _options$row.data;\r\n var rowKey = options.key;\r\n var deferred = new Deferred;\r\n if (void 0 !== rowKey) {\r\n options.value = value;\r\n var setCellValueResult = fromPromise(options.column.setCellValue(newData, value, extend(true, {}, oldData), text));\r\n setCellValueResult.done((function() {\r\n deferred.resolve({\r\n data: newData,\r\n key: rowKey,\r\n oldData: oldData,\r\n type: DATA_EDIT_DATA_UPDATE_TYPE\r\n })\r\n })).fail(createFailureHandler(deferred)).fail(arg => this._fireDataErrorOccurred(arg));\r\n if (isDefined(text) && options.column.displayValueMap) {\r\n options.column.displayValueMap[value] = text\r\n }\r\n this._updateRowValues(options);\r\n this.addDeferred(deferred)\r\n }\r\n return deferred\r\n },\r\n _updateRowValues: function(options) {\r\n if (options.values) {\r\n var dataController = this._dataController;\r\n var rowIndex = dataController.getRowIndexByKey(options.key);\r\n var row = dataController.getVisibleRows()[rowIndex];\r\n if (row) {\r\n options.values = row.values\r\n }\r\n options.values[options.columnIndex] = options.value\r\n }\r\n },\r\n updateFieldValue: function(options, value, text, forceUpdateRow) {\r\n var rowKey = options.key;\r\n var deferred = new Deferred;\r\n if (void 0 === rowKey) {\r\n this._dataController.fireError(\"E1043\")\r\n }\r\n if (options.column.setCellValue) {\r\n this._prepareChange(options, value, text).done(params => {\r\n when(this._applyChange(options, params, forceUpdateRow)).always(() => {\r\n deferred.resolve()\r\n })\r\n })\r\n } else {\r\n deferred.resolve()\r\n }\r\n return deferred.promise()\r\n },\r\n _focusPreviousEditingCellIfNeed: function(options) {\r\n if (this.hasEditData() && !this.isEditCell(options.rowIndex, options.columnIndex)) {\r\n this._focusEditingCell();\r\n this._updateEditRow(options.row, true);\r\n return true\r\n }\r\n },\r\n _needUpdateRow: function(column) {\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n if (!column) {\r\n column = this._getEditColumn()\r\n }\r\n var isCustomSetCellValue = column && column.setCellValue !== column.defaultSetCellValue;\r\n var isCustomCalculateCellValue = visibleColumns.some(visibleColumn => visibleColumn.calculateCellValue !== visibleColumn.defaultCalculateCellValue);\r\n return isCustomSetCellValue || isCustomCalculateCellValue\r\n },\r\n _applyChange: function(options, params, forceUpdateRow) {\r\n var changeOptions = _extends({}, options, {\r\n forceUpdateRow: forceUpdateRow\r\n });\r\n this._addChange(params, changeOptions);\r\n this._updateEditButtons();\r\n return this._applyChangeCore(options, changeOptions.forceUpdateRow)\r\n },\r\n _applyChangeCore: function(options, forceUpdateRow) {\r\n var isCustomSetCellValue = options.column.setCellValue !== options.column.defaultSetCellValue;\r\n var row = options.row;\r\n if (row) {\r\n if (forceUpdateRow || isCustomSetCellValue) {\r\n this._updateEditRow(row, forceUpdateRow, isCustomSetCellValue)\r\n } else if (row.update) {\r\n row.update()\r\n }\r\n }\r\n },\r\n _updateEditRowCore: function(row, skipCurrentRow, isCustomSetCellValue) {\r\n this._dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: this._getRowIndicesForCascadeUpdating(row, skipCurrentRow)\r\n })\r\n },\r\n _updateEditRow: function(row, forceUpdateRow, isCustomSetCellValue) {\r\n if (forceUpdateRow) {\r\n this._updateRowImmediately(row, forceUpdateRow, isCustomSetCellValue)\r\n } else {\r\n this._updateRowWithDelay(row, isCustomSetCellValue)\r\n }\r\n },\r\n _updateRowImmediately: function(row, forceUpdateRow, isCustomSetCellValue) {\r\n this._updateEditRowCore(row, !forceUpdateRow, isCustomSetCellValue);\r\n this._validateEditFormAfterUpdate(row, isCustomSetCellValue);\r\n if (!forceUpdateRow) {\r\n this._focusEditingCell()\r\n }\r\n },\r\n _updateRowWithDelay: function(row, isCustomSetCellValue) {\r\n var deferred = new Deferred;\r\n this.addDeferred(deferred);\r\n setTimeout(() => {\r\n var $focusedElement = $(domAdapter.getActiveElement());\r\n var columnIndex = this._rowsView.getCellIndex($focusedElement, row.rowIndex);\r\n var focusedElement = $focusedElement.get(0);\r\n var selectionRange = gridCoreUtils.getSelectionRange(focusedElement);\r\n this._updateEditRowCore(row, false, isCustomSetCellValue);\r\n this._validateEditFormAfterUpdate(row, isCustomSetCellValue);\r\n if (columnIndex >= 0) {\r\n var $focusedItem = this._rowsView._getCellElement(row.rowIndex, columnIndex);\r\n this._delayedInputFocus($focusedItem, () => {\r\n setTimeout(() => {\r\n focusedElement = domAdapter.getActiveElement();\r\n if (selectionRange.selectionStart >= 0) {\r\n gridCoreUtils.setSelectionRange(focusedElement, selectionRange)\r\n }\r\n })\r\n })\r\n }\r\n deferred.resolve()\r\n })\r\n },\r\n _validateEditFormAfterUpdate: noop,\r\n _addChange: function(changeParams, options) {\r\n var _this$getChanges;\r\n var row = null === options || void 0 === options ? void 0 : options.row;\r\n var changes = [...this.getChanges()];\r\n var index = gridCoreUtils.getIndexByKey(changeParams.key, changes);\r\n if (index < 0) {\r\n index = changes.length;\r\n this._addInternalData({\r\n key: changeParams.key,\r\n oldData: changeParams.oldData\r\n });\r\n delete changeParams.oldData;\r\n changes.push(changeParams)\r\n }\r\n var change = _extends({}, changes[index]);\r\n if (change) {\r\n if (changeParams.data) {\r\n change.data = createObjectWithChanges(change.data, changeParams.data)\r\n }\r\n if ((!change.type || !changeParams.data) && changeParams.type) {\r\n change.type = changeParams.type\r\n }\r\n if (row) {\r\n row.oldData = this._getOldData(row.key);\r\n row.data = createObjectWithChanges(row.data, changeParams.data)\r\n }\r\n }\r\n changes[index] = change;\r\n this._silentOption(EDITING_CHANGES_OPTION_NAME, changes);\r\n if (options && change !== (null === (_this$getChanges = this.getChanges()) || void 0 === _this$getChanges ? void 0 : _this$getChanges[index])) {\r\n options.forceUpdateRow = true\r\n }\r\n return change\r\n },\r\n _getFormEditItemTemplate: function(cellOptions, column) {\r\n return column.editCellTemplate || this._getDefaultEditorTemplate()\r\n },\r\n getColumnTemplate: function(options) {\r\n var column = options.column;\r\n var rowIndex = options.row && options.row.rowIndex;\r\n var template;\r\n var isRowMode = this.isRowBasedEditMode();\r\n var isRowEditing = this.isEditRow(rowIndex);\r\n var isCellEditing = this.isEditCell(rowIndex, options.columnIndex);\r\n var editingStartOptions;\r\n if ((column.showEditorAlways || column.setCellValue && (isRowEditing && column.allowEditing || isCellEditing)) && (\"data\" === options.rowType || \"detailAdaptive\" === options.rowType) && !column.command) {\r\n var allowUpdating = this.allowUpdating(options);\r\n if (((allowUpdating || isRowEditing) && column.allowEditing || isCellEditing) && (isRowEditing || !isRowMode)) {\r\n if (column.showEditorAlways && !isRowMode) {\r\n editingStartOptions = {\r\n cancel: false,\r\n key: options.row.isNewRow ? void 0 : options.row.key,\r\n data: options.row.data,\r\n column: column\r\n };\r\n this._isEditingStart(editingStartOptions)\r\n }\r\n if (!editingStartOptions || !editingStartOptions.cancel) {\r\n options.setValue = (value, text) => {\r\n this.updateFieldValue(options, value, text)\r\n }\r\n }\r\n }\r\n template = column.editCellTemplate || this._getDefaultEditorTemplate()\r\n } else if (\"detail\" === column.command && \"detail\" === options.rowType && isRowEditing) {\r\n template = null === this || void 0 === this ? void 0 : this.getEditFormTemplate(options)\r\n }\r\n return template\r\n },\r\n _createButton: function($container, button, options, change) {\r\n var icon = EDIT_ICON_CLASS[button.name];\r\n var useIcons = this.option(\"editing.useIcons\");\r\n var useLegacyColumnButtonTemplate = this.option(\"useLegacyColumnButtonTemplate\");\r\n var $button = $(\"\").attr(\"href\", \"#\").addClass(LINK_CLASS).addClass(button.cssClass);\r\n if (button.template && useLegacyColumnButtonTemplate) {\r\n this._rowsView.renderTemplate($container, button.template, options, true)\r\n } else {\r\n if (button.template) {\r\n $button = $(\"\").addClass(button.cssClass)\r\n } else if (useIcons && icon || button.icon) {\r\n icon = button.icon || icon;\r\n var iconType = iconUtils.getImageSourceType(icon);\r\n if (\"image\" === iconType || \"svg\" === iconType) {\r\n $button = iconUtils.getImageContainer(icon).addClass(button.cssClass)\r\n } else {\r\n $button.addClass(\"dx-icon\" + (\"dxIcon\" === iconType ? \"-\" : \" \") + icon).attr(\"title\", button.text)\r\n }\r\n $button.addClass(\"dx-link-icon\");\r\n $container.addClass(COMMAND_EDIT_WITH_ICONS_CLASS);\r\n var localizationName = this.getButtonLocalizationNames()[button.name];\r\n localizationName && $button.attr(\"aria-label\", messageLocalization.format(localizationName))\r\n } else {\r\n $button.text(button.text)\r\n }\r\n if (isDefined(button.hint)) {\r\n $button.attr(\"title\", button.hint)\r\n }\r\n if (this._isButtonDisabled(button, options)) {\r\n $button.addClass(\"dx-state-disabled\")\r\n } else if (!button.template || button.onClick) {\r\n eventsEngine.on($button, addNamespace(\"click\", EDITING_NAMESPACE), this.createAction((function(e) {\r\n var _button$onClick;\r\n null === (_button$onClick = button.onClick) || void 0 === _button$onClick ? void 0 : _button$onClick.call(button, extend({}, e, {\r\n row: options.row,\r\n column: options.column\r\n }));\r\n e.event.preventDefault();\r\n e.event.stopPropagation()\r\n })))\r\n }\r\n $container.append($button, \" \");\r\n if (button.template) {\r\n this._rowsView.renderTemplate($button, button.template, options, true, change)\r\n }\r\n }\r\n },\r\n getButtonLocalizationNames: () => ({\r\n edit: \"dxDataGrid-editingEditRow\",\r\n save: \"dxDataGrid-editingSaveRowChanges\",\r\n delete: \"dxDataGrid-editingDeleteRow\",\r\n undelete: \"dxDataGrid-editingUndeleteRow\",\r\n cancel: \"dxDataGrid-editingCancelRowChanges\"\r\n }),\r\n prepareButtonItem: function(headerPanel, name, methodName, sortIndex) {\r\n var editingTexts = this.option(\"editing.texts\") || {};\r\n var titleButtonTextByClassNames = {\r\n revert: editingTexts.cancelAllChanges,\r\n save: editingTexts.saveAllChanges,\r\n addRow: editingTexts.addRow\r\n };\r\n var className = {\r\n revert: \"cancel\",\r\n save: \"save\",\r\n addRow: \"addrow\"\r\n } [name];\r\n var hintText = titleButtonTextByClassNames[name];\r\n var isButtonDisabled = (\"save\" === className || \"cancel\" === className) && this._isEditButtonDisabled();\r\n return {\r\n widget: \"dxButton\",\r\n options: {\r\n onInitialized: e => {\r\n $(e.element).addClass(headerPanel._getToolbarButtonClass(EDIT_BUTTON_CLASS + \" \" + this.addWidgetPrefix(className) + \"-button\"))\r\n },\r\n icon: \"edit-button-\" + className,\r\n disabled: isButtonDisabled,\r\n onClick: () => {\r\n setTimeout(() => {\r\n this[methodName]()\r\n })\r\n },\r\n text: hintText,\r\n hint: hintText\r\n },\r\n showText: \"inMenu\",\r\n name: name + \"Button\",\r\n location: \"after\",\r\n locateInMenu: \"auto\",\r\n sortIndex: sortIndex\r\n }\r\n },\r\n prepareEditButtons: function(headerPanel) {\r\n var editingOptions = this.option(\"editing\") || {};\r\n var buttonItems = [];\r\n if (editingOptions.allowAdding) {\r\n buttonItems.push(this.prepareButtonItem(headerPanel, \"addRow\", \"addRow\", 20))\r\n }\r\n return buttonItems\r\n },\r\n highlightDataCell: function($cell, params) {\r\n this.shouldHighlightCell(params) && $cell.addClass(CELL_MODIFIED)\r\n },\r\n _afterInsertRow: noop,\r\n _beforeSaveEditData: function(change) {\r\n if (change && !isDefined(change.key) && isDefined(change.type)) {\r\n return true\r\n }\r\n },\r\n _afterSaveEditData: noop,\r\n _beforeCancelEditData: noop,\r\n _allowEditAction: function(actionName, options) {\r\n var allowEditAction = this.option(\"editing.\" + actionName);\r\n if (isFunction(allowEditAction)) {\r\n allowEditAction = allowEditAction({\r\n component: this.component,\r\n row: options.row\r\n })\r\n }\r\n return allowEditAction\r\n },\r\n allowUpdating: function(options, eventName) {\r\n var startEditAction = this.option(\"editing.startEditAction\") || DEFAULT_START_EDIT_ACTION;\r\n var needCallback = arguments.length > 1 ? startEditAction === eventName || \"down\" === eventName : true;\r\n return needCallback && this._allowEditAction(\"allowUpdating\", options)\r\n },\r\n allowDeleting: function(options) {\r\n return this._allowEditAction(\"allowDeleting\", options)\r\n },\r\n isCellModified: function(parameters) {\r\n var columnIndex = parameters.columnIndex;\r\n var modifiedValues = parameters.row && (parameters.row.isNewRow ? parameters.row.values : parameters.row.modifiedValues);\r\n return !!modifiedValues && void 0 !== modifiedValues[columnIndex]\r\n },\r\n isNewRowInEditMode: function() {\r\n var visibleEditRowIndex = this._getVisibleEditRowIndex();\r\n var rows = this._dataController.items();\r\n return visibleEditRowIndex >= 0 ? rows[visibleEditRowIndex].isNewRow : false\r\n },\r\n shouldHighlightCell: function(parameters) {\r\n var cellModified = this.isCellModified(parameters);\r\n return cellModified && parameters.column.setCellValue && (this.getEditMode() !== EDIT_MODE_ROW || !parameters.row.isEditing)\r\n }\r\n }\r\n}());\r\nexport var editingModule = {\r\n defaultOptions: function() {\r\n return {\r\n editing: {\r\n mode: \"row\",\r\n refreshMode: \"full\",\r\n newRowPosition: VIEWPORT_TOP_NEW_ROW_POSITION,\r\n allowAdding: false,\r\n allowUpdating: false,\r\n allowDeleting: false,\r\n useIcons: false,\r\n selectTextOnEditStart: false,\r\n confirmDelete: true,\r\n texts: {\r\n editRow: messageLocalization.format(\"dxDataGrid-editingEditRow\"),\r\n saveAllChanges: messageLocalization.format(\"dxDataGrid-editingSaveAllChanges\"),\r\n saveRowChanges: messageLocalization.format(\"dxDataGrid-editingSaveRowChanges\"),\r\n cancelAllChanges: messageLocalization.format(\"dxDataGrid-editingCancelAllChanges\"),\r\n cancelRowChanges: messageLocalization.format(\"dxDataGrid-editingCancelRowChanges\"),\r\n addRow: messageLocalization.format(\"dxDataGrid-editingAddRow\"),\r\n deleteRow: messageLocalization.format(\"dxDataGrid-editingDeleteRow\"),\r\n undeleteRow: messageLocalization.format(\"dxDataGrid-editingUndeleteRow\"),\r\n confirmDeleteMessage: messageLocalization.format(\"dxDataGrid-editingConfirmDeleteMessage\"),\r\n confirmDeleteTitle: \"\"\r\n },\r\n form: {\r\n colCount: 2\r\n },\r\n popup: {},\r\n startEditAction: \"click\",\r\n editRowKey: null,\r\n editColumnName: null,\r\n changes: []\r\n },\r\n useLegacyColumnButtonTemplate: false\r\n }\r\n },\r\n controllers: {\r\n editing: EditingController\r\n },\r\n extenders: {\r\n controllers: {\r\n data: {\r\n init: function() {\r\n this._editingController = this.getController(\"editing\");\r\n this.callBase()\r\n },\r\n reload: function(full, repaintChangesOnly) {\r\n !repaintChangesOnly && this._editingController.refresh();\r\n return this.callBase.apply(this, arguments)\r\n },\r\n repaintRows: function() {\r\n if (this.getController(\"editing\").isSaving()) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _updateEditRow: function(items) {\r\n var editRowKey = this.option(EDITING_EDITROWKEY_OPTION_NAME);\r\n var editRowIndex = gridCoreUtils.getIndexByKey(editRowKey, items);\r\n var editItem = items[editRowIndex];\r\n if (editItem) {\r\n var _this$_updateEditItem;\r\n editItem.isEditing = true;\r\n null === (_this$_updateEditItem = this._updateEditItem) || void 0 === _this$_updateEditItem ? void 0 : _this$_updateEditItem.call(this, editItem)\r\n }\r\n },\r\n _updateItemsCore: function(change) {\r\n this.callBase(change);\r\n this._updateEditRow(this.items(true))\r\n },\r\n _applyChangeUpdate: function(change) {\r\n this._updateEditRow(change.items);\r\n this.callBase(change)\r\n },\r\n _applyChangesOnly: function(change) {\r\n this._updateEditRow(change.items);\r\n this.callBase(change)\r\n },\r\n _processItems: function(items, change) {\r\n items = this._editingController.processItems(items, change);\r\n return this.callBase(items, change)\r\n },\r\n _processDataItem: function(dataItem, options) {\r\n this._editingController.processDataItem(dataItem, options, this.generateDataValues);\r\n return this.callBase(dataItem, options)\r\n },\r\n _processItem: function(item, options) {\r\n item = this.callBase(item, options);\r\n if (item.isNewRow) {\r\n options.dataIndex--;\r\n delete item.dataIndex\r\n }\r\n return item\r\n },\r\n _getChangedColumnIndices: function(oldItem, newItem, rowIndex, isLiveUpdate) {\r\n if (oldItem.isNewRow !== newItem.isNewRow || oldItem.removed !== newItem.removed) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _isCellChanged: function(oldRow, newRow, visibleRowIndex, columnIndex, isLiveUpdate) {\r\n var editingController = this.getController(\"editing\");\r\n var cell = oldRow.cells && oldRow.cells[columnIndex];\r\n var isEditing = editingController && editingController.isEditCell(visibleRowIndex, columnIndex);\r\n if (isLiveUpdate && isEditing) {\r\n return false\r\n }\r\n if (cell && cell.column && !cell.column.showEditorAlways && cell.isEditing !== isEditing) {\r\n return true\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n needToRefreshOnDataSourceChange: function(args) {\r\n var editingController = this.getController(\"editing\");\r\n var isParasiteChange = Array.isArray(args.value) && args.value === args.previousValue && editingController.isSaving();\r\n return !isParasiteChange\r\n },\r\n _handleDataSourceChange(args) {\r\n var result = this.callBase(args);\r\n var changes = this.option(\"editing.changes\");\r\n var dataSource = args.value;\r\n if (Array.isArray(dataSource) && changes.length) {\r\n var dataSourceKeys = dataSource.map(item => this.keyOf(item));\r\n var newChanges = changes.filter(change => \"insert\" === change.type || dataSourceKeys.some(key => equalByValue(change.key, key)));\r\n if (newChanges.length !== changes.length) {\r\n this.option(\"editing.changes\", newChanges)\r\n }\r\n var editRowKey = this.option(\"editing.editRowKey\");\r\n var isEditNewItem = newChanges.some(change => \"insert\" === change.type && equalByValue(editRowKey, change.key));\r\n if (!isEditNewItem && dataSourceKeys.every(key => !equalByValue(editRowKey, key))) {\r\n this.option(\"editing.editRowKey\", null)\r\n }\r\n }\r\n return result\r\n }\r\n }\r\n },\r\n views: {\r\n rowsView: {\r\n init: function() {\r\n this.callBase();\r\n this._editingController = this.getController(\"editing\")\r\n },\r\n getCellIndex: function($cell, rowIndex) {\r\n if (!$cell.is(\"td\") && rowIndex >= 0) {\r\n var $cellElements = this.getCellElements(rowIndex);\r\n var cellIndex = -1;\r\n each($cellElements, (function(index, cellElement) {\r\n if ($(cellElement).find($cell).length) {\r\n cellIndex = index\r\n }\r\n }));\r\n return cellIndex\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n publicMethods: function() {\r\n return this.callBase().concat([\"cellValue\"])\r\n },\r\n _getCellTemplate: function(options) {\r\n var template = this._editingController.getColumnTemplate(options);\r\n return template || this.callBase(options)\r\n },\r\n _createRow: function(row) {\r\n var $row = this.callBase.apply(this, arguments);\r\n if (row) {\r\n var isRowRemoved = !!row.removed;\r\n var isRowInserted = !!row.isNewRow;\r\n var isRowModified = !!row.modified;\r\n isRowInserted && $row.addClass(ROW_INSERTED);\r\n isRowModified && $row.addClass(ROW_MODIFIED);\r\n if (isRowInserted || isRowRemoved) {\r\n $row.removeClass(ROW_SELECTED)\r\n }\r\n }\r\n return $row\r\n },\r\n _getColumnIndexByElement: function($element) {\r\n var $tableElement = $element.closest(\"table\");\r\n var $tableElements = this.getTableElements();\r\n while ($tableElement.length && !$tableElements.filter($tableElement).length) {\r\n $element = $tableElement.closest(\"td\");\r\n $tableElement = $element.closest(\"table\")\r\n }\r\n return this._getColumnIndexByElementCore($element)\r\n },\r\n _getColumnIndexByElementCore: function($element) {\r\n var $targetElement = $element.closest(\".\" + ROW_CLASS + \"> td:not(.dx-master-detail-cell)\");\r\n return this.getCellIndex($targetElement)\r\n },\r\n _editCellByClick: function(e, eventName) {\r\n var editingController = this._editingController;\r\n var $targetElement = $(e.event.target);\r\n var columnIndex = this._getColumnIndexByElement($targetElement);\r\n var row = this._dataController.items()[e.rowIndex];\r\n var allowUpdating = editingController.allowUpdating({\r\n row: row\r\n }, eventName) || row && row.isNewRow;\r\n var column = this._columnsController.getVisibleColumns()[columnIndex];\r\n var isEditedCell = editingController.isEditCell(e.rowIndex, columnIndex);\r\n var allowEditing = allowUpdating && column && (column.allowEditing || isEditedCell);\r\n var startEditAction = this.option(\"editing.startEditAction\") || \"click\";\r\n if (\"down\" === eventName) {\r\n if ((devices.real().ios || devices.real().android) && !isEditedCell) {\r\n resetActiveElement()\r\n }\r\n return column && column.showEditorAlways && allowEditing && editingController.editCell(e.rowIndex, columnIndex)\r\n }\r\n if (\"click\" === eventName && \"dblClick\" === startEditAction && !isEditedCell) {\r\n var withoutSaveEditData = null === row || void 0 === row ? void 0 : row.isNewRow;\r\n editingController.closeEditCell(false, withoutSaveEditData)\r\n }\r\n if (allowEditing && eventName === startEditAction) {\r\n return editingController.editCell(e.rowIndex, columnIndex) || editingController.isEditRow(e.rowIndex)\r\n }\r\n },\r\n _rowPointerDown: function(e) {\r\n this._pointerDownTimeout = setTimeout(() => {\r\n this._editCellByClick(e, \"down\")\r\n })\r\n },\r\n _rowClick: function(e) {\r\n var isEditForm = $(e.rowElement).hasClass(this.addWidgetPrefix(EDIT_FORM_CLASS));\r\n e.event[TARGET_COMPONENT_NAME] = this.component;\r\n if (!this._editCellByClick(e, \"click\") && !isEditForm) {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _rowDblClick: function(e) {\r\n if (!this._editCellByClick(e, \"dblClick\")) {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _cellPrepared: function($cell, parameters) {\r\n var _parameters$column;\r\n var editingController = this._editingController;\r\n var isCommandCell = !!parameters.column.command;\r\n var isEditableCell = parameters.setValue;\r\n var isEditRow = editingController.isEditRow(parameters.rowIndex);\r\n var isEditing = isEditingCell(isEditRow, parameters);\r\n if (isEditingOrShowEditorAlwaysDataCell(isEditRow, parameters)) {\r\n var alignment = parameters.column.alignment;\r\n $cell.toggleClass(this.addWidgetPrefix(READONLY_CLASS), !isEditableCell).toggleClass(CELL_FOCUS_DISABLED_CLASS, !isEditableCell);\r\n if (alignment) {\r\n $cell.find(EDITORS_INPUT_SELECTOR).first().css(\"textAlign\", alignment)\r\n }\r\n }\r\n if (isEditing) {\r\n this._editCellPrepared($cell)\r\n }\r\n var hasTemplate = !!(null !== (_parameters$column = parameters.column) && void 0 !== _parameters$column && _parameters$column.cellTemplate);\r\n if (parameters.column && !isCommandCell && (!hasTemplate || editingController.shouldHighlightCell(parameters))) {\r\n editingController.highlightDataCell($cell, parameters)\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _editCellPrepared: noop,\r\n _formItemPrepared: noop,\r\n _getCellOptions: function(options) {\r\n var cellOptions = this.callBase(options);\r\n cellOptions.isEditing = this._editingController.isEditCell(cellOptions.rowIndex, cellOptions.columnIndex);\r\n return cellOptions\r\n },\r\n _createCell: function(options) {\r\n var $cell = this.callBase(options);\r\n var isEditRow = this._editingController.isEditRow(options.rowIndex);\r\n isEditingOrShowEditorAlwaysDataCell(isEditRow, options) && $cell.addClass(EDITOR_CELL_CLASS);\r\n return $cell\r\n },\r\n cellValue: function(rowIndex, columnIdentifier, value, text) {\r\n var cellOptions = this.getCellOptions(rowIndex, columnIdentifier);\r\n if (cellOptions) {\r\n if (void 0 === value) {\r\n return cellOptions.value\r\n } else {\r\n this._editingController.updateFieldValue(cellOptions, value, text, true)\r\n }\r\n }\r\n },\r\n dispose: function() {\r\n this.callBase.apply(this, arguments);\r\n clearTimeout(this._pointerDownTimeout)\r\n },\r\n _renderCore: function() {\r\n this.callBase.apply(this, arguments);\r\n this._editingController._focusEditorIfNeed()\r\n }\r\n },\r\n headerPanel: {\r\n _getToolbarItems: function() {\r\n var items = this.callBase();\r\n var editButtonItems = this.getController(\"editing\").prepareEditButtons(this);\r\n return editButtonItems.concat(items)\r\n },\r\n optionChanged: function(args) {\r\n var fullName = args.fullName;\r\n switch (args.name) {\r\n case \"editing\":\r\n var excludedOptions = [EDITING_POPUP_OPTION_NAME, EDITING_CHANGES_OPTION_NAME, EDITING_EDITCOLUMNNAME_OPTION_NAME, EDITING_EDITROWKEY_OPTION_NAME];\r\n var shouldInvalidate = fullName && !excludedOptions.some(optionName => optionName === fullName);\r\n shouldInvalidate && this._invalidate();\r\n this.callBase(args);\r\n break;\r\n case \"useLegacyColumnButtonTemplate\":\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n isVisible: function() {\r\n var editingOptions = this.getController(\"editing\").option(\"editing\");\r\n return this.callBase() || (null === editingOptions || void 0 === editingOptions ? void 0 : editingOptions.allowAdding)\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.editing.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport \"./ui.data_grid.editor_factory\";\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n editingModule\r\n} from \"../grid_core/ui.grid_core.editing\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\ngridCore.registerModule(\"editing\", extend(true, {}, editingModule, {\r\n extenders: {\r\n controllers: {\r\n data: {\r\n _changeRowExpandCore: function(key) {\r\n var editingController = this._editingController;\r\n if (Array.isArray(key)) {\r\n editingController && editingController.refresh()\r\n }\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n }\r\n }\r\n}));\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.editing_row_based.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n EDIT_MODE_ROW,\r\n MODES_WITH_DELAYED_FOCUS,\r\n ROW_SELECTED_CLASS,\r\n EDIT_FORM_CLASS\r\n} from \"./ui.grid_core.editing_constants\";\r\nvar EDIT_ROW = \"dx-edit-row\";\r\nexport var editingRowBasedModule = {\r\n extenders: {\r\n controllers: {\r\n editing: {\r\n isRowEditMode: function() {\r\n return this.getEditMode() === EDIT_MODE_ROW\r\n },\r\n _afterCancelEditData: function(rowIndex) {\r\n var dataController = this._dataController;\r\n if (this.isRowBasedEditMode() && rowIndex >= 0) {\r\n dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [rowIndex, rowIndex + 1]\r\n })\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _isDefaultButtonVisible: function(button, options) {\r\n var isRowMode = this.isRowBasedEditMode();\r\n var isEditRow = options.row && options.row.rowIndex === this._getVisibleEditRowIndex();\r\n if (isRowMode) {\r\n switch (button.name) {\r\n case \"edit\":\r\n return !isEditRow && this.allowUpdating(options);\r\n case \"delete\":\r\n return this.callBase.apply(this, arguments) && !isEditRow;\r\n case \"save\":\r\n case \"cancel\":\r\n return isEditRow;\r\n default:\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n isEditRow: function(rowIndex) {\r\n return this.isRowBasedEditMode() && this.isEditRowByIndex(rowIndex)\r\n },\r\n _cancelSaving: function() {\r\n if (this.isRowBasedEditMode()) {\r\n if (!this.hasChanges()) {\r\n this._cancelEditDataCore()\r\n }\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _refreshCore: function(params) {\r\n var {\r\n allowCancelEditing: allowCancelEditing\r\n } = null !== params && void 0 !== params ? params : {};\r\n if (this.isRowBasedEditMode()) {\r\n var hasUpdateChanges = this.getChanges().filter(it => \"update\" === it.type).length > 0;\r\n this.init();\r\n allowCancelEditing && hasUpdateChanges && this._cancelEditDataCore()\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _isEditColumnVisible: function() {\r\n var result = this.callBase.apply(this, arguments);\r\n var editingOptions = this.option(\"editing\");\r\n var isRowEditMode = this.isRowEditMode();\r\n var isVisibleInRowEditMode = editingOptions.allowUpdating || editingOptions.allowAdding;\r\n return result || isRowEditMode && isVisibleInRowEditMode\r\n },\r\n _focusEditorIfNeed: function() {\r\n var editMode = this.getEditMode();\r\n if (this._needFocusEditor) {\r\n if (-1 !== MODES_WITH_DELAYED_FOCUS.indexOf(editMode)) {\r\n var $editingCell = this.getFocusedCellInRow(this._getVisibleEditRowIndex());\r\n this._delayedInputFocus($editingCell, () => {\r\n $editingCell && this.component.focus($editingCell)\r\n })\r\n }\r\n this._needFocusEditor = false\r\n }\r\n }\r\n },\r\n data: {\r\n _getChangedColumnIndices: function(oldItem, newItem, rowIndex, isLiveUpdate) {\r\n var editingController = this.getController(\"editing\");\r\n if (editingController.isRowBasedEditMode() && oldItem.isEditing !== newItem.isEditing) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n },\r\n views: {\r\n rowsView: {\r\n _createRow: function(row) {\r\n var $row = this.callBase.apply(this, arguments);\r\n if (row) {\r\n var editingController = this._editingController;\r\n var isEditRow = editingController.isEditRow(row.rowIndex);\r\n if (isEditRow) {\r\n $row.addClass(EDIT_ROW);\r\n $row.removeClass(ROW_SELECTED_CLASS);\r\n if (\"detail\" === row.rowType) {\r\n $row.addClass(this.addWidgetPrefix(EDIT_FORM_CLASS))\r\n }\r\n }\r\n }\r\n return $row\r\n },\r\n _update: function(change) {\r\n this.callBase(change);\r\n if (\"updateSelection\" === change.changeType) {\r\n this.getTableElements().children(\"tbody\").children(\".\" + EDIT_ROW).removeClass(ROW_SELECTED_CLASS)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.editing_row_based.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n editingRowBasedModule\r\n} from \"../grid_core/ui.grid_core.editing_row_based\";\r\ngridCore.registerModule(\"editingRowBased\", editingRowBasedModule);\r\n","/**\r\n * DevExtreme (esm/ui/form/ui.form.items_runtime_info.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Guid from \"../../core/guid\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isString\r\n} from \"../../core/utils/type\";\r\nexport default class FormItemsRunTimeInfo {\r\n constructor() {\r\n this._map = {}\r\n }\r\n _findWidgetInstance(condition) {\r\n var result;\r\n each(this._map, (function(guid, _ref) {\r\n var {\r\n widgetInstance: widgetInstance,\r\n item: item\r\n } = _ref;\r\n if (condition(item)) {\r\n result = widgetInstance;\r\n return false\r\n }\r\n }));\r\n return result\r\n }\r\n _findFieldByCondition(callback, valueExpr) {\r\n var result;\r\n each(this._map, (function(key, value) {\r\n if (callback(value)) {\r\n result = \"guid\" === valueExpr ? key : value[valueExpr];\r\n return false\r\n }\r\n }));\r\n return result\r\n }\r\n clear() {\r\n this._map = {}\r\n }\r\n removeItemsByItems(itemsRunTimeInfo) {\r\n each(itemsRunTimeInfo.getItems(), guid => this.removeItemByKey(guid))\r\n }\r\n removeItemByKey(key) {\r\n delete this._map[key]\r\n }\r\n add(options) {\r\n var key = options.guid || new Guid;\r\n this._map[key] = options;\r\n return key\r\n }\r\n addItemsOrExtendFrom(itemsRunTimeInfo) {\r\n itemsRunTimeInfo.each((key, itemRunTimeInfo) => {\r\n if (this._map[key]) {\r\n if (itemRunTimeInfo.widgetInstance) {\r\n this._map[key].widgetInstance = itemRunTimeInfo.widgetInstance\r\n }\r\n this._map[key].$itemContainer = itemRunTimeInfo.$itemContainer\r\n } else {\r\n this.add({\r\n item: itemRunTimeInfo.item,\r\n widgetInstance: itemRunTimeInfo.widgetInstance,\r\n guid: key,\r\n $itemContainer: itemRunTimeInfo.$itemContainer\r\n })\r\n }\r\n })\r\n }\r\n extendRunTimeItemInfoByKey(key, options) {\r\n if (this._map[key]) {\r\n this._map[key] = extend(this._map[key], options)\r\n }\r\n }\r\n findWidgetInstanceByItem(item) {\r\n return this._findWidgetInstance(storedItem => storedItem === item)\r\n }\r\n findGroupOrTabLayoutManagerByPath(targetPath) {\r\n return this._findFieldByCondition(_ref2 => {\r\n var {\r\n path: path\r\n } = _ref2;\r\n return path === targetPath\r\n }, \"layoutManager\")\r\n }\r\n findKeyByPath(targetPath) {\r\n return this._findFieldByCondition(_ref3 => {\r\n var {\r\n path: path\r\n } = _ref3;\r\n return path === targetPath\r\n }, \"guid\")\r\n }\r\n findWidgetInstanceByName(name) {\r\n return this._findWidgetInstance(item => name === item.name)\r\n }\r\n findWidgetInstanceByDataField(dataField) {\r\n return this._findWidgetInstance(item => dataField === (isString(item) ? item : item.dataField))\r\n }\r\n findItemContainerByItem(item) {\r\n for (var key in this._map) {\r\n if (this._map[key].item === item) {\r\n return this._map[key].$itemContainer\r\n }\r\n }\r\n return null\r\n }\r\n findItemIndexByItem(targetItem) {\r\n return this._findFieldByCondition(_ref4 => {\r\n var {\r\n item: item\r\n } = _ref4;\r\n return item === targetItem\r\n }, \"itemIndex\")\r\n }\r\n findPreparedItemByItem(item) {\r\n return this._findFieldByCondition(_ref5 => {\r\n var {\r\n item: currentItem\r\n } = _ref5;\r\n return currentItem === item\r\n }, \"preparedItem\")\r\n }\r\n getItems() {\r\n return this._map\r\n }\r\n each(handler) {\r\n each(this._map, (function(key, itemRunTimeInfo) {\r\n handler(key, itemRunTimeInfo)\r\n }))\r\n }\r\n removeItemsByPathStartWith(path) {\r\n var keys = Object.keys(this._map);\r\n var filteredKeys = keys.filter(key => {\r\n if (this._map[key].path) {\r\n return this._map[key].path.indexOf(path, 0) > -1\r\n }\r\n return false\r\n });\r\n filteredKeys.forEach(key => this.removeItemByKey(key))\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/multi_view/ui.multi_view.animation.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nexport var _translator = {\r\n move($element, position) {\r\n move($element, {\r\n left: position\r\n })\r\n }\r\n};\r\nexport var animation = {\r\n moveTo($element, position, duration, completeAction) {\r\n fx.animate($element, {\r\n type: \"slide\",\r\n to: {\r\n left: position\r\n },\r\n duration: duration,\r\n complete: completeAction\r\n })\r\n },\r\n complete($element) {\r\n fx.stop($element, true)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/multi_view.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n locate\r\n} from \"../animation/translator\";\r\nimport {\r\n _translator,\r\n animation\r\n} from \"./multi_view/ui.multi_view.animation\";\r\nimport {\r\n sign\r\n} from \"../core/utils/math\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n noop,\r\n deferRender\r\n} from \"../core/utils/common\";\r\nimport {\r\n triggerResizeEvent\r\n} from \"../events/visibility_change\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport {\r\n isDefined\r\n} from \"../core/utils/type\";\r\nimport devices from \"../core/devices\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport CollectionWidget from \"./collection/ui.collection_widget.live_update\";\r\nimport Swipeable from \"../events/gesture/swipeable\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nvar MULTIVIEW_CLASS = \"dx-multiview\";\r\nvar MULTIVIEW_WRAPPER_CLASS = \"dx-multiview-wrapper\";\r\nvar MULTIVIEW_ITEM_CONTAINER_CLASS = \"dx-multiview-item-container\";\r\nvar MULTIVIEW_ITEM_CLASS = \"dx-multiview-item\";\r\nvar MULTIVIEW_ITEM_HIDDEN_CLASS = \"dx-multiview-item-hidden\";\r\nvar MULTIVIEW_ITEM_DATA_KEY = \"dxMultiViewItemData\";\r\nvar MULTIVIEW_ANIMATION_DURATION = 200;\r\nvar toNumber = value => +value;\r\nvar position = $element => locate($element).left;\r\nvar MultiView = CollectionWidget.inherit({\r\n _activeStateUnit: \".\" + MULTIVIEW_ITEM_CLASS,\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), {\r\n pageUp: noop,\r\n pageDown: noop\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n selectedIndex: 0,\r\n swipeEnabled: true,\r\n animationEnabled: true,\r\n loop: false,\r\n deferRendering: true,\r\n _itemAttributes: {\r\n role: \"tabpanel\"\r\n },\r\n loopItemFocus: false,\r\n selectOnFocus: true,\r\n selectionMode: \"single\",\r\n selectionRequired: true,\r\n selectionByClick: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _itemClass: function() {\r\n return MULTIVIEW_ITEM_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return MULTIVIEW_ITEM_DATA_KEY\r\n },\r\n _itemContainer: function() {\r\n return this._$itemContainer\r\n },\r\n _itemElements: function() {\r\n return this._itemContainer().children(this._itemSelector())\r\n },\r\n _itemWidth: function() {\r\n if (!this._itemWidthValue) {\r\n this._itemWidthValue = getWidth(this._$wrapper)\r\n }\r\n return this._itemWidthValue\r\n },\r\n _clearItemWidthCache: function() {\r\n delete this._itemWidthValue\r\n },\r\n _itemsCount: function() {\r\n return this.option(\"items\").length\r\n },\r\n _normalizeIndex: function(index) {\r\n var count = this._itemsCount();\r\n if (index < 0) {\r\n index += count\r\n }\r\n if (index >= count) {\r\n index -= count\r\n }\r\n return index\r\n },\r\n _getRTLSignCorrection: function() {\r\n return this.option(\"rtlEnabled\") ? -1 : 1\r\n },\r\n _init: function() {\r\n this.callBase.apply(this, arguments);\r\n var $element = this.$element();\r\n $element.addClass(MULTIVIEW_CLASS);\r\n this._$wrapper = $(\"
\").addClass(MULTIVIEW_WRAPPER_CLASS);\r\n this._$wrapper.appendTo($element);\r\n this._$itemContainer = $(\"
\").addClass(MULTIVIEW_ITEM_CONTAINER_CLASS);\r\n this._$itemContainer.appendTo(this._$wrapper);\r\n this.option(\"loopItemFocus\", this.option(\"loop\"));\r\n this._initSwipeable()\r\n },\r\n _initMarkup: function() {\r\n this._deferredItems = [];\r\n this.callBase();\r\n var selectedItemIndices = this._getSelectedItemIndices();\r\n this._updateItemsVisibility(selectedItemIndices[0])\r\n },\r\n _afterItemElementDeleted: function($item, deletedActionArgs) {\r\n this.callBase($item, deletedActionArgs);\r\n if (this._deferredItems) {\r\n this._deferredItems.splice(deletedActionArgs.itemIndex, 1)\r\n }\r\n },\r\n _beforeItemElementInserted: function(change) {\r\n this.callBase.apply(this, arguments);\r\n if (this._deferredItems) {\r\n this._deferredItems.splice(change.index, 0, null)\r\n }\r\n },\r\n _executeItemRenderAction: function(index, itemData, itemElement) {\r\n index = (this.option(\"items\") || []).indexOf(itemData);\r\n this.callBase(index, itemData, itemElement)\r\n },\r\n _renderItemContent: function(args) {\r\n var renderContentDeferred = new Deferred;\r\n var that = this;\r\n var callBase = this.callBase;\r\n var deferred = new Deferred;\r\n deferred.done((function() {\r\n var $itemContent = callBase.call(that, args);\r\n renderContentDeferred.resolve($itemContent)\r\n }));\r\n this._deferredItems[args.index] = deferred;\r\n this.option(\"deferRendering\") || deferred.resolve();\r\n return renderContentDeferred.promise()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n deferRender(() => {\r\n var selectedItemIndices = this._getSelectedItemIndices();\r\n this._updateItems(selectedItemIndices[0])\r\n })\r\n },\r\n _updateItems: function(selectedIndex, newIndex) {\r\n this._updateItemsPosition(selectedIndex, newIndex);\r\n this._updateItemsVisibility(selectedIndex, newIndex)\r\n },\r\n _modifyByChanges: function() {\r\n this.callBase.apply(this, arguments);\r\n var selectedItemIndices = this._getSelectedItemIndices();\r\n this._updateItemsVisibility(selectedItemIndices[0])\r\n },\r\n _updateItemsPosition: function(selectedIndex, newIndex) {\r\n var $itemElements = this._itemElements();\r\n var positionSign = isDefined(newIndex) ? -this._animationDirection(newIndex, selectedIndex) : void 0;\r\n var $selectedItem = $itemElements.eq(selectedIndex);\r\n _translator.move($selectedItem, 0);\r\n if (isDefined(newIndex)) {\r\n _translator.move($itemElements.eq(newIndex), 100 * positionSign + \"%\")\r\n }\r\n },\r\n _updateItemsVisibility: function(selectedIndex, newIndex) {\r\n var $itemElements = this._itemElements();\r\n $itemElements.each(function(itemIndex, item) {\r\n var $item = $(item);\r\n var isHidden = itemIndex !== selectedIndex && itemIndex !== newIndex;\r\n if (!isHidden) {\r\n this._renderSpecificItem(itemIndex)\r\n }\r\n $item.toggleClass(MULTIVIEW_ITEM_HIDDEN_CLASS, isHidden);\r\n this.setAria(\"hidden\", isHidden || void 0, $item)\r\n }.bind(this))\r\n },\r\n _renderSpecificItem: function(index) {\r\n var $item = this._itemElements().eq(index);\r\n var hasItemContent = $item.find(this._itemContentClass()).length > 0;\r\n if (isDefined(index) && !hasItemContent) {\r\n this._deferredItems[index].resolve();\r\n triggerResizeEvent($item)\r\n }\r\n },\r\n _refreshItem: function($item, item) {\r\n this.callBase($item, item);\r\n this._updateItemsVisibility(this.option(\"selectedIndex\"))\r\n },\r\n _setAriaSelected: noop,\r\n _updateSelection: function(addedSelection, removedSelection) {\r\n var newIndex = addedSelection[0];\r\n var prevIndex = removedSelection[0];\r\n animation.complete(this._$itemContainer);\r\n this._updateItems(prevIndex, newIndex);\r\n var animationDirection = this._animationDirection(newIndex, prevIndex);\r\n this._animateItemContainer(animationDirection * this._itemWidth(), function() {\r\n _translator.move(this._$itemContainer, 0);\r\n this._updateItems(newIndex);\r\n getWidth(this._$itemContainer)\r\n }.bind(this))\r\n },\r\n _animateItemContainer: function(position, completeCallback) {\r\n var duration = this.option(\"animationEnabled\") ? MULTIVIEW_ANIMATION_DURATION : 0;\r\n animation.moveTo(this._$itemContainer, position, duration, completeCallback)\r\n },\r\n _animationDirection: function(newIndex, prevIndex) {\r\n var containerPosition = position(this._$itemContainer);\r\n var indexDifference = (prevIndex - newIndex) * this._getRTLSignCorrection() * this._getItemFocusLoopSignCorrection();\r\n var isSwipePresent = 0 !== containerPosition;\r\n var directionSignVariable = isSwipePresent ? containerPosition : indexDifference;\r\n return sign(directionSignVariable)\r\n },\r\n _getSwipeDisabledState() {\r\n return !this.option(\"swipeEnabled\") || this._itemsCount() <= 1\r\n },\r\n _initSwipeable() {\r\n this._createComponent(this.$element(), Swipeable, {\r\n disabled: this._getSwipeDisabledState(),\r\n elastic: false,\r\n itemSizeFunc: this._itemWidth.bind(this),\r\n onStart: args => this._swipeStartHandler(args.event),\r\n onUpdated: args => this._swipeUpdateHandler(args.event),\r\n onEnd: args => this._swipeEndHandler(args.event)\r\n })\r\n },\r\n _swipeStartHandler: function(e) {\r\n animation.complete(this._$itemContainer);\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var loop = this.option(\"loop\");\r\n var lastIndex = this._itemsCount() - 1;\r\n var rtl = this.option(\"rtlEnabled\");\r\n e.maxLeftOffset = toNumber(loop || (rtl ? selectedIndex > 0 : selectedIndex < lastIndex));\r\n e.maxRightOffset = toNumber(loop || (rtl ? selectedIndex < lastIndex : selectedIndex > 0));\r\n this._swipeDirection = null\r\n },\r\n _swipeUpdateHandler: function(e) {\r\n var offset = e.offset;\r\n var swipeDirection = sign(offset) * this._getRTLSignCorrection();\r\n _translator.move(this._$itemContainer, offset * this._itemWidth());\r\n if (swipeDirection !== this._swipeDirection) {\r\n this._swipeDirection = swipeDirection;\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var newIndex = this._normalizeIndex(selectedIndex - swipeDirection);\r\n this._updateItems(selectedIndex, newIndex)\r\n }\r\n },\r\n _swipeEndHandler: function(e) {\r\n var targetOffset = e.targetOffset * this._getRTLSignCorrection();\r\n if (targetOffset) {\r\n this.option(\"selectedIndex\", this._normalizeIndex(this.option(\"selectedIndex\") - targetOffset));\r\n var $selectedElement = this.itemElements().filter(\".dx-item-selected\");\r\n this.option(\"focusStateEnabled\") && this.option(\"focusedElement\", getPublicElement($selectedElement))\r\n } else {\r\n this._animateItemContainer(0, noop)\r\n }\r\n },\r\n _getItemFocusLoopSignCorrection: function() {\r\n return this._itemFocusLooped ? -1 : 1\r\n },\r\n _moveFocus: function() {\r\n this.callBase.apply(this, arguments);\r\n this._itemFocusLooped = false\r\n },\r\n _prevItem: function($items) {\r\n var $result = this.callBase.apply(this, arguments);\r\n this._itemFocusLooped = $result.is($items.last());\r\n return $result\r\n },\r\n _nextItem: function($items) {\r\n var $result = this.callBase.apply(this, arguments);\r\n this._itemFocusLooped = $result.is($items.first());\r\n return $result\r\n },\r\n _dimensionChanged: function() {\r\n this._clearItemWidthCache()\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._dimensionChanged()\r\n }\r\n },\r\n _updateSwipeDisabledState() {\r\n var disabled = this._getSwipeDisabledState();\r\n Swipeable.getInstance(this.$element()).option(\"disabled\", disabled)\r\n },\r\n _optionChanged: function(args) {\r\n var value = args.value;\r\n switch (args.name) {\r\n case \"loop\":\r\n this.option(\"loopItemFocus\", value);\r\n break;\r\n case \"animationEnabled\":\r\n break;\r\n case \"swipeEnabled\":\r\n this._updateSwipeDisabledState();\r\n break;\r\n case \"deferRendering\":\r\n this._invalidate();\r\n break;\r\n case \"items\":\r\n this._updateSwipeDisabledState();\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxMultiView\", MultiView);\r\nexport default MultiView;\r\n","/**\r\n * DevExtreme (esm/ui/tabs/item.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport CollectionWidgetItem from \"../collection/item\";\r\nvar TABS_ITEM_BADGE_CLASS = \"dx-tabs-item-badge\";\r\nvar BADGE_CLASS = \"dx-badge\";\r\nvar TabsItem = CollectionWidgetItem.inherit({\r\n _renderWatchers: function() {\r\n this.callBase();\r\n this._startWatcher(\"badge\", this._renderBadge.bind(this))\r\n },\r\n _renderBadge: function(badge) {\r\n this._$element.children(\".\" + BADGE_CLASS).remove();\r\n if (!badge) {\r\n return\r\n }\r\n var $badge = $(\"
\").addClass(TABS_ITEM_BADGE_CLASS).addClass(BADGE_CLASS).text(badge);\r\n this._$element.append($badge)\r\n }\r\n});\r\nexport default TabsItem;\r\n","/**\r\n * DevExtreme (esm/ui/tabs/constants.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var TABS_EXPANDED_CLASS = \"dx-tabs-expanded\";\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/get_scroll_left_max.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function getScrollLeftMax(element) {\r\n return element.scrollWidth - element.clientWidth\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/get_boundary_props.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getScrollLeftMax\r\n} from \"./get_scroll_left_max\";\r\nimport {\r\n getScrollTopMax\r\n} from \"./get_scroll_top_max\";\r\nimport {\r\n ScrollDirection\r\n} from \"./scroll_direction\";\r\nexport function isReachedLeft(scrollOffsetLeft, epsilon) {\r\n return Math.round(scrollOffsetLeft) <= epsilon\r\n}\r\nexport function isReachedRight(element, scrollOffsetLeft, epsilon) {\r\n return Math.round(getScrollLeftMax(element) - scrollOffsetLeft) <= epsilon\r\n}\r\nexport function isReachedTop(scrollOffsetTop, epsilon) {\r\n return Math.round(scrollOffsetTop) <= epsilon\r\n}\r\nexport function isReachedBottom(element, scrollOffsetTop, pocketHeight, epsilon) {\r\n return Math.round(getScrollTopMax(element) - scrollOffsetTop - pocketHeight) <= epsilon\r\n}\r\nexport function getBoundaryProps(direction, scrollOffset, element) {\r\n var pocketHeight = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0;\r\n var {\r\n left: left,\r\n top: top\r\n } = scrollOffset;\r\n var boundaryProps = {};\r\n var {\r\n isHorizontal: isHorizontal,\r\n isVertical: isVertical\r\n } = new ScrollDirection(direction);\r\n if (isHorizontal) {\r\n boundaryProps.reachedLeft = isReachedLeft(left, 0);\r\n boundaryProps.reachedRight = isReachedRight(element, left, 0)\r\n }\r\n if (isVertical) {\r\n boundaryProps.reachedTop = isReachedTop(top, 0);\r\n boundaryProps.reachedBottom = isReachedBottom(element, top, pocketHeight, 0)\r\n }\r\n return boundaryProps\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/tabs.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n getOuterWidth\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport devices from \"../core/devices\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport Button from \"./button\";\r\nimport {\r\n render\r\n} from \"./widget/utils.ink_ripple\";\r\nimport {\r\n addNamespace\r\n} from \"../events/utils/index\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n isPlainObject\r\n} from \"../core/utils/type\";\r\nimport pointerEvents from \"../events/pointer\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport TabsItem from \"./tabs/item\";\r\nimport {\r\n TABS_EXPANDED_CLASS\r\n} from \"./tabs/constants\";\r\nimport {\r\n isMaterial,\r\n current as currentTheme\r\n} from \"./themes\";\r\nimport holdEvent from \"../events/hold\";\r\nimport Scrollable from \"./scroll_view/ui.scrollable\";\r\nimport {\r\n default as CollectionWidget\r\n} from \"./collection/ui.collection_widget.live_update\";\r\nimport {\r\n getImageContainer\r\n} from \"../core/utils/icon\";\r\nimport {\r\n BindableTemplate\r\n} from \"../core/templates/bindable_template\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n isReachedLeft,\r\n isReachedRight\r\n} from \"../renovation/ui/scroll_view/utils/get_boundary_props\";\r\nimport {\r\n getScrollLeftMax\r\n} from \"../renovation/ui/scroll_view/utils/get_scroll_left_max\";\r\nvar TABS_CLASS = \"dx-tabs\";\r\nvar TABS_WRAPPER_CLASS = \"dx-tabs-wrapper\";\r\nvar TABS_STRETCHED_CLASS = \"dx-tabs-stretched\";\r\nvar TABS_SCROLLABLE_CLASS = \"dx-tabs-scrollable\";\r\nvar TABS_NAV_BUTTONS_CLASS = \"dx-tabs-nav-buttons\";\r\nvar OVERFLOW_HIDDEN_CLASS = \"dx-overflow-hidden\";\r\nvar TABS_ITEM_CLASS = \"dx-tab\";\r\nvar TABS_ITEM_SELECTED_CLASS = \"dx-tab-selected\";\r\nvar TABS_NAV_BUTTON_CLASS = \"dx-tabs-nav-button\";\r\nvar TABS_LEFT_NAV_BUTTON_CLASS = \"dx-tabs-nav-button-left\";\r\nvar TABS_RIGHT_NAV_BUTTON_CLASS = \"dx-tabs-nav-button-right\";\r\nvar TABS_ITEM_TEXT_CLASS = \"dx-tab-text\";\r\nvar TABS_ITEM_DATA_KEY = \"dxTabData\";\r\nvar BUTTON_NEXT_ICON = \"chevronnext\";\r\nvar BUTTON_PREV_ICON = \"chevronprev\";\r\nvar FEEDBACK_HIDE_TIMEOUT = 100;\r\nvar FEEDBACK_DURATION_INTERVAL = 5;\r\nvar FEEDBACK_SCROLL_TIMEOUT = 300;\r\nvar TAB_OFFSET = 30;\r\nvar Tabs = CollectionWidget.inherit({\r\n _activeStateUnit: \".\" + TABS_ITEM_CLASS,\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n hoverStateEnabled: true,\r\n showNavButtons: true,\r\n scrollByContent: true,\r\n scrollingEnabled: true,\r\n selectionMode: \"single\",\r\n activeStateEnabled: true,\r\n selectionRequired: false,\r\n selectOnFocus: true,\r\n loopItemFocus: false,\r\n useInkRipple: false,\r\n badgeExpr: function(data) {\r\n return data ? data.badge : void 0\r\n },\r\n _itemAttributes: {\r\n role: \"tab\"\r\n }\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n var themeName = currentTheme();\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" !== devices.real().deviceType\r\n },\r\n options: {\r\n showNavButtons: false\r\n }\r\n }, {\r\n device: {\r\n deviceType: \"desktop\"\r\n },\r\n options: {\r\n scrollByContent: false\r\n }\r\n }, {\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterial(themeName)\r\n },\r\n options: {\r\n useInkRipple: true,\r\n selectOnFocus: false\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.setAria(\"role\", \"tablist\");\r\n this.$element().addClass(TABS_CLASS);\r\n this._renderWrapper();\r\n this._renderMultiple();\r\n this._feedbackHideTimeout = FEEDBACK_HIDE_TIMEOUT\r\n },\r\n _initTemplates: function() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n item: new BindableTemplate(function($container, data) {\r\n if (isPlainObject(data)) {\r\n this._prepareDefaultItemTemplate(data, $container)\r\n } else {\r\n $container.text(String(data))\r\n }\r\n var $iconElement = getImageContainer(data.icon);\r\n $iconElement && $iconElement.prependTo($container);\r\n $container.wrapInner($(\"\").addClass(TABS_ITEM_TEXT_CLASS))\r\n }.bind(this), [\"text\", \"html\", \"icon\"], this.option(\"integrationOptions.watchMethod\"))\r\n })\r\n },\r\n _createItemByTemplate: function(itemTemplate, renderArgs) {\r\n var {\r\n itemData: itemData,\r\n container: container,\r\n index: index\r\n } = renderArgs;\r\n this._deferredTemplates[index] = new Deferred;\r\n return itemTemplate.render({\r\n model: itemData,\r\n container: container,\r\n index: index,\r\n onRendered: () => this._deferredTemplates[index].resolve()\r\n })\r\n },\r\n _itemClass: function() {\r\n return TABS_ITEM_CLASS\r\n },\r\n _selectedItemClass: function() {\r\n return TABS_ITEM_SELECTED_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return TABS_ITEM_DATA_KEY\r\n },\r\n _initMarkup: function() {\r\n this._deferredTemplates = [];\r\n this.callBase();\r\n this.option(\"useInkRipple\") && this._renderInkRipple();\r\n this.$element().addClass(OVERFLOW_HIDDEN_CLASS)\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._deferRenderScrolling()\r\n },\r\n _deferRenderScrolling() {\r\n when.apply(this, this._deferredTemplates).done(() => this._renderScrolling())\r\n },\r\n _renderScrolling: function() {\r\n var removeClasses = [TABS_STRETCHED_CLASS, TABS_EXPANDED_CLASS, OVERFLOW_HIDDEN_CLASS];\r\n this.$element().removeClass(removeClasses.join(\" \"));\r\n if (this.option(\"scrollingEnabled\") && this._isItemsWidthExceeded()) {\r\n if (!this._scrollable) {\r\n this._renderScrollable();\r\n this._renderNavButtons()\r\n }\r\n var scrollable = this.getScrollable();\r\n scrollable.update();\r\n if (this.option(\"rtlEnabled\")) {\r\n var maxLeftOffset = getScrollLeftMax($(this.getScrollable().container()).get(0));\r\n scrollable.scrollTo({\r\n left: maxLeftOffset\r\n })\r\n }\r\n this._updateNavButtonsVisibility();\r\n this._scrollToItem(this.option(\"selectedItem\"))\r\n }\r\n if (!(this.option(\"scrollingEnabled\") && this._isItemsWidthExceeded())) {\r\n this._cleanScrolling();\r\n if (this._needStretchItems() && !this._isItemsWidthExceeded()) {\r\n this.$element().addClass(TABS_STRETCHED_CLASS)\r\n }\r\n this.$element().removeClass(TABS_NAV_BUTTONS_CLASS).addClass(TABS_EXPANDED_CLASS)\r\n }\r\n },\r\n _isItemsWidthExceeded: function() {\r\n var tabItemsWidth = this._getSummaryItemsWidth(this._getVisibleItems(), true);\r\n return tabItemsWidth - 1 > getWidth(this.$element())\r\n },\r\n _needStretchItems: function() {\r\n var $visibleItems = this._getVisibleItems();\r\n var elementWidth = getWidth(this.$element());\r\n var itemsWidth = [];\r\n each($visibleItems, (_, item) => {\r\n itemsWidth.push(getOuterWidth(item, true))\r\n });\r\n var maxTabWidth = Math.max.apply(null, itemsWidth);\r\n return maxTabWidth > elementWidth / $visibleItems.length\r\n },\r\n _cleanNavButtons: function() {\r\n if (!this._leftButton || !this._rightButton) {\r\n return\r\n }\r\n this._leftButton.$element().remove();\r\n this._rightButton.$element().remove();\r\n this._leftButton = null;\r\n this._rightButton = null\r\n },\r\n _cleanScrolling: function() {\r\n if (!this._scrollable) {\r\n return\r\n }\r\n this._$wrapper.appendTo(this.$element());\r\n this._scrollable.$element().remove();\r\n this._scrollable = null;\r\n this._cleanNavButtons()\r\n },\r\n _renderInkRipple: function() {\r\n this._inkRipple = render()\r\n },\r\n _toggleActiveState: function($element, value, e) {\r\n this.callBase.apply(this, arguments);\r\n if (!this._inkRipple) {\r\n return\r\n }\r\n var config = {\r\n element: $element,\r\n event: e\r\n };\r\n if (value) {\r\n this._inkRipple.showWave(config)\r\n } else {\r\n this._inkRipple.hideWave(config)\r\n }\r\n },\r\n _renderMultiple: function() {\r\n if (\"multiple\" === this.option(\"selectionMode\")) {\r\n this.option(\"selectOnFocus\", false)\r\n }\r\n },\r\n _renderWrapper: function() {\r\n this._$wrapper = $(\"
\").addClass(TABS_WRAPPER_CLASS);\r\n this.$element().append(this._$wrapper)\r\n },\r\n _itemContainer: function() {\r\n return this._$wrapper\r\n },\r\n _renderScrollable: function() {\r\n var $itemContainer = this.$element().wrapInner($(\"
\").addClass(TABS_SCROLLABLE_CLASS)).children();\r\n this._scrollable = this._createComponent($itemContainer, Scrollable, {\r\n direction: \"horizontal\",\r\n showScrollbar: \"never\",\r\n useKeyboard: false,\r\n useNative: false,\r\n scrollByContent: this.option(\"scrollByContent\"),\r\n onScroll: () => {\r\n this._updateNavButtonsVisibility()\r\n }\r\n });\r\n this.$element().append(this._scrollable.$element())\r\n },\r\n _scrollToItem: function(itemData) {\r\n if (!this._scrollable) {\r\n return\r\n }\r\n var $item = this._editStrategy.getItemElement(itemData);\r\n this._scrollable.scrollToElement($item)\r\n },\r\n _renderNavButtons: function() {\r\n this.$element().toggleClass(TABS_NAV_BUTTONS_CLASS, this.option(\"showNavButtons\"));\r\n if (!this.option(\"showNavButtons\")) {\r\n return\r\n }\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n this._leftButton = this._createNavButton(-TAB_OFFSET, rtlEnabled ? BUTTON_NEXT_ICON : BUTTON_PREV_ICON);\r\n var $leftButton = this._leftButton.$element();\r\n $leftButton.addClass(TABS_LEFT_NAV_BUTTON_CLASS);\r\n this.$element().prepend($leftButton);\r\n this._rightButton = this._createNavButton(TAB_OFFSET, rtlEnabled ? BUTTON_PREV_ICON : BUTTON_NEXT_ICON);\r\n var $rightButton = this._rightButton.$element();\r\n $rightButton.addClass(TABS_RIGHT_NAV_BUTTON_CLASS);\r\n this.$element().append($rightButton)\r\n },\r\n _updateNavButtonsVisibility: function() {\r\n var scrollable = this.getScrollable();\r\n this._leftButton && this._leftButton.option(\"disabled\", isReachedLeft(scrollable.scrollLeft(), 1));\r\n this._rightButton && this._rightButton.option(\"disabled\", isReachedRight($(scrollable.container()).get(0), scrollable.scrollLeft(), 1))\r\n },\r\n _updateScrollPosition: function(offset, duration) {\r\n this._scrollable.update();\r\n this._scrollable.scrollBy(offset / duration)\r\n },\r\n _createNavButton: function(offset, icon) {\r\n var that = this;\r\n var holdAction = that._createAction((function() {\r\n that._holdInterval = setInterval((function() {\r\n that._updateScrollPosition(offset, FEEDBACK_DURATION_INTERVAL)\r\n }), FEEDBACK_DURATION_INTERVAL)\r\n }));\r\n var holdEventName = addNamespace(holdEvent.name, \"dxNavButton\");\r\n var pointerUpEventName = addNamespace(pointerEvents.up, \"dxNavButton\");\r\n var pointerOutEventName = addNamespace(pointerEvents.out, \"dxNavButton\");\r\n var navButton = this._createComponent($(\"
\").addClass(TABS_NAV_BUTTON_CLASS), Button, {\r\n focusStateEnabled: false,\r\n icon: icon,\r\n onClick: function() {\r\n that._updateScrollPosition(offset, 1)\r\n },\r\n integrationOptions: {}\r\n });\r\n var $navButton = navButton.$element();\r\n eventsEngine.on($navButton, holdEventName, {\r\n timeout: FEEDBACK_SCROLL_TIMEOUT\r\n }, function(e) {\r\n holdAction({\r\n event: e\r\n })\r\n }.bind(this));\r\n eventsEngine.on($navButton, pointerUpEventName, (function() {\r\n that._clearInterval()\r\n }));\r\n eventsEngine.on($navButton, pointerOutEventName, (function() {\r\n that._clearInterval()\r\n }));\r\n return navButton\r\n },\r\n _clearInterval: function() {\r\n if (this._holdInterval) {\r\n clearInterval(this._holdInterval)\r\n }\r\n },\r\n _updateSelection: function(addedSelection) {\r\n this._scrollable && this._scrollable.scrollToElement(this.itemElements().eq(addedSelection[0]), {\r\n left: 1,\r\n right: 1\r\n })\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._dimensionChanged()\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n this._renderScrolling()\r\n },\r\n _itemSelectHandler: function(e) {\r\n if (\"single\" === this.option(\"selectionMode\") && this.isItemSelected(e.currentTarget)) {\r\n return\r\n }\r\n this.callBase(e)\r\n },\r\n _clean: function() {\r\n this._deferredTemplates = [];\r\n this._cleanScrolling();\r\n this.callBase()\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"useInkRipple\":\r\n case \"scrollingEnabled\":\r\n case \"showNavButtons\":\r\n this._invalidate();\r\n break;\r\n case \"scrollByContent\":\r\n this._scrollable && this._scrollable.option(args.name, args.value);\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n this._dimensionChanged();\r\n break;\r\n case \"selectionMode\":\r\n this._renderMultiple();\r\n this.callBase(args);\r\n break;\r\n case \"badgeExpr\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _afterItemElementInserted() {\r\n this.callBase();\r\n this._deferRenderScrolling()\r\n },\r\n _afterItemElementDeleted($item, deletedActionArgs) {\r\n this.callBase($item, deletedActionArgs);\r\n this._renderScrolling()\r\n },\r\n getScrollable() {\r\n return this._scrollable\r\n }\r\n});\r\nTabs.ItemClass = TabsItem;\r\nregisterComponent(\"dxTabs\", Tabs);\r\nexport default Tabs;\r\n","/**\r\n * DevExtreme (esm/ui/tab_panel/item.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport CollectionWidgetItem from \"../collection/item\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nexport default class TabPanelItem extends CollectionWidgetItem {\r\n _renderWatchers() {\r\n this._startWatcher(\"badge\", noop);\r\n return super._renderWatchers()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/tab_panel.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterHeight\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n touch\r\n} from \"../core/utils/support\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport devices from \"../core/devices\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport MultiView from \"./multi_view\";\r\nimport Tabs from \"./tabs\";\r\nimport {\r\n default as TabPanelItem\r\n} from \"./tab_panel/item\";\r\nimport {\r\n getImageContainer\r\n} from \"../core/utils/icon\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport {\r\n isPlainObject,\r\n isDefined\r\n} from \"../core/utils/type\";\r\nimport {\r\n BindableTemplate\r\n} from \"../core/templates/bindable_template\";\r\nimport {\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nvar TABPANEL_CLASS = \"dx-tabpanel\";\r\nvar TABPANEL_TABS_CLASS = \"dx-tabpanel-tabs\";\r\nvar TABPANEL_CONTAINER_CLASS = \"dx-tabpanel-container\";\r\nvar TABS_ITEM_TEXT_CLASS = \"dx-tab-text\";\r\nvar TabPanel = MultiView.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n itemTitleTemplate: \"title\",\r\n hoverStateEnabled: true,\r\n showNavButtons: false,\r\n scrollByContent: true,\r\n scrollingEnabled: true,\r\n onTitleClick: null,\r\n onTitleHold: null,\r\n onTitleRendered: null,\r\n badgeExpr: function(data) {\r\n return data ? data.badge : void 0\r\n }\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: function() {\r\n return !touch\r\n },\r\n options: {\r\n swipeEnabled: false\r\n }\r\n }, {\r\n device: {\r\n platform: \"generic\"\r\n },\r\n options: {\r\n animationEnabled: false\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(TABPANEL_CLASS);\r\n this.setAria(\"role\", \"tabpanel\")\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._createTitleActions();\r\n this._renderLayout()\r\n },\r\n _initTemplates: function() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n title: new BindableTemplate((function($container, data) {\r\n if (isPlainObject(data)) {\r\n var $iconElement = getImageContainer(data.icon);\r\n if ($iconElement) {\r\n $container.append($iconElement)\r\n }\r\n if (isDefined(data.title) && !isPlainObject(data.title)) {\r\n $container.append(domAdapter.createTextNode(data.title))\r\n }\r\n } else if (isDefined(data)) {\r\n $container.text(String(data))\r\n }\r\n $container.wrapInner($(\"\").addClass(TABS_ITEM_TEXT_CLASS))\r\n }), [\"title\", \"icon\"], this.option(\"integrationOptions.watchMethod\"))\r\n })\r\n },\r\n _createTitleActions: function() {\r\n this._createTitleClickAction();\r\n this._createTitleHoldAction();\r\n this._createTitleRenderedAction()\r\n },\r\n _createTitleClickAction: function() {\r\n this._titleClickAction = this._createActionByOption(\"onTitleClick\")\r\n },\r\n _createTitleHoldAction: function() {\r\n this._titleHoldAction = this._createActionByOption(\"onTitleHold\")\r\n },\r\n _createTitleRenderedAction: function() {\r\n this._titleRenderedAction = this._createActionByOption(\"onTitleRendered\")\r\n },\r\n _renderContent: function() {\r\n var that = this;\r\n this.callBase();\r\n if (this.option(\"templatesRenderAsynchronously\")) {\r\n this._resizeEventTimer = setTimeout((function() {\r\n that._updateLayout()\r\n }), 0)\r\n }\r\n },\r\n _renderLayout: function() {\r\n if (this._tabs) {\r\n this._updateLayout();\r\n return\r\n }\r\n var $element = this.$element();\r\n this._$tabContainer = $(\"
\").addClass(TABPANEL_TABS_CLASS).appendTo($element);\r\n var $tabs = $(\"
\").appendTo(this._$tabContainer);\r\n this._tabs = this._createComponent($tabs, Tabs, this._tabConfig());\r\n this._$container = $(\"
\").addClass(TABPANEL_CONTAINER_CLASS).appendTo($element);\r\n this._$container.append(this._$wrapper);\r\n this._updateLayout()\r\n },\r\n _updateLayout: function() {\r\n if (hasWindow()) {\r\n var tabsHeight = getOuterHeight(this._$tabContainer);\r\n this._$container.css({\r\n marginTop: -tabsHeight,\r\n paddingTop: tabsHeight\r\n })\r\n }\r\n },\r\n _refreshActiveDescendant: function() {\r\n if (!this._tabs) {\r\n return\r\n }\r\n var tabs = this._tabs;\r\n var tabItems = tabs.itemElements();\r\n var $activeTab = $(tabItems[tabs.option(\"selectedIndex\")]);\r\n var id = this.getFocusedItemId();\r\n this.setAria(\"controls\", void 0, $(tabItems));\r\n this.setAria(\"controls\", id, $activeTab)\r\n },\r\n _tabConfig: function() {\r\n return {\r\n selectOnFocus: true,\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n repaintChangesOnly: this.option(\"repaintChangesOnly\"),\r\n tabIndex: this.option(\"tabIndex\"),\r\n selectedIndex: this.option(\"selectedIndex\"),\r\n badgeExpr: this.option(\"badgeExpr\"),\r\n onItemClick: this._titleClickAction.bind(this),\r\n onItemHold: this._titleHoldAction.bind(this),\r\n itemHoldTimeout: this.option(\"itemHoldTimeout\"),\r\n onSelectionChanged: function(e) {\r\n this.option(\"selectedIndex\", e.component.option(\"selectedIndex\"));\r\n this._refreshActiveDescendant()\r\n }.bind(this),\r\n onItemRendered: this._titleRenderedAction.bind(this),\r\n itemTemplate: this._getTemplateByOption(\"itemTitleTemplate\"),\r\n items: this.option(\"items\"),\r\n noDataText: null,\r\n scrollingEnabled: this.option(\"scrollingEnabled\"),\r\n scrollByContent: this.option(\"scrollByContent\"),\r\n showNavButtons: this.option(\"showNavButtons\"),\r\n itemTemplateProperty: \"tabTemplate\",\r\n loopItemFocus: this.option(\"loop\"),\r\n selectionRequired: true,\r\n onOptionChanged: function(args) {\r\n if (\"focusedElement\" === args.name) {\r\n if (args.value) {\r\n var $value = $(args.value);\r\n var $newItem = this._itemElements().eq($value.index());\r\n this.option(\"focusedElement\", getPublicElement($newItem))\r\n } else {\r\n this.option(\"focusedElement\", args.value)\r\n }\r\n }\r\n }.bind(this),\r\n onFocusIn: function(args) {\r\n this._focusInHandler(args.event)\r\n }.bind(this),\r\n onFocusOut: function(args) {\r\n if (!this._isFocusOutHandlerExecuting) {\r\n this._focusOutHandler(args.event)\r\n }\r\n }.bind(this)\r\n }\r\n },\r\n _renderFocusTarget: function() {\r\n this._focusTarget().attr(\"tabIndex\", -1)\r\n },\r\n _updateFocusState: function(e, isFocused) {\r\n this.callBase(e, isFocused);\r\n if (e.target === this._tabs._focusTarget().get(0)) {\r\n this._toggleFocusClass(isFocused, this._focusTarget())\r\n }\r\n },\r\n _focusOutHandler: function(e) {\r\n this._isFocusOutHandlerExecuting = true;\r\n this.callBase.apply(this, arguments);\r\n this._tabs._focusOutHandler(e);\r\n this._isFocusOutHandlerExecuting = false\r\n },\r\n _setTabsOption: function(name, value) {\r\n if (this._tabs) {\r\n this._tabs.option(name, value)\r\n }\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._tabs._dimensionChanged();\r\n this._updateLayout()\r\n }\r\n },\r\n registerKeyHandler: function(key, handler) {\r\n this.callBase(key, handler);\r\n if (this._tabs) {\r\n this._tabs.registerKeyHandler(key, handler)\r\n }\r\n },\r\n repaint: function() {\r\n this.callBase();\r\n this._tabs.repaint()\r\n },\r\n _optionChanged: function(args) {\r\n var name = args.name;\r\n var value = args.value;\r\n var fullName = args.fullName;\r\n switch (name) {\r\n case \"dataSource\":\r\n this.callBase(args);\r\n break;\r\n case \"items\":\r\n this._setTabsOption(name, this.option(name));\r\n this._updateLayout();\r\n if (!this.option(\"repaintChangesOnly\")) {\r\n this._tabs.repaint()\r\n }\r\n this.callBase(args);\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n this._tabs.repaint();\r\n break;\r\n case \"selectedIndex\":\r\n case \"selectedItem\":\r\n this._setTabsOption(fullName, value);\r\n this.callBase(args);\r\n if (true === this.option(\"focusStateEnabled\")) {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var selectedTabContent = this._itemElements().eq(selectedIndex);\r\n this.option(\"focusedElement\", getPublicElement(selectedTabContent))\r\n }\r\n break;\r\n case \"itemHoldTimeout\":\r\n case \"focusStateEnabled\":\r\n case \"hoverStateEnabled\":\r\n this._setTabsOption(fullName, value);\r\n this.callBase(args);\r\n break;\r\n case \"scrollingEnabled\":\r\n case \"scrollByContent\":\r\n case \"showNavButtons\":\r\n this._setTabsOption(fullName, value);\r\n break;\r\n case \"focusedElement\":\r\n var id = value ? $(value).index() : value;\r\n var newItem = value ? this._tabs._itemElements().eq(id) : value;\r\n this._setTabsOption(\"focusedElement\", getPublicElement(newItem));\r\n this.callBase(args);\r\n break;\r\n case \"itemTitleTemplate\":\r\n this._setTabsOption(\"itemTemplate\", this._getTemplateByOption(\"itemTitleTemplate\"));\r\n break;\r\n case \"onTitleClick\":\r\n this._createTitleClickAction();\r\n this._setTabsOption(\"onItemClick\", this._titleClickAction.bind(this));\r\n break;\r\n case \"onTitleHold\":\r\n this._createTitleHoldAction();\r\n this._setTabsOption(\"onItemHold\", this._titleHoldAction.bind(this));\r\n break;\r\n case \"onTitleRendered\":\r\n this._createTitleRenderedAction();\r\n this._setTabsOption(\"onItemRendered\", this._titleRenderedAction.bind(this));\r\n break;\r\n case \"loop\":\r\n this._setTabsOption(\"loopItemFocus\", value);\r\n break;\r\n case \"badgeExpr\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clean: function() {\r\n clearTimeout(this._resizeEventTimer);\r\n this.callBase()\r\n }\r\n});\r\nTabPanel.ItemClass = TabPanelItem;\r\nregisterComponent(\"dxTabPanel\", TabPanel);\r\nexport default TabPanel;\r\n","/**\r\n * DevExtreme (esm/ui/form/ui.form.item_option_action.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nexport default class ItemOptionAction {\r\n constructor(options) {\r\n this._options = options;\r\n this._itemsRunTimeInfo = this._options.itemsRunTimeInfo\r\n }\r\n findInstance() {\r\n return this._itemsRunTimeInfo.findWidgetInstanceByItem(this._options.item)\r\n }\r\n findItemContainer() {\r\n return this._itemsRunTimeInfo.findItemContainerByItem(this._options.item)\r\n }\r\n findPreparedItem() {\r\n return this._itemsRunTimeInfo.findPreparedItemByItem(this._options.item)\r\n }\r\n tryExecute() {\r\n Class.abstract()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/form/ui.form.utils.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nexport var createItemPathByIndex = (index, isTabs) => \"\".concat(isTabs ? \"tabs\" : \"items\", \"[\").concat(index, \"]\");\r\nexport var concatPaths = (path1, path2) => {\r\n if (isDefined(path1) && isDefined(path2)) {\r\n return \"\".concat(path1, \".\").concat(path2)\r\n }\r\n return path1 || path2\r\n};\r\nexport var getTextWithoutSpaces = text => text ? text.replace(/\\s/g, \"\") : void 0;\r\nexport var isEqualToDataFieldOrNameOrTitleOrCaption = (item, fieldName) => {\r\n if (item) {\r\n return item.dataField === fieldName || item.name === fieldName || getTextWithoutSpaces(item.title) === fieldName || \"group\" === item.itemType && getTextWithoutSpaces(item.caption) === fieldName\r\n }\r\n return false\r\n};\r\nexport var getFullOptionName = (path, optionName) => \"\".concat(path, \".\").concat(optionName);\r\nexport var getOptionNameFromFullName = fullName => {\r\n var parts = fullName.split(\".\");\r\n return parts[parts.length - 1].replace(/\\[\\d+]/, \"\")\r\n};\r\nexport var tryGetTabPath = fullPath => {\r\n var pathParts = fullPath.split(\".\");\r\n var resultPathParts = [...pathParts];\r\n for (var i = pathParts.length - 1; i >= 0; i--) {\r\n if (isFullPathContainsTabs(pathParts[i])) {\r\n return resultPathParts.join(\".\")\r\n }\r\n resultPathParts.splice(i, 1)\r\n }\r\n return \"\"\r\n};\r\nexport var isFullPathContainsTabs = fullPath => fullPath.indexOf(\"tabs\") > -1;\r\nexport var getItemPath = (items, item, isTabs) => {\r\n var index = items.indexOf(item);\r\n if (index > -1) {\r\n return createItemPathByIndex(index, isTabs)\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var targetItem = items[i];\r\n var tabOrGroupItems = targetItem.tabs || targetItem.items;\r\n if (tabOrGroupItems) {\r\n var itemPath = getItemPath(tabOrGroupItems, item, targetItem.tabs);\r\n if (itemPath) {\r\n return concatPaths(createItemPathByIndex(i, isTabs), itemPath)\r\n }\r\n }\r\n }\r\n};\r\nexport function convertToLayoutManagerOptions(_ref) {\r\n var {\r\n form: form,\r\n $formElement: $formElement,\r\n formOptions: formOptions,\r\n items: items,\r\n validationGroup: validationGroup,\r\n extendedLayoutManagerOptions: extendedLayoutManagerOptions,\r\n onFieldDataChanged: onFieldDataChanged,\r\n onContentReady: onContentReady,\r\n onDisposing: onDisposing,\r\n onFieldItemRendered: onFieldItemRendered\r\n } = _ref;\r\n var baseOptions = {\r\n form: form,\r\n items: items,\r\n $formElement: $formElement,\r\n validationGroup: validationGroup,\r\n onFieldDataChanged: onFieldDataChanged,\r\n onContentReady: onContentReady,\r\n onDisposing: onDisposing,\r\n onFieldItemRendered: onFieldItemRendered,\r\n validationBoundary: formOptions.scrollingEnabled ? $formElement : void 0,\r\n scrollingEnabled: formOptions.scrollingEnabled,\r\n showRequiredMark: formOptions.showRequiredMark,\r\n showOptionalMark: formOptions.showOptionalMark,\r\n requiredMark: formOptions.requiredMark,\r\n optionalMark: formOptions.optionalMark,\r\n requiredMessage: formOptions.requiredMessage,\r\n screenByWidth: formOptions.screenByWidth,\r\n layoutData: formOptions.formData,\r\n labelLocation: formOptions.labelLocation,\r\n customizeItem: formOptions.customizeItem,\r\n minColWidth: formOptions.minColWidth,\r\n showColonAfterLabel: formOptions.showColonAfterLabel,\r\n onEditorEnterKey: formOptions.onEditorEnterKey,\r\n labelMode: formOptions.labelMode\r\n };\r\n var result = extend(baseOptions, {\r\n isRoot: extendedLayoutManagerOptions.isRoot,\r\n colCount: extendedLayoutManagerOptions.colCount,\r\n alignItemLabels: extendedLayoutManagerOptions.alignItemLabels,\r\n cssItemClass: extendedLayoutManagerOptions.cssItemClass,\r\n colCountByScreen: extendedLayoutManagerOptions.colCountByScreen,\r\n onLayoutChanged: extendedLayoutManagerOptions.onLayoutChanged,\r\n width: extendedLayoutManagerOptions.width\r\n });\r\n return result\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/form/ui.form.item_options_actions.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ItemOptionAction from \"./ui.form.item_option_action\";\r\nimport {\r\n data\r\n} from \"../../core/element_data\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getFullOptionName\r\n} from \"./ui.form.utils\";\r\nclass WidgetOptionItemOptionAction extends ItemOptionAction {\r\n tryExecute() {\r\n var {\r\n value: value\r\n } = this._options;\r\n var instance = this.findInstance();\r\n if (instance) {\r\n instance.option(value);\r\n return true\r\n }\r\n return false\r\n }\r\n}\r\nclass TabOptionItemOptionAction extends ItemOptionAction {\r\n tryExecute() {\r\n var tabPanel = this.findInstance();\r\n if (tabPanel) {\r\n var {\r\n optionName: optionName,\r\n item: item,\r\n value: value\r\n } = this._options;\r\n var itemIndex = this._itemsRunTimeInfo.findItemIndexByItem(item);\r\n if (itemIndex >= 0) {\r\n tabPanel.option(getFullOptionName(\"items[\".concat(itemIndex, \"]\"), optionName), value);\r\n return true\r\n }\r\n }\r\n return false\r\n }\r\n}\r\nclass SimpleItemTemplateChangedAction extends ItemOptionAction {\r\n tryExecute() {\r\n return false\r\n }\r\n}\r\nclass GroupItemTemplateChangedAction extends ItemOptionAction {\r\n tryExecute() {\r\n var preparedItem = this.findPreparedItem();\r\n if (null != preparedItem && preparedItem._prepareGroupItemTemplate && preparedItem._renderGroupContentTemplate) {\r\n preparedItem._prepareGroupItemTemplate(this._options.item.template);\r\n preparedItem._renderGroupContentTemplate();\r\n return true\r\n }\r\n return false\r\n }\r\n}\r\nclass TabsOptionItemOptionAction extends ItemOptionAction {\r\n tryExecute() {\r\n var tabPanel = this.findInstance();\r\n if (tabPanel) {\r\n var {\r\n value: value\r\n } = this._options;\r\n tabPanel.option(\"dataSource\", value);\r\n return true\r\n }\r\n return false\r\n }\r\n}\r\nclass ValidationRulesItemOptionAction extends ItemOptionAction {\r\n tryExecute() {\r\n var {\r\n item: item\r\n } = this._options;\r\n var instance = this.findInstance();\r\n var validator = instance && data(instance.$element()[0], \"dxValidator\");\r\n if (validator && item) {\r\n var filterRequired = item => \"required\" === item.type;\r\n var oldContainsRequired = (validator.option(\"validationRules\") || []).some(filterRequired);\r\n var newContainsRequired = (item.validationRules || []).some(filterRequired);\r\n if (!oldContainsRequired && !newContainsRequired || oldContainsRequired && newContainsRequired) {\r\n validator.option(\"validationRules\", item.validationRules);\r\n return true\r\n }\r\n }\r\n return false\r\n }\r\n}\r\nclass CssClassItemOptionAction extends ItemOptionAction {\r\n tryExecute() {\r\n var $itemContainer = this.findItemContainer();\r\n var {\r\n previousValue: previousValue,\r\n value: value\r\n } = this._options;\r\n if ($itemContainer) {\r\n $itemContainer.removeClass(previousValue).addClass(value);\r\n return true\r\n }\r\n return false\r\n }\r\n}\r\nvar tryCreateItemOptionAction = (optionName, itemActionOptions) => {\r\n switch (optionName) {\r\n case \"editorOptions\":\r\n case \"buttonOptions\":\r\n return new WidgetOptionItemOptionAction(itemActionOptions);\r\n case \"validationRules\":\r\n return new ValidationRulesItemOptionAction(itemActionOptions);\r\n case \"cssClass\":\r\n return new CssClassItemOptionAction(itemActionOptions);\r\n case \"badge\":\r\n case \"disabled\":\r\n case \"icon\":\r\n case \"tabTemplate\":\r\n case \"title\":\r\n return new TabOptionItemOptionAction(extend(itemActionOptions, {\r\n optionName: optionName\r\n }));\r\n case \"tabs\":\r\n return new TabsOptionItemOptionAction(itemActionOptions);\r\n case \"template\":\r\n var _itemActionOptions$it, _itemActionOptions$it2, _itemActionOptions$it3;\r\n var itemType = null !== (_itemActionOptions$it = null === itemActionOptions || void 0 === itemActionOptions ? void 0 : null === (_itemActionOptions$it2 = itemActionOptions.item) || void 0 === _itemActionOptions$it2 ? void 0 : _itemActionOptions$it2.itemType) && void 0 !== _itemActionOptions$it ? _itemActionOptions$it : null === (_itemActionOptions$it3 = itemActionOptions.itemsRunTimeInfo.findPreparedItemByItem(null === itemActionOptions || void 0 === itemActionOptions ? void 0 : itemActionOptions.item)) || void 0 === _itemActionOptions$it3 ? void 0 : _itemActionOptions$it3.itemType;\r\n if (\"simple\" === itemType) {\r\n return new SimpleItemTemplateChangedAction(itemActionOptions)\r\n } else if (\"group\" === itemType) {\r\n return new GroupItemTemplateChangedAction(itemActionOptions)\r\n }\r\n return new TabOptionItemOptionAction(extend(itemActionOptions, {\r\n optionName: optionName\r\n }));\r\n default:\r\n return null\r\n }\r\n};\r\nexport default tryCreateItemOptionAction;\r\n","/**\r\n * DevExtreme (esm/ui/responsive_box.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n grep,\r\n noop\r\n} from \"../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isPlainObject,\r\n isEmptyObject\r\n} from \"../core/utils/type\";\r\nimport errors from \"./widget/ui.errors\";\r\nimport {\r\n getWindow,\r\n defaultScreenFactorFunc,\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nvar window = getWindow();\r\nimport {\r\n each,\r\n map\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport Box from \"./box\";\r\nimport CollectionWidget from \"./collection/ui.collection_widget.edit\";\r\nvar RESPONSIVE_BOX_CLASS = \"dx-responsivebox\";\r\nvar SCREEN_SIZE_CLASS_PREFIX = RESPONSIVE_BOX_CLASS + \"-screen-\";\r\nvar BOX_ITEM_CLASS = \"dx-box-item\";\r\nvar BOX_ITEM_DATA_KEY = \"dxBoxItemData\";\r\nvar HD_SCREEN_WIDTH = 1920;\r\nvar ResponsiveBox = CollectionWidget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n rows: [],\r\n cols: [],\r\n screenByWidth: null,\r\n singleColumnScreen: \"\",\r\n height: \"100%\",\r\n width: \"100%\",\r\n activeStateEnabled: false,\r\n focusStateEnabled: false,\r\n onItemStateChanged: void 0,\r\n onLayoutChanged: null,\r\n currentScreenFactor: void 0,\r\n _layoutStrategy: void 0\r\n })\r\n },\r\n _init: function() {\r\n if (!this.option(\"screenByWidth\")) {\r\n this._options.silent(\"screenByWidth\", defaultScreenFactorFunc)\r\n }\r\n this.callBase();\r\n this._initLayoutChangedAction()\r\n },\r\n _initLayoutChangedAction: function() {\r\n this._layoutChangedAction = this._createActionByOption(\"onLayoutChanged\", {\r\n excludeValidators: [\"disabled\", \"readonly\"]\r\n })\r\n },\r\n _itemClass: function() {\r\n return BOX_ITEM_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return BOX_ITEM_DATA_KEY\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this.$element().addClass(RESPONSIVE_BOX_CLASS);\r\n this._updateRootBox()\r\n },\r\n _updateRootBox: function() {\r\n clearTimeout(this._updateTimer);\r\n this._updateTimer = setTimeout(function() {\r\n if (this._$root) {\r\n eventsEngine.triggerHandler(this._$root, \"dxupdate\")\r\n }\r\n }.bind(this))\r\n },\r\n _renderItems: function() {\r\n this._setScreenSize();\r\n this._screenItems = this._itemsByScreen();\r\n this._prepareGrid();\r\n this._spreadItems();\r\n this._layoutItems();\r\n this._linkNodeToItem()\r\n },\r\n _itemOptionChanged: function(item) {\r\n var $item = this._findItemElementByItem(item);\r\n if (!$item.length) {\r\n return\r\n }\r\n this._refreshItem($item, item);\r\n this._clearItemNodeTemplates();\r\n this._update(true)\r\n },\r\n _setScreenSize: function() {\r\n var currentScreen = this._getCurrentScreen();\r\n this._removeScreenSizeClass();\r\n this.$element().addClass(SCREEN_SIZE_CLASS_PREFIX + currentScreen);\r\n this.option(\"currentScreenFactor\", currentScreen)\r\n },\r\n _removeScreenSizeClass: function() {\r\n var currentScreenFactor = this.option(\"currentScreenFactor\");\r\n currentScreenFactor && this.$element().removeClass(SCREEN_SIZE_CLASS_PREFIX + currentScreenFactor)\r\n },\r\n _prepareGrid: function() {\r\n var grid = this._grid = [];\r\n this._prepareRowsAndCols();\r\n each(this._rows, function() {\r\n var row = [];\r\n grid.push(row);\r\n each(this._cols, function() {\r\n row.push(this._createEmptyCell())\r\n }.bind(this))\r\n }.bind(this))\r\n },\r\n getSingleColumnRows: function() {\r\n var rows = this.option(\"rows\");\r\n var screenItemsLength = this._screenItems.length;\r\n if (rows.length) {\r\n var filteredRows = this._filterByScreen(rows);\r\n var result = [];\r\n for (var i = 0; i < screenItemsLength; i++) {\r\n var sizeConfig = this._defaultSizeConfig();\r\n if (i < filteredRows.length && isDefined(filteredRows[i].shrink)) {\r\n sizeConfig.shrink = filteredRows[i].shrink\r\n }\r\n result.push(sizeConfig)\r\n }\r\n return result\r\n } else {\r\n return this._defaultSizeConfig(screenItemsLength)\r\n }\r\n },\r\n _prepareRowsAndCols: function() {\r\n if (this._isSingleColumnScreen()) {\r\n this._prepareSingleColumnScreenItems();\r\n this._rows = this.getSingleColumnRows();\r\n this._cols = this._defaultSizeConfig(1)\r\n } else {\r\n this._rows = this._sizesByScreen(this.option(\"rows\"));\r\n this._cols = this._sizesByScreen(this.option(\"cols\"))\r\n }\r\n },\r\n _isSingleColumnScreen: function() {\r\n return this._screenRegExp().test(this.option(\"singleColumnScreen\")) || !this.option(\"rows\").length || !this.option(\"cols\").length\r\n },\r\n _prepareSingleColumnScreenItems: function() {\r\n this._screenItems.sort((function(item1, item2) {\r\n return item1.location.row - item2.location.row || item1.location.col - item2.location.col\r\n }));\r\n each(this._screenItems, (function(index, item) {\r\n extend(item.location, {\r\n row: index,\r\n col: 0,\r\n rowspan: 1,\r\n colspan: 1\r\n })\r\n }))\r\n },\r\n _sizesByScreen: function(sizeConfigs) {\r\n return map(this._filterByScreen(sizeConfigs), function(sizeConfig) {\r\n return extend(this._defaultSizeConfig(), sizeConfig)\r\n }.bind(this))\r\n },\r\n _createDefaultSizeConfig: function() {\r\n return {\r\n ratio: 1,\r\n baseSize: 0,\r\n minSize: 0,\r\n maxSize: 0\r\n }\r\n },\r\n _defaultSizeConfig: function(size) {\r\n var defaultSizeConfig = this._createDefaultSizeConfig();\r\n if (!arguments.length) {\r\n return defaultSizeConfig\r\n }\r\n var result = [];\r\n for (var i = 0; i < size; i++) {\r\n result.push(defaultSizeConfig)\r\n }\r\n return result\r\n },\r\n _filterByScreen: function(items) {\r\n var screenRegExp = this._screenRegExp();\r\n return grep(items, (function(item) {\r\n return !item.screen || screenRegExp.test(item.screen)\r\n }))\r\n },\r\n _screenRegExp: function() {\r\n var screen = this._getCurrentScreen();\r\n return new RegExp(\"(^|\\\\s)\" + screen + \"($|\\\\s)\", \"i\")\r\n },\r\n _getCurrentScreen: function() {\r\n var width = this._screenWidth();\r\n return this.option(\"screenByWidth\")(width)\r\n },\r\n _screenWidth: function() {\r\n return hasWindow() ? getWidth(window) : HD_SCREEN_WIDTH\r\n },\r\n _createEmptyCell: function() {\r\n return {\r\n item: {},\r\n location: {\r\n colspan: 1,\r\n rowspan: 1\r\n }\r\n }\r\n },\r\n _spreadItems: function() {\r\n each(this._screenItems, function(_, itemInfo) {\r\n var location = itemInfo.location || {};\r\n var itemCol = location.col;\r\n var itemRow = location.row;\r\n var row = this._grid[itemRow];\r\n var itemCell = row && row[itemCol];\r\n this._occupyCells(itemCell, itemInfo)\r\n }.bind(this))\r\n },\r\n _itemsByScreen: function() {\r\n return this.option(\"items\").reduce((result, item) => {\r\n var locations = item.location || {};\r\n locations = isPlainObject(locations) ? [locations] : locations;\r\n this._filterByScreen(locations).forEach(location => {\r\n result.push({\r\n item: item,\r\n location: extend({\r\n rowspan: 1,\r\n colspan: 1\r\n }, location)\r\n })\r\n });\r\n return result\r\n }, [])\r\n },\r\n _occupyCells: function(itemCell, itemInfo) {\r\n if (!itemCell || this._isItemCellOccupied(itemCell, itemInfo)) {\r\n return\r\n }\r\n extend(itemCell, itemInfo);\r\n this._markSpanningCell(itemCell)\r\n },\r\n _isItemCellOccupied: function(itemCell, itemInfo) {\r\n if (!isEmptyObject(itemCell.item)) {\r\n return true\r\n }\r\n var result = false;\r\n this._loopOverSpanning(itemInfo.location, (function(cell) {\r\n result = result || !isEmptyObject(cell.item)\r\n }));\r\n return result\r\n },\r\n _loopOverSpanning: function(location, callback) {\r\n var rowEnd = location.row + location.rowspan - 1;\r\n var colEnd = location.col + location.colspan - 1;\r\n var boundRowEnd = Math.min(rowEnd, this._rows.length - 1);\r\n var boundColEnd = Math.min(colEnd, this._cols.length - 1);\r\n location.rowspan -= rowEnd - boundRowEnd;\r\n location.colspan -= colEnd - boundColEnd;\r\n for (var rowIndex = location.row; rowIndex <= boundRowEnd; rowIndex++) {\r\n for (var colIndex = location.col; colIndex <= boundColEnd; colIndex++) {\r\n if (rowIndex !== location.row || colIndex !== location.col) {\r\n callback(this._grid[rowIndex][colIndex])\r\n }\r\n }\r\n }\r\n },\r\n _markSpanningCell: function(itemCell) {\r\n this._loopOverSpanning(itemCell.location, (function(cell) {\r\n extend(cell, {\r\n item: itemCell.item,\r\n spanningCell: itemCell\r\n })\r\n }))\r\n },\r\n _linkNodeToItem: function() {\r\n each(this._itemElements(), (function(_, itemNode) {\r\n var $item = $(itemNode);\r\n var item = $item.data(BOX_ITEM_DATA_KEY);\r\n if (!item.box) {\r\n item.node = $item.children()\r\n }\r\n }))\r\n },\r\n _layoutItems: function() {\r\n var rowsCount = this._grid.length;\r\n var colsCount = rowsCount && this._grid[0].length;\r\n if (!rowsCount && !colsCount) {\r\n return\r\n }\r\n var result = this._layoutBlock({\r\n direction: \"col\",\r\n row: {\r\n start: 0,\r\n end: rowsCount - 1\r\n },\r\n col: {\r\n start: 0,\r\n end: colsCount - 1\r\n }\r\n });\r\n var rootBox = this._prepareBoxConfig(result.box || {\r\n direction: \"row\",\r\n items: [extend(result, {\r\n ratio: 1\r\n })]\r\n });\r\n extend(rootBox, this._rootBoxConfig(rootBox.items));\r\n this._$root = $(\"
\").appendTo(this._itemContainer());\r\n this._createComponent(this._$root, Box, rootBox)\r\n },\r\n _rootBoxConfig: function(items) {\r\n var rootItems = each(items, function(index, item) {\r\n this._needApplyAutoBaseSize(item) && extend(item, {\r\n baseSize: \"auto\"\r\n })\r\n }.bind(this));\r\n return extend({\r\n width: \"100%\",\r\n height: \"100%\",\r\n items: rootItems,\r\n itemTemplate: this._getTemplateByOption(\"itemTemplate\"),\r\n itemHoldTimeout: this.option(\"itemHoldTimeout\"),\r\n onItemHold: this._createActionByOption(\"onItemHold\"),\r\n onItemClick: this._createActionByOption(\"onItemClick\"),\r\n onItemContextMenu: this._createActionByOption(\"onItemContextMenu\"),\r\n onItemRendered: this._createActionByOption(\"onItemRendered\")\r\n }, {\r\n _layoutStrategy: this.option(\"_layoutStrategy\")\r\n })\r\n },\r\n _needApplyAutoBaseSize: function(item) {\r\n return !item.baseSize && (!item.minSize || \"auto\" === item.minSize) && (!item.maxSize || \"auto\" === item.maxSize)\r\n },\r\n _prepareBoxConfig: function(config) {\r\n return extend(config || {}, {\r\n crossAlign: \"stretch\",\r\n onItemStateChanged: this.option(\"onItemStateChanged\")\r\n })\r\n },\r\n _layoutBlock: function(options) {\r\n if (this._isSingleItem(options)) {\r\n return this._itemByCell(options.row.start, options.col.start)\r\n }\r\n return this._layoutDirection(options)\r\n },\r\n _isSingleItem: function(options) {\r\n var firstCellLocation = this._grid[options.row.start][options.col.start].location;\r\n var isItemRowSpanned = options.row.end - options.row.start === firstCellLocation.rowspan - 1;\r\n var isItemColSpanned = options.col.end - options.col.start === firstCellLocation.colspan - 1;\r\n return isItemRowSpanned && isItemColSpanned\r\n },\r\n _itemByCell: function(rowIndex, colIndex) {\r\n var itemCell = this._grid[rowIndex][colIndex];\r\n return itemCell.spanningCell ? null : itemCell.item\r\n },\r\n _layoutDirection: function(options) {\r\n var items = [];\r\n var direction = options.direction;\r\n var crossDirection = this._crossDirection(direction);\r\n var block;\r\n while (block = this._nextBlock(options)) {\r\n if (this._isBlockIndivisible(options.prevBlockOptions, block)) {\r\n throw errors.Error(\"E1025\")\r\n }\r\n var item = this._layoutBlock({\r\n direction: crossDirection,\r\n row: block.row,\r\n col: block.col,\r\n prevBlockOptions: options\r\n });\r\n if (item) {\r\n extend(item, this._blockSize(block, crossDirection));\r\n items.push(item)\r\n }\r\n options[crossDirection].start = block[crossDirection].end + 1\r\n }\r\n return {\r\n box: this._prepareBoxConfig({\r\n direction: direction,\r\n items: items\r\n })\r\n }\r\n },\r\n _isBlockIndivisible: function(options, block) {\r\n return options && options.col.start === block.col.start && options.col.end === block.col.end && options.row.start === block.row.start && options.row.end === block.row.end\r\n },\r\n _crossDirection: function(direction) {\r\n return \"col\" === direction ? \"row\" : \"col\"\r\n },\r\n _nextBlock: function(options) {\r\n var direction = options.direction;\r\n var crossDirection = this._crossDirection(direction);\r\n var startIndex = options[direction].start;\r\n var endIndex = options[direction].end;\r\n var crossStartIndex = options[crossDirection].start;\r\n if (crossStartIndex > options[crossDirection].end) {\r\n return null\r\n }\r\n var crossSpan = 1;\r\n for (var crossIndex = crossStartIndex; crossIndex < crossStartIndex + crossSpan; crossIndex++) {\r\n var lineCrossSpan = 1;\r\n for (var index = startIndex; index <= endIndex; index++) {\r\n var cell = this._cellByDirection(direction, index, crossIndex);\r\n lineCrossSpan = Math.max(lineCrossSpan, cell.location[crossDirection + \"span\"])\r\n }\r\n var lineCrossEndIndex = crossIndex + lineCrossSpan;\r\n var crossEndIndex = crossStartIndex + crossSpan;\r\n if (lineCrossEndIndex > crossEndIndex) {\r\n crossSpan += lineCrossEndIndex - crossEndIndex\r\n }\r\n }\r\n var result = {};\r\n result[direction] = {\r\n start: startIndex,\r\n end: endIndex\r\n };\r\n result[crossDirection] = {\r\n start: crossStartIndex,\r\n end: crossStartIndex + crossSpan - 1\r\n };\r\n return result\r\n },\r\n _cellByDirection: function(direction, index, crossIndex) {\r\n return \"col\" === direction ? this._grid[crossIndex][index] : this._grid[index][crossIndex]\r\n },\r\n _blockSize: function(block, direction) {\r\n var defaultMinSize = \"row\" === direction ? \"auto\" : 0;\r\n var sizeConfigs = \"row\" === direction ? this._rows : this._cols;\r\n var result = extend(this._createDefaultSizeConfig(), {\r\n ratio: 0\r\n });\r\n for (var index = block[direction].start; index <= block[direction].end; index++) {\r\n var sizeConfig = sizeConfigs[index];\r\n result.ratio += sizeConfig.ratio;\r\n result.baseSize += sizeConfig.baseSize;\r\n result.minSize += sizeConfig.minSize;\r\n result.maxSize += sizeConfig.maxSize;\r\n if (isDefined(sizeConfig.shrink)) {\r\n result.shrink = sizeConfig.shrink\r\n }\r\n }\r\n result.minSize = result.minSize ? result.minSize : defaultMinSize;\r\n result.maxSize = result.maxSize ? result.maxSize : \"auto\";\r\n this._isSingleColumnScreen() && (result.baseSize = \"auto\");\r\n return result\r\n },\r\n _update: function(forceRemoveRoot) {\r\n var $existingRoot = this._$root;\r\n this._renderItems();\r\n if ($existingRoot) {\r\n if (forceRemoveRoot) {\r\n $existingRoot.remove()\r\n } else {\r\n $existingRoot.detach();\r\n this._saveAssistantRoot($existingRoot)\r\n }\r\n }\r\n this._layoutChangedAction();\r\n this._updateRootBox()\r\n },\r\n _saveAssistantRoot: function($root) {\r\n this._assistantRoots = this._assistantRoots || [];\r\n this._assistantRoots.push($root)\r\n },\r\n _dispose: function() {\r\n clearTimeout(this._updateTimer);\r\n this._clearItemNodeTemplates();\r\n this._cleanUnusedRoots();\r\n this.callBase.apply(this, arguments)\r\n },\r\n _cleanUnusedRoots: function() {\r\n if (!this._assistantRoots) {\r\n return\r\n }\r\n each(this._assistantRoots, (function(_, item) {\r\n $(item).remove()\r\n }))\r\n },\r\n _clearItemNodeTemplates: function() {\r\n each(this.option(\"items\"), (function() {\r\n delete this.node\r\n }))\r\n },\r\n _toggleVisibility: function(visible) {\r\n this.callBase(visible);\r\n if (visible) {\r\n this._updateRootBox()\r\n }\r\n },\r\n _attachClickEvent: noop,\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"rows\":\r\n case \"cols\":\r\n case \"screenByWidth\":\r\n case \"_layoutStrategy\":\r\n case \"singleColumnScreen\":\r\n this._clearItemNodeTemplates();\r\n this._invalidate();\r\n break;\r\n case \"width\":\r\n case \"height\":\r\n this.callBase(args);\r\n this._update();\r\n break;\r\n case \"onLayoutChanged\":\r\n this._initLayoutChangedAction();\r\n break;\r\n case \"itemTemplate\":\r\n this._clearItemNodeTemplates();\r\n this.callBase(args);\r\n break;\r\n case \"currentScreenFactor\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n if (this._getCurrentScreen() !== this.option(\"currentScreenFactor\")) {\r\n this._update()\r\n }\r\n },\r\n repaint: function() {\r\n this._update()\r\n }\r\n});\r\nregisterComponent(\"dxResponsiveBox\", ResponsiveBox);\r\nexport default ResponsiveBox;\r\n","/**\r\n * DevExtreme (esm/ui/form/constants.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var WIDGET_CLASS = \"dx-widget\";\r\nexport var FORM_CLASS = \"dx-form\";\r\nexport var FORM_GROUP_CLASS = \"dx-form-group\";\r\nexport var FORM_GROUP_CAPTION_CLASS = \"dx-form-group-caption\";\r\nexport var FORM_FIELD_ITEM_COL_CLASS = \"dx-col-\";\r\nexport var FIELD_ITEM_CLASS = \"dx-field-item\";\r\nexport var LAYOUT_MANAGER_ONE_COLUMN = \"dx-layout-manager-one-col\";\r\nexport var FIELD_ITEM_LABEL_CONTENT_CLASS = \"dx-field-item-label-content\";\r\nexport var FORM_LAYOUT_MANAGER_CLASS = \"dx-layout-manager\";\r\nexport var FIELD_ITEM_LABEL_CLASS = \"dx-field-item-label\";\r\nexport var FIELD_ITEM_CONTENT_CLASS = \"dx-field-item-content\";\r\nexport var SINGLE_COLUMN_ITEM_CONTENT = \"dx-single-column-item-content\";\r\nexport var ROOT_SIMPLE_ITEM_CLASS = \"dx-root-simple-item\";\r\nexport var FORM_GROUP_CONTENT_CLASS = \"dx-form-group-content\";\r\nexport var FIELD_ITEM_CONTENT_HAS_GROUP_CLASS = \"dx-field-item-has-group\";\r\nexport var FIELD_ITEM_CONTENT_HAS_TABS_CLASS = \"dx-field-item-has-tabs\";\r\nexport var FORM_GROUP_WITH_CAPTION_CLASS = \"dx-form-group-with-caption\";\r\nexport var FIELD_ITEM_TAB_CLASS = \"dx-field-item-tab\";\r\nexport var GROUP_COL_COUNT_CLASS = \"dx-group-colcount-\";\r\nexport var GROUP_COL_COUNT_ATTR = \"group-col-count\";\r\nexport var FORM_VALIDATION_SUMMARY = \"dx-form-validation-summary\";\r\nexport var FORM_UNDERLINED_CLASS = \"dx-form-styling-mode-underlined\";\r\nexport var SIMPLE_ITEM_TYPE = \"simple\";\r\n","/**\r\n * DevExtreme (esm/ui/validation/default_adapter.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nvar DefaultAdapter = Class.inherit({\r\n ctor(editor, validator) {\r\n this.editor = editor;\r\n this.validator = validator;\r\n this.validationRequestsCallbacks = [];\r\n var handler = args => {\r\n this.validationRequestsCallbacks.forEach(item => item(args))\r\n };\r\n editor.validationRequest.add(handler);\r\n editor.on(\"disposing\", (function() {\r\n editor.validationRequest.remove(handler)\r\n }))\r\n },\r\n getValue() {\r\n return this.editor.option(\"value\")\r\n },\r\n getCurrentValidationError() {\r\n return this.editor.option(\"validationError\")\r\n },\r\n bypass() {\r\n return this.editor.option(\"disabled\")\r\n },\r\n applyValidationResults(params) {\r\n this.editor.option({\r\n validationErrors: params.brokenRules,\r\n validationStatus: params.status\r\n })\r\n },\r\n reset() {\r\n this.editor.reset()\r\n },\r\n focus() {\r\n this.editor.focus()\r\n }\r\n});\r\nexport default DefaultAdapter;\r\n","/**\r\n * DevExtreme (esm/ui/validator.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n data as elementData\r\n} from \"../core/element_data\";\r\nimport Callbacks from \"../core/utils/callbacks\";\r\nimport errors from \"./widget/ui.errors\";\r\nimport DOMComponent from \"../core/dom_component\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n map\r\n} from \"../core/utils/iterator\";\r\nimport ValidationEngine from \"./validation_engine\";\r\nimport DefaultAdapter from \"./validation/default_adapter\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport Guid from \"../core/guid\";\r\nvar VALIDATOR_CLASS = \"dx-validator\";\r\nvar VALIDATION_STATUS_VALID = \"valid\";\r\nvar VALIDATION_STATUS_INVALID = \"invalid\";\r\nvar VALIDATION_STATUS_PENDING = \"pending\";\r\nvar Validator = DOMComponent.inherit({\r\n _initOptions: function(options) {\r\n this.callBase.apply(this, arguments);\r\n this.option(ValidationEngine.initValidationOptions(options))\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n validationRules: []\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initGroupRegistration();\r\n this.focused = Callbacks();\r\n this._initAdapter();\r\n this._validationInfo = {\r\n result: null,\r\n deferred: null,\r\n skipValidation: false\r\n }\r\n },\r\n _initGroupRegistration() {\r\n var group = this._findGroup();\r\n if (!this._groupWasInit) {\r\n this.on(\"disposing\", (function(args) {\r\n ValidationEngine.removeRegisteredValidator(args.component._validationGroup, args.component)\r\n }))\r\n }\r\n if (!this._groupWasInit || this._validationGroup !== group) {\r\n ValidationEngine.removeRegisteredValidator(this._validationGroup, this);\r\n this._groupWasInit = true;\r\n this._validationGroup = group;\r\n ValidationEngine.registerValidatorInGroup(group, this)\r\n }\r\n },\r\n _setOptionsByReference() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n validationGroup: true\r\n })\r\n },\r\n _getEditor() {\r\n var element = this.$element()[0];\r\n return elementData(element, \"dx-validation-target\")\r\n },\r\n _initAdapter() {\r\n var dxStandardEditor = this._getEditor();\r\n var adapter = this.option(\"adapter\");\r\n if (!adapter) {\r\n if (dxStandardEditor) {\r\n adapter = new DefaultAdapter(dxStandardEditor, this);\r\n adapter.validationRequestsCallbacks.push(args => {\r\n if (this._validationInfo.skipValidation) {\r\n return\r\n }\r\n this.validate(args)\r\n });\r\n this.option(\"adapter\", adapter);\r\n return\r\n }\r\n throw errors.Error(\"E0120\")\r\n }\r\n var callbacks = adapter.validationRequestsCallbacks;\r\n if (callbacks) {\r\n callbacks.push(args => {\r\n this.validate(args)\r\n })\r\n }\r\n },\r\n _toggleRTLDirection(isRtl) {\r\n var _this$option$editor$o, _this$option, _this$option$editor;\r\n var rtlEnabled = null !== (_this$option$editor$o = null === (_this$option = this.option(\"adapter\")) || void 0 === _this$option ? void 0 : null === (_this$option$editor = _this$option.editor) || void 0 === _this$option$editor ? void 0 : _this$option$editor.option(\"rtlEnabled\")) && void 0 !== _this$option$editor$o ? _this$option$editor$o : isRtl;\r\n this.callBase(rtlEnabled)\r\n },\r\n _initMarkup() {\r\n this.$element().addClass(VALIDATOR_CLASS);\r\n this.callBase()\r\n },\r\n _render() {\r\n this.callBase();\r\n this._toggleAccessibilityAttributes()\r\n },\r\n _toggleAccessibilityAttributes() {\r\n var dxStandardEditor = this._getEditor();\r\n if (dxStandardEditor) {\r\n var rules = this.option(\"validationRules\") || [];\r\n var isRequired = rules.some(_ref => {\r\n var {\r\n type: type\r\n } = _ref;\r\n return \"required\" === type\r\n }) || null;\r\n if (dxStandardEditor.isInitialized()) {\r\n dxStandardEditor.setAria(\"required\", isRequired)\r\n }\r\n dxStandardEditor.option(\"_onMarkupRendered\", () => {\r\n dxStandardEditor.setAria(\"required\", isRequired)\r\n })\r\n }\r\n },\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this._initGroupRegistration()\r\n }\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"validationGroup\":\r\n this._initGroupRegistration();\r\n return;\r\n case \"validationRules\":\r\n this._resetValidationRules();\r\n this._toggleAccessibilityAttributes();\r\n void 0 !== this.option(\"isValid\") && this.validate();\r\n return;\r\n case \"adapter\":\r\n this._initAdapter();\r\n break;\r\n case \"isValid\":\r\n case \"validationStatus\":\r\n this.option(ValidationEngine.synchronizeValidationOptions(args, this.option()));\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _getValidationRules() {\r\n if (!this._validationRules) {\r\n this._validationRules = map(this.option(\"validationRules\"), (rule, index) => extend({}, rule, {\r\n validator: this,\r\n index: index\r\n }))\r\n }\r\n return this._validationRules\r\n },\r\n _findGroup() {\r\n var $element = this.$element();\r\n return this.option(\"validationGroup\") || ValidationEngine.findGroup($element, this._modelByElement($element))\r\n },\r\n _resetValidationRules() {\r\n delete this._validationRules\r\n },\r\n validate(args) {\r\n var adapter = this.option(\"adapter\");\r\n var name = this.option(\"name\");\r\n var bypass = adapter.bypass && adapter.bypass();\r\n var value = args && void 0 !== args.value ? args.value : adapter.getValue();\r\n var currentError = adapter.getCurrentValidationError && adapter.getCurrentValidationError();\r\n var rules = this._getValidationRules();\r\n var currentResult = this._validationInfo && this._validationInfo.result;\r\n if (currentResult && currentResult.status === VALIDATION_STATUS_PENDING && currentResult.value === value) {\r\n return extend({}, currentResult)\r\n }\r\n var result;\r\n if (bypass) {\r\n result = {\r\n isValid: true,\r\n status: VALIDATION_STATUS_VALID\r\n }\r\n } else if (currentError && currentError.editorSpecific) {\r\n currentError.validator = this;\r\n result = {\r\n isValid: false,\r\n status: VALIDATION_STATUS_INVALID,\r\n brokenRule: currentError,\r\n brokenRules: [currentError]\r\n }\r\n } else {\r\n result = ValidationEngine.validate(value, rules, name)\r\n }\r\n result.id = (new Guid).toString();\r\n this._applyValidationResult(result, adapter);\r\n result.complete && result.complete.then(res => {\r\n if (res.id === this._validationInfo.result.id) {\r\n this._applyValidationResult(res, adapter)\r\n }\r\n });\r\n return extend({}, this._validationInfo.result)\r\n },\r\n reset() {\r\n var adapter = this.option(\"adapter\");\r\n var result = {\r\n id: null,\r\n isValid: true,\r\n brokenRule: null,\r\n brokenRules: null,\r\n pendingRules: null,\r\n status: VALIDATION_STATUS_VALID,\r\n complete: null\r\n };\r\n this._validationInfo.skipValidation = true;\r\n adapter.reset();\r\n this._validationInfo.skipValidation = false;\r\n this._resetValidationRules();\r\n this._applyValidationResult(result, adapter)\r\n },\r\n _updateValidationResult(result) {\r\n if (!this._validationInfo.result || this._validationInfo.result.id !== result.id) {\r\n var complete = this._validationInfo.deferred && this._validationInfo.result.complete;\r\n this._validationInfo.result = extend({}, result, {\r\n complete: complete\r\n })\r\n } else {\r\n for (var prop in result) {\r\n if (\"id\" !== prop && \"complete\" !== prop) {\r\n this._validationInfo.result[prop] = result[prop]\r\n }\r\n }\r\n }\r\n },\r\n _applyValidationResult(result, adapter) {\r\n var validatedAction = this._createActionByOption(\"onValidated\", {\r\n excludeValidators: [\"readOnly\"]\r\n });\r\n result.validator = this;\r\n this._updateValidationResult(result);\r\n adapter.applyValidationResults && adapter.applyValidationResults(this._validationInfo.result);\r\n this.option({\r\n validationStatus: this._validationInfo.result.status\r\n });\r\n if (this._validationInfo.result.status === VALIDATION_STATUS_PENDING) {\r\n if (!this._validationInfo.deferred) {\r\n this._validationInfo.deferred = new Deferred;\r\n this._validationInfo.result.complete = this._validationInfo.deferred.promise()\r\n }\r\n this._eventsStrategy.fireEvent(\"validating\", [this._validationInfo.result]);\r\n return\r\n }\r\n if (this._validationInfo.result.status !== VALIDATION_STATUS_PENDING) {\r\n validatedAction(result);\r\n if (this._validationInfo.deferred) {\r\n this._validationInfo.deferred.resolve(result);\r\n this._validationInfo.deferred = null\r\n }\r\n }\r\n },\r\n focus() {\r\n var adapter = this.option(\"adapter\");\r\n adapter && adapter.focus && adapter.focus()\r\n },\r\n _useTemplates: function() {\r\n return false\r\n }\r\n});\r\nregisterComponent(\"dxValidator\", Validator);\r\nexport default Validator;\r\n","/**\r\n * DevExtreme (esm/ui/form/ui.form.layout_manager.utils.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n captionize\r\n} from \"../../core/utils/inflector\";\r\nimport Guid from \"../../core/guid\";\r\nimport {\r\n SIMPLE_ITEM_TYPE\r\n} from \"./constants\";\r\nvar EDITORS_WITH_ARRAY_VALUE = [\"dxTagBox\", \"dxRangeSlider\"];\r\nexport var EDITORS_WITHOUT_LABELS = [\"dxCalendar\", \"dxCheckBox\", \"dxHtmlEditor\", \"dxRadioGroup\", \"dxRangeSlider\", \"dxSlider\", \"dxSwitch\"];\r\nexport function convertToRenderFieldItemOptions(_ref) {\r\n var {\r\n $parent: $parent,\r\n rootElementCssClassList: rootElementCssClassList,\r\n formOrLayoutManager: formOrLayoutManager,\r\n createComponentCallback: createComponentCallback,\r\n useFlexLayout: useFlexLayout,\r\n item: item,\r\n template: template,\r\n name: name,\r\n formLabelLocation: formLabelLocation,\r\n requiredMessageTemplate: requiredMessageTemplate,\r\n validationGroup: validationGroup,\r\n editorValue: editorValue,\r\n canAssignUndefinedValueToEditor: canAssignUndefinedValueToEditor,\r\n editorValidationBoundary: editorValidationBoundary,\r\n editorStylingMode: editorStylingMode,\r\n showColonAfterLabel: showColonAfterLabel,\r\n managerLabelLocation: managerLabelLocation,\r\n itemId: itemId,\r\n managerMarkOptions: managerMarkOptions,\r\n labelMode: labelMode\r\n } = _ref;\r\n var isRequired = isDefined(item.isRequired) ? item.isRequired : !!_hasRequiredRuleInSet(item.validationRules);\r\n var isSimpleItem = item.itemType === SIMPLE_ITEM_TYPE;\r\n var helpID = item.helpText ? \"dx-\" + new Guid : null;\r\n var labelOptions = _convertToLabelOptions({\r\n item: item,\r\n id: itemId,\r\n isRequired: isRequired,\r\n managerMarkOptions: managerMarkOptions,\r\n showColonAfterLabel: showColonAfterLabel,\r\n labelLocation: managerLabelLocation,\r\n formLabelMode: labelMode\r\n });\r\n var needRenderLabel = labelOptions.visible && labelOptions.text;\r\n var {\r\n location: labelLocation,\r\n labelID: labelID\r\n } = labelOptions;\r\n var labelNeedBaselineAlign = \"top\" !== labelLocation && (!!item.helpText && !useFlexLayout || [\"dxTextArea\", \"dxRadioGroup\", \"dxCalendar\", \"dxHtmlEditor\"].includes(item.editorType));\r\n var editorOptions = _convertToEditorOptions({\r\n editorType: item.editorType,\r\n editorValue: editorValue,\r\n defaultEditorName: item.dataField,\r\n canAssignUndefinedValueToEditor: canAssignUndefinedValueToEditor,\r\n externalEditorOptions: item.editorOptions,\r\n editorInputId: itemId,\r\n editorValidationBoundary: editorValidationBoundary,\r\n editorStylingMode: editorStylingMode,\r\n formLabelMode: labelMode,\r\n labelText: labelOptions.textWithoutColon,\r\n labelMark: labelOptions.markOptions.showRequiredMark ? String.fromCharCode(160) + labelOptions.markOptions.requiredMark : \"\"\r\n });\r\n var needRenderOptionalMarkAsHelpText = labelOptions.markOptions.showOptionalMark && !labelOptions.visible && \"hidden\" !== editorOptions.labelMode && !isDefined(item.helpText);\r\n var helpText = needRenderOptionalMarkAsHelpText ? labelOptions.markOptions.optionalMark : item.helpText;\r\n return {\r\n $parent: $parent,\r\n rootElementCssClassList: rootElementCssClassList,\r\n formOrLayoutManager: formOrLayoutManager,\r\n createComponentCallback: createComponentCallback,\r\n useFlexLayout: useFlexLayout,\r\n labelOptions: labelOptions,\r\n labelNeedBaselineAlign: labelNeedBaselineAlign,\r\n labelLocation: labelLocation,\r\n needRenderLabel: needRenderLabel,\r\n item: item,\r\n isSimpleItem: isSimpleItem,\r\n isRequired: isRequired,\r\n template: template,\r\n helpID: helpID,\r\n labelID: labelID,\r\n name: name,\r\n helpText: helpText,\r\n formLabelLocation: formLabelLocation,\r\n requiredMessageTemplate: requiredMessageTemplate,\r\n validationGroup: validationGroup,\r\n editorOptions: editorOptions\r\n }\r\n}\r\nexport function getLabelMarkText(_ref2) {\r\n var {\r\n showRequiredMark: showRequiredMark,\r\n requiredMark: requiredMark,\r\n showOptionalMark: showOptionalMark,\r\n optionalMark: optionalMark\r\n } = _ref2;\r\n if (!showRequiredMark && !showOptionalMark) {\r\n return \"\"\r\n }\r\n return String.fromCharCode(160) + (showRequiredMark ? requiredMark : optionalMark)\r\n}\r\nexport function convertToLabelMarkOptions(_ref3, isRequired) {\r\n var {\r\n showRequiredMark: showRequiredMark,\r\n requiredMark: requiredMark,\r\n showOptionalMark: showOptionalMark,\r\n optionalMark: optionalMark\r\n } = _ref3;\r\n return {\r\n showRequiredMark: showRequiredMark && isRequired,\r\n requiredMark: requiredMark,\r\n showOptionalMark: showOptionalMark && !isRequired,\r\n optionalMark: optionalMark\r\n }\r\n}\r\n\r\nfunction _convertToEditorOptions(_ref4) {\r\n var {\r\n editorType: editorType,\r\n defaultEditorName: defaultEditorName,\r\n editorValue: editorValue,\r\n canAssignUndefinedValueToEditor: canAssignUndefinedValueToEditor,\r\n externalEditorOptions: externalEditorOptions,\r\n editorInputId: editorInputId,\r\n editorValidationBoundary: editorValidationBoundary,\r\n editorStylingMode: editorStylingMode,\r\n formLabelMode: formLabelMode,\r\n labelText: labelText,\r\n labelMark: labelMark\r\n } = _ref4;\r\n var editorOptionsWithValue = {};\r\n if (void 0 !== editorValue || canAssignUndefinedValueToEditor) {\r\n editorOptionsWithValue.value = editorValue\r\n }\r\n if (-1 !== EDITORS_WITH_ARRAY_VALUE.indexOf(editorType)) {\r\n editorOptionsWithValue.value = editorOptionsWithValue.value || []\r\n }\r\n var labelMode = null === externalEditorOptions || void 0 === externalEditorOptions ? void 0 : externalEditorOptions.labelMode;\r\n if (!isDefined(labelMode)) {\r\n labelMode = \"outside\" === formLabelMode ? \"hidden\" : formLabelMode\r\n }\r\n var stylingMode = (null === externalEditorOptions || void 0 === externalEditorOptions ? void 0 : externalEditorOptions.stylingMode) || editorStylingMode;\r\n var result = extend(true, editorOptionsWithValue, externalEditorOptions, {\r\n inputAttr: {\r\n id: editorInputId\r\n },\r\n validationBoundary: editorValidationBoundary,\r\n stylingMode: stylingMode,\r\n label: labelText,\r\n labelMode: labelMode,\r\n labelMark: labelMark\r\n });\r\n if (externalEditorOptions) {\r\n if (result.dataSource) {\r\n result.dataSource = externalEditorOptions.dataSource\r\n }\r\n if (result.items) {\r\n result.items = externalEditorOptions.items\r\n }\r\n }\r\n if (defaultEditorName && !result.name) {\r\n result.name = defaultEditorName\r\n }\r\n return result\r\n}\r\n\r\nfunction _hasRequiredRuleInSet(rules) {\r\n var hasRequiredRule;\r\n if (rules && rules.length) {\r\n each(rules, (function(index, rule) {\r\n if (\"required\" === rule.type) {\r\n hasRequiredRule = true;\r\n return false\r\n }\r\n }))\r\n }\r\n return hasRequiredRule\r\n}\r\n\r\nfunction _convertToLabelOptions(_ref5) {\r\n var {\r\n item: item,\r\n id: id,\r\n isRequired: isRequired,\r\n managerMarkOptions: managerMarkOptions,\r\n showColonAfterLabel: showColonAfterLabel,\r\n labelLocation: labelLocation,\r\n formLabelMode: formLabelMode\r\n } = _ref5;\r\n var isEditorWithoutLabels = EDITORS_WITHOUT_LABELS.includes(item.editorType);\r\n var labelOptions = extend({\r\n showColon: showColonAfterLabel,\r\n location: labelLocation,\r\n id: id,\r\n visible: \"outside\" === formLabelMode || isEditorWithoutLabels && \"hidden\" !== formLabelMode,\r\n isRequired: isRequired\r\n }, item ? item.label : {}, {\r\n markOptions: convertToLabelMarkOptions(managerMarkOptions, isRequired)\r\n });\r\n if ([\"dxRadioGroup\", \"dxCheckBox\", \"dxLookup\", \"dxSlider\", \"dxRangeSlider\", \"dxSwitch\", \"dxHtmlEditor\"].includes(item.editorType)) {\r\n labelOptions.labelID = \"dx-label-\".concat(new Guid)\r\n }\r\n if (!labelOptions.text && item.dataField) {\r\n labelOptions.text = captionize(item.dataField)\r\n }\r\n if (labelOptions.text) {\r\n labelOptions.textWithoutColon = labelOptions.text;\r\n labelOptions.text += labelOptions.showColon ? \":\" : \"\"\r\n }\r\n return labelOptions\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/form/components/label.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"$FIELD_ITEM_LABEL_CONTENT_CLASS\"];\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n isEmpty\r\n} from \"../../../core/utils/string\";\r\nimport {\r\n getLabelMarkText\r\n} from \"../ui.form.layout_manager.utils\";\r\nimport {\r\n WIDGET_CLASS,\r\n FIELD_ITEM_LABEL_CONTENT_CLASS,\r\n FIELD_ITEM_LABEL_CLASS\r\n} from \"../constants\";\r\nexport var GET_LABEL_WIDTH_BY_TEXT_CLASS = \"dx-layout-manager-hidden-label\";\r\nexport var FIELD_ITEM_REQUIRED_MARK_CLASS = \"dx-field-item-required-mark\";\r\nexport var FIELD_ITEM_LABEL_LOCATION_CLASS = \"dx-field-item-label-location-\";\r\nexport var FIELD_ITEM_OPTIONAL_MARK_CLASS = \"dx-field-item-optional-mark\";\r\nexport var FIELD_ITEM_LABEL_TEXT_CLASS = \"dx-field-item-label-text\";\r\nexport function renderLabel(_ref) {\r\n var {\r\n text: text,\r\n id: id,\r\n location: location,\r\n alignment: alignment,\r\n labelID: labelID = null,\r\n markOptions: markOptions = {}\r\n } = _ref;\r\n if (!isDefined(text) || text.length <= 0) {\r\n return null\r\n }\r\n return $(\"