@iobroker/adapter-react-v5 4.0.5 → 4.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectBrowser.js","names":["ICON_SIZE","ROW_HEIGHT","ITEM_LEVEL","SMALL_BUTTON_SIZE","COLOR_NAME_SYSTEM","COLOR_NAME_SYSTEM_ADAPTER","COLOR_NAME_ERROR_DARK","COLOR_NAME_ERROR_LIGHT","COLOR_NAME_CONNECTED_DARK","COLOR_NAME_CONNECTED_LIGHT","COLOR_NAME_DISCONNECTED_DARK","COLOR_NAME_DISCONNECTED_LIGHT","styles","theme","toolbar","minHeight","toolbarButtons","padding","marginLeft","switchColumnAuto","spacing","dialogColumns","transition","dialogColumnsLabel","fontSize","paddingTop","columnCustom","width","display","columnCustomEditable","cursor","columnCustomCenter","textAlign","columnCustomLeft","columnCustomRight","width100","transparent_10","opacity","transparent_20","transparent_30","transparent_40","transparent_50","transparent_60","transparent_70","transparent_80","transparent_90","transparent_100","columnsDialogInputWidth","headerRow","paddingLeft","height","whiteSpace","userSelect","buttonClearFilter","position","buttonClearFilterIcon","zIndex","top","left","color","tableDiv","overflow","tableRow","lineHeight","verticalAlign","background","palette","mode","primary","dark","light","Utils","invertColor","main","flexWrap","tableRowLines","borderBottom","borderRight","tableRowNoDragging","tableRowAlias","tableRowAliasReadWrite","checkBox","cellId","textOverflow","marginTop","cellIdSpan","cellIdIconFolder","marginRight","secondary","cellIdIconDocument","cellIdIconOwn","cellIdTooltip","cellIdTooltipLink","cellCopyButton","right","cellEditButton","cellName","cellIdAlias","fontStyle","cellIdAliasReadWriteDiv","cellIdAliasAlone","cellIdAliasReadWrite","cellType","cellRole","cellRoom","cellEnumParent","cellFunc","cellValue","cellValueButton","transform","cellValueButtonFalse","cellAdapter","cellValueTooltip","cellValueText","cellValueFile","cellValueTooltipTitle","cellValueTooltipValue","cellValueTooltipBoth","cellValueTooltipBox","cellValueTextUnit","newValue","animation","cellValueTextState","cellValueTooltipCopy","bottom","cellValueTooltipEdit","cellButtons","cellButtonsButton","cellButtonsEmptyButton","cellButtonMinWidth","minWidth","cellButtonsButtonAlone","cellButtonsButtonWithCustoms","cellButtonsButtonWithoutCustoms","cellButtonsValueButton","action","active","cellButtonsValueButtonCopy","cellButtonsValueButtonEdit","parseInt","filteredOut","filteredParentOut","filterInput","marginBottom","selectIcon","selectNone","itemSelected","header","headerCell","headerCellValue","headerCellInput","headerCellSelectItem","visibleButtons","grow","flexGrow","enumIconDiv","borderRadius","enumIcon","enumDialog","enumList","enumButton","enumCheckbox","buttonDiv","alignItems","aclText","rightsObject","rightsState","textCenter","tooltipAccessControl","flexDirection","fontSizeTitle","draggable","nonDraggable","selectClearButton","backgroundColor","iconDeviceConnected","iconDeviceDisconnected","iconDeviceError","resizeHandle","resizeHandleRight","borderColor","borderRightStyle","resizeHandleLeft","borderLeft","borderLeftStyle","invertedBackground","invertedBackgroundFlex","generateFile","filename","obj","el","document","createElement","setAttribute","encodeURIComponent","JSON","stringify","style","body","appendChild","click","removeChild","binarySearch","list","find","_start","_end","undefined","length","middle","Math","floor","getName","name","lang","en","toString","getSelectIdIcon","objects","id","imagePrefix","src","_id_","aIcon","common","icon","startsWith","includes","cIcon","instance","type","split","applyFilter","item","filters","context","counter","customFilter","selectedTypes","_depth","toLowerCase","custom","role","room","members","func","data","Array","isArray","Object","keys","expertMode","endsWith","expert","fID","fName","visible","hasVisibleChildren","children","forEach","_item","sumVisibility","count","hasVisibleParent","getVisibleItems","_result","push","getSystemIcon","k","getIdFieldTooltip","classes","desc","tooltip","clsx","buildTree","options","ids","sort","a","b","replace","currentPathArr","currentPath","currentPathLen","root","info","funcEnums","roomEnums","roles","types","customs","enums","hasSomeCustoms","croot","i","parts","supportCustoms","adminUI","substring","repeat","curPath","_croot","parent","level","generated","title","hasCustoms","button","write","u","move","splice","join","aName","pop","bName","findNode","_parts","_path","_level","found","_id","findRoomsForObject","withParentInfo","rooms","per","origin","ownEnums","findEnumsForObjectAsIds","enumName","funcs","findFunctionsForObject","pef","formatValue","state","texts","dateFormat","isFloatComma","states","getStates","isCommon","valText","v","val","match","Date","round","s","unit","valFull","t","value","ack","ts","formatDate","lc","from","user","c","quality","quality2text","q","nbr","prepareSparkData","values","time","DEFAULT_FILTER","ITEM_IMAGES","channel","device","adapter","meta","chart","config","group","host","schedule","script","folder","StyledBadge","withStyles","badge","border","paper","Badge","SCREEN_WIDTHS","xs","idWidth","fields","widths","sm","md","buttons","lg","changedFrom","qualityCode","timestamp","lastChange","xl","objectsAlreadyLoaded","ObjectBrowser","props","console","log","findItem","pausedSubscribes","statesUpdateTimer","setTimeout","forceUpdate","clearTimeout","newState","event","filterFunc","columnsForAdmin","parse","parseObjectForAdmins","setState","objectsUpdateTimer","lastAppliedFilter","result","mobile","objId","e","_enObj","enObj","socket","setObject","objs","hasOwn","_createAllEnums","getState","def","window","alert","evt","f","target","files","r","FileReader","onload","contents","json","len","loadObjects","readAsText","selected","selectedNonObject","filter","acl","check","valueNum","arrayTooltipText","funcRenderStateObject","rights","ownerGroup","ownerUser","owner","map","resizerActiveDiv","widthNext","resizeLeft","resizerOldWidth","clientX","resizerPosition","resizerOldWidthNext","resizerMin","resizerNextMin","resizerCurrentWidths","resizerActiveName","resizerNextName","resizerNextDiv","columnsVisibility","scrollBarWidth","customWidth","resizeTimeout","_localStorage","localStorage","setItem","dialogName","removeEventListener","resizerMouseMove","resizerMouseUp","resizerActiveIndex","storedWidths","parentNode","dataset","previousElementSibling","handle","querySelector","nextElementSibling","min","offsetWidth","addEventListener","calculateColumnsVisibility","removeItem","extendObject","error","lastSelectedItems","getItem","expanded","defaultFilters","_sessionStorage","sessionStorage","tableRef","createRef","filterRefs","selectedFound","subscribes","visibleCols","columns","pos","indexOf","customDialog","router","location","getLocation","dialog","pauseSubscribe","columnsWidths","foldersFirst","statesView","objectStatesView","loaded","filterKey","depth","expandAllVisible","toast","editObjectDialog","viewFileDialog","roleDialog","columnsSelectorShow","columnsAuto","columnsDialogTransparent","columnsEditCustomDialog","customColumnDialogValueChanged","showExportDialog","linesEnabled","edit","editObject","deleteObject","customConfig","copyState","editState","close","filter_id","filter_name","filter_type","filter_role","filter_room","filter_func","filter_custom","objectChangedByUser","objectChangedBy","objectChangedFrom","stateChangedBy","stateChangedFrom","deviceError","deviceDisconnected","deviceConnected","aclOwner_read_object","aclOwner_read_state","aclOwner_write_object","aclOwner_write_state","aclGroup_read_object","aclGroup_read_state","aclGroup_write_object","aclGroup_write_state","aclEveryone_read_object","aclEveryone_read_state","aclEveryone_write_object","aclEveryone_write_state","levelPadding","update","Promise","resolve","updating","then","objectsWorker","getObjects","_objects","getObjectView","getObject","moreObjects","systemConfig","assign","defaultNewAcl","object","defaultHistory","getAdditionalColumns","node","expandAllSelected","onAfterSelect","showError","cb","changed","path","isDouble","getObjectName","language","onSelect","loadAllObjects","registerHandler","onObjectChange","subscribeObject","filterTimer","unregisterHandler","unsubscribeObject","pattern","unsubscribeState","onStateChange","toggleItem","multiSelect","getAdapters","instances","recordStates","unsubscribe","_root","_partyId","shift","adminColumns","objTypes","warn","subscribeState","isPause","_name","current","tagName","onFilterChanged","childNodes","someNotEmpty","attr","underline","onFilter","firstChild","hasIcons","newFilter","getFilterSelect","onExpandAll","expandDepth","collapseDepth","idDot","idLen","key","isAll","_getSelectedIdsForExport","getEnumsForId","_exportObjects","allowObjectCreation","refreshComponent","showExpertButton","disableColumnSelector","onCollapseAll","onExpandVisible","onCollapseVisible","onStatesViewVisible","objectAddBoolean","toolTipObjectCreating","modalNewObj","objectImportExport","input","handleJsonUpload","objectBrowserEditObject","objectEditBoolean","doNavigate","text","stopPropagation","preventDefault","copyToClipboard","onObjectDelete","objectEditOfAccessControl","modalEditOfAccess","modalEditOfAccessObjData","start","cellButtonsButtonIcon","aclTooltip","renderTooltipAccessControl","aclSystemConfig","Number","isNaN","dontDelete","objectCustomDialog","sparkline","now","setHours","getHours","setMinutes","setSeconds","setMilliseconds","nowMs","getTime","getHistory","end","step","addID","aggregate","sparks","getElementsByClassName","subscribe","fill","copyText","onCopy","popper","readHistory","enumIds","newArray","enumId","promises","all","_syncEnum","toCheck","itemEnums","enumDialogEnums","enumsOriginal","syncEnum","labelId","objectBrowserEditRole","ObjectBrowserEditRole","isSave","customColumnDialog","parseFloat","setCustomValue","it","Error","getCustomValue","initValue","keyCode","onColumnsEditCustomDialogClose","checked","pathText","notEditable","align","isExpanded","iconFolder","itemType","toggleExpanded","iconItem","typeImg","checkbox","valueEditable","objectBrowserViewFile","enumEditable","checkVisibleObjectType","newValueTitle","readWriteAlias","alias","read","scrollToItem","checkColor","invertBackground","themeName","distance","colorDistance","themeType","icons","statusStates","colorSet","errorId","onlineId","offlineId","dragEnabled","adapterColumns","renderCustomValue","updateOpened","renderColumnValue","renderColumnButtons","items","leaf","renderLeaf","DragWrapper","renderItem","WIDTHS","nameHeader","widthSum","column","newWidth","reduce","accumulator","filterClearInValue","isFilterEmpty","clearFilter","getFilterInput","resizerMouseDown","resizerReset","getFilterSelectType","getFilterSelectRole","getFilterSelectRoom","getFilterSelectFunction","getFilterSelectCustoms","clientWidth","getElementById","scrollIntoView","behavior","block","inline","ObjectCustomDialog","changedIds","valAck","expire","ObjectBrowserEditObject","updateAlias","ObjectBrowserViewFile","objectBrowserValue","ObjectBrowserValue","res","onUpdate","unsubscribeTimer","jsonFilter","checkUnsubscribes","getToolbar","renderHeader","renderToast","renderColumnsEditCustomDialog","renderColumnsSelectorDialog","renderCustomDialog","renderEditValueDialog","renderEditObjectDialog","renderViewObjectFileDialog","renderEditRoleDialog","renderEnumDialog","renderErrorDialog","renderExportDialog","modalNewObject","modalEditOfAccessControl","p","Component","defaultProps","propTypes","PropTypes","string","oneOfType","array","bool","isRequired","number","dragSettings","useDrag","_export","withWidth"],"sources":["ObjectBrowser.js"],"sourcesContent":["/**\n * Copyright 2020-2022, bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n **/\nimport React, { Component, createRef } from 'react';\nimport PropTypes from 'prop-types';\nimport withStyles from '@mui/styles/withStyles';\nimport SVG from 'react-inlinesvg';\n\nimport IconButton from '@mui/material/IconButton';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport MenuItem from '@mui/material/MenuItem';\nimport Select from '@mui/material/Select';\nimport FormControl from '@mui/material/FormControl';\nimport Input from '@mui/material/Input';\nimport Grid from '@mui/material/Grid';\nimport Badge from '@mui/material/Badge';\nimport Tooltip from '@mui/material/Tooltip';\nimport Snackbar from '@mui/material/Snackbar';\nimport Checkbox from '@mui/material/Checkbox';\nimport List from '@mui/material/List';\nimport ListItem from '@mui/material/ListItem';\nimport ListItemIcon from '@mui/material/ListItemIcon';\nimport ListItemSecondaryAction from '@mui/material/ListItemSecondaryAction';\nimport ListItemText from '@mui/material/ListItemText';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport Dialog from '@mui/material/Dialog';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogContentText from '@mui/material/DialogContentText';\nimport DialogActions from '@mui/material/DialogActions';\nimport Button from '@mui/material/Button';\nimport Fab from '@mui/material/Fab';\nimport TextField from '@mui/material/TextField';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport Switch from '@mui/material/Switch';\n// import ListItemButton from '@mui/material/ListItemButton';\n// import Slider from '@mui/material/Slider';\n// import Typography from '@mui/material/Typography';\n\n// Icons\nimport IconEdit from '@mui/icons-material/Edit';\nimport IconDelete from '@mui/icons-material/Delete';\nimport IconConfig from '@mui/icons-material/Settings';\nimport IconSystem from '@mui/icons-material/SettingsApplications';\nimport IconPhoto from '@mui/icons-material/Photo';\nimport IconGroup from '@mui/icons-material/SupervisedUserCircle';\nimport IconSchedule from '@mui/icons-material/CalendarToday';\nimport IconUser from '@mui/icons-material/PersonOutlined';\nimport IconHost from '@mui/icons-material/Router';\nimport IconConnection from '@mui/icons-material/Wifi';\nimport IconInfo from '@mui/icons-material/Info';\nimport IconMeta from '@mui/icons-material/Description';\nimport IconScript from '@mui/icons-material/Code';\nimport IconChart from '@mui/icons-material/ShowChart';\nimport IconEnum from '@mui/icons-material/ListAlt';\nimport IconColumns from '@mui/icons-material/ViewColumn';\nimport IconClose from '@mui/icons-material/Close';\nimport IconCheck from '@mui/icons-material/Check';\nimport BuildIcon from '@mui/icons-material/Build';\nimport PublishIcon from '@mui/icons-material/Publish';\nimport AddIcon from '@mui/icons-material/Add';\nimport RefreshIcon from '@mui/icons-material/Refresh';\nimport LooksOneIcon from '@mui/icons-material/LooksOne';\nimport PressButtonIcon from '@mui/icons-material/RoomService';\nimport IconError from '@mui/icons-material/Error';\nimport IconDisconnected from '@mui/icons-material/WifiOff';\n\nimport IconExpert from '../icons/IconExpert';\nimport IconAdapter from '../icons/IconAdapter';\nimport IconAlias from '../icons/IconAlias';\nimport IconChannel from '../icons/IconChannel';\nimport IconCopy from '../icons/IconCopy';\nimport IconDevice from '../icons/IconDevice';\nimport IconDocument from '../icons/IconDocument';\nimport IconDocumentReadOnly from '../icons/IconDocumentReadOnly';\nimport IconInstance from '../icons/IconInstance';\nimport IconState from '../icons/IconState';\nimport IconClosed from '../icons/IconClosed';\nimport IconOpen from '../icons/IconOpen';\nimport IconClearFilter from '../icons/IconClearFilter';\n\n// own\nimport Icon from './Icon';\nimport withWidth from './withWidth';\nimport Utils from './Utils';\nimport TabContainer from './TabContainer';\nimport TabContent from './TabContent';\nimport TabHeader from './TabHeader';\n\nconst ICON_SIZE = 24;\nconst ROW_HEIGHT = 32;\nconst ITEM_LEVEL = 16;\nconst SMALL_BUTTON_SIZE = 20;\nconst COLOR_NAME_SYSTEM = '#ff6d69';\nconst COLOR_NAME_SYSTEM_ADAPTER = '#5773ff';\nconst COLOR_NAME_ERROR_DARK = '#ff413c';\nconst COLOR_NAME_ERROR_LIGHT = '#86211f';\nconst COLOR_NAME_CONNECTED_DARK = '#57ff45';\nconst COLOR_NAME_CONNECTED_LIGHT = '#098c04';\nconst COLOR_NAME_DISCONNECTED_DARK = '#f3ad11';\nconst COLOR_NAME_DISCONNECTED_LIGHT = '#6c5008';\n\nconst styles = theme => ({\n toolbar: {\n minHeight: 38, // Theme.toolbar.height,\n // boxShadow: '0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12)'\n },\n toolbarButtons: {\n padding: 4,\n marginLeft: 4,\n },\n switchColumnAuto: {\n marginLeft: theme.spacing(2),\n },\n dialogColumns: {\n transition: 'opacity 1s',\n },\n dialogColumnsLabel: {\n fontSize: 12,\n paddingTop: theme.spacing(1),\n },\n columnCustom: {\n width: '100%',\n display: 'inline-block',\n },\n columnCustomEditable: {\n cursor: 'text',\n },\n columnCustomCenter: {\n textAlign: 'center',\n },\n columnCustomLeft: {\n textAlign: 'left',\n },\n columnCustomRight: {\n textAlign: 'right',\n },\n width100: {\n width: '100%',\n },\n transparent_10: {\n opacity: 0.1,\n },\n transparent_20: {\n opacity: 0.2,\n },\n transparent_30: {\n opacity: 0.3,\n },\n transparent_40: {\n opacity: 0.4,\n },\n transparent_50: {\n opacity: 0.5,\n },\n transparent_60: {\n opacity: 0.6,\n },\n transparent_70: {\n opacity: 0.7,\n },\n transparent_80: {\n opacity: 0.8,\n },\n transparent_90: {\n opacity: 0.9,\n },\n transparent_100: {\n opacity: 1,\n },\n columnsDialogInputWidth: {\n width: 80,\n },\n headerRow: {\n paddingLeft: theme.spacing(1),\n height: 38,\n whiteSpace: 'nowrap',\n userSelect: 'none',\n },\n buttonClearFilter: {\n position: 'relative',\n float: 'right',\n padding: 0,\n },\n buttonClearFilterIcon: {\n zIndex: 2,\n position: 'absolute',\n top: 0,\n left: 0,\n color: '#FF0000',\n opacity: 0.7,\n },\n\n tableDiv: {\n paddingTop: 0, // theme.spacing(1),\n paddingLeft: 0,\n width: `calc(100% - ${theme.spacing(1)})`,\n height: 'calc(100% - 38px)',\n overflow: 'auto',\n },\n tableRow: {\n paddingLeft: theme.spacing(1),\n height: ROW_HEIGHT,\n lineHeight: `${ROW_HEIGHT}px`,\n verticalAlign: 'top',\n userSelect: 'none',\n width: '100%',\n '&:hover': {\n background: `${theme.palette.mode === 'dark' ? theme.palette.primary.dark : theme.palette.primary.light} !important`,\n color: Utils.invertColor(theme.palette.primary.main, true),\n },\n whiteSpace: 'nowrap',\n flexWrap: 'nowrap',\n },\n tableRowLines: {\n borderBottom: `1px solid ${theme.palette.mode === 'dark' ? '#8888882e' : '#8888882e'}`,\n '& > div': {\n borderRight: `1px solid ${theme.palette.mode === 'dark' ? '#8888882e' : '#8888882e'}`,\n },\n },\n tableRowNoDragging: {\n cursor: 'pointer',\n },\n tableRowAlias: {\n height: ROW_HEIGHT + 10,\n },\n tableRowAliasReadWrite: {\n height: ROW_HEIGHT + 22,\n },\n checkBox: {\n padding: 0,\n },\n cellId: {\n position: 'relative',\n fontSize: '1rem',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n // verticalAlign: 'top',\n // position: 'relative',\n '& .copyButton': {\n display: 'none',\n },\n '&:hover .copyButton': {\n display: 'block',\n },\n '& .iconOwn': {\n display: 'block',\n width: ROW_HEIGHT - 4,\n height: ROW_HEIGHT - 4,\n marginTop: 2,\n float: 'right',\n },\n '&:hover .iconOwn': {\n display: 'none',\n },\n '& *': {\n width: 'initial',\n },\n },\n cellIdSpan: {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n // display: 'inline-block',\n // verticalAlign: 'top',\n },\n cellIdIconFolder: {\n marginRight: theme.spacing(1),\n width: ROW_HEIGHT - 4,\n height: ROW_HEIGHT - 4,\n cursor: 'pointer',\n color: theme.palette.secondary.main || '#fbff7d',\n verticalAlign: 'top',\n },\n cellIdIconDocument: {\n verticalAlign: 'middle',\n marginLeft: (ROW_HEIGHT - SMALL_BUTTON_SIZE) / 2,\n marginRight: theme.spacing(1),\n width: SMALL_BUTTON_SIZE,\n height: SMALL_BUTTON_SIZE,\n },\n cellIdIconOwn: {\n\n },\n cellIdTooltip: {\n fontSize: 14,\n },\n cellIdTooltipLink: {\n color: \"#7ec2fd\",\n \"&:hover\": {\n color: \"#7ec2fd\"\n },\n \"&:visited\": {\n color: \"#7ec2fd\"\n }\n },\n cellCopyButton: {\n width: SMALL_BUTTON_SIZE,\n height: SMALL_BUTTON_SIZE,\n top: (ROW_HEIGHT - SMALL_BUTTON_SIZE) / 2,\n opacity: 0.8,\n '&:hover': {\n opacity: 1,\n },\n position: 'absolute',\n right: 3,\n },\n cellEditButton: {\n width: SMALL_BUTTON_SIZE,\n height: SMALL_BUTTON_SIZE,\n color: 'white',\n position: 'absolute',\n top: (ROW_HEIGHT - SMALL_BUTTON_SIZE) / 2,\n right: SMALL_BUTTON_SIZE + 3,\n opacity: 0.7,\n '&:hover': {\n opacity: 1,\n },\n },\n cellName: {\n display: 'inline-block',\n verticalAlign: 'top',\n fontSize: 14,\n marginLeft: 5,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n position: 'relative',\n '& .copyButton': {\n display: 'none',\n },\n '&:hover .copyButton': {\n display: 'block',\n },\n },\n cellIdAlias: {\n fontStyle: 'italic',\n fontSize: 12,\n opacity: 0.7,\n '&:hover': {\n color: theme.palette.mode === 'dark' ? '#009900' : '#007700',\n },\n },\n cellIdAliasReadWriteDiv: {\n height: 24,\n marginTop: -5,\n },\n cellIdAliasAlone: {\n lineHeight: 0,\n },\n cellIdAliasReadWrite: {\n lineHeight: '12px',\n },\n cellType: {\n display: 'inline-block',\n verticalAlign: 'top',\n '& .itemIcon': {\n verticalAlign: 'middle',\n width: ICON_SIZE,\n height: ICON_SIZE,\n display: 'inline-block',\n },\n '& .itemIconFolder': {\n marginLeft: 3,\n },\n },\n cellRole: {\n display: 'inline-block',\n verticalAlign: 'top',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n },\n cellRoom: {\n display: 'inline-block',\n verticalAlign: 'top',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n },\n cellEnumParent: {\n opacity: 0.4,\n },\n cellFunc: {\n display: 'inline-block',\n verticalAlign: 'top',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n },\n cellValue: {\n display: 'inline-block',\n verticalAlign: 'top',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n },\n cellValueButton: {\n marginTop: 5,\n '&:active': {\n transform: 'scale(0.8)',\n },\n },\n cellValueButtonFalse: {\n opacity: 0.3,\n },\n cellAdapter: {\n display: 'inline-block',\n verticalAlign: 'top',\n },\n cellValueTooltip: {\n fontSize: 12,\n },\n cellValueText: {\n width: '100%',\n height: ROW_HEIGHT,\n fontSize: 16,\n display: 'inline-block',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n position: 'relative',\n verticalAlign: 'top',\n '& .copyButton': {\n display: 'none',\n },\n '&:hover .copyButton': {\n display: 'block',\n },\n },\n cellValueFile: {\n color: '#2837b9',\n },\n cellValueTooltipTitle: {\n fontStyle: 'italic',\n width: 100,\n display: 'inline-block',\n },\n cellValueTooltipValue: {\n width: 120,\n display: 'inline-block',\n // overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n },\n cellValueTooltipBoth: {\n width: 220,\n display: 'inline-block',\n whiteSpace: 'nowrap',\n },\n cellValueTooltipBox: {\n width: 250,\n overflow: 'hidden',\n },\n cellValueTextUnit: {\n marginLeft: theme.spacing(0.5),\n opacity: 0.8,\n },\n newValue: {\n animation: '$newValueAnimation 2s ease-in-out',\n },\n '@keyframes newValueAnimation': {\n '0%': {\n color: '#00f900',\n },\n '80%': {\n color: '#008000',\n },\n '100%': {\n color: theme.palette.mode === 'dark' ? '#fff' : '#000',\n },\n },\n cellValueTextState: {\n opacity: 0.7,\n },\n cellValueTooltipCopy: {\n position: 'absolute',\n bottom: 3,\n right: 3,\n },\n cellValueTooltipEdit: {\n position: 'absolute',\n bottom: 3,\n right: 15,\n },\n cellButtons: {\n display: 'inline-block',\n verticalAlign: 'top',\n },\n cellButtonsButton: {\n display: 'inline-block',\n opacity: 0.7,\n width: SMALL_BUTTON_SIZE + 4,\n height: SMALL_BUTTON_SIZE + 4,\n '&:hover': {\n opacity: 1,\n },\n paddingTop: 0,\n paddingLeft: 0,\n marginTop: -2,\n },\n cellButtonsEmptyButton: {\n fontSize: 12,\n },\n cellButtonMinWidth: {\n minWidth: 47,\n },\n cellButtonsButtonAlone: {\n marginLeft: SMALL_BUTTON_SIZE + 4,\n paddingTop: 0,\n marginTop: -2,\n },\n cellButtonsButtonWithCustoms: {\n color: theme.palette.secondary.main,\n },\n cellButtonsButtonWithoutCustoms: {\n opacity: 0.2,\n },\n cellButtonsValueButton: {\n position: 'absolute',\n display: 'inline-block',\n top: SMALL_BUTTON_SIZE / 2 - 2,\n opacity: 0.7,\n width: SMALL_BUTTON_SIZE - 2,\n height: SMALL_BUTTON_SIZE - 2,\n color: theme.palette.action.active,\n '&:hover': {\n opacity: 1,\n },\n },\n cellButtonsValueButtonCopy: {\n right: theme.spacing(1),\n cursor: 'pointer',\n },\n cellButtonsValueButtonEdit: {\n right: SMALL_BUTTON_SIZE / 2 + parseInt(theme.spacing(2), 10),\n },\n\n filteredOut: {\n opacity: 0.5,\n },\n filteredParentOut: {\n opacity: 0.3,\n },\n filterInput: {\n marginTop: 0,\n marginBottom: 0,\n },\n selectIcon: {\n width: 24,\n height: 24,\n marginRight: 4,\n },\n selectNone: {\n opacity: 0.5,\n },\n itemSelected: {\n background: `${theme.palette.primary.main} !important`,\n color: `${Utils.invertColor(theme.palette.primary.main, true)} !important`,\n },\n header: {\n width: '100%',\n },\n headerCell: {\n display: 'inline-block',\n verticalAlign: 'top',\n },\n headerCellValue: {\n paddingTop: 4,\n // paddingLeft: 5,\n fontSize: 16,\n },\n headerCellInput: {\n width: 'calc(100% - 5px)',\n height: ROW_HEIGHT,\n paddingTop: 3,\n '& .itemIcon': {\n verticalAlign: 'middle',\n width: ICON_SIZE,\n height: ICON_SIZE,\n display: 'inline-block',\n },\n },\n headerCellSelectItem: {\n '& .itemIcon': {\n width: ICON_SIZE,\n height: ICON_SIZE,\n marginRight: 5,\n display: 'inline-block',\n },\n },\n visibleButtons: {\n color: '#2196f3',\n opacity: 0.7,\n },\n grow: {\n flexGrow: 1,\n },\n enumIconDiv: {\n marginRight: theme.spacing(1),\n width: 32,\n height: 32,\n borderRadius: 8,\n background: '#FFFFFF',\n },\n enumIcon: {\n marginTop: 4,\n marginLeft: 4,\n width: 24,\n height: 24,\n },\n enumDialog: {\n overflow: 'hidden',\n },\n enumList: {\n minWidth: 250,\n height: 'calc(100% - 50px)',\n overflow: 'auto',\n },\n enumButton: {\n float: 'right',\n },\n enumCheckbox: {\n minWidth: 0,\n },\n buttonDiv: {\n display: 'flex',\n height: '100%',\n alignItems: 'center',\n },\n aclText: {\n fontSize: 13,\n },\n rightsObject: {\n color: '#55ff55',\n paddingLeft: 3,\n },\n rightsState: {\n color: '#86b6ff',\n paddingLeft: 3,\n },\n textCenter: {\n padding: 12,\n textAlign: 'center',\n },\n tooltipAccessControl: {\n display: 'flex',\n flexDirection: 'column',\n },\n '@media screen and (max-width: 465px)': {\n columnsDialogInputWidth: {\n width: 50,\n },\n fontSizeTitle: {\n '& *': {\n fontSize: 12,\n },\n },\n },\n '@media screen and (max-width: 700px)': {\n\n },\n '@media screen and (max-width: 430px)': {\n\n },\n draggable: {\n cursor: 'copy',\n },\n nonDraggable: {\n cursor: 'no-drop',\n },\n selectClearButton: {\n position: 'absolute',\n top: 0,\n right: 0,\n borderRadius: 20,\n backgroundColor: theme.palette.background.default,\n },\n iconDeviceConnected: {\n color: theme.palette.mode === 'dark' ? COLOR_NAME_CONNECTED_DARK : COLOR_NAME_CONNECTED_LIGHT,\n opacity: 0.8,\n position: 'absolute',\n top: 4,\n right: 32,\n width: 20,\n },\n iconDeviceDisconnected: {\n color: theme.palette.mode === 'dark' ? COLOR_NAME_DISCONNECTED_DARK : COLOR_NAME_DISCONNECTED_LIGHT,\n opacity: 0.8,\n position: 'absolute',\n top: 4,\n right: 32,\n width: 20,\n },\n iconDeviceError: {\n color: theme.palette.mode === 'dark' ? COLOR_NAME_ERROR_DARK : COLOR_NAME_ERROR_LIGHT,\n opacity: 0.8,\n position: 'absolute',\n top: 4,\n right: 50,\n width: 20,\n },\n resizeHandle: {\n display: 'block',\n position: 'absolute',\n cursor: 'col-resize',\n width: 7,\n top: 2,\n bottom: 2,\n zIndex: 1,\n },\n resizeHandleRight: {\n right: 3,\n borderRight: '2px dotted #888',\n '&:hover': {\n borderColor: '#ccc',\n borderRightStyle: 'solid',\n },\n '&.active': {\n borderColor: '#517ea5',\n borderRightStyle: 'solid',\n },\n },\n resizeHandleLeft: {\n left: -4,\n borderLeft: '2px dotted #888',\n '&:hover': {\n borderColor: '#ccc',\n borderLeftStyle: 'solid',\n },\n '&.active': {\n borderColor: '#517ea5',\n borderLeftStyle: 'solid',\n },\n },\n invertedBackground: {\n backgroundColor: theme.palette.mode === 'dark' ? '#9a9a9a' : '#565656',\n padding: '0 3px',\n borderRadius: '2px 0 0 2px',\n },\n invertedBackgroundFlex: {\n backgroundColor: theme.palette.mode === 'dark' ? '#9a9a9a' : '#565656',\n borderRadius: '0 2px 2px 0',\n },\n});\n\nfunction generateFile(filename, obj) {\n const el = document.createElement('a');\n el.setAttribute('href', `data:application/json;charset=utf-8,${encodeURIComponent(JSON.stringify(obj, null, 2))}`);\n el.setAttribute('download', filename);\n\n el.style.display = 'none';\n document.body.appendChild(el);\n\n el.click();\n\n document.body.removeChild(el);\n}\n\n// d=data, t=target, s=start, e=end, m=middle\nfunction binarySearch(list, find, _start, _end) {\n _start = _start || 0;\n if (_end === undefined) {\n _end = list.length - 1;\n if (!_end) {\n return list[0] === find;\n }\n }\n const middle = Math.floor((_start + _end) / 2);\n if (find === list[middle]) {\n return list[middle];\n }\n if (_end - 1 === _start) {\n return list[_start] === find || list[_end] === find;\n }\n if (find > list[middle]) {\n return binarySearch(list, find, middle, _end);\n }\n if (find < list[middle]) {\n return binarySearch(list, find, _start, middle);\n }\n return false;\n}\n\nfunction getName(name, lang) {\n if (name && typeof name === 'object') {\n return (name[lang] || name.en || '').toString();\n }\n\n return (name || '').toString();\n}\n\nfunction getSelectIdIcon(objects, id, imagePrefix) {\n imagePrefix = imagePrefix || '.'; // http://localhost:8081';\n let src = '';\n const _id_ = `system.adapter.${id}`;\n const aIcon = id && objects[_id_] && objects[_id_].common && objects[_id_].common.icon;\n if (aIcon) {\n // if not BASE64\n if (!aIcon.startsWith('data:image/')) {\n if (aIcon.includes('.')) {\n src = `${imagePrefix}/adapter/${objects[_id_].common.name}/${aIcon}`;\n } else if (aIcon && aIcon.length < 3) {\n return aIcon; // utf-8\n } else {\n return null; // '<i class=\"material-icons iob-list-icon\">' + objects[_id_].common.icon + '</i>';\n }\n } else {\n if (aIcon.startsWith('data:image/svg')) {\n src = <SVG className=\"iconOwn\" src={aIcon} width={28} height={28} />;\n } else {\n src = aIcon;\n }\n }\n } else {\n const common = objects[id] && objects[id].common;\n\n if (common) {\n const cIcon = common.icon;\n if (cIcon) {\n if (!cIcon.startsWith('data:image/')) {\n if (cIcon.includes('.')) {\n let instance;\n if (objects[id].type === 'instance' || objects[id].type === 'adapter') {\n src = `${imagePrefix}/adapter/${common.name}/${cIcon}`;\n } else if (id && id.startsWith('system.adapter.')) {\n instance = id.split('.', 3);\n if (cIcon[0] === '/') {\n instance[2] += cIcon;\n } else {\n instance[2] += `/${cIcon}`;\n }\n src = `${imagePrefix}/adapter/${instance[2]}`;\n } else {\n instance = id.split('.', 2);\n if (cIcon[0] === '/') {\n instance[0] += cIcon;\n } else {\n instance[0] += `/${cIcon}`;\n }\n src = `${imagePrefix}/adapter/${instance[0]}`;\n }\n } else if (aIcon && aIcon.length < 3) {\n return aIcon; // utf-8\n } else {\n return null;\n }\n } else if (cIcon.startsWith('data:image/svg')) {\n // if base 64 image\n src = <SVG className=\"iconOwn\" src={cIcon} width={28} height={28} />;\n } else {\n src = cIcon;\n }\n }\n }\n }\n\n return src || null;\n}\n\nfunction applyFilter(item, filters, lang, objects, context, counter, customFilter, selectedTypes, _depth) {\n _depth = _depth || 0;\n let filteredOut = false;\n if (!context) {\n context = {};\n if (filters.id) {\n context.id = filters.id.toLowerCase();\n }\n if (filters.name) {\n context.name = filters.name.toLowerCase();\n }\n if (filters.type) {\n context.type = filters.type.toLowerCase();\n }\n if (filters.custom) {\n context.custom = filters.custom.toLowerCase();\n }\n if (filters.role) {\n context.role = filters.role.toLowerCase();\n }\n if (filters.room) {\n context.room = (objects[filters.room] && objects[filters.room].common && objects[filters.room].common.members) || [];\n }\n if (filters.func) {\n context.func = (objects[filters.func] && objects[filters.func].common && objects[filters.func].common.members) || [];\n }\n }\n\n const data = item.data;\n\n if (data && data.id) {\n const common = data.obj?.common;\n\n if (customFilter) {\n if (customFilter.type) {\n if (typeof customFilter.type === 'string') {\n if (!data.obj || customFilter.type !== data.obj.type) {\n filteredOut = true;\n }\n } else if (Array.isArray(customFilter.type)) {\n if (!data.obj || !customFilter.type.includes(data.obj.type)) {\n filteredOut = true;\n }\n }\n }\n if (!filteredOut && customFilter.common?.type) {\n if (!common?.type) {\n filteredOut = true;\n } else if (typeof customFilter.common.type === 'string') {\n if (customFilter.common.type !== common.type) {\n filteredOut = true;\n }\n } else if (Array.isArray(customFilter.common.type)) {\n if (!customFilter.type.includes(common.type)) {\n filteredOut = true;\n }\n }\n }\n if (!filteredOut && customFilter.common?.role) {\n if (!common?.role) {\n filteredOut = true;\n } else if (typeof customFilter.common.role === 'string') {\n if (common.role.startsWith(customFilter.common.role)) {\n filteredOut = true;\n }\n } else if (Array.isArray(customFilter.common.role)) {\n if (!customFilter.common.role.find(role => customFilter.role.includes(role))) {\n filteredOut = true;\n }\n }\n }\n if (!filteredOut && customFilter.common?.custom) {\n if (!common?.custom) {\n filteredOut = true;\n } else\n if (customFilter.common.custom === '_dataSources') {\n // TODO: make it configurable\n if (!Object.keys(common.custom).find(id => id.startsWith('history.') || id.startsWith('sql.') || id.startsWith('influxdb.'))) {\n filteredOut = true;\n }\n } else\n if (customFilter.common.custom !== true &&\n !Object.keys(common.custom).find(id => id.startsWith(customFilter.common.custom))\n ) {\n filteredOut = true;\n }\n }\n }\n\n if (!filteredOut && !filters.expertMode) {\n filteredOut =\n data.id === 'system' ||\n data.id === 'enum' ||\n // (data.obj && data.obj.type === 'meta') ||\n data.id.startsWith('system.') ||\n data.id.startsWith('enum.') ||\n data.id.startsWith('_design/') ||\n data.id.endsWith('.admin') ||\n (common && common.expert);\n }\n if (!filteredOut && context.id) {\n if (data.fID === undefined) {\n data.fID = data.id.toLowerCase();\n }\n filteredOut = !data.fID.includes(context.id);\n }\n if (!filteredOut && context.name) {\n if (common) {\n if (data.fName === undefined) {\n data.fName = (common && getName(common.name, lang)) || '';\n data.fName = data.fName.toLowerCase();\n }\n filteredOut = !data.fName.includes(context.name);\n } else {\n filteredOut = true;\n }\n }\n if (!filteredOut && filters.role && common) {\n if (common) {\n filteredOut = !(common.role && common.role.startsWith(context.role));\n } else {\n filteredOut = true;\n }\n }\n if (!filteredOut && context.room) {\n filteredOut = !context.room.find(id => id === data.id || data.id.startsWith(`${id}.`));\n }\n if (!filteredOut && context.func) {\n filteredOut = !context.func.find(id => id === data.id || data.id.startsWith(`${id}.`));\n }\n if (!filteredOut && context.type) {\n filteredOut = !(data.obj && data.obj.type && data.obj.type === context.type);\n }\n if (!filteredOut && selectedTypes) {\n filteredOut = !(data.obj && data.obj.type && selectedTypes.includes(data.obj.type));\n }\n if (!filteredOut && context.custom) {\n if (common) {\n filteredOut = !common.custom || !common.custom[context.custom];\n } else {\n filteredOut = true;\n }\n }\n }\n\n data.visible = !filteredOut;\n\n data.hasVisibleChildren = false;\n if (item.children && _depth < 20) {\n item.children.forEach(_item => {\n const visible = applyFilter(_item, filters, lang, objects, context, counter, customFilter, selectedTypes, _depth + 1);\n if (visible) {\n data.hasVisibleChildren = true;\n }\n });\n }\n\n // const visible = data.visible || data.hasVisibleChildren;\n data.sumVisibility = data.visible || data.hasVisibleChildren;// || data.hasVisibleParent;\n if (counter && data.sumVisibility) {\n counter.count++;\n }\n\n // show all children of visible object with opacity 0.5\n if (data.id && data.sumVisibility && item.children) {\n item.children.forEach(_item => _item.data.hasVisibleParent = true);\n }\n\n return data.visible || data.hasVisibleChildren;\n}\n\nfunction getVisibleItems(item, type, objects, _result) {\n _result = _result || [];\n const data = item.data;\n if (data.sumVisibility) {\n data.id && objects[data.id] && (!type || objects[data.id].type === type) && _result.push(data.id);\n item.children?.forEach(_item =>\n getVisibleItems(_item, type, objects, _result));\n }\n\n return _result;\n}\n\nfunction getSystemIcon(objects, id, k, imagePrefix) {\n let icon;\n\n // system or design have special icons\n if (id.startsWith('_design/') || (id === 'system')) {\n icon = <IconSystem className=\"iconOwn\" />;\n } else if (id === '0_userdata' || id === '0_userdata.0') {\n icon = <IconPhoto className=\"iconOwn\" />;\n } else if (id === 'alias' || id === 'alias.0') {\n icon = <IconAlias className=\"iconOwn\" />;\n } else if (id === 'system.adapter') {\n icon = <IconSystem className=\"iconOwn\" />;\n } else if (id === 'system.group') {\n icon = <IconGroup className=\"iconOwn\" />;\n } else if (id === 'system.user') {\n icon = <IconUser className=\"iconOwn\" />;\n } else if (id === 'system.host') {\n icon = <IconHost className=\"iconOwn\" />;\n } else if (id.endsWith('.connection') || id.endsWith('.connected')) {\n icon = <IconConnection className=\"iconOwn\" />;\n } else if (id.endsWith('.info')) {\n icon = <IconInfo className=\"iconOwn\" />;\n } else if (objects[id] && objects[id].type === 'meta') {\n icon = <IconMeta className=\"iconOwn\" />;\n } else if (k < 2) {\n // detect \"cloud.0\"\n if (objects[`system.adapter.${id}`]) {\n icon = getSelectIdIcon(objects, `system.adapter.${id}`, imagePrefix);\n }\n }\n\n return icon || null;\n}\n\nfunction getIdFieldTooltip(data, classes, lang) {\n if (data?.obj?.common?.desc && data.obj.common.desc !== '') {\n let tooltip = '';\n\n if (typeof data?.obj?.common?.desc === 'object' && data.obj.common.desc[lang] !== undefined) {\n tooltip = data.obj.common.desc[lang];\n } else if (typeof data?.obj?.common?.desc === 'object' && data.obj.common.desc['en'] !== undefined) {\n tooltip = data.obj.common.desc['en'];\n } else if (typeof data?.obj?.common?.desc === 'object' && data.obj.common.desc[lang] === undefined) {\n return data.id;\n } else {\n tooltip = data.obj.common.desc;\n }\n\n if (tooltip?.startsWith('http')) {\n return <a\n className={Utils.clsx(classes.cellIdTooltipLink)}\n href={tooltip}\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n {tooltip}\n </a>;\n }\n\n return <span className={Utils.clsx(classes.cellIdTooltip)}>{tooltip}</span>;\n }\n\n return data.id;\n}\n\nfunction buildTree(objects, options) {\n options = options || {};\n const imagePrefix = options.imagePrefix || '.';\n\n const ids = Object.keys(objects);\n\n ids.sort((a, b) => {\n if (a === b) return 0;\n a = a.replace(/\\./g, '!!!');\n b = b.replace(/\\./g, '!!!');\n if (a > b) return 1;\n return -1;\n });\n\n // find empty nodes and create names for it\n let currentPathArr = [];\n let currentPath = '';\n let currentPathLen = 0;\n const root = {\n data: {\n name: '',\n id: '',\n },\n children: [],\n };\n\n const info = {\n funcEnums: [],\n roomEnums: [],\n roles: [],\n ids: [],\n types: [],\n objects,\n customs: [],\n enums: [],\n hasSomeCustoms: false,\n };\n\n let croot = root;\n\n for (let i = 0; i < ids.length; i++) {\n const id = ids[i];\n if (!id) {\n continue;\n }\n const obj = objects[id];\n const parts = id.split('.');\n\n if (obj.type && !info.types.includes(obj.type)) {\n info.types.push(obj.type);\n }\n\n if (obj) {\n const common = obj.common;\n const role = common && common.role;\n if (role && !info.roles.includes(role)) {\n info.roles.push(role);\n } else if (id.startsWith('enum.rooms.')) {\n info.roomEnums.push(id);\n info.enums.push(id);\n } else if (id.startsWith('enum.functions.')) {\n info.funcEnums.push(id);\n info.enums.push(id);\n } else if (obj.type === 'enum') {\n info.enums.push(id);\n } else if (obj.type === 'instance' && common && (common.supportCustoms || common.adminUI?.custom)) {\n info.hasSomeCustoms = true;\n info.customs.push(id.substring('system.adapter.'.length));\n }\n }\n\n info.ids.push(id);\n\n let repeat;\n\n // if next level\n do {\n repeat = false;\n\n // If current level is still OK, and we can add ID to children\n if (!currentPath || id.startsWith(`${currentPath}.`)) {\n // if more than one level added\n if (parts.length - currentPathLen > 1) {\n let curPath = currentPath;\n // generate missing levels\n for (let k = currentPathLen; k < parts.length - 1; k++) {\n curPath += (curPath ? '.' : '') + parts[k];\n // level does not exist\n if (!binarySearch(info.ids, curPath)) {\n const _croot = {\n data: {\n name: parts[k],\n parent: croot,\n id: curPath,\n obj: objects[curPath],\n level: k,\n icon: getSystemIcon(objects, curPath, k, imagePrefix),\n generated: true,\n },\n };\n\n croot.children = croot.children || [];\n croot.children.push(_croot);\n croot = _croot;\n info.ids.push(curPath); // IDs will be added by alphabet\n } else {\n croot = croot.children.find(item => item.data.name === parts[k]);\n }\n }\n }\n\n const _croot = {\n data: {\n name: parts[parts.length - 1],\n title: getName(obj && obj.common && obj.common.name, options.lang),\n obj,\n parent: croot,\n icon: getSelectIdIcon(objects, id, imagePrefix) || getSystemIcon(objects, id, 0, imagePrefix),\n id,\n hasCustoms: obj.common?.custom && Object.keys(obj.common.custom).length,\n level: parts.length - 1,\n generated: false,\n button: obj.type === 'state' && obj.common?.role && typeof obj.common.role === 'string' && obj.common.role.startsWith('button') && obj.common?.write !== false,\n },\n };\n\n croot.children = croot.children || [];\n croot.children.push(_croot);\n croot = _croot;\n\n currentPathLen = parts.length;\n currentPathArr = parts;\n currentPath = id;\n } else {\n let u = 0;\n\n while (currentPathArr[u] === parts[u]) {\n u++;\n }\n\n if (u > 0) {\n let move = currentPathArr.length;\n currentPathArr = currentPathArr.splice(0, u);\n currentPathLen = u;\n currentPath = currentPathArr.join('.');\n while (move > u) {\n croot = croot.data.parent;\n move--;\n }\n } else {\n croot = root;\n currentPathArr = [];\n currentPath = '';\n currentPathLen = 0;\n }\n repeat = true;\n }\n } while (repeat);\n }\n\n info.roomEnums.sort((a, b) => {\n const aName = getName(objects[a]?.common?.name || a.split('.').pop());\n const bName = getName(objects[b]?.common?.name || b.split('.').pop());\n if (aName > bName) {\n return 1;\n }\n if (aName < bName) {\n return -1;\n }\n return 0;\n });\n info.funcEnums.sort((a, b) => {\n const aName = getName(objects[a]?.common?.name || a.split('.').pop());\n const bName = getName(objects[b]?.common?.name || b.split('.').pop());\n if (aName > bName) {\n return 1;\n }\n if (aName < bName) {\n return -1;\n }\n return 0;\n });\n info.roles.sort();\n info.types.sort();\n\n return { info, root };\n}\n\nfunction findNode(root, id, _parts, _path, _level) {\n if (root.data.id === id) {\n return root;\n }\n if (!_parts) {\n _parts = id.split('.');\n _level = 0;\n _path = _parts[_level];\n }\n if (!root.children && root.data.id !== id) {\n return null;\n }\n let found;\n for (let i = 0; i < root.children.length; i++) {\n const _id = root.children[i].data.id;\n if (_id === _path) {\n found = root.children[i];\n break;\n } else\n if (_id > _path) {\n break;\n }\n }\n if (found) {\n return findNode(found, id, _parts, `${_path}.${_parts[_level + 1]}`, _level + 1);\n }\n\n return null;\n}\n\nfunction findRoomsForObject(data, id, lang, withParentInfo, rooms) {\n if (!id) {\n return { rooms: [], per: false };\n }\n rooms = rooms || [];\n for (let i = 0; i < data.roomEnums.length; i++) {\n const common = data.objects[data.roomEnums[i]]?.common;\n const name = getName(common.name, lang);\n\n if (common?.members?.includes(id) && !rooms.includes(name)) {\n if (!withParentInfo) {\n rooms.push(name);\n } else {\n rooms.push({ name, origin: id });\n }\n }\n }\n\n let ownEnums;\n\n // Check parent\n const parts = id.split('.');\n parts.pop();\n id = parts.join('.');\n if (data.objects[id]) {\n ownEnums = rooms.length;\n findRoomsForObject(data, id, lang, withParentInfo, rooms);\n }\n\n return { rooms, per: !ownEnums }; // pe is if the enums are from parent\n}\n\nfunction findEnumsForObjectAsIds(data, id, enumName, funcs) {\n if (!id) {\n return [];\n }\n funcs = funcs || [];\n for (let i = 0; i < data[enumName].length; i++) {\n const common = data.objects[data[enumName][i]]?.common;\n if (common?.members?.includes(id) && !funcs.includes(data[enumName][i])) {\n funcs.push(data[enumName][i]);\n }\n }\n funcs.sort();\n\n return funcs;\n}\n\nfunction findFunctionsForObject(data, id, lang, withParentInfo, funcs) {\n if (!id) {\n return { funcs: [], pef: false };\n }\n funcs = funcs || [];\n for (let i = 0; i < data.funcEnums.length; i++) {\n const common = data.objects[data.funcEnums[i]]?.common;\n const name = getName(common.name, lang);\n if (common?.members?.includes(id) && !funcs.includes(name)) {\n if (!withParentInfo) {\n funcs.push(name);\n } else {\n funcs.push({ name, origin: id });\n }\n }\n }\n\n let ownEnums;\n\n // Check parent\n const parts = id.split('.');\n parts.pop();\n id = parts.join('.');\n if (data.objects[id]) {\n ownEnums = funcs.length;\n findFunctionsForObject(data, id, lang, withParentInfo, funcs);\n }\n\n return { funcs, pef: !ownEnums };\n}\n\n/*\nfunction quality2text(q) {\n if (!q) {\n return 'ok';\n }\n const custom = q & 0xFFFF0000;\n let text = '';\n if (q & 0x40) text += 'device';\n if (q & 0x80) text += 'sensor';\n if (q & 0x01) text += ' bad';\n if (q & 0x02) text += ' not connected';\n if (q & 0x04) text += ' error';\n\n return text + (custom ? '|0x' + (custom >> 16).toString(16).toUpperCase() : '') + ' [0x' + q.toString(16).toUpperCase() + ']';\n}\n*/\n\nfunction formatValue(id, state, obj, texts, dateFormat, isFloatComma) {\n const states = Utils.getStates(obj);\n const isCommon = obj.common;\n\n const valText = {};\n let v = (isCommon && isCommon.type === 'file') ? '[file]' : (!state || state.val === null ? '(null)' : (state.val === undefined ? '[undef]' : state.val));\n const type = typeof v;\n\n if (isCommon && isCommon.role && typeof isCommon.role === 'string' && isCommon.role.match(/^value\\.time|^date/)) {\n if (v && typeof v === 'string') {\n if (v.length === 13) { // (length of \"1647597254924\") warning, this solution only works till Nov 20 2286 18:46:39CET\n v = new Date(parseInt(v, 10)).toString();\n } else {\n // we don't know what is that, so leave it as it is\n }\n } else {\n if (v > 946681200 && v < 946681200000) { // '2000-01-01T00:00:00' => 946681200000\n v *= 1000; // may be the time is in seconds (UNIX time)\n }\n // null and undefined could not be here. See `let v = (isCommon && isCommon.type === 'file') ....` above\n v = v ? new Date(v).toString() : v;\n }\n } else {\n if (type === 'number') {\n v = Math.round(v * 100000000) / 100000000; // remove 4.00000000000000001\n if (isFloatComma) {\n v = v.toString().replace('.', ',');\n }\n } else if (type === 'object') {\n v = JSON.stringify(v);\n } else if (type !== 'string') {\n v = v.toString();\n }\n\n if (typeof v !== 'string') {\n v = v.toString();\n }\n }\n\n // try to replace number with \"common.states\"\n if (states && states[v] !== undefined) {\n if (v !== states[v]) {\n valText.s = v;\n v = states[v];\n }\n }\n\n if (isCommon && isCommon.unit) {\n valText.u = isCommon.unit;\n }\n const valFull = [{ t: texts.value, v }];\n\n if (state) {\n if (state.ack !== undefined && state.ack !== null) {\n valFull.push({ t: texts.ack, v: state.ack.toString() });\n }\n if (state.ts) {\n valFull.push({ t: texts.ts, v: state.ts ? Utils.formatDate(new Date(state.ts), dateFormat) : '' });\n }\n if (state.lc) {\n valFull.push({ t: texts.lc, v: state.lc ? Utils.formatDate(new Date(state.lc), dateFormat) : '' });\n }\n if (state.from) {\n let from = state.from.toString();\n if (from.startsWith('system.adapter.')) {\n from = from.substring(15);\n }\n valFull.push({ t: texts.from, v: from });\n }\n if (state.user) {\n let user = state.user.toString();\n if (user.startsWith('system.user.')) {\n user = user.substring(12);\n }\n valFull.push({ t: texts.user, v: user });\n }\n if (state.c) {\n valFull.push({ t: texts.c, v: state.c });\n }\n valFull.push({ t: texts.quality, v: Utils.quality2text(state.q || 0).join(', '), nbr: true });\n }\n\n valText.v = v;\n\n return {\n valText,\n valFull,\n style: { color: state?.ack ? (state.q ? '#ffa500' : '') : '#ff2222c9' },\n };\n}\n\nfunction prepareSparkData(values, from) {\n // set every hour one point\n let time = from;\n let i = 1;\n const v = [];\n\n while (i < values.length && time < from + 25 * 3600000) {\n // find the interval\n while (values[i - 1].ts < time && time <= values[i].ts && i < values.length) {\n i++;\n }\n if (i === 1 && values[i - 1].ts >= time) {\n // assume the value was always null\n v.push(0);\n } else\n if (i < values.length) {\n if (typeof values[i].val === 'boolean' || typeof values[i - 1].val === 'boolean') {\n v.push(values[i].val ? 1 : 0);\n } else {\n // remove nulls\n values[i - 1].val = values[i - 1].val || 0;\n values[i].val = values[i].val || 0;\n // interpolate\n const val = values[i - 1].val + ((values[i].val - values[i - 1].val) * (time - values[i - 1].ts)) / (values[i].ts - values[i - 1].ts);\n\n v.push(val);\n }\n }\n\n time += 3600000;\n }\n\n return v;\n}\n\n/**\n * @type {import('./types').ObjectBrowserTableFilter}\n */\nconst DEFAULT_FILTER = {\n id: '',\n name: '',\n room: '',\n func: '',\n role: '',\n type: '',\n custom: '',\n expertMode: false,\n};\n\nconst ITEM_IMAGES = {\n state: <IconState className=\"itemIcon\" />,\n channel: <IconChannel className=\"itemIcon\" />,\n device: <IconDevice className=\"itemIcon\" />,\n adapter: <IconAdapter className=\"itemIcon\" />,\n meta: <IconMeta className=\"itemIcon\" />,\n instance: <IconInstance className=\"itemIcon\" style={{ color: '#7da7ff' }} />,\n enum: <IconEnum className=\"itemIcon\" />,\n chart: <IconChart className=\"itemIcon\" />,\n config: <IconConfig className=\"itemIcon\" />,\n group: <IconGroup className=\"itemIcon\" />,\n user: <IconUser className=\"itemIcon\" />,\n host: <IconHost className=\"itemIcon\" />,\n schedule: <IconSchedule className=\"itemIcon\" />,\n script: <IconScript className=\"itemIcon\" />,\n folder: <IconClosed className=\"itemIcon itemIconFolder\" />,\n};\n\nconst StyledBadge = withStyles(theme => ({\n badge: {\n right: 3,\n top: 3,\n border: `2px solid ${theme.palette.background.paper}`,\n padding: '0 4px',\n },\n}))(Badge);\n\nconst SCREEN_WIDTHS = {\n // extra-small: 0px\n xs: { idWidth: '100%', fields: [], widths: {} },\n // small: 600px\n sm: { idWidth: 300, fields: ['room', 'val'], widths: { room: 100, val: 200 } },\n // medium: 960px\n md: {\n idWidth: 300,\n fields: ['room', 'func', 'val', 'buttons'],\n widths: {\n name: 200, room: 150, func: 150, val: 120, buttons: 120,\n },\n },\n // large: 1280px\n lg: {\n idWidth: 300,\n fields: ['name', 'type', 'role', 'room', 'func', 'val', 'buttons', 'changedFrom', 'qualityCode', 'timestamp', 'lastChange'],\n widths: {\n name: 300,\n type: 80,\n role: 120,\n room: 180,\n func: 180,\n val: 140,\n buttons: 120,\n changedFrom: 120,\n qualityCode: 100,\n timestamp: 165,\n lastChange: 165,\n },\n },\n // /////////////\n // extra-large: 1920px\n xl: {\n idWidth: 550,\n fields: ['name', 'type', 'role', 'room', 'func', 'val', 'buttons', 'changedFrom', 'qualityCode', 'timestamp', 'lastChange'],\n widths: {\n name: 400,\n type: 80,\n role: 120,\n room: 180,\n func: 180,\n val: 140,\n buttons: 120,\n changedFrom: 120,\n qualityCode: 100,\n timestamp: 170,\n lastChange: 170,\n },\n },\n};\n\nlet objectsAlreadyLoaded = false;\n\n/**\n * @extends {React.Component<import('./types').ObjectBrowserProps>}\n */\nclass ObjectBrowser extends Component {\n /**\n * @param {import('./types').ObjectBrowserProps} props\n */\n constructor(props) {\n super(props);\n\n this.lastSelectedItems = (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.objectSelected`) || '[]';\n try {\n this.lastSelectedItems = JSON.parse(this.lastSelectedItems);\n if (typeof this.lastSelectedItems !== 'object') {\n this.lastSelectedItems = [this.lastSelectedItems];\n }\n this.lastSelectedItems = this.lastSelectedItems.filter(id => id);\n } catch (e) {\n // ignore\n }\n\n let expanded = (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.objectExpanded`) || '[]';\n try {\n expanded = JSON.parse(expanded);\n } catch (e) {\n expanded = [];\n }\n\n let filter =\n props.defaultFilters ||\n (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.objectFilter`) ||\n { ...DEFAULT_FILTER };\n\n if (typeof filter === 'string') {\n try {\n filter = JSON.parse(filter);\n } catch (e) {\n filter = { ...DEFAULT_FILTER };\n }\n }\n\n filter.expertMode = props.expertMode !== undefined ? props.expertMode : ((window._sessionStorage || window.sessionStorage).getItem('App.expertMode') === 'true');\n this.tableRef = createRef();\n this.filterRefs = {};\n\n Object.keys(DEFAULT_FILTER).forEach(name =>\n this.filterRefs[name] = createRef());\n\n this.lastAppliedFilter = null;\n this.pausedSubscribes = false;\n\n this.selectedFound = false;\n this.root = null;\n this.states = {};\n this.subscribes = [];\n this.statesUpdateTimer = null;\n this.objectsUpdateTimer = null;\n\n this.visibleCols = props.columns || SCREEN_WIDTHS[props.width].fields;\n // remove type column if only one type must be selected\n if (props.types && props.types.length === 1) {\n const pos = this.visibleCols.indexOf('type');\n pos !== -1 && this.visibleCols.splice(pos, 1);\n }\n\n // this.possibleCols = SCREEN_WIDTHS.xl.fields;\n\n let customDialog = null;\n\n if (props.router) {\n const location = props.router.getLocation();\n if (location.id && location.dialog === 'customs') {\n customDialog = [location.id];\n this.pauseSubscribe(true);\n }\n }\n\n let selected = (props.selected || '');\n if (typeof selected !== 'object') {\n selected = [selected];\n }\n selected = selected.map(id => id.replace(/[\"']/g, '')).filter(id => id);\n\n let columns = null; // (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.columns`);\n try {\n columns = columns ? JSON.parse(columns) : null;\n } catch (e) {\n columns = null;\n }\n\n let columnsWidths = null; // (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.columnsWidths`);\n try {\n columnsWidths = columnsWidths ? JSON.parse(columnsWidths) : {};\n } catch (e) {\n columnsWidths = {};\n }\n\n this.imagePrefix = props.imagePrefix || '.';\n let foldersFirst = (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.foldersFirst`);\n if (foldersFirst === 'false') {\n foldersFirst = false;\n } else if (foldersFirst === 'true') {\n foldersFirst = true;\n } else {\n foldersFirst = props.foldersFirst === undefined ? true : props.foldersFirst;\n }\n\n let statesView = false;\n try {\n statesView = this.props.objectStatesView ? JSON.parse((window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.objectStatesView`)) || false : false;\n } catch (error) {\n // ignore\n }\n\n this.state = {\n loaded: false,\n foldersFirst,\n selected,\n selectedNonObject: (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.selectedNonObject`) || '',\n filter,\n filterKey: 0,\n depth: 0,\n expandAllVisible: false,\n expanded,\n toast: '',\n lang: props.lang,\n scrollBarWidth: 16,\n customDialog,\n editObjectDialog: '',\n viewFileDialog: '',\n enumDialog: null,\n roleDialog: null,\n statesView,\n columns,\n columnsForAdmin: null,\n columnsSelectorShow: false,\n columnsAuto: true, // (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.columnsAuto`) !== 'false',\n columnsWidths,\n columnsDialogTransparent: 100,\n columnsEditCustomDialog: null,\n customColumnDialogValueChanged: false,\n showExportDialog: false,\n linesEnabled: (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.lines`) === 'true',\n };\n\n this.edit = {};\n\n this.texts = {\n value: props.t('ra_tooltip_value'),\n ack: props.t('ra_tooltip_ack'),\n ts: props.t('ra_tooltip_ts'),\n lc: props.t('ra_tooltip_lc'),\n from: props.t('ra_tooltip_from'),\n user: props.t('ra_tooltip_user'),\n c: props.t('ra_tooltip_comment'),\n quality: props.t('ra_tooltip_quality'),\n editObject: props.t('ra_tooltip_editObject'),\n deleteObject: props.t('ra_tooltip_deleteObject'),\n customConfig: props.t('ra_tooltip_customConfig'),\n copyState: props.t('ra_tooltip_copyState'),\n editState: props.t('ra_tooltip_editState'),\n close: props.t('ra_Close'),\n filter_id: props.t('ra_filter_id'),\n filter_name: props.t('ra_filter_name'),\n filter_type: props.t('ra_filter_type'),\n filter_role: props.t('ra_filter_role'),\n filter_room: props.t('ra_filter_room'),\n filter_func: props.t('ra_filter_func'),\n filter_custom: props.t('ra_filter_customs'), //\n objectChangedByUser: props.t('ra_object_changed_by_user'), // Object last changed at\n objectChangedBy: props.t('ra_object_changed_by'), // Object changed by\n objectChangedFrom: props.t('ra_state_changed_from'), // Object changed from\n stateChangedBy: props.t('ra_state_changed_by'), // State changed by\n stateChangedFrom: props.t('ra_state_changed_from'), // State changed from\n ownerGroup: props.t('ra_Owner group'),\n ownerUser: props.t('ra_Owner user'),\n deviceError: props.t('ra_Error'),\n deviceDisconnected: props.t('ra_Disconnected'),\n deviceConnected: props.t('ra_Connected'),\n\n aclOwner_read_object: props.t('ra_aclOwner_read_object'),\n aclOwner_read_state: props.t('ra_aclOwner_read_state'),\n aclOwner_write_object: props.t('ra_aclOwner_write_object'),\n aclOwner_write_state: props.t('ra_aclOwner_write_state'),\n aclGroup_read_object: props.t('ra_aclGroup_read_object'),\n aclGroup_read_state: props.t('ra_aclGroup_read_state'),\n aclGroup_write_object: props.t('ra_aclGroup_write_object'),\n aclGroup_write_state: props.t('ra_aclGroup_write_state'),\n aclEveryone_read_object: props.t('ra_aclEveryone_read_object'),\n aclEveryone_read_state: props.t('ra_aclEveryone_read_state'),\n aclEveryone_write_object: props.t('ra_aclEveryone_write_object'),\n aclEveryone_write_state: props.t('ra_aclEveryone_write_state'),\n };\n\n this.levelPadding = props.levelPadding || ITEM_LEVEL;\n\n let resizerCurrentWidths = (window._localStorage || window.localStorage).getItem(`${this.props.dialogName || 'App'}.table`);\n if (resizerCurrentWidths) {\n try {\n resizerCurrentWidths = JSON.parse(resizerCurrentWidths);\n this.storedWidths = JSON.parse(JSON.stringify(SCREEN_WIDTHS[this.props.width]));\n Object.keys(resizerCurrentWidths)\n .forEach(id => {\n if (id === 'id') {\n SCREEN_WIDTHS[this.props.width].idWidth = resizerCurrentWidths.id;\n } else if (id === 'nameHeader') {\n SCREEN_WIDTHS[this.props.width].widths.name = resizerCurrentWidths[id];\n } else if (SCREEN_WIDTHS[this.props.width].widths[id] !== undefined) {\n SCREEN_WIDTHS[this.props.width].widths[id] = resizerCurrentWidths[id];\n }\n });\n\n this.customWidth = true;\n } catch (e) {\n // ignore\n }\n }\n\n this.calculateColumnsVisibility();\n }\n\n loadAllObjects(update) {\n const props = this.props;\n let objects;\n\n return new Promise(resolve => {\n this.setState({ updating: true }, () => resolve());\n })\n .then(() => (this.props.objectsWorker ?\n this.props.objectsWorker.getObjects(update) :\n props.socket.getObjects(update, true)))\n .then(_objects => {\n objects = _objects;\n if (props.types && props.types[0] !== 'state') {\n if (props.length >= 1) {\n console.error('more than one type does not supported! Use filterFunc instead');\n }\n return props.socket.getObjectView(null, null, props.types[0]);\n }\n return !objects['system.config'] ? props.socket.getObject('system.config')\n .then(obj => ({ 'system.config': obj })) : Promise.resolve(null);\n })\n .then(moreObjects => {\n this.systemConfig = objects['system.config'] || moreObjects['system.config'] || {};\n\n if (moreObjects) {\n if (moreObjects['system.config']) {\n delete moreObjects['system.config'];\n }\n Object.assign(objects, moreObjects);\n }\n\n this.systemConfig.common = this.systemConfig.common || {};\n this.systemConfig.common.defaultNewAcl = this.systemConfig.common.defaultNewAcl || {};\n this.systemConfig.common.defaultNewAcl.owner = this.systemConfig.common.defaultNewAcl.owner || 'system.user.admin';\n this.systemConfig.common.defaultNewAcl.ownerGroup = this.systemConfig.common.defaultNewAcl.ownerGroup || 'system.group.administrator';\n if (typeof this.systemConfig.common.defaultNewAcl.state !== 'number') {\n // TODO: may be convert here from string\n this.systemConfig.common.defaultNewAcl.state = 0x664;\n }\n if (typeof this.systemConfig.common.defaultNewAcl.object !== 'number') {\n // TODO: may be convert here from string\n this.systemConfig.common.defaultNewAcl.state = 0x664;\n }\n\n if (typeof props.filterFunc === 'function') {\n this.objects = {};\n Object.keys(objects).forEach(id => {\n try {\n if (props.filterFunc(objects[id])) {\n this.objects[id] = objects[id];\n }\n } catch (e) {\n console.log(`Error by filtering of \"${id}\": ${e}`);\n }\n });\n } else\n if (props.types) {\n this.objects = {};\n Object.keys(objects).forEach(id => {\n const type = objects[id] && objects[id].type;\n // include \"folder\" types too\n if (type && (\n type === 'channel' ||\n type === 'device' ||\n type === 'enum' ||\n type === 'folder' ||\n type === 'adapter' ||\n type === 'instance' ||\n props.types.includes(type))) {\n this.objects[id] = objects[id];\n }\n });\n } else {\n this.objects = objects;\n }\n\n // read default history\n this.defaultHistory = this.systemConfig.common.defaultHistory;\n if (this.defaultHistory) {\n props.socket.getState(`system.adapter.${this.defaultHistory}.alive`)\n .then(state => {\n if (!state || !state.val) {\n this.defaultHistory = '';\n }\n })\n .catch(e => window.alert(`Cannot get state: ${e}`));\n }\n\n return this.getAdditionalColumns();\n })\n .then(columnsForAdmin => {\n this.calculateColumnsVisibility(null, null, columnsForAdmin);\n\n const { info, root } = buildTree(this.objects, this.props);\n this.root = root;\n this.info = info;\n\n // Show first selected item\n const node = this.state.selected && this.state.selected.length && findNode(this.root, this.state.selected[0]);\n\n this.lastAppliedFilter = null;\n\n // If selected ID is not visible, reset filter\n if (node && !applyFilter(node, this.state.filter, this.state.lang, this.objects, null, null, props.customFilter, props.types)) {\n // reset filter\n this.setState({ filter: { ...DEFAULT_FILTER }, columnsForAdmin }, () => {\n this.setState({ loaded: true, updating: false }, () =>\n this.expandAllSelected(() =>\n this.onAfterSelect()));\n });\n } else {\n this.setState({ loaded: true, updating: false, columnsForAdmin }, () =>\n this.expandAllSelected(() =>\n this.onAfterSelect()));\n }\n })\n .catch(e => this.showError(e));\n }\n\n /**\n * @private\n * @param {ioBroker.EmptyCallback} cb\n */\n expandAllSelected(cb) {\n const expanded = [...this.state.expanded];\n let changed = false;\n this.state.selected.forEach(id => {\n const parts = id.split('.');\n const path = [];\n for (let i = 0; i < parts.length - 1; i++) {\n path.push(parts[i]);\n if (!expanded.includes(path.join('.'))) {\n expanded.push(path.join('.'));\n changed = true;\n }\n }\n });\n if (changed) {\n expanded.sort();\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectExpanded`, JSON.stringify(expanded));\n this.setState({ expanded }, cb);\n } else {\n cb && cb();\n }\n }\n\n /**\n * @private\n * @param {boolean} [isDouble]\n */\n onAfterSelect(isDouble) {\n this.lastSelectedItems = [...this.state.selected];\n if (this.state.selected && this.state.selected.length) {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectSelected`, JSON.stringify(this.lastSelectedItems));\n\n const name = this.lastSelectedItems.length === 1 ? Utils.getObjectName(this.objects, this.lastSelectedItems[0], null, { language: this.state.lang }) : '';\n this.props.onSelect && this.props.onSelect(this.lastSelectedItems, name, isDouble);\n } else {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectSelected`, '');\n if (this.state.selected.length) {\n this.setState({ selected: [] }, () => this.props.onSelect && this.props.onSelect([], ''));\n } else {\n this.props.onSelect && this.props.onSelect([], '');\n }\n }\n }\n\n /**\n * @private\n * @param {import('./types').ObjectBrowserProps} props\n * @param {any} state\n */\n static getDerivedStateFromProps(props, state) {\n const newState = {};\n let changed = false;\n if (props.expertMode !== undefined && props.expertMode !== state.filter.expertMode) {\n changed = true;\n newState.filter = { ...state.filter };\n newState.filter.expertMode = props.expertMode;\n }\n return changed ? newState : null;\n }\n\n /**\n * Called when component is mounted.\n */\n componentDidMount() {\n this.loadAllObjects(!objectsAlreadyLoaded)\n .then(() => {\n if (this.props.objectsWorker) {\n this.props.objectsWorker.registerHandler(this.onObjectChange);\n } else {\n this.props.socket.subscribeObject('*', this.onObjectChange);\n }\n\n objectsAlreadyLoaded = true;\n });\n }\n\n /**\n * Called when component is unmounted.\n */\n componentWillUnmount() {\n this.filterTimer && clearTimeout(this.filterTimer);\n this.filterTimer = null;\n\n if (this.props.objectsWorker) {\n this.props.objectsWorker.unregisterHandler(this.onObjectChange, true);\n } else {\n this.props.socket.unsubscribeObject('*', this.onObjectChange);\n }\n\n // remove all subscribes\n this.subscribes.forEach(pattern => {\n console.log(`- unsubscribe ${pattern}`);\n this.props.socket.unsubscribeState(pattern, this.onStateChange);\n });\n\n this.subscribes = [];\n this.objects = {};\n }\n\n /**\n * Called when component is mounted.\n */\n refreshComponent() {\n // remove all subscribes\n this.subscribes.forEach(pattern => {\n console.log(`- unsubscribe ${pattern}`);\n this.props.socket.unsubscribeState(pattern, this.onStateChange);\n });\n\n this.subscribes = [];\n\n this.loadAllObjects(true)\n .then(() => console.log('updated!'));\n }\n\n /**\n * Renders the error dialog.\n * @returns {JSX.Element | null}\n */\n renderErrorDialog() {\n return this.state.error ? <Dialog\n open={!0}\n maxWidth=\"sm\"\n fullWidth\n onClose={() => this.setState({ error: '' })}\n aria-labelledby=\"error-dialog-title\"\n aria-describedby=\"error-dialog-description\"\n >\n <DialogTitle id=\"alert-dialog-title\">{this.props.title || this.props.t('ra_Error')}</DialogTitle>\n <DialogContent>\n <DialogContentText id=\"alert-dialog-description\">\n {this.state.error}\n </DialogContentText>\n </DialogContent>\n <DialogActions>\n <Button\n variant=\"contained\"\n onClick={() => this.setState({ error: '' })}\n color=\"primary\"\n autoFocus\n startIcon={<IconCheck />}\n >\n {this.props.t('ra_Ok')}\n </Button>\n </DialogActions>\n </Dialog> : null;\n }\n\n /**\n * Show the error dialog.\n * @param {any} error\n */\n showError(error) {\n this.setState({ error: typeof error === 'object' ? (error && typeof error.toString === 'function' ? error.toString() : JSON.stringify(error)) : error });\n }\n\n /**\n * Called when an item is selected/deselected.\n * @param {string} toggleItem\n * @param {boolean} [isDouble]\n */\n onSelect(toggleItem, isDouble) {\n if (!this.props.multiSelect) {\n if (this.objects[toggleItem] && (!this.props.types || this.props.types.includes(this.objects[toggleItem].type))) {\n (window._localStorage || window.localStorage).removeItem(`${this.props.dialogName || 'App'}.selectedNonObject`);\n if (this.state.selected[0] !== toggleItem) {\n this.setState({ selected: [toggleItem], selectedNonObject: '' }, () =>\n this.onAfterSelect(isDouble));\n } else if (isDouble && this.props.onSelect) {\n this.onAfterSelect(isDouble);\n }\n } else {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.selectedNonObject`, toggleItem);\n this.setState({ selected: [], selectedNonObject: toggleItem }, () =>\n this.onAfterSelect());\n }\n } else if (this.objects[toggleItem] && (!this.props.types || this.props.types.includes(this.objects[toggleItem].type))) {\n (window._localStorage || window.localStorage).removeItem(`${this.props.dialogName || 'App'}.selectedNonObject`);\n\n const selected = [...this.state.selected];\n const pos = selected.indexOf(toggleItem);\n if (pos === -1) {\n selected.push(toggleItem);\n selected.sort();\n } else if (!isDouble) {\n selected.splice(pos, 1);\n }\n\n this.setState({ selected, selectedNonObject: '' }, () =>\n this.onAfterSelect(isDouble));\n }\n }\n\n /**\n * @private\n * @param {boolean} isLast\n */\n /*\n _renderDefinedList(isLast) {\n const cols = [...this.possibleCols];\n cols.unshift('id');\n if (this.props.columns && !this.props.columns.includes('buttons')) {\n const pos = cols.indexOf('buttons');\n if (pos !== -1) {\n cols.splice(pos, 1);\n }\n }\n return cols\n .filter(id => (isLast && (id === 'val' || id === 'buttons')) || (!isLast && id !== 'val' && id !== 'buttons'))\n .map(id =>\n <ListItemButton onClick={() => {\n if (!this.state.columnsAuto && id !== 'id') {\n const columns = [...(this.state.columns || [])];\n const pos = columns.indexOf(id);\n if (pos === -1) {\n columns.push(id);\n columns.sort();\n } else {\n columns.splice(pos, 1);\n }\n (window._localStorage || window.localStorage).setItem((this.props.dialogName || 'App') + '.columns', JSON.stringify(columns));\n this.calculateColumnsVisibility(null, columns);\n this.setState({ columns });\n }\n }} key={id}>\n <Checkbox\n edge=\"start\"\n disabled={id === 'id' || this.state.columnsAuto}\n checked={id === 'id' || (this.state.columnsAuto ? this.visibleCols.includes(id) : (this.state.columns && this.state.columns.includes(id)))}\n disableRipple\n />\n <ListItemText primary={this.texts['filter_' + id] || this.props.t('ra_' + id)} />\n <ListItemSecondaryAction>\n <FormControl\n variant=\"standard\"\n className={this.props.classes.columnsDialogInputWidth}\n style={{ marginTop: 0, marginBottom: 0 }}\n margin=\"dense\"\n >\n <Input\n classes={{ underline: 'no-underline' }}\n placeholder={this.props.t('ra_Width')}\n value={this.state.columnsWidths[id] || ''}\n onChange={e => {\n const columnsWidths = JSON.parse(JSON.stringify(this.state.columnsWidths));\n columnsWidths[id] = e.target.value;\n (window._localStorage || window.localStorage).setItem((this.props.dialogName || 'App') + '.columnsWidths', JSON.stringify(columnsWidths));\n this.calculateColumnsVisibility(null, null, null, columnsWidths);\n this.setState({ columnsWidths });\n }}\n autoComplete=\"off\"\n />\n </FormControl>\n </ListItemSecondaryAction>\n </ListItemButton>\n );\n }\n */\n\n /**\n * Renders the columns selector.\n * @returns {JSX.Element | null}\n */\n renderColumnsSelectorDialog() {\n if (!this.state.columnsSelectorShow) {\n return null;\n }\n return <Dialog\n onClose={() => this.setState({ columnsSelectorShow: false })}\n open={!0}\n classes={{ root: Utils.clsx(this.props.classes.dialogColumns, this.props.classes[`transparent_${this.state.columnsDialogTransparent}`]) }}\n >\n <DialogTitle className={this.props.classes.fontSizeTitle}>{this.props.t('ra_Configure')}</DialogTitle>\n <DialogContent className={this.props.classes.fontSizeTitle}>\n {\n /*\n <FormControlLabel\n className={this.props.classes.switchColumnAuto}\n control={<Switch checked={this.state.columnsAuto} onChange={() => {\n (window._localStorage || window.localStorage).setItem((this.props.dialogName || 'App') + '.columnsAuto', this.state.columnsAuto ? 'false' : 'true');\n if (!this.state.columnsAuto) {\n this.calculateColumnsVisibility(true);\n this.setState({ columnsAuto: true });\n } else {\n if (!this.state.columns) {\n this.calculateColumnsVisibility(false, [...this.visibleCols]);\n this.setState({ columnsAuto: false, columns: [...this.visibleCols] });\n } else {\n this.calculateColumnsVisibility(false);\n this.setState({ columnsAuto: false });\n }\n }\n }} />}\n label={this.props.t('ra_Auto (no custom columns)')}\n /> */\n }\n <FormControlLabel\n className={this.props.classes.switchColumnAuto}\n control={<Switch\n checked={this.state.foldersFirst}\n onChange={() => {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.foldersFirst`, this.state.foldersFirst ? 'false' : 'true');\n this.setState({ foldersFirst: !this.state.foldersFirst });\n }}\n />}\n label={this.props.t('ra_Folders always first')}\n />\n <FormControlLabel\n className={this.props.classes.switchColumnAuto}\n control={<Switch\n checked={this.state.linesEnabled}\n onChange={() => {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.lines`, this.state.linesEnabled ? 'false' : 'true');\n this.setState({ linesEnabled: !this.state.linesEnabled });\n }}\n />}\n label={this.props.t('ra_Show lines between rows')}\n />\n {\n /*\n <Typography classes={{ root: this.props.classes.dialogColumnsLabel }}>{this.props.t('ra_Transparent dialog')}</Typography>\n <Slider classes={{ root: this.props.classes.width100 }} value={this.state.columnsDialogTransparent} min={20} max={100} step={10} onChange={(event, newValue) =>\n this.setState({ columnsDialogTransparent: newValue })\n } />\n <List>\n {this._renderDefinedList(false)}\n\n {this.state.columnsForAdmin && Object.keys(this.state.columnsForAdmin).sort().map(adapter =>\n this.state.columnsForAdmin[adapter].map(column =>\n <ListItemButton onClick={() => {\n if (!this.state.columnsAuto) {\n const columns = [...(this.state.columns || [])];\n const id = '_' + adapter + '_' + column.path;\n const pos = columns.indexOf(id);\n if (pos === -1) {\n columns.push(id);\n columns.sort();\n } else {\n columns.splice(pos, 1);\n }\n this.calculateColumnsVisibility(null, columns);\n (window._localStorage || window.localStorage).setItem((this.props.dialogName || 'App') + '.columns', JSON.stringify(columns));\n this.setState({ columns });\n }\n }} key={adapter + '_' + column.name}>\n <ListItemIcon>\n <Checkbox\n disabled={this.state.columnsAuto}\n edge=\"start\"\n checked={!this.state.columnsAuto && this.state.columns && this.state.columns.includes('_' + adapter + '_' + column.path)}\n disableRipple\n />\n </ListItemIcon>\n <ListItemText primary={column.name + ' (' + adapter + ')'} />\n <ListItemSecondaryAction>\n <FormControl\n variant=\"standard\"\n className={this.props.classes.columnsDialogInputWidth}\n style={{ marginTop: 0, marginBottom: 0 }}\n margin=\"dense\"\n >\n <Input\n classes={{ underline: 'no-underline' }}\n placeholder={this.props.t('ra_Width')}\n value={this.state.columnsWidths['_' + adapter + '_' + column.path] || ''}\n onChange={e => {\n const columnsWidths = JSON.parse(JSON.stringify(this.state.columnsWidths));\n columnsWidths['_' + adapter + '_' + column.path] = e.target.value;\n (window._localStorage || window.localStorage).setItem((this.props.dialogName || 'App') + '.columnsWidths', JSON.stringify(columnsWidths));\n this.calculateColumnsVisibility(null, null, null, columnsWidths);\n this.setState({ columnsWidths });\n }}\n autoComplete=\"off\"\n />\n </FormControl>\n </ListItemSecondaryAction>\n </ListItemButton>\n )\n )}\n {this._renderDefinedList(true)}\n </List>\n */}\n </DialogContent>\n <DialogActions>\n <Button\n variant=\"contained\"\n onClick={() => this.setState({ columnsSelectorShow: false })}\n color=\"primary\"\n startIcon={<IconClose />}\n >\n {this.texts.close}\n </Button>\n </DialogActions>\n </Dialog>;\n }\n\n /**\n * @private\n */\n getAdditionalColumns() {\n return this.props.socket.getAdapters()\n .then(instances => {\n let columnsForAdmin = null;\n // find all additional columns\n instances.forEach(obj =>\n columnsForAdmin = this.parseObjectForAdmins(columnsForAdmin, obj));\n\n return columnsForAdmin;\n })\n .catch(() => {\n // window.alert('Cannot get adapters: ' + e);\n // Object browser in Web has no additional columns\n });\n }\n\n /**\n * @private\n */\n checkUnsubscribes() {\n // Remove unused subscriptions\n for (let i = this.subscribes.length - 1; i >= 0; i--) {\n !this.recordStates.includes(this.subscribes[i]) && this.unsubscribe(this.subscribes[i]);\n }\n this.recordStates = [];\n }\n\n /**\n * Find an item.\n * @param {string} id\n * @param {string[] | undefined} [_parts]\n * @param {{ data: { name: string; id: string; }; children: never[]; } | null | undefined} [_root]\n * @param {string | undefined} [_partyId]\n * @returns {any}\n */\n findItem(id, _parts, _root, _partyId) {\n _parts = _parts || id.split('.');\n _root = _root || this.root;\n if (!_root || !_parts.length) {\n return null;\n }\n\n _partyId = (_partyId ? `${_partyId}.` : '') + _parts.shift();\n\n if (_root.children) {\n const item = _root.children.find(i => i.data.id === _partyId);\n if (item) {\n if (item.data.id === id) {\n return item;\n }\n if (_parts.length) {\n return this.findItem(id, _parts, item, _partyId);\n }\n } else {\n return null;\n }\n }\n\n return null;\n }\n\n /**\n * Called when a state changes.\n * @param {string} id\n * @param {ioBroker.State} state\n */\n onStateChange = (id, state) => {\n console.log(`> stateChange ${id}`);\n if (this.states[id]) {\n const item = this.findItem(id);\n if (item && item.data.state) {\n item.data.state = null;\n }\n }\n this.states[id] = state;\n\n if (!this.pausedSubscribes) {\n if (!this.statesUpdateTimer) {\n this.statesUpdateTimer = setTimeout(() => {\n this.statesUpdateTimer = null;\n this.forceUpdate();\n }, 300);\n }\n } else if (this.statesUpdateTimer) {\n clearTimeout(this.statesUpdateTimer);\n this.statesUpdateTimer = null;\n }\n };\n\n /**\n * @private\n * @param {{ [x: string]: any; }} columnsForAdmin\n * @param {any} obj\n */\n parseObjectForAdmins(columnsForAdmin, obj) {\n if (obj.common && obj.common.adminColumns && obj.common.name) {\n let columns = obj.common.adminColumns;\n if (typeof columns !== 'object') {\n columns = [columns];\n }\n columns = columns.map(item => {\n if (typeof item !== 'object') {\n return { path: item, name: item.split('.').pop() };\n }\n\n // string => array\n if (item.objTypes && typeof item.objTypes !== 'object') {\n item.objTypes = [item.objTypes];\n } else if (!item.objTypes) {\n item.objTypes = null;\n }\n\n if (!item.name && item.path) {\n return {\n path: item.path,\n name: item.path.split('.').pop(),\n width: item.width,\n edit: !!item.edit,\n type: item.type,\n objTypes: item.objTypes,\n };\n }\n if (typeof item.name !== 'object' && item.path) {\n return {\n path: item.path,\n name: item.name,\n width: item.width,\n edit: !!item.edit,\n type: item.type,\n objTypes: item.objTypes,\n };\n }\n if (!item.path) {\n console.warn(`Admin columns for ${obj._id} ignored, because path not found`);\n return null;\n }\n return {\n path: item.path,\n name: item.name[this.props.lang] || item.name.en,\n width: item.width,\n edit: !!item.edit,\n type: item.type,\n objTypes: item.objTypes,\n };\n }).filter(item => item);\n\n if (columns && columns.length) {\n columnsForAdmin = columnsForAdmin || {};\n columnsForAdmin[obj.common.name] = columns.sort((a, b) => (a.path > b.path ? -1 : (a.path < b.path ? 1 : 0)));\n }\n } else if (obj.common && obj.common.name && columnsForAdmin && columnsForAdmin[obj.common.name]) {\n delete columnsForAdmin[obj.common.name];\n }\n return columnsForAdmin;\n }\n\n /**\n * @param {string} id\n * @param {ioBroker.Object} obj\n */\n onObjectChange = (id, obj/* , oldObj */) => {\n let newState;\n\n if (Array.isArray(id)) {\n id.forEach(event => {\n console.log(`> objectChange ${event.id}`);\n\n if (event.obj && typeof this.props.filterFunc === 'function' && !this.props.filterFunc(event.obj)) {\n return;\n }\n\n if (event.id.startsWith('system.adapter.') && event.obj && event.obj.type === 'adapter') {\n const columnsForAdmin = JSON.parse(JSON.stringify(this.state.columnsForAdmin));\n\n this.parseObjectForAdmins(columnsForAdmin, event.obj);\n\n if (JSON.stringify(this.state.columnsForAdmin) !== JSON.stringify(columnsForAdmin)) {\n newState = { columnsForAdmin };\n }\n }\n this.objects = this.objects || [];\n if (this.objects[event.id]) {\n if (event.obj) {\n this.objects[event.id] = event.obj;\n } else {\n delete this.objects[event.id];\n }\n }\n });\n } else {\n console.log(`> objectChange ${id}`);\n this.objects = this.objects || [];\n\n if (obj && typeof this.props.filterFunc === 'function' && !this.props.filterFunc(obj)) {\n return;\n }\n\n if (id.startsWith('system.adapter.') && obj && obj.type === 'adapter') {\n const columnsForAdmin = JSON.parse(JSON.stringify(this.state.columnsForAdmin));\n this.parseObjectForAdmins(columnsForAdmin, obj);\n if (JSON.stringify(this.state.columnsForAdmin) !== JSON.stringify(columnsForAdmin)) {\n newState = { columnsForAdmin };\n }\n }\n\n if (this.objects[id]) {\n if (obj) {\n this.objects[id] = obj;\n } else {\n delete this.objects[id];\n }\n }\n }\n\n newState && this.setState(newState);\n\n if (!this.objectsUpdateTimer && this.objects) {\n this.objectsUpdateTimer = setTimeout(() => {\n this.objectsUpdateTimer = null;\n const { info, root } = buildTree(this.objects, this.props);\n this.root = root;\n this.info = info;\n this.lastAppliedFilter = null; // apply filter anew\n\n if (!this.pausedSubscribes) {\n this.forceUpdate();\n }\n // else it will be re-rendered when dialog will be closed\n }, 500);\n }\n };\n\n /**\n * @private\n * @param {string} id\n */\n subscribe(id) {\n if (!this.subscribes.includes(id)) {\n this.subscribes.push(id);\n console.log(`+ subscribe ${id}`);\n !this.pausedSubscribes && this.props.socket.subscribeState(id, this.onStateChange);\n }\n }\n\n /**\n * @private\n * @param {string} id\n */\n unsubscribe(id) {\n const pos = this.subscribes.indexOf(id);\n if (pos !== -1) {\n this.subscribes.splice(pos, 1);\n if (this.states[id]) {\n delete this.states[id];\n }\n console.log(`- unsubscribe ${id}`);\n this.props.socket.unsubscribeState(id, this.onStateChange);\n\n if (this.pausedSubscribes) {\n console.warn('Unsubscribe during pause?');\n }\n }\n }\n\n /**\n * @private\n * @param {boolean} isPause\n */\n pauseSubscribe(isPause) {\n if (!this.pausedSubscribes && isPause) {\n this.pausedSubscribes = true;\n this.subscribes.forEach(id => this.props.socket.unsubscribeState(id, this.onStateChange));\n } else if (this.pausedSubscribes && !isPause) {\n this.pausedSubscribes = false;\n this.subscribes.forEach(id => this.props.socket.subscribeState(id, this.onStateChange));\n }\n }\n\n /**\n * @private\n * @param {string} [name]\n * @param {boolean} [value]\n */\n onFilter(name, value) {\n this.filterTimer = null;\n const filter = { ...this.state.filter };\n\n Object.keys(this.filterRefs).forEach(_name => {\n if (this.filterRefs[_name] && this.filterRefs[_name].current) {\n for (let i = 0; i < this.filterRefs[_name].current.children.length; i++) {\n if (this.filterRefs[_name].current.children[i].tagName === 'INPUT') {\n filter[_name] = this.filterRefs[_name].current.children[i].value;\n break;\n }\n }\n }\n });\n\n if (name) {\n filter[name] = value;\n if (name === 'expertMode') {\n (window._sessionStorage || window.sessionStorage).setItem('App.expertMode', value ? 'true' : 'false');\n }\n }\n\n if (JSON.stringify(this.state.filter) !== JSON.stringify(filter)) {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectFilter`, JSON.stringify(filter));\n this.setState({ filter }, () =>\n this.props.onFilterChanged && this.props.onFilterChanged(filter));\n }\n }\n\n clearFilter() {\n const filter = { ...this.state.filter };\n\n Object.keys(this.filterRefs).forEach(name => {\n if (this.filterRefs[name] && this.filterRefs[name].current) {\n for (let i = 0; i < this.filterRefs[name].current.childNodes.length; i++) {\n const item = this.filterRefs[name].current.childNodes[i];\n if (item.tagName === 'INPUT') {\n filter[name] = '';\n item.value = '';\n break;\n }\n }\n }\n });\n\n if (JSON.stringify(this.state.filter) !== JSON.stringify(filter)) {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectFilter`, JSON.stringify(filter));\n this.setState({ filter, filterKey: this.state.filterKey + 1 }, () =>\n this.props.onFilterChanged && this.props.onFilterChanged(filter));\n }\n }\n\n isFilterEmpty() {\n const someNotEmpty = Object.keys(this.state.filter).find(attr =>\n attr !== 'expertMode' && this.state.filter[attr]);\n return !someNotEmpty;\n }\n\n /**\n * @private\n * @param {string} name\n */\n getFilterInput(name) {\n return <FormControl\n className={Utils.clsx(this.props.classes.headerCellInput, this.props.classes.filterInput)}\n key={`${name}_${this.state.filterKey}`}\n // style={{ marginTop: 0, marginBottom: 0 }}\n margin=\"dense\"\n >\n <Input\n ref={this.filterRefs[name]}\n classes={{ underline: 'no-underline' }}\n id={name}\n placeholder={this.texts[`filter_${name}`]}\n defaultValue={this.state.filter[name]}\n onChange={() => {\n this.filterTimer && clearTimeout(this.filterTimer);\n this.filterTimer = setTimeout(() => this.onFilter(), 400);\n }}\n autoComplete=\"off\"\n />\n {this.filterRefs[name]?.current?.firstChild.value ?\n <div\n style={{\n position: 'absolute',\n right: 0,\n }}\n >\n <IconButton\n size=\"small\"\n onClick={() => {\n this.filterRefs[name].current.firstChild.value = '';\n this.onFilter(name, '');\n }}\n >\n <IconClose />\n </IconButton>\n </div> : null}\n </FormControl>;\n }\n\n /**\n * @private\n * @param {string} name\n * @param {any[]} values\n */\n getFilterSelect(name, values) {\n const hasIcons = !!values.find(item => item.icon);\n return <div style={{ position: 'relative' }}>\n <Select\n variant=\"standard\"\n key={`${name}_${this.state.filterKey}`}\n ref={this.filterRefs[name]}\n className={`${this.props.classes.headerCellInput} no-underline`}\n onChange={() => {\n this.filterTimer && clearTimeout(this.filterTimer);\n this.filterTimer = setTimeout(() => this.onFilter(), 400);\n }}\n defaultValue={this.state.filter[name] || ''}\n inputProps={{ name, id: name }}\n displayEmpty\n >\n <MenuItem key=\"empty\" value=\"\">\n <span className={this.props.classes.selectNone}>{this.texts[`filter_${name}`]}</span>\n </MenuItem>\n {values.map(item => {\n let id;\n let _name;\n let icon;\n if (typeof item === 'object') {\n id = item.value;\n _name = item.name;\n icon = item.icon;\n } else {\n id = item;\n _name = item;\n }\n return <MenuItem className={this.props.classes.headerCellSelectItem} key={id} value={id}>\n {icon || (hasIcons ? <div className=\"itemIcon\" /> : null)}\n {_name}\n </MenuItem>;\n })}\n </Select>\n {this.filterRefs[name]?.current?.childNodes[1]?.value ?\n <div className={Utils.clsx(this.props.classes.selectClearButton)}>\n <IconButton\n size=\"small\"\n onClick={() => {\n const newFilter = { ...this.state.filter };\n newFilter[name] = '';\n this.filterRefs[name].current.childNodes[1].value = '';\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectFilter`, JSON.stringify(newFilter));\n this.setState({ filter: newFilter, filterKey: this.state.filterKey + 1 }, () =>\n this.props.onFilterChanged && this.props.onFilterChanged(newFilter));\n }}\n >\n <IconClose />\n </IconButton>\n </div> : null}\n </div>;\n }\n\n /**\n * @private\n */\n getFilterSelectRole() {\n return this.getFilterSelect('role', this.info.roles);\n }\n\n /**\n * @private\n */\n getFilterSelectRoom() {\n const rooms = this.info.roomEnums.map(id => ({\n name: getName(this.objects[id]?.common?.name || id.split('.').pop()),\n value: id,\n icon: <Icon src={this.objects[id]?.common?.icon || ''} className={this.props.classes.selectIcon} />,\n }));\n\n return this.getFilterSelect('room', rooms);\n }\n\n /**\n * @private\n */\n getFilterSelectFunction() {\n const func = this.info.funcEnums.map(id => ({\n name: getName((this.objects[id] && this.objects[id].common && this.objects[id].common.name) || id.split('.').pop()),\n value: id,\n icon: <Icon src={this.objects[id]?.common?.icon || ''} className={this.props.classes.selectIcon} />,\n }));\n\n return this.getFilterSelect('func', func);\n }\n\n /**\n * @private\n */\n getFilterSelectType() {\n const types = this.info.types.map(type => ({\n name: type,\n value: type,\n icon: ITEM_IMAGES[type],\n }));\n\n return this.getFilterSelect('type', types);\n }\n\n /**\n * @private\n */\n getFilterSelectCustoms() {\n if (this.info.customs.length) {\n const customs = this.info.customs.map(id => ({\n name: id,\n value: id,\n icon: <Icon src={getSelectIdIcon(this.objects, id, this.imagePrefix) || ''} className={this.props.classes.selectIcon} />,\n }));\n return this.getFilterSelect('custom', customs);\n }\n return null;\n }\n\n /**\n * @private\n * @param {any} [root]\n * @param {any[]} [expanded]\n */\n onExpandAll(root, expanded) {\n root = root || this.root;\n expanded = expanded || [];\n\n root.children && root.children.forEach(item => {\n if (item.data.sumVisibility) {\n expanded.push(item.data.id);\n this.onExpandAll(item, expanded);\n }\n });\n\n if (root === this.root) {\n expanded.sort();\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectExpanded`, JSON.stringify(expanded));\n\n this.setState({ expanded });\n }\n }\n\n /**\n * @private\n */\n onCollapseAll() {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectExpanded`, JSON.stringify([]));\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectSelected`, '[]');\n this.setState({ expanded: [], depth: 0, selected: [] }, () =>\n this.onAfterSelect());\n }\n\n /**\n * @private\n * @param {any} root\n * @param {number} depth\n * @param {any[]} expanded\n */\n expandDepth(root, depth, expanded) {\n root = root || this.root;\n if (depth > 0) {\n if (root.children) {\n root.children.forEach(item => {\n if (item.data.sumVisibility) {\n if (!binarySearch(expanded, item.data.id)) {\n expanded.push(item.data.id);\n expanded.sort();\n }\n if (depth - 1 > 0) {\n this.expandDepth(item, depth - 1, expanded);\n }\n }\n });\n }\n }\n }\n\n /**\n * @private\n * @param {number} depth\n * @param {any[]} expanded\n */\n static collapseDepth(depth, expanded) {\n return expanded.filter(id => id.split('.').length <= depth);\n }\n\n /**\n * @private\n */\n onExpandVisible() {\n if (this.state.depth < 9) {\n const depth = this.state.depth + 1;\n const expanded = [...this.state.expanded];\n this.expandDepth(this.root, depth, expanded);\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectExpanded`, JSON.stringify(expanded));\n this.setState({ depth, expanded });\n }\n }\n\n /**\n * @private\n */\n onStatesViewVisible() {\n const statesView = !this.state.statesView;\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectStatesView`, JSON.stringify(statesView));\n this.setState({ statesView });\n }\n\n /**\n * @private\n */\n onCollapseVisible() {\n if (this.state.depth > 0) {\n const depth = this.state.depth - 1;\n const expanded = ObjectBrowser.collapseDepth(depth, this.state.expanded);\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectExpanded`, JSON.stringify(expanded));\n this.setState({ depth, expanded });\n }\n }\n\n /**\n * @private\n * @param {string} id\n */\n getEnumsForId = id => {\n const result = [];\n this.info.enums.forEach(_id => {\n if (this.objects[_id]?.common?.members?.includes(id)) {\n const en = {\n _id: this.objects[_id]._id,\n common: JSON.parse(JSON.stringify(this.objects[_id].common)),\n native: this.objects[_id].native,\n type: 'enum',\n };\n if (en.common) {\n delete en.common.members;\n delete en.common.custom;\n delete en.common.mobile;\n }\n result.push(en);\n }\n });\n\n return result.length ? result : undefined;\n };\n\n /**\n * @private\n * @param {array} enums\n * @param {string} objId\n */\n _createAllEnums = async (enums, objId) => {\n for (let e = 0; e < enums.length; e++) {\n let id = enums[e];\n let _enObj;\n if (typeof id === 'object') {\n _enObj = id;\n id = id._id;\n }\n let enObj = this.objects[id];\n if (!enObj) {\n enObj = _enObj || {\n _id: id,\n common: {\n name: id.split('.').pop(),\n members: [],\n },\n native: {},\n };\n\n enObj.common = enObj.common || {};\n enObj.common.members = [objId];\n\n await this.props.socket.setObject(id, enObj);\n } else if (!enObj.common?.members?.includes(objId)) {\n enObj.common = enObj.common || {};\n enObj.common.members = enObj.common.members || [];\n // add missing object\n enObj.common.members.push(objId);\n enObj.common.members.sort();\n await this.props.socket.setObject(id, enObj);\n }\n }\n };\n\n /**\n * @private\n * @param {any} objs\n */\n loadObjects = async objs => {\n if (objs) {\n for (const id in objs) {\n if (!Object.hasOwn(objs, id) || !objs[id]) {\n continue;\n }\n const obj = objs[id];\n let enums = null;\n if (obj && obj.common && obj.common.enums) {\n enums = obj.common.enums;\n delete obj.common.enums;\n } else {\n enums = null;\n }\n try {\n await this.props.socket.setObject(id, obj);\n enums && (await this._createAllEnums(enums, obj._id));\n if (obj.type === 'state') {\n try {\n const state = await this.props.socket.getState(obj._id);\n if (!state || state.val === null) {\n try {\n await this.props.socket.setState(obj._id, !obj.common || obj.common.def === undefined ? null : obj.common.def, true);\n } catch (e) {\n window.alert(`Cannot set state \"${obj._id}\": ${e}`);\n }\n }\n } catch (e) {\n window.alert(`Cannot read state \"${obj._id}\": ${e}`);\n }\n }\n } catch (error) {\n window.alert(error);\n }\n }\n }\n };\n\n _getSelectedIdsForExport() {\n if (this.state.selected.length || this.state.selectedNonObject) {\n const result = [];\n const keys = Object.keys(this.objects);\n keys.sort();\n const id = this.state.selected[0] || this.state.selectedNonObject;\n const idDot = `${id}.`;\n const idLen = idDot.length;\n for (let k = 0; k < keys.length; k++) {\n const key = keys[k];\n if (id === key || key.startsWith(idDot)) {\n result.push(key);\n }\n if (key.substring(0, idLen) > idDot) {\n break;\n }\n }\n\n return result;\n }\n return [];\n }\n\n _exportObjects(isAll) {\n if (isAll) {\n generateFile('allObjects.json', this.objects);\n } else\n if (this.state.selected.length || this.state.selectedNonObject) {\n const result = {};\n const id = this.state.selected[0] || this.state.selectedNonObject;\n\n this._getSelectedIdsForExport().forEach(key => {\n result[key] = JSON.parse(JSON.stringify(this.objects[key]));\n // add enum information\n if (result[key].common) {\n const enums = this.getEnumsForId(key);\n if (enums) {\n result[key].common.enums = enums;\n }\n }\n });\n\n generateFile(`${id}.json`, result);\n } else {\n window.alert(this.props.t('ra_Save of objects-tree is not possible'));\n }\n }\n\n renderExportDialog() {\n if (this.state.showExportDialog === false) {\n return null;\n }\n return <Dialog open={!0}>\n <DialogTitle>{this.props.t('Select type of export')}</DialogTitle>\n <DialogContent>\n <DialogContentText>\n {this.props.t('You can export all objects or just the selected branch.')}\n <br />\n {this.props.t('Selected %s object(s)', this.state.showExportDialog)}\n </DialogContentText>\n </DialogContent>\n <DialogActions>\n <Button color=\"grey\" variant=\"outlined\" onClick={() => this.setState({ showExportDialog: false }, () => this._exportObjects(true))}>{this.props.t('ra_All objects')} ({Object.keys(this.objects).length})</Button>\n <Button color=\"primary\" variant=\"contained\" autoFocus onClick={() => this.setState({ showExportDialog: false }, () => this._exportObjects(false))}>{this.props.t('ra_Only selected')} ({this.state.showExportDialog})</Button>\n <Button color=\"grey\" variant=\"contained\" onClick={() => this.setState({ showExportDialog: false })} startIcon={<IconClose />}>{this.props.t('ra_Cancel')}</Button>\n </DialogActions>\n </Dialog>;\n }\n\n /**\n * @private\n * @param {object} evt\n */\n handleJsonUpload = evt => {\n const f = evt.target.files[0];\n if (f) {\n const r = new FileReader();\n r.onload = async e => {\n const contents = e.target.result;\n try {\n const json = JSON.parse(contents);\n const len = Object.keys(json).length;\n const id = json._id;\n if (id === undefined && len) {\n await this.loadObjects(json);\n window.alert(this.props.t('ra_%s object(s) processed', len));\n } else {\n // it is only one object in form\n // {\n // \"_id\": \"xxx\",\n // \"common\": \"yyy\",\n // \"native\": \"zzz\"\n // }\n if (!id) {\n return window.alert(this.props.t('ra_Invalid structure'));\n }\n try {\n let enums;\n if (json.common.enums) {\n enums = json.common.enums;\n delete json.common.enums;\n }\n await this.props.socket.setObject(json._id, json);\n if (json.type === 'state') {\n const state = await this.props.socket.getState(json._id);\n if (!state || state.val === null || state.val === undefined) {\n await this.props.socket.getState(json._id, json.common.def === undefined ? null : json.common.def, true);\n }\n }\n if (enums) {\n await this._createAllEnums(enums, json._id);\n }\n\n window.alert(this.props.t('ra_%s was imported', json._id));\n } catch (err) {\n window.alert(err);\n }\n }\n } catch (err) {\n window.alert(err);\n }\n return null;\n };\n r.readAsText(f);\n } else {\n window.alert(this.props.t('ra_Failed to open JSON File'));\n }\n };\n\n toolTipObjectCreating = () => {\n const { t } = this.props;\n\n let value = [\n <div key={1}>{t('ra_Only following structures of objects are available:')}</div>,\n <div key={2}>{t('ra_Folder → State')}</div>,\n <div key={3}>{t('ra_Folder → Channel → State')}</div>,\n <div key={4}>{t('ra_Folder → Device → Channel → State')}</div>,\n <div key={5}>{t('ra_Device → Channel → State')}</div>,\n <div key={6}>{t('ra_Channel → State')}</div>,\n <div key={7} style={{ height: 10 }} />,\n <div key={8}>{t('ra_Non-experts may create new objects only in \"0_userdata.0\" or \"alias.0\".')}</div>,\n <div key={9}>{t('ra_The experts may create objects everywhere but from second level (e.g. \"vis.0\" or \"javascript.0\").')}</div>,\n ];\n\n if (this.state.selected.length || this.state.selectedNonObject) {\n const id = this.state.selected[0] || this.state.selectedNonObject;\n if (id.split('.').length < 2 || (this.objects[id] && this.objects[id]?.type === 'state')) {\n // show default tooltip\n } else if (this.state.filter.expertMode) {\n switch (this.objects[id]?.type) {\n case 'device':\n value = [\n <div key={1}>{t('ra_Only following structures of objects are available:')}</div>,\n <div key={5}>{t('ra_Device → Channel → State')}</div>,\n <div key={7} style={{ height: 10 }} />,\n <div key={8}>{t('ra_Non-experts may create new objects only in \"0_userdata.0\" or \"alias.0\".')}</div>,\n <div key={9}>{t('ra_The experts may create objects everywhere but from second level (e.g. \"vis.0\" or \"javascript.0\").')}</div>,\n ];\n break;\n case 'folder':\n value = [\n <div key={1}>{t('ra_Only following structures of objects are available:')}</div>,\n <div key={2}>{t('ra_Folder → State')}</div>,\n <div key={3}>{t('ra_Folder → Channel → State')}</div>,\n <div key={4}>{t('ra_Folder → Device → Channel → State')}</div>,\n <div key={7} style={{ height: 10 }} />,\n <div key={8}>{t('ra_Non-experts may create new objects only in \"0_userdata.0\" or \"alias.0\".')}</div>,\n <div key={9}>{t('ra_The experts may create objects everywhere but from second level (e.g. \"vis.0\" or \"javascript.0\").')}</div>,\n ];\n break;\n case 'channel':\n value = [\n <div key={1}>{t('ra_Only following structures of objects are available:')}</div>,\n <div key={1}>{t('ra_Channel → State')}</div>,\n <div key={7} style={{ height: 10 }} />,\n <div key={8}>{t('ra_Non-experts may create new objects only in \"0_userdata.0\" or \"alias.0\".')}</div>,\n <div key={9}>{t('ra_The experts may create objects everywhere but from second level (e.g. \"vis.0\" or \"javascript.0\").')}</div>,\n ];\n break;\n default:\n break;\n }\n } else if (id.startsWith('alias.0') || id.startsWith('0_userdata')) {\n value = [\n <div key={1}>{t('ra_Only following structures of objects are available:')}</div>,\n <div key={2}>{t('ra_Folder → State')}</div>,\n <div key={3}>{t('ra_Folder → Channel → State')}</div>,\n <div key={4}>{t('ra_Folder → Device → Channel → State')}</div>,\n <div key={5}>{t('ra_Device → Channel → State')}</div>,\n <div key={6}>{t('ra_Channel → State')}</div>,\n <div key={7} style={{ height: 10 }} />,\n <div key={7}>{t('ra_Non-experts may create new objects only in \"0_userdata.0\" or \"alias.0\".')}</div>,\n <div key={8}>{t('ra_The experts may create objects everywhere but from second level (e.g. \"vis.0\" or \"javascript.0\").')}</div>,\n ];\n }\n }\n\n return value.length ? value : t('ra_Add new child object to selected parent');\n };\n\n /**\n * Renders the toolbar.\n * @returns {JSX.Element}\n */\n getToolbar() {\n let allowObjectCreation = false;\n if (this.state.selected.length || this.state.selectedNonObject) {\n const id = this.state.selected[0] || this.state.selectedNonObject;\n\n if (id.split('.').length < 2 || (this.objects[id] && this.objects[id].type === 'state')) {\n allowObjectCreation = false;\n } else if (this.state.filter.expertMode) {\n allowObjectCreation = true;\n } else if (id.startsWith('alias.0') || id.startsWith('0_userdata')) {\n allowObjectCreation = true;\n }\n }\n\n return <div style={{\n display: 'flex',\n width: '100%',\n alignItems: 'center',\n }}\n >\n <div style={{\n display: 'flex',\n width: '100%',\n alignItems: 'center',\n }}\n >\n\n <Tooltip title={this.props.t('ra_Refresh tree')}>\n <div>\n <IconButton\n onClick={() => this.refreshComponent()}\n disabled={this.state.updating}\n size=\"large\"\n >\n <RefreshIcon />\n </IconButton>\n </div>\n </Tooltip>\n {this.props.showExpertButton && !this.props.expertMode &&\n <Tooltip title={this.props.t('ra_expertMode')}>\n <IconButton\n key=\"expertMode\"\n color={this.state.filter.expertMode ? 'secondary' : 'default'}\n onClick={() => this.onFilter('expertMode', !this.state.filter.expertMode)}\n size=\"large\"\n >\n <IconExpert />\n </IconButton>\n </Tooltip>}\n {!this.props.disableColumnSelector &&\n <Tooltip title={this.props.t('ra_Configure')}>\n <IconButton\n key=\"columnSelector\"\n // color={this.state.columnsAuto ? 'primary' : 'default'}\n onClick={() => this.setState({ columnsSelectorShow: true })}\n size=\"large\"\n >\n <IconColumns />\n </IconButton>\n </Tooltip>}\n {this.state.expandAllVisible &&\n <Tooltip title={this.props.t('ra_Expand all nodes')}>\n <IconButton\n key=\"expandAll\"\n onClick={() => this.onExpandAll()}\n size=\"large\"\n >\n <IconOpen />\n </IconButton>\n </Tooltip>}\n <Tooltip title={this.props.t('ra_Collapse all nodes')}>\n <IconButton\n key=\"collapseAll\"\n onClick={() => this.onCollapseAll()}\n size=\"large\"\n >\n <IconClosed />\n </IconButton>\n </Tooltip>\n <Tooltip title={this.props.t('ra_Expand one step node')}>\n <IconButton\n key=\"expandVisible\"\n color=\"primary\"\n onClick={() => this.onExpandVisible()}\n size=\"large\"\n >\n <StyledBadge badgeContent={this.state.depth} color=\"secondary\">\n <IconOpen />\n </StyledBadge>\n </IconButton>\n </Tooltip>\n <Tooltip title={this.props.t('ra_Collapse one step node')}>\n <IconButton\n key=\"collapseVisible\"\n color=\"primary\"\n onClick={() => this.onCollapseVisible()}\n size=\"large\"\n >\n <StyledBadge badgeContent={this.state.depth} color=\"secondary\">\n <IconClosed />\n </StyledBadge>\n </IconButton>\n </Tooltip>\n {this.props.objectStatesView && <Tooltip title={this.props.t('ra_Toggle the states view')}>\n <IconButton\n onClick={() => this.onStatesViewVisible()}\n size=\"large\"\n >\n <LooksOneIcon color={this.state.statesView ? 'primary' : 'inherit'} />\n </IconButton>\n </Tooltip>}\n\n {this.props.objectAddBoolean ?\n <Tooltip title={this.toolTipObjectCreating()}>\n <div>\n <IconButton\n disabled={!allowObjectCreation}\n onClick={() => this.setState({ modalNewObj: true })}\n size=\"large\"\n >\n <AddIcon />\n </IconButton>\n </div>\n </Tooltip>\n : null}\n\n {this.props.objectImportExport &&\n <Tooltip title={this.props.t('ra_Add objects tree from JSON file')}>\n <IconButton\n onClick={() => {\n const input = document.createElement('input');\n input.setAttribute('type', 'file');\n input.setAttribute('id', 'files');\n input.setAttribute('opacity', 0);\n input.addEventListener('change', e => this.handleJsonUpload(e), false);\n input.click();\n }}\n size=\"large\"\n >\n <PublishIcon />\n </IconButton>\n </Tooltip>}\n {this.props.objectImportExport && (!!this.state.selected.length || this.state.selectedNonObject) &&\n <Tooltip title={this.props.t('ra_Save objects tree as JSON file')}>\n <IconButton\n onClick={() => this.setState({ showExportDialog: this._getSelectedIdsForExport().length })}\n size=\"large\"\n >\n <PublishIcon style={{ transform: 'rotate(180deg)' }} />\n </IconButton>\n </Tooltip>}\n </div>\n {!!this.props.objectBrowserEditObject && <div style={{ display: 'flex', whiteSpace: 'nowrap' }}>\n {`${this.props.t('ra_Objects')}: ${Object.keys(this.info.objects).length}, ${this.props.t('ra_States')}: ${Object.keys(this.info.objects).filter(el => this.info.objects[el].type === 'state').length}`}\n </div>}\n {this.props.objectEditBoolean &&\n <Tooltip title={this.props.t('ra_Edit custom config')}>\n <IconButton\n onClick={() => {\n // get all visible states\n const ids = getVisibleItems(this.root, 'state', this.objects);\n\n if (ids.length) {\n this.pauseSubscribe(true);\n\n if (ids.length === 1) {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectSelected`, this.state.selected[0]);\n this.props.router && this.props.router.doNavigate(null, 'custom', this.state.selected[0]);\n }\n this.setState({ customDialog: ids });\n } else {\n this.setState({ toast: this.props.t('ra_please select object') });\n }\n }}\n size=\"large\"\n >\n <BuildIcon />\n </IconButton>\n </Tooltip>}\n </div>;\n }\n\n /**\n * @private\n * @param {string} id\n */\n toggleExpanded(id) {\n const expanded = JSON.parse(JSON.stringify(this.state.expanded));\n const pos = expanded.indexOf(id);\n if (pos === -1) {\n expanded.push(id);\n expanded.sort();\n } else {\n expanded.splice(pos, 1);\n }\n\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectExpanded`, JSON.stringify(expanded));\n\n this.setState({ expanded });\n }\n\n /**\n * @private\n * @param {Event} e\n * @param {string} text\n */\n onCopy(e, text) {\n e.stopPropagation();\n e.preventDefault();\n Utils.copyToClipboard(text, null);\n if (text.length < 50) {\n this.setState({ toast: this.props.t('ra_Copied %s', text) });\n } else {\n this.setState({ toast: this.props.t('ra_Copied') });\n }\n }\n\n renderTooltipAccessControl = acl => {\n // acl ={object,state,owner,ownerGroup}\n if (!acl) {\n return null;\n }\n const check = [\n {\n value: '0x400', valueNum: 0x400, title: 'read', group: 'Owner',\n },\n {\n value: '0x200', valueNum: 0x200, title: 'write', group: 'Owner',\n },\n {\n value: '0x40', valueNum: 0x40, title: 'read', group: 'Group',\n },\n {\n value: '0x20', valueNum: 0x20, title: 'write', group: 'Group',\n },\n {\n value: '0x4', valueNum: 0x4, title: 'read', group: 'Everyone',\n },\n {\n value: '0x2', valueNum: 0x2, title: 'write', group: 'Everyone',\n },\n ];\n const arrayTooltipText = [];\n const funcRenderStateObject = (value = 'object') => {\n const rights = acl[value];\n check.forEach((el, i) => {\n // eslint-disable-next-line no-bitwise\n if (rights & el.valueNum) {\n arrayTooltipText.push(<span key={value + i}>\n {this.texts[`acl${el.group}_${el.title}_${value}`]}\n,\n <span className={value === 'object' ? this.props.classes.rightsObject : this.props.classes.rightsState}>\n {el.value}\n </span>\n </span>);\n }\n });\n };\n arrayTooltipText.push(<span key=\"group\">{`${this.texts.ownerGroup}: ${(acl.ownerGroup || '').replace('system.group.', '')}`}</span>);\n arrayTooltipText.push(<span key=\"owner\">{`${this.texts.ownerUser}: ${(acl.owner || '').replace('system.user.', '')}`}</span>);\n funcRenderStateObject();\n if (acl.state) {\n funcRenderStateObject('state');\n }\n return arrayTooltipText.length ? <span className={this.props.classes.tooltipAccessControl}>{arrayTooltipText.map(el => el)}</span> : '';\n };\n\n /**\n * @param {string} id\n * @param {{ data: { obj: { type: string; }; hasCustoms: any; }; }} item\n * @param {{ cellButtonsButton: string | undefined; cellButtonsButtonAlone: any; cellButtonsButtonIcon: string | undefined; cellButtonsButtonWithCustoms: any; }} classes\n */\n renderColumnButtons(id, item, classes) {\n if (!item.data.obj) {\n return this.props.onObjectDelete || this.props.objectEditOfAccessControl ? <div className={classes.buttonDiv}>\n {this.state.filter.expertMode && this.props.objectEditOfAccessControl ? <IconButton\n className={Utils.clsx(classes.cellButtonsButton, classes.cellButtonsEmptyButton, classes.cellButtonMinWidth)}\n onClick={() =>\n this.setState({ modalEditOfAccess: true, modalEditOfAccessObjData: item.data })}\n size=\"large\"\n >\n---\n </IconButton> : null}\n {this.props.onObjectDelete && item.children && item.children.length ? <IconButton\n className={Utils.clsx(classes.cellButtonsButton, classes.cellButtonsButtonAlone)}\n size=\"small\"\n aria-label=\"delete\"\n title={this.texts.deleteObject}\n onClick={() => {\n // calculate number of children\n const keys = Object.keys(this.objects);\n keys.sort();\n let count = 0;\n const start = `${id}.`;\n for (let i = 0; i < keys.length; i++) {\n if (keys[i].startsWith(start)) {\n count++;\n } else if (keys[i] > start) {\n break;\n }\n }\n\n this.props.onObjectDelete(id, !!(item.children && item.children.length), false, count + 1);\n }}\n >\n <IconDelete className={classes.cellButtonsButtonIcon} />\n </IconButton> : null}\n </div> : null;\n }\n\n item.data.aclTooltip = item.data.aclTooltip || this.renderTooltipAccessControl(item.data.obj.acl);\n\n const acl = item.data.obj.acl ? (item.data.obj.type === 'state' ? item.data.obj.acl.state : item.data.obj.acl.object) : 0;\n const aclSystemConfig = item.data.obj.acl && (item.data.obj.type === 'state' ? this.systemConfig.common.defaultNewAcl.state : this.systemConfig.common.defaultNewAcl.object);\n\n return [\n this.state.filter.expertMode && this.props.objectEditOfAccessControl ? <Tooltip key=\"acl\" title={item.data.aclTooltip}>\n <IconButton\n className={classes.cellButtonMinWidth}\n onClick={() => this.setState({ modalEditOfAccess: true, modalEditOfAccessObjData: item.data })}\n size=\"large\"\n >\n <div className={classes.aclText}>{Number.isNaN(Number(acl).toString(16)) ? Number(aclSystemConfig).toString(16) : Number(acl).toString(16)}</div>\n </IconButton>\n </Tooltip> : <div key=\"aclEmpty\" className={classes.cellButtonMinWidth} />,\n <IconButton\n key=\"edit\"\n className={classes.cellButtonsButton}\n size=\"small\"\n aria-label=\"edit\"\n title={this.texts.editObject}\n onClick={() => {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectSelected`, id);\n this.setState({ editObjectDialog: id });\n }}\n >\n <IconEdit className={classes.cellButtonsButtonIcon} />\n </IconButton>,\n this.props.onObjectDelete && (item.children?.length || !item.data.obj.common?.dontDelete) ? <IconButton\n key=\"delete\"\n className={classes.cellButtonsButton}\n size=\"small\"\n aria-label=\"delete\"\n onClick={() => {\n const keys = Object.keys(this.objects);\n keys.sort();\n let count = 0;\n const start = `${id}.`;\n for (let i = 0; i < keys.length; i++) {\n if (keys[i].startsWith(start)) {\n count++;\n } else if (keys[i] > start) {\n break;\n }\n }\n this.props.onObjectDelete(id, !!item.children?.length, !item.data.obj.common?.dontDelete, count);\n }}\n title={this.texts.deleteObject}\n >\n <IconDelete className={classes.cellButtonsButtonIcon} />\n </IconButton> : null,\n this.props.objectCustomDialog && this.info.hasSomeCustoms && item.data.obj.type === 'state' && item.data.obj.common?.type !== 'file' ? <IconButton\n className={Utils.clsx(classes.cellButtonsButton, item.data.hasCustoms ? classes.cellButtonsButtonWithCustoms : classes.cellButtonsButtonWithoutCustoms)}\n key=\"custom\"\n size=\"small\"\n aria-label=\"config\"\n title={this.texts.customConfig}\n onClick={() => {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectSelected`, id);\n\n this.pauseSubscribe(true);\n this.props.router && this.props.router.doNavigate(null, 'customs', id);\n this.setState({ customDialog: [id] });\n }}\n >\n <IconConfig className={classes.cellButtonsButtonIcon} />\n </IconButton> : null,\n ];\n }\n\n /**\n * @private\n * @param {string} id\n */\n readHistory(id) {\n /* interface GetHistoryOptions {\n instance?: string;\n start?: number;\n end?: number;\n step?: number;\n count?: number;\n from?: boolean;\n ack?: boolean;\n q?: boolean;\n addID?: boolean;\n limit?: number;\n ignoreNull?: boolean;\n sessionId?: any;\n aggregate?: 'minmax' | 'min' | 'max' | 'average' | 'total' | 'count' | 'none';\n } */\n if (window.sparkline &&\n this.defaultHistory &&\n this.objects[id] &&\n this.objects[id].common &&\n this.objects[id].common.custom &&\n this.objects[id].common.custom[this.defaultHistory]) {\n\n const now = new Date();\n now.setHours(now.getHours() - 24);\n now.setMinutes(0);\n now.setSeconds(0);\n now.setMilliseconds(0);\n const nowMs = now.getTime();\n\n this.props.socket.getHistory(id, {\n instance: this.defaultHistory,\n start: nowMs,\n end: Date.now(),\n step: 3600000,\n from: false,\n ack: false,\n q: false,\n addID: false,\n aggregate: 'minmax',\n })\n .then(values => {\n const sparks = window.document.getElementsByClassName('sparkline');\n\n for (let s = 0; s < sparks.length; s++) {\n if (sparks[s].dataset.id === id) {\n const v = prepareSparkData(values, nowMs);\n\n window.sparkline.sparkline(sparks[s], v);\n break;\n }\n }\n })\n .catch(e => console.warn(`Cannot read history: ${e}`));\n }\n }\n\n /**\n * @private\n * @param {string} id\n * @param {any} item\n * @param {Record<string, any>} classes\n * @returns {JSX.Element | null}\n */\n renderColumnValue(id, item, classes) {\n const obj = item.data.obj;\n if (!obj || !this.states) {\n return null;\n }\n\n if (obj.common?.type === 'file') {\n return <div className={Utils.clsx(classes.cellValueText, classes.cellValueFile)}>[file]</div>;\n }\n if (!this.states[id]) {\n if (obj.type === 'state') {\n !this.recordStates.includes(id) && this.recordStates.push(id);\n this.states[id] = { val: null };\n this.subscribe(id);\n }\n return null;\n }\n !this.recordStates.includes(id) && this.recordStates.push(id);\n\n const state = this.states[id];\n let info = item.data.state;\n if (!info) {\n item.data.state = item.data.state || formatValue(id, state, obj, this.texts, this.props.dateFormat, this.props.isFloatComma);\n info = item.data.state;\n\n info.valFull = info.valFull.map(_item => {\n if (_item.t === this.texts.quality && state.q) {\n return [\n <div className={classes.cellValueTooltipBoth} key={_item.t}>\n {_item.t}\n :&nbsp;\n {_item.v}\n </div>,\n // <div className={classes.cellValueTooltipValue} key={item.t + '_v'}>{item.v}</div>,\n !_item.nbr ? <br key={`${_item.t}_br`} /> : null,\n ];\n }\n return [\n <div className={classes.cellValueTooltipTitle} key={_item.t}>\n {_item.t}\n :&nbsp;\n </div>,\n <div className={classes.cellValueTooltipValue} key={`${_item.t}_v`}>{_item.v}</div>,\n !_item.nbr ? <br key={`${_item.t}_br`} /> : null,\n ];\n });\n\n if (this.defaultHistory && this.objects[id] && this.objects[id].common && this.objects[id].common.custom && this.objects[id].common.custom[this.defaultHistory]) {\n info.valFull.push(<svg key=\"sparkline\" className=\"sparkline\" data-id={id} style={{ fill: '#3d85de' }} width=\"200\" height=\"30\" strokeWidth=\"3\" />);\n }\n\n const copyText = info.valText.v || '';\n info.val = copyText;\n info.valText = [\n <span className={classes.newValue} key={`${info.valText.v.toString()}valText`}>{info.valText.v.toString()}</span>,\n info.valText.u ? <span className={Utils.clsx(classes.cellValueTextUnit, classes.newValue)} key={`${info.valText.v.toString()}unit`}>{info.valText.u}</span> : null,\n info.valText.s !== undefined ? <span className={Utils.clsx(classes.cellValueTextState, classes.newValue)} key={`${info.valText.v.toString()}states`}>\n (\n {info.valText.s}\n )\n </span> : null,\n <IconCopy className={Utils.clsx(classes.cellButtonsValueButton, 'copyButton', classes.cellButtonsValueButtonCopy)} onClick={e => this.onCopy(e, copyText)} key=\"cc\" />,\n // <IconEdit className={ Utils.clsx(classes.cellButtonsValueButton, 'copyButton', classes.cellButtonsValueButtonEdit) } key=\"ce\" />\n ];\n }\n\n let val = info.valText;\n if (!this.state.filter.expertMode && item.data.button) {\n val = <PressButtonIcon className={Utils.clsx(this.props.classes.cellValueButton, !this.states[id] || !this.states[id].val ? this.props.classes.cellValueButtonFalse : '')} />;\n }\n\n return <Tooltip\n key=\"value\"\n title={info.valFull}\n classes={{ tooltip: this.props.classes.cellValueTooltip, popper: this.props.classes.cellValueTooltipBox }}\n onOpen={() => this.readHistory(id)}\n >\n <div style={info.style} className={classes.cellValueText}>\n {val}\n </div>\n </Tooltip>;\n }\n\n /**\n * @private\n * @returns {undefined}\n */\n _syncEnum(id, enumIds, newArray, cb) {\n if (!enumIds || !enumIds.length) {\n cb && cb();\n return;\n }\n const enumId = enumIds.pop();\n const promises = [];\n if (this.info.objects[enumId]?.common) {\n if (this.info.objects[enumId].common.members?.length) {\n const pos = this.info.objects[enumId].common.members.indexOf(id);\n if (pos !== -1 && !newArray.includes(enumId)) {\n // delete from members\n const obj = JSON.parse(JSON.stringify(this.info.objects[enumId]));\n obj.common.members.splice(pos, 1);\n promises.push(this.props.socket.setObject(enumId, obj)\n .then(() => this.info.objects[enumId] = obj)\n .catch(e => this.showError(e)));\n }\n }\n\n // add to it\n if (newArray.includes(enumId) && !this.info.objects[enumId].common.members?.includes(id)) {\n // add to object\n const obj = JSON.parse(JSON.stringify(this.info.objects[enumId]));\n obj.common.members = obj.common.members || [];\n obj.common.members.push(id);\n obj.common.members.sort();\n promises.push(this.props.socket.setObject(enumId, obj)\n .then(() => this.info.objects[enumId] = obj)\n .catch(e => this.showError(e)));\n }\n }\n\n Promise.all(promises)\n .then(() => setTimeout(() =>\n this._syncEnum(id, enumIds, newArray, cb), 0));\n }\n\n /**\n * @private\n * @returns {Promise}\n */\n syncEnum(id, enumName, newArray) {\n const toCheck = [...this.info[enumName === 'func' ? 'funcEnums' : 'roomEnums']];\n\n return new Promise(resolve => {\n this._syncEnum(id, toCheck, newArray, error => {\n error && this.showError(error);\n // force update of object\n resolve();\n });\n });\n }\n\n /**\n * @private\n * @returns {JSX.Element | null}\n */\n renderEnumDialog() {\n if (this.state.enumDialog) {\n const type = this.state.enumDialog.type;\n const item = this.state.enumDialog.item;\n const itemEnums = this.state.enumDialogEnums;\n const enumsOriginal = this.state.enumDialog.enumsOriginal;\n\n const enums = (type === 'room' ? this.info.roomEnums : this.info.funcEnums).map(id => ({\n name: getName((this.objects[id] && this.objects[id].common && this.objects[id].common.name) || id.split('.').pop(), this.props.lang),\n value: id,\n icon: getSelectIdIcon(this.objects, id, this.imagePrefix),\n }))\n .sort((a, b) => a.name > b.name ? 1 : -1);\n\n enums.forEach(_item => {\n if (_item.icon && typeof _item.icon === 'string') {\n _item.icon = <div className={this.props.classes.enumIconDiv}>\n <img src={_item.icon} className={this.props.classes.enumIcon} alt={_item.name} />\n </div>;\n }\n });\n\n // const hasIcons = !!enums.find(item => item.icon);\n\n return <Dialog\n className={this.props.classes.enumDialog}\n onClose={() => this.setState({ enumDialog: null })}\n aria-labelledby=\"enum-dialog-title\"\n open={!0} // true\n >\n <DialogTitle id=\"enum-dialog-title\">\n {type === 'func' ? this.props.t('ra_Define functions') : this.props.t('ra_Define rooms')}\n <Fab\n className={this.props.classes.enumButton}\n color=\"primary\"\n disabled={JSON.stringify(enumsOriginal) === JSON.stringify(itemEnums)}\n size=\"small\"\n onClick={() =>\n this.syncEnum(item.data.id, type, itemEnums)\n .then(() => this.setState({ enumDialog: null, enumDialogEnums: null }))}\n >\n <IconCheck />\n </Fab>\n </DialogTitle>\n <List classes={{ root: this.props.classes.enumList }}>\n {\n enums.map(_item => {\n let id;\n let name;\n let icon;\n\n if (typeof _item === 'object') {\n id = _item.value;\n name = _item.name;\n icon = _item.icon;\n } else {\n id = _item;\n name = _item;\n }\n const labelId = `checkbox-list-label-${id}`;\n\n return <ListItem\n className={this.props.classes.headerCellSelectItem}\n key={id}\n onClick={() => {\n const pos = itemEnums.indexOf(id);\n const enumDialogEnums = JSON.parse(JSON.stringify(this.state.enumDialogEnums));\n if (pos === -1) {\n enumDialogEnums.push(id);\n enumDialogEnums.sort();\n } else {\n enumDialogEnums.splice(pos, 1);\n }\n this.setState({ enumDialogEnums });\n }}\n >\n <ListItemIcon classes={{ root: this.props.classes.enumCheckbox }}>\n <Checkbox\n edge=\"start\"\n checked={itemEnums.includes(id)}\n tabIndex={-1}\n disableRipple\n inputProps={{ 'aria-labelledby': labelId }}\n />\n </ListItemIcon>\n <ListItemText id={labelId}>{name}</ListItemText>\n {icon ? <ListItemSecondaryAction>{icon}</ListItemSecondaryAction> : null}\n </ListItem>;\n })\n }\n </List>\n </Dialog>;\n }\n return null;\n }\n\n /**\n * @private\n * @returns {JSX.Element | null}\n */\n renderEditRoleDialog() {\n if (this.state.roleDialog && this.props.objectBrowserEditRole) {\n const ObjectBrowserEditRole = this.props.objectBrowserEditRole;\n return <ObjectBrowserEditRole\n key=\"objectBrowserEditRole\"\n id={this.state.roleDialog}\n socket={this.props.socket}\n t={this.props.t}\n roles={this.info.roles}\n onClose={obj => {\n if (obj) {\n this.info.objects[this.state.roleDialog] = obj;\n }\n this.setState({ roleDialog: false });\n }}\n />;\n }\n return null;\n }\n\n /**\n * @private\n * @param {boolean} [isSave]\n */\n onColumnsEditCustomDialogClose(isSave) {\n if (isSave) {\n let value = this.customColumnDialog.value;\n if (this.customColumnDialog.type === 'boolean') {\n value = value === 'true' || value === true;\n } else if (this.customColumnDialog.type === 'number') {\n value = parseFloat(value);\n }\n this.customColumnDialog = null;\n this.props.socket.getObject(this.state.columnsEditCustomDialog.obj._id)\n .then(obj => {\n if (ObjectBrowser.setCustomValue(obj, this.state.columnsEditCustomDialog.it, value)) {\n return this.props.socket.setObject(obj._id, obj);\n }\n throw new Error(this.props.t('ra_Cannot update attribute, because not found in the object'));\n })\n .then(() => this.setState({ columnsEditCustomDialog: null }))\n .catch(e => this.showError(e));\n } else {\n this.customColumnDialog = null;\n this.setState({ columnsEditCustomDialog: null });\n }\n }\n\n /**\n * @private\n */\n renderColumnsEditCustomDialog() {\n if (this.state.columnsEditCustomDialog) {\n if (!this.customColumnDialog) {\n const value = ObjectBrowser.getCustomValue(this.state.columnsEditCustomDialog.obj, this.state.columnsEditCustomDialog.it);\n this.customColumnDialog = {\n type: this.state.columnsEditCustomDialog.it.type || typeof value,\n initValue: (value === null || value === undefined ? '' : value).toString(),\n value: (value === null || value === undefined ? '' : value).toString(),\n };\n }\n\n return <Dialog\n onClose={() => this.setState({ columnsEditCustomDialog: null })}\n maxWidth=\"md\"\n aria-labelledby=\"custom-dialog-title\"\n open={!0}\n >\n <DialogTitle id=\"custom-dialog-title\">{`${this.props.t('ra_Edit object field')}: ${this.state.columnsEditCustomDialog.obj._id}`}</DialogTitle>\n <DialogContent>\n <DialogContentText id=\"alert-dialog-description\">\n {this.customColumnDialog.type === 'boolean' ?\n <FormControlLabel\n control={<Checkbox\n onKeyUp={e => e.keyCode === 13 && this.onColumnsEditCustomDialogClose(true)}\n defaultChecked={this.customColumnDialog.value === 'true'}\n onChange={e => {\n this.customColumnDialog.value = e.target.checked.toString();\n const changed = this.customColumnDialog.value !== this.customColumnDialog.initValue;\n if (changed === !this.state.customColumnDialogValueChanged) {\n this.setState({ customColumnDialogValueChanged: changed });\n }\n }}\n />}\n label={`${this.state.columnsEditCustomDialog.it.name} (${this.state.columnsEditCustomDialog.it.pathText})`}\n />\n :\n <TextField\n variant=\"standard\"\n defaultValue={this.customColumnDialog.value}\n fullWidth\n onKeyUp={e => e.keyCode === 13 && this.onColumnsEditCustomDialogClose(true)}\n label={`${this.state.columnsEditCustomDialog.it.name} (${this.state.columnsEditCustomDialog.it.pathText})`}\n onChange={e => {\n this.customColumnDialog.value = e.target.value;\n const changed = this.customColumnDialog.value !== this.customColumnDialog.initValue;\n if (changed === !this.state.customColumnDialogValueChanged) {\n this.setState({ customColumnDialogValueChanged: changed });\n }\n }}\n autoFocus\n />}\n </DialogContentText>\n </DialogContent>\n <DialogActions>\n <Button\n variant=\"contained\"\n onClick={() => this.onColumnsEditCustomDialogClose(true)}\n disabled={!this.state.customColumnDialogValueChanged}\n color=\"primary\"\n startIcon={<IconCheck />}\n >\n {this.props.t('ra_Update')}\n </Button>\n <Button\n color=\"grey\"\n variant=\"contained\"\n onClick={() => this.onColumnsEditCustomDialogClose()}\n startIcon={<IconClose />}\n >\n {this.props.t('ra_Cancel')}\n </Button>\n </DialogActions>\n </Dialog>;\n }\n return null;\n }\n\n /**\n * @private\n * @param {any} obj\n * @param {any} it\n */\n static getCustomValue(obj, it) {\n if (obj && obj._id && obj._id.startsWith(`${it.adapter}.`) && it.path.length > 1) {\n const p = it.path;\n let value;\n if (obj[p[0]] && typeof obj[p[0]] === 'object') {\n if (p.length === 2) { // most common case\n value = obj[p[0]][p[1]];\n } else if (p.length === 3) {\n value = obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' ? obj[p[0]][p[1]][p[2]] : null;\n } else if (p.length === 4) {\n value = obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]] ? obj[p[0]][p[1]][p[2]][p[3]] : null;\n } else if (p.length === 5) {\n value = obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]] && obj[p[0]][p[1]][p[2]][p[3]] ? obj[p[0]][p[1]][p[2]][p[3]][p[4]] : null;\n } else if (p.length === 6) {\n value = obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]] && obj[p[0]][p[1]][p[2]][p[3]] && obj[p[0]][p[1]][p[2]][p[3]][p[4]] ? obj[p[0]][p[1]][p[2]][p[3]][p[4]][p[5]] : null;\n }\n if (value === undefined || value === null) {\n return null;\n }\n return value;\n }\n }\n\n return null;\n }\n\n /**\n * @private\n * @param {any} obj\n * @param {any} it\n * @param {any} value\n */\n static setCustomValue(obj, it, value) {\n if (obj && obj._id && obj._id.startsWith(`${it.adapter}.`) && it.path.length > 1) {\n const p = it.path;\n if (obj[p[0]] && typeof obj[p[0]] === 'object') {\n if (p.length === 2) { // most common case\n obj[p[0]][p[1]] = value;\n return true;\n }\n if (p.length === 3) {\n if (obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object') {\n obj[p[0]][p[1]][p[2]] = value;\n return true;\n }\n } else if (p.length === 4) {\n if (obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]] && typeof obj[p[0]][p[1]][p[2]] === 'object') {\n obj[p[0]][p[1]][p[2]][p[3]] = value;\n return true;\n }\n } else if (p.length === 5) {\n if (obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]] && typeof obj[p[0]][p[1]][p[2]] === 'object' && obj[p[0]][p[1]][p[2]][p[3]] && typeof obj[p[0]][p[1]][p[2]][p[3]] === 'object') {\n obj[p[0]][p[1]][p[2]][p[3]][p[4]] = value;\n return true;\n }\n } else if (p.length === 6) {\n if (obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]] && typeof obj[p[0]][p[1]][p[2]] === 'object' && obj[p[0]][p[1]][p[2]][p[3]] && typeof obj[p[0]][p[1]][p[2]][p[3]] === 'object' && obj[p[0]][p[1]][p[2]][p[3]][p[4]] && typeof obj[p[0]][p[1]][p[2]][p[3]][p[4]] === 'object') {\n obj[p[0]][p[1]][p[2]][p[3]][p[4]][p[5]] = value;\n return true;\n }\n }\n }\n }\n return false;\n }\n\n /**\n * Renders a custom value.\n * @param {any} obj\n * @param {any} it\n * @param {any} item\n * @returns {JSX.Element | null}\n */\n renderCustomValue(obj, it, item) {\n const text = ObjectBrowser.getCustomValue(obj, it);\n if (text !== null && text !== undefined) {\n if (it.edit && !this.props.notEditable && (!it.objTypes || it.objTypes.includes(obj.type))) {\n return <div\n className={Utils.clsx(this.props.classes.columnCustom, this.props.classes.columnCustomEditable, this.props.classes[`columnCustom_${it.align}`])}\n onClick={() => this.setState({ columnsEditCustomDialog: { item, it, obj }, customColumnDialogValueChanged: false })}\n >\n {text}\n </div>;\n }\n return <div\n className={Utils.clsx(this.props.classes.columnCustom, this.props.classes[`columnCustom_${it.align}`])}\n >\n {text}\n </div>;\n }\n return null;\n }\n\n /**\n * Renders a leaf.\n * @param {any} item\n * @param {boolean} isExpanded\n * @param {Record<string, any>} classes\n * @param {{ count: number; }} counter\n * @returns {JSX.Element}\n */\n renderLeaf(item, isExpanded, classes, counter) {\n const id = item.data.id;\n counter.count++;\n isExpanded = isExpanded === undefined ? this.state.expanded.includes(id) : isExpanded;\n\n // icon\n let iconFolder;\n const obj = item.data.obj;\n const itemType = obj?.type;\n\n if (item.children || itemType === 'folder' || itemType === 'device' || itemType === 'channel' || itemType === 'meta') {\n iconFolder = isExpanded ? <IconOpen\n className={classes.cellIdIconFolder}\n onClick={() => this.toggleExpanded(id)}\n /> : <IconClosed\n className={classes.cellIdIconFolder}\n onClick={() => this.toggleExpanded(id)}\n />;\n } else if (obj.common && (obj.common.write === false) && obj.type === 'state') {\n iconFolder = <IconDocumentReadOnly className={classes.cellIdIconDocument} />;\n } else {\n iconFolder = <IconDocument className={classes.cellIdIconDocument} />;\n }\n\n let iconItem = null;\n if (item.data.icon) {\n if (typeof item.data.icon === 'string') {\n if (item.data.icon.length < 3) {\n iconItem = <span className={Utils.clsx(classes.cellIdIconOwn, 'iconOwn')}>{item.data.icon}</span>; // utf-8 char\n } else {\n iconItem = <img className={Utils.clsx(classes.cellIdIconOwn, 'iconOwn')} src={item.data.icon} alt=\"\" />;\n }\n } else {\n iconItem = item.data.icon;\n }\n }\n\n const common = obj?.common;\n\n const typeImg = (obj && obj.type && ITEM_IMAGES[obj.type]) || <div className=\"itemIcon\" />;\n\n const paddingLeft = this.levelPadding * item.data.level;\n\n if (item.data.lang !== this.state.lang) {\n const { rooms, per } = findRoomsForObject(this.info, id, this.state.lang);\n item.data.rooms = rooms.join(', ');\n item.data.per = per;\n const { funcs, pef } = findFunctionsForObject(this.info, id, this.state.lang);\n item.data.funcs = funcs.join(', ');\n item.data.pef = pef;\n item.data.lang = this.state.lang;\n }\n\n const checkbox =\n this.props.multiSelect &&\n this.objects[id] && (!this.props.types || this.props.types.includes(this.objects[id].type)) ?\n <Checkbox\n className={classes.checkBox}\n checked={this.state.selected.includes(id)}\n /> :\n null;\n\n let valueEditable = !this.props.notEditable && itemType === 'state' && (this.state.filter.expertMode || common?.write !== false);\n if (this.props.objectBrowserViewFile && common?.type === 'file') {\n valueEditable = true;\n }\n const enumEditable = !this.props.notEditable && this.objects[id] && (this.state.filter.expertMode || itemType === 'state' || itemType === 'channel' || itemType === 'device');\n const checkVisibleObjectType = this.state.statesView && (itemType === 'state' || itemType === 'channel' || itemType === 'device');\n let newValue = '';\n const newValueTitle = [];\n if (checkVisibleObjectType) {\n newValue = this.states[id]?.from;\n if (newValue === undefined) {\n newValue = '&nbsp;';\n } else {\n newValue = newValue ? newValue.replace(/^system\\.adapter\\.|^system\\./, '') : '';\n newValueTitle.push(`${this.texts.stateChangedFrom} ${newValue}`);\n }\n if (obj.user) {\n const user = obj.user.replace('system.user.', '');\n newValue += `/${user}`;\n newValueTitle.push(`${this.texts.stateChangedBy} ${user}`);\n }\n }\n if (obj) {\n obj.from && newValueTitle.push(`${this.texts.objectChangedFrom} ${obj.from.replace(/^system\\.adapter\\.|^system\\./, '')}`);\n obj.user && newValueTitle.push(`${this.texts.objectChangedBy} ${obj.user.replace(/^system\\.user\\./, '')}`);\n obj.ts && newValueTitle.push(`${this.texts.objectChangedByUser} ${Utils.formatDate(new Date(obj.ts), this.props.dateFormat)}`);\n }\n\n const readWriteAlias = typeof common?.alias?.id === 'object';\n\n const alias = id.startsWith('alias.') && common?.alias?.id ?\n (readWriteAlias ?\n <div className={classes.cellIdAliasReadWriteDiv}>\n {common.alias.id.read ? <div\n onClick={e => {\n e.stopPropagation();\n e.preventDefault();\n this.onSelect(common.alias.id.read);\n setTimeout(() => {\n this.expandAllSelected(() =>\n this.scrollToItem(common.alias.id.read));\n }, 100);\n }}\n className={Utils.clsx(classes.cellIdAlias, classes.cellIdAliasReadWrite)}\n >\n ←\n {common.alias.id.read}\n </div> : null}\n {common.alias.id.write ? <div\n onClick={e => {\n e.stopPropagation();\n e.preventDefault();\n this.onSelect(common.alias.id.write);\n setTimeout(() => {\n this.expandAllSelected(() =>\n this.scrollToItem(common.alias.id.write));\n }, 100);\n }}\n className={Utils.clsx(classes.cellIdAlias, classes.cellIdAliasReadWrite)}\n >\n →\n {common.alias.id.write}\n </div> : null}\n </div>\n :\n <div\n onClick={e => {\n e.stopPropagation();\n e.preventDefault();\n this.onSelect(common.alias.id);\n setTimeout(() => {\n this.expandAllSelected(() =>\n this.scrollToItem(common.alias.id));\n }, 100);\n }}\n className={Utils.clsx(classes.cellIdAlias, classes.cellIdAliasAlone)}\n >\n →\n {common.alias.id}\n </div>\n ) : null;\n\n let checkColor = common?.color;\n let invertBackground = undefined;\n if (checkColor && !this.state.selected.includes(id)) {\n let background = this.props.themeName === 'dark' ? '#1f1f1f' : (this.props.themeName === 'blue' ? '#222a2e' : '#FFFFFF');\n const distance = Utils.colorDistance(checkColor, background);\n // console.log(`Distance: ${checkColor} - ${background} = ${distance}`);\n if (distance < 1000) {\n invertBackground = this.props.themeType === 'dark' ? '#9a9a9a' : '#565656';\n }\n }\n if (id === 'system') {\n checkColor = COLOR_NAME_SYSTEM;\n } else if (id === 'system.adapter') {\n checkColor = COLOR_NAME_SYSTEM_ADAPTER;\n } else\n if (!checkColor || this.state.selected.includes(id)) {\n checkColor = 'inherit';\n }\n\n const icons = [];\n\n if (common?.statusStates) {\n const ids = {};\n Object.keys(common.statusStates).forEach(name => {\n let _id = common.statusStates[name];\n if (_id.split('.').length < 3) {\n _id = `${id}.${_id}`;\n }\n ids[name] = _id;\n\n if (!this.states[_id]) {\n if (this.objects[_id]?.type === 'state') {\n !this.recordStates.includes(_id) && this.recordStates.push(_id);\n this.states[_id] = { val: null };\n this.subscribe(_id);\n }\n } else {\n !this.recordStates.includes(_id) && this.recordStates.push(_id);\n }\n });\n // calculate color\n // errorId has priority\n let colorSet = false;\n if (common.statusStates.errorId && this.states[ids.errorId] && this.states[ids.errorId].val) {\n checkColor = this.props.themeType === 'dark' ? COLOR_NAME_ERROR_DARK : COLOR_NAME_ERROR_LIGHT;\n colorSet = true;\n icons.push(<IconError key=\"error\" title={this.texts.deviceError} className={this.props.classes.iconDeviceError} />);\n }\n\n if (ids.onlineId && this.states[ids.onlineId] && this.states[ids.onlineId].val !== null) {\n if (!colorSet) {\n if (this.states[ids.onlineId].val) {\n checkColor = this.props.themeType === 'dark' ? COLOR_NAME_CONNECTED_DARK : COLOR_NAME_CONNECTED_LIGHT;\n icons.push(<IconConnection key=\"conn\" title={this.texts.deviceError} className={this.props.classes.iconDeviceConnected} />);\n } else {\n checkColor = this.props.themeType === 'dark' ? COLOR_NAME_DISCONNECTED_DARK : COLOR_NAME_DISCONNECTED_LIGHT;\n icons.push(<IconDisconnected key=\"disc\" title={this.texts.deviceError} className={this.props.classes.iconDeviceDisconnected} />);\n }\n } else if (this.states[ids.onlineId].val) {\n icons.push(<IconConnection key=\"conn\" title={this.texts.deviceError} className={this.props.classes.iconDeviceConnected} />);\n } else {\n icons.push(<IconDisconnected key=\"disc\" title={this.texts.deviceError} className={this.props.classes.iconDeviceDisconnected} />);\n }\n } else\n if (ids.offlineId && this.states[ids.offlineId] && this.states[ids.offlineId].val !== null) {\n if (!colorSet) {\n if (this.states[ids.offlineId].val) {\n checkColor = this.props.themeType === 'dark' ? COLOR_NAME_DISCONNECTED_DARK : COLOR_NAME_DISCONNECTED_LIGHT;\n icons.push(<IconDisconnected key=\"disc\" title={this.texts.deviceError} className={this.props.classes.iconDeviceDisconnected} />);\n } else {\n checkColor = this.props.themeType === 'dark' ? COLOR_NAME_CONNECTED_DARK : COLOR_NAME_CONNECTED_LIGHT;\n icons.push(<IconConnection key=\"conn\" title={this.texts.deviceError} className={this.props.classes.iconDeviceConnected} />);\n }\n } else if (this.states[ids.offlineId].val) {\n icons.push(<IconDisconnected key=\"disc\" title={this.texts.deviceError} className={this.props.classes.iconDeviceDisconnected} />);\n } else {\n icons.push(<IconConnection key=\"conn\" title={this.texts.deviceError} className={this.props.classes.iconDeviceConnected} />);\n }\n }\n }\n\n const q = checkVisibleObjectType ? Utils.quality2text(this.states[id]?.q || 0).join(', ') : null;\n\n return <Grid\n container\n direction=\"row\"\n wrap=\"nowrap\"\n className={Utils.clsx(\n classes.tableRow,\n this.state.linesEnabled && classes.tableRowLines,\n !this.props.dragEnabled && classes.tableRowNoDragging,\n alias && classes.tableRowAlias,\n readWriteAlias && classes.tableRowAliasReadWrite,\n !item.data.visible && classes.filteredOut,\n item.data.hasVisibleParent && !item.data.visible && !item.data.hasVisibleChildren && classes.filteredParentOut,\n this.state.selected.includes(id) && classes.itemSelected,\n this.state.selectedNonObject === id && classes.itemSelected,\n )}\n key={id}\n id={id}\n onClick={() => this.onSelect(id)}\n onDoubleClick={() => {\n if (!item.children) {\n this.onSelect(id, true);\n } else {\n this.toggleExpanded(id);\n }\n }}\n >\n <Grid\n container\n wrap=\"nowrap\"\n direction=\"row\"\n className={classes.cellId}\n style={{ width: this.columnsVisibility.id, paddingLeft }}\n >\n <Grid\n item\n container\n alignItems=\"center\"\n style={{\n // color: checkColor,\n // background: invertBackground,\n }}\n >\n {checkbox}\n {iconFolder}\n </Grid>\n <Grid\n item\n style={{ color: checkColor }}\n className={Utils.clsx(classes.cellIdSpan, invertBackground && classes.invertedBackground)}\n >\n <Tooltip title={getIdFieldTooltip(item.data, this.props.classes, this.props.lang)}><div>{item.data.name}</div></Tooltip>\n {alias}\n {icons}\n </Grid>\n <div className={Utils.clsx(classes.grow, invertBackground && classes.invertedBackgroundFlex)} />\n <Grid\n item\n container\n alignItems=\"center\"\n >\n {iconItem}\n </Grid>\n <div>\n <IconCopy className={Utils.clsx(classes.cellCopyButton, 'copyButton')} onClick={e => this.onCopy(e, id)} />\n </div>\n </Grid>\n\n {this.columnsVisibility.name ? <div className={classes.cellName} style={{ width: this.columnsVisibility.name }}>\n {(item.data?.title) || ''}\n {item.data?.title ? <div style={{ color: checkColor }}>\n <IconCopy className={Utils.clsx(classes.cellCopyButton, 'copyButton')} onClick={e => this.onCopy(e, item.data.title)} />\n </div> : null}\n </div> : null}\n\n {!this.state.statesView ?\n <>\n {this.columnsVisibility.type ? <div className={classes.cellType} style={{ width: this.columnsVisibility.type }}>\n {typeImg}\n &nbsp;\n {obj && obj.type}\n </div> : null}\n {this.columnsVisibility.role ? <div className={classes.cellRole} style={{ width: this.columnsVisibility.role, cursor: this.state.filter.expertMode && enumEditable && this.props.objectBrowserEditRole ? 'text' : 'default' }} onClick={this.state.filter.expertMode && enumEditable && this.props.objectBrowserEditRole ? () => this.setState({ roleDialog: item.data.id }) : undefined}>{common?.role}</div> : null}\n {this.columnsVisibility.room ? <div className={`${classes.cellRoom} ${item.data.per ? classes.cellEnumParent : ''}`} style={{ width: this.columnsVisibility.room, cursor: enumEditable ? 'text' : 'default' }} onClick={enumEditable ? () => { const enums = findEnumsForObjectAsIds(this.info, item.data.id, 'roomEnums'); this.setState({ enumDialogEnums: enums, enumDialog: { item, type: 'room', enumsOriginal: JSON.parse(JSON.stringify(enums)) } }); } : undefined}>{item.data.rooms}</div> : null}\n {this.columnsVisibility.func ? <div className={`${classes.cellFunc} ${item.data.pef ? classes.cellEnumParent : ''}`} style={{ width: this.columnsVisibility.func, cursor: enumEditable ? 'text' : 'default' }} onClick={enumEditable ? () => { const enums = findEnumsForObjectAsIds(this.info, item.data.id, 'funcEnums'); this.setState({ enumDialogEnums: enums, enumDialog: { item, type: 'func', enumsOriginal: JSON.parse(JSON.stringify(enums)) } }); } : undefined}>{item.data.funcs}</div> : null}\n </>\n :\n <>\n {this.columnsVisibility.changedFrom ? <div className={classes.cellRole} style={{ width: this.columnsVisibility.changedFrom }} title={newValueTitle.join('\\n')}>{checkVisibleObjectType && this.states[id]?.from ? newValue : null}</div> : null}\n {this.columnsVisibility.qualityCode ? <div className={classes.cellRole} style={{ width: this.columnsVisibility.qualityCode }} title={q || ''}>{q}</div> : null}\n {this.columnsVisibility.timestamp ? <div className={classes.cellRole} style={{ width: this.columnsVisibility.timestamp }}>{checkVisibleObjectType && this.states[id]?.ts ? Utils.formatDate(new Date(this.states[id].ts), this.props.dateFormat) : null}</div> : null}\n {this.columnsVisibility.lastChange ? <div className={classes.cellRole} style={{ width: this.columnsVisibility.lastChange }}>{checkVisibleObjectType && this.states[id]?.lc ? Utils.formatDate(new Date(this.states[id].lc), this.props.dateFormat) : null}</div> : null}\n </>}\n {this.adapterColumns.map(it => <div className={classes.cellAdapter} style={{ width: this.columnsVisibility[it.id] }} key={it.id} title={`${it.adapter} => ${it.pathText}`}>{this.renderCustomValue(obj, it, item)}</div>)}\n {this.columnsVisibility.val ? <div\n className={classes.cellValue}\n style={{ width: this.columnsVisibility.val, cursor: valueEditable ? (common?.type === 'file' ? 'zoom-in' : (item.data.button ? 'grab' : 'text')) : 'default' }}\n onClick={valueEditable ? () => {\n if (!obj || !this.states) {\n // return;\n } else\n if (common?.type === 'file') {\n this.setState({ viewFileDialog: id });\n } else\n // in non-expert mode control button directly\n if (!this.state.filter.expertMode && item.data.button) {\n this.props.socket.setState(id, true)\n .catch(e => window.alert(`Cannot write state \"${id}\": ${e}`));\n } else {\n this.edit = {\n val: this.states[id] ? this.states[id].val : '',\n q: this.states[id] ? this.states[id].q || 0 : 0,\n ack: false,\n id,\n };\n this.setState({ updateOpened: true });\n }\n } : undefined}\n >\n {this.renderColumnValue(id, item, classes)}\n </div> : null}\n {this.columnsVisibility.buttons ? <div className={classes.cellButtons} style={{ width: this.columnsVisibility.buttons }}>{this.renderColumnButtons(id, item, classes)}</div> : null}\n </Grid>;\n }\n\n /**\n * Renders an item.\n * @param {any} root\n * @param {boolean} isExpanded\n * @param {Record<string, any>} classes\n * @param {{ count: any; }} [counter]\n * @returns {JSX.Element[]}\n */\n renderItem(root, isExpanded, classes, counter) {\n const items = [];\n counter = counter || { count: 0 };\n let leaf = this.renderLeaf(root, isExpanded, classes, counter);\n const DragWrapper = this.props.DragWrapper;\n if (this.props.dragEnabled) {\n if (root.data.sumVisibility) {\n leaf = <DragWrapper key={root.data.id} item={root} className={classes.draggable}>{leaf}</DragWrapper>;\n } else {\n // change cursor\n leaf = <div key={root.data.id} className={classes.nonDraggable}>{leaf}</div>;\n }\n }\n root.data.id && items.push(leaf);\n\n isExpanded = isExpanded === undefined ? binarySearch(this.state.expanded, root.data.id) : isExpanded;\n if (!root.data.id || isExpanded) {\n if (!this.state.foldersFirst) {\n root.children && items.push(root.children.map(item => {\n // do not render too many items in column editor mode\n if (!this.state.columnsSelectorShow || counter.count < 15) {\n if (item.data.sumVisibility) {\n return this.renderItem(item, undefined, classes, counter);\n }\n }\n return null;\n }));\n } else {\n // first only folder\n root.children && items.push(root.children.map(item => {\n if (item.children) {\n // do not render too many items in column editor mode\n if (!this.state.columnsSelectorShow || counter.count < 15) {\n if (item.data.sumVisibility) {\n return this.renderItem(item, undefined, classes, counter);\n }\n }\n }\n\n return null;\n }));\n // then items\n root.children && items.push(root.children.map(item => {\n if (!item.children) {\n // do not render too many items in column editor mode\n if (!this.state.columnsSelectorShow || counter.count < 15) {\n if (item.data.sumVisibility) {\n return this.renderItem(item, undefined, classes, counter);\n }\n }\n }\n return null;\n }));\n }\n }\n\n return items;\n }\n\n /**\n * @private\n * @param {boolean} [columnsAuto]\n * @param {string[]} [columns]\n * @param {any} [columnsForAdmin]\n * @param {Record<string, number>} [columnsWidths]\n */\n calculateColumnsVisibility(columnsAuto, columns, columnsForAdmin, columnsWidths) {\n columnsWidths = columnsWidths || this.state.columnsWidths;\n columnsForAdmin = columnsForAdmin || this.state.columnsForAdmin;\n columns = columns || this.state.columns || [];\n columnsAuto = typeof columnsAuto !== 'boolean' ? this.state.columnsAuto : columnsAuto;\n\n columnsWidths = JSON.parse(JSON.stringify(columnsWidths));\n Object.keys(columnsWidths).forEach(name => {\n if (columnsWidths[name]) {\n columnsWidths[name] = parseInt(columnsWidths[name], 10) || 0;\n }\n });\n\n this.adapterColumns = [];\n const WIDTHS = SCREEN_WIDTHS[this.props.width].widths;\n\n if (columnsAuto) {\n this.columnsVisibility = {\n id: SCREEN_WIDTHS[this.props.width].idWidth,\n name: this.visibleCols.includes('name') ? WIDTHS.name || 0 : 0,\n nameHeader: this.visibleCols.includes('name') ? WIDTHS.name || 0 : 0,\n type: this.visibleCols.includes('type') ? WIDTHS.type || 0 : 0,\n role: this.visibleCols.includes('role') ? WIDTHS.role || 0 : 0,\n room: this.visibleCols.includes('room') ? WIDTHS.room || 0 : 0,\n func: this.visibleCols.includes('func') ? WIDTHS.func || 0 : 0,\n changedFrom: this.visibleCols.includes('changedFrom') ? WIDTHS.changedFrom || 0 : 0,\n qualityCode: this.visibleCols.includes('qualityCode') ? WIDTHS.qualityCode || 0 : 0,\n timestamp: this.visibleCols.includes('timestamp') ? WIDTHS.timestamp || 0 : 0,\n lastChange: this.visibleCols.includes('lastChange') ? WIDTHS.lastChange || 0 : 0,\n val: this.visibleCols.includes('val') ? WIDTHS.val || 0 : 0,\n buttons: this.visibleCols.includes('buttons') ? WIDTHS.buttons || 0 : 0,\n };\n\n if (this.columnsVisibility.name && !this.customWidth) {\n let widthSum = this.columnsVisibility.id; // id is always visible\n if (this.state.statesView) {\n widthSum += this.columnsVisibility.changedFrom;\n widthSum += this.columnsVisibility.qualityCode;\n widthSum += this.columnsVisibility.timestamp;\n widthSum += this.columnsVisibility.lastChange;\n } else {\n widthSum += this.columnsVisibility.type;\n widthSum += this.columnsVisibility.role;\n widthSum += this.columnsVisibility.room;\n widthSum += this.columnsVisibility.func;\n }\n widthSum += this.columnsVisibility.val;\n widthSum += this.columnsVisibility.buttons;\n this.columnsVisibility.name = `calc(100% - ${widthSum + 5}px)`;\n this.columnsVisibility.nameHeader = `calc(100% - ${widthSum + 5 + this.state.scrollBarWidth}px)`;\n } else if (!this.customWidth) {\n // Calculate the with of ID\n let widthSum = 0; // id is always visible\n if (this.state.statesView) {\n widthSum += this.columnsVisibility.changedFrom;\n widthSum += this.columnsVisibility.qualityCode;\n widthSum += this.columnsVisibility.timestamp;\n widthSum += this.columnsVisibility.lastChange;\n } else {\n widthSum += this.columnsVisibility.type;\n widthSum += this.columnsVisibility.role;\n widthSum += this.columnsVisibility.room;\n widthSum += this.columnsVisibility.func;\n }\n widthSum += this.columnsVisibility.val;\n widthSum += this.columnsVisibility.buttons;\n this.columnsVisibility.id = `calc(100% - ${widthSum + 5}px)`;\n }\n } else {\n this.columnsVisibility = {\n id: columnsWidths.id || SCREEN_WIDTHS[this.props.width].idWidth,\n name: columns.includes('name') ? columnsWidths.name || WIDTHS.name || SCREEN_WIDTHS[this.props.width].widths.name || 0 : 0,\n type: columns.includes('type') ? columnsWidths.type || WIDTHS.type || SCREEN_WIDTHS[this.props.width].widths.type || 0 : 0,\n role: columns.includes('role') ? columnsWidths.role || WIDTHS.role || SCREEN_WIDTHS[this.props.width].widths.role || 0 : 0,\n room: columns.includes('room') ? columnsWidths.room || WIDTHS.room || SCREEN_WIDTHS[this.props.width].widths.room || 0 : 0,\n func: columns.includes('func') ? columnsWidths.func || WIDTHS.func || SCREEN_WIDTHS[this.props.width].widths.func || 0 : 0,\n };\n let widthSum = this.columnsVisibility.id; // id is always visible\n if (this.columnsVisibility.name) {\n widthSum += this.columnsVisibility.type;\n widthSum += this.columnsVisibility.role;\n widthSum += this.columnsVisibility.room;\n widthSum += this.columnsVisibility.func;\n }\n\n if (columnsForAdmin && columns) {\n Object.keys(columnsForAdmin).sort().forEach(adapter =>\n columnsForAdmin[adapter].forEach(column => {\n const id = `_${adapter}_${column.path}`;\n this.columnsVisibility[id] = columns.includes(id);\n if (columns.includes(id)) {\n const item = {\n adapter,\n id: `_${adapter}_${column.path}`,\n name: column.name,\n path: column.path.split('.'),\n pathText: column.path,\n };\n if (column.edit) {\n item.edit = true;\n if (column.type) {\n item.type = column.type;\n }\n if (column.objTypes) {\n item.objTypes = column.objTypes;\n }\n }\n\n this.adapterColumns.push(item);\n this.columnsVisibility[id] = columnsWidths[item.id] || column.width || SCREEN_WIDTHS[this.props.width].widths.func || SCREEN_WIDTHS.xl.widths.func;\n widthSum += this.columnsVisibility[id];\n } else {\n this.columnsVisibility[id] = 0;\n }\n }));\n }\n this.adapterColumns.sort((a, b) => (a.id > b.id ? -1 : (a.id < b.id ? 1 : 0)));\n this.columnsVisibility.val = columns.includes('val') ? columnsWidths.val || WIDTHS.val || SCREEN_WIDTHS.xl.widths.val : 0;\n\n // do not show buttons if not desired\n if (!this.props.columns || this.props.columns.includes('buttons')) {\n this.columnsVisibility.buttons = columns.includes('buttons') ? columnsWidths.buttons || WIDTHS.buttons || SCREEN_WIDTHS.xl.widths.buttons : 0;\n widthSum += this.columnsVisibility.buttons;\n }\n\n if (this.columnsVisibility.name && !columnsWidths.name) {\n widthSum += this.columnsVisibility.val;\n this.columnsVisibility.name = `calc(100% - ${widthSum}px)`;\n this.columnsVisibility.nameHeader = `calc(100% - ${widthSum + 5 + this.state.scrollBarWidth}px)`;\n } else {\n const newWidth = Object.keys(this.columnsVisibility).reduce(\n (accumulator, name) => {\n if (name === 'id' || typeof this.columnsVisibility[name] === 'string' || !this.columnsVisibility[name]) {\n return accumulator;\n }\n return accumulator + this.columnsVisibility[name];\n },\n 0,\n );\n this.columnsVisibility.id = `calc(100% - ${newWidth}px)`;\n }\n }\n }\n\n resizerMouseMove = e => {\n if (this.resizerActiveDiv) {\n let width;\n let widthNext;\n if (this.resizeLeft) {\n width = this.resizerOldWidth - e.clientX + this.resizerPosition;\n widthNext = this.resizerOldWidthNext + e.clientX - this.resizerPosition;\n } else {\n width = this.resizerOldWidth + e.clientX - this.resizerPosition;\n widthNext = this.resizerOldWidthNext - e.clientX + this.resizerPosition;\n }\n\n if ((!this.resizerMin || width > this.resizerMin) &&\n (!this.resizerNextMin || widthNext > this.resizerNextMin)) {\n this.resizerCurrentWidths[this.resizerActiveName] = width;\n this.resizerCurrentWidths[this.resizerNextName] = widthNext;\n\n this.resizerActiveDiv.style.width = `${width}px`;\n this.resizerNextDiv.style.width = `${widthNext}px`;\n\n this.columnsVisibility[this.resizerActiveName] = width;\n this.columnsVisibility[this.resizerNextName] = widthNext;\n if (this.resizerNextName === 'nameHeader') {\n this.columnsVisibility.name = widthNext - this.state.scrollBarWidth;\n this.resizerCurrentWidths.name = widthNext - this.state.scrollBarWidth;\n } else\n if (this.resizerActiveName === 'nameHeader') {\n this.columnsVisibility.name = width - this.state.scrollBarWidth;\n this.resizerCurrentWidths.name = width - this.state.scrollBarWidth;\n }\n this.customWidth = true;\n this.resizeTimeout && clearTimeout(this.resizeTimeout);\n this.resizeTimeout = setTimeout(() => {\n this.resizeTimeout = null;\n this.forceUpdate();\n }, 200);\n }\n }\n };\n\n resizerMouseUp = () => {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.table`, JSON.stringify(this.resizerCurrentWidths));\n this.resizerActiveName = null;\n this.resizerNextName = null;\n this.resizerActiveDiv = null;\n this.resizerNextDiv = null;\n window.removeEventListener('mousemove', this.resizerMouseMove);\n window.removeEventListener('mouseup', this.resizerMouseUp);\n };\n\n resizerMouseDown = e => {\n if (this.resizerActiveIndex === null || this.resizerActiveIndex === undefined) {\n if (!this.storedWidths) {\n this.storedWidths = JSON.parse(JSON.stringify(SCREEN_WIDTHS[this.props.width]));\n }\n\n this.resizerCurrentWidths = this.resizerCurrentWidths || {};\n this.resizerActiveDiv = e.target.parentNode;\n this.resizerActiveName = this.resizerActiveDiv.dataset.name;\n\n let i = 0;\n if (e.target.dataset.left === 'true') {\n this.resizeLeft = true;\n this.resizerNextDiv = this.resizerActiveDiv.previousElementSibling;\n let handle = this.resizerNextDiv.querySelector(`.${this.props.classes.resizeHandle}`);\n while (this.resizerNextDiv && !handle && i < 10) {\n this.resizerNextDiv = this.resizerNextDiv.previousElementSibling;\n handle = this.resizerNextDiv.querySelector(`.${this.props.classes.resizeHandle}`);\n i++;\n }\n if (handle && handle.dataset.left !== 'true') {\n this.resizerNextDiv = this.resizerNextDiv.nextElementSibling;\n }\n } else {\n this.resizeLeft = false;\n this.resizerNextDiv = this.resizerActiveDiv.nextElementSibling;\n /* while (this.resizerNextDiv && !this.resizerNextDiv.querySelector('.' + this.props.classes.resizeHandle) && i < 10) {\n this.resizerNextDiv = this.resizerNextDiv.nextElementSibling;\n i++;\n } */\n }\n this.resizerNextName = this.resizerNextDiv.dataset.name;\n\n this.resizerMin = parseInt(this.resizerActiveDiv.dataset.min, 10) || 0;\n this.resizerNextMin = parseInt(this.resizerNextDiv.dataset.min, 10) || 0;\n\n this.resizerPosition = e.clientX;\n\n this.resizerCurrentWidths[this.resizerActiveName] = this.resizerActiveDiv.offsetWidth;\n this.resizerCurrentWidths[this.resizerNextName] = this.resizerNextDiv.offsetWidth;\n\n this.resizerOldWidth = this.resizerCurrentWidths[this.resizerActiveName];\n this.resizerOldWidthNext = this.resizerCurrentWidths[this.resizerNextName];\n\n window.addEventListener('mousemove', this.resizerMouseMove);\n window.addEventListener('mouseup', this.resizerMouseUp);\n }\n };\n\n resizerReset = () => {\n this.customWidth = false;\n SCREEN_WIDTHS[this.props.width] = JSON.parse(JSON.stringify(this.storedWidths));\n this.calculateColumnsVisibility();\n (window._localStorage || window.localStorage).removeItem(`${this.props.dialogName || 'App'}.table`);\n this.forceUpdate();\n };\n\n /**\n * @private\n * @returns {JSX.Element}\n */\n renderHeader() {\n const classes = this.props.classes;\n\n let filterClearInValue = null;\n if (!this.columnsVisibility.buttons && !this.isFilterEmpty()) {\n filterClearInValue = <IconButton\n onClick={() => this.clearFilter()}\n className={classes.buttonClearFilter}\n title={this.props.t('ra_Clear filter')}\n size=\"large\"\n >\n <IconClearFilter />\n <IconClose className={classes.buttonClearFilterIcon} />\n </IconButton>;\n }\n\n return <div className={classes.headerRow}>\n <div className={classes.headerCell} style={{ width: this.columnsVisibility.id, position: 'relative' }} data-min={240} data-name=\"id\">\n {this.getFilterInput('id')}\n <div className={`${this.props.classes.resizeHandle} ${this.props.classes.resizeHandleRight}`} onMouseDown={this.resizerMouseDown} onDoubleClick={this.resizerReset} title={this.props.t('ra_Double click to reset table layout')} />\n </div>\n {this.columnsVisibility.name ? <div className={classes.headerCell} style={{ width: this.columnsVisibility.nameHeader }} data-min={100} data-name=\"nameHeader\">{this.getFilterInput('name')}</div> : null}\n {!this.state.statesView && <>\n {this.columnsVisibility.type ? <div className={classes.headerCell} style={{ width: this.columnsVisibility.type }} data-min={100} data-name=\"type\">{this.getFilterSelectType()}</div> : null}\n {this.columnsVisibility.role ? <div className={classes.headerCell} style={{ width: this.columnsVisibility.role }} data-min={100} data-name=\"role\">{this.getFilterSelectRole()}</div> : null}\n {this.columnsVisibility.room ? <div className={classes.headerCell} style={{ width: this.columnsVisibility.room }} data-min={100} data-name=\"room\">{this.getFilterSelectRoom()}</div> : null}\n {this.columnsVisibility.func ? <div className={classes.headerCell} style={{ width: this.columnsVisibility.func }} data-min={100} data-name=\"func\">{this.getFilterSelectFunction()}</div> : null}\n </>}\n {this.state.statesView && <>\n <div className={Utils.clsx(classes.headerCell, classes.headerCellValue)} style={{ width: this.columnsVisibility.changedFrom }} data-min={100} data-name=\"changedFrom\">{this.props.t('ra_Changed from')}</div>\n <div className={Utils.clsx(classes.headerCell, classes.headerCellValue)} style={{ width: this.columnsVisibility.qualityCode }} data-min={100} data-name=\"qualityCode\">{this.props.t('ra_Quality code')}</div>\n <div className={Utils.clsx(classes.headerCell, classes.headerCellValue)} style={{ width: this.columnsVisibility.timestamp }} data-min={100} data-name=\"timestamp\">{this.props.t('ra_Timestamp')}</div>\n <div className={Utils.clsx(classes.headerCell, classes.headerCellValue)} style={{ width: this.columnsVisibility.lastChange }} data-min={100} data-name=\"lastChange\">{this.props.t('ra_Last change')}</div>\n </>}\n {this.adapterColumns.map(item => <div className={Utils.clsx(classes.headerCell, classes.headerCellValue)} style={{ width: this.columnsVisibility[item.id] }} title={item.adapter} key={item.id} data-min={100} data-name={item.id}>{item.name}</div>)}\n {this.columnsVisibility.val ? <div className={Utils.clsx(classes.headerCell, classes.headerCellValue)} style={{ width: this.columnsVisibility.val, position: 'relative' }} data-min={120} data-name=\"val\">\n <div className={`${this.props.classes.resizeHandle} ${this.props.classes.resizeHandleLeft}`} data-left=\"true\" onMouseDown={this.resizerMouseDown} onDoubleClick={this.resizerReset} title={this.props.t('ra_Double click to reset table layout')} />\n {this.props.t('ra_Value')}\n {filterClearInValue}\n </div> : null}\n {this.columnsVisibility.buttons ? <div className={classes.headerCell} style={{ width: this.columnsVisibility.buttons }}>\n {' '}\n {this.getFilterSelectCustoms()}\n </div> : null}\n </div>;\n }\n\n /**\n * @private\n * @returns {JSX.Element}\n */\n renderToast() {\n return <Snackbar\n open={!!this.state.toast}\n autoHideDuration={3000}\n onClick={() => this.setState({ toast: '' })}\n onClose={() => this.setState({ toast: '' })}\n message={this.state.toast}\n action={\n <IconButton size=\"small\" aria-label=\"close\" color=\"inherit\" onClick={() => this.setState({ toast: '' })}>\n <IconClose fontSize=\"small\" />\n </IconButton>\n }\n />;\n }\n\n /**\n * Called when component is updated.\n */\n componentDidUpdate() {\n if (this.tableRef.current) {\n const scrollBarWidth = this.tableRef.current.offsetWidth - this.tableRef.current.clientWidth;\n if (this.state.scrollBarWidth !== scrollBarWidth) {\n setTimeout(() => this.setState({ scrollBarWidth }), 100);\n } else if (!this.selectedFound && ((this.state.selected && this.state.selected[0]) || this.lastSelectedItems)) {\n this.scrollToItem((this.state.selected && this.state.selected[0]) || this.lastSelectedItems);\n }\n }\n }\n\n scrollToItem(id) {\n const node = window.document.getElementById(id);\n node && node.scrollIntoView({\n behavior: 'auto',\n block: 'center',\n inline: 'center',\n });\n this.selectedFound = true;\n }\n\n /**\n * @private\n * @returns {JSX.Element | null}\n */\n renderCustomDialog() {\n if (this.state.customDialog && this.props.objectCustomDialog) {\n const ObjectCustomDialog = this.props.objectCustomDialog;\n\n return <ObjectCustomDialog\n reportChangedIds={changedIds => this.changedIds = [...changedIds]}\n objectIDs={this.state.customDialog}\n expertMode={this.state.filter.expertMode}\n isFloatComma={this.props.isFloatComma}\n t={this.props.t}\n lang={this.props.lang}\n socket={this.props.socket}\n themeName={this.props.themeName}\n themeType={this.props.themeType}\n theme={this.props.theme}\n objects={this.objects}\n customsInstances={this.info.customs}\n onClose={() => {\n this.pauseSubscribe(false);\n this.setState({ customDialog: null });\n if (this.changedIds) {\n this.changedIds = null;\n // update all changed IDs\n this.forceUpdate();\n }\n\n this.props.router && this.props.router.doNavigate('tab-objects');\n }}\n />;\n }\n return null;\n }\n\n /**\n * @private\n * @param {Partial<ioBroker.State>} valAck\n */\n onUpdate(valAck) {\n this.props.socket.setState(this.edit.id, {\n val: valAck.val, ack: valAck.ack, q: valAck.q || 0, expire: valAck.expire || undefined,\n })\n .catch(e => this.showError(`Cannot write value: ${e}`));\n }\n\n /**\n * @private\n * @returns {JSX.Element | null}\n */\n renderEditObjectDialog() {\n if (!this.state.editObjectDialog || !this.props.objectBrowserEditObject) {\n return null;\n }\n\n const ObjectBrowserEditObject = this.props.objectBrowserEditObject;\n\n return <ObjectBrowserEditObject\n key={this.state.editObjectDialog}\n obj={this.objects[this.state.editObjectDialog]}\n roleArray={this.info.roles}\n objects={this.objects}\n dateFormat={this.props.dateFormat}\n isFloatComma={this.props.isFloatComma}\n themeName={this.props.themeName}\n socket={this.props.socket}\n dialogName={this.props.dialogName}\n t={this.props.t}\n expertMode={this.state.filter.expertMode}\n onNewObject={obj =>\n this.props.socket.setObject(obj._id, obj)\n .then(() => this.setState({ editObjectDialog: obj._id }, () => this.onSelect(obj._id)))\n .catch(e => this.showError(`Cannot write object: ${e}`))}\n onClose={obj => {\n if (obj) {\n let updateAlias;\n if (this.state.editObjectDialog.startsWith('alias.')) {\n if (JSON.stringify(this.objects[this.state.editObjectDialog].common?.alias) !== JSON.stringify(obj.common?.alias)) {\n updateAlias = this.state.editObjectDialog;\n }\n }\n\n this.props.socket.setObject(obj._id, obj)\n .then(() => {\n if (updateAlias && this.subscribes.includes(updateAlias)) {\n this.unsubscribe(updateAlias);\n setTimeout(() => this.subscribe(updateAlias), 100);\n }\n })\n .catch(e => this.showError(`Cannot write object: ${e}`));\n }\n this.setState({ editObjectDialog: '' });\n }}\n />;\n }\n\n /**\n * @private\n * @returns {JSX.Element | null}\n */\n renderViewObjectFileDialog() {\n if (!this.state.viewFileDialog || !this.props.objectBrowserViewFile) {\n return null;\n }\n const ObjectBrowserViewFile = this.props.objectBrowserViewFile;\n\n return <ObjectBrowserViewFile\n key=\"viewFile\"\n obj={this.objects[this.state.viewFileDialog]}\n themeType={this.props.themeType}\n socket={this.props.socket}\n dialogName={this.props.dialogName}\n t={this.props.t}\n expertMode={this.state.filter.expertMode}\n onClose={() => this.setState({ viewFileDialog: '' })}\n />;\n }\n\n /**\n * @private\n * @returns {JSX.Element | null}\n */\n renderEditValueDialog() {\n if (!this.state.updateOpened || !this.props.objectBrowserValue) {\n return null;\n }\n\n if (!this.edit.id) {\n console.error(`Invalid ID for edit: ${JSON.stringify(this.edit)}`);\n return null;\n }\n\n if (!this.objects[this.edit.id]) {\n console.error(`Something went wrong. Possibly the object ${this.edit.id} was deleted.`);\n return null;\n }\n\n const type = this.objects[this.edit.id].common?.type ?\n this.objects[this.edit.id].common.type : typeof this.edit.val;\n\n const ObjectBrowserValue = this.props.objectBrowserValue;\n\n return <ObjectBrowserValue\n t={this.props.t}\n lang={this.props.lang}\n type={type}\n states={Utils.getStates(this.objects[this.edit.id])}\n themeType={this.props.themeType}\n expertMode={this.state.filter.expertMode}\n value={this.edit.val}\n socket={this.props.socket}\n object={this.objects[this.edit.id]}\n defaultHistory={this.defaultHistory}\n dateFormat={this.props.dateFormat}\n onClose={res => {\n this.setState({ updateOpened: false });\n res && this.onUpdate(res);\n }}\n />;\n }\n\n extendObject = (id, data) =>\n this.props.socket.extendObject(id, data)\n .catch(error => window.alert(error));\n\n setObject = (id, data) =>\n this.props.socket.setObject(id, data)\n .catch(error => window.alert(error));\n\n /**\n * The rendering method of this component.\n * @returns {JSX.Element}\n */\n render() {\n this.recordStates = [];\n this.unsubscribeTimer && clearTimeout(this.unsubscribeTimer);\n\n // apply filter if changed\n const jsonFilter = JSON.stringify(this.state.filter);\n\n if (this.lastAppliedFilter !== jsonFilter && this.objects && this.root) {\n const counter = { count: 0 };\n\n applyFilter(this.root, this.state.filter, this.state.lang, this.objects, null, counter, this.props.customFilter, this.props.types);\n\n if (counter.count < 500 && !this.state.expandAllVisible) {\n setTimeout(() => this.setState({ expandAllVisible: true }));\n } else if (counter.count >= 500 && this.state.expandAllVisible) {\n setTimeout(() => this.setState({ expandAllVisible: false }));\n }\n\n this.lastAppliedFilter = jsonFilter;\n }\n\n this.unsubscribeTimer = setTimeout(() => {\n this.unsubscribeTimer = null;\n this.checkUnsubscribes();\n }, 200);\n\n if (!this.state.loaded) {\n return <CircularProgress key={`${this.props.dialogName}_c`} />;\n }\n const classes = this.props.classes;\n const items = this.renderItem(this.root, undefined, classes);\n\n return <TabContainer key={this.props.dialogName} classes={{ }}>\n <TabHeader>\n {this.getToolbar()}\n </TabHeader>\n <TabContent classes={{ }}>\n {this.renderHeader()}\n <div className={this.props.classes.tableDiv} ref={this.tableRef}>\n {items}\n </div>\n </TabContent>\n {this.renderToast()}\n {this.renderColumnsEditCustomDialog()}\n {this.renderColumnsSelectorDialog()}\n {this.renderCustomDialog()}\n {this.renderEditValueDialog()}\n {this.renderEditObjectDialog()}\n {this.renderViewObjectFileDialog()}\n {this.renderEditRoleDialog()}\n {this.renderEnumDialog()}\n {this.renderErrorDialog()}\n {this.renderExportDialog()}\n {this.state.modalNewObj && this.props.modalNewObject && this.props.modalNewObject(this)}\n {this.state.modalEditOfAccess && this.props.modalEditOfAccessControl && this.props.modalEditOfAccessControl(this, this.state.modalEditOfAccessObjData)}\n </TabContainer>;\n }\n}\n\nObjectBrowser.defaultProps = {\n objectAddBoolean: false,\n objectEditBoolean: false,\n objectStatesView: false,\n objectImportExport: false,\n objectEditOfAccessControl: false,\n modalNewObject: () => { },\n modalEditOfAccessControl: () => { },\n};\n\nObjectBrowser.propTypes = {\n dialogName: PropTypes.string, // where to store settings in localStorage\n classes: PropTypes.object,\n defaultFilters: PropTypes.object,\n selected: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.array,\n ]),\n onSelect: PropTypes.func,\n onFilterChanged: PropTypes.func,\n socket: PropTypes.object,\n showExpertButton: PropTypes.bool,\n expertMode: PropTypes.bool,\n imagePrefix: PropTypes.string,\n themeName: PropTypes.string,\n themeType: PropTypes.string,\n theme: PropTypes.object,\n t: PropTypes.func,\n lang: PropTypes.string.isRequired,\n multiSelect: PropTypes.bool,\n notEditable: PropTypes.bool,\n foldersFirst: PropTypes.bool,\n disableColumnSelector: PropTypes.bool,\n isFloatComma: PropTypes.bool,\n dateFormat: PropTypes.string,\n levelPadding: PropTypes.number,\n\n // components\n objectCustomDialog: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func,\n ]),\n objectAddBoolean: PropTypes.bool, // optional toolbar button\n objectEditBoolean: PropTypes.bool, // optional toolbar button\n objectStatesView: PropTypes.bool, // optional toolbar button\n objectImportExport: PropTypes.bool, // optional toolbar button\n objectEditOfAccessControl: PropTypes.bool, // Access Control\n modalNewObject: PropTypes.func, // modal add object\n modalEditOfAccessControl: PropTypes.func, // modal Edit Of Access Control\n onObjectDelete: PropTypes.func, // optional function (id, hasChildren, objectExists, childrenCount+1) { }\n customFilter: PropTypes.object, // optional\n // `{common: {custom: true}}` - show only objects with some custom settings\n // `{common: {custom: 'sql.0'}}` - show only objects with sql.0 custom settings (only of the specific instance)\n // `{common: {custom: '_dataSources'}}` - show only objects of adapters `influxdb' or 'sql' or 'history'\n // `{common: {custom: 'adapterName.'}}` - show only objects of custom settings of specific adapter (all instances)\n // `{type: 'channel'}` - show only channels\n // `{type: ['channel', 'device']}` - show only channels and devices\n // `{common: {type: 'number'}` - show only states of type 'number\n // `{common: {type: ['number', 'string']}` - show only states of type 'number and string\n // `{common: {role: 'switch']}` - show only states with roles starting from switch\n // `{common: {role: ['switch', 'button]}` - show only states with roles starting from `switch` and `button`\n objectBrowserValue: PropTypes.object,\n objectBrowserEditObject: PropTypes.object,\n objectBrowserEditRole: PropTypes.object, // on Edit role\n objectBrowserViewFile: PropTypes.func, // on view file state\n router: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func,\n ]),\n types: PropTypes.array, // optional ['state', 'instance', 'channel']\n columns: PropTypes.array, // optional ['name', 'type', 'role', 'room', 'func', 'val', 'buttons']\n\n objectsWorker: PropTypes.object, // optional cache of objects\n filterFunc: PropTypes.func, // function to filter out all unnecessary objects. It cannot be used together with \"types\"\n // Example for function: `obj => obj.common && obj.common.type === 'boolean'` to show only boolean states\n\n dragSettings: PropTypes.object,\n DragWrapper: PropTypes.func,\n dragEnabled: PropTypes.bool,\n useDrag: PropTypes.func,\n};\n\n/** @type {typeof ObjectBrowser} */\nconst _export = withWidth()(withStyles(styles)(ObjectBrowser));\nexport default _export;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAMA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AAAoC;AAAA;AAAA;AAAA;AAAA;AAAA;AAEpC,IAAMA,SAAS,GAAG,EAAE;AACpB,IAAMC,UAAU,GAAG,EAAE;AACrB,IAAMC,UAAU,GAAG,EAAE;AACrB,IAAMC,iBAAiB,GAAG,EAAE;AAC5B,IAAMC,iBAAiB,GAAG,SAAS;AACnC,IAAMC,yBAAyB,GAAG,SAAS;AAC3C,IAAMC,qBAAqB,GAAG,SAAS;AACvC,IAAMC,sBAAsB,GAAG,SAAS;AACxC,IAAMC,yBAAyB,GAAG,SAAS;AAC3C,IAAMC,0BAA0B,GAAG,SAAS;AAC5C,IAAMC,4BAA4B,GAAG,SAAS;AAC9C,IAAMC,6BAA6B,GAAG,SAAS;AAE/C,IAAMC,MAAM,GAAG,SAATA,MAAM,CAAGC,KAAK;EAAA,OAAK;IACrBC,OAAO,EAAE;MACLC,SAAS,EAAE,EAAE,CAAE;MACf;IACJ,CAAC;;IACDC,cAAc,EAAE;MACZC,OAAO,EAAE,CAAC;MACVC,UAAU,EAAE;IAChB,CAAC;IACDC,gBAAgB,EAAE;MACdD,UAAU,EAAEL,KAAK,CAACO,OAAO,CAAC,CAAC;IAC/B,CAAC;IACDC,aAAa,EAAE;MACXC,UAAU,EAAE;IAChB,CAAC;IACDC,kBAAkB,EAAE;MAChBC,QAAQ,EAAE,EAAE;MACZC,UAAU,EAAEZ,KAAK,CAACO,OAAO,CAAC,CAAC;IAC/B,CAAC;IACDM,YAAY,EAAE;MACVC,KAAK,EAAE,MAAM;MACbC,OAAO,EAAE;IACb,CAAC;IACDC,oBAAoB,EAAE;MAClBC,MAAM,EAAE;IACZ,CAAC;IACDC,kBAAkB,EAAE;MAChBC,SAAS,EAAE;IACf,CAAC;IACDC,gBAAgB,EAAE;MACdD,SAAS,EAAE;IACf,CAAC;IACDE,iBAAiB,EAAE;MACfF,SAAS,EAAE;IACf,CAAC;IACDG,QAAQ,EAAE;MACNR,KAAK,EAAE;IACX,CAAC;IACDS,cAAc,EAAE;MACZC,OAAO,EAAE;IACb,CAAC;IACDC,cAAc,EAAE;MACZD,OAAO,EAAE;IACb,CAAC;IACDE,cAAc,EAAE;MACZF,OAAO,EAAE;IACb,CAAC;IACDG,cAAc,EAAE;MACZH,OAAO,EAAE;IACb,CAAC;IACDI,cAAc,EAAE;MACZJ,OAAO,EAAE;IACb,CAAC;IACDK,cAAc,EAAE;MACZL,OAAO,EAAE;IACb,CAAC;IACDM,cAAc,EAAE;MACZN,OAAO,EAAE;IACb,CAAC;IACDO,cAAc,EAAE;MACZP,OAAO,EAAE;IACb,CAAC;IACDQ,cAAc,EAAE;MACZR,OAAO,EAAE;IACb,CAAC;IACDS,eAAe,EAAE;MACbT,OAAO,EAAE;IACb,CAAC;IACDU,uBAAuB,EAAE;MACrBpB,KAAK,EAAE;IACX,CAAC;IACDqB,SAAS,EAAE;MACPC,WAAW,EAAEpC,KAAK,CAACO,OAAO,CAAC,CAAC,CAAC;MAC7B8B,MAAM,EAAE,EAAE;MACVC,UAAU,EAAE,QAAQ;MACpBC,UAAU,EAAE;IAChB,CAAC;IACDC,iBAAiB,EAAE;MACfC,QAAQ,EAAE,UAAU;MACpB,SAAO,OAAO;MACdrC,OAAO,EAAE;IACb,CAAC;IACDsC,qBAAqB,EAAE;MACnBC,MAAM,EAAE,CAAC;MACTF,QAAQ,EAAE,UAAU;MACpBG,GAAG,EAAE,CAAC;MACNC,IAAI,EAAE,CAAC;MACPC,KAAK,EAAE,SAAS;MAChBtB,OAAO,EAAE;IACb,CAAC;IAEDuB,QAAQ,EAAE;MACNnC,UAAU,EAAE,CAAC;MAAE;MACfwB,WAAW,EAAE,CAAC;MACdtB,KAAK,wBAAiBd,KAAK,CAACO,OAAO,CAAC,CAAC,CAAC,MAAG;MACzC8B,MAAM,EAAE,mBAAmB;MAC3BW,QAAQ,EAAE;IACd,CAAC;IACDC,QAAQ,EAAE;MACNb,WAAW,EAAEpC,KAAK,CAACO,OAAO,CAAC,CAAC,CAAC;MAC7B8B,MAAM,EAAEjD,UAAU;MAClB8D,UAAU,YAAK9D,UAAU,OAAI;MAC7B+D,aAAa,EAAE,KAAK;MACpBZ,UAAU,EAAE,MAAM;MAClBzB,KAAK,EAAE,MAAM;MACb,SAAS,EAAE;QACPsC,UAAU,YAAKpD,KAAK,CAACqD,OAAO,CAACC,IAAI,KAAK,MAAM,GAAGtD,KAAK,CAACqD,OAAO,CAACE,OAAO,CAACC,IAAI,GAAGxD,KAAK,CAACqD,OAAO,CAACE,OAAO,CAACE,KAAK,gBAAa;QACpHX,KAAK,EAAEY,iBAAK,CAACC,WAAW,CAAC3D,KAAK,CAACqD,OAAO,CAACE,OAAO,CAACK,IAAI,EAAE,IAAI;MAC7D,CAAC;MACDtB,UAAU,EAAE,QAAQ;MACpBuB,QAAQ,EAAE;IACd,CAAC;IACDC,aAAa,EAAE;MACXC,YAAY,sBAAe/D,KAAK,CAACqD,OAAO,CAACC,IAAI,KAAK,MAAM,GAAG,WAAW,GAAG,WAAW,CAAE;MACtF,SAAS,EAAE;QACPU,WAAW,sBAAehE,KAAK,CAACqD,OAAO,CAACC,IAAI,KAAK,MAAM,GAAG,WAAW,GAAG,WAAW;MACvF;IACJ,CAAC;IACDW,kBAAkB,EAAE;MAChBhD,MAAM,EAAE;IACZ,CAAC;IACDiD,aAAa,EAAE;MACX7B,MAAM,EAAEjD,UAAU,GAAG;IACzB,CAAC;IACD+E,sBAAsB,EAAE;MACpB9B,MAAM,EAAEjD,UAAU,GAAG;IACzB,CAAC;IACDgF,QAAQ,EAAE;MACNhE,OAAO,EAAE;IACb,CAAC;IACDiE,MAAM,EAAE;MACJ5B,QAAQ,EAAE,UAAU;MACpB9B,QAAQ,EAAE,MAAM;MAChBqC,QAAQ,EAAE,QAAQ;MAClBsB,YAAY,EAAE,UAAU;MACxB;MACA;MACA,eAAe,EAAE;QACbvD,OAAO,EAAE;MACb,CAAC;MACD,qBAAqB,EAAE;QACnBA,OAAO,EAAE;MACb,CAAC;MACD,YAAY,EAAE;QACVA,OAAO,EAAE,OAAO;QAChBD,KAAK,EAAE1B,UAAU,GAAG,CAAC;QACrBiD,MAAM,EAAEjD,UAAU,GAAG,CAAC;QACtBmF,SAAS,EAAE,CAAC;QACZ,SAAO;MACX,CAAC;MACD,kBAAkB,EAAE;QAChBxD,OAAO,EAAE;MACb,CAAC;MACD,KAAK,EAAE;QACHD,KAAK,EAAE;MACX;IACJ,CAAC;IACD0D,UAAU,EAAE;MACRxB,QAAQ,EAAE,QAAQ;MAClBsB,YAAY,EAAE,UAAU;MACxBhC,UAAU,EAAE;MACZ;MACA;IACJ,CAAC;;IACDmC,gBAAgB,EAAE;MACdC,WAAW,EAAE1E,KAAK,CAACO,OAAO,CAAC,CAAC,CAAC;MAC7BO,KAAK,EAAE1B,UAAU,GAAG,CAAC;MACrBiD,MAAM,EAAEjD,UAAU,GAAG,CAAC;MACtB6B,MAAM,EAAE,SAAS;MACjB6B,KAAK,EAAE9C,KAAK,CAACqD,OAAO,CAACsB,SAAS,CAACf,IAAI,IAAI,SAAS;MAChDT,aAAa,EAAE;IACnB,CAAC;IACDyB,kBAAkB,EAAE;MAChBzB,aAAa,EAAE,QAAQ;MACvB9C,UAAU,EAAE,CAACjB,UAAU,GAAGE,iBAAiB,IAAI,CAAC;MAChDoF,WAAW,EAAE1E,KAAK,CAACO,OAAO,CAAC,CAAC,CAAC;MAC7BO,KAAK,EAAExB,iBAAiB;MACxB+C,MAAM,EAAE/C;IACZ,CAAC;IACDuF,aAAa,EAAE,CAEf,CAAC;IACDC,aAAa,EAAE;MACXnE,QAAQ,EAAE;IACd,CAAC;IACDoE,iBAAiB,EAAE;MACfjC,KAAK,EAAE,SAAS;MAChB,SAAS,EAAE;QACPA,KAAK,EAAE;MACX,CAAC;MACD,WAAW,EAAE;QACTA,KAAK,EAAE;MACX;IACJ,CAAC;IACDkC,cAAc,EAAE;MACZlE,KAAK,EAAExB,iBAAiB;MACxB+C,MAAM,EAAE/C,iBAAiB;MACzBsD,GAAG,EAAE,CAACxD,UAAU,GAAGE,iBAAiB,IAAI,CAAC;MACzCkC,OAAO,EAAE,GAAG;MACZ,SAAS,EAAE;QACPA,OAAO,EAAE;MACb,CAAC;MACDiB,QAAQ,EAAE,UAAU;MACpBwC,KAAK,EAAE;IACX,CAAC;IACDC,cAAc,EAAE;MACZpE,KAAK,EAAExB,iBAAiB;MACxB+C,MAAM,EAAE/C,iBAAiB;MACzBwD,KAAK,EAAE,OAAO;MACdL,QAAQ,EAAE,UAAU;MACpBG,GAAG,EAAE,CAACxD,UAAU,GAAGE,iBAAiB,IAAI,CAAC;MACzC2F,KAAK,EAAE3F,iBAAiB,GAAG,CAAC;MAC5BkC,OAAO,EAAE,GAAG;MACZ,SAAS,EAAE;QACPA,OAAO,EAAE;MACb;IACJ,CAAC;IACD2D,QAAQ,EAAE;MACNpE,OAAO,EAAE,cAAc;MACvBoC,aAAa,EAAE,KAAK;MACpBxC,QAAQ,EAAE,EAAE;MACZN,UAAU,EAAE,CAAC;MACb2C,QAAQ,EAAE,QAAQ;MAClBsB,YAAY,EAAE,UAAU;MACxB7B,QAAQ,EAAE,UAAU;MACpB,eAAe,EAAE;QACb1B,OAAO,EAAE;MACb,CAAC;MACD,qBAAqB,EAAE;QACnBA,OAAO,EAAE;MACb;IACJ,CAAC;IACDqE,WAAW,EAAE;MACTC,SAAS,EAAE,QAAQ;MACnB1E,QAAQ,EAAE,EAAE;MACZa,OAAO,EAAE,GAAG;MACZ,SAAS,EAAE;QACPsB,KAAK,EAAE9C,KAAK,CAACqD,OAAO,CAACC,IAAI,KAAK,MAAM,GAAG,SAAS,GAAG;MACvD;IACJ,CAAC;IACDgC,uBAAuB,EAAE;MACrBjD,MAAM,EAAE,EAAE;MACVkC,SAAS,EAAE,CAAC;IAChB,CAAC;IACDgB,gBAAgB,EAAE;MACdrC,UAAU,EAAE;IAChB,CAAC;IACDsC,oBAAoB,EAAE;MAClBtC,UAAU,EAAE;IAChB,CAAC;IACDuC,QAAQ,EAAE;MACN1E,OAAO,EAAE,cAAc;MACvBoC,aAAa,EAAE,KAAK;MACpB,aAAa,EAAE;QACXA,aAAa,EAAE,QAAQ;QACvBrC,KAAK,EAAE3B,SAAS;QAChBkD,MAAM,EAAElD,SAAS;QACjB4B,OAAO,EAAE;MACb,CAAC;MACD,mBAAmB,EAAE;QACjBV,UAAU,EAAE;MAChB;IACJ,CAAC;IACDqF,QAAQ,EAAE;MACN3E,OAAO,EAAE,cAAc;MACvBoC,aAAa,EAAE,KAAK;MACpBmB,YAAY,EAAE,UAAU;MACxBtB,QAAQ,EAAE;IACd,CAAC;IACD2C,QAAQ,EAAE;MACN5E,OAAO,EAAE,cAAc;MACvBoC,aAAa,EAAE,KAAK;MACpBmB,YAAY,EAAE,UAAU;MACxBtB,QAAQ,EAAE;IACd,CAAC;IACD4C,cAAc,EAAE;MACZpE,OAAO,EAAE;IACb,CAAC;IACDqE,QAAQ,EAAE;MACN9E,OAAO,EAAE,cAAc;MACvBoC,aAAa,EAAE,KAAK;MACpBmB,YAAY,EAAE,UAAU;MACxBtB,QAAQ,EAAE;IACd,CAAC;IACD8C,SAAS,EAAE;MACP/E,OAAO,EAAE,cAAc;MACvBoC,aAAa,EAAE,KAAK;MACpBmB,YAAY,EAAE,UAAU;MACxBtB,QAAQ,EAAE;IACd,CAAC;IACD+C,eAAe,EAAE;MACbxB,SAAS,EAAE,CAAC;MACZ,UAAU,EAAE;QACRyB,SAAS,EAAE;MACf;IACJ,CAAC;IACDC,oBAAoB,EAAE;MAClBzE,OAAO,EAAE;IACb,CAAC;IACD0E,WAAW,EAAE;MACTnF,OAAO,EAAE,cAAc;MACvBoC,aAAa,EAAE;IACnB,CAAC;IACDgD,gBAAgB,EAAE;MACdxF,QAAQ,EAAE;IACd,CAAC;IACDyF,aAAa,EAAE;MACXtF,KAAK,EAAE,MAAM;MACbuB,MAAM,EAAEjD,UAAU;MAClBuB,QAAQ,EAAE,EAAE;MACZI,OAAO,EAAE,cAAc;MACvBiC,QAAQ,EAAE,QAAQ;MAClBsB,YAAY,EAAE,UAAU;MACxB7B,QAAQ,EAAE,UAAU;MACpBU,aAAa,EAAE,KAAK;MACpB,eAAe,EAAE;QACbpC,OAAO,EAAE;MACb,CAAC;MACD,qBAAqB,EAAE;QACnBA,OAAO,EAAE;MACb;IACJ,CAAC;IACDsF,aAAa,EAAE;MACXvD,KAAK,EAAE;IACX,CAAC;IACDwD,qBAAqB,EAAE;MACnBjB,SAAS,EAAE,QAAQ;MACnBvE,KAAK,EAAE,GAAG;MACVC,OAAO,EAAE;IACb,CAAC;IACDwF,qBAAqB,EAAE;MACnBzF,KAAK,EAAE,GAAG;MACVC,OAAO,EAAE,cAAc;MACvB;MACAuB,UAAU,EAAE,QAAQ;MACpBgC,YAAY,EAAE;IAClB,CAAC;IACDkC,oBAAoB,EAAE;MAClB1F,KAAK,EAAE,GAAG;MACVC,OAAO,EAAE,cAAc;MACvBuB,UAAU,EAAE;IAChB,CAAC;IACDmE,mBAAmB,EAAE;MACjB3F,KAAK,EAAE,GAAG;MACVkC,QAAQ,EAAE;IACd,CAAC;IACD0D,iBAAiB,EAAE;MACfrG,UAAU,EAAEL,KAAK,CAACO,OAAO,CAAC,GAAG,CAAC;MAC9BiB,OAAO,EAAE;IACb,CAAC;IACDmF,QAAQ,EAAE;MACNC,SAAS,EAAE;IACf,CAAC;IACD,8BAA8B,EAAE;MAC5B,IAAI,EAAE;QACF9D,KAAK,EAAE;MACX,CAAC;MACD,KAAK,EAAE;QACHA,KAAK,EAAE;MACX,CAAC;MACD,MAAM,EAAE;QACJA,KAAK,EAAE9C,KAAK,CAACqD,OAAO,CAACC,IAAI,KAAK,MAAM,GAAG,MAAM,GAAG;MACpD;IACJ,CAAC;IACDuD,kBAAkB,EAAE;MAChBrF,OAAO,EAAE;IACb,CAAC;IACDsF,oBAAoB,EAAE;MAClBrE,QAAQ,EAAE,UAAU;MACpBsE,MAAM,EAAE,CAAC;MACT9B,KAAK,EAAE;IACX,CAAC;IACD+B,oBAAoB,EAAE;MAClBvE,QAAQ,EAAE,UAAU;MACpBsE,MAAM,EAAE,CAAC;MACT9B,KAAK,EAAE;IACX,CAAC;IACDgC,WAAW,EAAE;MACTlG,OAAO,EAAE,cAAc;MACvBoC,aAAa,EAAE;IACnB,CAAC;IACD+D,iBAAiB,EAAE;MACfnG,OAAO,EAAE,cAAc;MACvBS,OAAO,EAAE,GAAG;MACZV,KAAK,EAAExB,iBAAiB,GAAG,CAAC;MAC5B+C,MAAM,EAAE/C,iBAAiB,GAAG,CAAC;MAC7B,SAAS,EAAE;QACPkC,OAAO,EAAE;MACb,CAAC;MACDZ,UAAU,EAAE,CAAC;MACbwB,WAAW,EAAE,CAAC;MACdmC,SAAS,EAAE,CAAC;IAChB,CAAC;IACD4C,sBAAsB,EAAE;MACpBxG,QAAQ,EAAE;IACd,CAAC;IACDyG,kBAAkB,EAAE;MAChBC,QAAQ,EAAE;IACd,CAAC;IACDC,sBAAsB,EAAE;MACpBjH,UAAU,EAAEf,iBAAiB,GAAG,CAAC;MACjCsB,UAAU,EAAE,CAAC;MACb2D,SAAS,EAAE,CAAC;IAChB,CAAC;IACDgD,4BAA4B,EAAE;MAC1BzE,KAAK,EAAE9C,KAAK,CAACqD,OAAO,CAACsB,SAAS,CAACf;IACnC,CAAC;IACD4D,+BAA+B,EAAE;MAC7BhG,OAAO,EAAE;IACb,CAAC;IACDiG,sBAAsB,EAAE;MACpBhF,QAAQ,EAAE,UAAU;MACpB1B,OAAO,EAAE,cAAc;MACvB6B,GAAG,EAAEtD,iBAAiB,GAAG,CAAC,GAAG,CAAC;MAC9BkC,OAAO,EAAE,GAAG;MACZV,KAAK,EAAExB,iBAAiB,GAAG,CAAC;MAC5B+C,MAAM,EAAE/C,iBAAiB,GAAG,CAAC;MAC7BwD,KAAK,EAAE9C,KAAK,CAACqD,OAAO,CAACqE,MAAM,CAACC,MAAM;MAClC,SAAS,EAAE;QACPnG,OAAO,EAAE;MACb;IACJ,CAAC;IACDoG,0BAA0B,EAAE;MACxB3C,KAAK,EAAEjF,KAAK,CAACO,OAAO,CAAC,CAAC,CAAC;MACvBU,MAAM,EAAE;IACZ,CAAC;IACD4G,0BAA0B,EAAE;MACxB5C,KAAK,EAAE3F,iBAAiB,GAAG,CAAC,GAAGwI,QAAQ,CAAC9H,KAAK,CAACO,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;IAChE,CAAC;IAEDwH,WAAW,EAAE;MACTvG,OAAO,EAAE;IACb,CAAC;IACDwG,iBAAiB,EAAE;MACfxG,OAAO,EAAE;IACb,CAAC;IACDyG,WAAW,EAAE;MACT1D,SAAS,EAAE,CAAC;MACZ2D,YAAY,EAAE;IAClB,CAAC;IACDC,UAAU,EAAE;MACRrH,KAAK,EAAE,EAAE;MACTuB,MAAM,EAAE,EAAE;MACVqC,WAAW,EAAE;IACjB,CAAC;IACD0D,UAAU,EAAE;MACR5G,OAAO,EAAE;IACb,CAAC;IACD6G,YAAY,EAAE;MACVjF,UAAU,YAAKpD,KAAK,CAACqD,OAAO,CAACE,OAAO,CAACK,IAAI,gBAAa;MACtDd,KAAK,YAAKY,iBAAK,CAACC,WAAW,CAAC3D,KAAK,CAACqD,OAAO,CAACE,OAAO,CAACK,IAAI,EAAE,IAAI,CAAC;IACjE,CAAC;IACD0E,MAAM,EAAE;MACJxH,KAAK,EAAE;IACX,CAAC;IACDyH,UAAU,EAAE;MACRxH,OAAO,EAAE,cAAc;MACvBoC,aAAa,EAAE;IACnB,CAAC;IACDqF,eAAe,EAAE;MACb5H,UAAU,EAAE,CAAC;MACb;MACAD,QAAQ,EAAE;IACd,CAAC;IACD8H,eAAe,EAAE;MACb3H,KAAK,EAAE,kBAAkB;MACzBuB,MAAM,EAAEjD,UAAU;MAClBwB,UAAU,EAAE,CAAC;MACb,aAAa,EAAE;QACXuC,aAAa,EAAE,QAAQ;QACvBrC,KAAK,EAAE3B,SAAS;QAChBkD,MAAM,EAAElD,SAAS;QACjB4B,OAAO,EAAE;MACb;IACJ,CAAC;IACD2H,oBAAoB,EAAE;MAClB,aAAa,EAAE;QACX5H,KAAK,EAAE3B,SAAS;QAChBkD,MAAM,EAAElD,SAAS;QACjBuF,WAAW,EAAE,CAAC;QACd3D,OAAO,EAAE;MACb;IACJ,CAAC;IACD4H,cAAc,EAAE;MACZ7F,KAAK,EAAE,SAAS;MAChBtB,OAAO,EAAE;IACb,CAAC;IACDoH,IAAI,EAAE;MACFC,QAAQ,EAAE;IACd,CAAC;IACDC,WAAW,EAAE;MACTpE,WAAW,EAAE1E,KAAK,CAACO,OAAO,CAAC,CAAC,CAAC;MAC7BO,KAAK,EAAE,EAAE;MACTuB,MAAM,EAAE,EAAE;MACV0G,YAAY,EAAE,CAAC;MACf3F,UAAU,EAAE;IAChB,CAAC;IACD4F,QAAQ,EAAE;MACNzE,SAAS,EAAE,CAAC;MACZlE,UAAU,EAAE,CAAC;MACbS,KAAK,EAAE,EAAE;MACTuB,MAAM,EAAE;IACZ,CAAC;IACD4G,UAAU,EAAE;MACRjG,QAAQ,EAAE;IACd,CAAC;IACDkG,QAAQ,EAAE;MACN7B,QAAQ,EAAE,GAAG;MACbhF,MAAM,EAAE,mBAAmB;MAC3BW,QAAQ,EAAE;IACd,CAAC;IACDmG,UAAU,EAAE;MACR,SAAO;IACX,CAAC;IACDC,YAAY,EAAE;MACV/B,QAAQ,EAAE;IACd,CAAC;IACDgC,SAAS,EAAE;MACPtI,OAAO,EAAE,MAAM;MACfsB,MAAM,EAAE,MAAM;MACdiH,UAAU,EAAE;IAChB,CAAC;IACDC,OAAO,EAAE;MACL5I,QAAQ,EAAE;IACd,CAAC;IACD6I,YAAY,EAAE;MACV1G,KAAK,EAAE,SAAS;MAChBV,WAAW,EAAE;IACjB,CAAC;IACDqH,WAAW,EAAE;MACT3G,KAAK,EAAE,SAAS;MAChBV,WAAW,EAAE;IACjB,CAAC;IACDsH,UAAU,EAAE;MACRtJ,OAAO,EAAE,EAAE;MACXe,SAAS,EAAE;IACf,CAAC;IACDwI,oBAAoB,EAAE;MAClB5I,OAAO,EAAE,MAAM;MACf6I,aAAa,EAAE;IACnB,CAAC;IACD,sCAAsC,EAAE;MACpC1H,uBAAuB,EAAE;QACrBpB,KAAK,EAAE;MACX,CAAC;MACD+I,aAAa,EAAE;QACX,KAAK,EAAE;UACHlJ,QAAQ,EAAE;QACd;MACJ;IACJ,CAAC;IACD,sCAAsC,EAAE,CAExC,CAAC;IACD,sCAAsC,EAAE,CAExC,CAAC;IACDmJ,SAAS,EAAE;MACP7I,MAAM,EAAE;IACZ,CAAC;IACD8I,YAAY,EAAE;MACV9I,MAAM,EAAE;IACZ,CAAC;IACD+I,iBAAiB,EAAE;MACfvH,QAAQ,EAAE,UAAU;MACpBG,GAAG,EAAE,CAAC;MACNqC,KAAK,EAAE,CAAC;MACR8D,YAAY,EAAE,EAAE;MAChBkB,eAAe,EAAEjK,KAAK,CAACqD,OAAO,CAACD,UAAU;IAC7C,CAAC;IACD8G,mBAAmB,EAAE;MACjBpH,KAAK,EAAE9C,KAAK,CAACqD,OAAO,CAACC,IAAI,KAAK,MAAM,GAAG3D,yBAAyB,GAAGC,0BAA0B;MAC7F4B,OAAO,EAAE,GAAG;MACZiB,QAAQ,EAAE,UAAU;MACpBG,GAAG,EAAE,CAAC;MACNqC,KAAK,EAAE,EAAE;MACTnE,KAAK,EAAE;IACX,CAAC;IACDqJ,sBAAsB,EAAE;MACpBrH,KAAK,EAAE9C,KAAK,CAACqD,OAAO,CAACC,IAAI,KAAK,MAAM,GAAGzD,4BAA4B,GAAGC,6BAA6B;MACnG0B,OAAO,EAAE,GAAG;MACZiB,QAAQ,EAAE,UAAU;MACpBG,GAAG,EAAE,CAAC;MACNqC,KAAK,EAAE,EAAE;MACTnE,KAAK,EAAE;IACX,CAAC;IACDsJ,eAAe,EAAE;MACbtH,KAAK,EAAE9C,KAAK,CAACqD,OAAO,CAACC,IAAI,KAAK,MAAM,GAAG7D,qBAAqB,GAAGC,sBAAsB;MACrF8B,OAAO,EAAE,GAAG;MACZiB,QAAQ,EAAE,UAAU;MACpBG,GAAG,EAAE,CAAC;MACNqC,KAAK,EAAE,EAAE;MACTnE,KAAK,EAAE;IACX,CAAC;IACDuJ,YAAY,EAAE;MACVtJ,OAAO,EAAE,OAAO;MAChB0B,QAAQ,EAAE,UAAU;MACpBxB,MAAM,EAAE,YAAY;MACpBH,KAAK,EAAE,CAAC;MACR8B,GAAG,EAAE,CAAC;MACNmE,MAAM,EAAE,CAAC;MACTpE,MAAM,EAAE;IACZ,CAAC;IACD2H,iBAAiB,EAAE;MACfrF,KAAK,EAAE,CAAC;MACRjB,WAAW,EAAE,iBAAiB;MAC9B,SAAS,EAAE;QACPuG,WAAW,EAAE,MAAM;QACnBC,gBAAgB,EAAE;MACtB,CAAC;MACD,UAAU,EAAE;QACRD,WAAW,EAAE,SAAS;QACtBC,gBAAgB,EAAE;MACtB;IACJ,CAAC;IACDC,gBAAgB,EAAE;MACd5H,IAAI,EAAE,CAAC,CAAC;MACR6H,UAAU,EAAE,iBAAiB;MAC7B,SAAS,EAAE;QACPH,WAAW,EAAE,MAAM;QACnBI,eAAe,EAAE;MACrB,CAAC;MACD,UAAU,EAAE;QACRJ,WAAW,EAAE,SAAS;QACtBI,eAAe,EAAE;MACrB;IACJ,CAAC;IACDC,kBAAkB,EAAE;MAChBX,eAAe,EAAEjK,KAAK,CAACqD,OAAO,CAACC,IAAI,KAAM,MAAM,GAAG,SAAS,GAAG,SAAS;MACvElD,OAAO,EAAE,OAAO;MAChB2I,YAAY,EAAE;IAClB,CAAC;IACD8B,sBAAsB,EAAE;MACpBZ,eAAe,EAAEjK,KAAK,CAACqD,OAAO,CAACC,IAAI,KAAM,MAAM,GAAG,SAAS,GAAG,SAAS;MACvEyF,YAAY,EAAE;IAClB;EACJ,CAAC;AAAA,CAAC;AAEF,SAAS+B,YAAY,CAACC,QAAQ,EAAEC,GAAG,EAAE;EACjC,IAAMC,EAAE,GAAGC,QAAQ,CAACC,aAAa,CAAC,GAAG,CAAC;EACtCF,EAAE,CAACG,YAAY,CAAC,MAAM,gDAAyCC,kBAAkB,CAACC,IAAI,CAACC,SAAS,CAACP,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAG;EAClHC,EAAE,CAACG,YAAY,CAAC,UAAU,EAAEL,QAAQ,CAAC;EAErCE,EAAE,CAACO,KAAK,CAACzK,OAAO,GAAG,MAAM;EACzBmK,QAAQ,CAACO,IAAI,CAACC,WAAW,CAACT,EAAE,CAAC;EAE7BA,EAAE,CAACU,KAAK,EAAE;EAEVT,QAAQ,CAACO,IAAI,CAACG,WAAW,CAACX,EAAE,CAAC;AACjC;;AAEA;AACA,SAASY,YAAY,CAACC,IAAI,EAAEC,IAAI,EAAEC,MAAM,EAAEC,IAAI,EAAE;EAC5CD,MAAM,GAAGA,MAAM,IAAI,CAAC;EACpB,IAAIC,IAAI,KAAKC,SAAS,EAAE;IACpBD,IAAI,GAAGH,IAAI,CAACK,MAAM,GAAG,CAAC;IACtB,IAAI,CAACF,IAAI,EAAE;MACP,OAAOH,IAAI,CAAC,CAAC,CAAC,KAAKC,IAAI;IAC3B;EACJ;EACA,IAAMK,MAAM,GAAGC,IAAI,CAACC,KAAK,CAAC,CAACN,MAAM,GAAGC,IAAI,IAAI,CAAC,CAAC;EAC9C,IAAIF,IAAI,KAAKD,IAAI,CAACM,MAAM,CAAC,EAAE;IACvB,OAAON,IAAI,CAACM,MAAM,CAAC;EACvB;EACA,IAAIH,IAAI,GAAG,CAAC,KAAKD,MAAM,EAAE;IACrB,OAAOF,IAAI,CAACE,MAAM,CAAC,KAAKD,IAAI,IAAID,IAAI,CAACG,IAAI,CAAC,KAAKF,IAAI;EACvD;EACA,IAAIA,IAAI,GAAGD,IAAI,CAACM,MAAM,CAAC,EAAE;IACrB,OAAOP,YAAY,CAACC,IAAI,EAAEC,IAAI,EAAEK,MAAM,EAAEH,IAAI,CAAC;EACjD;EACA,IAAIF,IAAI,GAAGD,IAAI,CAACM,MAAM,CAAC,EAAE;IACrB,OAAOP,YAAY,CAACC,IAAI,EAAEC,IAAI,EAAEC,MAAM,EAAEI,MAAM,CAAC;EACnD;EACA,OAAO,KAAK;AAChB;AAEA,SAASG,OAAO,CAACC,IAAI,EAAEC,IAAI,EAAE;EACzB,IAAID,IAAI,IAAI,yBAAOA,IAAI,MAAK,QAAQ,EAAE;IAClC,OAAO,CAACA,IAAI,CAACC,IAAI,CAAC,IAAID,IAAI,CAACE,EAAE,IAAI,EAAE,EAAEC,QAAQ,EAAE;EACnD;EAEA,OAAO,CAACH,IAAI,IAAI,EAAE,EAAEG,QAAQ,EAAE;AAClC;AAEA,SAASC,eAAe,CAACC,OAAO,EAAEC,EAAE,EAAEC,WAAW,EAAE;EAC/CA,WAAW,GAAGA,WAAW,IAAI,GAAG,CAAC,CAAC;EAClC,IAAIC,GAAG,GAAG,EAAE;EACZ,IAAMC,IAAI,4BAAqBH,EAAE,CAAE;EACnC,IAAMI,KAAK,GAAGJ,EAAE,IAAID,OAAO,CAACI,IAAI,CAAC,IAAIJ,OAAO,CAACI,IAAI,CAAC,CAACE,MAAM,IAAIN,OAAO,CAACI,IAAI,CAAC,CAACE,MAAM,CAACC,IAAI;EACtF,IAAIF,KAAK,EAAE;IACP;IACA,IAAI,CAACA,KAAK,CAACG,UAAU,CAAC,aAAa,CAAC,EAAE;MAClC,IAAIH,KAAK,CAACI,QAAQ,CAAC,GAAG,CAAC,EAAE;QACrBN,GAAG,aAAMD,WAAW,sBAAYF,OAAO,CAACI,IAAI,CAAC,CAACE,MAAM,CAACX,IAAI,cAAIU,KAAK,CAAE;MACxE,CAAC,MAAM,IAAIA,KAAK,IAAIA,KAAK,CAACf,MAAM,GAAG,CAAC,EAAE;QAClC,OAAOe,KAAK,CAAC,CAAC;MAClB,CAAC,MAAM;QACH,OAAO,IAAI,CAAC,CAAC;MACjB;IACJ,CAAC,MAAM;MACH,IAAIA,KAAK,CAACG,UAAU,CAAC,gBAAgB,CAAC,EAAE;QACpCL,GAAG,gBAAG,gCAAC,0BAAG;UAAC,SAAS,EAAC,SAAS;UAAC,GAAG,EAAEE,KAAM;UAAC,KAAK,EAAE,EAAG;UAAC,MAAM,EAAE;QAAG,EAAG;MACxE,CAAC,MAAM;QACHF,GAAG,GAAGE,KAAK;MACf;IACJ;EACJ,CAAC,MAAM;IACH,IAAMC,MAAM,GAAGN,OAAO,CAACC,EAAE,CAAC,IAAID,OAAO,CAACC,EAAE,CAAC,CAACK,MAAM;IAEhD,IAAIA,MAAM,EAAE;MACR,IAAMI,KAAK,GAAGJ,MAAM,CAACC,IAAI;MACzB,IAAIG,KAAK,EAAE;QACP,IAAI,CAACA,KAAK,CAACF,UAAU,CAAC,aAAa,CAAC,EAAE;UAClC,IAAIE,KAAK,CAACD,QAAQ,CAAC,GAAG,CAAC,EAAE;YACrB,IAAIE,QAAQ;YACZ,IAAIX,OAAO,CAACC,EAAE,CAAC,CAACW,IAAI,KAAK,UAAU,IAAIZ,OAAO,CAACC,EAAE,CAAC,CAACW,IAAI,KAAK,SAAS,EAAE;cACnET,GAAG,aAAMD,WAAW,sBAAYI,MAAM,CAACX,IAAI,cAAIe,KAAK,CAAE;YAC1D,CAAC,MAAM,IAAIT,EAAE,IAAIA,EAAE,CAACO,UAAU,CAAC,iBAAiB,CAAC,EAAE;cAC/CG,QAAQ,GAAGV,EAAE,CAACY,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;cAC3B,IAAIH,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;gBAClBC,QAAQ,CAAC,CAAC,CAAC,IAAID,KAAK;cACxB,CAAC,MAAM;gBACHC,QAAQ,CAAC,CAAC,CAAC,eAAQD,KAAK,CAAE;cAC9B;cACAP,GAAG,aAAMD,WAAW,sBAAYS,QAAQ,CAAC,CAAC,CAAC,CAAE;YACjD,CAAC,MAAM;cACHA,QAAQ,GAAGV,EAAE,CAACY,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;cAC3B,IAAIH,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;gBAClBC,QAAQ,CAAC,CAAC,CAAC,IAAID,KAAK;cACxB,CAAC,MAAM;gBACHC,QAAQ,CAAC,CAAC,CAAC,eAAQD,KAAK,CAAE;cAC9B;cACAP,GAAG,aAAMD,WAAW,sBAAYS,QAAQ,CAAC,CAAC,CAAC,CAAE;YACjD;UACJ,CAAC,MAAM,IAAIN,KAAK,IAAIA,KAAK,CAACf,MAAM,GAAG,CAAC,EAAE;YAClC,OAAOe,KAAK,CAAC,CAAC;UAClB,CAAC,MAAM;YACH,OAAO,IAAI;UACf;QACJ,CAAC,MAAM,IAAIK,KAAK,CAACF,UAAU,CAAC,gBAAgB,CAAC,EAAE;UAC3C;UACAL,GAAG,gBAAG,gCAAC,0BAAG;YAAC,SAAS,EAAC,SAAS;YAAC,GAAG,EAAEO,KAAM;YAAC,KAAK,EAAE,EAAG;YAAC,MAAM,EAAE;UAAG,EAAG;QACxE,CAAC,MAAM;UACHP,GAAG,GAAGO,KAAK;QACf;MACJ;IACJ;EACJ;EAEA,OAAOP,GAAG,IAAI,IAAI;AACtB;AAEA,SAASW,WAAW,CAACC,IAAI,EAAEC,OAAO,EAAEpB,IAAI,EAAEI,OAAO,EAAEiB,OAAO,EAAEC,OAAO,EAAEC,YAAY,EAAEC,aAAa,EAAEC,MAAM,EAAE;EACtGA,MAAM,GAAGA,MAAM,IAAI,CAAC;EACpB,IAAInG,WAAW,GAAG,KAAK;EACvB,IAAI,CAAC+F,OAAO,EAAE;IACVA,OAAO,GAAG,CAAC,CAAC;IACZ,IAAID,OAAO,CAACf,EAAE,EAAE;MACZgB,OAAO,CAAChB,EAAE,GAAGe,OAAO,CAACf,EAAE,CAACqB,WAAW,EAAE;IACzC;IACA,IAAIN,OAAO,CAACrB,IAAI,EAAE;MACdsB,OAAO,CAACtB,IAAI,GAAGqB,OAAO,CAACrB,IAAI,CAAC2B,WAAW,EAAE;IAC7C;IACA,IAAIN,OAAO,CAACJ,IAAI,EAAE;MACdK,OAAO,CAACL,IAAI,GAAGI,OAAO,CAACJ,IAAI,CAACU,WAAW,EAAE;IAC7C;IACA,IAAIN,OAAO,CAACO,MAAM,EAAE;MAChBN,OAAO,CAACM,MAAM,GAAGP,OAAO,CAACO,MAAM,CAACD,WAAW,EAAE;IACjD;IACA,IAAIN,OAAO,CAACQ,IAAI,EAAE;MACdP,OAAO,CAACO,IAAI,GAAGR,OAAO,CAACQ,IAAI,CAACF,WAAW,EAAE;IAC7C;IACA,IAAIN,OAAO,CAACS,IAAI,EAAE;MACdR,OAAO,CAACQ,IAAI,GAAIzB,OAAO,CAACgB,OAAO,CAACS,IAAI,CAAC,IAAIzB,OAAO,CAACgB,OAAO,CAACS,IAAI,CAAC,CAACnB,MAAM,IAAIN,OAAO,CAACgB,OAAO,CAACS,IAAI,CAAC,CAACnB,MAAM,CAACoB,OAAO,IAAK,EAAE;IACxH;IACA,IAAIV,OAAO,CAACW,IAAI,EAAE;MACdV,OAAO,CAACU,IAAI,GAAI3B,OAAO,CAACgB,OAAO,CAACW,IAAI,CAAC,IAAI3B,OAAO,CAACgB,OAAO,CAACW,IAAI,CAAC,CAACrB,MAAM,IAAIN,OAAO,CAACgB,OAAO,CAACW,IAAI,CAAC,CAACrB,MAAM,CAACoB,OAAO,IAAK,EAAE;IACxH;EACJ;EAEA,IAAME,IAAI,GAAGb,IAAI,CAACa,IAAI;EAEtB,IAAIA,IAAI,IAAIA,IAAI,CAAC3B,EAAE,EAAE;IAAA;IACjB,IAAMK,MAAM,gBAAGsB,IAAI,CAACzD,GAAG,8CAAR,UAAUmC,MAAM;IAE/B,IAAIa,YAAY,EAAE;MAAA;MACd,IAAIA,YAAY,CAACP,IAAI,EAAE;QACnB,IAAI,OAAOO,YAAY,CAACP,IAAI,KAAK,QAAQ,EAAE;UACvC,IAAI,CAACgB,IAAI,CAACzD,GAAG,IAAIgD,YAAY,CAACP,IAAI,KAAKgB,IAAI,CAACzD,GAAG,CAACyC,IAAI,EAAE;YAClD1F,WAAW,GAAG,IAAI;UACtB;QACJ,CAAC,MAAM,IAAI2G,KAAK,CAACC,OAAO,CAACX,YAAY,CAACP,IAAI,CAAC,EAAE;UACzC,IAAI,CAACgB,IAAI,CAACzD,GAAG,IAAI,CAACgD,YAAY,CAACP,IAAI,CAACH,QAAQ,CAACmB,IAAI,CAACzD,GAAG,CAACyC,IAAI,CAAC,EAAE;YACzD1F,WAAW,GAAG,IAAI;UACtB;QACJ;MACJ;MACA,IAAI,CAACA,WAAW,4BAAIiG,YAAY,CAACb,MAAM,iDAAnB,qBAAqBM,IAAI,EAAE;QAC3C,IAAI,EAACN,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEM,IAAI,GAAE;UACf1F,WAAW,GAAG,IAAI;QACtB,CAAC,MAAM,IAAI,OAAOiG,YAAY,CAACb,MAAM,CAACM,IAAI,KAAK,QAAQ,EAAE;UACrD,IAAIO,YAAY,CAACb,MAAM,CAACM,IAAI,KAAKN,MAAM,CAACM,IAAI,EAAE;YAC1C1F,WAAW,GAAG,IAAI;UACtB;QACJ,CAAC,MAAM,IAAI2G,KAAK,CAACC,OAAO,CAACX,YAAY,CAACb,MAAM,CAACM,IAAI,CAAC,EAAE;UAChD,IAAI,CAACO,YAAY,CAACP,IAAI,CAACH,QAAQ,CAACH,MAAM,CAACM,IAAI,CAAC,EAAE;YAC1C1F,WAAW,GAAG,IAAI;UACtB;QACJ;MACJ;MACA,IAAI,CAACA,WAAW,6BAAIiG,YAAY,CAACb,MAAM,kDAAnB,sBAAqBkB,IAAI,EAAE;QAC3C,IAAI,EAAClB,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEkB,IAAI,GAAE;UACftG,WAAW,GAAG,IAAI;QACtB,CAAC,MAAM,IAAI,OAAOiG,YAAY,CAACb,MAAM,CAACkB,IAAI,KAAK,QAAQ,EAAE;UACrD,IAAIlB,MAAM,CAACkB,IAAI,CAAChB,UAAU,CAACW,YAAY,CAACb,MAAM,CAACkB,IAAI,CAAC,EAAE;YAClDtG,WAAW,GAAG,IAAI;UACtB;QACJ,CAAC,MAAM,IAAI2G,KAAK,CAACC,OAAO,CAACX,YAAY,CAACb,MAAM,CAACkB,IAAI,CAAC,EAAE;UAChD,IAAI,CAACL,YAAY,CAACb,MAAM,CAACkB,IAAI,CAACtC,IAAI,CAAC,UAAAsC,IAAI;YAAA,OAAIL,YAAY,CAACK,IAAI,CAACf,QAAQ,CAACe,IAAI,CAAC;UAAA,EAAC,EAAE;YAC1EtG,WAAW,GAAG,IAAI;UACtB;QACJ;MACJ;MACA,IAAI,CAACA,WAAW,6BAAIiG,YAAY,CAACb,MAAM,kDAAnB,sBAAqBiB,MAAM,EAAE;QAC7C,IAAI,EAACjB,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEiB,MAAM,GAAE;UACjBrG,WAAW,GAAG,IAAI;QACtB,CAAC,MACD,IAAIiG,YAAY,CAACb,MAAM,CAACiB,MAAM,KAAK,cAAc,EAAE;UAC/C;UACA,IAAI,CAACQ,MAAM,CAACC,IAAI,CAAC1B,MAAM,CAACiB,MAAM,CAAC,CAACrC,IAAI,CAAC,UAAAe,EAAE;YAAA,OAAIA,EAAE,CAACO,UAAU,CAAC,UAAU,CAAC,IAAIP,EAAE,CAACO,UAAU,CAAC,MAAM,CAAC,IAAIP,EAAE,CAACO,UAAU,CAAC,WAAW,CAAC;UAAA,EAAC,EAAE;YAC1HtF,WAAW,GAAG,IAAI;UACtB;QACJ,CAAC,MACD,IAAIiG,YAAY,CAACb,MAAM,CAACiB,MAAM,KAAK,IAAI,IACnC,CAACQ,MAAM,CAACC,IAAI,CAAC1B,MAAM,CAACiB,MAAM,CAAC,CAACrC,IAAI,CAAC,UAAAe,EAAE;UAAA,OAAIA,EAAE,CAACO,UAAU,CAACW,YAAY,CAACb,MAAM,CAACiB,MAAM,CAAC;QAAA,EAAC,EACnF;UACErG,WAAW,GAAG,IAAI;QACtB;MACJ;IACJ;IAEA,IAAI,CAACA,WAAW,IAAI,CAAC8F,OAAO,CAACiB,UAAU,EAAE;MACrC/G,WAAW,GACP0G,IAAI,CAAC3B,EAAE,KAAK,QAAQ,IACpB2B,IAAI,CAAC3B,EAAE,KAAK,MAAM;MAClB;MACA2B,IAAI,CAAC3B,EAAE,CAACO,UAAU,CAAC,SAAS,CAAC,IAC7BoB,IAAI,CAAC3B,EAAE,CAACO,UAAU,CAAC,OAAO,CAAC,IAC3BoB,IAAI,CAAC3B,EAAE,CAACO,UAAU,CAAC,UAAU,CAAC,IAC9BoB,IAAI,CAAC3B,EAAE,CAACiC,QAAQ,CAAC,QAAQ,CAAC,IACzB5B,MAAM,IAAIA,MAAM,CAAC6B,MAAO;IACjC;IACA,IAAI,CAACjH,WAAW,IAAI+F,OAAO,CAAChB,EAAE,EAAE;MAC5B,IAAI2B,IAAI,CAACQ,GAAG,KAAK/C,SAAS,EAAE;QACxBuC,IAAI,CAACQ,GAAG,GAAGR,IAAI,CAAC3B,EAAE,CAACqB,WAAW,EAAE;MACpC;MACApG,WAAW,GAAG,CAAC0G,IAAI,CAACQ,GAAG,CAAC3B,QAAQ,CAACQ,OAAO,CAAChB,EAAE,CAAC;IAChD;IACA,IAAI,CAAC/E,WAAW,IAAI+F,OAAO,CAACtB,IAAI,EAAE;MAC9B,IAAIW,MAAM,EAAE;QACR,IAAIsB,IAAI,CAACS,KAAK,KAAKhD,SAAS,EAAE;UAC1BuC,IAAI,CAACS,KAAK,GAAI/B,MAAM,IAAIZ,OAAO,CAACY,MAAM,CAACX,IAAI,EAAEC,IAAI,CAAC,IAAK,EAAE;UACzDgC,IAAI,CAACS,KAAK,GAAGT,IAAI,CAACS,KAAK,CAACf,WAAW,EAAE;QACzC;QACApG,WAAW,GAAG,CAAC0G,IAAI,CAACS,KAAK,CAAC5B,QAAQ,CAACQ,OAAO,CAACtB,IAAI,CAAC;MACpD,CAAC,MAAM;QACHzE,WAAW,GAAG,IAAI;MACtB;IACJ;IACA,IAAI,CAACA,WAAW,IAAI8F,OAAO,CAACQ,IAAI,IAAIlB,MAAM,EAAE;MACxC,IAAIA,MAAM,EAAE;QACRpF,WAAW,GAAG,EAAEoF,MAAM,CAACkB,IAAI,IAAIlB,MAAM,CAACkB,IAAI,CAAChB,UAAU,CAACS,OAAO,CAACO,IAAI,CAAC,CAAC;MACxE,CAAC,MAAM;QACHtG,WAAW,GAAG,IAAI;MACtB;IACJ;IACA,IAAI,CAACA,WAAW,IAAI+F,OAAO,CAACQ,IAAI,EAAE;MAC9BvG,WAAW,GAAG,CAAC+F,OAAO,CAACQ,IAAI,CAACvC,IAAI,CAAC,UAAAe,EAAE;QAAA,OAAIA,EAAE,KAAK2B,IAAI,CAAC3B,EAAE,IAAI2B,IAAI,CAAC3B,EAAE,CAACO,UAAU,WAAIP,EAAE,OAAI;MAAA,EAAC;IAC1F;IACA,IAAI,CAAC/E,WAAW,IAAI+F,OAAO,CAACU,IAAI,EAAE;MAC9BzG,WAAW,GAAG,CAAC+F,OAAO,CAACU,IAAI,CAACzC,IAAI,CAAC,UAAAe,EAAE;QAAA,OAAIA,EAAE,KAAK2B,IAAI,CAAC3B,EAAE,IAAI2B,IAAI,CAAC3B,EAAE,CAACO,UAAU,WAAIP,EAAE,OAAI;MAAA,EAAC;IAC1F;IACA,IAAI,CAAC/E,WAAW,IAAI+F,OAAO,CAACL,IAAI,EAAE;MAC9B1F,WAAW,GAAG,EAAE0G,IAAI,CAACzD,GAAG,IAAIyD,IAAI,CAACzD,GAAG,CAACyC,IAAI,IAAIgB,IAAI,CAACzD,GAAG,CAACyC,IAAI,KAAKK,OAAO,CAACL,IAAI,CAAC;IAChF;IACA,IAAI,CAAC1F,WAAW,IAAIkG,aAAa,EAAE;MAC/BlG,WAAW,GAAG,EAAE0G,IAAI,CAACzD,GAAG,IAAIyD,IAAI,CAACzD,GAAG,CAACyC,IAAI,IAAIQ,aAAa,CAACX,QAAQ,CAACmB,IAAI,CAACzD,GAAG,CAACyC,IAAI,CAAC,CAAC;IACvF;IACA,IAAI,CAAC1F,WAAW,IAAI+F,OAAO,CAACM,MAAM,EAAE;MAChC,IAAIjB,MAAM,EAAE;QACRpF,WAAW,GAAG,CAACoF,MAAM,CAACiB,MAAM,IAAI,CAACjB,MAAM,CAACiB,MAAM,CAACN,OAAO,CAACM,MAAM,CAAC;MAClE,CAAC,MAAM;QACHrG,WAAW,GAAG,IAAI;MACtB;IACJ;EACJ;EAEA0G,IAAI,CAACU,OAAO,GAAG,CAACpH,WAAW;EAE3B0G,IAAI,CAACW,kBAAkB,GAAG,KAAK;EAC/B,IAAIxB,IAAI,CAACyB,QAAQ,IAAInB,MAAM,GAAG,EAAE,EAAE;IAC9BN,IAAI,CAACyB,QAAQ,CAACC,OAAO,CAAC,UAAAC,KAAK,EAAI;MAC3B,IAAMJ,OAAO,GAAGxB,WAAW,CAAC4B,KAAK,EAAE1B,OAAO,EAAEpB,IAAI,EAAEI,OAAO,EAAEiB,OAAO,EAAEC,OAAO,EAAEC,YAAY,EAAEC,aAAa,EAAEC,MAAM,GAAG,CAAC,CAAC;MACrH,IAAIiB,OAAO,EAAE;QACTV,IAAI,CAACW,kBAAkB,GAAG,IAAI;MAClC;IACJ,CAAC,CAAC;EACN;;EAEA;EACAX,IAAI,CAACe,aAAa,GAAGf,IAAI,CAACU,OAAO,IAAIV,IAAI,CAACW,kBAAkB,CAAC;EAC7D,IAAIrB,OAAO,IAAIU,IAAI,CAACe,aAAa,EAAE;IAC/BzB,OAAO,CAAC0B,KAAK,EAAE;EACnB;;EAEA;EACA,IAAIhB,IAAI,CAAC3B,EAAE,IAAI2B,IAAI,CAACe,aAAa,IAAI5B,IAAI,CAACyB,QAAQ,EAAE;IAChDzB,IAAI,CAACyB,QAAQ,CAACC,OAAO,CAAC,UAAAC,KAAK;MAAA,OAAIA,KAAK,CAACd,IAAI,CAACiB,gBAAgB,GAAG,IAAI;IAAA,EAAC;EACtE;EAEA,OAAOjB,IAAI,CAACU,OAAO,IAAIV,IAAI,CAACW,kBAAkB;AAClD;AAEA,SAASO,eAAe,CAAC/B,IAAI,EAAEH,IAAI,EAAEZ,OAAO,EAAE+C,OAAO,EAAE;EACnDA,OAAO,GAAGA,OAAO,IAAI,EAAE;EACvB,IAAMnB,IAAI,GAAGb,IAAI,CAACa,IAAI;EACtB,IAAIA,IAAI,CAACe,aAAa,EAAE;IAAA;IACpBf,IAAI,CAAC3B,EAAE,IAAID,OAAO,CAAC4B,IAAI,CAAC3B,EAAE,CAAC,KAAK,CAACW,IAAI,IAAIZ,OAAO,CAAC4B,IAAI,CAAC3B,EAAE,CAAC,CAACW,IAAI,KAAKA,IAAI,CAAC,IAAImC,OAAO,CAACC,IAAI,CAACpB,IAAI,CAAC3B,EAAE,CAAC;IACjG,kBAAAc,IAAI,CAACyB,QAAQ,mDAAb,eAAeC,OAAO,CAAC,UAAAC,KAAK;MAAA,OACxBI,eAAe,CAACJ,KAAK,EAAE9B,IAAI,EAAEZ,OAAO,EAAE+C,OAAO,CAAC;IAAA,EAAC;EACvD;EAEA,OAAOA,OAAO;AAClB;AAEA,SAASE,aAAa,CAACjD,OAAO,EAAEC,EAAE,EAAEiD,CAAC,EAAEhD,WAAW,EAAE;EAChD,IAAIK,IAAI;;EAER;EACA,IAAIN,EAAE,CAACO,UAAU,CAAC,UAAU,CAAC,IAAKP,EAAE,KAAK,QAAS,EAAE;IAChDM,IAAI,gBAAG,gCAAC,gCAAU;MAAC,SAAS,EAAC;IAAS,EAAG;EAC7C,CAAC,MAAM,IAAIN,EAAE,KAAK,YAAY,IAAIA,EAAE,KAAK,cAAc,EAAE;IACrDM,IAAI,gBAAG,gCAAC,iBAAS;MAAC,SAAS,EAAC;IAAS,EAAG;EAC5C,CAAC,MAAM,IAAIN,EAAE,KAAK,OAAO,IAAIA,EAAE,KAAK,SAAS,EAAE;IAC3CM,IAAI,gBAAG,gCAAC,qBAAS;MAAC,SAAS,EAAC;IAAS,EAAG;EAC5C,CAAC,MAAM,IAAIN,EAAE,KAAK,gBAAgB,EAAE;IAChCM,IAAI,gBAAG,gCAAC,gCAAU;MAAC,SAAS,EAAC;IAAS,EAAG;EAC7C,CAAC,MAAM,IAAIN,EAAE,KAAK,cAAc,EAAE;IAC9BM,IAAI,gBAAG,gCAAC,gCAAS;MAAC,SAAS,EAAC;IAAS,EAAG;EAC5C,CAAC,MAAM,IAAIN,EAAE,KAAK,aAAa,EAAE;IAC7BM,IAAI,gBAAG,gCAAC,0BAAQ;MAAC,SAAS,EAAC;IAAS,EAAG;EAC3C,CAAC,MAAM,IAAIN,EAAE,KAAK,aAAa,EAAE;IAC7BM,IAAI,gBAAG,gCAAC,kBAAQ;MAAC,SAAS,EAAC;IAAS,EAAG;EAC3C,CAAC,MAAM,IAAIN,EAAE,CAACiC,QAAQ,CAAC,aAAa,CAAC,IAAIjC,EAAE,CAACiC,QAAQ,CAAC,YAAY,CAAC,EAAE;IAChE3B,IAAI,gBAAG,gCAAC,gBAAc;MAAC,SAAS,EAAC;IAAS,EAAG;EACjD,CAAC,MAAM,IAAIN,EAAE,CAACiC,QAAQ,CAAC,OAAO,CAAC,EAAE;IAC7B3B,IAAI,gBAAG,gCAAC,gBAAQ;MAAC,SAAS,EAAC;IAAS,EAAG;EAC3C,CAAC,MAAM,IAAIP,OAAO,CAACC,EAAE,CAAC,IAAID,OAAO,CAACC,EAAE,CAAC,CAACW,IAAI,KAAK,MAAM,EAAE;IACnDL,IAAI,gBAAG,gCAAC,uBAAQ;MAAC,SAAS,EAAC;IAAS,EAAG;EAC3C,CAAC,MAAM,IAAI2C,CAAC,GAAG,CAAC,EAAE;IACd;IACA,IAAIlD,OAAO,0BAAmBC,EAAE,EAAG,EAAE;MACjCM,IAAI,GAAGR,eAAe,CAACC,OAAO,2BAAoBC,EAAE,GAAIC,WAAW,CAAC;IACxE;EACJ;EAEA,OAAOK,IAAI,IAAI,IAAI;AACvB;AAEA,SAAS4C,iBAAiB,CAACvB,IAAI,EAAEwB,OAAO,EAAExD,IAAI,EAAE;EAAA;EAC5C,IAAIgC,IAAI,aAAJA,IAAI,6BAAJA,IAAI,CAAEzD,GAAG,4DAAT,WAAWmC,MAAM,8CAAjB,kBAAmB+C,IAAI,IAAIzB,IAAI,CAACzD,GAAG,CAACmC,MAAM,CAAC+C,IAAI,KAAK,EAAE,EAAE;IAAA;IACxD,IAAIC,OAAO,GAAG,EAAE;IAEhB,IAAI,yBAAO1B,IAAI,aAAJA,IAAI,qCAAJA,IAAI,CAAEzD,GAAG,oEAAT,WAAWmC,MAAM,sDAAjB,kBAAmB+C,IAAI,MAAK,QAAQ,IAAIzB,IAAI,CAACzD,GAAG,CAACmC,MAAM,CAAC+C,IAAI,CAACzD,IAAI,CAAC,KAAKP,SAAS,EAAE;MACzFiE,OAAO,GAAG1B,IAAI,CAACzD,GAAG,CAACmC,MAAM,CAAC+C,IAAI,CAACzD,IAAI,CAAC;IACxC,CAAC,MAAM,IAAI,yBAAOgC,IAAI,aAAJA,IAAI,qCAAJA,IAAI,CAAEzD,GAAG,oEAAT,WAAWmC,MAAM,sDAAjB,kBAAmB+C,IAAI,MAAK,QAAQ,IAAIzB,IAAI,CAACzD,GAAG,CAACmC,MAAM,CAAC+C,IAAI,CAAC,IAAI,CAAC,KAAKhE,SAAS,EAAE;MAChGiE,OAAO,GAAG1B,IAAI,CAACzD,GAAG,CAACmC,MAAM,CAAC+C,IAAI,CAAC,IAAI,CAAC;IACxC,CAAC,MAAM,IAAI,yBAAOzB,IAAI,aAAJA,IAAI,qCAAJA,IAAI,CAAEzD,GAAG,oEAAT,WAAWmC,MAAM,sDAAjB,kBAAmB+C,IAAI,MAAK,QAAQ,IAAIzB,IAAI,CAACzD,GAAG,CAACmC,MAAM,CAAC+C,IAAI,CAACzD,IAAI,CAAC,KAAKP,SAAS,EAAE;MAChG,OAAOuC,IAAI,CAAC3B,EAAE;IAClB,CAAC,MAAM;MACHqD,OAAO,GAAG1B,IAAI,CAACzD,GAAG,CAACmC,MAAM,CAAC+C,IAAI;IAClC;IAEA,gBAAIC,OAAO,qCAAP,SAAS9C,UAAU,CAAC,MAAM,CAAC,EAAE;MAC7B,oBAAO;QACH,SAAS,EAAE3J,iBAAK,CAAC0M,IAAI,CAACH,OAAO,CAAClL,iBAAiB,CAAE;QACjD,IAAI,EAAEoL,OAAQ;QACd,MAAM,EAAC,QAAQ;QACf,GAAG,EAAC;MAAY,GAEfA,OAAO,CACR;IACR;IAEA,oBAAO;MAAM,SAAS,EAAEzM,iBAAK,CAAC0M,IAAI,CAACH,OAAO,CAACnL,aAAa;IAAE,GAAEqL,OAAO,CAAQ;EAC/E;EAEA,OAAO1B,IAAI,CAAC3B,EAAE;AAClB;AAEA,SAASuD,SAAS,CAACxD,OAAO,EAAEyD,OAAO,EAAE;EACjCA,OAAO,GAAGA,OAAO,IAAI,CAAC,CAAC;EACvB,IAAMvD,WAAW,GAAGuD,OAAO,CAACvD,WAAW,IAAI,GAAG;EAE9C,IAAMwD,GAAG,GAAG3B,MAAM,CAACC,IAAI,CAAChC,OAAO,CAAC;EAEhC0D,GAAG,CAACC,IAAI,CAAC,UAACC,CAAC,EAAEC,CAAC,EAAK;IACf,IAAID,CAAC,KAAKC,CAAC,EAAE,OAAO,CAAC;IACrBD,CAAC,GAAGA,CAAC,CAACE,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;IAC3BD,CAAC,GAAGA,CAAC,CAACC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;IAC3B,IAAIF,CAAC,GAAGC,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,CAAC;EACb,CAAC,CAAC;;EAEF;EACA,IAAIE,cAAc,GAAG,EAAE;EACvB,IAAIC,WAAW,GAAG,EAAE;EACpB,IAAIC,cAAc,GAAG,CAAC;EACtB,IAAMC,IAAI,GAAG;IACTtC,IAAI,EAAE;MACFjC,IAAI,EAAE,EAAE;MACRM,EAAE,EAAE;IACR,CAAC;IACDuC,QAAQ,EAAE;EACd,CAAC;EAED,IAAM2B,IAAI,GAAG;IACTC,SAAS,EAAE,EAAE;IACbC,SAAS,EAAE,EAAE;IACbC,KAAK,EAAM,EAAE;IACbZ,GAAG,EAAQ,EAAE;IACba,KAAK,EAAM,EAAE;IACbvE,OAAO,EAAPA,OAAO;IACPwE,OAAO,EAAI,EAAE;IACbC,KAAK,EAAM,EAAE;IACbC,cAAc,EAAE;EACpB,CAAC;EAED,IAAIC,KAAK,GAAGT,IAAI;EAAC,2BAERU,CAAC;IACN,IAAM3E,EAAE,GAAGyD,GAAG,CAACkB,CAAC,CAAC;IACjB,IAAI,CAAC3E,EAAE,EAAE;MACL;IACJ;IACA,IAAM9B,GAAG,GAAG6B,OAAO,CAACC,EAAE,CAAC;IACvB,IAAM4E,KAAK,GAAG5E,EAAE,CAACY,KAAK,CAAC,GAAG,CAAC;IAE3B,IAAI1C,GAAG,CAACyC,IAAI,IAAI,CAACuD,IAAI,CAACI,KAAK,CAAC9D,QAAQ,CAACtC,GAAG,CAACyC,IAAI,CAAC,EAAE;MAC5CuD,IAAI,CAACI,KAAK,CAACvB,IAAI,CAAC7E,GAAG,CAACyC,IAAI,CAAC;IAC7B;IAEA,IAAIzC,GAAG,EAAE;MAAA;MACL,IAAMmC,MAAM,GAAGnC,GAAG,CAACmC,MAAM;MACzB,IAAMkB,IAAI,GAAGlB,MAAM,IAAIA,MAAM,CAACkB,IAAI;MAClC,IAAIA,IAAI,IAAI,CAAC2C,IAAI,CAACG,KAAK,CAAC7D,QAAQ,CAACe,IAAI,CAAC,EAAE;QACpC2C,IAAI,CAACG,KAAK,CAACtB,IAAI,CAACxB,IAAI,CAAC;MACzB,CAAC,MAAM,IAAIvB,EAAE,CAACO,UAAU,CAAC,aAAa,CAAC,EAAE;QACrC2D,IAAI,CAACE,SAAS,CAACrB,IAAI,CAAC/C,EAAE,CAAC;QACvBkE,IAAI,CAACM,KAAK,CAACzB,IAAI,CAAC/C,EAAE,CAAC;MACvB,CAAC,MAAM,IAAIA,EAAE,CAACO,UAAU,CAAC,iBAAiB,CAAC,EAAE;QACzC2D,IAAI,CAACC,SAAS,CAACpB,IAAI,CAAC/C,EAAE,CAAC;QACvBkE,IAAI,CAACM,KAAK,CAACzB,IAAI,CAAC/C,EAAE,CAAC;MACvB,CAAC,MAAM,IAAI9B,GAAG,CAACyC,IAAI,KAAK,MAAM,EAAE;QAC5BuD,IAAI,CAACM,KAAK,CAACzB,IAAI,CAAC/C,EAAE,CAAC;MACvB,CAAC,MAAM,IAAI9B,GAAG,CAACyC,IAAI,KAAK,UAAU,IAAIN,MAAM,KAAKA,MAAM,CAACwE,cAAc,uBAAIxE,MAAM,CAACyE,OAAO,4CAAd,gBAAgBxD,MAAM,CAAC,EAAE;QAC/F4C,IAAI,CAACO,cAAc,GAAG,IAAI;QAC1BP,IAAI,CAACK,OAAO,CAACxB,IAAI,CAAC/C,EAAE,CAAC+E,SAAS,CAAC,iBAAiB,CAAC1F,MAAM,CAAC,CAAC;MAC7D;IACJ;IAEA6E,IAAI,CAACT,GAAG,CAACV,IAAI,CAAC/C,EAAE,CAAC;IAEjB,IAAIgF,MAAM;;IAEV;IACA,GAAG;MACCA,MAAM,GAAG,KAAK;;MAEd;MACA,IAAI,CAACjB,WAAW,IAAI/D,EAAE,CAACO,UAAU,WAAIwD,WAAW,OAAI,EAAE;QAAA;QAClD;QACA,IAAIa,KAAK,CAACvF,MAAM,GAAG2E,cAAc,GAAG,CAAC,EAAE;UACnC,IAAIiB,OAAO,GAAGlB,WAAW;UACzB;UAAA,6BACSd,CAAC;YACNgC,OAAO,IAAI,CAACA,OAAO,GAAG,GAAG,GAAG,EAAE,IAAIL,KAAK,CAAC3B,CAAC,CAAC;YAC1C;YACA,IAAI,CAAClE,YAAY,CAACmF,IAAI,CAACT,GAAG,EAAEwB,OAAO,CAAC,EAAE;cAClC,IAAMC,OAAM,GAAG;gBACXvD,IAAI,EAAE;kBACFjC,IAAI,EAAOkF,KAAK,CAAC3B,CAAC,CAAC;kBACnBkC,MAAM,EAAKT,KAAK;kBAChB1E,EAAE,EAASiF,OAAO;kBAClB/G,GAAG,EAAQ6B,OAAO,CAACkF,OAAO,CAAC;kBAC3BG,KAAK,EAAMnC,CAAC;kBACZ3C,IAAI,EAAO0C,aAAa,CAACjD,OAAO,EAAEkF,OAAO,EAAEhC,CAAC,EAAEhD,WAAW,CAAC;kBAC1DoF,SAAS,EAAE;gBACf;cACJ,CAAC;cAEDX,KAAK,CAACnC,QAAQ,GAAGmC,KAAK,CAACnC,QAAQ,IAAI,EAAE;cACrCmC,KAAK,CAACnC,QAAQ,CAACQ,IAAI,CAACmC,OAAM,CAAC;cAC3BR,KAAK,GAAGQ,OAAM;cACdhB,IAAI,CAACT,GAAG,CAACV,IAAI,CAACkC,OAAO,CAAC,CAAC,CAAC;YAC5B,CAAC,MAAM;cACHP,KAAK,GAAGA,KAAK,CAACnC,QAAQ,CAACtD,IAAI,CAAC,UAAA6B,IAAI;gBAAA,OAAIA,IAAI,CAACa,IAAI,CAACjC,IAAI,KAAKkF,KAAK,CAAC3B,CAAC,CAAC;cAAA,EAAC;YACpE;UAAC;UAtBL,KAAK,IAAIA,CAAC,GAAGe,cAAc,EAAEf,CAAC,GAAG2B,KAAK,CAACvF,MAAM,GAAG,CAAC,EAAE4D,CAAC,EAAE,EAAE;YAAA,OAA/CA,CAAC;UAuBV;QACJ;QAEA,IAAMiC,MAAM,GAAG;UACXvD,IAAI,EAAE;YACFjC,IAAI,EAAQkF,KAAK,CAACA,KAAK,CAACvF,MAAM,GAAG,CAAC,CAAC;YACnCiG,KAAK,EAAO7F,OAAO,CAACvB,GAAG,IAAIA,GAAG,CAACmC,MAAM,IAAInC,GAAG,CAACmC,MAAM,CAACX,IAAI,EAAE8D,OAAO,CAAC7D,IAAI,CAAC;YACvEzB,GAAG,EAAHA,GAAG;YACHiH,MAAM,EAAMT,KAAK;YACjBpE,IAAI,EAAQR,eAAe,CAACC,OAAO,EAAEC,EAAE,EAAEC,WAAW,CAAC,IAAI+C,aAAa,CAACjD,OAAO,EAAEC,EAAE,EAAE,CAAC,EAAEC,WAAW,CAAC;YACnGD,EAAE,EAAFA,EAAE;YACFuF,UAAU,EAAE,gBAAArH,GAAG,CAACmC,MAAM,gDAAV,YAAYiB,MAAM,KAAIQ,MAAM,CAACC,IAAI,CAAC7D,GAAG,CAACmC,MAAM,CAACiB,MAAM,CAAC,CAACjC,MAAM;YACvE+F,KAAK,EAAOR,KAAK,CAACvF,MAAM,GAAG,CAAC;YAC5BgG,SAAS,EAAG,KAAK;YACjBG,MAAM,EAAMtH,GAAG,CAACyC,IAAI,KAAK,OAAO,qBAAIzC,GAAG,CAACmC,MAAM,iDAAV,aAAYkB,IAAI,KAAI,OAAOrD,GAAG,CAACmC,MAAM,CAACkB,IAAI,KAAK,QAAQ,IAAIrD,GAAG,CAACmC,MAAM,CAACkB,IAAI,CAAChB,UAAU,CAAC,QAAQ,CAAC,IAAI,iBAAArC,GAAG,CAACmC,MAAM,iDAAV,aAAYoF,KAAK,MAAK;UACjK;QACJ,CAAC;QAEDf,KAAK,CAACnC,QAAQ,GAAGmC,KAAK,CAACnC,QAAQ,IAAI,EAAE;QACrCmC,KAAK,CAACnC,QAAQ,CAACQ,IAAI,CAACmC,MAAM,CAAC;QAC3BR,KAAK,GAAGQ,MAAM;QAEdlB,cAAc,GAAGY,KAAK,CAACvF,MAAM;QAC7ByE,cAAc,GAAGc,KAAK;QACtBb,WAAW,GAAM/D,EAAE;MACvB,CAAC,MAAM;QACH,IAAI0F,CAAC,GAAG,CAAC;QAET,OAAO5B,cAAc,CAAC4B,CAAC,CAAC,KAAKd,KAAK,CAACc,CAAC,CAAC,EAAE;UACnCA,CAAC,EAAE;QACP;QAEA,IAAIA,CAAC,GAAG,CAAC,EAAE;UACP,IAAIC,IAAI,GAAG7B,cAAc,CAACzE,MAAM;UAChCyE,cAAc,GAAGA,cAAc,CAAC8B,MAAM,CAAC,CAAC,EAAEF,CAAC,CAAC;UAC5C1B,cAAc,GAAG0B,CAAC;UAClB3B,WAAW,GAAGD,cAAc,CAAC+B,IAAI,CAAC,GAAG,CAAC;UACtC,OAAOF,IAAI,GAAGD,CAAC,EAAE;YACbhB,KAAK,GAAGA,KAAK,CAAC/C,IAAI,CAACwD,MAAM;YACzBQ,IAAI,EAAE;UACV;QACJ,CAAC,MAAM;UACHjB,KAAK,GAAGT,IAAI;UACZH,cAAc,GAAG,EAAE;UACnBC,WAAW,GAAM,EAAE;UACnBC,cAAc,GAAG,CAAC;QACtB;QACAgB,MAAM,GAAG,IAAI;MACjB;IACJ,CAAC,QAAQA,MAAM;EAAE;EArHrB,KAAK,IAAIL,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGlB,GAAG,CAACpE,MAAM,EAAEsF,CAAC,EAAE,EAAE;IAAA,iBAA5BA,CAAC;IAAA,yBAGF;EAmHR;EAEAT,IAAI,CAACE,SAAS,CAACV,IAAI,CAAC,UAACC,CAAC,EAAEC,CAAC,EAAK;IAAA;IAC1B,IAAMkC,KAAK,GAAGrG,OAAO,CAAC,eAAAM,OAAO,CAAC4D,CAAC,CAAC,oEAAV,WAAYtD,MAAM,sDAAlB,kBAAoBX,IAAI,KAAIiE,CAAC,CAAC/C,KAAK,CAAC,GAAG,CAAC,CAACmF,GAAG,EAAE,CAAC;IACrE,IAAMC,KAAK,GAAGvG,OAAO,CAAC,eAAAM,OAAO,CAAC6D,CAAC,CAAC,oEAAV,WAAYvD,MAAM,sDAAlB,kBAAoBX,IAAI,KAAIkE,CAAC,CAAChD,KAAK,CAAC,GAAG,CAAC,CAACmF,GAAG,EAAE,CAAC;IACrE,IAAID,KAAK,GAAGE,KAAK,EAAE;MACf,OAAO,CAAC;IACZ;IACA,IAAIF,KAAK,GAAGE,KAAK,EAAE;MACf,OAAO,CAAC,CAAC;IACb;IACA,OAAO,CAAC;EACZ,CAAC,CAAC;EACF9B,IAAI,CAACC,SAAS,CAACT,IAAI,CAAC,UAACC,CAAC,EAAEC,CAAC,EAAK;IAAA;IAC1B,IAAMkC,KAAK,GAAGrG,OAAO,CAAC,gBAAAM,OAAO,CAAC4D,CAAC,CAAC,sEAAV,YAAYtD,MAAM,uDAAlB,mBAAoBX,IAAI,KAAIiE,CAAC,CAAC/C,KAAK,CAAC,GAAG,CAAC,CAACmF,GAAG,EAAE,CAAC;IACrE,IAAMC,KAAK,GAAGvG,OAAO,CAAC,gBAAAM,OAAO,CAAC6D,CAAC,CAAC,sEAAV,YAAYvD,MAAM,uDAAlB,mBAAoBX,IAAI,KAAIkE,CAAC,CAAChD,KAAK,CAAC,GAAG,CAAC,CAACmF,GAAG,EAAE,CAAC;IACrE,IAAID,KAAK,GAAGE,KAAK,EAAE;MACf,OAAO,CAAC;IACZ;IACA,IAAIF,KAAK,GAAGE,KAAK,EAAE;MACf,OAAO,CAAC,CAAC;IACb;IACA,OAAO,CAAC;EACZ,CAAC,CAAC;EACF9B,IAAI,CAACG,KAAK,CAACX,IAAI,EAAE;EACjBQ,IAAI,CAACI,KAAK,CAACZ,IAAI,EAAE;EAEjB,OAAO;IAAEQ,IAAI,EAAJA,IAAI;IAAED,IAAI,EAAJA;EAAK,CAAC;AACzB;AAEA,SAASgC,QAAQ,CAAChC,IAAI,EAAEjE,EAAE,EAAEkG,MAAM,EAAEC,KAAK,EAAEC,MAAM,EAAE;EAC/C,IAAInC,IAAI,CAACtC,IAAI,CAAC3B,EAAE,KAAKA,EAAE,EAAE;IACrB,OAAOiE,IAAI;EACf;EACA,IAAI,CAACiC,MAAM,EAAE;IACTA,MAAM,GAAGlG,EAAE,CAACY,KAAK,CAAC,GAAG,CAAC;IACtBwF,MAAM,GAAG,CAAC;IACVD,KAAK,GAAGD,MAAM,CAACE,MAAM,CAAC;EAC1B;EACA,IAAI,CAACnC,IAAI,CAAC1B,QAAQ,IAAI0B,IAAI,CAACtC,IAAI,CAAC3B,EAAE,KAAKA,EAAE,EAAE;IACvC,OAAO,IAAI;EACf;EACA,IAAIqG,KAAK;EACT,KAAK,IAAI1B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGV,IAAI,CAAC1B,QAAQ,CAAClD,MAAM,EAAEsF,CAAC,EAAE,EAAE;IAC3C,IAAM2B,GAAG,GAAGrC,IAAI,CAAC1B,QAAQ,CAACoC,CAAC,CAAC,CAAChD,IAAI,CAAC3B,EAAE;IACpC,IAAIsG,GAAG,KAAKH,KAAK,EAAE;MACfE,KAAK,GAAGpC,IAAI,CAAC1B,QAAQ,CAACoC,CAAC,CAAC;MACxB;IACJ,CAAC,MACD,IAAI2B,GAAG,GAAGH,KAAK,EAAE;MACb;IACJ;EACJ;EACA,IAAIE,KAAK,EAAE;IACP,OAAOJ,QAAQ,CAACI,KAAK,EAAErG,EAAE,EAAEkG,MAAM,YAAKC,KAAK,cAAID,MAAM,CAACE,MAAM,GAAG,CAAC,CAAC,GAAIA,MAAM,GAAG,CAAC,CAAC;EACpF;EAEA,OAAO,IAAI;AACf;AAEA,SAASG,kBAAkB,CAAC5E,IAAI,EAAE3B,EAAE,EAAEL,IAAI,EAAE6G,cAAc,EAAEC,KAAK,EAAE;EAC/D,IAAI,CAACzG,EAAE,EAAE;IACL,OAAO;MAAEyG,KAAK,EAAE,EAAE;MAAEC,GAAG,EAAE;IAAM,CAAC;EACpC;EACAD,KAAK,GAAGA,KAAK,IAAI,EAAE;EACnB,KAAK,IAAI9B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGhD,IAAI,CAACyC,SAAS,CAAC/E,MAAM,EAAEsF,CAAC,EAAE,EAAE;IAAA;IAC5C,IAAMtE,MAAM,4BAAGsB,IAAI,CAAC5B,OAAO,CAAC4B,IAAI,CAACyC,SAAS,CAACO,CAAC,CAAC,CAAC,0DAA/B,sBAAiCtE,MAAM;IACtD,IAAMX,IAAI,GAAGD,OAAO,CAACY,MAAM,CAACX,IAAI,EAAEC,IAAI,CAAC;IAEvC,IAAIU,MAAM,aAANA,MAAM,kCAANA,MAAM,CAAEoB,OAAO,4CAAf,gBAAiBjB,QAAQ,CAACR,EAAE,CAAC,IAAI,CAACyG,KAAK,CAACjG,QAAQ,CAACd,IAAI,CAAC,EAAE;MACxD,IAAI,CAAC8G,cAAc,EAAE;QACjBC,KAAK,CAAC1D,IAAI,CAACrD,IAAI,CAAC;MACpB,CAAC,MAAM;QACH+G,KAAK,CAAC1D,IAAI,CAAC;UAAErD,IAAI,EAAJA,IAAI;UAAEiH,MAAM,EAAE3G;QAAG,CAAC,CAAC;MACpC;IACJ;EACJ;EAEA,IAAI4G,QAAQ;;EAEZ;EACA,IAAMhC,KAAK,GAAG5E,EAAE,CAACY,KAAK,CAAC,GAAG,CAAC;EAC3BgE,KAAK,CAACmB,GAAG,EAAE;EACX/F,EAAE,GAAG4E,KAAK,CAACiB,IAAI,CAAC,GAAG,CAAC;EACpB,IAAIlE,IAAI,CAAC5B,OAAO,CAACC,EAAE,CAAC,EAAE;IAClB4G,QAAQ,GAAGH,KAAK,CAACpH,MAAM;IACvBkH,kBAAkB,CAAC5E,IAAI,EAAE3B,EAAE,EAAEL,IAAI,EAAE6G,cAAc,EAAEC,KAAK,CAAC;EAC7D;EAEA,OAAO;IAAEA,KAAK,EAALA,KAAK;IAAEC,GAAG,EAAE,CAACE;EAAS,CAAC,CAAC,CAAC;AACtC;;AAEA,SAASC,uBAAuB,CAAClF,IAAI,EAAE3B,EAAE,EAAE8G,QAAQ,EAAEC,KAAK,EAAE;EACxD,IAAI,CAAC/G,EAAE,EAAE;IACL,OAAO,EAAE;EACb;EACA+G,KAAK,GAAGA,KAAK,IAAI,EAAE;EACnB,KAAK,IAAIpC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGhD,IAAI,CAACmF,QAAQ,CAAC,CAACzH,MAAM,EAAEsF,CAAC,EAAE,EAAE;IAAA;IAC5C,IAAMtE,MAAM,4BAAGsB,IAAI,CAAC5B,OAAO,CAAC4B,IAAI,CAACmF,QAAQ,CAAC,CAACnC,CAAC,CAAC,CAAC,0DAA/B,sBAAiCtE,MAAM;IACtD,IAAIA,MAAM,aAANA,MAAM,mCAANA,MAAM,CAAEoB,OAAO,6CAAf,iBAAiBjB,QAAQ,CAACR,EAAE,CAAC,IAAI,CAAC+G,KAAK,CAACvG,QAAQ,CAACmB,IAAI,CAACmF,QAAQ,CAAC,CAACnC,CAAC,CAAC,CAAC,EAAE;MACrEoC,KAAK,CAAChE,IAAI,CAACpB,IAAI,CAACmF,QAAQ,CAAC,CAACnC,CAAC,CAAC,CAAC;IACjC;EACJ;EACAoC,KAAK,CAACrD,IAAI,EAAE;EAEZ,OAAOqD,KAAK;AAChB;AAEA,SAASC,sBAAsB,CAACrF,IAAI,EAAE3B,EAAE,EAAEL,IAAI,EAAE6G,cAAc,EAAEO,KAAK,EAAE;EACnE,IAAI,CAAC/G,EAAE,EAAE;IACL,OAAO;MAAE+G,KAAK,EAAE,EAAE;MAAEE,GAAG,EAAE;IAAM,CAAC;EACpC;EACAF,KAAK,GAAGA,KAAK,IAAI,EAAE;EACnB,KAAK,IAAIpC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGhD,IAAI,CAACwC,SAAS,CAAC9E,MAAM,EAAEsF,CAAC,EAAE,EAAE;IAAA;IAC5C,IAAMtE,MAAM,4BAAGsB,IAAI,CAAC5B,OAAO,CAAC4B,IAAI,CAACwC,SAAS,CAACQ,CAAC,CAAC,CAAC,0DAA/B,sBAAiCtE,MAAM;IACtD,IAAMX,IAAI,GAAGD,OAAO,CAACY,MAAM,CAACX,IAAI,EAAEC,IAAI,CAAC;IACvC,IAAIU,MAAM,aAANA,MAAM,mCAANA,MAAM,CAAEoB,OAAO,6CAAf,iBAAiBjB,QAAQ,CAACR,EAAE,CAAC,IAAI,CAAC+G,KAAK,CAACvG,QAAQ,CAACd,IAAI,CAAC,EAAE;MACxD,IAAI,CAAC8G,cAAc,EAAE;QACjBO,KAAK,CAAChE,IAAI,CAACrD,IAAI,CAAC;MACpB,CAAC,MAAM;QACHqH,KAAK,CAAChE,IAAI,CAAC;UAAErD,IAAI,EAAJA,IAAI;UAAEiH,MAAM,EAAE3G;QAAG,CAAC,CAAC;MACpC;IACJ;EACJ;EAEA,IAAI4G,QAAQ;;EAEZ;EACA,IAAMhC,KAAK,GAAG5E,EAAE,CAACY,KAAK,CAAC,GAAG,CAAC;EAC3BgE,KAAK,CAACmB,GAAG,EAAE;EACX/F,EAAE,GAAG4E,KAAK,CAACiB,IAAI,CAAC,GAAG,CAAC;EACpB,IAAIlE,IAAI,CAAC5B,OAAO,CAACC,EAAE,CAAC,EAAE;IAClB4G,QAAQ,GAAGG,KAAK,CAAC1H,MAAM;IACvB2H,sBAAsB,CAACrF,IAAI,EAAE3B,EAAE,EAAEL,IAAI,EAAE6G,cAAc,EAAEO,KAAK,CAAC;EACjE;EAEA,OAAO;IAAEA,KAAK,EAALA,KAAK;IAAEE,GAAG,EAAE,CAACL;EAAS,CAAC;AACpC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASM,WAAW,CAAClH,EAAE,EAAEmH,KAAK,EAAEjJ,GAAG,EAAEkJ,KAAK,EAAEC,UAAU,EAAEC,YAAY,EAAE;EAClE,IAAMC,MAAM,GAAG3Q,iBAAK,CAAC4Q,SAAS,CAACtJ,GAAG,CAAC;EACnC,IAAMuJ,QAAQ,GAAGvJ,GAAG,CAACmC,MAAM;EAE3B,IAAMqH,OAAO,GAAG,CAAC,CAAC;EAClB,IAAIC,CAAC,GAAIF,QAAQ,IAAIA,QAAQ,CAAC9G,IAAI,KAAK,MAAM,GAAI,QAAQ,GAAI,CAACwG,KAAK,IAAIA,KAAK,CAACS,GAAG,KAAK,IAAI,GAAG,QAAQ,GAAIT,KAAK,CAACS,GAAG,KAAKxI,SAAS,GAAG,SAAS,GAAG+H,KAAK,CAACS,GAAK;EACzJ,IAAMjH,IAAI,4BAAUgH,CAAC;EAErB,IAAIF,QAAQ,IAAIA,QAAQ,CAAClG,IAAI,IAAI,OAAOkG,QAAQ,CAAClG,IAAI,KAAK,QAAQ,IAAIkG,QAAQ,CAAClG,IAAI,CAACsG,KAAK,CAAC,oBAAoB,CAAC,EAAE;IAC7G,IAAIF,CAAC,IAAI,OAAOA,CAAC,KAAK,QAAQ,EAAE;MAC5B,IAAIA,CAAC,CAACtI,MAAM,KAAK,EAAE,EAAE;QAAE;QACnBsI,CAAC,GAAG,IAAIG,IAAI,CAAC9M,QAAQ,CAAC2M,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC9H,QAAQ,EAAE;MAC5C,CAAC,MAAM;QACH;MAAA;IAER,CAAC,MAAM;MACH,IAAI8H,CAAC,GAAG,SAAS,IAAIA,CAAC,GAAG,YAAY,EAAE;QAAE;QACrCA,CAAC,IAAI,IAAI,CAAC,CAAC;MACf;MACA;MACAA,CAAC,GAAGA,CAAC,GAAG,IAAIG,IAAI,CAACH,CAAC,CAAC,CAAC9H,QAAQ,EAAE,GAAG8H,CAAC;IACtC;EACJ,CAAC,MAAM;IACH,IAAIhH,IAAI,KAAK,QAAQ,EAAE;MACnBgH,CAAC,GAAGpI,IAAI,CAACwI,KAAK,CAACJ,CAAC,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC;MAC3C,IAAIL,YAAY,EAAE;QACdK,CAAC,GAAGA,CAAC,CAAC9H,QAAQ,EAAE,CAACgE,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;MACtC;IACJ,CAAC,MAAM,IAAIlD,IAAI,KAAK,QAAQ,EAAE;MAC1BgH,CAAC,GAAGnJ,IAAI,CAACC,SAAS,CAACkJ,CAAC,CAAC;IACzB,CAAC,MAAM,IAAIhH,IAAI,KAAK,QAAQ,EAAE;MAC1BgH,CAAC,GAAGA,CAAC,CAAC9H,QAAQ,EAAE;IACpB;IAEA,IAAI,OAAO8H,CAAC,KAAK,QAAQ,EAAE;MACvBA,CAAC,GAAGA,CAAC,CAAC9H,QAAQ,EAAE;IACpB;EACJ;;EAEA;EACA,IAAI0H,MAAM,IAAIA,MAAM,CAACI,CAAC,CAAC,KAAKvI,SAAS,EAAE;IACnC,IAAIuI,CAAC,KAAKJ,MAAM,CAACI,CAAC,CAAC,EAAE;MACjBD,OAAO,CAACM,CAAC,GAAGL,CAAC;MACbA,CAAC,GAAGJ,MAAM,CAACI,CAAC,CAAC;IACjB;EACJ;EAEA,IAAIF,QAAQ,IAAIA,QAAQ,CAACQ,IAAI,EAAE;IAC3BP,OAAO,CAAChC,CAAC,GAAG+B,QAAQ,CAACQ,IAAI;EAC7B;EACA,IAAMC,OAAO,GAAG,CAAC;IAAEC,CAAC,EAAEf,KAAK,CAACgB,KAAK;IAAET,CAAC,EAADA;EAAE,CAAC,CAAC;EAEvC,IAAIR,KAAK,EAAE;IACP,IAAIA,KAAK,CAACkB,GAAG,KAAKjJ,SAAS,IAAI+H,KAAK,CAACkB,GAAG,KAAK,IAAI,EAAE;MAC/CH,OAAO,CAACnF,IAAI,CAAC;QAAEoF,CAAC,EAAEf,KAAK,CAACiB,GAAG;QAAEV,CAAC,EAAER,KAAK,CAACkB,GAAG,CAACxI,QAAQ;MAAG,CAAC,CAAC;IAC3D;IACA,IAAIsH,KAAK,CAACmB,EAAE,EAAE;MACVJ,OAAO,CAACnF,IAAI,CAAC;QAAEoF,CAAC,EAAEf,KAAK,CAACkB,EAAE;QAAEX,CAAC,EAAER,KAAK,CAACmB,EAAE,GAAG1R,iBAAK,CAAC2R,UAAU,CAAC,IAAIT,IAAI,CAACX,KAAK,CAACmB,EAAE,CAAC,EAAEjB,UAAU,CAAC,GAAG;MAAG,CAAC,CAAC;IACtG;IACA,IAAIF,KAAK,CAACqB,EAAE,EAAE;MACVN,OAAO,CAACnF,IAAI,CAAC;QAAEoF,CAAC,EAAEf,KAAK,CAACoB,EAAE;QAAEb,CAAC,EAAER,KAAK,CAACqB,EAAE,GAAG5R,iBAAK,CAAC2R,UAAU,CAAC,IAAIT,IAAI,CAACX,KAAK,CAACqB,EAAE,CAAC,EAAEnB,UAAU,CAAC,GAAG;MAAG,CAAC,CAAC;IACtG;IACA,IAAIF,KAAK,CAACsB,IAAI,EAAE;MACZ,IAAIA,IAAI,GAAGtB,KAAK,CAACsB,IAAI,CAAC5I,QAAQ,EAAE;MAChC,IAAI4I,IAAI,CAAClI,UAAU,CAAC,iBAAiB,CAAC,EAAE;QACpCkI,IAAI,GAAGA,IAAI,CAAC1D,SAAS,CAAC,EAAE,CAAC;MAC7B;MACAmD,OAAO,CAACnF,IAAI,CAAC;QAAEoF,CAAC,EAAEf,KAAK,CAACqB,IAAI;QAAEd,CAAC,EAAEc;MAAK,CAAC,CAAC;IAC5C;IACA,IAAItB,KAAK,CAACuB,IAAI,EAAE;MACZ,IAAIA,IAAI,GAAGvB,KAAK,CAACuB,IAAI,CAAC7I,QAAQ,EAAE;MAChC,IAAI6I,IAAI,CAACnI,UAAU,CAAC,cAAc,CAAC,EAAE;QACjCmI,IAAI,GAAGA,IAAI,CAAC3D,SAAS,CAAC,EAAE,CAAC;MAC7B;MACAmD,OAAO,CAACnF,IAAI,CAAC;QAAEoF,CAAC,EAAEf,KAAK,CAACsB,IAAI;QAAEf,CAAC,EAAEe;MAAK,CAAC,CAAC;IAC5C;IACA,IAAIvB,KAAK,CAACwB,CAAC,EAAE;MACTT,OAAO,CAACnF,IAAI,CAAC;QAAEoF,CAAC,EAAEf,KAAK,CAACuB,CAAC;QAAEhB,CAAC,EAAER,KAAK,CAACwB;MAAE,CAAC,CAAC;IAC5C;IACAT,OAAO,CAACnF,IAAI,CAAC;MAAEoF,CAAC,EAAEf,KAAK,CAACwB,OAAO;MAAEjB,CAAC,EAAE/Q,iBAAK,CAACiS,YAAY,CAAC1B,KAAK,CAAC2B,CAAC,IAAI,CAAC,CAAC,CAACjD,IAAI,CAAC,IAAI,CAAC;MAAEkD,GAAG,EAAE;IAAK,CAAC,CAAC;EACjG;EAEArB,OAAO,CAACC,CAAC,GAAGA,CAAC;EAEb,OAAO;IACHD,OAAO,EAAPA,OAAO;IACPQ,OAAO,EAAPA,OAAO;IACPxJ,KAAK,EAAE;MAAE1I,KAAK,EAAEmR,KAAK,aAALA,KAAK,eAALA,KAAK,CAAEkB,GAAG,GAAIlB,KAAK,CAAC2B,CAAC,GAAG,SAAS,GAAG,EAAE,GAAI;IAAY;EAC1E,CAAC;AACL;AAEA,SAASE,gBAAgB,CAACC,MAAM,EAAER,IAAI,EAAE;EACpC;EACA,IAAIS,IAAI,GAAGT,IAAI;EACf,IAAI9D,CAAC,GAAG,CAAC;EACT,IAAMgD,CAAC,GAAG,EAAE;EAEZ,OAAOhD,CAAC,GAAGsE,MAAM,CAAC5J,MAAM,IAAI6J,IAAI,GAAGT,IAAI,GAAG,EAAE,GAAG,OAAO,EAAE;IACpD;IACA,OAAOQ,MAAM,CAACtE,CAAC,GAAG,CAAC,CAAC,CAAC2D,EAAE,GAAGY,IAAI,IAAIA,IAAI,IAAID,MAAM,CAACtE,CAAC,CAAC,CAAC2D,EAAE,IAAI3D,CAAC,GAAGsE,MAAM,CAAC5J,MAAM,EAAE;MACzEsF,CAAC,EAAE;IACP;IACA,IAAIA,CAAC,KAAK,CAAC,IAAIsE,MAAM,CAACtE,CAAC,GAAG,CAAC,CAAC,CAAC2D,EAAE,IAAIY,IAAI,EAAE;MACrC;MACAvB,CAAC,CAAC5E,IAAI,CAAC,CAAC,CAAC;IACb,CAAC,MACD,IAAI4B,CAAC,GAAGsE,MAAM,CAAC5J,MAAM,EAAE;MACnB,IAAI,OAAO4J,MAAM,CAACtE,CAAC,CAAC,CAACiD,GAAG,KAAK,SAAS,IAAI,OAAOqB,MAAM,CAACtE,CAAC,GAAG,CAAC,CAAC,CAACiD,GAAG,KAAK,SAAS,EAAE;QAC9ED,CAAC,CAAC5E,IAAI,CAACkG,MAAM,CAACtE,CAAC,CAAC,CAACiD,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;MACjC,CAAC,MAAM;QACH;QACAqB,MAAM,CAACtE,CAAC,GAAG,CAAC,CAAC,CAACiD,GAAG,GAAGqB,MAAM,CAACtE,CAAC,GAAG,CAAC,CAAC,CAACiD,GAAG,IAAI,CAAC;QAC1CqB,MAAM,CAACtE,CAAC,CAAC,CAACiD,GAAG,GAAGqB,MAAM,CAACtE,CAAC,CAAC,CAACiD,GAAG,IAAI,CAAC;QAClC;QACA,IAAMA,GAAG,GAAGqB,MAAM,CAACtE,CAAC,GAAG,CAAC,CAAC,CAACiD,GAAG,GAAI,CAACqB,MAAM,CAACtE,CAAC,CAAC,CAACiD,GAAG,GAAGqB,MAAM,CAACtE,CAAC,GAAG,CAAC,CAAC,CAACiD,GAAG,KAAKsB,IAAI,GAAGD,MAAM,CAACtE,CAAC,GAAG,CAAC,CAAC,CAAC2D,EAAE,CAAC,IAAKW,MAAM,CAACtE,CAAC,CAAC,CAAC2D,EAAE,GAAGW,MAAM,CAACtE,CAAC,GAAG,CAAC,CAAC,CAAC2D,EAAE,CAAC;QAErIX,CAAC,CAAC5E,IAAI,CAAC6E,GAAG,CAAC;MACf;IACJ;IAEAsB,IAAI,IAAI,OAAO;EACnB;EAEA,OAAOvB,CAAC;AACZ;;AAEA;AACA;AACA;AACA,IAAMwB,cAAc,GAAG;EACnBnJ,EAAE,EAAM,EAAE;EACVN,IAAI,EAAI,EAAE;EACV8B,IAAI,EAAI,EAAE;EACVE,IAAI,EAAI,EAAE;EACVH,IAAI,EAAI,EAAE;EACVZ,IAAI,EAAI,EAAE;EACVW,MAAM,EAAE,EAAE;EACVU,UAAU,EAAE;AAChB,CAAC;AAED,IAAMoH,WAAW,GAAG;EAChBjC,KAAK,eAAK,gCAAC,qBAAS;IAAC,SAAS,EAAC;EAAU,EAAG;EAC5CkC,OAAO,eAAG,gCAAC,uBAAW;IAAC,SAAS,EAAC;EAAU,EAAG;EAC9CC,MAAM,eAAI,gCAAC,sBAAU;IAAC,SAAS,EAAC;EAAU,EAAG;EAC7CC,OAAO,eAAG,gCAAC,uBAAW;IAAC,SAAS,EAAC;EAAU,EAAG;EAC9CC,IAAI,eAAM,gCAAC,uBAAQ;IAAC,SAAS,EAAC;EAAU,EAAG;EAC3C9I,QAAQ,eAAE,gCAAC,wBAAY;IAAC,SAAS,EAAC,UAAU;IAAC,KAAK,EAAE;MAAE1K,KAAK,EAAE;IAAU;EAAE,EAAG;EAC5E,qBAAU,gCAAC,mBAAQ;IAAC,SAAS,EAAC;EAAU,EAAG;EAC3CyT,KAAK,eAAK,gCAAC,qBAAS;IAAC,SAAS,EAAC;EAAU,EAAG;EAC5CC,MAAM,eAAI,gCAAC,oBAAU;IAAC,SAAS,EAAC;EAAU,EAAG;EAC7CC,KAAK,eAAK,gCAAC,gCAAS;IAAC,SAAS,EAAC;EAAU,EAAG;EAC5CjB,IAAI,eAAM,gCAAC,0BAAQ;IAAC,SAAS,EAAC;EAAU,EAAG;EAC3CkB,IAAI,eAAM,gCAAC,kBAAQ;IAAC,SAAS,EAAC;EAAU,EAAG;EAC3CC,QAAQ,eAAE,gCAAC,yBAAY;IAAC,SAAS,EAAC;EAAU,EAAG;EAC/CC,MAAM,eAAI,gCAAC,gBAAU;IAAC,SAAS,EAAC;EAAU,EAAG;EAC7CC,MAAM,eAAI,gCAAC,sBAAU;IAAC,SAAS,EAAC;EAAyB;AAC7D,CAAC;AAED,IAAMC,WAAW,GAAG,IAAAC,sBAAU,EAAC,UAAA/W,KAAK;EAAA,OAAK;IACrCgX,KAAK,EAAE;MACH/R,KAAK,EAAE,CAAC;MACRrC,GAAG,EAAE,CAAC;MACNqU,MAAM,sBAAejX,KAAK,CAACqD,OAAO,CAACD,UAAU,CAAC8T,KAAK,CAAE;MACrD9W,OAAO,EAAE;IACb;EACJ,CAAC;AAAA,CAAC,CAAC,CAAC+W,iBAAK,CAAC;AAEV,IAAMC,aAAa,GAAG;EAClB;EACAC,EAAE,EAAE;IAAEC,OAAO,EAAE,MAAM;IAAEC,MAAM,EAAE,EAAE;IAAEC,MAAM,EAAE,CAAC;EAAE,CAAC;EAC/C;EACAC,EAAE,EAAE;IAAEH,OAAO,EAAE,GAAG;IAAEC,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;IAAEC,MAAM,EAAE;MAAElJ,IAAI,EAAE,GAAG;MAAEoG,GAAG,EAAE;IAAI;EAAE,CAAC;EAC9E;EACAgD,EAAE,EAAE;IACAJ,OAAO,EAAE,GAAG;IACZC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC;IAC1CC,MAAM,EAAE;MACJhL,IAAI,EAAE,GAAG;MAAE8B,IAAI,EAAE,GAAG;MAAEE,IAAI,EAAE,GAAG;MAAEkG,GAAG,EAAE,GAAG;MAAEiD,OAAO,EAAE;IACxD;EACJ,CAAC;EACD;EACAC,EAAE,EAAE;IACAN,OAAO,EAAE,GAAG;IACZC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,CAAC;IAC3HC,MAAM,EAAE;MACJhL,IAAI,EAAE,GAAG;MACTiB,IAAI,EAAE,EAAE;MACRY,IAAI,EAAE,GAAG;MACTC,IAAI,EAAE,GAAG;MACTE,IAAI,EAAE,GAAG;MACTkG,GAAG,EAAE,GAAG;MACRiD,OAAO,EAAE,GAAG;MACZE,WAAW,EAAE,GAAG;MAChBC,WAAW,EAAE,GAAG;MAChBC,SAAS,EAAE,GAAG;MACdC,UAAU,EAAE;IAChB;EACJ,CAAC;EACD;EACA;EACAC,EAAE,EAAE;IACAX,OAAO,EAAE,GAAG;IACZC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,CAAC;IAC3HC,MAAM,EAAE;MACJhL,IAAI,EAAE,GAAG;MACTiB,IAAI,EAAE,EAAE;MACRY,IAAI,EAAE,GAAG;MACTC,IAAI,EAAE,GAAG;MACTE,IAAI,EAAE,GAAG;MACTkG,GAAG,EAAE,GAAG;MACRiD,OAAO,EAAE,GAAG;MACZE,WAAW,EAAE,GAAG;MAChBC,WAAW,EAAE,GAAG;MAChBC,SAAS,EAAE,GAAG;MACdC,UAAU,EAAE;IAChB;EACJ;AACJ,CAAC;AAED,IAAIE,oBAAoB,GAAG,KAAK;;AAEhC;AACA;AACA;AAFA,IAGMC,aAAa;EAAA;EAAA;EACf;AACJ;AACA;EACI,uBAAYC,KAAK,EAAE;IAAA;IAAA;IACf,0BAAMA,KAAK;IAAE,kGAiyBD,UAACtL,EAAE,EAAEmH,KAAK,EAAK;MAC3BoE,OAAO,CAACC,GAAG,yBAAkBxL,EAAE,EAAG;MAClC,IAAI,MAAKuH,MAAM,CAACvH,EAAE,CAAC,EAAE;QACjB,IAAMc,IAAI,GAAG,MAAK2K,QAAQ,CAACzL,EAAE,CAAC;QAC9B,IAAIc,IAAI,IAAIA,IAAI,CAACa,IAAI,CAACwF,KAAK,EAAE;UACzBrG,IAAI,CAACa,IAAI,CAACwF,KAAK,GAAG,IAAI;QAC1B;MACJ;MACA,MAAKI,MAAM,CAACvH,EAAE,CAAC,GAAGmH,KAAK;MAEvB,IAAI,CAAC,MAAKuE,gBAAgB,EAAE;QACxB,IAAI,CAAC,MAAKC,iBAAiB,EAAE;UACzB,MAAKA,iBAAiB,GAAGC,UAAU,CAAC,YAAM;YACtC,MAAKD,iBAAiB,GAAG,IAAI;YAC7B,MAAKE,WAAW,EAAE;UACtB,CAAC,EAAE,GAAG,CAAC;QACX;MACJ,CAAC,MAAM,IAAI,MAAKF,iBAAiB,EAAE;QAC/BG,YAAY,CAAC,MAAKH,iBAAiB,CAAC;QACpC,MAAKA,iBAAiB,GAAG,IAAI;MACjC;IACJ,CAAC;IAAA,mGAyEgB,UAAC3L,EAAE,EAAE9B,GAAG,iBAAmB;MACxC,IAAI6N,QAAQ;MAEZ,IAAInK,KAAK,CAACC,OAAO,CAAC7B,EAAE,CAAC,EAAE;QACnBA,EAAE,CAACwC,OAAO,CAAC,UAAAwJ,KAAK,EAAI;UAChBT,OAAO,CAACC,GAAG,0BAAmBQ,KAAK,CAAChM,EAAE,EAAG;UAEzC,IAAIgM,KAAK,CAAC9N,GAAG,IAAI,OAAO,MAAKoN,KAAK,CAACW,UAAU,KAAK,UAAU,IAAI,CAAC,MAAKX,KAAK,CAACW,UAAU,CAACD,KAAK,CAAC9N,GAAG,CAAC,EAAE;YAC/F;UACJ;UAEA,IAAI8N,KAAK,CAAChM,EAAE,CAACO,UAAU,CAAC,iBAAiB,CAAC,IAAIyL,KAAK,CAAC9N,GAAG,IAAI8N,KAAK,CAAC9N,GAAG,CAACyC,IAAI,KAAK,SAAS,EAAE;YACrF,IAAMuL,eAAe,GAAG1N,IAAI,CAAC2N,KAAK,CAAC3N,IAAI,CAACC,SAAS,CAAC,MAAK0I,KAAK,CAAC+E,eAAe,CAAC,CAAC;YAE9E,MAAKE,oBAAoB,CAACF,eAAe,EAAEF,KAAK,CAAC9N,GAAG,CAAC;YAErD,IAAIM,IAAI,CAACC,SAAS,CAAC,MAAK0I,KAAK,CAAC+E,eAAe,CAAC,KAAK1N,IAAI,CAACC,SAAS,CAACyN,eAAe,CAAC,EAAE;cAChFH,QAAQ,GAAG;gBAAEG,eAAe,EAAfA;cAAgB,CAAC;YAClC;UACJ;UACA,MAAKnM,OAAO,GAAG,MAAKA,OAAO,IAAI,EAAE;UACjC,IAAI,MAAKA,OAAO,CAACiM,KAAK,CAAChM,EAAE,CAAC,EAAE;YACxB,IAAIgM,KAAK,CAAC9N,GAAG,EAAE;cACX,MAAK6B,OAAO,CAACiM,KAAK,CAAChM,EAAE,CAAC,GAAGgM,KAAK,CAAC9N,GAAG;YACtC,CAAC,MAAM;cACH,OAAO,MAAK6B,OAAO,CAACiM,KAAK,CAAChM,EAAE,CAAC;YACjC;UACJ;QACJ,CAAC,CAAC;MACN,CAAC,MAAM;QACHuL,OAAO,CAACC,GAAG,0BAAmBxL,EAAE,EAAG;QACnC,MAAKD,OAAO,GAAG,MAAKA,OAAO,IAAI,EAAE;QAEjC,IAAI7B,GAAG,IAAI,OAAO,MAAKoN,KAAK,CAACW,UAAU,KAAK,UAAU,IAAI,CAAC,MAAKX,KAAK,CAACW,UAAU,CAAC/N,GAAG,CAAC,EAAE;UACnF;QACJ;QAEA,IAAI8B,EAAE,CAACO,UAAU,CAAC,iBAAiB,CAAC,IAAIrC,GAAG,IAAIA,GAAG,CAACyC,IAAI,KAAK,SAAS,EAAE;UACnE,IAAMuL,eAAe,GAAG1N,IAAI,CAAC2N,KAAK,CAAC3N,IAAI,CAACC,SAAS,CAAC,MAAK0I,KAAK,CAAC+E,eAAe,CAAC,CAAC;UAC9E,MAAKE,oBAAoB,CAACF,eAAe,EAAEhO,GAAG,CAAC;UAC/C,IAAIM,IAAI,CAACC,SAAS,CAAC,MAAK0I,KAAK,CAAC+E,eAAe,CAAC,KAAK1N,IAAI,CAACC,SAAS,CAACyN,eAAe,CAAC,EAAE;YAChFH,QAAQ,GAAG;cAAEG,eAAe,EAAfA;YAAgB,CAAC;UAClC;QACJ;QAEA,IAAI,MAAKnM,OAAO,CAACC,EAAE,CAAC,EAAE;UAClB,IAAI9B,GAAG,EAAE;YACL,MAAK6B,OAAO,CAACC,EAAE,CAAC,GAAG9B,GAAG;UAC1B,CAAC,MAAM;YACH,OAAO,MAAK6B,OAAO,CAACC,EAAE,CAAC;UAC3B;QACJ;MACJ;MAEA+L,QAAQ,IAAI,MAAKM,QAAQ,CAACN,QAAQ,CAAC;MAEnC,IAAI,CAAC,MAAKO,kBAAkB,IAAI,MAAKvM,OAAO,EAAE;QAC1C,MAAKuM,kBAAkB,GAAGV,UAAU,CAAC,YAAM;UACvC,MAAKU,kBAAkB,GAAG,IAAI;UAC9B,iBAAuB/I,SAAS,CAAC,MAAKxD,OAAO,EAAE,MAAKuL,KAAK,CAAC;YAAlDpH,IAAI,cAAJA,IAAI;YAAED,IAAI,cAAJA,IAAI;UAClB,MAAKA,IAAI,GAAGA,IAAI;UAChB,MAAKC,IAAI,GAAGA,IAAI;UAChB,MAAKqI,iBAAiB,GAAG,IAAI,CAAC,CAAC;;UAE/B,IAAI,CAAC,MAAKb,gBAAgB,EAAE;YACxB,MAAKG,WAAW,EAAE;UACtB;UACA;QACJ,CAAC,EAAE,GAAG,CAAC;MACX;IACJ,CAAC;IAAA,kGA8Xe,UAAA7L,EAAE,EAAI;MAClB,IAAMwM,MAAM,GAAG,EAAE;MACjB,MAAKtI,IAAI,CAACM,KAAK,CAAChC,OAAO,CAAC,UAAA8D,GAAG,EAAI;QAAA;QAC3B,yBAAI,MAAKvG,OAAO,CAACuG,GAAG,CAAC,uEAAjB,kBAAmBjG,MAAM,4EAAzB,sBAA2BoB,OAAO,mDAAlC,uBAAoCjB,QAAQ,CAACR,EAAE,CAAC,EAAE;UAClD,IAAMJ,EAAE,GAAG;YACP0G,GAAG,EAAE,MAAKvG,OAAO,CAACuG,GAAG,CAAC,CAACA,GAAG;YAC1BjG,MAAM,EAAE7B,IAAI,CAAC2N,KAAK,CAAC3N,IAAI,CAACC,SAAS,CAAC,MAAKsB,OAAO,CAACuG,GAAG,CAAC,CAACjG,MAAM,CAAC,CAAC;YAC5D,UAAQ,MAAKN,OAAO,CAACuG,GAAG,CAAC,UAAO;YAChC3F,IAAI,EAAE;UACV,CAAC;UACD,IAAIf,EAAE,CAACS,MAAM,EAAE;YACX,OAAOT,EAAE,CAACS,MAAM,CAACoB,OAAO;YACxB,OAAO7B,EAAE,CAACS,MAAM,CAACiB,MAAM;YACvB,OAAO1B,EAAE,CAACS,MAAM,CAACoM,MAAM;UAC3B;UACAD,MAAM,CAACzJ,IAAI,CAACnD,EAAE,CAAC;QACnB;MACJ,CAAC,CAAC;MAEF,OAAO4M,MAAM,CAACnN,MAAM,GAAGmN,MAAM,GAAGpN,SAAS;IAC7C,CAAC;IAAA;MAAA,yFAOiB,iBAAOoF,KAAK,EAAEkI,KAAK;QAAA;QAAA;UAAA;YAAA;cAAA;gBACxBC,CAAC,GAAG,CAAC;cAAA;gBAAA,MAAEA,CAAC,GAAGnI,KAAK,CAACnF,MAAM;kBAAA;kBAAA;gBAAA;gBACxBW,EAAE,GAAGwE,KAAK,CAACmI,CAAC,CAAC;gBACbC,MAAM;gBACV,IAAI,yBAAO5M,EAAE,MAAK,QAAQ,EAAE;kBACxB4M,MAAM,GAAG5M,EAAE;kBACXA,EAAE,GAAGA,EAAE,CAACsG,GAAG;gBACf;gBACIuG,KAAK,GAAG,MAAK9M,OAAO,CAACC,EAAE,CAAC;gBAAA,IACvB6M,KAAK;kBAAA;kBAAA;gBAAA;gBACNA,KAAK,GAAGD,MAAM,IAAI;kBACdtG,GAAG,EAAEtG,EAAE;kBACPK,MAAM,EAAE;oBACJX,IAAI,EAAEM,EAAE,CAACY,KAAK,CAAC,GAAG,CAAC,CAACmF,GAAG,EAAE;oBACzBtE,OAAO,EAAE;kBACb,CAAC;kBACD,UAAQ,CAAC;gBACb,CAAC;gBAEDoL,KAAK,CAACxM,MAAM,GAAGwM,KAAK,CAACxM,MAAM,IAAI,CAAC,CAAC;gBACjCwM,KAAK,CAACxM,MAAM,CAACoB,OAAO,GAAG,CAACiL,KAAK,CAAC;gBAAC;gBAAA,OAEzB,MAAKpB,KAAK,CAACwB,MAAM,CAACC,SAAS,CAAC/M,EAAE,EAAE6M,KAAK,CAAC;cAAA;gBAAA;gBAAA;cAAA;gBAAA,qBACpCA,KAAK,CAACxM,MAAM,mEAAZ,cAAcoB,OAAO,kDAArB,sBAAuBjB,QAAQ,CAACkM,KAAK,CAAC;kBAAA;kBAAA;gBAAA;gBAC9CG,KAAK,CAACxM,MAAM,GAAGwM,KAAK,CAACxM,MAAM,IAAI,CAAC,CAAC;gBACjCwM,KAAK,CAACxM,MAAM,CAACoB,OAAO,GAAGoL,KAAK,CAACxM,MAAM,CAACoB,OAAO,IAAI,EAAE;gBACjD;gBACAoL,KAAK,CAACxM,MAAM,CAACoB,OAAO,CAACsB,IAAI,CAAC2J,KAAK,CAAC;gBAChCG,KAAK,CAACxM,MAAM,CAACoB,OAAO,CAACiC,IAAI,EAAE;gBAAC;gBAAA,OACtB,MAAK4H,KAAK,CAACwB,MAAM,CAACC,SAAS,CAAC/M,EAAE,EAAE6M,KAAK,CAAC;cAAA;gBA5BlBF,CAAC,EAAE;gBAAA;gBAAA;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CA+BxC;MAAA;QAAA;MAAA;IAAA;IAAA;MAAA,0FAMa,kBAAMK,IAAI;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA,KAChBA,IAAI;kBAAA;kBAAA;gBAAA;gBAAA,4CACaA,IAAI;cAAA;gBAAA;kBAAA;kBAAA;gBAAA;gBAAVhN,EAAE;gBAAA,MACL,CAAC8B,MAAM,CAACmL,MAAM,CAACD,IAAI,EAAEhN,EAAE,CAAC,IAAI,CAACgN,IAAI,CAAChN,EAAE,CAAC;kBAAA;kBAAA;gBAAA;gBAAA;cAAA;gBAGnC9B,GAAG,GAAG8O,IAAI,CAAChN,EAAE,CAAC;gBAChBwE,KAAK,GAAG,IAAI;gBAChB,IAAItG,GAAG,IAAIA,GAAG,CAACmC,MAAM,IAAInC,GAAG,CAACmC,MAAM,CAACmE,KAAK,EAAE;kBACvCA,KAAK,GAAGtG,GAAG,CAACmC,MAAM,CAACmE,KAAK;kBACxB,OAAOtG,GAAG,CAACmC,MAAM,CAACmE,KAAK;gBAC3B,CAAC,MAAM;kBACHA,KAAK,GAAG,IAAI;gBAChB;gBAAC;gBAAA;gBAAA,OAES,MAAK8G,KAAK,CAACwB,MAAM,CAACC,SAAS,CAAC/M,EAAE,EAAE9B,GAAG,CAAC;cAAA;gBAAA,eAC1CsG,KAAK;gBAAA;kBAAA;kBAAA;gBAAA;gBAAA;gBAAA,OAAW,MAAK0I,eAAe,CAAC1I,KAAK,EAAEtG,GAAG,CAACoI,GAAG,CAAC;cAAA;gBAAA,MAChDpI,GAAG,CAACyC,IAAI,KAAK,OAAO;kBAAA;kBAAA;gBAAA;gBAAA;gBAAA;gBAAA,OAEI,MAAK2K,KAAK,CAACwB,MAAM,CAACK,QAAQ,CAACjP,GAAG,CAACoI,GAAG,CAAC;cAAA;gBAAjDa,KAAK;gBAAA,MACP,CAACA,KAAK,IAAIA,KAAK,CAACS,GAAG,KAAK,IAAI;kBAAA;kBAAA;gBAAA;gBAAA;gBAAA;gBAAA,OAElB,MAAK0D,KAAK,CAACwB,MAAM,CAACT,QAAQ,CAACnO,GAAG,CAACoI,GAAG,EAAE,CAACpI,GAAG,CAACmC,MAAM,IAAInC,GAAG,CAACmC,MAAM,CAAC+M,GAAG,KAAKhO,SAAS,GAAG,IAAI,GAAGlB,GAAG,CAACmC,MAAM,CAAC+M,GAAG,EAAE,IAAI,CAAC;cAAA;gBAAA;gBAAA;cAAA;gBAAA;gBAAA;gBAEpHC,MAAM,CAACC,KAAK,8BAAsBpP,GAAG,CAACoI,GAAG,+BAAU;cAAC;gBAAA;gBAAA;cAAA;gBAAA;gBAAA;gBAI5D+G,MAAM,CAACC,KAAK,+BAAuBpP,GAAG,CAACoI,GAAG,+BAAU;cAAC;gBAAA;gBAAA;cAAA;gBAAA;gBAAA;gBAI7D+G,MAAM,CAACC,KAAK,cAAO;cAAC;gBAAA;gBAAA;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAInC;MAAA;QAAA;MAAA;IAAA;IAAA,qGA2EkB,UAAAC,GAAG,EAAI;MACtB,IAAMC,CAAC,GAAGD,GAAG,CAACE,MAAM,CAACC,KAAK,CAAC,CAAC,CAAC;MAC7B,IAAIF,CAAC,EAAE;QACH,IAAMG,CAAC,GAAG,IAAIC,UAAU,EAAE;QAC1BD,CAAC,CAACE,MAAM;UAAA,0FAAG,kBAAMlB,CAAC;YAAA;YAAA;cAAA;gBAAA;kBAAA;oBACRmB,QAAQ,GAAGnB,CAAC,CAACc,MAAM,CAACjB,MAAM;oBAAA;oBAEtBuB,IAAI,GAAGvP,IAAI,CAAC2N,KAAK,CAAC2B,QAAQ,CAAC;oBAC3BE,GAAG,GAAGlM,MAAM,CAACC,IAAI,CAACgM,IAAI,CAAC,CAAC1O,MAAM;oBAC9BW,EAAE,GAAG+N,IAAI,CAACzH,GAAG;oBAAA,MACftG,EAAE,KAAKZ,SAAS,IAAI4O,GAAG;sBAAA;sBAAA;oBAAA;oBAAA;oBAAA,OACjB,MAAKC,WAAW,CAACF,IAAI,CAAC;kBAAA;oBAC5BV,MAAM,CAACC,KAAK,CAAC,MAAKhC,KAAK,CAACnD,CAAC,CAAC,2BAA2B,EAAE6F,GAAG,CAAC,CAAC;oBAAC;oBAAA;kBAAA;oBAAA,IAQxDhO,EAAE;sBAAA;sBAAA;oBAAA;oBAAA,kCACIqN,MAAM,CAACC,KAAK,CAAC,MAAKhC,KAAK,CAACnD,CAAC,CAAC,sBAAsB,CAAC,CAAC;kBAAA;oBAAA;oBAIzD,IAAI4F,IAAI,CAAC1N,MAAM,CAACmE,KAAK,EAAE;sBACnBA,KAAK,GAAGuJ,IAAI,CAAC1N,MAAM,CAACmE,KAAK;sBACzB,OAAOuJ,IAAI,CAAC1N,MAAM,CAACmE,KAAK;oBAC5B;oBAAC;oBAAA,OACK,MAAK8G,KAAK,CAACwB,MAAM,CAACC,SAAS,CAACgB,IAAI,CAACzH,GAAG,EAAEyH,IAAI,CAAC;kBAAA;oBAAA,MAC7CA,IAAI,CAACpN,IAAI,KAAK,OAAO;sBAAA;sBAAA;oBAAA;oBAAA;oBAAA,OACD,MAAK2K,KAAK,CAACwB,MAAM,CAACK,QAAQ,CAACY,IAAI,CAACzH,GAAG,CAAC;kBAAA;oBAAlDa,KAAK;oBAAA,MACP,CAACA,KAAK,IAAIA,KAAK,CAACS,GAAG,KAAK,IAAI,IAAIT,KAAK,CAACS,GAAG,KAAKxI,SAAS;sBAAA;sBAAA;oBAAA;oBAAA;oBAAA,OACjD,MAAKkM,KAAK,CAACwB,MAAM,CAACK,QAAQ,CAACY,IAAI,CAACzH,GAAG,EAAEyH,IAAI,CAAC1N,MAAM,CAAC+M,GAAG,KAAKhO,SAAS,GAAG,IAAI,GAAG2O,IAAI,CAAC1N,MAAM,CAAC+M,GAAG,EAAE,IAAI,CAAC;kBAAA;oBAAA,KAG5G5I,KAAK;sBAAA;sBAAA;oBAAA;oBAAA;oBAAA,OACC,MAAK0I,eAAe,CAAC1I,KAAK,EAAEuJ,IAAI,CAACzH,GAAG,CAAC;kBAAA;oBAG/C+G,MAAM,CAACC,KAAK,CAAC,MAAKhC,KAAK,CAACnD,CAAC,CAAC,oBAAoB,EAAE4F,IAAI,CAACzH,GAAG,CAAC,CAAC;oBAAC;oBAAA;kBAAA;oBAAA;oBAAA;oBAE3D+G,MAAM,CAACC,KAAK,cAAK;kBAAC;oBAAA;oBAAA;kBAAA;oBAAA;oBAAA;oBAI1BD,MAAM,CAACC,KAAK,cAAK;kBAAC;oBAAA,kCAEf,IAAI;kBAAA;kBAAA;oBAAA;gBAAA;cAAA;YAAA;UAAA,CACd;UAAA;YAAA;UAAA;QAAA;QACDK,CAAC,CAACO,UAAU,CAACV,CAAC,CAAC;MACnB,CAAC,MAAM;QACHH,MAAM,CAACC,KAAK,CAAC,MAAKhC,KAAK,CAACnD,CAAC,CAAC,6BAA6B,CAAC,CAAC;MAC7D;IACJ,CAAC;IAAA,0GAEuB,YAAM;MAC1B,IAAQA,CAAC,GAAK,MAAKmD,KAAK,CAAhBnD,CAAC;MAET,IAAIC,KAAK,GAAG,cACR;QAAK,GAAG,EAAE;MAAE,GAAED,CAAC,CAAC,wDAAwD,CAAC,CAAO,eAChF;QAAK,GAAG,EAAE;MAAE,GAAEA,CAAC,CAAC,mBAAmB,CAAC,CAAO,eAC3C;QAAK,GAAG,EAAE;MAAE,GAAEA,CAAC,CAAC,6BAA6B,CAAC,CAAO,eACrD;QAAK,GAAG,EAAE;MAAE,GAAEA,CAAC,CAAC,sCAAsC,CAAC,CAAO,eAC9D;QAAK,GAAG,EAAE;MAAE,GAAEA,CAAC,CAAC,6BAA6B,CAAC,CAAO,eACrD;QAAK,GAAG,EAAE;MAAE,GAAEA,CAAC,CAAC,oBAAoB,CAAC,CAAO,eAC5C;QAAK,GAAG,EAAE,CAAE;QAAC,KAAK,EAAE;UAAE5S,MAAM,EAAE;QAAG;MAAE,EAAG,eACtC;QAAK,GAAG,EAAE;MAAE,GAAE4S,CAAC,CAAC,4EAA4E,CAAC,CAAO,eACpG;QAAK,GAAG,EAAE;MAAE,GAAEA,CAAC,CAAC,sGAAsG,CAAC,CAAO,CACjI;MAED,IAAI,MAAKhB,KAAK,CAACgH,QAAQ,CAAC9O,MAAM,IAAI,MAAK8H,KAAK,CAACiH,iBAAiB,EAAE;QAAA;QAC5D,IAAMpO,EAAE,GAAG,MAAKmH,KAAK,CAACgH,QAAQ,CAAC,CAAC,CAAC,IAAI,MAAKhH,KAAK,CAACiH,iBAAiB;QACjE,IAAIpO,EAAE,CAACY,KAAK,CAAC,GAAG,CAAC,CAACvB,MAAM,GAAG,CAAC,IAAK,MAAKU,OAAO,CAACC,EAAE,CAAC,IAAI,2BAAKD,OAAO,CAACC,EAAE,CAAC,qDAAhB,iBAAkBW,IAAI,MAAK,OAAQ,EAAE;UACtF;QAAA,CACH,MAAM,IAAI,MAAKwG,KAAK,CAACkH,MAAM,CAACrM,UAAU,EAAE;UAAA;UACrC,6BAAQ,MAAKjC,OAAO,CAACC,EAAE,CAAC,sDAAhB,kBAAkBW,IAAI;YAC1B,KAAK,QAAQ;cACTyH,KAAK,GAAG,cACJ;gBAAK,GAAG,EAAE;cAAE,GAAED,CAAC,CAAC,wDAAwD,CAAC,CAAO,eAChF;gBAAK,GAAG,EAAE;cAAE,GAAEA,CAAC,CAAC,6BAA6B,CAAC,CAAO,eACrD;gBAAK,GAAG,EAAE,CAAE;gBAAC,KAAK,EAAE;kBAAE5S,MAAM,EAAE;gBAAG;cAAE,EAAG,eACtC;gBAAK,GAAG,EAAE;cAAE,GAAE4S,CAAC,CAAC,4EAA4E,CAAC,CAAO,eACpG;gBAAK,GAAG,EAAE;cAAE,GAAEA,CAAC,CAAC,sGAAsG,CAAC,CAAO,CACjI;cACD;YACJ,KAAK,QAAQ;cACTC,KAAK,GAAG,cACJ;gBAAK,GAAG,EAAE;cAAE,GAAED,CAAC,CAAC,wDAAwD,CAAC,CAAO,eAChF;gBAAK,GAAG,EAAE;cAAE,GAAEA,CAAC,CAAC,mBAAmB,CAAC,CAAO,eAC3C;gBAAK,GAAG,EAAE;cAAE,GAAEA,CAAC,CAAC,6BAA6B,CAAC,CAAO,eACrD;gBAAK,GAAG,EAAE;cAAE,GAAEA,CAAC,CAAC,sCAAsC,CAAC,CAAO,eAC9D;gBAAK,GAAG,EAAE,CAAE;gBAAC,KAAK,EAAE;kBAAE5S,MAAM,EAAE;gBAAG;cAAE,EAAG,eACtC;gBAAK,GAAG,EAAE;cAAE,GAAE4S,CAAC,CAAC,4EAA4E,CAAC,CAAO,eACpG;gBAAK,GAAG,EAAE;cAAE,GAAEA,CAAC,CAAC,sGAAsG,CAAC,CAAO,CACjI;cACD;YACJ,KAAK,SAAS;cACVC,KAAK,GAAG,cACJ;gBAAK,GAAG,EAAE;cAAE,GAAED,CAAC,CAAC,wDAAwD,CAAC,CAAO,eAChF;gBAAK,GAAG,EAAE;cAAE,GAAEA,CAAC,CAAC,oBAAoB,CAAC,CAAO,eAC5C;gBAAK,GAAG,EAAE,CAAE;gBAAC,KAAK,EAAE;kBAAE5S,MAAM,EAAE;gBAAG;cAAE,EAAG,eACtC;gBAAK,GAAG,EAAE;cAAE,GAAE4S,CAAC,CAAC,4EAA4E,CAAC,CAAO,eACpG;gBAAK,GAAG,EAAE;cAAE,GAAEA,CAAC,CAAC,sGAAsG,CAAC,CAAO,CACjI;cACD;YACJ;cACI;UAAM;QAElB,CAAC,MAAM,IAAInI,EAAE,CAACO,UAAU,CAAC,SAAS,CAAC,IAAIP,EAAE,CAACO,UAAU,CAAC,YAAY,CAAC,EAAE;UAChE6H,KAAK,GAAG,cACJ;YAAK,GAAG,EAAE;UAAE,GAAED,CAAC,CAAC,wDAAwD,CAAC,CAAO,eAChF;YAAK,GAAG,EAAE;UAAE,GAAEA,CAAC,CAAC,mBAAmB,CAAC,CAAO,eAC3C;YAAK,GAAG,EAAE;UAAE,GAAEA,CAAC,CAAC,6BAA6B,CAAC,CAAO,eACrD;YAAK,GAAG,EAAE;UAAE,GAAEA,CAAC,CAAC,sCAAsC,CAAC,CAAO,eAC9D;YAAK,GAAG,EAAE;UAAE,GAAEA,CAAC,CAAC,6BAA6B,CAAC,CAAO,eACrD;YAAK,GAAG,EAAE;UAAE,GAAEA,CAAC,CAAC,oBAAoB,CAAC,CAAO,eAC5C;YAAK,GAAG,EAAE,CAAE;YAAC,KAAK,EAAE;cAAE5S,MAAM,EAAE;YAAG;UAAE,EAAG,eACtC;YAAK,GAAG,EAAE;UAAE,GAAE4S,CAAC,CAAC,4EAA4E,CAAC,CAAO,eACpG;YAAK,GAAG,EAAE;UAAE,GAAEA,CAAC,CAAC,sGAAsG,CAAC,CAAO,CACjI;QACL;MACJ;MAEA,OAAOC,KAAK,CAAC/I,MAAM,GAAG+I,KAAK,GAAGD,CAAC,CAAC,4CAA4C,CAAC;IACjF,CAAC;IAAA,+GA+N4B,UAAAmG,GAAG,EAAI;MAChC;MACA,IAAI,CAACA,GAAG,EAAE;QACN,OAAO,IAAI;MACf;MACA,IAAMC,KAAK,GAAG,CACV;QACInG,KAAK,EAAE,OAAO;QAAEoG,QAAQ,EAAE,KAAK;QAAElJ,KAAK,EAAE,MAAM;QAAGqE,KAAK,EAAE;MAC5D,CAAC,EACD;QACIvB,KAAK,EAAE,OAAO;QAAEoG,QAAQ,EAAE,KAAK;QAAElJ,KAAK,EAAE,OAAO;QAAEqE,KAAK,EAAE;MAC5D,CAAC,EACD;QACIvB,KAAK,EAAE,MAAM;QAAGoG,QAAQ,EAAE,IAAI;QAAGlJ,KAAK,EAAE,MAAM;QAAGqE,KAAK,EAAE;MAC5D,CAAC,EACD;QACIvB,KAAK,EAAE,MAAM;QAAGoG,QAAQ,EAAE,IAAI;QAAGlJ,KAAK,EAAE,OAAO;QAAEqE,KAAK,EAAE;MAC5D,CAAC,EACD;QACIvB,KAAK,EAAE,KAAK;QAAIoG,QAAQ,EAAE,GAAG;QAAIlJ,KAAK,EAAE,MAAM;QAAGqE,KAAK,EAAE;MAC5D,CAAC,EACD;QACIvB,KAAK,EAAE,KAAK;QAAIoG,QAAQ,EAAE,GAAG;QAAIlJ,KAAK,EAAE,OAAO;QAAEqE,KAAK,EAAE;MAC5D,CAAC,CACJ;MACD,IAAM8E,gBAAgB,GAAG,EAAE;MAC3B,IAAMC,qBAAqB,GAAG,SAAxBA,qBAAqB,GAAyB;QAAA,IAArBtG,KAAK,uEAAG,QAAQ;QAC3C,IAAMuG,MAAM,GAAGL,GAAG,CAAClG,KAAK,CAAC;QACzBmG,KAAK,CAAC/L,OAAO,CAAC,UAACrE,EAAE,EAAEwG,CAAC,EAAK;UACrB;UACA,IAAIgK,MAAM,GAAGxQ,EAAE,CAACqQ,QAAQ,EAAE;YACtBC,gBAAgB,CAAC1L,IAAI,eAAC;cAAM,GAAG,EAAEqF,KAAK,GAAGzD;YAAE,GACtC,MAAKyC,KAAK,cAAOjJ,EAAE,CAACwL,KAAK,cAAIxL,EAAE,CAACmH,KAAK,cAAI8C,KAAK,EAAG,oBAElD;cAAM,SAAS,EAAEA,KAAK,KAAK,QAAQ,GAAG,MAAKkD,KAAK,CAACnI,OAAO,CAACzG,YAAY,GAAG,MAAK4O,KAAK,CAACnI,OAAO,CAACxG;YAAY,GAClGwB,EAAE,CAACiK,KAAK,CACN,CACJ,CAAC;UACZ;QACJ,CAAC,CAAC;MACN,CAAC;MACDqG,gBAAgB,CAAC1L,IAAI,eAAC;QAAM,GAAG,EAAC;MAAO,aAAK,MAAKqE,KAAK,CAACwH,UAAU,eAAK,CAACN,GAAG,CAACM,UAAU,IAAI,EAAE,EAAE/K,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,EAAU,CAAC;MACpI4K,gBAAgB,CAAC1L,IAAI,eAAC;QAAM,GAAG,EAAC;MAAO,aAAK,MAAKqE,KAAK,CAACyH,SAAS,eAAK,CAACP,GAAG,CAACQ,KAAK,IAAI,EAAE,EAAEjL,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,EAAU,CAAC;MAC7H6K,qBAAqB,EAAE;MACvB,IAAIJ,GAAG,CAACnH,KAAK,EAAE;QACXuH,qBAAqB,CAAC,OAAO,CAAC;MAClC;MACA,OAAOD,gBAAgB,CAACpP,MAAM,gBAAG;QAAM,SAAS,EAAE,MAAKiM,KAAK,CAACnI,OAAO,CAACtG;MAAqB,GAAE4R,gBAAgB,CAACM,GAAG,CAAC,UAAA5Q,EAAE;QAAA,OAAIA,EAAE;MAAA,EAAC,CAAQ,GAAG,EAAE;IAC3I,CAAC;IAAA,qGA+sCkB,UAAAwO,CAAC,EAAI;MACpB,IAAI,MAAKqC,gBAAgB,EAAE;QACvB,IAAIhb,KAAK;QACT,IAAIib,SAAS;QACb,IAAI,MAAKC,UAAU,EAAE;UACjBlb,KAAK,GAAO,MAAKmb,eAAe,GAAOxC,CAAC,CAACyC,OAAO,GAAG,MAAKC,eAAe;UACvEJ,SAAS,GAAG,MAAKK,mBAAmB,GAAG3C,CAAC,CAACyC,OAAO,GAAG,MAAKC,eAAe;QAC3E,CAAC,MAAM;UACHrb,KAAK,GAAO,MAAKmb,eAAe,GAAOxC,CAAC,CAACyC,OAAO,GAAG,MAAKC,eAAe;UACvEJ,SAAS,GAAG,MAAKK,mBAAmB,GAAG3C,CAAC,CAACyC,OAAO,GAAG,MAAKC,eAAe;QAC3E;QAEA,IAAI,CAAC,CAAC,MAAKE,UAAU,IAAQvb,KAAK,GAAO,MAAKub,UAAU,MACnD,CAAC,MAAKC,cAAc,IAAIP,SAAS,GAAG,MAAKO,cAAc,CAAC,EAAE;UAC3D,MAAKC,oBAAoB,CAAC,MAAKC,iBAAiB,CAAC,GAAG1b,KAAK;UACzD,MAAKyb,oBAAoB,CAAC,MAAKE,eAAe,CAAC,GAAGV,SAAS;UAE3D,MAAKD,gBAAgB,CAACtQ,KAAK,CAAC1K,KAAK,aAAMA,KAAK,OAAI;UAChD,MAAK4b,cAAc,CAAClR,KAAK,CAAC1K,KAAK,aAAQib,SAAS,OAAI;UAEpD,MAAKY,iBAAiB,CAAC,MAAKH,iBAAiB,CAAC,GAAG1b,KAAK;UACtD,MAAK6b,iBAAiB,CAAC,MAAKF,eAAe,CAAC,GAAGV,SAAS;UACxD,IAAI,MAAKU,eAAe,KAAK,YAAY,EAAE;YACvC,MAAKE,iBAAiB,CAACnQ,IAAI,GAAMuP,SAAS,GAAG,MAAK9H,KAAK,CAAC2I,cAAc;YACtE,MAAKL,oBAAoB,CAAC/P,IAAI,GAAGuP,SAAS,GAAG,MAAK9H,KAAK,CAAC2I,cAAc;UAC1E,CAAC,MACD,IAAI,MAAKJ,iBAAiB,KAAK,YAAY,EAAE;YACzC,MAAKG,iBAAiB,CAACnQ,IAAI,GAAM1L,KAAK,GAAG,MAAKmT,KAAK,CAAC2I,cAAc;YAClE,MAAKL,oBAAoB,CAAC/P,IAAI,GAAG1L,KAAK,GAAG,MAAKmT,KAAK,CAAC2I,cAAc;UACtE;UACA,MAAKC,WAAW,GAAG,IAAI;UACvB,MAAKC,aAAa,IAAIlE,YAAY,CAAC,MAAKkE,aAAa,CAAC;UACtD,MAAKA,aAAa,GAAGpE,UAAU,CAAC,YAAM;YAClC,MAAKoE,aAAa,GAAG,IAAI;YACzB,MAAKnE,WAAW,EAAE;UACtB,CAAC,EAAE,GAAG,CAAC;QACX;MACJ;IACJ,CAAC;IAAA,mGAEgB,YAAM;MACnB,CAACwB,MAAM,CAAC4C,aAAa,IAAI5C,MAAM,CAAC6C,YAAY,EAAEC,OAAO,WAAI,MAAK7E,KAAK,CAAC8E,UAAU,IAAI,KAAK,aAAU5R,IAAI,CAACC,SAAS,CAAC,MAAKgR,oBAAoB,CAAC,CAAC;MAC3I,MAAKC,iBAAiB,GAAG,IAAI;MAC7B,MAAKC,eAAe,GAAK,IAAI;MAC7B,MAAKX,gBAAgB,GAAI,IAAI;MAC7B,MAAKY,cAAc,GAAM,IAAI;MAC7BvC,MAAM,CAACgD,mBAAmB,CAAC,WAAW,EAAE,MAAKC,gBAAgB,CAAC;MAC9DjD,MAAM,CAACgD,mBAAmB,CAAC,SAAS,EAAI,MAAKE,cAAc,CAAC;IAChE,CAAC;IAAA,qGAEkB,UAAA5D,CAAC,EAAI;MACpB,IAAI,MAAK6D,kBAAkB,KAAK,IAAI,IAAI,MAAKA,kBAAkB,KAAKpR,SAAS,EAAE;QAC3E,IAAI,CAAC,MAAKqR,YAAY,EAAE;UACpB,MAAKA,YAAY,GAAGjS,IAAI,CAAC2N,KAAK,CAAC3N,IAAI,CAACC,SAAS,CAAC6L,aAAa,CAAC,MAAKgB,KAAK,CAACtX,KAAK,CAAC,CAAC,CAAC;QACnF;QAEA,MAAKyb,oBAAoB,GAAG,MAAKA,oBAAoB,IAAI,CAAC,CAAC;QAC3D,MAAKT,gBAAgB,GAAIrC,CAAC,CAACc,MAAM,CAACiD,UAAU;QAC5C,MAAKhB,iBAAiB,GAAG,MAAKV,gBAAgB,CAAC2B,OAAO,CAACjR,IAAI;QAE3D,IAAIiF,CAAC,GAAG,CAAC;QACT,IAAIgI,CAAC,CAACc,MAAM,CAACkD,OAAO,CAAC5a,IAAI,KAAK,MAAM,EAAE;UAClC,MAAKmZ,UAAU,GAAG,IAAI;UACtB,MAAKU,cAAc,GAAG,MAAKZ,gBAAgB,CAAC4B,sBAAsB;UAClE,IAAIC,MAAM,GAAG,MAAKjB,cAAc,CAACkB,aAAa,YAAK,MAAKxF,KAAK,CAACnI,OAAO,CAAC5F,YAAY,EAAG;UACrF,OAAO,MAAKqS,cAAc,IAAI,CAACiB,MAAM,IAAIlM,CAAC,GAAG,EAAE,EAAE;YAC7C,MAAKiL,cAAc,GAAG,MAAKA,cAAc,CAACgB,sBAAsB;YAChEC,MAAM,GAAG,MAAKjB,cAAc,CAACkB,aAAa,YAAK,MAAKxF,KAAK,CAACnI,OAAO,CAAC5F,YAAY,EAAG;YACjFoH,CAAC,EAAE;UACP;UACA,IAAIkM,MAAM,IAAIA,MAAM,CAACF,OAAO,CAAC5a,IAAI,KAAK,MAAM,EAAE;YAC1C,MAAK6Z,cAAc,GAAG,MAAKA,cAAc,CAACmB,kBAAkB;UAChE;QACJ,CAAC,MAAM;UACH,MAAK7B,UAAU,GAAG,KAAK;UACvB,MAAKU,cAAc,GAAG,MAAKZ,gBAAgB,CAAC+B,kBAAkB;UAC9D;AAChB;AACA;AACA;QACY;;QACA,MAAKpB,eAAe,GAAK,MAAKC,cAAc,CAACe,OAAO,CAACjR,IAAI;QAEzD,MAAK6P,UAAU,GAAUvU,QAAQ,CAAC,MAAKgU,gBAAgB,CAAC2B,OAAO,CAACK,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC;QAC7E,MAAKxB,cAAc,GAAMxU,QAAQ,CAAC,MAAK4U,cAAc,CAACe,OAAO,CAACK,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC;QAE3E,MAAK3B,eAAe,GAAK1C,CAAC,CAACyC,OAAO;QAElC,MAAKK,oBAAoB,CAAC,MAAKC,iBAAiB,CAAC,GAAG,MAAKV,gBAAgB,CAACiC,WAAW;QACrF,MAAKxB,oBAAoB,CAAC,MAAKE,eAAe,CAAC,GAAK,MAAKC,cAAc,CAACqB,WAAW;QAEnF,MAAK9B,eAAe,GAAO,MAAKM,oBAAoB,CAAC,MAAKC,iBAAiB,CAAC;QAC5E,MAAKJ,mBAAmB,GAAG,MAAKG,oBAAoB,CAAC,MAAKE,eAAe,CAAC;QAE1EtC,MAAM,CAAC6D,gBAAgB,CAAC,WAAW,EAAE,MAAKZ,gBAAgB,CAAC;QAC3DjD,MAAM,CAAC6D,gBAAgB,CAAC,SAAS,EAAI,MAAKX,cAAc,CAAC;MAC7D;IACJ,CAAC;IAAA,iGAEc,YAAM;MACjB,MAAKR,WAAW,GAAG,KAAK;MACxBzF,aAAa,CAAC,MAAKgB,KAAK,CAACtX,KAAK,CAAC,GAAGwK,IAAI,CAAC2N,KAAK,CAAC3N,IAAI,CAACC,SAAS,CAAC,MAAKgS,YAAY,CAAC,CAAC;MAC/E,MAAKU,0BAA0B,EAAE;MACjC,CAAC9D,MAAM,CAAC4C,aAAa,IAAI5C,MAAM,CAAC6C,YAAY,EAAEkB,UAAU,WAAI,MAAK9F,KAAK,CAAC8E,UAAU,IAAI,KAAK,YAAS;MACnG,MAAKvE,WAAW,EAAE;IACtB,CAAC;IAAA,iGAmQc,UAAC7L,EAAE,EAAE2B,IAAI;MAAA,OACpB,MAAK2J,KAAK,CAACwB,MAAM,CAACuE,YAAY,CAACrR,EAAE,EAAE2B,IAAI,CAAC,SAC9B,CAAC,UAAA2P,KAAK;QAAA,OAAIjE,MAAM,CAACC,KAAK,CAACgE,KAAK,CAAC;MAAA,EAAC;IAAA;IAAA,8FAEhC,UAACtR,EAAE,EAAE2B,IAAI;MAAA,OACjB,MAAK2J,KAAK,CAACwB,MAAM,CAACC,SAAS,CAAC/M,EAAE,EAAE2B,IAAI,CAAC,SAC3B,CAAC,UAAA2P,KAAK;QAAA,OAAIjE,MAAM,CAACC,KAAK,CAACgE,KAAK,CAAC;MAAA,EAAC;IAAA;IA97GxC,MAAKC,iBAAiB,GAAG,CAAClE,MAAM,CAAC4C,aAAa,IAAI5C,MAAM,CAAC6C,YAAY,EAAEsB,OAAO,WAAIlG,KAAK,CAAC8E,UAAU,IAAI,KAAK,qBAAkB,IAAI,IAAI;IACrI,IAAI;MACA,MAAKmB,iBAAiB,GAAG/S,IAAI,CAAC2N,KAAK,CAAC,MAAKoF,iBAAiB,CAAC;MAC3D,IAAI,yBAAO,MAAKA,iBAAiB,MAAK,QAAQ,EAAE;QAC5C,MAAKA,iBAAiB,GAAG,CAAC,MAAKA,iBAAiB,CAAC;MACrD;MACA,MAAKA,iBAAiB,GAAG,MAAKA,iBAAiB,CAAClD,MAAM,CAAC,UAAArO,EAAE;QAAA,OAAIA,EAAE;MAAA,EAAC;IACpE,CAAC,CAAC,OAAO2M,CAAC,EAAE;MACR;IAAA;IAGJ,IAAI8E,QAAQ,GAAG,CAACpE,MAAM,CAAC4C,aAAa,IAAI5C,MAAM,CAAC6C,YAAY,EAAEsB,OAAO,WAAIlG,KAAK,CAAC8E,UAAU,IAAI,KAAK,qBAAkB,IAAI,IAAI;IAC3H,IAAI;MACAqB,QAAQ,GAAGjT,IAAI,CAAC2N,KAAK,CAACsF,QAAQ,CAAC;IACnC,CAAC,CAAC,OAAO9E,CAAC,EAAE;MACR8E,QAAQ,GAAG,EAAE;IACjB;IAEA,IAAIpD,MAAM,GACN/C,KAAK,CAACoG,cAAc,IACpB,CAACrE,MAAM,CAAC4C,aAAa,IAAI5C,MAAM,CAAC6C,YAAY,EAAEsB,OAAO,WAAIlG,KAAK,CAAC8E,UAAU,IAAI,KAAK,mBAAgB,sBAC7FjH,cAAc,CAAE;IAEzB,IAAI,OAAOkF,MAAM,KAAK,QAAQ,EAAE;MAC5B,IAAI;QACAA,MAAM,GAAG7P,IAAI,CAAC2N,KAAK,CAACkC,MAAM,CAAC;MAC/B,CAAC,CAAC,OAAO1B,CAAC,EAAE;QACR0B,MAAM,qBAAQlF,cAAc,CAAE;MAClC;IACJ;IAEAkF,MAAM,CAACrM,UAAU,GAAGsJ,KAAK,CAACtJ,UAAU,KAAK5C,SAAS,GAAGkM,KAAK,CAACtJ,UAAU,GAAI,CAACqL,MAAM,CAACsE,eAAe,IAAItE,MAAM,CAACuE,cAAc,EAAEJ,OAAO,CAAC,gBAAgB,CAAC,KAAK,MAAO;IAChK,MAAKK,QAAQ,gBAAG,IAAAC,gBAAS,GAAE;IAC3B,MAAKC,UAAU,GAAG,CAAC,CAAC;IAEpBjQ,MAAM,CAACC,IAAI,CAACoH,cAAc,CAAC,CAAC3G,OAAO,CAAC,UAAA9C,IAAI;MAAA,OACpC,MAAKqS,UAAU,CAACrS,IAAI,CAAC,gBAAG,IAAAoS,gBAAS,GAAE;IAAA,EAAC;IAExC,MAAKvF,iBAAiB,GAAG,IAAI;IAC7B,MAAKb,gBAAgB,GAAG,KAAK;IAE7B,MAAKsG,aAAa,GAAG,KAAK;IAC1B,MAAK/N,IAAI,GAAG,IAAI;IAChB,MAAKsD,MAAM,GAAG,CAAC,CAAC;IAChB,MAAK0K,UAAU,GAAG,EAAE;IACpB,MAAKtG,iBAAiB,GAAG,IAAI;IAC7B,MAAKW,kBAAkB,GAAG,IAAI;IAE9B,MAAK4F,WAAW,GAAG5G,KAAK,CAAC6G,OAAO,IAAI7H,aAAa,CAACgB,KAAK,CAACtX,KAAK,CAAC,CAACyW,MAAM;IACrE;IACA,IAAIa,KAAK,CAAChH,KAAK,IAAIgH,KAAK,CAAChH,KAAK,CAACjF,MAAM,KAAK,CAAC,EAAE;MACzC,IAAM+S,GAAG,GAAG,MAAKF,WAAW,CAACG,OAAO,CAAC,MAAM,CAAC;MAC5CD,GAAG,KAAK,CAAC,CAAC,IAAI,MAAKF,WAAW,CAACtM,MAAM,CAACwM,GAAG,EAAE,CAAC,CAAC;IACjD;;IAEA;;IAEA,IAAIE,YAAY,GAAG,IAAI;IAEvB,IAAIhH,KAAK,CAACiH,MAAM,EAAE;MACd,IAAMC,QAAQ,GAAGlH,KAAK,CAACiH,MAAM,CAACE,WAAW,EAAE;MAC3C,IAAID,QAAQ,CAACxS,EAAE,IAAIwS,QAAQ,CAACE,MAAM,KAAK,SAAS,EAAE;QAC9CJ,YAAY,GAAG,CAACE,QAAQ,CAACxS,EAAE,CAAC;QAC5B,MAAK2S,cAAc,CAAC,IAAI,CAAC;MAC7B;IACJ;IAEA,IAAIxE,QAAQ,GAAI7C,KAAK,CAAC6C,QAAQ,IAAI,EAAG;IACrC,IAAI,yBAAOA,QAAQ,MAAK,QAAQ,EAAE;MAC9BA,QAAQ,GAAG,CAACA,QAAQ,CAAC;IACzB;IACAA,QAAQ,GAAGA,QAAQ,CAACY,GAAG,CAAC,UAAA/O,EAAE;MAAA,OAAIA,EAAE,CAAC6D,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;IAAA,EAAC,CAACwK,MAAM,CAAC,UAAArO,EAAE;MAAA,OAAIA,EAAE;IAAA,EAAC;IAEvE,IAAImS,OAAO,GAAG,IAAI,CAAC,CAAC;IACpB,IAAI;MACAA,OAAO,GAAGA,OAAO,GAAG3T,IAAI,CAAC2N,KAAK,CAACgG,OAAO,CAAC,GAAG,IAAI;IAClD,CAAC,CAAC,OAAOxF,CAAC,EAAE;MACRwF,OAAO,GAAG,IAAI;IAClB;IAEA,IAAIS,aAAa,GAAG,IAAI,CAAC,CAAC;IAC1B,IAAI;MACAA,aAAa,GAAGA,aAAa,GAAGpU,IAAI,CAAC2N,KAAK,CAACyG,aAAa,CAAC,GAAG,CAAC,CAAC;IAClE,CAAC,CAAC,OAAOjG,CAAC,EAAE;MACRiG,aAAa,GAAG,CAAC,CAAC;IACtB;IAEA,MAAK3S,WAAW,GAAGqL,KAAK,CAACrL,WAAW,IAAI,GAAG;IAC3C,IAAI4S,YAAY,GAAG,CAACxF,MAAM,CAAC4C,aAAa,IAAI5C,MAAM,CAAC6C,YAAY,EAAEsB,OAAO,WAAIlG,KAAK,CAAC8E,UAAU,IAAI,KAAK,mBAAgB;IACrH,IAAIyC,YAAY,KAAK,OAAO,EAAE;MAC1BA,YAAY,GAAG,KAAK;IACxB,CAAC,MAAM,IAAIA,YAAY,KAAK,MAAM,EAAE;MAChCA,YAAY,GAAG,IAAI;IACvB,CAAC,MAAM;MACHA,YAAY,GAAGvH,KAAK,CAACuH,YAAY,KAAKzT,SAAS,GAAG,IAAI,GAAGkM,KAAK,CAACuH,YAAY;IAC/E;IAEA,IAAIC,UAAU,GAAG,KAAK;IACtB,IAAI;MACAA,UAAU,GAAG,MAAKxH,KAAK,CAACyH,gBAAgB,GAAGvU,IAAI,CAAC2N,KAAK,CAAC,CAACkB,MAAM,CAAC4C,aAAa,IAAI5C,MAAM,CAAC6C,YAAY,EAAEsB,OAAO,WAAIlG,KAAK,CAAC8E,UAAU,IAAI,KAAK,uBAAoB,CAAC,IAAI,KAAK,GAAG,KAAK;IAClL,CAAC,CAAC,OAAOkB,KAAK,EAAE;MACZ;IAAA;IAGJ,MAAKnK,KAAK,GAAG;MACT6L,MAAM,EAAE,KAAK;MACbH,YAAY,EAAZA,YAAY;MACZ1E,QAAQ,EAARA,QAAQ;MACRC,iBAAiB,EAAE,CAACf,MAAM,CAAC4C,aAAa,IAAI5C,MAAM,CAAC6C,YAAY,EAAEsB,OAAO,WAAIlG,KAAK,CAAC8E,UAAU,IAAI,KAAK,wBAAqB,IAAI,EAAE;MAChI/B,MAAM,EAANA,MAAM;MACN4E,SAAS,EAAE,CAAC;MACZC,KAAK,EAAE,CAAC;MACRC,gBAAgB,EAAE,KAAK;MACvB1B,QAAQ,EAARA,QAAQ;MACR2B,KAAK,EAAE,EAAE;MACTzT,IAAI,EAAE2L,KAAK,CAAC3L,IAAI;MAChBmQ,cAAc,EAAE,EAAE;MAClBwC,YAAY,EAAZA,YAAY;MACZe,gBAAgB,EAAE,EAAE;MACpBC,cAAc,EAAE,EAAE;MAClBnX,UAAU,EAAE,IAAI;MAChBoX,UAAU,EAAE,IAAI;MAChBT,UAAU,EAAVA,UAAU;MACVX,OAAO,EAAPA,OAAO;MACPjG,eAAe,EAAE,IAAI;MACrBsH,mBAAmB,EAAE,KAAK;MAC1BC,WAAW,EAAE,IAAI;MAAE;MACnBb,aAAa,EAAbA,aAAa;MACbc,wBAAwB,EAAE,GAAG;MAC7BC,uBAAuB,EAAE,IAAI;MAC7BC,8BAA8B,EAAE,KAAK;MACrCC,gBAAgB,EAAE,KAAK;MACvBC,YAAY,EAAE,CAACzG,MAAM,CAAC4C,aAAa,IAAI5C,MAAM,CAAC6C,YAAY,EAAEsB,OAAO,WAAIlG,KAAK,CAAC8E,UAAU,IAAI,KAAK,YAAS,KAAK;IAClH,CAAC;IAED,MAAK2D,IAAI,GAAG,CAAC,CAAC;IAEd,MAAK3M,KAAK,GAAG;MACTgB,KAAK,EAAqBkD,KAAK,CAACnD,CAAC,CAAC,kBAAkB,CAAC;MACrDE,GAAG,EAAuBiD,KAAK,CAACnD,CAAC,CAAC,gBAAgB,CAAC;MACnDG,EAAE,EAAwBgD,KAAK,CAACnD,CAAC,CAAC,eAAe,CAAC;MAClDK,EAAE,EAAwB8C,KAAK,CAACnD,CAAC,CAAC,eAAe,CAAC;MAClDM,IAAI,EAAsB6C,KAAK,CAACnD,CAAC,CAAC,iBAAiB,CAAC;MACpDO,IAAI,EAAsB4C,KAAK,CAACnD,CAAC,CAAC,iBAAiB,CAAC;MACpDQ,CAAC,EAAyB2C,KAAK,CAACnD,CAAC,CAAC,oBAAoB,CAAC;MACvDS,OAAO,EAAmB0C,KAAK,CAACnD,CAAC,CAAC,oBAAoB,CAAC;MACvD6L,UAAU,EAAgB1I,KAAK,CAACnD,CAAC,CAAC,uBAAuB,CAAC;MAC1D8L,YAAY,EAAc3I,KAAK,CAACnD,CAAC,CAAC,yBAAyB,CAAC;MAC5D+L,YAAY,EAAc5I,KAAK,CAACnD,CAAC,CAAC,yBAAyB,CAAC;MAC5DgM,SAAS,EAAiB7I,KAAK,CAACnD,CAAC,CAAC,sBAAsB,CAAC;MACzDiM,SAAS,EAAiB9I,KAAK,CAACnD,CAAC,CAAC,sBAAsB,CAAC;MACzDkM,KAAK,EAAqB/I,KAAK,CAACnD,CAAC,CAAC,UAAU,CAAC;MAC7CmM,SAAS,EAAiBhJ,KAAK,CAACnD,CAAC,CAAC,cAAc,CAAC;MACjDoM,WAAW,EAAejJ,KAAK,CAACnD,CAAC,CAAC,gBAAgB,CAAC;MACnDqM,WAAW,EAAelJ,KAAK,CAACnD,CAAC,CAAC,gBAAgB,CAAC;MACnDsM,WAAW,EAAenJ,KAAK,CAACnD,CAAC,CAAC,gBAAgB,CAAC;MACnDuM,WAAW,EAAepJ,KAAK,CAACnD,CAAC,CAAC,gBAAgB,CAAC;MACnDwM,WAAW,EAAerJ,KAAK,CAACnD,CAAC,CAAC,gBAAgB,CAAC;MACnDyM,aAAa,EAAatJ,KAAK,CAACnD,CAAC,CAAC,mBAAmB,CAAC;MAAE;MACxD0M,mBAAmB,EAAOvJ,KAAK,CAACnD,CAAC,CAAC,2BAA2B,CAAC;MAAE;MAChE2M,eAAe,EAAWxJ,KAAK,CAACnD,CAAC,CAAC,sBAAsB,CAAC;MAAE;MAC3D4M,iBAAiB,EAASzJ,KAAK,CAACnD,CAAC,CAAC,uBAAuB,CAAC;MAAE;MAC5D6M,cAAc,EAAY1J,KAAK,CAACnD,CAAC,CAAC,qBAAqB,CAAC;MAAE;MAC1D8M,gBAAgB,EAAU3J,KAAK,CAACnD,CAAC,CAAC,uBAAuB,CAAC;MAAE;MAC5DyG,UAAU,EAAgBtD,KAAK,CAACnD,CAAC,CAAC,gBAAgB,CAAC;MACnD0G,SAAS,EAAiBvD,KAAK,CAACnD,CAAC,CAAC,eAAe,CAAC;MAClD+M,WAAW,EAAe5J,KAAK,CAACnD,CAAC,CAAC,UAAU,CAAC;MAC7CgN,kBAAkB,EAAQ7J,KAAK,CAACnD,CAAC,CAAC,iBAAiB,CAAC;MACpDiN,eAAe,EAAW9J,KAAK,CAACnD,CAAC,CAAC,cAAc,CAAC;MAEjDkN,oBAAoB,EAAM/J,KAAK,CAACnD,CAAC,CAAC,yBAAyB,CAAC;MAC5DmN,mBAAmB,EAAOhK,KAAK,CAACnD,CAAC,CAAC,wBAAwB,CAAC;MAC3DoN,qBAAqB,EAAKjK,KAAK,CAACnD,CAAC,CAAC,0BAA0B,CAAC;MAC7DqN,oBAAoB,EAAMlK,KAAK,CAACnD,CAAC,CAAC,yBAAyB,CAAC;MAC5DsN,oBAAoB,EAAMnK,KAAK,CAACnD,CAAC,CAAC,yBAAyB,CAAC;MAC5DuN,mBAAmB,EAAOpK,KAAK,CAACnD,CAAC,CAAC,wBAAwB,CAAC;MAC3DwN,qBAAqB,EAAKrK,KAAK,CAACnD,CAAC,CAAC,0BAA0B,CAAC;MAC7DyN,oBAAoB,EAAMtK,KAAK,CAACnD,CAAC,CAAC,yBAAyB,CAAC;MAC5D0N,uBAAuB,EAAGvK,KAAK,CAACnD,CAAC,CAAC,4BAA4B,CAAC;MAC/D2N,sBAAsB,EAAIxK,KAAK,CAACnD,CAAC,CAAC,2BAA2B,CAAC;MAC9D4N,wBAAwB,EAAEzK,KAAK,CAACnD,CAAC,CAAC,6BAA6B,CAAC;MAChE6N,uBAAuB,EAAG1K,KAAK,CAACnD,CAAC,CAAC,4BAA4B;IAClE,CAAC;IAED,MAAK8N,YAAY,GAAG3K,KAAK,CAAC2K,YAAY,IAAI1jB,UAAU;IAEpD,IAAIkd,oBAAoB,GAAG,CAACpC,MAAM,CAAC4C,aAAa,IAAI5C,MAAM,CAAC6C,YAAY,EAAEsB,OAAO,WAAI,MAAKlG,KAAK,CAAC8E,UAAU,IAAI,KAAK,YAAS;IAC3H,IAAIX,oBAAoB,EAAE;MACtB,IAAI;QACAA,oBAAoB,GAAGjR,IAAI,CAAC2N,KAAK,CAACsD,oBAAoB,CAAC;QACvD,MAAKgB,YAAY,GAAGjS,IAAI,CAAC2N,KAAK,CAAC3N,IAAI,CAACC,SAAS,CAAC6L,aAAa,CAAC,MAAKgB,KAAK,CAACtX,KAAK,CAAC,CAAC,CAAC;QAC/E8N,MAAM,CAACC,IAAI,CAAC0N,oBAAoB,CAAC,CAC5BjN,OAAO,CAAC,UAAAxC,EAAE,EAAI;UACX,IAAIA,EAAE,KAAK,IAAI,EAAE;YACbsK,aAAa,CAAC,MAAKgB,KAAK,CAACtX,KAAK,CAAC,CAACwW,OAAO,GAAGiF,oBAAoB,CAACzP,EAAE;UACrE,CAAC,MAAM,IAAIA,EAAE,KAAK,YAAY,EAAE;YAC5BsK,aAAa,CAAC,MAAKgB,KAAK,CAACtX,KAAK,CAAC,CAAC0W,MAAM,CAAChL,IAAI,GAAG+P,oBAAoB,CAACzP,EAAE,CAAC;UAC1E,CAAC,MAAM,IAAIsK,aAAa,CAAC,MAAKgB,KAAK,CAACtX,KAAK,CAAC,CAAC0W,MAAM,CAAC1K,EAAE,CAAC,KAAKZ,SAAS,EAAE;YACjEkL,aAAa,CAAC,MAAKgB,KAAK,CAACtX,KAAK,CAAC,CAAC0W,MAAM,CAAC1K,EAAE,CAAC,GAAGyP,oBAAoB,CAACzP,EAAE,CAAC;UACzE;QACJ,CAAC,CAAC;QAEN,MAAK+P,WAAW,GAAG,IAAI;MAC3B,CAAC,CAAC,OAAOpD,CAAC,EAAE;QACR;MAAA;IAER;IAEA,MAAKwE,0BAA0B,EAAE;IAAC;EACtC;EAAC;IAAA;IAAA,OAED,wBAAe+E,MAAM,EAAE;MAAA;MACnB,IAAM5K,KAAK,GAAG,IAAI,CAACA,KAAK;MACxB,IAAIvL,OAAO;MAEX,OAAO,IAAIoW,OAAO,CAAC,UAAAC,OAAO,EAAI;QAC1B,MAAI,CAAC/J,QAAQ,CAAC;UAAEgK,QAAQ,EAAE;QAAK,CAAC,EAAE;UAAA,OAAMD,OAAO,EAAE;QAAA,EAAC;MACtD,CAAC,CAAC,CACGE,IAAI,CAAC;QAAA,OAAO,MAAI,CAAChL,KAAK,CAACiL,aAAa,GACjC,MAAI,CAACjL,KAAK,CAACiL,aAAa,CAACC,UAAU,CAACN,MAAM,CAAC,GAC3C5K,KAAK,CAACwB,MAAM,CAAC0J,UAAU,CAACN,MAAM,EAAE,IAAI,CAAC;MAAA,CAAC,CAAC,CAC1CI,IAAI,CAAC,UAAAG,QAAQ,EAAI;QACd1W,OAAO,GAAG0W,QAAQ;QAClB,IAAInL,KAAK,CAAChH,KAAK,IAAIgH,KAAK,CAAChH,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;UAC3C,IAAIgH,KAAK,CAACjM,MAAM,IAAI,CAAC,EAAE;YACnBkM,OAAO,CAAC+F,KAAK,CAAC,+DAA+D,CAAC;UAClF;UACA,OAAOhG,KAAK,CAACwB,MAAM,CAAC4J,aAAa,CAAC,IAAI,EAAE,IAAI,EAAEpL,KAAK,CAAChH,KAAK,CAAC,CAAC,CAAC,CAAC;QACjE;QACA,OAAO,CAACvE,OAAO,CAAC,eAAe,CAAC,GAAGuL,KAAK,CAACwB,MAAM,CAAC6J,SAAS,CAAC,eAAe,CAAC,CACrEL,IAAI,CAAC,UAAApY,GAAG;UAAA,OAAK;YAAE,eAAe,EAAEA;UAAI,CAAC;QAAA,CAAC,CAAC,GAAGiY,OAAO,CAACC,OAAO,CAAC,IAAI,CAAC;MACxE,CAAC,CAAC,CACDE,IAAI,CAAC,UAAAM,WAAW,EAAI;QACjB,MAAI,CAACC,YAAY,GAAG9W,OAAO,CAAC,eAAe,CAAC,IAAI6W,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAElF,IAAIA,WAAW,EAAE;UACb,IAAIA,WAAW,CAAC,eAAe,CAAC,EAAE;YAC9B,OAAOA,WAAW,CAAC,eAAe,CAAC;UACvC;UACA9U,MAAM,CAACgV,MAAM,CAAC/W,OAAO,EAAE6W,WAAW,CAAC;QACvC;QAEA,MAAI,CAACC,YAAY,CAACxW,MAAM,GAAG,MAAI,CAACwW,YAAY,CAACxW,MAAM,IAAI,CAAC,CAAC;QACzD,MAAI,CAACwW,YAAY,CAACxW,MAAM,CAAC0W,aAAa,GAAG,MAAI,CAACF,YAAY,CAACxW,MAAM,CAAC0W,aAAa,IAAI,CAAC,CAAC;QACrF,MAAI,CAACF,YAAY,CAACxW,MAAM,CAAC0W,aAAa,CAACjI,KAAK,GAAG,MAAI,CAAC+H,YAAY,CAACxW,MAAM,CAAC0W,aAAa,CAACjI,KAAK,IAAI,mBAAmB;QAClH,MAAI,CAAC+H,YAAY,CAACxW,MAAM,CAAC0W,aAAa,CAACnI,UAAU,GAAG,MAAI,CAACiI,YAAY,CAACxW,MAAM,CAAC0W,aAAa,CAACnI,UAAU,IAAI,4BAA4B;QACrI,IAAI,OAAO,MAAI,CAACiI,YAAY,CAACxW,MAAM,CAAC0W,aAAa,CAAC5P,KAAK,KAAK,QAAQ,EAAE;UAClE;UACA,MAAI,CAAC0P,YAAY,CAACxW,MAAM,CAAC0W,aAAa,CAAC5P,KAAK,GAAG,KAAK;QACxD;QACA,IAAI,OAAO,MAAI,CAAC0P,YAAY,CAACxW,MAAM,CAAC0W,aAAa,CAACC,MAAM,KAAK,QAAQ,EAAE;UACnE;UACA,MAAI,CAACH,YAAY,CAACxW,MAAM,CAAC0W,aAAa,CAAC5P,KAAK,GAAG,KAAK;QACxD;QAEA,IAAI,OAAOmE,KAAK,CAACW,UAAU,KAAK,UAAU,EAAE;UACxC,MAAI,CAAClM,OAAO,GAAG,CAAC,CAAC;UACjB+B,MAAM,CAACC,IAAI,CAAChC,OAAO,CAAC,CAACyC,OAAO,CAAC,UAAAxC,EAAE,EAAI;YAC/B,IAAI;cACA,IAAIsL,KAAK,CAACW,UAAU,CAAClM,OAAO,CAACC,EAAE,CAAC,CAAC,EAAE;gBAC/B,MAAI,CAACD,OAAO,CAACC,EAAE,CAAC,GAAGD,OAAO,CAACC,EAAE,CAAC;cAClC;YACJ,CAAC,CAAC,OAAO2M,CAAC,EAAE;cACRpB,OAAO,CAACC,GAAG,mCAA2BxL,EAAE,iBAAM2M,CAAC,EAAG;YACtD;UACJ,CAAC,CAAC;QACN,CAAC,MACD,IAAIrB,KAAK,CAAChH,KAAK,EAAE;UACb,MAAI,CAACvE,OAAO,GAAG,CAAC,CAAC;UACjB+B,MAAM,CAACC,IAAI,CAAChC,OAAO,CAAC,CAACyC,OAAO,CAAC,UAAAxC,EAAE,EAAI;YAC/B,IAAMW,IAAI,GAAGZ,OAAO,CAACC,EAAE,CAAC,IAAID,OAAO,CAACC,EAAE,CAAC,CAACW,IAAI;YAC5C;YACA,IAAIA,IAAI,KACJA,IAAI,KAAK,SAAS,IAClBA,IAAI,KAAK,QAAQ,IACjBA,IAAI,KAAK,MAAM,IACfA,IAAI,KAAK,QAAQ,IACjBA,IAAI,KAAK,SAAS,IAClBA,IAAI,KAAK,UAAU,IACnB2K,KAAK,CAAChH,KAAK,CAAC9D,QAAQ,CAACG,IAAI,CAAC,CAAC,EAAE;cAC7B,MAAI,CAACZ,OAAO,CAACC,EAAE,CAAC,GAAGD,OAAO,CAACC,EAAE,CAAC;YAClC;UACJ,CAAC,CAAC;QACN,CAAC,MAAM;UACH,MAAI,CAACD,OAAO,GAAGA,OAAO;QAC1B;;QAEA;QACA,MAAI,CAACkX,cAAc,GAAG,MAAI,CAACJ,YAAY,CAACxW,MAAM,CAAC4W,cAAc;QAC7D,IAAI,MAAI,CAACA,cAAc,EAAE;UACrB3L,KAAK,CAACwB,MAAM,CAACK,QAAQ,0BAAmB,MAAI,CAAC8J,cAAc,YAAS,CAC/DX,IAAI,CAAC,UAAAnP,KAAK,EAAI;YACX,IAAI,CAACA,KAAK,IAAI,CAACA,KAAK,CAACS,GAAG,EAAE;cACtB,MAAI,CAACqP,cAAc,GAAG,EAAE;YAC5B;UACJ,CAAC,CAAC,SACI,CAAC,UAAAtK,CAAC;YAAA,OAAIU,MAAM,CAACC,KAAK,6BAAsBX,CAAC,EAAG;UAAA,EAAC;QAC3D;QAEA,OAAO,MAAI,CAACuK,oBAAoB,EAAE;MACtC,CAAC,CAAC,CACDZ,IAAI,CAAC,UAAApK,eAAe,EAAI;QACrB,MAAI,CAACiF,0BAA0B,CAAC,IAAI,EAAE,IAAI,EAAEjF,eAAe,CAAC;QAE5D,kBAAuB3I,SAAS,CAAC,MAAI,CAACxD,OAAO,EAAE,MAAI,CAACuL,KAAK,CAAC;UAAlDpH,IAAI,eAAJA,IAAI;UAAED,IAAI,eAAJA,IAAI;QAClB,MAAI,CAACA,IAAI,GAAGA,IAAI;QAChB,MAAI,CAACC,IAAI,GAAGA,IAAI;;QAEhB;QACA,IAAMiT,IAAI,GAAG,MAAI,CAAChQ,KAAK,CAACgH,QAAQ,IAAI,MAAI,CAAChH,KAAK,CAACgH,QAAQ,CAAC9O,MAAM,IAAI4G,QAAQ,CAAC,MAAI,CAAChC,IAAI,EAAE,MAAI,CAACkD,KAAK,CAACgH,QAAQ,CAAC,CAAC,CAAC,CAAC;QAE7G,MAAI,CAAC5B,iBAAiB,GAAG,IAAI;;QAE7B;QACA,IAAI4K,IAAI,IAAI,CAACtW,WAAW,CAACsW,IAAI,EAAE,MAAI,CAAChQ,KAAK,CAACkH,MAAM,EAAE,MAAI,CAAClH,KAAK,CAACxH,IAAI,EAAE,MAAI,CAACI,OAAO,EAAE,IAAI,EAAE,IAAI,EAAEuL,KAAK,CAACpK,YAAY,EAAEoK,KAAK,CAAChH,KAAK,CAAC,EAAE;UAC3H;UACA,MAAI,CAAC+H,QAAQ,CAAC;YAAEgC,MAAM,oBAAOlF,cAAc,CAAE;YAAE+C,eAAe,EAAfA;UAAgB,CAAC,EAAE,YAAM;YACpE,MAAI,CAACG,QAAQ,CAAC;cAAE2G,MAAM,EAAE,IAAI;cAAEqD,QAAQ,EAAE;YAAM,CAAC,EAAE;cAAA,OAC7C,MAAI,CAACe,iBAAiB,CAAC;gBAAA,OACnB,MAAI,CAACC,aAAa,EAAE;cAAA,EAAC;YAAA,EAAC;UAClC,CAAC,CAAC;QACN,CAAC,MAAM;UACH,MAAI,CAAChL,QAAQ,CAAC;YAAE2G,MAAM,EAAE,IAAI;YAAEqD,QAAQ,EAAE,KAAK;YAAEnK,eAAe,EAAfA;UAAgB,CAAC,EAAE;YAAA,OAC9D,MAAI,CAACkL,iBAAiB,CAAC;cAAA,OACnB,MAAI,CAACC,aAAa,EAAE;YAAA,EAAC;UAAA,EAAC;QAClC;MACJ,CAAC,CAAC,SACI,CAAC,UAAA1K,CAAC;QAAA,OAAI,MAAI,CAAC2K,SAAS,CAAC3K,CAAC,CAAC;MAAA,EAAC;IACtC;;IAEA;AACJ;AACA;AACA;EAHI;IAAA;IAAA,OAIA,2BAAkB4K,EAAE,EAAE;MAClB,IAAM9F,QAAQ,uCAAO,IAAI,CAACtK,KAAK,CAACsK,QAAQ,CAAC;MACzC,IAAI+F,OAAO,GAAG,KAAK;MACnB,IAAI,CAACrQ,KAAK,CAACgH,QAAQ,CAAC3L,OAAO,CAAC,UAAAxC,EAAE,EAAI;QAC9B,IAAM4E,KAAK,GAAG5E,EAAE,CAACY,KAAK,CAAC,GAAG,CAAC;QAC3B,IAAM6W,IAAI,GAAG,EAAE;QACf,KAAK,IAAI9S,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGC,KAAK,CAACvF,MAAM,GAAG,CAAC,EAAEsF,CAAC,EAAE,EAAE;UACvC8S,IAAI,CAAC1U,IAAI,CAAC6B,KAAK,CAACD,CAAC,CAAC,CAAC;UACnB,IAAI,CAAC8M,QAAQ,CAACjR,QAAQ,CAACiX,IAAI,CAAC5R,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;YACpC4L,QAAQ,CAAC1O,IAAI,CAAC0U,IAAI,CAAC5R,IAAI,CAAC,GAAG,CAAC,CAAC;YAC7B2R,OAAO,GAAG,IAAI;UAClB;QACJ;MACJ,CAAC,CAAC;MACF,IAAIA,OAAO,EAAE;QACT/F,QAAQ,CAAC/N,IAAI,EAAE;QACf,CAAC2J,MAAM,CAAC4C,aAAa,IAAI5C,MAAM,CAAC6C,YAAY,EAAEC,OAAO,WAAI,IAAI,CAAC7E,KAAK,CAAC8E,UAAU,IAAI,KAAK,sBAAmB5R,IAAI,CAACC,SAAS,CAACgT,QAAQ,CAAC,CAAC;QACnI,IAAI,CAACpF,QAAQ,CAAC;UAAEoF,QAAQ,EAARA;QAAS,CAAC,EAAE8F,EAAE,CAAC;MACnC,CAAC,MAAM;QACHA,EAAE,IAAIA,EAAE,EAAE;MACd;IACJ;;IAEA;AACJ;AACA;AACA;EAHI;IAAA;IAAA,OAIA,uBAAcG,QAAQ,EAAE;MAAA;MACpB,IAAI,CAACnG,iBAAiB,uCAAO,IAAI,CAACpK,KAAK,CAACgH,QAAQ,CAAC;MACjD,IAAI,IAAI,CAAChH,KAAK,CAACgH,QAAQ,IAAI,IAAI,CAAChH,KAAK,CAACgH,QAAQ,CAAC9O,MAAM,EAAE;QACnD,CAACgO,MAAM,CAAC4C,aAAa,IAAI5C,MAAM,CAAC6C,YAAY,EAAEC,OAAO,WAAI,IAAI,CAAC7E,KAAK,CAAC8E,UAAU,IAAI,KAAK,sBAAmB5R,IAAI,CAACC,SAAS,CAAC,IAAI,CAAC8S,iBAAiB,CAAC,CAAC;QAEjJ,IAAM7R,IAAI,GAAG,IAAI,CAAC6R,iBAAiB,CAAClS,MAAM,KAAK,CAAC,GAAGzI,iBAAK,CAAC+gB,aAAa,CAAC,IAAI,CAAC5X,OAAO,EAAE,IAAI,CAACwR,iBAAiB,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE;UAAEqG,QAAQ,EAAE,IAAI,CAACzQ,KAAK,CAACxH;QAAK,CAAC,CAAC,GAAG,EAAE;QACzJ,IAAI,CAAC2L,KAAK,CAACuM,QAAQ,IAAI,IAAI,CAACvM,KAAK,CAACuM,QAAQ,CAAC,IAAI,CAACtG,iBAAiB,EAAE7R,IAAI,EAAEgY,QAAQ,CAAC;MACtF,CAAC,MAAM;QACH,CAACrK,MAAM,CAAC4C,aAAa,IAAI5C,MAAM,CAAC6C,YAAY,EAAEC,OAAO,WAAI,IAAI,CAAC7E,KAAK,CAAC8E,UAAU,IAAI,KAAK,sBAAmB,EAAE,CAAC;QAC7G,IAAI,IAAI,CAACjJ,KAAK,CAACgH,QAAQ,CAAC9O,MAAM,EAAE;UAC5B,IAAI,CAACgN,QAAQ,CAAC;YAAE8B,QAAQ,EAAE;UAAG,CAAC,EAAE;YAAA,OAAM,MAAI,CAAC7C,KAAK,CAACuM,QAAQ,IAAI,MAAI,CAACvM,KAAK,CAACuM,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;UAAA,EAAC;QAC7F,CAAC,MAAM;UACH,IAAI,CAACvM,KAAK,CAACuM,QAAQ,IAAI,IAAI,CAACvM,KAAK,CAACuM,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;QACtD;MACJ;IACJ;;IAEA;AACJ;AACA;AACA;AACA;EAJI;IAAA;IAAA;IAgBA;AACJ;AACA;IACI,6BAAoB;MAAA;MAChB,IAAI,CAACC,cAAc,CAAC,CAAC1M,oBAAoB,CAAC,CACrCkL,IAAI,CAAC,YAAM;QACR,IAAI,MAAI,CAAChL,KAAK,CAACiL,aAAa,EAAE;UAC1B,MAAI,CAACjL,KAAK,CAACiL,aAAa,CAACwB,eAAe,CAAC,MAAI,CAACC,cAAc,CAAC;QACjE,CAAC,MAAM;UACH,MAAI,CAAC1M,KAAK,CAACwB,MAAM,CAACmL,eAAe,CAAC,GAAG,EAAE,MAAI,CAACD,cAAc,CAAC;QAC/D;QAEA5M,oBAAoB,GAAG,IAAI;MAC/B,CAAC,CAAC;IACV;;IAEA;AACJ;AACA;EAFI;IAAA;IAAA,OAGA,gCAAuB;MAAA;MACnB,IAAI,CAAC8M,WAAW,IAAIpM,YAAY,CAAC,IAAI,CAACoM,WAAW,CAAC;MAClD,IAAI,CAACA,WAAW,GAAG,IAAI;MAEvB,IAAI,IAAI,CAAC5M,KAAK,CAACiL,aAAa,EAAE;QAC1B,IAAI,CAACjL,KAAK,CAACiL,aAAa,CAAC4B,iBAAiB,CAAC,IAAI,CAACH,cAAc,EAAE,IAAI,CAAC;MACzE,CAAC,MAAM;QACH,IAAI,CAAC1M,KAAK,CAACwB,MAAM,CAACsL,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAACJ,cAAc,CAAC;MACjE;;MAEA;MACA,IAAI,CAAC/F,UAAU,CAACzP,OAAO,CAAC,UAAA6V,OAAO,EAAI;QAC/B9M,OAAO,CAACC,GAAG,yBAAkB6M,OAAO,EAAG;QACvC,MAAI,CAAC/M,KAAK,CAACwB,MAAM,CAACwL,gBAAgB,CAACD,OAAO,EAAE,MAAI,CAACE,aAAa,CAAC;MACnE,CAAC,CAAC;MAEF,IAAI,CAACtG,UAAU,GAAG,EAAE;MACpB,IAAI,CAAClS,OAAO,GAAG,CAAC,CAAC;IACrB;;IAEA;AACJ;AACA;EAFI;IAAA;IAAA,OAGA,4BAAmB;MAAA;MACf;MACA,IAAI,CAACkS,UAAU,CAACzP,OAAO,CAAC,UAAA6V,OAAO,EAAI;QAC/B9M,OAAO,CAACC,GAAG,yBAAkB6M,OAAO,EAAG;QACvC,MAAI,CAAC/M,KAAK,CAACwB,MAAM,CAACwL,gBAAgB,CAACD,OAAO,EAAE,MAAI,CAACE,aAAa,CAAC;MACnE,CAAC,CAAC;MAEF,IAAI,CAACtG,UAAU,GAAG,EAAE;MAEpB,IAAI,CAAC6F,cAAc,CAAC,IAAI,CAAC,CACpBxB,IAAI,CAAC;QAAA,OAAM/K,OAAO,CAACC,GAAG,CAAC,UAAU,CAAC;MAAA,EAAC;IAC5C;;IAEA;AACJ;AACA;AACA;EAHI;IAAA;IAAA,OAIA,6BAAoB;MAAA;MAChB,OAAO,IAAI,CAACrE,KAAK,CAACmK,KAAK,gBAAG,gCAAC,kBAAM;QAC7B,IAAI,EAAE,CAAC,CAAE;QACT,QAAQ,EAAC,IAAI;QACb,SAAS;QACT,OAAO,EAAE;UAAA,OAAM,MAAI,CAACjF,QAAQ,CAAC;YAAEiF,KAAK,EAAE;UAAG,CAAC,CAAC;QAAA,CAAC;QAC5C,mBAAgB,oBAAoB;QACpC,oBAAiB;MAA0B,gBAE3C,gCAAC,uBAAW;QAAC,EAAE,EAAC;MAAoB,GAAE,IAAI,CAAChG,KAAK,CAAChG,KAAK,IAAI,IAAI,CAACgG,KAAK,CAACnD,CAAC,CAAC,UAAU,CAAC,CAAe,eACjG,gCAAC,yBAAa,qBACV,gCAAC,6BAAiB;QAAC,EAAE,EAAC;MAA0B,GAC3C,IAAI,CAAChB,KAAK,CAACmK,KAAK,CACD,CACR,eAChB,gCAAC,yBAAa,qBACV,gCAAC,kBAAM;QACH,OAAO,EAAC,WAAW;QACnB,OAAO,EAAE;UAAA,OAAM,MAAI,CAACjF,QAAQ,CAAC;YAAEiF,KAAK,EAAE;UAAG,CAAC,CAAC;QAAA,CAAC;QAC5C,KAAK,EAAC,SAAS;QACf,SAAS;QACT,SAAS,eAAE,gCAAC,iBAAS;MAAI,GAExB,IAAI,CAAChG,KAAK,CAACnD,CAAC,CAAC,OAAO,CAAC,CACjB,CACG,CACX,GAAG,IAAI;IACpB;;IAEA;AACJ;AACA;AACA;EAHI;IAAA;IAAA,OAIA,mBAAUmJ,KAAK,EAAE;MACb,IAAI,CAACjF,QAAQ,CAAC;QAAEiF,KAAK,EAAE,yBAAOA,KAAK,MAAK,QAAQ,GAAIA,KAAK,IAAI,OAAOA,KAAK,CAACzR,QAAQ,KAAK,UAAU,GAAGyR,KAAK,CAACzR,QAAQ,EAAE,GAAGrB,IAAI,CAACC,SAAS,CAAC6S,KAAK,CAAC,GAAIA;MAAM,CAAC,CAAC;IAC5J;;IAEA;AACJ;AACA;AACA;AACA;EAJI;IAAA;IAAA,OAKA,kBAASkH,UAAU,EAAEd,QAAQ,EAAE;MAAA;MAC3B,IAAI,CAAC,IAAI,CAACpM,KAAK,CAACmN,WAAW,EAAE;QACzB,IAAI,IAAI,CAAC1Y,OAAO,CAACyY,UAAU,CAAC,KAAK,CAAC,IAAI,CAAClN,KAAK,CAAChH,KAAK,IAAI,IAAI,CAACgH,KAAK,CAAChH,KAAK,CAAC9D,QAAQ,CAAC,IAAI,CAACT,OAAO,CAACyY,UAAU,CAAC,CAAC7X,IAAI,CAAC,CAAC,EAAE;UAC7G,CAAC0M,MAAM,CAAC4C,aAAa,IAAI5C,MAAM,CAAC6C,YAAY,EAAEkB,UAAU,WAAI,IAAI,CAAC9F,KAAK,CAAC8E,UAAU,IAAI,KAAK,wBAAqB;UAC/G,IAAI,IAAI,CAACjJ,KAAK,CAACgH,QAAQ,CAAC,CAAC,CAAC,KAAKqK,UAAU,EAAE;YACvC,IAAI,CAACnM,QAAQ,CAAC;cAAE8B,QAAQ,EAAE,CAACqK,UAAU,CAAC;cAAEpK,iBAAiB,EAAE;YAAG,CAAC,EAAE;cAAA,OAC7D,MAAI,CAACiJ,aAAa,CAACK,QAAQ,CAAC;YAAA,EAAC;UACrC,CAAC,MAAM,IAAIA,QAAQ,IAAI,IAAI,CAACpM,KAAK,CAACuM,QAAQ,EAAE;YACxC,IAAI,CAACR,aAAa,CAACK,QAAQ,CAAC;UAChC;QACJ,CAAC,MAAM;UACH,CAACrK,MAAM,CAAC4C,aAAa,IAAI5C,MAAM,CAAC6C,YAAY,EAAEC,OAAO,WAAI,IAAI,CAAC7E,KAAK,CAAC8E,UAAU,IAAI,KAAK,yBAAsBoI,UAAU,CAAC;UACxH,IAAI,CAACnM,QAAQ,CAAC;YAAE8B,QAAQ,EAAE,EAAE;YAAEC,iBAAiB,EAAEoK;UAAW,CAAC,EAAE;YAAA,OAC3D,MAAI,CAACnB,aAAa,EAAE;UAAA,EAAC;QAC7B;MACJ,CAAC,MAAM,IAAI,IAAI,CAACtX,OAAO,CAACyY,UAAU,CAAC,KAAK,CAAC,IAAI,CAAClN,KAAK,CAAChH,KAAK,IAAI,IAAI,CAACgH,KAAK,CAAChH,KAAK,CAAC9D,QAAQ,CAAC,IAAI,CAACT,OAAO,CAACyY,UAAU,CAAC,CAAC7X,IAAI,CAAC,CAAC,EAAE;QACpH,CAAC0M,MAAM,CAAC4C,aAAa,IAAI5C,MAAM,CAAC6C,YAAY,EAAEkB,UAAU,WAAI,IAAI,CAAC9F,KAAK,CAAC8E,UAAU,IAAI,KAAK,wBAAqB;QAE/G,IAAMjC,QAAQ,uCAAO,IAAI,CAAChH,KAAK,CAACgH,QAAQ,CAAC;QACzC,IAAMiE,GAAG,GAAGjE,QAAQ,CAACkE,OAAO,CAACmG,UAAU,CAAC;QACxC,IAAIpG,GAAG,KAAK,CAAC,CAAC,EAAE;UACZjE,QAAQ,CAACpL,IAAI,CAACyV,UAAU,CAAC;UACzBrK,QAAQ,CAACzK,IAAI,EAAE;QACnB,CAAC,MAAM,IAAI,CAACgU,QAAQ,EAAE;UAClBvJ,QAAQ,CAACvI,MAAM,CAACwM,GAAG,EAAE,CAAC,CAAC;QAC3B;QAEA,IAAI,CAAC/F,QAAQ,CAAC;UAAE8B,QAAQ,EAARA,QAAQ;UAAEC,iBAAiB,EAAE;QAAG,CAAC,EAAE;UAAA,OAC/C,MAAI,CAACiJ,aAAa,CAACK,QAAQ,CAAC;QAAA,EAAC;MACrC;IACJ;;IAEA;AACJ;AACA;AACA;IACI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;IAEI;AACJ;AACA;AACA;EAHI;IAAA;IAAA,OAIA,uCAA8B;MAAA;MAC1B,IAAI,CAAC,IAAI,CAACvQ,KAAK,CAACqM,mBAAmB,EAAE;QACjC,OAAO,IAAI;MACf;MACA,oBAAO,gCAAC,kBAAM;QACV,OAAO,EAAE;UAAA,OAAM,MAAI,CAACnH,QAAQ,CAAC;YAAEmH,mBAAmB,EAAE;UAAM,CAAC,CAAC;QAAA,CAAC;QAC7D,IAAI,EAAE,CAAC,CAAE;QACT,OAAO,EAAE;UAAEvP,IAAI,EAAErN,iBAAK,CAAC0M,IAAI,CAAC,IAAI,CAACgI,KAAK,CAACnI,OAAO,CAACzP,aAAa,EAAE,IAAI,CAAC4X,KAAK,CAACnI,OAAO,uBAAgB,IAAI,CAACgE,KAAK,CAACuM,wBAAwB,EAAG;QAAE;MAAE,gBAE1I,gCAAC,uBAAW;QAAC,SAAS,EAAE,IAAI,CAACpI,KAAK,CAACnI,OAAO,CAACpG;MAAc,GAAE,IAAI,CAACuO,KAAK,CAACnD,CAAC,CAAC,cAAc,CAAC,CAAe,eACtG,gCAAC,yBAAa;QAAC,SAAS,EAAE,IAAI,CAACmD,KAAK,CAACnI,OAAO,CAACpG;MAAc,gBAuBvD,gCAAC,4BAAgB;QACb,SAAS,EAAE,IAAI,CAACuO,KAAK,CAACnI,OAAO,CAAC3P,gBAAiB;QAC/C,OAAO,eAAE,gCAAC,kBAAM;UACZ,OAAO,EAAE,IAAI,CAAC2T,KAAK,CAAC0L,YAAa;UACjC,QAAQ,EAAE,oBAAM;YACZ,CAACxF,MAAM,CAAC4C,aAAa,IAAI5C,MAAM,CAAC6C,YAAY,EAAEC,OAAO,WAAI,MAAI,CAAC7E,KAAK,CAAC8E,UAAU,IAAI,KAAK,oBAAiB,MAAI,CAACjJ,KAAK,CAAC0L,YAAY,GAAG,OAAO,GAAG,MAAM,CAAC;YACnJ,MAAI,CAACxG,QAAQ,CAAC;cAAEwG,YAAY,EAAE,CAAC,MAAI,CAAC1L,KAAK,CAAC0L;YAAa,CAAC,CAAC;UAC7D;QAAE,EACH;QACH,KAAK,EAAE,IAAI,CAACvH,KAAK,CAACnD,CAAC,CAAC,yBAAyB;MAAE,EACjD,eACF,gCAAC,4BAAgB;QACb,SAAS,EAAE,IAAI,CAACmD,KAAK,CAACnI,OAAO,CAAC3P,gBAAiB;QAC/C,OAAO,eAAE,gCAAC,kBAAM;UACZ,OAAO,EAAE,IAAI,CAAC2T,KAAK,CAAC2M,YAAa;UACjC,QAAQ,EAAE,oBAAM;YACZ,CAACzG,MAAM,CAAC4C,aAAa,IAAI5C,MAAM,CAAC6C,YAAY,EAAEC,OAAO,WAAI,MAAI,CAAC7E,KAAK,CAAC8E,UAAU,IAAI,KAAK,aAAU,MAAI,CAACjJ,KAAK,CAAC2M,YAAY,GAAG,OAAO,GAAG,MAAM,CAAC;YAC5I,MAAI,CAACzH,QAAQ,CAAC;cAAEyH,YAAY,EAAE,CAAC,MAAI,CAAC3M,KAAK,CAAC2M;YAAa,CAAC,CAAC;UAC7D;QAAE,EACH;QACH,KAAK,EAAE,IAAI,CAACxI,KAAK,CAACnD,CAAC,CAAC,4BAA4B;MAAE,EACpD,CAiEU,eAChB,gCAAC,yBAAa,qBACV,gCAAC,kBAAM;QACH,OAAO,EAAC,WAAW;QACnB,OAAO,EAAE;UAAA,OAAM,MAAI,CAACkE,QAAQ,CAAC;YAAEmH,mBAAmB,EAAE;UAAM,CAAC,CAAC;QAAA,CAAC;QAC7D,KAAK,EAAC,SAAS;QACf,SAAS,eAAE,gCAAC,iBAAS;MAAI,GAExB,IAAI,CAACpM,KAAK,CAACiN,KAAK,CACZ,CACG,CACX;IACb;;IAEA;AACJ;AACA;EAFI;IAAA;IAAA,OAGA,gCAAuB;MAAA;MACnB,OAAO,IAAI,CAAC/I,KAAK,CAACwB,MAAM,CAAC4L,WAAW,EAAE,CACjCpC,IAAI,CAAC,UAAAqC,SAAS,EAAI;QACf,IAAIzM,eAAe,GAAG,IAAI;QAC1B;QACAyM,SAAS,CAACnW,OAAO,CAAC,UAAAtE,GAAG;UAAA,OACjBgO,eAAe,GAAG,OAAI,CAACE,oBAAoB,CAACF,eAAe,EAAEhO,GAAG,CAAC;QAAA,EAAC;QAEtE,OAAOgO,eAAe;MAC1B,CAAC,CAAC,SACI,CAAC,YAAM;QACT;QACA;MAAA,CACH,CAAC;IACV;;IAEA;AACJ;AACA;EAFI;IAAA;IAAA,OAGA,6BAAoB;MAChB;MACA,KAAK,IAAIvH,CAAC,GAAG,IAAI,CAACsN,UAAU,CAAC5S,MAAM,GAAG,CAAC,EAAEsF,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;QAClD,CAAC,IAAI,CAACiU,YAAY,CAACpY,QAAQ,CAAC,IAAI,CAACyR,UAAU,CAACtN,CAAC,CAAC,CAAC,IAAI,IAAI,CAACkU,WAAW,CAAC,IAAI,CAAC5G,UAAU,CAACtN,CAAC,CAAC,CAAC;MAC3F;MACA,IAAI,CAACiU,YAAY,GAAG,EAAE;IAC1B;;IAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EAPI;IAAA;IAAA,OAQA,kBAAS5Y,EAAE,EAAEkG,MAAM,EAAE4S,KAAK,EAAEC,QAAQ,EAAE;MAClC7S,MAAM,GAAGA,MAAM,IAAIlG,EAAE,CAACY,KAAK,CAAC,GAAG,CAAC;MAChCkY,KAAK,GAAGA,KAAK,IAAI,IAAI,CAAC7U,IAAI;MAC1B,IAAI,CAAC6U,KAAK,IAAI,CAAC5S,MAAM,CAAC7G,MAAM,EAAE;QAC1B,OAAO,IAAI;MACf;MAEA0Z,QAAQ,GAAG,CAACA,QAAQ,aAAMA,QAAQ,SAAM,EAAE,IAAI7S,MAAM,CAAC8S,KAAK,EAAE;MAE5D,IAAIF,KAAK,CAACvW,QAAQ,EAAE;QAChB,IAAMzB,IAAI,GAAGgY,KAAK,CAACvW,QAAQ,CAACtD,IAAI,CAAC,UAAA0F,CAAC;UAAA,OAAIA,CAAC,CAAChD,IAAI,CAAC3B,EAAE,KAAK+Y,QAAQ;QAAA,EAAC;QAC7D,IAAIjY,IAAI,EAAE;UACN,IAAIA,IAAI,CAACa,IAAI,CAAC3B,EAAE,KAAKA,EAAE,EAAE;YACrB,OAAOc,IAAI;UACf;UACA,IAAIoF,MAAM,CAAC7G,MAAM,EAAE;YACf,OAAO,IAAI,CAACoM,QAAQ,CAACzL,EAAE,EAAEkG,MAAM,EAAEpF,IAAI,EAAEiY,QAAQ,CAAC;UACpD;QACJ,CAAC,MAAM;UACH,OAAO,IAAI;QACf;MACJ;MAEA,OAAO,IAAI;IACf;;IAEA;AACJ;AACA;AACA;AACA;EAJI;IAAA;IAAA;IA4BA;AACJ;AACA;AACA;AACA;IACI,8BAAqB7M,eAAe,EAAEhO,GAAG,EAAE;MAAA;MACvC,IAAIA,GAAG,CAACmC,MAAM,IAAInC,GAAG,CAACmC,MAAM,CAAC4Y,YAAY,IAAI/a,GAAG,CAACmC,MAAM,CAACX,IAAI,EAAE;QAC1D,IAAIyS,OAAO,GAAGjU,GAAG,CAACmC,MAAM,CAAC4Y,YAAY;QACrC,IAAI,yBAAO9G,OAAO,MAAK,QAAQ,EAAE;UAC7BA,OAAO,GAAG,CAACA,OAAO,CAAC;QACvB;QACAA,OAAO,GAAGA,OAAO,CAACpD,GAAG,CAAC,UAAAjO,IAAI,EAAI;UAC1B,IAAI,yBAAOA,IAAI,MAAK,QAAQ,EAAE;YAC1B,OAAO;cAAE2W,IAAI,EAAE3W,IAAI;cAAEpB,IAAI,EAAEoB,IAAI,CAACF,KAAK,CAAC,GAAG,CAAC,CAACmF,GAAG;YAAG,CAAC;UACtD;;UAEA;UACA,IAAIjF,IAAI,CAACoY,QAAQ,IAAI,yBAAOpY,IAAI,CAACoY,QAAQ,MAAK,QAAQ,EAAE;YACpDpY,IAAI,CAACoY,QAAQ,GAAG,CAACpY,IAAI,CAACoY,QAAQ,CAAC;UACnC,CAAC,MAAM,IAAI,CAACpY,IAAI,CAACoY,QAAQ,EAAE;YACvBpY,IAAI,CAACoY,QAAQ,GAAG,IAAI;UACxB;UAEA,IAAI,CAACpY,IAAI,CAACpB,IAAI,IAAIoB,IAAI,CAAC2W,IAAI,EAAE;YACzB,OAAO;cACHA,IAAI,EAAE3W,IAAI,CAAC2W,IAAI;cACf/X,IAAI,EAAEoB,IAAI,CAAC2W,IAAI,CAAC7W,KAAK,CAAC,GAAG,CAAC,CAACmF,GAAG,EAAE;cAChC/R,KAAK,EAAE8M,IAAI,CAAC9M,KAAK;cACjB+f,IAAI,EAAE,CAAC,CAACjT,IAAI,CAACiT,IAAI;cACjBpT,IAAI,EAAEG,IAAI,CAACH,IAAI;cACfuY,QAAQ,EAAEpY,IAAI,CAACoY;YACnB,CAAC;UACL;UACA,IAAI,yBAAOpY,IAAI,CAACpB,IAAI,MAAK,QAAQ,IAAIoB,IAAI,CAAC2W,IAAI,EAAE;YAC5C,OAAO;cACHA,IAAI,EAAE3W,IAAI,CAAC2W,IAAI;cACf/X,IAAI,EAAEoB,IAAI,CAACpB,IAAI;cACf1L,KAAK,EAAE8M,IAAI,CAAC9M,KAAK;cACjB+f,IAAI,EAAE,CAAC,CAACjT,IAAI,CAACiT,IAAI;cACjBpT,IAAI,EAAEG,IAAI,CAACH,IAAI;cACfuY,QAAQ,EAAEpY,IAAI,CAACoY;YACnB,CAAC;UACL;UACA,IAAI,CAACpY,IAAI,CAAC2W,IAAI,EAAE;YACZlM,OAAO,CAAC4N,IAAI,6BAAsBjb,GAAG,CAACoI,GAAG,sCAAmC;YAC5E,OAAO,IAAI;UACf;UACA,OAAO;YACHmR,IAAI,EAAE3W,IAAI,CAAC2W,IAAI;YACf/X,IAAI,EAAEoB,IAAI,CAACpB,IAAI,CAAC,OAAI,CAAC4L,KAAK,CAAC3L,IAAI,CAAC,IAAImB,IAAI,CAACpB,IAAI,CAACE,EAAE;YAChD5L,KAAK,EAAE8M,IAAI,CAAC9M,KAAK;YACjB+f,IAAI,EAAE,CAAC,CAACjT,IAAI,CAACiT,IAAI;YACjBpT,IAAI,EAAEG,IAAI,CAACH,IAAI;YACfuY,QAAQ,EAAEpY,IAAI,CAACoY;UACnB,CAAC;QACL,CAAC,CAAC,CAAC7K,MAAM,CAAC,UAAAvN,IAAI;UAAA,OAAIA,IAAI;QAAA,EAAC;QAEvB,IAAIqR,OAAO,IAAIA,OAAO,CAAC9S,MAAM,EAAE;UAC3B6M,eAAe,GAAGA,eAAe,IAAI,CAAC,CAAC;UACvCA,eAAe,CAAChO,GAAG,CAACmC,MAAM,CAACX,IAAI,CAAC,GAAGyS,OAAO,CAACzO,IAAI,CAAC,UAACC,CAAC,EAAEC,CAAC;YAAA,OAAMD,CAAC,CAAC8T,IAAI,GAAG7T,CAAC,CAAC6T,IAAI,GAAG,CAAC,CAAC,GAAI9T,CAAC,CAAC8T,IAAI,GAAG7T,CAAC,CAAC6T,IAAI,GAAG,CAAC,GAAG,CAAE;UAAA,CAAC,CAAC;QACjH;MACJ,CAAC,MAAM,IAAIvZ,GAAG,CAACmC,MAAM,IAAInC,GAAG,CAACmC,MAAM,CAACX,IAAI,IAAIwM,eAAe,IAAIA,eAAe,CAAChO,GAAG,CAACmC,MAAM,CAACX,IAAI,CAAC,EAAE;QAC7F,OAAOwM,eAAe,CAAChO,GAAG,CAACmC,MAAM,CAACX,IAAI,CAAC;MAC3C;MACA,OAAOwM,eAAe;IAC1B;;IAEA;AACJ;AACA;AACA;EAHI;IAAA;IAAA;IA4EA;AACJ;AACA;AACA;IACI,mBAAUlM,EAAE,EAAE;MACV,IAAI,CAAC,IAAI,CAACiS,UAAU,CAACzR,QAAQ,CAACR,EAAE,CAAC,EAAE;QAC/B,IAAI,CAACiS,UAAU,CAAClP,IAAI,CAAC/C,EAAE,CAAC;QACxBuL,OAAO,CAACC,GAAG,uBAAgBxL,EAAE,EAAG;QAChC,CAAC,IAAI,CAAC0L,gBAAgB,IAAI,IAAI,CAACJ,KAAK,CAACwB,MAAM,CAACsM,cAAc,CAACpZ,EAAE,EAAE,IAAI,CAACuY,aAAa,CAAC;MACtF;IACJ;;IAEA;AACJ;AACA;AACA;EAHI;IAAA;IAAA,OAIA,qBAAYvY,EAAE,EAAE;MACZ,IAAMoS,GAAG,GAAG,IAAI,CAACH,UAAU,CAACI,OAAO,CAACrS,EAAE,CAAC;MACvC,IAAIoS,GAAG,KAAK,CAAC,CAAC,EAAE;QACZ,IAAI,CAACH,UAAU,CAACrM,MAAM,CAACwM,GAAG,EAAE,CAAC,CAAC;QAC9B,IAAI,IAAI,CAAC7K,MAAM,CAACvH,EAAE,CAAC,EAAE;UACjB,OAAO,IAAI,CAACuH,MAAM,CAACvH,EAAE,CAAC;QAC1B;QACAuL,OAAO,CAACC,GAAG,yBAAkBxL,EAAE,EAAG;QAClC,IAAI,CAACsL,KAAK,CAACwB,MAAM,CAACwL,gBAAgB,CAACtY,EAAE,EAAE,IAAI,CAACuY,aAAa,CAAC;QAE1D,IAAI,IAAI,CAAC7M,gBAAgB,EAAE;UACvBH,OAAO,CAAC4N,IAAI,CAAC,2BAA2B,CAAC;QAC7C;MACJ;IACJ;;IAEA;AACJ;AACA;AACA;EAHI;IAAA;IAAA,OAIA,wBAAeE,OAAO,EAAE;MAAA;MACpB,IAAI,CAAC,IAAI,CAAC3N,gBAAgB,IAAI2N,OAAO,EAAE;QACnC,IAAI,CAAC3N,gBAAgB,GAAG,IAAI;QAC5B,IAAI,CAACuG,UAAU,CAACzP,OAAO,CAAC,UAAAxC,EAAE;UAAA,OAAI,OAAI,CAACsL,KAAK,CAACwB,MAAM,CAACwL,gBAAgB,CAACtY,EAAE,EAAE,OAAI,CAACuY,aAAa,CAAC;QAAA,EAAC;MAC7F,CAAC,MAAM,IAAI,IAAI,CAAC7M,gBAAgB,IAAI,CAAC2N,OAAO,EAAE;QAC1C,IAAI,CAAC3N,gBAAgB,GAAG,KAAK;QAC7B,IAAI,CAACuG,UAAU,CAACzP,OAAO,CAAC,UAAAxC,EAAE;UAAA,OAAI,OAAI,CAACsL,KAAK,CAACwB,MAAM,CAACsM,cAAc,CAACpZ,EAAE,EAAE,OAAI,CAACuY,aAAa,CAAC;QAAA,EAAC;MAC3F;IACJ;;IAEA;AACJ;AACA;AACA;AACA;EAJI;IAAA;IAAA,OAKA,kBAAS7Y,IAAI,EAAE0I,KAAK,EAAE;MAAA;MAClB,IAAI,CAAC8P,WAAW,GAAG,IAAI;MACvB,IAAM7J,MAAM,qBAAQ,IAAI,CAAClH,KAAK,CAACkH,MAAM,CAAE;MAEvCvM,MAAM,CAACC,IAAI,CAAC,IAAI,CAACgQ,UAAU,CAAC,CAACvP,OAAO,CAAC,UAAA8W,KAAK,EAAI;QAC1C,IAAI,OAAI,CAACvH,UAAU,CAACuH,KAAK,CAAC,IAAI,OAAI,CAACvH,UAAU,CAACuH,KAAK,CAAC,CAACC,OAAO,EAAE;UAC1D,KAAK,IAAI5U,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,OAAI,CAACoN,UAAU,CAACuH,KAAK,CAAC,CAACC,OAAO,CAAChX,QAAQ,CAAClD,MAAM,EAAEsF,CAAC,EAAE,EAAE;YACrE,IAAI,OAAI,CAACoN,UAAU,CAACuH,KAAK,CAAC,CAACC,OAAO,CAAChX,QAAQ,CAACoC,CAAC,CAAC,CAAC6U,OAAO,KAAK,OAAO,EAAE;cAChEnL,MAAM,CAACiL,KAAK,CAAC,GAAG,OAAI,CAACvH,UAAU,CAACuH,KAAK,CAAC,CAACC,OAAO,CAAChX,QAAQ,CAACoC,CAAC,CAAC,CAACyD,KAAK;cAChE;YACJ;UACJ;QACJ;MACJ,CAAC,CAAC;MAEF,IAAI1I,IAAI,EAAE;QACN2O,MAAM,CAAC3O,IAAI,CAAC,GAAG0I,KAAK;QACpB,IAAI1I,IAAI,KAAK,YAAY,EAAE;UACvB,CAAC2N,MAAM,CAACsE,eAAe,IAAItE,MAAM,CAACuE,cAAc,EAAEzB,OAAO,CAAC,gBAAgB,EAAE/H,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;QACzG;MACJ;MAEA,IAAI5J,IAAI,CAACC,SAAS,CAAC,IAAI,CAAC0I,KAAK,CAACkH,MAAM,CAAC,KAAK7P,IAAI,CAACC,SAAS,CAAC4P,MAAM,CAAC,EAAE;QAC9D,CAAChB,MAAM,CAAC4C,aAAa,IAAI5C,MAAM,CAAC6C,YAAY,EAAEC,OAAO,WAAI,IAAI,CAAC7E,KAAK,CAAC8E,UAAU,IAAI,KAAK,oBAAiB5R,IAAI,CAACC,SAAS,CAAC4P,MAAM,CAAC,CAAC;QAC/H,IAAI,CAAChC,QAAQ,CAAC;UAAEgC,MAAM,EAANA;QAAO,CAAC,EAAE;UAAA,OACtB,OAAI,CAAC/C,KAAK,CAACmO,eAAe,IAAI,OAAI,CAACnO,KAAK,CAACmO,eAAe,CAACpL,MAAM,CAAC;QAAA,EAAC;MACzE;IACJ;EAAC;IAAA;IAAA,OAED,uBAAc;MAAA;MACV,IAAMA,MAAM,qBAAQ,IAAI,CAAClH,KAAK,CAACkH,MAAM,CAAE;MAEvCvM,MAAM,CAACC,IAAI,CAAC,IAAI,CAACgQ,UAAU,CAAC,CAACvP,OAAO,CAAC,UAAA9C,IAAI,EAAI;QACzC,IAAI,OAAI,CAACqS,UAAU,CAACrS,IAAI,CAAC,IAAI,OAAI,CAACqS,UAAU,CAACrS,IAAI,CAAC,CAAC6Z,OAAO,EAAE;UACxD,KAAK,IAAI5U,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,OAAI,CAACoN,UAAU,CAACrS,IAAI,CAAC,CAAC6Z,OAAO,CAACG,UAAU,CAACra,MAAM,EAAEsF,CAAC,EAAE,EAAE;YACtE,IAAM7D,IAAI,GAAG,OAAI,CAACiR,UAAU,CAACrS,IAAI,CAAC,CAAC6Z,OAAO,CAACG,UAAU,CAAC/U,CAAC,CAAC;YACxD,IAAI7D,IAAI,CAAC0Y,OAAO,KAAK,OAAO,EAAE;cAC1BnL,MAAM,CAAC3O,IAAI,CAAC,GAAG,EAAE;cACjBoB,IAAI,CAACsH,KAAK,GAAG,EAAE;cACf;YACJ;UACJ;QACJ;MACJ,CAAC,CAAC;MAEF,IAAI5J,IAAI,CAACC,SAAS,CAAC,IAAI,CAAC0I,KAAK,CAACkH,MAAM,CAAC,KAAK7P,IAAI,CAACC,SAAS,CAAC4P,MAAM,CAAC,EAAE;QAC9D,CAAChB,MAAM,CAAC4C,aAAa,IAAI5C,MAAM,CAAC6C,YAAY,EAAEC,OAAO,WAAI,IAAI,CAAC7E,KAAK,CAAC8E,UAAU,IAAI,KAAK,oBAAiB5R,IAAI,CAACC,SAAS,CAAC4P,MAAM,CAAC,CAAC;QAC/H,IAAI,CAAChC,QAAQ,CAAC;UAAEgC,MAAM,EAANA,MAAM;UAAE4E,SAAS,EAAE,IAAI,CAAC9L,KAAK,CAAC8L,SAAS,GAAG;QAAE,CAAC,EAAE;UAAA,OAC3D,OAAI,CAAC3H,KAAK,CAACmO,eAAe,IAAI,OAAI,CAACnO,KAAK,CAACmO,eAAe,CAACpL,MAAM,CAAC;QAAA,EAAC;MACzE;IACJ;EAAC;IAAA;IAAA,OAED,yBAAgB;MAAA;MACZ,IAAMsL,YAAY,GAAG7X,MAAM,CAACC,IAAI,CAAC,IAAI,CAACoF,KAAK,CAACkH,MAAM,CAAC,CAACpP,IAAI,CAAC,UAAA2a,IAAI;QAAA,OACzDA,IAAI,KAAK,YAAY,IAAI,OAAI,CAACzS,KAAK,CAACkH,MAAM,CAACuL,IAAI,CAAC;MAAA,EAAC;MACrD,OAAO,CAACD,YAAY;IACxB;;IAEA;AACJ;AACA;AACA;EAHI;IAAA;IAAA,OAIA,wBAAeja,IAAI,EAAE;MAAA;QAAA;QAAA;MACjB,oBAAO,gCAAC,uBAAW;QACf,SAAS,EAAE9I,iBAAK,CAAC0M,IAAI,CAAC,IAAI,CAACgI,KAAK,CAACnI,OAAO,CAACxH,eAAe,EAAE,IAAI,CAAC2P,KAAK,CAACnI,OAAO,CAAChI,WAAW,CAAE;QAC1F,GAAG,YAAKuE,IAAI,cAAI,IAAI,CAACyH,KAAK,CAAC8L,SAAS;QACpC;QAAA;QACA,MAAM,EAAC;MAAO,gBAEd,gCAAC,iBAAK;QACF,GAAG,EAAE,IAAI,CAAClB,UAAU,CAACrS,IAAI,CAAE;QAC3B,OAAO,EAAE;UAAEma,SAAS,EAAE;QAAe,CAAE;QACvC,EAAE,EAAEna,IAAK;QACT,WAAW,EAAE,IAAI,CAAC0H,KAAK,kBAAW1H,IAAI,EAAI;QAC1C,YAAY,EAAE,IAAI,CAACyH,KAAK,CAACkH,MAAM,CAAC3O,IAAI,CAAE;QACtC,QAAQ,EAAE,oBAAM;UACZ,OAAI,CAACwY,WAAW,IAAIpM,YAAY,CAAC,OAAI,CAACoM,WAAW,CAAC;UAClD,OAAI,CAACA,WAAW,GAAGtM,UAAU,CAAC;YAAA,OAAM,OAAI,CAACkO,QAAQ,EAAE;UAAA,GAAE,GAAG,CAAC;QAC7D,CAAE;QACF,YAAY,EAAC;MAAK,EACpB,EACD,6BAAI,CAAC/H,UAAU,CAACrS,IAAI,CAAC,4EAArB,sBAAuB6Z,OAAO,mDAA9B,uBAAgCQ,UAAU,CAAC3R,KAAK,gBAC7C;QACI,KAAK,EAAE;UACHzS,QAAQ,EAAE,UAAU;UACpBwC,KAAK,EAAE;QACX;MAAE,gBAEF,gCAAC,sBAAU;QACP,IAAI,EAAC,OAAO;QACZ,OAAO,EAAE,mBAAM;UACX,OAAI,CAAC4Z,UAAU,CAACrS,IAAI,CAAC,CAAC6Z,OAAO,CAACQ,UAAU,CAAC3R,KAAK,GAAG,EAAE;UACnD,OAAI,CAAC0R,QAAQ,CAACpa,IAAI,EAAE,EAAE,CAAC;QAC3B;MAAE,gBAEF,gCAAC,iBAAS,OAAG,CACJ,CACX,GAAG,IAAI,CACP;IAClB;;IAEA;AACJ;AACA;AACA;AACA;EAJI;IAAA;IAAA,OAKA,yBAAgBA,IAAI,EAAEuJ,MAAM,EAAE;MAAA;QAAA;QAAA;QAAA;MAC1B,IAAM+Q,QAAQ,GAAG,CAAC,CAAC/Q,MAAM,CAAChK,IAAI,CAAC,UAAA6B,IAAI;QAAA,OAAIA,IAAI,CAACR,IAAI;MAAA,EAAC;MACjD,oBAAO;QAAK,KAAK,EAAE;UAAE3K,QAAQ,EAAE;QAAW;MAAE,gBACxC,gCAAC,kBAAM;QACH,OAAO,EAAC,UAAU;QAClB,GAAG,YAAK+J,IAAI,cAAI,IAAI,CAACyH,KAAK,CAAC8L,SAAS,CAAG;QACvC,GAAG,EAAE,IAAI,CAAClB,UAAU,CAACrS,IAAI,CAAE;QAC3B,SAAS,YAAK,IAAI,CAAC4L,KAAK,CAACnI,OAAO,CAACxH,eAAe,kBAAgB;QAChE,QAAQ,EAAE,oBAAM;UACZ,OAAI,CAACuc,WAAW,IAAIpM,YAAY,CAAC,OAAI,CAACoM,WAAW,CAAC;UAClD,OAAI,CAACA,WAAW,GAAGtM,UAAU,CAAC;YAAA,OAAM,OAAI,CAACkO,QAAQ,EAAE;UAAA,GAAE,GAAG,CAAC;QAC7D,CAAE;QACF,YAAY,EAAE,IAAI,CAAC3S,KAAK,CAACkH,MAAM,CAAC3O,IAAI,CAAC,IAAI,EAAG;QAC5C,UAAU,EAAE;UAAEA,IAAI,EAAJA,IAAI;UAAEM,EAAE,EAAEN;QAAK,CAAE;QAC/B,YAAY;MAAA,gBAEZ,gCAAC,oBAAQ;QAAC,GAAG,EAAC,OAAO;QAAC,KAAK,EAAC;MAAE,gBAC1B;QAAM,SAAS,EAAE,IAAI,CAAC4L,KAAK,CAACnI,OAAO,CAAC7H;MAAW,GAAE,IAAI,CAAC8L,KAAK,kBAAW1H,IAAI,EAAG,CAAQ,CAC9E,EACVuJ,MAAM,CAAC8F,GAAG,CAAC,UAAAjO,IAAI,EAAI;QAChB,IAAId,EAAE;QACN,IAAIsZ,KAAK;QACT,IAAIhZ,IAAI;QACR,IAAI,yBAAOQ,IAAI,MAAK,QAAQ,EAAE;UAC1Bd,EAAE,GAAKc,IAAI,CAACsH,KAAK;UACjBkR,KAAK,GAAGxY,IAAI,CAACpB,IAAI;UACjBY,IAAI,GAAGQ,IAAI,CAACR,IAAI;QACpB,CAAC,MAAM;UACHN,EAAE,GAAGc,IAAI;UACTwY,KAAK,GAAGxY,IAAI;QAChB;QACA,oBAAO,gCAAC,oBAAQ;UAAC,SAAS,EAAE,OAAI,CAACwK,KAAK,CAACnI,OAAO,CAACvH,oBAAqB;UAAC,GAAG,EAAEoE,EAAG;UAAC,KAAK,EAAEA;QAAG,GACnFM,IAAI,KAAK0Z,QAAQ,gBAAG;UAAK,SAAS,EAAC;QAAU,EAAG,GAAG,IAAI,CAAC,EACxDV,KAAK,CACC;MACf,CAAC,CAAC,CACG,EACR,8BAAI,CAACvH,UAAU,CAACrS,IAAI,CAAC,6EAArB,uBAAuB6Z,OAAO,6EAA9B,uBAAgCG,UAAU,CAAC,CAAC,CAAC,mDAA7C,uBAA+CtR,KAAK,gBACjD;QAAK,SAAS,EAAExR,iBAAK,CAAC0M,IAAI,CAAC,IAAI,CAACgI,KAAK,CAACnI,OAAO,CAACjG,iBAAiB;MAAE,gBAC7D,gCAAC,sBAAU;QACP,IAAI,EAAC,OAAO;QACZ,OAAO,EAAE,mBAAM;UACX,IAAM+c,SAAS,qBAAQ,OAAI,CAAC9S,KAAK,CAACkH,MAAM,CAAE;UAC1C4L,SAAS,CAACva,IAAI,CAAC,GAAG,EAAE;UACpB,OAAI,CAACqS,UAAU,CAACrS,IAAI,CAAC,CAAC6Z,OAAO,CAACG,UAAU,CAAC,CAAC,CAAC,CAACtR,KAAK,GAAG,EAAE;UACtD,CAACiF,MAAM,CAAC4C,aAAa,IAAI5C,MAAM,CAAC6C,YAAY,EAAEC,OAAO,WAAI,OAAI,CAAC7E,KAAK,CAAC8E,UAAU,IAAI,KAAK,oBAAiB5R,IAAI,CAACC,SAAS,CAACwb,SAAS,CAAC,CAAC;UAClI,OAAI,CAAC5N,QAAQ,CAAC;YAAEgC,MAAM,EAAE4L,SAAS;YAAEhH,SAAS,EAAE,OAAI,CAAC9L,KAAK,CAAC8L,SAAS,GAAG;UAAE,CAAC,EAAE;YAAA,OACtE,OAAI,CAAC3H,KAAK,CAACmO,eAAe,IAAI,OAAI,CAACnO,KAAK,CAACmO,eAAe,CAACQ,SAAS,CAAC;UAAA,EAAC;QAC5E;MAAE,gBAEF,gCAAC,iBAAS,OAAG,CACJ,CACX,GAAG,IAAI,CACf;IACV;;IAEA;AACJ;AACA;EAFI;IAAA;IAAA,OAGA,+BAAsB;MAClB,OAAO,IAAI,CAACC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAChW,IAAI,CAACG,KAAK,CAAC;IACxD;;IAEA;AACJ;AACA;EAFI;IAAA;IAAA,OAGA,+BAAsB;MAAA;MAClB,IAAMoC,KAAK,GAAG,IAAI,CAACvC,IAAI,CAACE,SAAS,CAAC2K,GAAG,CAAC,UAAA/O,EAAE;QAAA;QAAA,OAAK;UACzCN,IAAI,EAAED,OAAO,CAAC,8BAAI,CAACM,OAAO,CAACC,EAAE,CAAC,gFAAhB,mBAAkBK,MAAM,0DAAxB,sBAA0BX,IAAI,KAAIM,EAAE,CAACY,KAAK,CAAC,GAAG,CAAC,CAACmF,GAAG,EAAE,CAAC;UACpEqC,KAAK,EAAEpI,EAAE;UACTM,IAAI,eAAE,gCAAC,gBAAI;YAAC,GAAG,EAAE,+BAAI,CAACP,OAAO,CAACC,EAAE,CAAC,iFAAhB,oBAAkBK,MAAM,0DAAxB,sBAA0BC,IAAI,KAAI,EAAG;YAAC,SAAS,EAAE,OAAI,CAACgL,KAAK,CAACnI,OAAO,CAAC9H;UAAW;QACpG,CAAC;MAAA,CAAC,CAAC;MAEH,OAAO,IAAI,CAAC6e,eAAe,CAAC,MAAM,EAAEzT,KAAK,CAAC;IAC9C;;IAEA;AACJ;AACA;EAFI;IAAA;IAAA,OAGA,mCAA0B;MAAA;MACtB,IAAM/E,IAAI,GAAG,IAAI,CAACwC,IAAI,CAACC,SAAS,CAAC4K,GAAG,CAAC,UAAA/O,EAAE;QAAA;QAAA,OAAK;UACxCN,IAAI,EAAED,OAAO,CAAE,OAAI,CAACM,OAAO,CAACC,EAAE,CAAC,IAAI,OAAI,CAACD,OAAO,CAACC,EAAE,CAAC,CAACK,MAAM,IAAI,OAAI,CAACN,OAAO,CAACC,EAAE,CAAC,CAACK,MAAM,CAACX,IAAI,IAAKM,EAAE,CAACY,KAAK,CAAC,GAAG,CAAC,CAACmF,GAAG,EAAE,CAAC;UACnHqC,KAAK,EAAEpI,EAAE;UACTM,IAAI,eAAE,gCAAC,gBAAI;YAAC,GAAG,EAAE,8BAAI,CAACP,OAAO,CAACC,EAAE,CAAC,gFAAhB,mBAAkBK,MAAM,0DAAxB,sBAA0BC,IAAI,KAAI,EAAG;YAAC,SAAS,EAAE,OAAI,CAACgL,KAAK,CAACnI,OAAO,CAAC9H;UAAW;QACpG,CAAC;MAAA,CAAC,CAAC;MAEH,OAAO,IAAI,CAAC6e,eAAe,CAAC,MAAM,EAAExY,IAAI,CAAC;IAC7C;;IAEA;AACJ;AACA;EAFI;IAAA;IAAA,OAGA,+BAAsB;MAClB,IAAM4C,KAAK,GAAG,IAAI,CAACJ,IAAI,CAACI,KAAK,CAACyK,GAAG,CAAC,UAAApO,IAAI;QAAA,OAAK;UACvCjB,IAAI,EAAEiB,IAAI;UACVyH,KAAK,EAAEzH,IAAI;UACXL,IAAI,EAAE8I,WAAW,CAACzI,IAAI;QAC1B,CAAC;MAAA,CAAC,CAAC;MAEH,OAAO,IAAI,CAACuZ,eAAe,CAAC,MAAM,EAAE5V,KAAK,CAAC;IAC9C;;IAEA;AACJ;AACA;EAFI;IAAA;IAAA,OAGA,kCAAyB;MAAA;MACrB,IAAI,IAAI,CAACJ,IAAI,CAACK,OAAO,CAAClF,MAAM,EAAE;QAC1B,IAAMkF,OAAO,GAAG,IAAI,CAACL,IAAI,CAACK,OAAO,CAACwK,GAAG,CAAC,UAAA/O,EAAE;UAAA,OAAK;YACzCN,IAAI,EAAEM,EAAE;YACRoI,KAAK,EAAEpI,EAAE;YACTM,IAAI,eAAE,gCAAC,gBAAI;cAAC,GAAG,EAAER,eAAe,CAAC,OAAI,CAACC,OAAO,EAAEC,EAAE,EAAE,OAAI,CAACC,WAAW,CAAC,IAAI,EAAG;cAAC,SAAS,EAAE,OAAI,CAACqL,KAAK,CAACnI,OAAO,CAAC9H;YAAW;UACzH,CAAC;QAAA,CAAC,CAAC;QACH,OAAO,IAAI,CAAC6e,eAAe,CAAC,QAAQ,EAAE3V,OAAO,CAAC;MAClD;MACA,OAAO,IAAI;IACf;;IAEA;AACJ;AACA;AACA;AACA;EAJI;IAAA;IAAA,OAKA,qBAAYN,IAAI,EAAEwN,QAAQ,EAAE;MAAA;MACxBxN,IAAI,GAAGA,IAAI,IAAI,IAAI,CAACA,IAAI;MACxBwN,QAAQ,GAAGA,QAAQ,IAAI,EAAE;MAEzBxN,IAAI,CAAC1B,QAAQ,IAAI0B,IAAI,CAAC1B,QAAQ,CAACC,OAAO,CAAC,UAAA1B,IAAI,EAAI;QAC3C,IAAIA,IAAI,CAACa,IAAI,CAACe,aAAa,EAAE;UACzB+O,QAAQ,CAAC1O,IAAI,CAACjC,IAAI,CAACa,IAAI,CAAC3B,EAAE,CAAC;UAC3B,OAAI,CAACma,WAAW,CAACrZ,IAAI,EAAE2Q,QAAQ,CAAC;QACpC;MACJ,CAAC,CAAC;MAEF,IAAIxN,IAAI,KAAK,IAAI,CAACA,IAAI,EAAE;QACpBwN,QAAQ,CAAC/N,IAAI,EAAE;QACf,CAAC2J,MAAM,CAAC4C,aAAa,IAAI5C,MAAM,CAAC6C,YAAY,EAAEC,OAAO,WAAI,IAAI,CAAC7E,KAAK,CAAC8E,UAAU,IAAI,KAAK,sBAAmB5R,IAAI,CAACC,SAAS,CAACgT,QAAQ,CAAC,CAAC;QAEnI,IAAI,CAACpF,QAAQ,CAAC;UAAEoF,QAAQ,EAARA;QAAS,CAAC,CAAC;MAC/B;IACJ;;IAEA;AACJ;AACA;EAFI;IAAA;IAAA,OAGA,yBAAgB;MAAA;MACZ,CAACpE,MAAM,CAAC4C,aAAa,IAAI5C,MAAM,CAAC6C,YAAY,EAAEC,OAAO,WAAI,IAAI,CAAC7E,KAAK,CAAC8E,UAAU,IAAI,KAAK,sBAAmB5R,IAAI,CAACC,SAAS,CAAC,EAAE,CAAC,CAAC;MAC7H,CAAC4O,MAAM,CAAC4C,aAAa,IAAI5C,MAAM,CAAC6C,YAAY,EAAEC,OAAO,WAAI,IAAI,CAAC7E,KAAK,CAAC8E,UAAU,IAAI,KAAK,sBAAmB,IAAI,CAAC;MAC/G,IAAI,CAAC/D,QAAQ,CAAC;QAAEoF,QAAQ,EAAE,EAAE;QAAEyB,KAAK,EAAE,CAAC;QAAE/E,QAAQ,EAAE;MAAG,CAAC,EAAE;QAAA,OACpD,OAAI,CAACkJ,aAAa,EAAE;MAAA,EAAC;IAC7B;;IAEA;AACJ;AACA;AACA;AACA;AACA;EALI;IAAA;IAAA,OAMA,qBAAYpT,IAAI,EAAEiP,KAAK,EAAEzB,QAAQ,EAAE;MAAA;MAC/BxN,IAAI,GAAGA,IAAI,IAAI,IAAI,CAACA,IAAI;MACxB,IAAIiP,KAAK,GAAG,CAAC,EAAE;QACX,IAAIjP,IAAI,CAAC1B,QAAQ,EAAE;UACf0B,IAAI,CAAC1B,QAAQ,CAACC,OAAO,CAAC,UAAA1B,IAAI,EAAI;YAC1B,IAAIA,IAAI,CAACa,IAAI,CAACe,aAAa,EAAE;cACzB,IAAI,CAAC3D,YAAY,CAAC0S,QAAQ,EAAE3Q,IAAI,CAACa,IAAI,CAAC3B,EAAE,CAAC,EAAE;gBACvCyR,QAAQ,CAAC1O,IAAI,CAACjC,IAAI,CAACa,IAAI,CAAC3B,EAAE,CAAC;gBAC3ByR,QAAQ,CAAC/N,IAAI,EAAE;cACnB;cACA,IAAIwP,KAAK,GAAG,CAAC,GAAG,CAAC,EAAE;gBACf,OAAI,CAACkH,WAAW,CAACtZ,IAAI,EAAEoS,KAAK,GAAG,CAAC,EAAEzB,QAAQ,CAAC;cAC/C;YACJ;UACJ,CAAC,CAAC;QACN;MACJ;IACJ;;IAEA;AACJ;AACA;AACA;AACA;EAJI;IAAA;IAAA;IASA;AACJ;AACA;IACI,2BAAkB;MACd,IAAI,IAAI,CAACtK,KAAK,CAAC+L,KAAK,GAAG,CAAC,EAAE;QACtB,IAAMA,KAAK,GAAG,IAAI,CAAC/L,KAAK,CAAC+L,KAAK,GAAG,CAAC;QAClC,IAAMzB,QAAQ,uCAAO,IAAI,CAACtK,KAAK,CAACsK,QAAQ,CAAC;QACzC,IAAI,CAAC2I,WAAW,CAAC,IAAI,CAACnW,IAAI,EAAEiP,KAAK,EAAEzB,QAAQ,CAAC;QAC5C,CAACpE,MAAM,CAAC4C,aAAa,IAAI5C,MAAM,CAAC6C,YAAY,EAAEC,OAAO,WAAI,IAAI,CAAC7E,KAAK,CAAC8E,UAAU,IAAI,KAAK,sBAAmB5R,IAAI,CAACC,SAAS,CAACgT,QAAQ,CAAC,CAAC;QACnI,IAAI,CAACpF,QAAQ,CAAC;UAAE6G,KAAK,EAALA,KAAK;UAAEzB,QAAQ,EAARA;QAAS,CAAC,CAAC;MACtC;IACJ;;IAEA;AACJ;AACA;EAFI;IAAA;IAAA,OAGA,+BAAsB;MAClB,IAAMqB,UAAU,GAAG,CAAC,IAAI,CAAC3L,KAAK,CAAC2L,UAAU;MACzC,CAACzF,MAAM,CAAC4C,aAAa,IAAI5C,MAAM,CAAC6C,YAAY,EAAEC,OAAO,WAAI,IAAI,CAAC7E,KAAK,CAAC8E,UAAU,IAAI,KAAK,wBAAqB5R,IAAI,CAACC,SAAS,CAACqU,UAAU,CAAC,CAAC;MACvI,IAAI,CAACzG,QAAQ,CAAC;QAAEyG,UAAU,EAAVA;MAAW,CAAC,CAAC;IACjC;;IAEA;AACJ;AACA;EAFI;IAAA;IAAA,OAGA,6BAAoB;MAChB,IAAI,IAAI,CAAC3L,KAAK,CAAC+L,KAAK,GAAG,CAAC,EAAE;QACtB,IAAMA,KAAK,GAAG,IAAI,CAAC/L,KAAK,CAAC+L,KAAK,GAAG,CAAC;QAClC,IAAMzB,QAAQ,GAAGpG,aAAa,CAACgP,aAAa,CAACnH,KAAK,EAAE,IAAI,CAAC/L,KAAK,CAACsK,QAAQ,CAAC;QACxE,CAACpE,MAAM,CAAC4C,aAAa,IAAI5C,MAAM,CAAC6C,YAAY,EAAEC,OAAO,WAAI,IAAI,CAAC7E,KAAK,CAAC8E,UAAU,IAAI,KAAK,sBAAmB5R,IAAI,CAACC,SAAS,CAACgT,QAAQ,CAAC,CAAC;QACnI,IAAI,CAACpF,QAAQ,CAAC;UAAE6G,KAAK,EAALA,KAAK;UAAEzB,QAAQ,EAARA;QAAS,CAAC,CAAC;MACtC;IACJ;;IAEA;AACJ;AACA;AACA;EAHI;IAAA;IAAA,OA2GA,oCAA2B;MACvB,IAAI,IAAI,CAACtK,KAAK,CAACgH,QAAQ,CAAC9O,MAAM,IAAI,IAAI,CAAC8H,KAAK,CAACiH,iBAAiB,EAAE;QAC5D,IAAM5B,MAAM,GAAG,EAAE;QACjB,IAAMzK,IAAI,GAAGD,MAAM,CAACC,IAAI,CAAC,IAAI,CAAChC,OAAO,CAAC;QACtCgC,IAAI,CAAC2B,IAAI,EAAE;QACX,IAAM1D,EAAE,GAAG,IAAI,CAACmH,KAAK,CAACgH,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAChH,KAAK,CAACiH,iBAAiB;QACjE,IAAMkM,KAAK,aAAMta,EAAE,MAAG;QACtB,IAAMua,KAAK,GAAGD,KAAK,CAACjb,MAAM;QAC1B,KAAK,IAAI4D,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGlB,IAAI,CAAC1C,MAAM,EAAE4D,CAAC,EAAE,EAAE;UAClC,IAAMuX,GAAG,GAAGzY,IAAI,CAACkB,CAAC,CAAC;UACnB,IAAIjD,EAAE,KAAKwa,GAAG,IAAIA,GAAG,CAACja,UAAU,CAAC+Z,KAAK,CAAC,EAAE;YACrC9N,MAAM,CAACzJ,IAAI,CAACyX,GAAG,CAAC;UACpB;UACA,IAAIA,GAAG,CAACzV,SAAS,CAAC,CAAC,EAAEwV,KAAK,CAAC,GAAGD,KAAK,EAAE;YACjC;UACJ;QACJ;QAEA,OAAO9N,MAAM;MACjB;MACA,OAAO,EAAE;IACb;EAAC;IAAA;IAAA,OAED,wBAAeiO,KAAK,EAAE;MAAA;MAClB,IAAIA,KAAK,EAAE;QACPzc,YAAY,CAAC,iBAAiB,EAAE,IAAI,CAAC+B,OAAO,CAAC;MACjD,CAAC,MACD,IAAI,IAAI,CAACoH,KAAK,CAACgH,QAAQ,CAAC9O,MAAM,IAAI,IAAI,CAAC8H,KAAK,CAACiH,iBAAiB,EAAE;QAC5D,IAAM5B,MAAM,GAAG,CAAC,CAAC;QACjB,IAAMxM,EAAE,GAAG,IAAI,CAACmH,KAAK,CAACgH,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAChH,KAAK,CAACiH,iBAAiB;QAEjE,IAAI,CAACsM,wBAAwB,EAAE,CAAClY,OAAO,CAAC,UAAAgY,GAAG,EAAI;UAC3ChO,MAAM,CAACgO,GAAG,CAAC,GAAGhc,IAAI,CAAC2N,KAAK,CAAC3N,IAAI,CAACC,SAAS,CAAC,OAAI,CAACsB,OAAO,CAACya,GAAG,CAAC,CAAC,CAAC;UAC3D;UACA,IAAIhO,MAAM,CAACgO,GAAG,CAAC,CAACna,MAAM,EAAE;YACpB,IAAMmE,KAAK,GAAG,OAAI,CAACmW,aAAa,CAACH,GAAG,CAAC;YACrC,IAAIhW,KAAK,EAAE;cACPgI,MAAM,CAACgO,GAAG,CAAC,CAACna,MAAM,CAACmE,KAAK,GAAGA,KAAK;YACpC;UACJ;QACJ,CAAC,CAAC;QAEFxG,YAAY,WAAIgC,EAAE,YAASwM,MAAM,CAAC;MACtC,CAAC,MAAM;QACHa,MAAM,CAACC,KAAK,CAAC,IAAI,CAAChC,KAAK,CAACnD,CAAC,CAAC,yCAAyC,CAAC,CAAC;MACzE;IACJ;EAAC;IAAA;IAAA,OAED,8BAAqB;MAAA;MACjB,IAAI,IAAI,CAAChB,KAAK,CAAC0M,gBAAgB,KAAK,KAAK,EAAE;QACvC,OAAO,IAAI;MACf;MACA,oBAAO,gCAAC,kBAAM;QAAC,IAAI,EAAE,CAAC;MAAE,gBACpB,gCAAC,uBAAW,QAAE,IAAI,CAACvI,KAAK,CAACnD,CAAC,CAAC,uBAAuB,CAAC,CAAe,eAClE,gCAAC,yBAAa,qBACV,gCAAC,6BAAiB,QACb,IAAI,CAACmD,KAAK,CAACnD,CAAC,CAAC,yDAAyD,CAAC,eACxE,2CAAM,EACL,IAAI,CAACmD,KAAK,CAACnD,CAAC,CAAC,uBAAuB,EAAE,IAAI,CAAChB,KAAK,CAAC0M,gBAAgB,CAAC,CACnD,CACR,eAChB,gCAAC,yBAAa,qBACV,gCAAC,kBAAM;QAAC,KAAK,EAAC,MAAM;QAAC,OAAO,EAAC,UAAU;QAAC,OAAO,EAAE;UAAA,OAAM,OAAI,CAACxH,QAAQ,CAAC;YAAEwH,gBAAgB,EAAE;UAAM,CAAC,EAAE;YAAA,OAAM,OAAI,CAAC+G,cAAc,CAAC,IAAI,CAAC;UAAA,EAAC;QAAA;MAAC,GAAE,IAAI,CAACtP,KAAK,CAACnD,CAAC,CAAC,gBAAgB,CAAC,QAAIrG,MAAM,CAACC,IAAI,CAAC,IAAI,CAAChC,OAAO,CAAC,CAACV,MAAM,MAAW,eAClN,gCAAC,kBAAM;QAAC,KAAK,EAAC,SAAS;QAAC,OAAO,EAAC,WAAW;QAAC,SAAS;QAAC,OAAO,EAAE;UAAA,OAAM,OAAI,CAACgN,QAAQ,CAAC;YAAEwH,gBAAgB,EAAE;UAAM,CAAC,EAAE;YAAA,OAAM,OAAI,CAAC+G,cAAc,CAAC,KAAK,CAAC;UAAA,EAAC;QAAA;MAAC,GAAE,IAAI,CAACtP,KAAK,CAACnD,CAAC,CAAC,kBAAkB,CAAC,QAAI,IAAI,CAAChB,KAAK,CAAC0M,gBAAgB,MAAW,eAC9N,gCAAC,kBAAM;QAAC,KAAK,EAAC,MAAM;QAAC,OAAO,EAAC,WAAW;QAAC,OAAO,EAAE;UAAA,OAAM,OAAI,CAACxH,QAAQ,CAAC;YAAEwH,gBAAgB,EAAE;UAAM,CAAC,CAAC;QAAA,CAAC;QAAC,SAAS,eAAE,gCAAC,iBAAS;MAAI,GAAE,IAAI,CAACvI,KAAK,CAACnD,CAAC,CAAC,WAAW,CAAC,CAAU,CACtJ,CACX;IACb;;IAEA;AACJ;AACA;AACA;EAHI;IAAA;IAAA;IAmIA;AACJ;AACA;AACA;IACI,sBAAa;MAAA;MACT,IAAI0S,mBAAmB,GAAG,KAAK;MAC/B,IAAI,IAAI,CAAC1T,KAAK,CAACgH,QAAQ,CAAC9O,MAAM,IAAI,IAAI,CAAC8H,KAAK,CAACiH,iBAAiB,EAAE;QAC5D,IAAMpO,EAAE,GAAG,IAAI,CAACmH,KAAK,CAACgH,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAChH,KAAK,CAACiH,iBAAiB;QAEjE,IAAIpO,EAAE,CAACY,KAAK,CAAC,GAAG,CAAC,CAACvB,MAAM,GAAG,CAAC,IAAK,IAAI,CAACU,OAAO,CAACC,EAAE,CAAC,IAAI,IAAI,CAACD,OAAO,CAACC,EAAE,CAAC,CAACW,IAAI,KAAK,OAAQ,EAAE;UACrFka,mBAAmB,GAAG,KAAK;QAC/B,CAAC,MAAM,IAAI,IAAI,CAAC1T,KAAK,CAACkH,MAAM,CAACrM,UAAU,EAAE;UACrC6Y,mBAAmB,GAAG,IAAI;QAC9B,CAAC,MAAM,IAAI7a,EAAE,CAACO,UAAU,CAAC,SAAS,CAAC,IAAIP,EAAE,CAACO,UAAU,CAAC,YAAY,CAAC,EAAE;UAChEsa,mBAAmB,GAAG,IAAI;QAC9B;MACJ;MAEA,oBAAO;QAAK,KAAK,EAAE;UACf5mB,OAAO,EAAE,MAAM;UACfD,KAAK,EAAE,MAAM;UACbwI,UAAU,EAAE;QAChB;MAAE,gBAEE;QAAK,KAAK,EAAE;UACRvI,OAAO,EAAE,MAAM;UACfD,KAAK,EAAE,MAAM;UACbwI,UAAU,EAAE;QAChB;MAAE,gBAGE,gCAAC,mBAAO;QAAC,KAAK,EAAE,IAAI,CAAC8O,KAAK,CAACnD,CAAC,CAAC,iBAAiB;MAAE,gBAC5C,0DACI,gCAAC,sBAAU;QACP,OAAO,EAAE;UAAA,OAAM,OAAI,CAAC2S,gBAAgB,EAAE;QAAA,CAAC;QACvC,QAAQ,EAAE,IAAI,CAAC3T,KAAK,CAACkP,QAAS;QAC9B,IAAI,EAAC;MAAO,gBAEZ,gCAAC,mBAAW,OAAG,CACN,CACX,CACA,EACT,IAAI,CAAC/K,KAAK,CAACyP,gBAAgB,IAAI,CAAC,IAAI,CAACzP,KAAK,CAACtJ,UAAU,iBAClD,gCAAC,mBAAO;QAAC,KAAK,EAAE,IAAI,CAACsJ,KAAK,CAACnD,CAAC,CAAC,eAAe;MAAE,gBAC1C,gCAAC,sBAAU;QACP,GAAG,EAAC,YAAY;QAChB,KAAK,EAAE,IAAI,CAAChB,KAAK,CAACkH,MAAM,CAACrM,UAAU,GAAG,WAAW,GAAG,SAAU;QAC9D,OAAO,EAAE;UAAA,OAAM,OAAI,CAAC8X,QAAQ,CAAC,YAAY,EAAE,CAAC,OAAI,CAAC3S,KAAK,CAACkH,MAAM,CAACrM,UAAU,CAAC;QAAA,CAAC;QAC1E,IAAI,EAAC;MAAO,gBAEZ,gCAAC,sBAAU,OAAG,CACL,CACP,EACb,CAAC,IAAI,CAACsJ,KAAK,CAAC0P,qBAAqB,iBAClC,gCAAC,mBAAO;QAAC,KAAK,EAAE,IAAI,CAAC1P,KAAK,CAACnD,CAAC,CAAC,cAAc;MAAE,gBACzC,gCAAC,sBAAU;QACP,GAAG,EAAC;QACJ;QAAA;QACA,OAAO,EAAE;UAAA,OAAM,OAAI,CAACkE,QAAQ,CAAC;YAAEmH,mBAAmB,EAAE;UAAK,CAAC,CAAC;QAAA,CAAC;QAC5D,IAAI,EAAC;MAAO,gBAEZ,gCAAC,sBAAW,OAAG,CACN,CACP,EACT,IAAI,CAACrM,KAAK,CAACgM,gBAAgB,iBAC5B,gCAAC,mBAAO;QAAC,KAAK,EAAE,IAAI,CAAC7H,KAAK,CAACnD,CAAC,CAAC,qBAAqB;MAAE,gBAChD,gCAAC,sBAAU;QACP,GAAG,EAAC,WAAW;QACf,OAAO,EAAE;UAAA,OAAM,OAAI,CAACgS,WAAW,EAAE;QAAA,CAAC;QAClC,IAAI,EAAC;MAAO,gBAEZ,gCAAC,oBAAQ,OAAG,CACH,CACP,eACV,gCAAC,mBAAO;QAAC,KAAK,EAAE,IAAI,CAAC7O,KAAK,CAACnD,CAAC,CAAC,uBAAuB;MAAE,gBAClD,gCAAC,sBAAU;QACP,GAAG,EAAC,aAAa;QACjB,OAAO,EAAE;UAAA,OAAM,OAAI,CAAC8S,aAAa,EAAE;QAAA,CAAC;QACpC,IAAI,EAAC;MAAO,gBAEZ,gCAAC,sBAAU,OAAG,CACL,CACP,eACV,gCAAC,mBAAO;QAAC,KAAK,EAAE,IAAI,CAAC3P,KAAK,CAACnD,CAAC,CAAC,yBAAyB;MAAE,gBACpD,gCAAC,sBAAU;QACP,GAAG,EAAC,eAAe;QACnB,KAAK,EAAC,SAAS;QACf,OAAO,EAAE;UAAA,OAAM,OAAI,CAAC+S,eAAe,EAAE;QAAA,CAAC;QACtC,IAAI,EAAC;MAAO,gBAEZ,gCAAC,WAAW;QAAC,YAAY,EAAE,IAAI,CAAC/T,KAAK,CAAC+L,KAAM;QAAC,KAAK,EAAC;MAAW,gBAC1D,gCAAC,oBAAQ,OAAG,CACF,CACL,CACP,eACV,gCAAC,mBAAO;QAAC,KAAK,EAAE,IAAI,CAAC5H,KAAK,CAACnD,CAAC,CAAC,2BAA2B;MAAE,gBACtD,gCAAC,sBAAU;QACP,GAAG,EAAC,iBAAiB;QACrB,KAAK,EAAC,SAAS;QACf,OAAO,EAAE;UAAA,OAAM,OAAI,CAACgT,iBAAiB,EAAE;QAAA,CAAC;QACxC,IAAI,EAAC;MAAO,gBAEZ,gCAAC,WAAW;QAAC,YAAY,EAAE,IAAI,CAAChU,KAAK,CAAC+L,KAAM;QAAC,KAAK,EAAC;MAAW,gBAC1D,gCAAC,sBAAU,OAAG,CACJ,CACL,CACP,EACT,IAAI,CAAC5H,KAAK,CAACyH,gBAAgB,iBAAI,gCAAC,mBAAO;QAAC,KAAK,EAAE,IAAI,CAACzH,KAAK,CAACnD,CAAC,CAAC,2BAA2B;MAAE,gBACtF,gCAAC,sBAAU;QACP,OAAO,EAAE;UAAA,OAAM,OAAI,CAACiT,mBAAmB,EAAE;QAAA,CAAC;QAC1C,IAAI,EAAC;MAAO,gBAEZ,gCAAC,oBAAY;QAAC,KAAK,EAAE,IAAI,CAACjU,KAAK,CAAC2L,UAAU,GAAG,SAAS,GAAG;MAAU,EAAG,CAC7D,CACP,EAET,IAAI,CAACxH,KAAK,CAAC+P,gBAAgB,gBACxB,gCAAC,mBAAO;QAAC,KAAK,EAAE,IAAI,CAACC,qBAAqB;MAAG,gBACzC,0DACI,gCAAC,sBAAU;QACP,QAAQ,EAAE,CAACT,mBAAoB;QAC/B,OAAO,EAAE;UAAA,OAAM,OAAI,CAACxO,QAAQ,CAAC;YAAEkP,WAAW,EAAE;UAAK,CAAC,CAAC;QAAA,CAAC;QACpD,IAAI,EAAC;MAAO,gBAEZ,gCAAC,eAAO,OAAG,CACF,CACX,CACA,GACR,IAAI,EAET,IAAI,CAACjQ,KAAK,CAACkQ,kBAAkB,iBAC9B,gCAAC,mBAAO;QAAC,KAAK,EAAE,IAAI,CAAClQ,KAAK,CAACnD,CAAC,CAAC,oCAAoC;MAAE,gBAC/D,gCAAC,sBAAU;QACP,OAAO,EAAE,mBAAM;UACX,IAAMsT,KAAK,GAAGrd,QAAQ,CAACC,aAAa,CAAC,OAAO,CAAC;UAC7Cod,KAAK,CAACnd,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC;UAClCmd,KAAK,CAACnd,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC;UACjCmd,KAAK,CAACnd,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC;UAChCmd,KAAK,CAACvK,gBAAgB,CAAC,QAAQ,EAAE,UAAAvE,CAAC;YAAA,OAAI,OAAI,CAAC+O,gBAAgB,CAAC/O,CAAC,CAAC;UAAA,GAAE,KAAK,CAAC;UACtE8O,KAAK,CAAC5c,KAAK,EAAE;QACjB,CAAE;QACF,IAAI,EAAC;MAAO,gBAEZ,gCAAC,mBAAW,OAAG,CACN,CACP,EACT,IAAI,CAACyM,KAAK,CAACkQ,kBAAkB,KAAK,CAAC,CAAC,IAAI,CAACrU,KAAK,CAACgH,QAAQ,CAAC9O,MAAM,IAAI,IAAI,CAAC8H,KAAK,CAACiH,iBAAiB,CAAC,iBAChG,gCAAC,mBAAO;QAAC,KAAK,EAAE,IAAI,CAAC9C,KAAK,CAACnD,CAAC,CAAC,mCAAmC;MAAE,gBAC9D,gCAAC,sBAAU;QACP,OAAO,EAAE;UAAA,OAAM,OAAI,CAACkE,QAAQ,CAAC;YAAEwH,gBAAgB,EAAE,OAAI,CAAC6G,wBAAwB,EAAE,CAACrb;UAAO,CAAC,CAAC;QAAA,CAAC;QAC3F,IAAI,EAAC;MAAO,gBAEZ,gCAAC,mBAAW;QAAC,KAAK,EAAE;UAAEnG,SAAS,EAAE;QAAiB;MAAE,EAAG,CAC9C,CACP,CACR,EACL,CAAC,CAAC,IAAI,CAACoS,KAAK,CAACqQ,uBAAuB,iBAAI;QAAK,KAAK,EAAE;UAAE1nB,OAAO,EAAE,MAAM;UAAEuB,UAAU,EAAE;QAAS;MAAE,aACvF,IAAI,CAAC8V,KAAK,CAACnD,CAAC,CAAC,YAAY,CAAC,eAAKrG,MAAM,CAACC,IAAI,CAAC,IAAI,CAACmC,IAAI,CAACnE,OAAO,CAAC,CAACV,MAAM,eAAK,IAAI,CAACiM,KAAK,CAACnD,CAAC,CAAC,WAAW,CAAC,eAAKrG,MAAM,CAACC,IAAI,CAAC,IAAI,CAACmC,IAAI,CAACnE,OAAO,CAAC,CAACsO,MAAM,CAAC,UAAAlQ,EAAE;QAAA,OAAI,OAAI,CAAC+F,IAAI,CAACnE,OAAO,CAAC5B,EAAE,CAAC,CAACwC,IAAI,KAAK,OAAO;MAAA,EAAC,CAACtB,MAAM,EACnM,EACL,IAAI,CAACiM,KAAK,CAACsQ,iBAAiB,iBAC7B,gCAAC,mBAAO;QAAC,KAAK,EAAE,IAAI,CAACtQ,KAAK,CAACnD,CAAC,CAAC,uBAAuB;MAAE,gBAClD,gCAAC,sBAAU;QACP,OAAO,EAAE,mBAAM;UACX;UACA,IAAM1E,GAAG,GAAGZ,eAAe,CAAC,OAAI,CAACoB,IAAI,EAAE,OAAO,EAAE,OAAI,CAAClE,OAAO,CAAC;UAE7D,IAAI0D,GAAG,CAACpE,MAAM,EAAE;YACZ,OAAI,CAACsT,cAAc,CAAC,IAAI,CAAC;YAEzB,IAAIlP,GAAG,CAACpE,MAAM,KAAK,CAAC,EAAE;cAClB,CAACgO,MAAM,CAAC4C,aAAa,IAAI5C,MAAM,CAAC6C,YAAY,EAAEC,OAAO,WAAI,OAAI,CAAC7E,KAAK,CAAC8E,UAAU,IAAI,KAAK,sBAAmB,OAAI,CAACjJ,KAAK,CAACgH,QAAQ,CAAC,CAAC,CAAC,CAAC;cACjI,OAAI,CAAC7C,KAAK,CAACiH,MAAM,IAAI,OAAI,CAACjH,KAAK,CAACiH,MAAM,CAACsJ,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAI,CAAC1U,KAAK,CAACgH,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC7F;YACA,OAAI,CAAC9B,QAAQ,CAAC;cAAEiG,YAAY,EAAE7O;YAAI,CAAC,CAAC;UACxC,CAAC,MAAM;YACH,OAAI,CAAC4I,QAAQ,CAAC;cAAE+G,KAAK,EAAE,OAAI,CAAC9H,KAAK,CAACnD,CAAC,CAAC,yBAAyB;YAAE,CAAC,CAAC;UACrE;QACJ,CAAE;QACF,IAAI,EAAC;MAAO,gBAEZ,gCAAC,iBAAS,OAAG,CACJ,CACP,CACR;IACV;;IAEA;AACJ;AACA;AACA;EAHI;IAAA;IAAA,OAIA,wBAAenI,EAAE,EAAE;MACf,IAAMyR,QAAQ,GAAGjT,IAAI,CAAC2N,KAAK,CAAC3N,IAAI,CAACC,SAAS,CAAC,IAAI,CAAC0I,KAAK,CAACsK,QAAQ,CAAC,CAAC;MAChE,IAAMW,GAAG,GAAGX,QAAQ,CAACY,OAAO,CAACrS,EAAE,CAAC;MAChC,IAAIoS,GAAG,KAAK,CAAC,CAAC,EAAE;QACZX,QAAQ,CAAC1O,IAAI,CAAC/C,EAAE,CAAC;QACjByR,QAAQ,CAAC/N,IAAI,EAAE;MACnB,CAAC,MAAM;QACH+N,QAAQ,CAAC7L,MAAM,CAACwM,GAAG,EAAE,CAAC,CAAC;MAC3B;MAEA,CAAC/E,MAAM,CAAC4C,aAAa,IAAI5C,MAAM,CAAC6C,YAAY,EAAEC,OAAO,WAAI,IAAI,CAAC7E,KAAK,CAAC8E,UAAU,IAAI,KAAK,sBAAmB5R,IAAI,CAACC,SAAS,CAACgT,QAAQ,CAAC,CAAC;MAEnI,IAAI,CAACpF,QAAQ,CAAC;QAAEoF,QAAQ,EAARA;MAAS,CAAC,CAAC;IAC/B;;IAEA;AACJ;AACA;AACA;AACA;EAJI;IAAA;IAAA,OAKA,gBAAO9E,CAAC,EAAEmP,IAAI,EAAE;MACZnP,CAAC,CAACoP,eAAe,EAAE;MACnBpP,CAAC,CAACqP,cAAc,EAAE;MAClBplB,iBAAK,CAACqlB,eAAe,CAACH,IAAI,EAAE,IAAI,CAAC;MACjC,IAAIA,IAAI,CAACzc,MAAM,GAAG,EAAE,EAAE;QAClB,IAAI,CAACgN,QAAQ,CAAC;UAAE+G,KAAK,EAAE,IAAI,CAAC9H,KAAK,CAACnD,CAAC,CAAC,cAAc,EAAE2T,IAAI;QAAE,CAAC,CAAC;MAChE,CAAC,MAAM;QACH,IAAI,CAACzP,QAAQ,CAAC;UAAE+G,KAAK,EAAE,IAAI,CAAC9H,KAAK,CAACnD,CAAC,CAAC,WAAW;QAAE,CAAC,CAAC;MACvD;IACJ;EAAC;IAAA;IAAA;IAoDD;AACJ;AACA;AACA;AACA;IACI,6BAAoBnI,EAAE,EAAEc,IAAI,EAAEqC,OAAO,EAAE;MAAA;QAAA;QAAA;QAAA;MACnC,IAAI,CAACrC,IAAI,CAACa,IAAI,CAACzD,GAAG,EAAE;QAChB,OAAO,IAAI,CAACoN,KAAK,CAAC4Q,cAAc,IAAI,IAAI,CAAC5Q,KAAK,CAAC6Q,yBAAyB,gBAAG;UAAK,SAAS,EAAEhZ,OAAO,CAAC5G;QAAU,GACxG,IAAI,CAAC4K,KAAK,CAACkH,MAAM,CAACrM,UAAU,IAAI,IAAI,CAACsJ,KAAK,CAAC6Q,yBAAyB,gBAAG,gCAAC,sBAAU;UAC/E,SAAS,EAAEvlB,iBAAK,CAAC0M,IAAI,CAACH,OAAO,CAAC/I,iBAAiB,EAAE+I,OAAO,CAAC9I,sBAAsB,EAAE8I,OAAO,CAAC7I,kBAAkB,CAAE;UAC7G,OAAO,EAAE;YAAA,OACL,OAAI,CAAC+R,QAAQ,CAAC;cAAE+P,iBAAiB,EAAE,IAAI;cAAEC,wBAAwB,EAAEvb,IAAI,CAACa;YAAK,CAAC,CAAC;UAAA,CAAC;UACpF,IAAI,EAAC;QAAO,SAGH,GAAG,IAAI,EACnB,IAAI,CAAC2J,KAAK,CAAC4Q,cAAc,IAAIpb,IAAI,CAACyB,QAAQ,IAAIzB,IAAI,CAACyB,QAAQ,CAAClD,MAAM,gBAAG,gCAAC,sBAAU;UAC7E,SAAS,EAAEzI,iBAAK,CAAC0M,IAAI,CAACH,OAAO,CAAC/I,iBAAiB,EAAE+I,OAAO,CAAC3I,sBAAsB,CAAE;UACjF,IAAI,EAAC,OAAO;UACZ,cAAW,QAAQ;UACnB,KAAK,EAAE,IAAI,CAAC4M,KAAK,CAAC6M,YAAa;UAC/B,OAAO,EAAE,mBAAM;YACX;YACA,IAAMlS,IAAI,GAAGD,MAAM,CAACC,IAAI,CAAC,OAAI,CAAChC,OAAO,CAAC;YACtCgC,IAAI,CAAC2B,IAAI,EAAE;YACX,IAAIf,KAAK,GAAG,CAAC;YACb,IAAM2Z,KAAK,aAAMtc,EAAE,MAAG;YACtB,KAAK,IAAI2E,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG5C,IAAI,CAAC1C,MAAM,EAAEsF,CAAC,EAAE,EAAE;cAClC,IAAI5C,IAAI,CAAC4C,CAAC,CAAC,CAACpE,UAAU,CAAC+b,KAAK,CAAC,EAAE;gBAC3B3Z,KAAK,EAAE;cACX,CAAC,MAAM,IAAIZ,IAAI,CAAC4C,CAAC,CAAC,GAAG2X,KAAK,EAAE;gBACxB;cACJ;YACJ;YAEA,OAAI,CAAChR,KAAK,CAAC4Q,cAAc,CAAClc,EAAE,EAAE,CAAC,EAAEc,IAAI,CAACyB,QAAQ,IAAIzB,IAAI,CAACyB,QAAQ,CAAClD,MAAM,CAAC,EAAE,KAAK,EAAEsD,KAAK,GAAG,CAAC,CAAC;UAC9F;QAAE,gBAEF,gCAAC,kBAAU;UAAC,SAAS,EAAEQ,OAAO,CAACoZ;QAAsB,EAAG,CAC/C,GAAG,IAAI,CAClB,GAAG,IAAI;MACjB;MAEAzb,IAAI,CAACa,IAAI,CAAC6a,UAAU,GAAG1b,IAAI,CAACa,IAAI,CAAC6a,UAAU,IAAI,IAAI,CAACC,0BAA0B,CAAC3b,IAAI,CAACa,IAAI,CAACzD,GAAG,CAACoQ,GAAG,CAAC;MAEjG,IAAMA,GAAG,GAAGxN,IAAI,CAACa,IAAI,CAACzD,GAAG,CAACoQ,GAAG,GAAIxN,IAAI,CAACa,IAAI,CAACzD,GAAG,CAACyC,IAAI,KAAK,OAAO,GAAGG,IAAI,CAACa,IAAI,CAACzD,GAAG,CAACoQ,GAAG,CAACnH,KAAK,GAAGrG,IAAI,CAACa,IAAI,CAACzD,GAAG,CAACoQ,GAAG,CAAC0I,MAAM,GAAI,CAAC;MACzH,IAAM0F,eAAe,GAAG5b,IAAI,CAACa,IAAI,CAACzD,GAAG,CAACoQ,GAAG,KAAKxN,IAAI,CAACa,IAAI,CAACzD,GAAG,CAACyC,IAAI,KAAK,OAAO,GAAG,IAAI,CAACkW,YAAY,CAACxW,MAAM,CAAC0W,aAAa,CAAC5P,KAAK,GAAG,IAAI,CAAC0P,YAAY,CAACxW,MAAM,CAAC0W,aAAa,CAACC,MAAM,CAAC;MAE5K,OAAO,CACH,IAAI,CAAC7P,KAAK,CAACkH,MAAM,CAACrM,UAAU,IAAI,IAAI,CAACsJ,KAAK,CAAC6Q,yBAAyB,gBAAG,gCAAC,mBAAO;QAAC,GAAG,EAAC,KAAK;QAAC,KAAK,EAAErb,IAAI,CAACa,IAAI,CAAC6a;MAAW,gBAClH,gCAAC,sBAAU;QACP,SAAS,EAAErZ,OAAO,CAAC7I,kBAAmB;QACtC,OAAO,EAAE;UAAA,OAAM,OAAI,CAAC+R,QAAQ,CAAC;YAAE+P,iBAAiB,EAAE,IAAI;YAAEC,wBAAwB,EAAEvb,IAAI,CAACa;UAAK,CAAC,CAAC;QAAA,CAAC;QAC/F,IAAI,EAAC;MAAO,gBAEZ;QAAK,SAAS,EAAEwB,OAAO,CAAC1G;MAAQ,GAAEkgB,MAAM,CAACC,KAAK,CAACD,MAAM,CAACrO,GAAG,CAAC,CAACzO,QAAQ,CAAC,EAAE,CAAC,CAAC,GAAG8c,MAAM,CAACD,eAAe,CAAC,CAAC7c,QAAQ,CAAC,EAAE,CAAC,GAAG8c,MAAM,CAACrO,GAAG,CAAC,CAACzO,QAAQ,CAAC,EAAE,CAAC,CAAO,CACxI,CACP,gBAAG;QAAK,GAAG,EAAC,UAAU;QAAC,SAAS,EAAEsD,OAAO,CAAC7I;MAAmB,EAAG,eAC1E,gCAAC,sBAAU;QACP,GAAG,EAAC,MAAM;QACV,SAAS,EAAE6I,OAAO,CAAC/I,iBAAkB;QACrC,IAAI,EAAC,OAAO;QACZ,cAAW,MAAM;QACjB,KAAK,EAAE,IAAI,CAACgN,KAAK,CAAC4M,UAAW;QAC7B,OAAO,EAAE,mBAAM;UACX,CAAC3G,MAAM,CAAC4C,aAAa,IAAI5C,MAAM,CAAC6C,YAAY,EAAEC,OAAO,WAAI,OAAI,CAAC7E,KAAK,CAAC8E,UAAU,IAAI,KAAK,sBAAmBpQ,EAAE,CAAC;UAC7G,OAAI,CAACqM,QAAQ,CAAC;YAAEgH,gBAAgB,EAAErT;UAAG,CAAC,CAAC;QAC3C;MAAE,gBAEF,gCAAC,gBAAQ;QAAC,SAAS,EAAEmD,OAAO,CAACoZ;MAAsB,EAAG,CAC7C,EACb,IAAI,CAACjR,KAAK,CAAC4Q,cAAc,KAAK,mBAAApb,IAAI,CAACyB,QAAQ,4CAAb,gBAAelD,MAAM,IAAI,2BAACyB,IAAI,CAACa,IAAI,CAACzD,GAAG,CAACmC,MAAM,kDAApB,sBAAsBwc,UAAU,EAAC,gBAAG,gCAAC,sBAAU;QACnG,GAAG,EAAC,QAAQ;QACZ,SAAS,EAAE1Z,OAAO,CAAC/I,iBAAkB;QACrC,IAAI,EAAC,OAAO;QACZ,cAAW,QAAQ;QACnB,OAAO,EAAE,mBAAM;UAAA;UACX,IAAM2H,IAAI,GAAGD,MAAM,CAACC,IAAI,CAAC,OAAI,CAAChC,OAAO,CAAC;UACtCgC,IAAI,CAAC2B,IAAI,EAAE;UACX,IAAIf,KAAK,GAAG,CAAC;UACb,IAAM2Z,KAAK,aAAMtc,EAAE,MAAG;UACtB,KAAK,IAAI2E,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG5C,IAAI,CAAC1C,MAAM,EAAEsF,CAAC,EAAE,EAAE;YAClC,IAAI5C,IAAI,CAAC4C,CAAC,CAAC,CAACpE,UAAU,CAAC+b,KAAK,CAAC,EAAE;cAC3B3Z,KAAK,EAAE;YACX,CAAC,MAAM,IAAIZ,IAAI,CAAC4C,CAAC,CAAC,GAAG2X,KAAK,EAAE;cACxB;YACJ;UACJ;UACA,OAAI,CAAChR,KAAK,CAAC4Q,cAAc,CAAClc,EAAE,EAAE,CAAC,qBAACc,IAAI,CAACyB,QAAQ,4CAAb,gBAAelD,MAAM,GAAE,4BAACyB,IAAI,CAACa,IAAI,CAACzD,GAAG,CAACmC,MAAM,mDAApB,uBAAsBwc,UAAU,GAAEla,KAAK,CAAC;QACpG,CAAE;QACF,KAAK,EAAE,IAAI,CAACyE,KAAK,CAAC6M;MAAa,gBAE/B,gCAAC,kBAAU;QAAC,SAAS,EAAE9Q,OAAO,CAACoZ;MAAsB,EAAG,CAC/C,GAAG,IAAI,EACpB,IAAI,CAACjR,KAAK,CAACwR,kBAAkB,IAAI,IAAI,CAAC5Y,IAAI,CAACO,cAAc,IAAI3D,IAAI,CAACa,IAAI,CAACzD,GAAG,CAACyC,IAAI,KAAK,OAAO,IAAI,2BAAAG,IAAI,CAACa,IAAI,CAACzD,GAAG,CAACmC,MAAM,2DAApB,uBAAsBM,IAAI,MAAK,MAAM,gBAAG,gCAAC,sBAAU;QAC9I,SAAS,EAAE/J,iBAAK,CAAC0M,IAAI,CAACH,OAAO,CAAC/I,iBAAiB,EAAE0G,IAAI,CAACa,IAAI,CAAC4D,UAAU,GAAGpC,OAAO,CAAC1I,4BAA4B,GAAG0I,OAAO,CAACzI,+BAA+B,CAAE;QACxJ,GAAG,EAAC,QAAQ;QACZ,IAAI,EAAC,OAAO;QACZ,cAAW,QAAQ;QACnB,KAAK,EAAE,IAAI,CAAC0M,KAAK,CAAC8M,YAAa;QAC/B,OAAO,EAAE,mBAAM;UACX,CAAC7G,MAAM,CAAC4C,aAAa,IAAI5C,MAAM,CAAC6C,YAAY,EAAEC,OAAO,WAAI,OAAI,CAAC7E,KAAK,CAAC8E,UAAU,IAAI,KAAK,sBAAmBpQ,EAAE,CAAC;UAE7G,OAAI,CAAC2S,cAAc,CAAC,IAAI,CAAC;UACzB,OAAI,CAACrH,KAAK,CAACiH,MAAM,IAAI,OAAI,CAACjH,KAAK,CAACiH,MAAM,CAACsJ,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE7b,EAAE,CAAC;UACtE,OAAI,CAACqM,QAAQ,CAAC;YAAEiG,YAAY,EAAE,CAACtS,EAAE;UAAE,CAAC,CAAC;QACzC;MAAE,gBAEF,gCAAC,oBAAU;QAAC,SAAS,EAAEmD,OAAO,CAACoZ;MAAsB,EAAG,CAC/C,GAAG,IAAI,CACvB;IACL;;IAEA;AACJ;AACA;AACA;EAHI;IAAA;IAAA,OAIA,qBAAYvc,EAAE,EAAE;MACZ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MACQ,IAAIqN,MAAM,CAAC0P,SAAS,IAChB,IAAI,CAAC9F,cAAc,IACnB,IAAI,CAAClX,OAAO,CAACC,EAAE,CAAC,IAChB,IAAI,CAACD,OAAO,CAACC,EAAE,CAAC,CAACK,MAAM,IACvB,IAAI,CAACN,OAAO,CAACC,EAAE,CAAC,CAACK,MAAM,CAACiB,MAAM,IAC9B,IAAI,CAACvB,OAAO,CAACC,EAAE,CAAC,CAACK,MAAM,CAACiB,MAAM,CAAC,IAAI,CAAC2V,cAAc,CAAC,EAAE;QAErD,IAAM+F,GAAG,GAAG,IAAIlV,IAAI,EAAE;QACtBkV,GAAG,CAACC,QAAQ,CAACD,GAAG,CAACE,QAAQ,EAAE,GAAG,EAAE,CAAC;QACjCF,GAAG,CAACG,UAAU,CAAC,CAAC,CAAC;QACjBH,GAAG,CAACI,UAAU,CAAC,CAAC,CAAC;QACjBJ,GAAG,CAACK,eAAe,CAAC,CAAC,CAAC;QACtB,IAAMC,KAAK,GAAGN,GAAG,CAACO,OAAO,EAAE;QAE3B,IAAI,CAACjS,KAAK,CAACwB,MAAM,CAAC0Q,UAAU,CAACxd,EAAE,EAAE;UAC7BU,QAAQ,EAAG,IAAI,CAACuW,cAAc;UAC9BqF,KAAK,EAAMgB,KAAK;UAChBG,GAAG,EAAQ3V,IAAI,CAACkV,GAAG,EAAE;UACrBU,IAAI,EAAO,OAAO;UAClBjV,IAAI,EAAO,KAAK;UAChBJ,GAAG,EAAQ,KAAK;UAChBS,CAAC,EAAU,KAAK;UAChB6U,KAAK,EAAM,KAAK;UAChBC,SAAS,EAAE;QACf,CAAC,CAAC,CACGtH,IAAI,CAAC,UAAArN,MAAM,EAAI;UACZ,IAAM4U,MAAM,GAAGxQ,MAAM,CAACjP,QAAQ,CAAC0f,sBAAsB,CAAC,WAAW,CAAC;UAElE,KAAK,IAAI9V,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG6V,MAAM,CAACxe,MAAM,EAAE2I,CAAC,EAAE,EAAE;YACpC,IAAI6V,MAAM,CAAC7V,CAAC,CAAC,CAAC2I,OAAO,CAAC3Q,EAAE,KAAKA,EAAE,EAAE;cAC7B,IAAM2H,CAAC,GAAGqB,gBAAgB,CAACC,MAAM,EAAEqU,KAAK,CAAC;cAEzCjQ,MAAM,CAAC0P,SAAS,CAACA,SAAS,CAACc,MAAM,CAAC7V,CAAC,CAAC,EAAEL,CAAC,CAAC;cACxC;YACJ;UACJ;QACJ,CAAC,CAAC,SACI,CAAC,UAAAgF,CAAC;UAAA,OAAIpB,OAAO,CAAC4N,IAAI,gCAAyBxM,CAAC,EAAG;QAAA,EAAC;MAC9D;IACJ;;IAEA;AACJ;AACA;AACA;AACA;AACA;AACA;EANI;IAAA;IAAA,OAOA,2BAAkB3M,EAAE,EAAEc,IAAI,EAAEqC,OAAO,EAAE;MAAA;QAAA;MACjC,IAAMjF,GAAG,GAAG4C,IAAI,CAACa,IAAI,CAACzD,GAAG;MACzB,IAAI,CAACA,GAAG,IAAI,CAAC,IAAI,CAACqJ,MAAM,EAAE;QACtB,OAAO,IAAI;MACf;MAEA,IAAI,iBAAArJ,GAAG,CAACmC,MAAM,iDAAV,aAAYM,IAAI,MAAK,MAAM,EAAE;QAC7B,oBAAO;UAAK,SAAS,EAAE/J,iBAAK,CAAC0M,IAAI,CAACH,OAAO,CAAC7J,aAAa,EAAE6J,OAAO,CAAC5J,aAAa;QAAE,YAAa;MACjG;MACA,IAAI,CAAC,IAAI,CAACgO,MAAM,CAACvH,EAAE,CAAC,EAAE;QAClB,IAAI9B,GAAG,CAACyC,IAAI,KAAK,OAAO,EAAE;UACtB,CAAC,IAAI,CAACiY,YAAY,CAACpY,QAAQ,CAACR,EAAE,CAAC,IAAI,IAAI,CAAC4Y,YAAY,CAAC7V,IAAI,CAAC/C,EAAE,CAAC;UAC7D,IAAI,CAACuH,MAAM,CAACvH,EAAE,CAAC,GAAG;YAAE4H,GAAG,EAAE;UAAK,CAAC;UAC/B,IAAI,CAACmW,SAAS,CAAC/d,EAAE,CAAC;QACtB;QACA,OAAO,IAAI;MACf;MACA,CAAC,IAAI,CAAC4Y,YAAY,CAACpY,QAAQ,CAACR,EAAE,CAAC,IAAI,IAAI,CAAC4Y,YAAY,CAAC7V,IAAI,CAAC/C,EAAE,CAAC;MAE7D,IAAMmH,KAAK,GAAG,IAAI,CAACI,MAAM,CAACvH,EAAE,CAAC;MAC7B,IAAIkE,IAAI,GAAGpD,IAAI,CAACa,IAAI,CAACwF,KAAK;MAC1B,IAAI,CAACjD,IAAI,EAAE;QACPpD,IAAI,CAACa,IAAI,CAACwF,KAAK,GAAGrG,IAAI,CAACa,IAAI,CAACwF,KAAK,IAAID,WAAW,CAAClH,EAAE,EAAEmH,KAAK,EAAEjJ,GAAG,EAAE,IAAI,CAACkJ,KAAK,EAAE,IAAI,CAACkE,KAAK,CAACjE,UAAU,EAAE,IAAI,CAACiE,KAAK,CAAChE,YAAY,CAAC;QAC5HpD,IAAI,GAAGpD,IAAI,CAACa,IAAI,CAACwF,KAAK;QAEtBjD,IAAI,CAACgE,OAAO,GAAGhE,IAAI,CAACgE,OAAO,CAAC6G,GAAG,CAAC,UAAAtM,KAAK,EAAI;UACrC,IAAIA,KAAK,CAAC0F,CAAC,KAAK,OAAI,CAACf,KAAK,CAACwB,OAAO,IAAIzB,KAAK,CAAC2B,CAAC,EAAE;YAC3C,OAAO,cACH;cAAK,SAAS,EAAE3F,OAAO,CAACzJ,oBAAqB;cAAC,GAAG,EAAE+I,KAAK,CAAC0F;YAAE,GACtD1F,KAAK,CAAC0F,CAAC,WAEP1F,KAAK,CAACkF,CAAC,CACN;YACN;YACA,CAAClF,KAAK,CAACsG,GAAG,gBAAG;cAAI,GAAG,YAAKtG,KAAK,CAAC0F,CAAC;YAAM,EAAG,GAAG,IAAI,CACnD;UACL;UACA,OAAO,cACH;YAAK,SAAS,EAAEhF,OAAO,CAAC3J,qBAAsB;YAAC,GAAG,EAAEiJ,KAAK,CAAC0F;UAAE,GACvD1F,KAAK,CAAC0F,CAAC,UAEN,eACN;YAAK,SAAS,EAAEhF,OAAO,CAAC1J,qBAAsB;YAAC,GAAG,YAAKgJ,KAAK,CAAC0F,CAAC;UAAK,GAAE1F,KAAK,CAACkF,CAAC,CAAO,EACnF,CAAClF,KAAK,CAACsG,GAAG,gBAAG;YAAI,GAAG,YAAKtG,KAAK,CAAC0F,CAAC;UAAM,EAAG,GAAG,IAAI,CACnD;QACL,CAAC,CAAC;QAEF,IAAI,IAAI,CAAC8O,cAAc,IAAI,IAAI,CAAClX,OAAO,CAACC,EAAE,CAAC,IAAI,IAAI,CAACD,OAAO,CAACC,EAAE,CAAC,CAACK,MAAM,IAAI,IAAI,CAACN,OAAO,CAACC,EAAE,CAAC,CAACK,MAAM,CAACiB,MAAM,IAAI,IAAI,CAACvB,OAAO,CAACC,EAAE,CAAC,CAACK,MAAM,CAACiB,MAAM,CAAC,IAAI,CAAC2V,cAAc,CAAC,EAAE;UAC7J/S,IAAI,CAACgE,OAAO,CAACnF,IAAI,eAAC;YAAK,GAAG,EAAC,WAAW;YAAC,SAAS,EAAC,WAAW;YAAC,WAAS/C,EAAG;YAAC,KAAK,EAAE;cAAEge,IAAI,EAAE;YAAU,CAAE;YAAC,KAAK,EAAC,KAAK;YAAC,MAAM,EAAC,IAAI;YAAC,WAAW,EAAC;UAAG,EAAG,CAAC;QACrJ;QAEA,IAAMC,QAAQ,GAAG/Z,IAAI,CAACwD,OAAO,CAACC,CAAC,IAAI,EAAE;QACrCzD,IAAI,CAAC0D,GAAG,GAAGqW,QAAQ;QACnB/Z,IAAI,CAACwD,OAAO,GAAG,cACX;UAAM,SAAS,EAAEvE,OAAO,CAACtJ,QAAS;UAAC,GAAG,YAAKqK,IAAI,CAACwD,OAAO,CAACC,CAAC,CAAC9H,QAAQ,EAAE;QAAU,GAAEqE,IAAI,CAACwD,OAAO,CAACC,CAAC,CAAC9H,QAAQ,EAAE,CAAQ,EACjHqE,IAAI,CAACwD,OAAO,CAAChC,CAAC,gBAAG;UAAM,SAAS,EAAE9O,iBAAK,CAAC0M,IAAI,CAACH,OAAO,CAACvJ,iBAAiB,EAAEuJ,OAAO,CAACtJ,QAAQ,CAAE;UAAC,GAAG,YAAKqK,IAAI,CAACwD,OAAO,CAACC,CAAC,CAAC9H,QAAQ,EAAE;QAAO,GAAEqE,IAAI,CAACwD,OAAO,CAAChC,CAAC,CAAQ,GAAG,IAAI,EAClKxB,IAAI,CAACwD,OAAO,CAACM,CAAC,KAAK5I,SAAS,gBAAG;UAAM,SAAS,EAAExI,iBAAK,CAAC0M,IAAI,CAACH,OAAO,CAACpJ,kBAAkB,EAAEoJ,OAAO,CAACtJ,QAAQ,CAAE;UAAC,GAAG,YAAKqK,IAAI,CAACwD,OAAO,CAACC,CAAC,CAAC9H,QAAQ,EAAE;QAAS,QAE/IqE,IAAI,CAACwD,OAAO,CAACM,CAAC,MAEZ,GAAG,IAAI,eACd,gCAAC,oBAAQ;UAAC,SAAS,EAAEpR,iBAAK,CAAC0M,IAAI,CAACH,OAAO,CAACxI,sBAAsB,EAAE,YAAY,EAAEwI,OAAO,CAACrI,0BAA0B,CAAE;UAAC,OAAO,EAAE,iBAAA6R,CAAC;YAAA,OAAI,OAAI,CAACuR,MAAM,CAACvR,CAAC,EAAEsR,QAAQ,CAAC;UAAA,CAAC;UAAC,GAAG,EAAC;QAAI;QACnK;QAAA,CACH;MACL;;MAEA,IAAIrW,GAAG,GAAG1D,IAAI,CAACwD,OAAO;MACtB,IAAI,CAAC,IAAI,CAACP,KAAK,CAACkH,MAAM,CAACrM,UAAU,IAAIlB,IAAI,CAACa,IAAI,CAAC6D,MAAM,EAAE;QACnDoC,GAAG,gBAAG,gCAAC,uBAAe;UAAC,SAAS,EAAEhR,iBAAK,CAAC0M,IAAI,CAAC,IAAI,CAACgI,KAAK,CAACnI,OAAO,CAAClK,eAAe,EAAE,CAAC,IAAI,CAACsO,MAAM,CAACvH,EAAE,CAAC,IAAI,CAAC,IAAI,CAACuH,MAAM,CAACvH,EAAE,CAAC,CAAC4H,GAAG,GAAG,IAAI,CAAC0D,KAAK,CAACnI,OAAO,CAAChK,oBAAoB,GAAG,EAAE;QAAE,EAAG;MACjL;MAEA,oBAAO,gCAAC,mBAAO;QACX,GAAG,EAAC,OAAO;QACX,KAAK,EAAE+K,IAAI,CAACgE,OAAQ;QACpB,OAAO,EAAE;UAAE7E,OAAO,EAAE,IAAI,CAACiI,KAAK,CAACnI,OAAO,CAAC9J,gBAAgB;UAAE8kB,MAAM,EAAE,IAAI,CAAC7S,KAAK,CAACnI,OAAO,CAACxJ;QAAoB,CAAE;QAC1G,MAAM,EAAE;UAAA,OAAM,OAAI,CAACykB,WAAW,CAACpe,EAAE,CAAC;QAAA;MAAC,gBAEnC;QAAK,KAAK,EAAEkE,IAAI,CAACxF,KAAM;QAAC,SAAS,EAAEyE,OAAO,CAAC7J;MAAc,GACpDsO,GAAG,CACF,CACA;IACd;;IAEA;AACJ;AACA;AACA;EAHI;IAAA;IAAA,OAIA,mBAAU5H,EAAE,EAAEqe,OAAO,EAAEC,QAAQ,EAAE/G,EAAE,EAAE;MAAA;QAAA;MACjC,IAAI,CAAC8G,OAAO,IAAI,CAACA,OAAO,CAAChf,MAAM,EAAE;QAC7BkY,EAAE,IAAIA,EAAE,EAAE;QACV;MACJ;MACA,IAAMgH,MAAM,GAAGF,OAAO,CAACtY,GAAG,EAAE;MAC5B,IAAMyY,QAAQ,GAAG,EAAE;MACnB,6BAAI,IAAI,CAACta,IAAI,CAACnE,OAAO,CAACwe,MAAM,CAAC,kDAAzB,sBAA2Ble,MAAM,EAAE;QAAA;QACnC,8BAAI,IAAI,CAAC6D,IAAI,CAACnE,OAAO,CAACwe,MAAM,CAAC,CAACle,MAAM,CAACoB,OAAO,mDAAxC,uBAA0CpC,MAAM,EAAE;UAClD,IAAM+S,GAAG,GAAG,IAAI,CAAClO,IAAI,CAACnE,OAAO,CAACwe,MAAM,CAAC,CAACle,MAAM,CAACoB,OAAO,CAAC4Q,OAAO,CAACrS,EAAE,CAAC;UAChE,IAAIoS,GAAG,KAAK,CAAC,CAAC,IAAI,CAACkM,QAAQ,CAAC9d,QAAQ,CAAC+d,MAAM,CAAC,EAAE;YAC1C;YACA,IAAMrgB,GAAG,GAAGM,IAAI,CAAC2N,KAAK,CAAC3N,IAAI,CAACC,SAAS,CAAC,IAAI,CAACyF,IAAI,CAACnE,OAAO,CAACwe,MAAM,CAAC,CAAC,CAAC;YACjErgB,GAAG,CAACmC,MAAM,CAACoB,OAAO,CAACmE,MAAM,CAACwM,GAAG,EAAE,CAAC,CAAC;YACjCoM,QAAQ,CAACzb,IAAI,CAAC,IAAI,CAACuI,KAAK,CAACwB,MAAM,CAACC,SAAS,CAACwR,MAAM,EAAErgB,GAAG,CAAC,CACjDoY,IAAI,CAAC;cAAA,OAAM,OAAI,CAACpS,IAAI,CAACnE,OAAO,CAACwe,MAAM,CAAC,GAAGrgB,GAAG;YAAA,EAAC,SACtC,CAAC,UAAAyO,CAAC;cAAA,OAAI,OAAI,CAAC2K,SAAS,CAAC3K,CAAC,CAAC;YAAA,EAAC,CAAC;UACvC;QACJ;;QAEA;QACA,IAAI2R,QAAQ,CAAC9d,QAAQ,CAAC+d,MAAM,CAAC,IAAI,4BAAC,IAAI,CAACra,IAAI,CAACnE,OAAO,CAACwe,MAAM,CAAC,CAACle,MAAM,CAACoB,OAAO,mDAAxC,uBAA0CjB,QAAQ,CAACR,EAAE,CAAC,GAAE;UACtF;UACA,IAAM9B,IAAG,GAAGM,IAAI,CAAC2N,KAAK,CAAC3N,IAAI,CAACC,SAAS,CAAC,IAAI,CAACyF,IAAI,CAACnE,OAAO,CAACwe,MAAM,CAAC,CAAC,CAAC;UACjErgB,IAAG,CAACmC,MAAM,CAACoB,OAAO,GAAGvD,IAAG,CAACmC,MAAM,CAACoB,OAAO,IAAI,EAAE;UAC7CvD,IAAG,CAACmC,MAAM,CAACoB,OAAO,CAACsB,IAAI,CAAC/C,EAAE,CAAC;UAC3B9B,IAAG,CAACmC,MAAM,CAACoB,OAAO,CAACiC,IAAI,EAAE;UACzB8a,QAAQ,CAACzb,IAAI,CAAC,IAAI,CAACuI,KAAK,CAACwB,MAAM,CAACC,SAAS,CAACwR,MAAM,EAAErgB,IAAG,CAAC,CACjDoY,IAAI,CAAC;YAAA,OAAM,OAAI,CAACpS,IAAI,CAACnE,OAAO,CAACwe,MAAM,CAAC,GAAGrgB,IAAG;UAAA,EAAC,SACtC,CAAC,UAAAyO,CAAC;YAAA,OAAI,OAAI,CAAC2K,SAAS,CAAC3K,CAAC,CAAC;UAAA,EAAC,CAAC;QACvC;MACJ;MAEAwJ,OAAO,CAACsI,GAAG,CAACD,QAAQ,CAAC,CAChBlI,IAAI,CAAC;QAAA,OAAM1K,UAAU,CAAC;UAAA,OACnB,OAAI,CAAC8S,SAAS,CAAC1e,EAAE,EAAEqe,OAAO,EAAEC,QAAQ,EAAE/G,EAAE,CAAC;QAAA,GAAE,CAAC,CAAC;MAAA,EAAC;IAC1D;;IAEA;AACJ;AACA;AACA;EAHI;IAAA;IAAA,OAIA,kBAASvX,EAAE,EAAE8G,QAAQ,EAAEwX,QAAQ,EAAE;MAAA;MAC7B,IAAMK,OAAO,uCAAO,IAAI,CAACza,IAAI,CAAC4C,QAAQ,KAAK,MAAM,GAAG,WAAW,GAAG,WAAW,CAAC,CAAC;MAE/E,OAAO,IAAIqP,OAAO,CAAC,UAAAC,OAAO,EAAI;QAC1B,OAAI,CAACsI,SAAS,CAAC1e,EAAE,EAAE2e,OAAO,EAAEL,QAAQ,EAAE,UAAAhN,KAAK,EAAI;UAC3CA,KAAK,IAAI,OAAI,CAACgG,SAAS,CAAChG,KAAK,CAAC;UAC9B;UACA8E,OAAO,EAAE;QACb,CAAC,CAAC;MACN,CAAC,CAAC;IACN;;IAEA;AACJ;AACA;AACA;EAHI;IAAA;IAAA,OAIA,4BAAmB;MAAA;MACf,IAAI,IAAI,CAACjP,KAAK,CAAChL,UAAU,EAAE;QACvB,IAAMwE,IAAI,GAAG,IAAI,CAACwG,KAAK,CAAChL,UAAU,CAACwE,IAAI;QACvC,IAAMG,IAAI,GAAG,IAAI,CAACqG,KAAK,CAAChL,UAAU,CAAC2E,IAAI;QACvC,IAAM8d,SAAS,GAAG,IAAI,CAACzX,KAAK,CAAC0X,eAAe;QAC5C,IAAMC,aAAa,GAAG,IAAI,CAAC3X,KAAK,CAAChL,UAAU,CAAC2iB,aAAa;QAEzD,IAAMta,KAAK,GAAG,CAAC7D,IAAI,KAAK,MAAM,GAAG,IAAI,CAACuD,IAAI,CAACE,SAAS,GAAG,IAAI,CAACF,IAAI,CAACC,SAAS,EAAE4K,GAAG,CAAC,UAAA/O,EAAE;UAAA,OAAK;YACnFN,IAAI,EAAED,OAAO,CAAE,OAAI,CAACM,OAAO,CAACC,EAAE,CAAC,IAAI,OAAI,CAACD,OAAO,CAACC,EAAE,CAAC,CAACK,MAAM,IAAI,OAAI,CAACN,OAAO,CAACC,EAAE,CAAC,CAACK,MAAM,CAACX,IAAI,IAAKM,EAAE,CAACY,KAAK,CAAC,GAAG,CAAC,CAACmF,GAAG,EAAE,EAAE,OAAI,CAACuF,KAAK,CAAC3L,IAAI,CAAC;YACpIyI,KAAK,EAAEpI,EAAE;YACTM,IAAI,EAAER,eAAe,CAAC,OAAI,CAACC,OAAO,EAAEC,EAAE,EAAE,OAAI,CAACC,WAAW;UAC5D,CAAC;QAAA,CAAC,CAAC,CACEyD,IAAI,CAAC,UAACC,CAAC,EAAEC,CAAC;UAAA,OAAKD,CAAC,CAACjE,IAAI,GAAGkE,CAAC,CAAClE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAAA,EAAC;QAE7C8E,KAAK,CAAChC,OAAO,CAAC,UAAAC,KAAK,EAAI;UACnB,IAAIA,KAAK,CAACnC,IAAI,IAAI,OAAOmC,KAAK,CAACnC,IAAI,KAAK,QAAQ,EAAE;YAC9CmC,KAAK,CAACnC,IAAI,gBAAG;cAAK,SAAS,EAAE,OAAI,CAACgL,KAAK,CAACnI,OAAO,CAACnH;YAAY,gBACxD;cAAK,GAAG,EAAEyG,KAAK,CAACnC,IAAK;cAAC,SAAS,EAAE,OAAI,CAACgL,KAAK,CAACnI,OAAO,CAACjH,QAAS;cAAC,GAAG,EAAEuG,KAAK,CAAC/C;YAAK,EAAG,CAC/E;UACV;QACJ,CAAC,CAAC;;QAEF;;QAEA,oBAAO,gCAAC,kBAAM;UACV,SAAS,EAAE,IAAI,CAAC4L,KAAK,CAACnI,OAAO,CAAChH,UAAW;UACzC,OAAO,EAAE;YAAA,OAAM,OAAI,CAACkQ,QAAQ,CAAC;cAAElQ,UAAU,EAAE;YAAK,CAAC,CAAC;UAAA,CAAC;UACnD,mBAAgB,mBAAmB;UACnC,IAAI,EAAE,CAAC,CAAE,CAAC;QAAA,gBAEV,gCAAC,uBAAW;UAAC,EAAE,EAAC;QAAmB,GAC9BwE,IAAI,KAAK,MAAM,GAAG,IAAI,CAAC2K,KAAK,CAACnD,CAAC,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAACmD,KAAK,CAACnD,CAAC,CAAC,iBAAiB,CAAC,eACxF,gCAAC,eAAG;UACA,SAAS,EAAE,IAAI,CAACmD,KAAK,CAACnI,OAAO,CAAC9G,UAAW;UACzC,KAAK,EAAC,SAAS;UACf,QAAQ,EAAEmC,IAAI,CAACC,SAAS,CAACqgB,aAAa,CAAC,KAAKtgB,IAAI,CAACC,SAAS,CAACmgB,SAAS,CAAE;UACtE,IAAI,EAAC,OAAO;UACZ,OAAO,EAAE;YAAA,OACL,OAAI,CAACG,QAAQ,CAACje,IAAI,CAACa,IAAI,CAAC3B,EAAE,EAAEW,IAAI,EAAEie,SAAS,CAAC,CACvCtI,IAAI,CAAC;cAAA,OAAM,OAAI,CAACjK,QAAQ,CAAC;gBAAElQ,UAAU,EAAE,IAAI;gBAAE0iB,eAAe,EAAE;cAAK,CAAC,CAAC;YAAA,EAAC;UAAA;QAAC,gBAEhF,gCAAC,iBAAS,OAAG,CACX,CACI,eACd,gCAAC,gBAAI;UAAC,OAAO,EAAE;YAAE5a,IAAI,EAAE,IAAI,CAACqH,KAAK,CAACnI,OAAO,CAAC/G;UAAS;QAAE,GAE7CoI,KAAK,CAACuK,GAAG,CAAC,UAAAtM,KAAK,EAAI;UACf,IAAIzC,EAAE;UACN,IAAIN,IAAI;UACR,IAAIY,IAAI;UAER,IAAI,yBAAOmC,KAAK,MAAK,QAAQ,EAAE;YAC3BzC,EAAE,GAAKyC,KAAK,CAAC2F,KAAK;YAClB1I,IAAI,GAAG+C,KAAK,CAAC/C,IAAI;YACjBY,IAAI,GAAGmC,KAAK,CAACnC,IAAI;UACrB,CAAC,MAAM;YACHN,EAAE,GAAKyC,KAAK;YACZ/C,IAAI,GAAG+C,KAAK;UAChB;UACA,IAAMuc,OAAO,iCAA0Bhf,EAAE,CAAE;UAE3C,oBAAO,gCAAC,oBAAQ;YACZ,SAAS,EAAE,OAAI,CAACsL,KAAK,CAACnI,OAAO,CAACvH,oBAAqB;YACnD,GAAG,EAAEoE,EAAG;YACR,OAAO,EAAE,mBAAM;cACX,IAAMoS,GAAG,GAAGwM,SAAS,CAACvM,OAAO,CAACrS,EAAE,CAAC;cACjC,IAAM6e,eAAe,GAAGrgB,IAAI,CAAC2N,KAAK,CAAC3N,IAAI,CAACC,SAAS,CAAC,OAAI,CAAC0I,KAAK,CAAC0X,eAAe,CAAC,CAAC;cAC9E,IAAIzM,GAAG,KAAK,CAAC,CAAC,EAAE;gBACZyM,eAAe,CAAC9b,IAAI,CAAC/C,EAAE,CAAC;gBACxB6e,eAAe,CAACnb,IAAI,EAAE;cAC1B,CAAC,MAAM;gBACHmb,eAAe,CAACjZ,MAAM,CAACwM,GAAG,EAAE,CAAC,CAAC;cAClC;cACA,OAAI,CAAC/F,QAAQ,CAAC;gBAAEwS,eAAe,EAAfA;cAAgB,CAAC,CAAC;YACtC;UAAE,gBAEF,gCAAC,wBAAY;YAAC,OAAO,EAAE;cAAE5a,IAAI,EAAE,OAAI,CAACqH,KAAK,CAACnI,OAAO,CAAC7G;YAAa;UAAE,gBAC7D,gCAAC,oBAAQ;YACL,IAAI,EAAC,OAAO;YACZ,OAAO,EAAEsiB,SAAS,CAACpe,QAAQ,CAACR,EAAE,CAAE;YAChC,QAAQ,EAAE,CAAC,CAAE;YACb,aAAa;YACb,UAAU,EAAE;cAAE,iBAAiB,EAAEgf;YAAQ;UAAE,EAC7C,CACS,eACf,gCAAC,wBAAY;YAAC,EAAE,EAAEA;UAAQ,GAAEtf,IAAI,CAAgB,EAC/CY,IAAI,gBAAG,gCAAC,mCAAuB,QAAEA,IAAI,CAA2B,GAAG,IAAI,CACjE;QACf,CAAC,CAAC,CAEH,CACF;MACb;MACA,OAAO,IAAI;IACf;;IAEA;AACJ;AACA;AACA;EAHI;IAAA;IAAA,OAIA,gCAAuB;MAAA;MACnB,IAAI,IAAI,CAAC6G,KAAK,CAACoM,UAAU,IAAI,IAAI,CAACjI,KAAK,CAAC2T,qBAAqB,EAAE;QAC3D,IAAMC,qBAAqB,GAAG,IAAI,CAAC5T,KAAK,CAAC2T,qBAAqB;QAC9D,oBAAO,gCAAC,qBAAqB;UACzB,GAAG,EAAC,uBAAuB;UAC3B,EAAE,EAAE,IAAI,CAAC9X,KAAK,CAACoM,UAAW;UAC1B,MAAM,EAAE,IAAI,CAACjI,KAAK,CAACwB,MAAO;UAC1B,CAAC,EAAE,IAAI,CAACxB,KAAK,CAACnD,CAAE;UAChB,KAAK,EAAE,IAAI,CAACjE,IAAI,CAACG,KAAM;UACvB,OAAO,EAAE,iBAAAnG,GAAG,EAAI;YACZ,IAAIA,GAAG,EAAE;cACL,OAAI,CAACgG,IAAI,CAACnE,OAAO,CAAC,OAAI,CAACoH,KAAK,CAACoM,UAAU,CAAC,GAAGrV,GAAG;YAClD;YACA,OAAI,CAACmO,QAAQ,CAAC;cAAEkH,UAAU,EAAE;YAAM,CAAC,CAAC;UACxC;QAAE,EACJ;MACN;MACA,OAAO,IAAI;IACf;;IAEA;AACJ;AACA;AACA;EAHI;IAAA;IAAA,OAIA,wCAA+B4L,MAAM,EAAE;MAAA;MACnC,IAAIA,MAAM,EAAE;QACR,IAAI/W,KAAK,GAAG,IAAI,CAACgX,kBAAkB,CAAChX,KAAK;QACzC,IAAI,IAAI,CAACgX,kBAAkB,CAACze,IAAI,KAAK,SAAS,EAAE;UAC5CyH,KAAK,GAAGA,KAAK,KAAK,MAAM,IAAIA,KAAK,KAAK,IAAI;QAC9C,CAAC,MAAM,IAAI,IAAI,CAACgX,kBAAkB,CAACze,IAAI,KAAK,QAAQ,EAAE;UAClDyH,KAAK,GAAGiX,UAAU,CAACjX,KAAK,CAAC;QAC7B;QACA,IAAI,CAACgX,kBAAkB,GAAG,IAAI;QAC9B,IAAI,CAAC9T,KAAK,CAACwB,MAAM,CAAC6J,SAAS,CAAC,IAAI,CAACxP,KAAK,CAACwM,uBAAuB,CAACzV,GAAG,CAACoI,GAAG,CAAC,CAClEgQ,IAAI,CAAC,UAAApY,GAAG,EAAI;UACT,IAAImN,aAAa,CAACiU,cAAc,CAACphB,GAAG,EAAE,OAAI,CAACiJ,KAAK,CAACwM,uBAAuB,CAAC4L,EAAE,EAAEnX,KAAK,CAAC,EAAE;YACjF,OAAO,OAAI,CAACkD,KAAK,CAACwB,MAAM,CAACC,SAAS,CAAC7O,GAAG,CAACoI,GAAG,EAAEpI,GAAG,CAAC;UACpD;UACA,MAAM,IAAIshB,KAAK,CAAC,OAAI,CAAClU,KAAK,CAACnD,CAAC,CAAC,6DAA6D,CAAC,CAAC;QAChG,CAAC,CAAC,CACDmO,IAAI,CAAC;UAAA,OAAM,OAAI,CAACjK,QAAQ,CAAC;YAAEsH,uBAAuB,EAAE;UAAK,CAAC,CAAC;QAAA,EAAC,SACvD,CAAC,UAAAhH,CAAC;UAAA,OAAI,OAAI,CAAC2K,SAAS,CAAC3K,CAAC,CAAC;QAAA,EAAC;MACtC,CAAC,MAAM;QACH,IAAI,CAACyS,kBAAkB,GAAG,IAAI;QAC9B,IAAI,CAAC/S,QAAQ,CAAC;UAAEsH,uBAAuB,EAAE;QAAK,CAAC,CAAC;MACpD;IACJ;;IAEA;AACJ;AACA;EAFI;IAAA;IAAA,OAGA,yCAAgC;MAAA;MAC5B,IAAI,IAAI,CAACxM,KAAK,CAACwM,uBAAuB,EAAE;QACpC,IAAI,CAAC,IAAI,CAACyL,kBAAkB,EAAE;UAC1B,IAAMhX,KAAK,GAAGiD,aAAa,CAACoU,cAAc,CAAC,IAAI,CAACtY,KAAK,CAACwM,uBAAuB,CAACzV,GAAG,EAAE,IAAI,CAACiJ,KAAK,CAACwM,uBAAuB,CAAC4L,EAAE,CAAC;UACzH,IAAI,CAACH,kBAAkB,GAAG;YACtBze,IAAI,EAAE,IAAI,CAACwG,KAAK,CAACwM,uBAAuB,CAAC4L,EAAE,CAAC5e,IAAI,6BAAWyH,KAAK;YAChEsX,SAAS,EAAE,CAACtX,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAKhJ,SAAS,GAAG,EAAE,GAAGgJ,KAAK,EAAEvI,QAAQ,EAAE;YAC1EuI,KAAK,EAAE,CAACA,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAKhJ,SAAS,GAAG,EAAE,GAAGgJ,KAAK,EAAEvI,QAAQ;UACxE,CAAC;QACL;QAEA,oBAAO,gCAAC,kBAAM;UACV,OAAO,EAAE;YAAA,OAAM,OAAI,CAACwM,QAAQ,CAAC;cAAEsH,uBAAuB,EAAE;YAAK,CAAC,CAAC;UAAA,CAAC;UAChE,QAAQ,EAAC,IAAI;UACb,mBAAgB,qBAAqB;UACrC,IAAI,EAAE,CAAC;QAAE,gBAET,gCAAC,uBAAW;UAAC,EAAE,EAAC;QAAqB,aAAK,IAAI,CAACrI,KAAK,CAACnD,CAAC,CAAC,sBAAsB,CAAC,eAAK,IAAI,CAAChB,KAAK,CAACwM,uBAAuB,CAACzV,GAAG,CAACoI,GAAG,EAAiB,eAC9I,gCAAC,yBAAa,qBACV,gCAAC,6BAAiB;UAAC,EAAE,EAAC;QAA0B,GAC3C,IAAI,CAAC8Y,kBAAkB,CAACze,IAAI,KAAK,SAAS,gBACvC,gCAAC,4BAAgB;UACb,OAAO,eAAE,gCAAC,oBAAQ;YACd,OAAO,EAAE,iBAAAgM,CAAC;cAAA,OAAIA,CAAC,CAACgT,OAAO,KAAK,EAAE,IAAI,OAAI,CAACC,8BAA8B,CAAC,IAAI,CAAC;YAAA,CAAC;YAC5E,cAAc,EAAE,IAAI,CAACR,kBAAkB,CAAChX,KAAK,KAAK,MAAO;YACzD,QAAQ,EAAE,kBAAAuE,CAAC,EAAI;cACX,OAAI,CAACyS,kBAAkB,CAAChX,KAAK,GAAGuE,CAAC,CAACc,MAAM,CAACoS,OAAO,CAAChgB,QAAQ,EAAE;cAC3D,IAAM2X,OAAO,GAAG,OAAI,CAAC4H,kBAAkB,CAAChX,KAAK,KAAK,OAAI,CAACgX,kBAAkB,CAACM,SAAS;cACnF,IAAIlI,OAAO,KAAK,CAAC,OAAI,CAACrQ,KAAK,CAACyM,8BAA8B,EAAE;gBACxD,OAAI,CAACvH,QAAQ,CAAC;kBAAEuH,8BAA8B,EAAE4D;gBAAQ,CAAC,CAAC;cAC9D;YACJ;UAAE,EACH;UACH,KAAK,YAAK,IAAI,CAACrQ,KAAK,CAACwM,uBAAuB,CAAC4L,EAAE,CAAC7f,IAAI,eAAK,IAAI,CAACyH,KAAK,CAACwM,uBAAuB,CAAC4L,EAAE,CAACO,QAAQ;QAAI,EAC7G,gBAEF,gCAAC,qBAAS;UACN,OAAO,EAAC,UAAU;UAClB,YAAY,EAAE,IAAI,CAACV,kBAAkB,CAAChX,KAAM;UAC5C,SAAS;UACT,OAAO,EAAE,iBAAAuE,CAAC;YAAA,OAAIA,CAAC,CAACgT,OAAO,KAAK,EAAE,IAAI,OAAI,CAACC,8BAA8B,CAAC,IAAI,CAAC;UAAA,CAAC;UAC5E,KAAK,YAAK,IAAI,CAACzY,KAAK,CAACwM,uBAAuB,CAAC4L,EAAE,CAAC7f,IAAI,eAAK,IAAI,CAACyH,KAAK,CAACwM,uBAAuB,CAAC4L,EAAE,CAACO,QAAQ,MAAI;UAC3G,QAAQ,EAAE,kBAAAnT,CAAC,EAAI;YACX,OAAI,CAACyS,kBAAkB,CAAChX,KAAK,GAAGuE,CAAC,CAACc,MAAM,CAACrF,KAAK;YAC9C,IAAMoP,OAAO,GAAG,OAAI,CAAC4H,kBAAkB,CAAChX,KAAK,KAAK,OAAI,CAACgX,kBAAkB,CAACM,SAAS;YACnF,IAAIlI,OAAO,KAAK,CAAC,OAAI,CAACrQ,KAAK,CAACyM,8BAA8B,EAAE;cACxD,OAAI,CAACvH,QAAQ,CAAC;gBAAEuH,8BAA8B,EAAE4D;cAAQ,CAAC,CAAC;YAC9D;UACJ,CAAE;UACF,SAAS;QAAA,EACX,CACU,CACR,eAChB,gCAAC,yBAAa,qBACV,gCAAC,kBAAM;UACH,OAAO,EAAC,WAAW;UACnB,OAAO,EAAE;YAAA,OAAM,OAAI,CAACoI,8BAA8B,CAAC,IAAI,CAAC;UAAA,CAAC;UACzD,QAAQ,EAAE,CAAC,IAAI,CAACzY,KAAK,CAACyM,8BAA+B;UACrD,KAAK,EAAC,SAAS;UACf,SAAS,eAAE,gCAAC,iBAAS;QAAI,GAExB,IAAI,CAACtI,KAAK,CAACnD,CAAC,CAAC,WAAW,CAAC,CACrB,eACT,gCAAC,kBAAM;UACH,KAAK,EAAC,MAAM;UACZ,OAAO,EAAC,WAAW;UACnB,OAAO,EAAE;YAAA,OAAM,OAAI,CAACyX,8BAA8B,EAAE;UAAA,CAAC;UACrD,SAAS,eAAE,gCAAC,iBAAS;QAAI,GAExB,IAAI,CAACtU,KAAK,CAACnD,CAAC,CAAC,WAAW,CAAC,CACrB,CACG,CACX;MACb;MACA,OAAO,IAAI;IACf;;IAEA;AACJ;AACA;AACA;AACA;EAJI;IAAA;IAAA;IAuEA;AACJ;AACA;AACA;AACA;AACA;AACA;IACI,2BAAkBjK,GAAG,EAAEqhB,EAAE,EAAEze,IAAI,EAAE;MAAA;MAC7B,IAAMgb,IAAI,GAAGzQ,aAAa,CAACoU,cAAc,CAACvhB,GAAG,EAAEqhB,EAAE,CAAC;MAClD,IAAIzD,IAAI,KAAK,IAAI,IAAIA,IAAI,KAAK1c,SAAS,EAAE;QACrC,IAAImgB,EAAE,CAACxL,IAAI,IAAI,CAAC,IAAI,CAACzI,KAAK,CAACyU,WAAW,KAAK,CAACR,EAAE,CAACrG,QAAQ,IAAIqG,EAAE,CAACrG,QAAQ,CAAC1Y,QAAQ,CAACtC,GAAG,CAACyC,IAAI,CAAC,CAAC,EAAE;UACxF,oBAAO;YACH,SAAS,EAAE/J,iBAAK,CAAC0M,IAAI,CAAC,IAAI,CAACgI,KAAK,CAACnI,OAAO,CAACpP,YAAY,EAAE,IAAI,CAACuX,KAAK,CAACnI,OAAO,CAACjP,oBAAoB,EAAE,IAAI,CAACoX,KAAK,CAACnI,OAAO,wBAAiBoc,EAAE,CAACS,KAAK,EAAG,CAAE;YAChJ,OAAO,EAAE;cAAA,OAAM,OAAI,CAAC3T,QAAQ,CAAC;gBAAEsH,uBAAuB,EAAE;kBAAE7S,IAAI,EAAJA,IAAI;kBAAEye,EAAE,EAAFA,EAAE;kBAAErhB,GAAG,EAAHA;gBAAI,CAAC;gBAAE0V,8BAA8B,EAAE;cAAM,CAAC,CAAC;YAAA;UAAC,GAEnHkI,IAAI,CACH;QACV;QACA,oBAAO;UACH,SAAS,EAAEllB,iBAAK,CAAC0M,IAAI,CAAC,IAAI,CAACgI,KAAK,CAACnI,OAAO,CAACpP,YAAY,EAAE,IAAI,CAACuX,KAAK,CAACnI,OAAO,wBAAiBoc,EAAE,CAACS,KAAK,EAAG;QAAE,GAEtGlE,IAAI,CACH;MACV;MACA,OAAO,IAAI;IACf;;IAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EAPI;IAAA;IAAA,OAQA,oBAAWhb,IAAI,EAAEmf,UAAU,EAAE9c,OAAO,EAAElC,OAAO,EAAE;MAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;MAC3C,IAAMjB,EAAE,GAAGc,IAAI,CAACa,IAAI,CAAC3B,EAAE;MACvBiB,OAAO,CAAC0B,KAAK,EAAE;MACfsd,UAAU,GAAGA,UAAU,KAAK7gB,SAAS,GAAG,IAAI,CAAC+H,KAAK,CAACsK,QAAQ,CAACjR,QAAQ,CAACR,EAAE,CAAC,GAAGigB,UAAU;;MAErF;MACA,IAAIC,UAAU;MACd,IAAMhiB,GAAG,GAAG4C,IAAI,CAACa,IAAI,CAACzD,GAAG;MACzB,IAAMiiB,QAAQ,GAAGjiB,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEyC,IAAI;MAE1B,IAAIG,IAAI,CAACyB,QAAQ,IAAI4d,QAAQ,KAAK,QAAQ,IAAIA,QAAQ,KAAK,QAAQ,IAAIA,QAAQ,KAAK,SAAS,IAAIA,QAAQ,KAAK,MAAM,EAAE;QAClHD,UAAU,GAAGD,UAAU,gBAAG,gCAAC,oBAAQ;UAC/B,SAAS,EAAE9c,OAAO,CAACxL,gBAAiB;UACpC,OAAO,EAAE;YAAA,OAAM,OAAI,CAACyoB,cAAc,CAACpgB,EAAE,CAAC;UAAA;QAAC,EACzC,gBAAG,gCAAC,sBAAU;UACZ,SAAS,EAAEmD,OAAO,CAACxL,gBAAiB;UACpC,OAAO,EAAE;YAAA,OAAM,OAAI,CAACyoB,cAAc,CAACpgB,EAAE,CAAC;UAAA;QAAC,EACzC;MACN,CAAC,MAAM,IAAI9B,GAAG,CAACmC,MAAM,IAAKnC,GAAG,CAACmC,MAAM,CAACoF,KAAK,KAAK,KAAM,IAAIvH,GAAG,CAACyC,IAAI,KAAK,OAAO,EAAE;QAC3Euf,UAAU,gBAAG,gCAAC,gCAAoB;UAAC,SAAS,EAAE/c,OAAO,CAACrL;QAAmB,EAAG;MAChF,CAAC,MAAM;QACHooB,UAAU,gBAAG,gCAAC,wBAAY;UAAC,SAAS,EAAE/c,OAAO,CAACrL;QAAmB,EAAG;MACxE;MAEA,IAAIuoB,QAAQ,GAAG,IAAI;MACnB,IAAIvf,IAAI,CAACa,IAAI,CAACrB,IAAI,EAAE;QAChB,IAAI,OAAOQ,IAAI,CAACa,IAAI,CAACrB,IAAI,KAAK,QAAQ,EAAE;UACpC,IAAIQ,IAAI,CAACa,IAAI,CAACrB,IAAI,CAACjB,MAAM,GAAG,CAAC,EAAE;YAC3BghB,QAAQ,gBAAG;cAAM,SAAS,EAAEzpB,iBAAK,CAAC0M,IAAI,CAACH,OAAO,CAACpL,aAAa,EAAE,SAAS;YAAE,GAAE+I,IAAI,CAACa,IAAI,CAACrB,IAAI,CAAQ,CAAC,CAAC;UACvG,CAAC,MAAM;YACH+f,QAAQ,gBAAG;cAAK,SAAS,EAAEzpB,iBAAK,CAAC0M,IAAI,CAACH,OAAO,CAACpL,aAAa,EAAE,SAAS,CAAE;cAAC,GAAG,EAAE+I,IAAI,CAACa,IAAI,CAACrB,IAAK;cAAC,GAAG,EAAC;YAAE,EAAG;UAC3G;QACJ,CAAC,MAAM;UACH+f,QAAQ,GAAGvf,IAAI,CAACa,IAAI,CAACrB,IAAI;QAC7B;MACJ;MAEA,IAAMD,MAAM,GAAGnC,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEmC,MAAM;MAE1B,IAAMigB,OAAO,GAAIpiB,GAAG,IAAIA,GAAG,CAACyC,IAAI,IAAIyI,WAAW,CAAClL,GAAG,CAACyC,IAAI,CAAC,iBAAK;QAAK,SAAS,EAAC;MAAU,EAAG;MAE1F,IAAMrL,WAAW,GAAG,IAAI,CAAC2gB,YAAY,GAAGnV,IAAI,CAACa,IAAI,CAACyD,KAAK;MAEvD,IAAItE,IAAI,CAACa,IAAI,CAAChC,IAAI,KAAK,IAAI,CAACwH,KAAK,CAACxH,IAAI,EAAE;QACpC,0BAAuB4G,kBAAkB,CAAC,IAAI,CAACrC,IAAI,EAAElE,EAAE,EAAE,IAAI,CAACmH,KAAK,CAACxH,IAAI,CAAC;UAAjE8G,KAAK,uBAALA,KAAK;UAAEC,GAAG,uBAAHA,GAAG;QAClB5F,IAAI,CAACa,IAAI,CAAC8E,KAAK,GAAGA,KAAK,CAACZ,IAAI,CAAC,IAAI,CAAC;QAClC/E,IAAI,CAACa,IAAI,CAAC+E,GAAG,GAAGA,GAAG;QACnB,4BAAuBM,sBAAsB,CAAC,IAAI,CAAC9C,IAAI,EAAElE,EAAE,EAAE,IAAI,CAACmH,KAAK,CAACxH,IAAI,CAAC;UAArEoH,KAAK,yBAALA,KAAK;UAAEE,GAAG,yBAAHA,GAAG;QAClBnG,IAAI,CAACa,IAAI,CAACoF,KAAK,GAAGA,KAAK,CAAClB,IAAI,CAAC,IAAI,CAAC;QAClC/E,IAAI,CAACa,IAAI,CAACsF,GAAG,GAAGA,GAAG;QACnBnG,IAAI,CAACa,IAAI,CAAChC,IAAI,GAAG,IAAI,CAACwH,KAAK,CAACxH,IAAI;MACpC;MAEA,IAAM4gB,QAAQ,GACV,IAAI,CAACjV,KAAK,CAACmN,WAAW,IACtB,IAAI,CAAC1Y,OAAO,CAACC,EAAE,CAAC,KAAK,CAAC,IAAI,CAACsL,KAAK,CAAChH,KAAK,IAAI,IAAI,CAACgH,KAAK,CAAChH,KAAK,CAAC9D,QAAQ,CAAC,IAAI,CAACT,OAAO,CAACC,EAAE,CAAC,CAACW,IAAI,CAAC,CAAC,gBACvF,gCAAC,oBAAQ;QACL,SAAS,EAAEwC,OAAO,CAAC7L,QAAS;QAC5B,OAAO,EAAE,IAAI,CAAC6P,KAAK,CAACgH,QAAQ,CAAC3N,QAAQ,CAACR,EAAE;MAAE,EAC5C,GACF,IAAI;MAEZ,IAAIwgB,aAAa,GAAG,CAAC,IAAI,CAAClV,KAAK,CAACyU,WAAW,IAAII,QAAQ,KAAK,OAAO,KAAK,IAAI,CAAChZ,KAAK,CAACkH,MAAM,CAACrM,UAAU,IAAI,CAAA3B,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEoF,KAAK,MAAK,KAAK,CAAC;MAChI,IAAI,IAAI,CAAC6F,KAAK,CAACmV,qBAAqB,IAAI,CAAApgB,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEM,IAAI,MAAK,MAAM,EAAE;QAC7D6f,aAAa,GAAG,IAAI;MACxB;MACA,IAAME,YAAY,GAAI,CAAC,IAAI,CAACpV,KAAK,CAACyU,WAAW,IAAI,IAAI,CAAChgB,OAAO,CAACC,EAAE,CAAC,KAAK,IAAI,CAACmH,KAAK,CAACkH,MAAM,CAACrM,UAAU,IAAIme,QAAQ,KAAK,OAAO,IAAIA,QAAQ,KAAK,SAAS,IAAIA,QAAQ,KAAK,QAAQ,CAAC;MAC9K,IAAMQ,sBAAsB,GAAG,IAAI,CAACxZ,KAAK,CAAC2L,UAAU,KAAKqN,QAAQ,KAAK,OAAO,IAAIA,QAAQ,KAAK,SAAS,IAAIA,QAAQ,KAAK,QAAQ,CAAC;MACjI,IAAItmB,QAAQ,GAAG,EAAE;MACjB,IAAM+mB,aAAa,GAAG,EAAE;MACxB,IAAID,sBAAsB,EAAE;QAAA;QACxB9mB,QAAQ,sBAAG,IAAI,CAAC0N,MAAM,CAACvH,EAAE,CAAC,oDAAf,gBAAiByI,IAAI;QAChC,IAAI5O,QAAQ,KAAKuF,SAAS,EAAE;UACxBvF,QAAQ,GAAG,QAAQ;QACvB,CAAC,MAAM;UACHA,QAAQ,GAAGA,QAAQ,GAAGA,QAAQ,CAACgK,OAAO,CAAC,8BAA8B,EAAE,EAAE,CAAC,GAAG,EAAE;UAC/E+c,aAAa,CAAC7d,IAAI,WAAI,IAAI,CAACqE,KAAK,CAAC6N,gBAAgB,cAAIpb,QAAQ,EAAG;QACpE;QACA,IAAIqE,GAAG,CAACwK,IAAI,EAAE;UACV,IAAMA,IAAI,GAAGxK,GAAG,CAACwK,IAAI,CAAC7E,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;UACjDhK,QAAQ,eAAQ6O,IAAI,CAAE;UACtBkY,aAAa,CAAC7d,IAAI,WAAI,IAAI,CAACqE,KAAK,CAAC4N,cAAc,cAAItM,IAAI,EAAG;QAC9D;MACJ;MACA,IAAIxK,GAAG,EAAE;QACLA,GAAG,CAACuK,IAAI,IAAImY,aAAa,CAAC7d,IAAI,WAAI,IAAI,CAACqE,KAAK,CAAC2N,iBAAiB,cAAI7W,GAAG,CAACuK,IAAI,CAAC5E,OAAO,CAAC,8BAA8B,EAAE,EAAE,CAAC,EAAG;QACzH3F,GAAG,CAACwK,IAAI,IAAIkY,aAAa,CAAC7d,IAAI,WAAI,IAAI,CAACqE,KAAK,CAAC0N,eAAe,cAAI5W,GAAG,CAACwK,IAAI,CAAC7E,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,EAAG;QAC1G3F,GAAG,CAACoK,EAAE,IAAMsY,aAAa,CAAC7d,IAAI,WAAI,IAAI,CAACqE,KAAK,CAACyN,mBAAmB,cAAIje,iBAAK,CAAC2R,UAAU,CAAC,IAAIT,IAAI,CAAC5J,GAAG,CAACoK,EAAE,CAAC,EAAE,IAAI,CAACgD,KAAK,CAACjE,UAAU,CAAC,EAAG;MACpI;MAEA,IAAMwZ,cAAc,GAAG,yBAAOxgB,MAAM,aAANA,MAAM,wCAANA,MAAM,CAAEygB,KAAK,kDAAb,cAAe9gB,EAAE,MAAK,QAAQ;MAE5D,IAAM8gB,KAAK,GAAG9gB,EAAE,CAACO,UAAU,CAAC,QAAQ,CAAC,IAAIF,MAAM,aAANA,MAAM,iCAANA,MAAM,CAAEygB,KAAK,2CAAb,eAAe9gB,EAAE,GACrD6gB,cAAc,gBACX;QAAK,SAAS,EAAE1d,OAAO,CAAC3K;MAAwB,GAC3C6H,MAAM,CAACygB,KAAK,CAAC9gB,EAAE,CAAC+gB,IAAI,gBAAG;QACpB,OAAO,EAAE,iBAAApU,CAAC,EAAI;UACVA,CAAC,CAACoP,eAAe,EAAE;UACnBpP,CAAC,CAACqP,cAAc,EAAE;UAClB,OAAI,CAACnE,QAAQ,CAACxX,MAAM,CAACygB,KAAK,CAAC9gB,EAAE,CAAC+gB,IAAI,CAAC;UACnCnV,UAAU,CAAC,YAAM;YACb,OAAI,CAACwL,iBAAiB,CAAC;cAAA,OACnB,OAAI,CAAC4J,YAAY,CAAC3gB,MAAM,CAACygB,KAAK,CAAC9gB,EAAE,CAAC+gB,IAAI,CAAC;YAAA,EAAC;UAChD,CAAC,EAAE,GAAG,CAAC;QACX,CAAE;QACF,SAAS,EAAEnqB,iBAAK,CAAC0M,IAAI,CAACH,OAAO,CAAC7K,WAAW,EAAE6K,OAAO,CAACzK,oBAAoB;MAAE,aAGxE2H,MAAM,CAACygB,KAAK,CAAC9gB,EAAE,CAAC+gB,IAAI,CACnB,GAAG,IAAI,EACZ1gB,MAAM,CAACygB,KAAK,CAAC9gB,EAAE,CAACyF,KAAK,gBAAG;QACrB,OAAO,EAAE,iBAAAkH,CAAC,EAAI;UACVA,CAAC,CAACoP,eAAe,EAAE;UACnBpP,CAAC,CAACqP,cAAc,EAAE;UAClB,OAAI,CAACnE,QAAQ,CAACxX,MAAM,CAACygB,KAAK,CAAC9gB,EAAE,CAACyF,KAAK,CAAC;UACpCmG,UAAU,CAAC,YAAM;YACb,OAAI,CAACwL,iBAAiB,CAAC;cAAA,OACnB,OAAI,CAAC4J,YAAY,CAAC3gB,MAAM,CAACygB,KAAK,CAAC9gB,EAAE,CAACyF,KAAK,CAAC;YAAA,EAAC;UACjD,CAAC,EAAE,GAAG,CAAC;QACX,CAAE;QACF,SAAS,EAAE7O,iBAAK,CAAC0M,IAAI,CAACH,OAAO,CAAC7K,WAAW,EAAE6K,OAAO,CAACzK,oBAAoB;MAAE,aAGxE2H,MAAM,CAACygB,KAAK,CAAC9gB,EAAE,CAACyF,KAAK,CACpB,GAAG,IAAI,CACX,gBAEN;QACI,OAAO,EAAE,iBAAAkH,CAAC,EAAI;UACVA,CAAC,CAACoP,eAAe,EAAE;UACnBpP,CAAC,CAACqP,cAAc,EAAE;UAClB,OAAI,CAACnE,QAAQ,CAACxX,MAAM,CAACygB,KAAK,CAAC9gB,EAAE,CAAC;UAC9B4L,UAAU,CAAC,YAAM;YACb,OAAI,CAACwL,iBAAiB,CAAC;cAAA,OACnB,OAAI,CAAC4J,YAAY,CAAC3gB,MAAM,CAACygB,KAAK,CAAC9gB,EAAE,CAAC;YAAA,EAAC;UAC3C,CAAC,EAAE,GAAG,CAAC;QACX,CAAE;QACF,SAAS,EAAEpJ,iBAAK,CAAC0M,IAAI,CAACH,OAAO,CAAC7K,WAAW,EAAE6K,OAAO,CAAC1K,gBAAgB;MAAE,aAGpE4H,MAAM,CAACygB,KAAK,CAAC9gB,EAAE,CACd,GACN,IAAI;MAEZ,IAAIihB,UAAU,GAAG5gB,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAErK,KAAK;MAC9B,IAAIkrB,gBAAgB,GAAG9hB,SAAS;MAChC,IAAI6hB,UAAU,IAAI,CAAC,IAAI,CAAC9Z,KAAK,CAACgH,QAAQ,CAAC3N,QAAQ,CAACR,EAAE,CAAC,EAAE;QACjD,IAAI1J,UAAU,GAAG,IAAI,CAACgV,KAAK,CAAC6V,SAAS,KAAK,MAAM,GAAG,SAAS,GAAI,IAAI,CAAC7V,KAAK,CAAC6V,SAAS,KAAK,MAAM,GAAG,SAAS,GAAG,SAAU;QACxH,IAAMC,QAAQ,GAAGxqB,iBAAK,CAACyqB,aAAa,CAACJ,UAAU,EAAE3qB,UAAU,CAAC;QAC5D;QACA,IAAI8qB,QAAQ,GAAG,IAAI,EAAE;UACjBF,gBAAgB,GAAG,IAAI,CAAC5V,KAAK,CAACgW,SAAS,KAAK,MAAM,GAAG,SAAS,GAAG,SAAS;QAC9E;MACJ;MACA,IAAIthB,EAAE,KAAK,QAAQ,EAAE;QACjBihB,UAAU,GAAGxuB,iBAAiB;MAClC,CAAC,MAAM,IAAIuN,EAAE,KAAK,gBAAgB,EAAE;QAChCihB,UAAU,GAAGvuB,yBAAyB;MAC1C,CAAC,MACD,IAAI,CAACuuB,UAAU,IAAI,IAAI,CAAC9Z,KAAK,CAACgH,QAAQ,CAAC3N,QAAQ,CAACR,EAAE,CAAC,EAAE;QACjDihB,UAAU,GAAG,SAAS;MAC1B;MAEA,IAAMM,KAAK,GAAG,EAAE;MAEhB,IAAIlhB,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEmhB,YAAY,EAAE;QACtB,IAAM/d,GAAG,GAAG,CAAC,CAAC;QACd3B,MAAM,CAACC,IAAI,CAAC1B,MAAM,CAACmhB,YAAY,CAAC,CAAChf,OAAO,CAAC,UAAA9C,IAAI,EAAI;UAC7C,IAAI4G,GAAG,GAAGjG,MAAM,CAACmhB,YAAY,CAAC9hB,IAAI,CAAC;UACnC,IAAI4G,GAAG,CAAC1F,KAAK,CAAC,GAAG,CAAC,CAACvB,MAAM,GAAG,CAAC,EAAE;YAC3BiH,GAAG,aAAMtG,EAAE,cAAIsG,GAAG,CAAE;UACxB;UACA7C,GAAG,CAAC/D,IAAI,CAAC,GAAG4G,GAAG;UAEf,IAAI,CAAC,OAAI,CAACiB,MAAM,CAACjB,GAAG,CAAC,EAAE;YAAA;YACnB,IAAI,+BAAI,CAACvG,OAAO,CAACuG,GAAG,CAAC,wDAAjB,oBAAmB3F,IAAI,MAAK,OAAO,EAAE;cACrC,CAAC,OAAI,CAACiY,YAAY,CAACpY,QAAQ,CAAC8F,GAAG,CAAC,IAAI,OAAI,CAACsS,YAAY,CAAC7V,IAAI,CAACuD,GAAG,CAAC;cAC/D,OAAI,CAACiB,MAAM,CAACjB,GAAG,CAAC,GAAG;gBAAEsB,GAAG,EAAE;cAAK,CAAC;cAChC,OAAI,CAACmW,SAAS,CAACzX,GAAG,CAAC;YACvB;UACJ,CAAC,MAAM;YACH,CAAC,OAAI,CAACsS,YAAY,CAACpY,QAAQ,CAAC8F,GAAG,CAAC,IAAI,OAAI,CAACsS,YAAY,CAAC7V,IAAI,CAACuD,GAAG,CAAC;UACnE;QACJ,CAAC,CAAC;QACF;QACA;QACA,IAAImb,QAAQ,GAAG,KAAK;QACpB,IAAIphB,MAAM,CAACmhB,YAAY,CAACE,OAAO,IAAI,IAAI,CAACna,MAAM,CAAC9D,GAAG,CAACie,OAAO,CAAC,IAAI,IAAI,CAACna,MAAM,CAAC9D,GAAG,CAACie,OAAO,CAAC,CAAC9Z,GAAG,EAAE;UACzFqZ,UAAU,GAAG,IAAI,CAAC3V,KAAK,CAACgW,SAAS,KAAK,MAAM,GAAG3uB,qBAAqB,GAAGC,sBAAsB;UAC7F6uB,QAAQ,GAAG,IAAI;UACfF,KAAK,CAACxe,IAAI,eAAC,gCAAC,iBAAS;YAAC,GAAG,EAAC,OAAO;YAAC,KAAK,EAAE,IAAI,CAACqE,KAAK,CAAC8N,WAAY;YAAC,SAAS,EAAE,IAAI,CAAC5J,KAAK,CAACnI,OAAO,CAAC7F;UAAgB,EAAG,CAAC;QACvH;QAEA,IAAImG,GAAG,CAACke,QAAQ,IAAI,IAAI,CAACpa,MAAM,CAAC9D,GAAG,CAACke,QAAQ,CAAC,IAAI,IAAI,CAACpa,MAAM,CAAC9D,GAAG,CAACke,QAAQ,CAAC,CAAC/Z,GAAG,KAAK,IAAI,EAAE;UACrF,IAAI,CAAC6Z,QAAQ,EAAE;YACX,IAAI,IAAI,CAACla,MAAM,CAAC9D,GAAG,CAACke,QAAQ,CAAC,CAAC/Z,GAAG,EAAE;cAC/BqZ,UAAU,GAAG,IAAI,CAAC3V,KAAK,CAACgW,SAAS,KAAK,MAAM,GAAGzuB,yBAAyB,GAAGC,0BAA0B;cACrGyuB,KAAK,CAACxe,IAAI,eAAC,gCAAC,gBAAc;gBAAC,GAAG,EAAC,MAAM;gBAAC,KAAK,EAAE,IAAI,CAACqE,KAAK,CAAC8N,WAAY;gBAAC,SAAS,EAAE,IAAI,CAAC5J,KAAK,CAACnI,OAAO,CAAC/F;cAAoB,EAAG,CAAC;YAC/H,CAAC,MAAM;cACH6jB,UAAU,GAAG,IAAI,CAAC3V,KAAK,CAACgW,SAAS,KAAK,MAAM,GAAGvuB,4BAA4B,GAAGC,6BAA6B;cAC3GuuB,KAAK,CAACxe,IAAI,eAAC,gCAAC,mBAAgB;gBAAC,GAAG,EAAC,MAAM;gBAAC,KAAK,EAAE,IAAI,CAACqE,KAAK,CAAC8N,WAAY;gBAAC,SAAS,EAAE,IAAI,CAAC5J,KAAK,CAACnI,OAAO,CAAC9F;cAAuB,EAAG,CAAC;YACpI;UACJ,CAAC,MAAM,IAAI,IAAI,CAACkK,MAAM,CAAC9D,GAAG,CAACke,QAAQ,CAAC,CAAC/Z,GAAG,EAAE;YACtC2Z,KAAK,CAACxe,IAAI,eAAC,gCAAC,gBAAc;cAAC,GAAG,EAAC,MAAM;cAAC,KAAK,EAAE,IAAI,CAACqE,KAAK,CAAC8N,WAAY;cAAC,SAAS,EAAE,IAAI,CAAC5J,KAAK,CAACnI,OAAO,CAAC/F;YAAoB,EAAG,CAAC;UAC/H,CAAC,MAAM;YACHmkB,KAAK,CAACxe,IAAI,eAAC,gCAAC,mBAAgB;cAAC,GAAG,EAAC,MAAM;cAAC,KAAK,EAAE,IAAI,CAACqE,KAAK,CAAC8N,WAAY;cAAC,SAAS,EAAE,IAAI,CAAC5J,KAAK,CAACnI,OAAO,CAAC9F;YAAuB,EAAG,CAAC;UACpI;QACJ,CAAC,MACD,IAAIoG,GAAG,CAACme,SAAS,IAAI,IAAI,CAACra,MAAM,CAAC9D,GAAG,CAACme,SAAS,CAAC,IAAI,IAAI,CAACra,MAAM,CAAC9D,GAAG,CAACme,SAAS,CAAC,CAACha,GAAG,KAAK,IAAI,EAAE;UACxF,IAAI,CAAC6Z,QAAQ,EAAE;YACX,IAAI,IAAI,CAACla,MAAM,CAAC9D,GAAG,CAACme,SAAS,CAAC,CAACha,GAAG,EAAE;cAChCqZ,UAAU,GAAG,IAAI,CAAC3V,KAAK,CAACgW,SAAS,KAAK,MAAM,GAAGvuB,4BAA4B,GAAGC,6BAA6B;cAC3GuuB,KAAK,CAACxe,IAAI,eAAC,gCAAC,mBAAgB;gBAAC,GAAG,EAAC,MAAM;gBAAC,KAAK,EAAE,IAAI,CAACqE,KAAK,CAAC8N,WAAY;gBAAC,SAAS,EAAE,IAAI,CAAC5J,KAAK,CAACnI,OAAO,CAAC9F;cAAuB,EAAG,CAAC;YACpI,CAAC,MAAM;cACH4jB,UAAU,GAAG,IAAI,CAAC3V,KAAK,CAACgW,SAAS,KAAK,MAAM,GAAGzuB,yBAAyB,GAAGC,0BAA0B;cACrGyuB,KAAK,CAACxe,IAAI,eAAC,gCAAC,gBAAc;gBAAC,GAAG,EAAC,MAAM;gBAAC,KAAK,EAAE,IAAI,CAACqE,KAAK,CAAC8N,WAAY;gBAAC,SAAS,EAAE,IAAI,CAAC5J,KAAK,CAACnI,OAAO,CAAC/F;cAAoB,EAAG,CAAC;YAC/H;UACJ,CAAC,MAAM,IAAI,IAAI,CAACmK,MAAM,CAAC9D,GAAG,CAACme,SAAS,CAAC,CAACha,GAAG,EAAE;YACvC2Z,KAAK,CAACxe,IAAI,eAAC,gCAAC,mBAAgB;cAAC,GAAG,EAAC,MAAM;cAAC,KAAK,EAAE,IAAI,CAACqE,KAAK,CAAC8N,WAAY;cAAC,SAAS,EAAE,IAAI,CAAC5J,KAAK,CAACnI,OAAO,CAAC9F;YAAuB,EAAG,CAAC;UACpI,CAAC,MAAM;YACHkkB,KAAK,CAACxe,IAAI,eAAC,gCAAC,gBAAc;cAAC,GAAG,EAAC,MAAM;cAAC,KAAK,EAAE,IAAI,CAACqE,KAAK,CAAC8N,WAAY;cAAC,SAAS,EAAE,IAAI,CAAC5J,KAAK,CAACnI,OAAO,CAAC/F;YAAoB,EAAG,CAAC;UAC/H;QACJ;MACJ;MAEA,IAAM0L,CAAC,GAAG6X,sBAAsB,GAAG/pB,iBAAK,CAACiS,YAAY,CAAC,yBAAI,CAACtB,MAAM,CAACvH,EAAE,CAAC,qDAAf,iBAAiB8I,CAAC,KAAI,CAAC,CAAC,CAACjD,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI;MAEhG,oBAAO,gCAAC,gBAAI;QACR,SAAS;QACT,SAAS,EAAC,KAAK;QACf,IAAI,EAAC,QAAQ;QACb,SAAS,EAAEjP,iBAAK,CAAC0M,IAAI,CACjBH,OAAO,CAAChN,QAAQ,EAChB,IAAI,CAACgR,KAAK,CAAC2M,YAAY,IAAI3Q,OAAO,CAACnM,aAAa,EAChD,CAAC,IAAI,CAACsU,KAAK,CAACuW,WAAW,IAAI1e,OAAO,CAAChM,kBAAkB,EACrD2pB,KAAK,IAAI3d,OAAO,CAAC/L,aAAa,EAC9BypB,cAAc,IAAI1d,OAAO,CAAC9L,sBAAsB,EAChD,CAACyJ,IAAI,CAACa,IAAI,CAACU,OAAO,IAAIc,OAAO,CAAClI,WAAW,EACzC6F,IAAI,CAACa,IAAI,CAACiB,gBAAgB,IAAI,CAAC9B,IAAI,CAACa,IAAI,CAACU,OAAO,IAAI,CAACvB,IAAI,CAACa,IAAI,CAACW,kBAAkB,IAAIa,OAAO,CAACjI,iBAAiB,EAC9G,IAAI,CAACiM,KAAK,CAACgH,QAAQ,CAAC3N,QAAQ,CAACR,EAAE,CAAC,IAAImD,OAAO,CAAC5H,YAAY,EACxD,IAAI,CAAC4L,KAAK,CAACiH,iBAAiB,KAAKpO,EAAE,IAAImD,OAAO,CAAC5H,YAAY,CAC7D;QACF,GAAG,EAAEyE,EAAG;QACR,EAAE,EAAEA,EAAG;QACP,OAAO,EAAE;UAAA,OAAM,OAAI,CAAC6X,QAAQ,CAAC7X,EAAE,CAAC;QAAA,CAAC;QACjC,aAAa,EAAE,yBAAM;UACjB,IAAI,CAACc,IAAI,CAACyB,QAAQ,EAAE;YAChB,OAAI,CAACsV,QAAQ,CAAC7X,EAAE,EAAE,IAAI,CAAC;UAC3B,CAAC,MAAM;YACH,OAAI,CAACogB,cAAc,CAACpgB,EAAE,CAAC;UAC3B;QACJ;MAAE,gBAEF,gCAAC,gBAAI;QACD,SAAS;QACT,IAAI,EAAC,QAAQ;QACb,SAAS,EAAC,KAAK;QACf,SAAS,EAAEmD,OAAO,CAAC5L,MAAO;QAC1B,KAAK,EAAE;UAAEvD,KAAK,EAAE,IAAI,CAAC6b,iBAAiB,CAAC7P,EAAE;UAAE1K,WAAW,EAAXA;QAAY;MAAE,gBAEzD,gCAAC,gBAAI;QACD,IAAI;QACJ,SAAS;QACT,UAAU,EAAC,QAAQ;QACnB,KAAK,EAAE;UACH;UACA;QAAA;MACF,GAEDirB,QAAQ,EACRL,UAAU,CACR,eACP,gCAAC,gBAAI;QACD,IAAI;QACJ,KAAK,EAAE;UAAElqB,KAAK,EAAEirB;QAAW,CAAE;QAC7B,SAAS,EAAErqB,iBAAK,CAAC0M,IAAI,CAACH,OAAO,CAACzL,UAAU,EAAEwpB,gBAAgB,IAAI/d,OAAO,CAACrF,kBAAkB;MAAE,gBAE1F,gCAAC,mBAAO;QAAC,KAAK,EAAEoF,iBAAiB,CAACpC,IAAI,CAACa,IAAI,EAAE,IAAI,CAAC2J,KAAK,CAACnI,OAAO,EAAE,IAAI,CAACmI,KAAK,CAAC3L,IAAI;MAAE,gBAAC,6CAAMmB,IAAI,CAACa,IAAI,CAACjC,IAAI,CAAO,CAAU,EACvHohB,KAAK,EACLS,KAAK,CACH,eACP;QAAK,SAAS,EAAE3qB,iBAAK,CAAC0M,IAAI,CAACH,OAAO,CAACrH,IAAI,EAAEolB,gBAAgB,IAAI/d,OAAO,CAACpF,sBAAsB;MAAE,EAAG,eAChG,gCAAC,gBAAI;QACD,IAAI;QACJ,SAAS;QACT,UAAU,EAAC;MAAQ,GAElBsiB,QAAQ,CACN,eACP,0DACI,gCAAC,oBAAQ;QAAC,SAAS,EAAEzpB,iBAAK,CAAC0M,IAAI,CAACH,OAAO,CAACjL,cAAc,EAAE,YAAY,CAAE;QAAC,OAAO,EAAE,iBAAAyU,CAAC;UAAA,OAAI,OAAI,CAACuR,MAAM,CAACvR,CAAC,EAAE3M,EAAE,CAAC;QAAA;MAAC,EAAG,CACzG,CACH,EAEN,IAAI,CAAC6P,iBAAiB,CAACnQ,IAAI,gBAAG;QAAK,SAAS,EAAEyD,OAAO,CAAC9K,QAAS;QAAC,KAAK,EAAE;UAAErE,KAAK,EAAE,IAAI,CAAC6b,iBAAiB,CAACnQ;QAAK;MAAE,GAC1G,eAACoB,IAAI,CAACa,IAAI,+CAAT,WAAW2D,KAAK,KAAK,EAAE,EACxB,eAAAxE,IAAI,CAACa,IAAI,wCAAT,YAAW2D,KAAK,gBAAG;QAAK,KAAK,EAAE;UAAEtP,KAAK,EAAEirB;QAAW;MAAE,gBAClD,gCAAC,oBAAQ;QAAC,SAAS,EAAErqB,iBAAK,CAAC0M,IAAI,CAACH,OAAO,CAACjL,cAAc,EAAE,YAAY,CAAE;QAAC,OAAO,EAAE,iBAAAyU,CAAC;UAAA,OAAI,OAAI,CAACuR,MAAM,CAACvR,CAAC,EAAE7L,IAAI,CAACa,IAAI,CAAC2D,KAAK,CAAC;QAAA;MAAC,EAAG,CACtH,GAAG,IAAI,CACX,GAAG,IAAI,EAEZ,CAAC,IAAI,CAAC6B,KAAK,CAAC2L,UAAU,gBACnB,kEACK,IAAI,CAACjD,iBAAiB,CAAClP,IAAI,gBAAG;QAAK,SAAS,EAAEwC,OAAO,CAACxK,QAAS;QAAC,KAAK,EAAE;UAAE3E,KAAK,EAAE,IAAI,CAAC6b,iBAAiB,CAAClP;QAAK;MAAE,GAC1G2f,OAAO,UAEPpiB,GAAG,IAAIA,GAAG,CAACyC,IAAI,CACd,GAAG,IAAI,EACZ,IAAI,CAACkP,iBAAiB,CAACtO,IAAI,gBAAG;QAAK,SAAS,EAAE4B,OAAO,CAACvK,QAAS;QAAC,KAAK,EAAE;UAAE5E,KAAK,EAAE,IAAI,CAAC6b,iBAAiB,CAACtO,IAAI;UAAEpN,MAAM,EAAE,IAAI,CAACgT,KAAK,CAACkH,MAAM,CAACrM,UAAU,IAAI0e,YAAY,IAAI,IAAI,CAACpV,KAAK,CAAC2T,qBAAqB,GAAG,MAAM,GAAG;QAAU,CAAE;QAAC,OAAO,EAAE,IAAI,CAAC9X,KAAK,CAACkH,MAAM,CAACrM,UAAU,IAAI0e,YAAY,IAAI,IAAI,CAACpV,KAAK,CAAC2T,qBAAqB,GAAG;UAAA,OAAM,OAAI,CAAC5S,QAAQ,CAAC;YAAEkH,UAAU,EAAEzS,IAAI,CAACa,IAAI,CAAC3B;UAAG,CAAC,CAAC;QAAA,IAAGZ;MAAU,GAAEiB,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEkB,IAAI,CAAO,GAAG,IAAI,EACpZ,IAAI,CAACsO,iBAAiB,CAACrO,IAAI,gBAAG;QAAK,SAAS,YAAK2B,OAAO,CAACtK,QAAQ,cAAIiI,IAAI,CAACa,IAAI,CAAC+E,GAAG,GAAGvD,OAAO,CAACrK,cAAc,GAAG,EAAE,CAAG;QAAC,KAAK,EAAE;UAAE9E,KAAK,EAAE,IAAI,CAAC6b,iBAAiB,CAACrO,IAAI;UAAErN,MAAM,EAAEusB,YAAY,GAAG,MAAM,GAAG;QAAU,CAAE;QAAC,OAAO,EAAEA,YAAY,GAAG,YAAM;UAAE,IAAMlc,KAAK,GAAGqC,uBAAuB,CAAC,OAAI,CAAC3C,IAAI,EAAEpD,IAAI,CAACa,IAAI,CAAC3B,EAAE,EAAE,WAAW,CAAC;UAAE,OAAI,CAACqM,QAAQ,CAAC;YAAEwS,eAAe,EAAEra,KAAK;YAAErI,UAAU,EAAE;cAAE2E,IAAI,EAAJA,IAAI;cAAEH,IAAI,EAAE,MAAM;cAAEme,aAAa,EAAEtgB,IAAI,CAAC2N,KAAK,CAAC3N,IAAI,CAACC,SAAS,CAAC+F,KAAK,CAAC;YAAE;UAAE,CAAC,CAAC;QAAE,CAAC,GAAGpF;MAAU,GAAE0B,IAAI,CAACa,IAAI,CAAC8E,KAAK,CAAO,GAAG,IAAI,EACze,IAAI,CAACoJ,iBAAiB,CAACnO,IAAI,gBAAG;QAAK,SAAS,YAAKyB,OAAO,CAACpK,QAAQ,cAAI+H,IAAI,CAACa,IAAI,CAACsF,GAAG,GAAG9D,OAAO,CAACrK,cAAc,GAAG,EAAE,CAAG;QAAC,KAAK,EAAE;UAAE9E,KAAK,EAAE,IAAI,CAAC6b,iBAAiB,CAACnO,IAAI;UAAEvN,MAAM,EAAEusB,YAAY,GAAG,MAAM,GAAG;QAAU,CAAE;QAAC,OAAO,EAAEA,YAAY,GAAG,YAAM;UAAE,IAAMlc,KAAK,GAAGqC,uBAAuB,CAAC,OAAI,CAAC3C,IAAI,EAAEpD,IAAI,CAACa,IAAI,CAAC3B,EAAE,EAAE,WAAW,CAAC;UAAE,OAAI,CAACqM,QAAQ,CAAC;YAAEwS,eAAe,EAAEra,KAAK;YAAErI,UAAU,EAAE;cAAE2E,IAAI,EAAJA,IAAI;cAAEH,IAAI,EAAE,MAAM;cAAEme,aAAa,EAAEtgB,IAAI,CAAC2N,KAAK,CAAC3N,IAAI,CAACC,SAAS,CAAC+F,KAAK,CAAC;YAAE;UAAE,CAAC,CAAC;QAAE,CAAC,GAAGpF;MAAU,GAAE0B,IAAI,CAACa,IAAI,CAACoF,KAAK,CAAO,GAAG,IAAI,CAC3e,gBAEH,kEACK,IAAI,CAAC8I,iBAAiB,CAAC9E,WAAW,gBAAG;QAAK,SAAS,EAAE5H,OAAO,CAACvK,QAAS;QAAC,KAAK,EAAE;UAAE5E,KAAK,EAAE,IAAI,CAAC6b,iBAAiB,CAAC9E;QAAY,CAAE;QAAC,KAAK,EAAE6V,aAAa,CAAC/a,IAAI,CAAC,IAAI;MAAE,GAAE8a,sBAAsB,wBAAI,IAAI,CAACpZ,MAAM,CAACvH,EAAE,CAAC,6CAAf,iBAAiByI,IAAI,GAAG5O,QAAQ,GAAG,IAAI,CAAO,GAAG,IAAI,EAC9O,IAAI,CAACgW,iBAAiB,CAAC7E,WAAW,gBAAG;QAAK,SAAS,EAAE7H,OAAO,CAACvK,QAAS;QAAC,KAAK,EAAE;UAAE5E,KAAK,EAAE,IAAI,CAAC6b,iBAAiB,CAAC7E;QAAY,CAAE;QAAC,KAAK,EAAElC,CAAC,IAAI;MAAG,GAAEA,CAAC,CAAO,GAAG,IAAI,EAC7J,IAAI,CAAC+G,iBAAiB,CAAC5E,SAAS,gBAAK;QAAK,SAAS,EAAE9H,OAAO,CAACvK,QAAS;QAAC,KAAK,EAAE;UAAE5E,KAAK,EAAE,IAAI,CAAC6b,iBAAiB,CAAC5E;QAAW;MAAE,GAAE0V,sBAAsB,wBAAI,IAAI,CAACpZ,MAAM,CAACvH,EAAE,CAAC,6CAAf,iBAAiBsI,EAAE,GAAG1R,iBAAK,CAAC2R,UAAU,CAAC,IAAIT,IAAI,CAAC,IAAI,CAACP,MAAM,CAACvH,EAAE,CAAC,CAACsI,EAAE,CAAC,EAAE,IAAI,CAACgD,KAAK,CAACjE,UAAU,CAAC,GAAG,IAAI,CAAO,GAAG,IAAI,EACvQ,IAAI,CAACwI,iBAAiB,CAAC3E,UAAU,gBAAI;QAAK,SAAS,EAAE/H,OAAO,CAACvK,QAAS;QAAC,KAAK,EAAE;UAAE5E,KAAK,EAAE,IAAI,CAAC6b,iBAAiB,CAAC3E;QAAW;MAAE,GAAEyV,sBAAsB,wBAAI,IAAI,CAACpZ,MAAM,CAACvH,EAAE,CAAC,6CAAf,iBAAiBwI,EAAE,GAAG5R,iBAAK,CAAC2R,UAAU,CAAC,IAAIT,IAAI,CAAC,IAAI,CAACP,MAAM,CAACvH,EAAE,CAAC,CAACwI,EAAE,CAAC,EAAE,IAAI,CAAC8C,KAAK,CAACjE,UAAU,CAAC,GAAG,IAAI,CAAO,GAAG,IAAI,CACzQ,EACN,IAAI,CAACya,cAAc,CAAC/S,GAAG,CAAC,UAAAwQ,EAAE;QAAA,oBAAI;UAAK,SAAS,EAAEpc,OAAO,CAAC/J,WAAY;UAAC,KAAK,EAAE;YAAEpF,KAAK,EAAE,OAAI,CAAC6b,iBAAiB,CAAC0P,EAAE,CAACvf,EAAE;UAAE,CAAE;UAAC,GAAG,EAAEuf,EAAE,CAACvf,EAAG;UAAC,KAAK,YAAKuf,EAAE,CAAChW,OAAO,iBAAOgW,EAAE,CAACO,QAAQ;QAAG,GAAE,OAAI,CAACiC,iBAAiB,CAAC7jB,GAAG,EAAEqhB,EAAE,EAAEze,IAAI,CAAC,CAAO;MAAA,EAAC,EACxN,IAAI,CAAC+O,iBAAiB,CAACjI,GAAG,gBAAG;QAC1B,SAAS,EAAEzE,OAAO,CAACnK,SAAU;QAC7B,KAAK,EAAE;UAAEhF,KAAK,EAAE,IAAI,CAAC6b,iBAAiB,CAACjI,GAAG;UAAEzT,MAAM,EAAEqsB,aAAa,GAAI,CAAAngB,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEM,IAAI,MAAK,MAAM,GAAG,SAAS,GAAIG,IAAI,CAACa,IAAI,CAAC6D,MAAM,GAAG,MAAM,GAAG,MAAO,GAAI;QAAU,CAAE;QAC/J,OAAO,EAAEgb,aAAa,GAAG,YAAM;UAC3B,IAAI,CAACtiB,GAAG,IAAI,CAAC,OAAI,CAACqJ,MAAM,EAAE;YACtB;UAAA,CACH,MACD,IAAI,CAAAlH,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEM,IAAI,MAAK,MAAM,EAAE;YACzB,OAAI,CAAC0L,QAAQ,CAAC;cAAEiH,cAAc,EAAEtT;YAAG,CAAC,CAAC;UACzC,CAAC;YACD;YACA,IAAI,CAAC,OAAI,CAACmH,KAAK,CAACkH,MAAM,CAACrM,UAAU,IAAIlB,IAAI,CAACa,IAAI,CAAC6D,MAAM,EAAE;cACnD,OAAI,CAAC8F,KAAK,CAACwB,MAAM,CAACT,QAAQ,CAACrM,EAAE,EAAE,IAAI,CAAC,SAC1B,CAAC,UAAA2M,CAAC;gBAAA,OAAIU,MAAM,CAACC,KAAK,gCAAwBtN,EAAE,iBAAM2M,CAAC,EAAG;cAAA,EAAC;YACrE,CAAC,MAAM;cACH,OAAI,CAACoH,IAAI,GAAG;gBACRnM,GAAG,EAAE,OAAI,CAACL,MAAM,CAACvH,EAAE,CAAC,GAAG,OAAI,CAACuH,MAAM,CAACvH,EAAE,CAAC,CAAC4H,GAAG,GAAG,EAAE;gBAC/CkB,CAAC,EAAI,OAAI,CAACvB,MAAM,CAACvH,EAAE,CAAC,GAAG,OAAI,CAACuH,MAAM,CAACvH,EAAE,CAAC,CAAC8I,CAAC,IAAI,CAAC,GAAG,CAAC;gBACjDT,GAAG,EAAE,KAAK;gBACVrI,EAAE,EAAFA;cACJ,CAAC;cACD,OAAI,CAACqM,QAAQ,CAAC;gBAAE2V,YAAY,EAAE;cAAK,CAAC,CAAC;YACzC;QACJ,CAAC,GAAG5iB;MAAU,GAEb,IAAI,CAAC6iB,iBAAiB,CAACjiB,EAAE,EAAEc,IAAI,EAAEqC,OAAO,CAAC,CACxC,GAAG,IAAI,EACZ,IAAI,CAAC0M,iBAAiB,CAAChF,OAAO,gBAAG;QAAK,SAAS,EAAE1H,OAAO,CAAChJ,WAAY;QAAC,KAAK,EAAE;UAAEnG,KAAK,EAAE,IAAI,CAAC6b,iBAAiB,CAAChF;QAAQ;MAAE,GAAE,IAAI,CAACqX,mBAAmB,CAACliB,EAAE,EAAEc,IAAI,EAAEqC,OAAO,CAAC,CAAO,GAAG,IAAI,CAChL;IACX;;IAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EAPI;IAAA;IAAA,OAQA,oBAAWc,IAAI,EAAEgc,UAAU,EAAE9c,OAAO,EAAElC,OAAO,EAAE;MAAA;MAC3C,IAAMkhB,KAAK,GAAG,EAAE;MAChBlhB,OAAO,GAAGA,OAAO,IAAI;QAAE0B,KAAK,EAAE;MAAE,CAAC;MACjC,IAAIyf,IAAI,GAAG,IAAI,CAACC,UAAU,CAACpe,IAAI,EAAEgc,UAAU,EAAE9c,OAAO,EAAElC,OAAO,CAAC;MAC9D,IAAMqhB,WAAW,GAAG,IAAI,CAAChX,KAAK,CAACgX,WAAW;MAC1C,IAAI,IAAI,CAAChX,KAAK,CAACuW,WAAW,EAAE;QACxB,IAAI5d,IAAI,CAACtC,IAAI,CAACe,aAAa,EAAE;UACzB0f,IAAI,gBAAG,gCAAC,WAAW;YAAC,GAAG,EAAEne,IAAI,CAACtC,IAAI,CAAC3B,EAAG;YAAC,IAAI,EAAEiE,IAAK;YAAC,SAAS,EAAEd,OAAO,CAACnG;UAAU,GAAEolB,IAAI,CAAe;QACzG,CAAC,MAAM;UACH;UACAA,IAAI,gBAAG;YAAK,GAAG,EAAEne,IAAI,CAACtC,IAAI,CAAC3B,EAAG;YAAC,SAAS,EAAEmD,OAAO,CAAClG;UAAa,GAAEmlB,IAAI,CAAO;QAChF;MACJ;MACAne,IAAI,CAACtC,IAAI,CAAC3B,EAAE,IAAImiB,KAAK,CAACpf,IAAI,CAACqf,IAAI,CAAC;MAEhCnC,UAAU,GAAGA,UAAU,KAAK7gB,SAAS,GAAGL,YAAY,CAAC,IAAI,CAACoI,KAAK,CAACsK,QAAQ,EAAExN,IAAI,CAACtC,IAAI,CAAC3B,EAAE,CAAC,GAAGigB,UAAU;MACpG,IAAI,CAAChc,IAAI,CAACtC,IAAI,CAAC3B,EAAE,IAAIigB,UAAU,EAAE;QAC7B,IAAI,CAAC,IAAI,CAAC9Y,KAAK,CAAC0L,YAAY,EAAE;UAC1B5O,IAAI,CAAC1B,QAAQ,IAAI4f,KAAK,CAACpf,IAAI,CAACkB,IAAI,CAAC1B,QAAQ,CAACwM,GAAG,CAAC,UAAAjO,IAAI,EAAI;YAClD;YACA,IAAI,CAAC,OAAI,CAACqG,KAAK,CAACqM,mBAAmB,IAAIvS,OAAO,CAAC0B,KAAK,GAAG,EAAE,EAAE;cACvD,IAAI7B,IAAI,CAACa,IAAI,CAACe,aAAa,EAAE;gBACzB,OAAO,OAAI,CAAC6f,UAAU,CAACzhB,IAAI,EAAE1B,SAAS,EAAE+D,OAAO,EAAElC,OAAO,CAAC;cAC7D;YACJ;YACA,OAAO,IAAI;UACf,CAAC,CAAC,CAAC;QACP,CAAC,MAAM;UACH;UACAgD,IAAI,CAAC1B,QAAQ,IAAI4f,KAAK,CAACpf,IAAI,CAACkB,IAAI,CAAC1B,QAAQ,CAACwM,GAAG,CAAC,UAAAjO,IAAI,EAAI;YAClD,IAAIA,IAAI,CAACyB,QAAQ,EAAE;cACf;cACA,IAAI,CAAC,OAAI,CAAC4E,KAAK,CAACqM,mBAAmB,IAAIvS,OAAO,CAAC0B,KAAK,GAAG,EAAE,EAAE;gBACvD,IAAI7B,IAAI,CAACa,IAAI,CAACe,aAAa,EAAE;kBACzB,OAAO,OAAI,CAAC6f,UAAU,CAACzhB,IAAI,EAAE1B,SAAS,EAAE+D,OAAO,EAAElC,OAAO,CAAC;gBAC7D;cACJ;YACJ;YAEA,OAAO,IAAI;UACf,CAAC,CAAC,CAAC;UACH;UACAgD,IAAI,CAAC1B,QAAQ,IAAI4f,KAAK,CAACpf,IAAI,CAACkB,IAAI,CAAC1B,QAAQ,CAACwM,GAAG,CAAC,UAAAjO,IAAI,EAAI;YAClD,IAAI,CAACA,IAAI,CAACyB,QAAQ,EAAE;cAChB;cACA,IAAI,CAAC,OAAI,CAAC4E,KAAK,CAACqM,mBAAmB,IAAIvS,OAAO,CAAC0B,KAAK,GAAG,EAAE,EAAE;gBACvD,IAAI7B,IAAI,CAACa,IAAI,CAACe,aAAa,EAAE;kBACzB,OAAO,OAAI,CAAC6f,UAAU,CAACzhB,IAAI,EAAE1B,SAAS,EAAE+D,OAAO,EAAElC,OAAO,CAAC;gBAC7D;cACJ;YACJ;YACA,OAAO,IAAI;UACf,CAAC,CAAC,CAAC;QACP;MACJ;MAEA,OAAOkhB,KAAK;IAChB;;IAEA;AACJ;AACA;AACA;AACA;AACA;AACA;EANI;IAAA;IAAA,OAOA,oCAA2B1O,WAAW,EAAEtB,OAAO,EAAEjG,eAAe,EAAE0G,aAAa,EAAE;MAAA;MAC7EA,aAAa,GAAKA,aAAa,IAAM,IAAI,CAACzL,KAAK,CAACyL,aAAa;MAC7D1G,eAAe,GAAGA,eAAe,IAAI,IAAI,CAAC/E,KAAK,CAAC+E,eAAe;MAC/DiG,OAAO,GAAWA,OAAO,IAAY,IAAI,CAAChL,KAAK,CAACgL,OAAO,IAAI,EAAE;MAC7DsB,WAAW,GAAO,OAAOA,WAAW,KAAK,SAAS,GAAG,IAAI,CAACtM,KAAK,CAACsM,WAAW,GAAGA,WAAW;MAEzFb,aAAa,GAAGpU,IAAI,CAAC2N,KAAK,CAAC3N,IAAI,CAACC,SAAS,CAACmU,aAAa,CAAC,CAAC;MACzD9Q,MAAM,CAACC,IAAI,CAAC6Q,aAAa,CAAC,CAACpQ,OAAO,CAAC,UAAA9C,IAAI,EAAI;QACvC,IAAIkT,aAAa,CAAClT,IAAI,CAAC,EAAE;UACrBkT,aAAa,CAAClT,IAAI,CAAC,GAAG1E,QAAQ,CAAC4X,aAAa,CAAClT,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC;QAChE;MACJ,CAAC,CAAC;MAEF,IAAI,CAACoiB,cAAc,GAAG,EAAE;MACxB,IAAMU,MAAM,GAAGlY,aAAa,CAAC,IAAI,CAACgB,KAAK,CAACtX,KAAK,CAAC,CAAC0W,MAAM;MAErD,IAAI+I,WAAW,EAAE;QACb,IAAI,CAAC5D,iBAAiB,GAAG;UACrB7P,EAAE,EAAWsK,aAAa,CAAC,IAAI,CAACgB,KAAK,CAACtX,KAAK,CAAC,CAACwW,OAAO;UACpD9K,IAAI,EAAS,IAAI,CAACwS,WAAW,CAAC1R,QAAQ,CAAC,MAAM,CAAC,GAAUgiB,MAAM,CAAC9iB,IAAI,IAAY,CAAC,GAAG,CAAC;UACpF+iB,UAAU,EAAG,IAAI,CAACvQ,WAAW,CAAC1R,QAAQ,CAAC,MAAM,CAAC,GAAUgiB,MAAM,CAAC9iB,IAAI,IAAY,CAAC,GAAG,CAAC;UACpFiB,IAAI,EAAS,IAAI,CAACuR,WAAW,CAAC1R,QAAQ,CAAC,MAAM,CAAC,GAAUgiB,MAAM,CAAC7hB,IAAI,IAAY,CAAC,GAAG,CAAC;UACpFY,IAAI,EAAS,IAAI,CAAC2Q,WAAW,CAAC1R,QAAQ,CAAC,MAAM,CAAC,GAAUgiB,MAAM,CAACjhB,IAAI,IAAY,CAAC,GAAG,CAAC;UACpFC,IAAI,EAAS,IAAI,CAAC0Q,WAAW,CAAC1R,QAAQ,CAAC,MAAM,CAAC,GAAUgiB,MAAM,CAAChhB,IAAI,IAAY,CAAC,GAAG,CAAC;UACpFE,IAAI,EAAS,IAAI,CAACwQ,WAAW,CAAC1R,QAAQ,CAAC,MAAM,CAAC,GAAUgiB,MAAM,CAAC9gB,IAAI,IAAY,CAAC,GAAG,CAAC;UACpFqJ,WAAW,EAAE,IAAI,CAACmH,WAAW,CAAC1R,QAAQ,CAAC,aAAa,CAAC,GAAGgiB,MAAM,CAACzX,WAAW,IAAK,CAAC,GAAG,CAAC;UACpFC,WAAW,EAAE,IAAI,CAACkH,WAAW,CAAC1R,QAAQ,CAAC,aAAa,CAAC,GAAGgiB,MAAM,CAACxX,WAAW,IAAK,CAAC,GAAG,CAAC;UACpFC,SAAS,EAAI,IAAI,CAACiH,WAAW,CAAC1R,QAAQ,CAAC,WAAW,CAAC,GAAKgiB,MAAM,CAACvX,SAAS,IAAO,CAAC,GAAG,CAAC;UACpFC,UAAU,EAAG,IAAI,CAACgH,WAAW,CAAC1R,QAAQ,CAAC,YAAY,CAAC,GAAIgiB,MAAM,CAACtX,UAAU,IAAM,CAAC,GAAG,CAAC;UACpFtD,GAAG,EAAU,IAAI,CAACsK,WAAW,CAAC1R,QAAQ,CAAC,KAAK,CAAC,GAAWgiB,MAAM,CAAC5a,GAAG,IAAa,CAAC,GAAG,CAAC;UACpFiD,OAAO,EAAM,IAAI,CAACqH,WAAW,CAAC1R,QAAQ,CAAC,SAAS,CAAC,GAAOgiB,MAAM,CAAC3X,OAAO,IAAS,CAAC,GAAG;QACvF,CAAC;QAED,IAAI,IAAI,CAACgF,iBAAiB,CAACnQ,IAAI,IAAI,CAAC,IAAI,CAACqQ,WAAW,EAAE;UAClD,IAAI2S,QAAQ,GAAG,IAAI,CAAC7S,iBAAiB,CAAC7P,EAAE,CAAC,CAAC;UAC1C,IAAI,IAAI,CAACmH,KAAK,CAAC2L,UAAU,EAAE;YACvB4P,QAAQ,IAAI,IAAI,CAAC7S,iBAAiB,CAAC9E,WAAW;YAC9C2X,QAAQ,IAAI,IAAI,CAAC7S,iBAAiB,CAAC7E,WAAW;YAC9C0X,QAAQ,IAAI,IAAI,CAAC7S,iBAAiB,CAAC5E,SAAS;YAC5CyX,QAAQ,IAAI,IAAI,CAAC7S,iBAAiB,CAAC3E,UAAU;UACjD,CAAC,MAAM;YACHwX,QAAQ,IAAI,IAAI,CAAC7S,iBAAiB,CAAClP,IAAI;YACvC+hB,QAAQ,IAAI,IAAI,CAAC7S,iBAAiB,CAACtO,IAAI;YACvCmhB,QAAQ,IAAI,IAAI,CAAC7S,iBAAiB,CAACrO,IAAI;YACvCkhB,QAAQ,IAAI,IAAI,CAAC7S,iBAAiB,CAACnO,IAAI;UAC3C;UACAghB,QAAQ,IAAI,IAAI,CAAC7S,iBAAiB,CAACjI,GAAG;UACtC8a,QAAQ,IAAI,IAAI,CAAC7S,iBAAiB,CAAChF,OAAO;UAC1C,IAAI,CAACgF,iBAAiB,CAACnQ,IAAI,yBAAkBgjB,QAAQ,GAAG,CAAC,QAAK;UAC9D,IAAI,CAAC7S,iBAAiB,CAAC4S,UAAU,yBAAkBC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAACvb,KAAK,CAAC2I,cAAc,QAAK;QACpG,CAAC,MAAM,IAAI,CAAC,IAAI,CAACC,WAAW,EAAE;UAC1B;UACA,IAAI2S,SAAQ,GAAG,CAAC,CAAC,CAAC;UAClB,IAAI,IAAI,CAACvb,KAAK,CAAC2L,UAAU,EAAE;YACvB4P,SAAQ,IAAI,IAAI,CAAC7S,iBAAiB,CAAC9E,WAAW;YAC9C2X,SAAQ,IAAI,IAAI,CAAC7S,iBAAiB,CAAC7E,WAAW;YAC9C0X,SAAQ,IAAI,IAAI,CAAC7S,iBAAiB,CAAC5E,SAAS;YAC5CyX,SAAQ,IAAI,IAAI,CAAC7S,iBAAiB,CAAC3E,UAAU;UACjD,CAAC,MAAM;YACHwX,SAAQ,IAAI,IAAI,CAAC7S,iBAAiB,CAAClP,IAAI;YACvC+hB,SAAQ,IAAI,IAAI,CAAC7S,iBAAiB,CAACtO,IAAI;YACvCmhB,SAAQ,IAAI,IAAI,CAAC7S,iBAAiB,CAACrO,IAAI;YACvCkhB,SAAQ,IAAI,IAAI,CAAC7S,iBAAiB,CAACnO,IAAI;UAC3C;UACAghB,SAAQ,IAAI,IAAI,CAAC7S,iBAAiB,CAACjI,GAAG;UACtC8a,SAAQ,IAAI,IAAI,CAAC7S,iBAAiB,CAAChF,OAAO;UAC1C,IAAI,CAACgF,iBAAiB,CAAC7P,EAAE,yBAAkB0iB,SAAQ,GAAG,CAAC,QAAK;QAChE;MACJ,CAAC,MAAM;QACH,IAAI,CAAC7S,iBAAiB,GAAG;UACrB7P,EAAE,EAAI4S,aAAa,CAAC5S,EAAE,IAAIsK,aAAa,CAAC,IAAI,CAACgB,KAAK,CAACtX,KAAK,CAAC,CAACwW,OAAO;UACjE9K,IAAI,EAAEyS,OAAO,CAAC3R,QAAQ,CAAC,MAAM,CAAC,GAAGoS,aAAa,CAAClT,IAAI,IAAI8iB,MAAM,CAAC9iB,IAAI,IAAI4K,aAAa,CAAC,IAAI,CAACgB,KAAK,CAACtX,KAAK,CAAC,CAAC0W,MAAM,CAAChL,IAAI,IAAI,CAAC,GAAG,CAAC;UAC1HiB,IAAI,EAAEwR,OAAO,CAAC3R,QAAQ,CAAC,MAAM,CAAC,GAAGoS,aAAa,CAACjS,IAAI,IAAI6hB,MAAM,CAAC7hB,IAAI,IAAI2J,aAAa,CAAC,IAAI,CAACgB,KAAK,CAACtX,KAAK,CAAC,CAAC0W,MAAM,CAAC/J,IAAI,IAAI,CAAC,GAAG,CAAC;UAC1HY,IAAI,EAAE4Q,OAAO,CAAC3R,QAAQ,CAAC,MAAM,CAAC,GAAGoS,aAAa,CAACrR,IAAI,IAAIihB,MAAM,CAACjhB,IAAI,IAAI+I,aAAa,CAAC,IAAI,CAACgB,KAAK,CAACtX,KAAK,CAAC,CAAC0W,MAAM,CAACnJ,IAAI,IAAI,CAAC,GAAG,CAAC;UAC1HC,IAAI,EAAE2Q,OAAO,CAAC3R,QAAQ,CAAC,MAAM,CAAC,GAAGoS,aAAa,CAACpR,IAAI,IAAIghB,MAAM,CAAChhB,IAAI,IAAI8I,aAAa,CAAC,IAAI,CAACgB,KAAK,CAACtX,KAAK,CAAC,CAAC0W,MAAM,CAAClJ,IAAI,IAAI,CAAC,GAAG,CAAC;UAC1HE,IAAI,EAAEyQ,OAAO,CAAC3R,QAAQ,CAAC,MAAM,CAAC,GAAGoS,aAAa,CAAClR,IAAI,IAAI8gB,MAAM,CAAC9gB,IAAI,IAAI4I,aAAa,CAAC,IAAI,CAACgB,KAAK,CAACtX,KAAK,CAAC,CAAC0W,MAAM,CAAChJ,IAAI,IAAI,CAAC,GAAG;QAC7H,CAAC;QACD,IAAIghB,UAAQ,GAAG,IAAI,CAAC7S,iBAAiB,CAAC7P,EAAE,CAAC,CAAC;QAC1C,IAAI,IAAI,CAAC6P,iBAAiB,CAACnQ,IAAI,EAAE;UAC7BgjB,UAAQ,IAAI,IAAI,CAAC7S,iBAAiB,CAAClP,IAAI;UACvC+hB,UAAQ,IAAI,IAAI,CAAC7S,iBAAiB,CAACtO,IAAI;UACvCmhB,UAAQ,IAAI,IAAI,CAAC7S,iBAAiB,CAACrO,IAAI;UACvCkhB,UAAQ,IAAI,IAAI,CAAC7S,iBAAiB,CAACnO,IAAI;QAC3C;QAEA,IAAIwK,eAAe,IAAIiG,OAAO,EAAE;UAC5BrQ,MAAM,CAACC,IAAI,CAACmK,eAAe,CAAC,CAACxI,IAAI,EAAE,CAAClB,OAAO,CAAC,UAAA+G,OAAO;YAAA,OAC/C2C,eAAe,CAAC3C,OAAO,CAAC,CAAC/G,OAAO,CAAC,UAAAmgB,MAAM,EAAI;cACvC,IAAM3iB,EAAE,cAAOuJ,OAAO,cAAIoZ,MAAM,CAAClL,IAAI,CAAE;cACvC,OAAI,CAAC5H,iBAAiB,CAAC7P,EAAE,CAAC,GAAGmS,OAAO,CAAC3R,QAAQ,CAACR,EAAE,CAAC;cACjD,IAAImS,OAAO,CAAC3R,QAAQ,CAACR,EAAE,CAAC,EAAE;gBACtB,IAAMc,IAAI,GAAG;kBACTyI,OAAO,EAAPA,OAAO;kBACPvJ,EAAE,aAAYuJ,OAAO,cAAIoZ,MAAM,CAAClL,IAAI,CAAE;kBACtC/X,IAAI,EAAMijB,MAAM,CAACjjB,IAAI;kBACrB+X,IAAI,EAAMkL,MAAM,CAAClL,IAAI,CAAC7W,KAAK,CAAC,GAAG,CAAC;kBAChCkf,QAAQ,EAAE6C,MAAM,CAAClL;gBACrB,CAAC;gBACD,IAAIkL,MAAM,CAAC5O,IAAI,EAAE;kBACbjT,IAAI,CAACiT,IAAI,GAAG,IAAI;kBAChB,IAAI4O,MAAM,CAAChiB,IAAI,EAAE;oBACbG,IAAI,CAACH,IAAI,GAAGgiB,MAAM,CAAChiB,IAAI;kBAC3B;kBACA,IAAIgiB,MAAM,CAACzJ,QAAQ,EAAE;oBACjBpY,IAAI,CAACoY,QAAQ,GAAGyJ,MAAM,CAACzJ,QAAQ;kBACnC;gBACJ;gBAEA,OAAI,CAAC4I,cAAc,CAAC/e,IAAI,CAACjC,IAAI,CAAC;gBAC9B,OAAI,CAAC+O,iBAAiB,CAAC7P,EAAE,CAAC,GAAG4S,aAAa,CAAC9R,IAAI,CAACd,EAAE,CAAC,IAAI2iB,MAAM,CAAC3uB,KAAK,IAAIsW,aAAa,CAAC,OAAI,CAACgB,KAAK,CAACtX,KAAK,CAAC,CAAC0W,MAAM,CAAChJ,IAAI,IAAI4I,aAAa,CAACa,EAAE,CAACT,MAAM,CAAChJ,IAAI;gBAClJghB,UAAQ,IAAI,OAAI,CAAC7S,iBAAiB,CAAC7P,EAAE,CAAC;cAC1C,CAAC,MAAM;gBACH,OAAI,CAAC6P,iBAAiB,CAAC7P,EAAE,CAAC,GAAG,CAAC;cAClC;YACJ,CAAC,CAAC;UAAA,EAAC;QACX;QACA,IAAI,CAAC8hB,cAAc,CAACpe,IAAI,CAAC,UAACC,CAAC,EAAEC,CAAC;UAAA,OAAMD,CAAC,CAAC3D,EAAE,GAAG4D,CAAC,CAAC5D,EAAE,GAAG,CAAC,CAAC,GAAI2D,CAAC,CAAC3D,EAAE,GAAG4D,CAAC,CAAC5D,EAAE,GAAG,CAAC,GAAG,CAAE;QAAA,CAAC,CAAC;QAC9E,IAAI,CAAC6P,iBAAiB,CAACjI,GAAG,GAAGuK,OAAO,CAAC3R,QAAQ,CAAC,KAAK,CAAC,GAAGoS,aAAa,CAAChL,GAAG,IAAI4a,MAAM,CAAC5a,GAAG,IAAI0C,aAAa,CAACa,EAAE,CAACT,MAAM,CAAC9C,GAAG,GAAG,CAAC;;QAEzH;QACA,IAAI,CAAC,IAAI,CAAC0D,KAAK,CAAC6G,OAAO,IAAI,IAAI,CAAC7G,KAAK,CAAC6G,OAAO,CAAC3R,QAAQ,CAAC,SAAS,CAAC,EAAE;UAC/D,IAAI,CAACqP,iBAAiB,CAAChF,OAAO,GAAGsH,OAAO,CAAC3R,QAAQ,CAAC,SAAS,CAAC,GAAGoS,aAAa,CAAC/H,OAAO,IAAI2X,MAAM,CAAC3X,OAAO,IAAIP,aAAa,CAACa,EAAE,CAACT,MAAM,CAACG,OAAO,GAAG,CAAC;UAC7I6X,UAAQ,IAAI,IAAI,CAAC7S,iBAAiB,CAAChF,OAAO;QAC9C;QAEA,IAAI,IAAI,CAACgF,iBAAiB,CAACnQ,IAAI,IAAI,CAACkT,aAAa,CAAClT,IAAI,EAAE;UACpDgjB,UAAQ,IAAI,IAAI,CAAC7S,iBAAiB,CAACjI,GAAG;UACtC,IAAI,CAACiI,iBAAiB,CAACnQ,IAAI,yBAAkBgjB,UAAQ,QAAK;UAC1D,IAAI,CAAC7S,iBAAiB,CAAC4S,UAAU,yBAAkBC,UAAQ,GAAG,CAAC,GAAG,IAAI,CAACvb,KAAK,CAAC2I,cAAc,QAAK;QACpG,CAAC,MAAM;UACH,IAAM8S,QAAQ,GAAG9gB,MAAM,CAACC,IAAI,CAAC,IAAI,CAAC8N,iBAAiB,CAAC,CAACgT,MAAM,CACvD,UAACC,WAAW,EAAEpjB,IAAI,EAAK;YACnB,IAAIA,IAAI,KAAK,IAAI,IAAI,OAAO,OAAI,CAACmQ,iBAAiB,CAACnQ,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,OAAI,CAACmQ,iBAAiB,CAACnQ,IAAI,CAAC,EAAE;cACpG,OAAOojB,WAAW;YACtB;YACA,OAAQA,WAAW,GAAG,OAAI,CAACjT,iBAAiB,CAACnQ,IAAI,CAAC;UACtD,CAAC,EACD,CAAC,CACJ;UACD,IAAI,CAACmQ,iBAAiB,CAAC7P,EAAE,yBAAkB4iB,QAAQ,QAAK;QAC5D;MACJ;IACJ;EAAC;IAAA;IAAA;IA6GD;AACJ;AACA;AACA;IACI,wBAAe;MAAA;MACX,IAAMzf,OAAO,GAAG,IAAI,CAACmI,KAAK,CAACnI,OAAO;MAElC,IAAI4f,kBAAkB,GAAG,IAAI;MAC7B,IAAI,CAAC,IAAI,CAAClT,iBAAiB,CAAChF,OAAO,IAAI,CAAC,IAAI,CAACmY,aAAa,EAAE,EAAE;QAC1DD,kBAAkB,gBAAG,gCAAC,sBAAU;UAC5B,OAAO,EAAE;YAAA,OAAM,OAAI,CAACE,WAAW,EAAE;UAAA,CAAC;UAClC,SAAS,EAAE9f,OAAO,CAACzN,iBAAkB;UACrC,KAAK,EAAE,IAAI,CAAC4V,KAAK,CAACnD,CAAC,CAAC,iBAAiB,CAAE;UACvC,IAAI,EAAC;QAAO,gBAEZ,gCAAC,2BAAe,OAAG,eACnB,gCAAC,iBAAS;UAAC,SAAS,EAAEhF,OAAO,CAACvN;QAAsB,EAAG,CAC9C;MACjB;MAEA,oBAAO;QAAK,SAAS,EAAEuN,OAAO,CAAC9N;MAAU,gBACrC;QAAK,SAAS,EAAE8N,OAAO,CAAC1H,UAAW;QAAC,KAAK,EAAE;UAAEzH,KAAK,EAAE,IAAI,CAAC6b,iBAAiB,CAAC7P,EAAE;UAAErK,QAAQ,EAAE;QAAW,CAAE;QAAC,YAAU,GAAI;QAAC,aAAU;MAAI,GAC/H,IAAI,CAACutB,cAAc,CAAC,IAAI,CAAC,eAC1B;QAAK,SAAS,YAAK,IAAI,CAAC5X,KAAK,CAACnI,OAAO,CAAC5F,YAAY,cAAI,IAAI,CAAC+N,KAAK,CAACnI,OAAO,CAAC3F,iBAAiB,CAAG;QAAC,WAAW,EAAE,IAAI,CAAC2lB,gBAAiB;QAAC,aAAa,EAAE,IAAI,CAACC,YAAa;QAAC,KAAK,EAAE,IAAI,CAAC9X,KAAK,CAACnD,CAAC,CAAC,uCAAuC;MAAE,EAAG,CAClO,EACL,IAAI,CAAC0H,iBAAiB,CAACnQ,IAAI,gBAAG;QAAK,SAAS,EAAEyD,OAAO,CAAC1H,UAAW;QAAC,KAAK,EAAE;UAAEzH,KAAK,EAAE,IAAI,CAAC6b,iBAAiB,CAAC4S;QAAW,CAAE;QAAC,YAAU,GAAI;QAAC,aAAU;MAAY,GAAE,IAAI,CAACS,cAAc,CAAC,MAAM,CAAC,CAAO,GAAG,IAAI,EACvM,CAAC,IAAI,CAAC/b,KAAK,CAAC2L,UAAU,iBAAI,kEACtB,IAAI,CAACjD,iBAAiB,CAAClP,IAAI,gBAAG;QAAK,SAAS,EAAEwC,OAAO,CAAC1H,UAAW;QAAC,KAAK,EAAE;UAAEzH,KAAK,EAAE,IAAI,CAAC6b,iBAAiB,CAAClP;QAAK,CAAE;QAAC,YAAU,GAAI;QAAC,aAAU;MAAM,GAAE,IAAI,CAAC0iB,mBAAmB,EAAE,CAAO,GAAG,IAAI,EAC1L,IAAI,CAACxT,iBAAiB,CAACtO,IAAI,gBAAG;QAAK,SAAS,EAAE4B,OAAO,CAAC1H,UAAW;QAAC,KAAK,EAAE;UAAEzH,KAAK,EAAE,IAAI,CAAC6b,iBAAiB,CAACtO;QAAK,CAAE;QAAC,YAAU,GAAI;QAAC,aAAU;MAAM,GAAE,IAAI,CAAC+hB,mBAAmB,EAAE,CAAO,GAAG,IAAI,EAC1L,IAAI,CAACzT,iBAAiB,CAACrO,IAAI,gBAAG;QAAK,SAAS,EAAE2B,OAAO,CAAC1H,UAAW;QAAC,KAAK,EAAE;UAAEzH,KAAK,EAAE,IAAI,CAAC6b,iBAAiB,CAACrO;QAAK,CAAE;QAAC,YAAU,GAAI;QAAC,aAAU;MAAM,GAAE,IAAI,CAAC+hB,mBAAmB,EAAE,CAAO,GAAG,IAAI,EAC1L,IAAI,CAAC1T,iBAAiB,CAACnO,IAAI,gBAAG;QAAK,SAAS,EAAEyB,OAAO,CAAC1H,UAAW;QAAC,KAAK,EAAE;UAAEzH,KAAK,EAAE,IAAI,CAAC6b,iBAAiB,CAACnO;QAAK,CAAE;QAAC,YAAU,GAAI;QAAC,aAAU;MAAM,GAAE,IAAI,CAAC8hB,uBAAuB,EAAE,CAAO,GAAG,IAAI,CAChM,EACF,IAAI,CAACrc,KAAK,CAAC2L,UAAU,iBAAI,+EACtB;QAAK,SAAS,EAAElc,iBAAK,CAAC0M,IAAI,CAACH,OAAO,CAAC1H,UAAU,EAAE0H,OAAO,CAACzH,eAAe,CAAE;QAAC,KAAK,EAAE;UAAE1H,KAAK,EAAE,IAAI,CAAC6b,iBAAiB,CAAC9E;QAAY,CAAE;QAAC,YAAU,GAAI;QAAC,aAAU;MAAa,GAAE,IAAI,CAACO,KAAK,CAACnD,CAAC,CAAC,iBAAiB,CAAC,CAAO,eAC7M;QAAK,SAAS,EAAEvR,iBAAK,CAAC0M,IAAI,CAACH,OAAO,CAAC1H,UAAU,EAAE0H,OAAO,CAACzH,eAAe,CAAE;QAAC,KAAK,EAAE;UAAE1H,KAAK,EAAE,IAAI,CAAC6b,iBAAiB,CAAC7E;QAAY,CAAE;QAAC,YAAU,GAAI;QAAC,aAAU;MAAa,GAAE,IAAI,CAACM,KAAK,CAACnD,CAAC,CAAC,iBAAiB,CAAC,CAAO,eAC7M;QAAK,SAAS,EAAEvR,iBAAK,CAAC0M,IAAI,CAACH,OAAO,CAAC1H,UAAU,EAAE0H,OAAO,CAACzH,eAAe,CAAE;QAAC,KAAK,EAAE;UAAE1H,KAAK,EAAE,IAAI,CAAC6b,iBAAiB,CAAC5E;QAAU,CAAE;QAAC,YAAU,GAAI;QAAC,aAAU;MAAW,GAAE,IAAI,CAACK,KAAK,CAACnD,CAAC,CAAC,cAAc,CAAC,CAAO,eACtM;QAAK,SAAS,EAAEvR,iBAAK,CAAC0M,IAAI,CAACH,OAAO,CAAC1H,UAAU,EAAE0H,OAAO,CAACzH,eAAe,CAAE;QAAC,KAAK,EAAE;UAAE1H,KAAK,EAAE,IAAI,CAAC6b,iBAAiB,CAAC3E;QAAW,CAAE;QAAC,YAAU,GAAI;QAAC,aAAU;MAAY,GAAE,IAAI,CAACI,KAAK,CAACnD,CAAC,CAAC,gBAAgB,CAAC,CAAO,CAC3M,EACF,IAAI,CAAC2Z,cAAc,CAAC/S,GAAG,CAAC,UAAAjO,IAAI;QAAA,oBAAK;UAAK,SAAS,EAAElK,iBAAK,CAAC0M,IAAI,CAACH,OAAO,CAAC1H,UAAU,EAAE0H,OAAO,CAACzH,eAAe,CAAE;UAAC,KAAK,EAAE;YAAE1H,KAAK,EAAE,OAAI,CAAC6b,iBAAiB,CAAC/O,IAAI,CAACd,EAAE;UAAE,CAAE;UAAC,KAAK,EAAEc,IAAI,CAACyI,OAAQ;UAAC,GAAG,EAAEzI,IAAI,CAACd,EAAG;UAAC,YAAU,GAAI;UAAC,aAAWc,IAAI,CAACd;QAAG,GAAEc,IAAI,CAACpB,IAAI,CAAO;MAAA,EAAC,EACrP,IAAI,CAACmQ,iBAAiB,CAACjI,GAAG,gBAAO;QAAK,SAAS,EAAEhR,iBAAK,CAAC0M,IAAI,CAACH,OAAO,CAAC1H,UAAU,EAAE0H,OAAO,CAACzH,eAAe,CAAE;QAAC,KAAK,EAAE;UAAE1H,KAAK,EAAE,IAAI,CAAC6b,iBAAiB,CAACjI,GAAG;UAAEjS,QAAQ,EAAE;QAAW,CAAE;QAAC,YAAU,GAAI;QAAC,aAAU;MAAK,gBACzM;QAAK,SAAS,YAAK,IAAI,CAAC2V,KAAK,CAACnI,OAAO,CAAC5F,YAAY,cAAI,IAAI,CAAC+N,KAAK,CAACnI,OAAO,CAACxF,gBAAgB,CAAG;QAAC,aAAU,MAAM;QAAC,WAAW,EAAE,IAAI,CAACwlB,gBAAiB;QAAC,aAAa,EAAE,IAAI,CAACC,YAAa;QAAC,KAAK,EAAE,IAAI,CAAC9X,KAAK,CAACnD,CAAC,CAAC,uCAAuC;MAAE,EAAG,EACnP,IAAI,CAACmD,KAAK,CAACnD,CAAC,CAAC,UAAU,CAAC,EACxB4a,kBAAkB,CACjB,GAAG,IAAI,EACZ,IAAI,CAAClT,iBAAiB,CAAChF,OAAO,gBAAG;QAAK,SAAS,EAAE1H,OAAO,CAAC1H,UAAW;QAAC,KAAK,EAAE;UAAEzH,KAAK,EAAE,IAAI,CAAC6b,iBAAiB,CAAChF;QAAQ;MAAE,GAClH,GAAG,EACH,IAAI,CAAC4Y,sBAAsB,EAAE,CAC5B,GAAG,IAAI,CACX;IACV;;IAEA;AACJ;AACA;AACA;EAHI;IAAA;IAAA,OAIA,uBAAc;MAAA;MACV,oBAAO,gCAAC,oBAAQ;QACZ,IAAI,EAAE,CAAC,CAAC,IAAI,CAACtc,KAAK,CAACiM,KAAM;QACzB,gBAAgB,EAAE,IAAK;QACvB,OAAO,EAAE;UAAA,OAAM,OAAI,CAAC/G,QAAQ,CAAC;YAAE+G,KAAK,EAAE;UAAG,CAAC,CAAC;QAAA,CAAC;QAC5C,OAAO,EAAE;UAAA,OAAM,OAAI,CAAC/G,QAAQ,CAAC;YAAE+G,KAAK,EAAE;UAAG,CAAC,CAAC;QAAA,CAAC;QAC5C,OAAO,EAAE,IAAI,CAACjM,KAAK,CAACiM,KAAM;QAC1B,MAAM,eACF,gCAAC,sBAAU;UAAC,IAAI,EAAC,OAAO;UAAC,cAAW,OAAO;UAAC,KAAK,EAAC,SAAS;UAAC,OAAO,EAAE;YAAA,OAAM,OAAI,CAAC/G,QAAQ,CAAC;cAAE+G,KAAK,EAAE;YAAG,CAAC,CAAC;UAAA;QAAC,gBACpG,gCAAC,iBAAS;UAAC,QAAQ,EAAC;QAAO,EAAG;MAErC,EACH;IACN;;IAEA;AACJ;AACA;EAFI;IAAA;IAAA,OAGA,8BAAqB;MAAA;MACjB,IAAI,IAAI,CAACvB,QAAQ,CAAC0H,OAAO,EAAE;QACvB,IAAMzJ,cAAc,GAAG,IAAI,CAAC+B,QAAQ,CAAC0H,OAAO,CAACtI,WAAW,GAAG,IAAI,CAACY,QAAQ,CAAC0H,OAAO,CAACmK,WAAW;QAC5F,IAAI,IAAI,CAACvc,KAAK,CAAC2I,cAAc,KAAKA,cAAc,EAAE;UAC9ClE,UAAU,CAAC;YAAA,OAAM,OAAI,CAACS,QAAQ,CAAC;cAAEyD,cAAc,EAAdA;YAAe,CAAC,CAAC;UAAA,GAAE,GAAG,CAAC;QAC5D,CAAC,MAAM,IAAI,CAAC,IAAI,CAACkC,aAAa,KAAM,IAAI,CAAC7K,KAAK,CAACgH,QAAQ,IAAI,IAAI,CAAChH,KAAK,CAACgH,QAAQ,CAAC,CAAC,CAAC,IAAK,IAAI,CAACoD,iBAAiB,CAAC,EAAE;UAC3G,IAAI,CAACyP,YAAY,CAAE,IAAI,CAAC7Z,KAAK,CAACgH,QAAQ,IAAI,IAAI,CAAChH,KAAK,CAACgH,QAAQ,CAAC,CAAC,CAAC,IAAK,IAAI,CAACoD,iBAAiB,CAAC;QAChG;MACJ;IACJ;EAAC;IAAA;IAAA,OAED,sBAAavR,EAAE,EAAE;MACb,IAAMmX,IAAI,GAAG9J,MAAM,CAACjP,QAAQ,CAACulB,cAAc,CAAC3jB,EAAE,CAAC;MAC/CmX,IAAI,IAAIA,IAAI,CAACyM,cAAc,CAAC;QACxBC,QAAQ,EAAE,MAAM;QAChBC,KAAK,EAAE,QAAQ;QACfC,MAAM,EAAE;MACZ,CAAC,CAAC;MACF,IAAI,CAAC/R,aAAa,GAAG,IAAI;IAC7B;;IAEA;AACJ;AACA;AACA;EAHI;IAAA;IAAA,OAIA,8BAAqB;MAAA;MACjB,IAAI,IAAI,CAAC7K,KAAK,CAACmL,YAAY,IAAI,IAAI,CAAChH,KAAK,CAACwR,kBAAkB,EAAE;QAC1D,IAAMkH,kBAAkB,GAAG,IAAI,CAAC1Y,KAAK,CAACwR,kBAAkB;QAExD,oBAAO,gCAAC,kBAAkB;UACtB,gBAAgB,EAAE,0BAAAmH,UAAU;YAAA,OAAI,OAAI,CAACA,UAAU,uCAAOA,UAAU,CAAC;UAAA,CAAC;UAClE,SAAS,EAAE,IAAI,CAAC9c,KAAK,CAACmL,YAAa;UACnC,UAAU,EAAE,IAAI,CAACnL,KAAK,CAACkH,MAAM,CAACrM,UAAW;UACzC,YAAY,EAAE,IAAI,CAACsJ,KAAK,CAAChE,YAAa;UACtC,CAAC,EAAE,IAAI,CAACgE,KAAK,CAACnD,CAAE;UAChB,IAAI,EAAE,IAAI,CAACmD,KAAK,CAAC3L,IAAK;UACtB,MAAM,EAAE,IAAI,CAAC2L,KAAK,CAACwB,MAAO;UAC1B,SAAS,EAAE,IAAI,CAACxB,KAAK,CAAC6V,SAAU;UAChC,SAAS,EAAE,IAAI,CAAC7V,KAAK,CAACgW,SAAU;UAChC,KAAK,EAAE,IAAI,CAAChW,KAAK,CAACpY,KAAM;UACxB,OAAO,EAAE,IAAI,CAAC6M,OAAQ;UACtB,gBAAgB,EAAE,IAAI,CAACmE,IAAI,CAACK,OAAQ;UACpC,OAAO,EAAE,mBAAM;YACX,OAAI,CAACoO,cAAc,CAAC,KAAK,CAAC;YAC1B,OAAI,CAACtG,QAAQ,CAAC;cAAEiG,YAAY,EAAE;YAAK,CAAC,CAAC;YACrC,IAAI,OAAI,CAAC2R,UAAU,EAAE;cACjB,OAAI,CAACA,UAAU,GAAG,IAAI;cACtB;cACA,OAAI,CAACpY,WAAW,EAAE;YACtB;YAEA,OAAI,CAACP,KAAK,CAACiH,MAAM,IAAI,OAAI,CAACjH,KAAK,CAACiH,MAAM,CAACsJ,UAAU,CAAC,aAAa,CAAC;UACpE;QAAE,EACJ;MACN;MACA,OAAO,IAAI;IACf;;IAEA;AACJ;AACA;AACA;EAHI;IAAA;IAAA,OAIA,kBAASqI,MAAM,EAAE;MAAA;MACb,IAAI,CAAC5Y,KAAK,CAACwB,MAAM,CAACT,QAAQ,CAAC,IAAI,CAAC0H,IAAI,CAAC/T,EAAE,EAAE;QACrC4H,GAAG,EAAEsc,MAAM,CAACtc,GAAG;QAAES,GAAG,EAAE6b,MAAM,CAAC7b,GAAG;QAAES,CAAC,EAAEob,MAAM,CAACpb,CAAC,IAAI,CAAC;QAAEqb,MAAM,EAAED,MAAM,CAACC,MAAM,IAAI/kB;MACjF,CAAC,CAAC,SACQ,CAAC,UAAAuN,CAAC;QAAA,OAAI,OAAI,CAAC2K,SAAS,+BAAwB3K,CAAC,EAAG;MAAA,EAAC;IAC/D;;IAEA;AACJ;AACA;AACA;EAHI;IAAA;IAAA,OAIA,kCAAyB;MAAA;MACrB,IAAI,CAAC,IAAI,CAACxF,KAAK,CAACkM,gBAAgB,IAAI,CAAC,IAAI,CAAC/H,KAAK,CAACqQ,uBAAuB,EAAE;QACrE,OAAO,IAAI;MACf;MAEA,IAAMyI,uBAAuB,GAAG,IAAI,CAAC9Y,KAAK,CAACqQ,uBAAuB;MAElE,oBAAO,gCAAC,uBAAuB;QAC3B,GAAG,EAAE,IAAI,CAACxU,KAAK,CAACkM,gBAAiB;QACjC,GAAG,EAAE,IAAI,CAACtT,OAAO,CAAC,IAAI,CAACoH,KAAK,CAACkM,gBAAgB,CAAE;QAC/C,SAAS,EAAE,IAAI,CAACnP,IAAI,CAACG,KAAM;QAC3B,OAAO,EAAE,IAAI,CAACtE,OAAQ;QACtB,UAAU,EAAE,IAAI,CAACuL,KAAK,CAACjE,UAAW;QAClC,YAAY,EAAE,IAAI,CAACiE,KAAK,CAAChE,YAAa;QACtC,SAAS,EAAE,IAAI,CAACgE,KAAK,CAAC6V,SAAU;QAChC,MAAM,EAAE,IAAI,CAAC7V,KAAK,CAACwB,MAAO;QAC1B,UAAU,EAAE,IAAI,CAACxB,KAAK,CAAC8E,UAAW;QAClC,CAAC,EAAE,IAAI,CAAC9E,KAAK,CAACnD,CAAE;QAChB,UAAU,EAAE,IAAI,CAAChB,KAAK,CAACkH,MAAM,CAACrM,UAAW;QACzC,WAAW,EAAE,qBAAA9D,GAAG;UAAA,OACZ,OAAI,CAACoN,KAAK,CAACwB,MAAM,CAACC,SAAS,CAAC7O,GAAG,CAACoI,GAAG,EAAEpI,GAAG,CAAC,CACpCoY,IAAI,CAAC;YAAA,OAAM,OAAI,CAACjK,QAAQ,CAAC;cAAEgH,gBAAgB,EAAEnV,GAAG,CAACoI;YAAI,CAAC,EAAE;cAAA,OAAM,OAAI,CAACuR,QAAQ,CAAC3Z,GAAG,CAACoI,GAAG,CAAC;YAAA,EAAC;UAAA,EAAC,SACjF,CAAC,UAAAqG,CAAC;YAAA,OAAI,OAAI,CAAC2K,SAAS,gCAAyB3K,CAAC,EAAG;UAAA,EAAC;QAAA,CAAC;QACjE,OAAO,EAAE,iBAAAzO,GAAG,EAAI;UACZ,IAAIA,GAAG,EAAE;YACL,IAAImmB,WAAW;YACf,IAAI,OAAI,CAACld,KAAK,CAACkM,gBAAgB,CAAC9S,UAAU,CAAC,QAAQ,CAAC,EAAE;cAAA;cAClD,IAAI/B,IAAI,CAACC,SAAS,0BAAC,OAAI,CAACsB,OAAO,CAAC,OAAI,CAACoH,KAAK,CAACkM,gBAAgB,CAAC,CAAChT,MAAM,0DAAhD,sBAAkDygB,KAAK,CAAC,KAAKtiB,IAAI,CAACC,SAAS,iBAACP,GAAG,CAACmC,MAAM,iDAAV,aAAYygB,KAAK,CAAC,EAAE;gBAC/GuD,WAAW,GAAG,OAAI,CAACld,KAAK,CAACkM,gBAAgB;cAC7C;YACJ;YAEA,OAAI,CAAC/H,KAAK,CAACwB,MAAM,CAACC,SAAS,CAAC7O,GAAG,CAACoI,GAAG,EAAEpI,GAAG,CAAC,CACpCoY,IAAI,CAAC,YAAM;cACR,IAAI+N,WAAW,IAAI,OAAI,CAACpS,UAAU,CAACzR,QAAQ,CAAC6jB,WAAW,CAAC,EAAE;gBACtD,OAAI,CAACxL,WAAW,CAACwL,WAAW,CAAC;gBAC7BzY,UAAU,CAAC;kBAAA,OAAM,OAAI,CAACmS,SAAS,CAACsG,WAAW,CAAC;gBAAA,GAAE,GAAG,CAAC;cACtD;YACJ,CAAC,CAAC,SACI,CAAC,UAAA1X,CAAC;cAAA,OAAI,OAAI,CAAC2K,SAAS,gCAAyB3K,CAAC,EAAG;YAAA,EAAC;UAChE;UACA,OAAI,CAACN,QAAQ,CAAC;YAAEgH,gBAAgB,EAAE;UAAG,CAAC,CAAC;QAC3C;MAAE,EACJ;IACN;;IAEA;AACJ;AACA;AACA;EAHI;IAAA;IAAA,OAIA,sCAA6B;MAAA;MACzB,IAAI,CAAC,IAAI,CAAClM,KAAK,CAACmM,cAAc,IAAI,CAAC,IAAI,CAAChI,KAAK,CAACmV,qBAAqB,EAAE;QACjE,OAAO,IAAI;MACf;MACA,IAAM6D,qBAAqB,GAAG,IAAI,CAAChZ,KAAK,CAACmV,qBAAqB;MAE9D,oBAAO,gCAAC,qBAAqB;QACzB,GAAG,EAAC,UAAU;QACd,GAAG,EAAE,IAAI,CAAC1gB,OAAO,CAAC,IAAI,CAACoH,KAAK,CAACmM,cAAc,CAAE;QAC7C,SAAS,EAAE,IAAI,CAAChI,KAAK,CAACgW,SAAU;QAChC,MAAM,EAAE,IAAI,CAAChW,KAAK,CAACwB,MAAO;QAC1B,UAAU,EAAE,IAAI,CAACxB,KAAK,CAAC8E,UAAW;QAClC,CAAC,EAAE,IAAI,CAAC9E,KAAK,CAACnD,CAAE;QAChB,UAAU,EAAE,IAAI,CAAChB,KAAK,CAACkH,MAAM,CAACrM,UAAW;QACzC,OAAO,EAAE;UAAA,OAAM,OAAI,CAACqK,QAAQ,CAAC;YAAEiH,cAAc,EAAE;UAAG,CAAC,CAAC;QAAA;MAAC,EACvD;IACN;;IAEA;AACJ;AACA;AACA;EAHI;IAAA;IAAA,OAIA,iCAAwB;MAAA;QAAA;MACpB,IAAI,CAAC,IAAI,CAACnM,KAAK,CAAC6a,YAAY,IAAI,CAAC,IAAI,CAAC1W,KAAK,CAACiZ,kBAAkB,EAAE;QAC5D,OAAO,IAAI;MACf;MAEA,IAAI,CAAC,IAAI,CAACxQ,IAAI,CAAC/T,EAAE,EAAE;QACfuL,OAAO,CAAC+F,KAAK,gCAAyB9S,IAAI,CAACC,SAAS,CAAC,IAAI,CAACsV,IAAI,CAAC,EAAG;QAClE,OAAO,IAAI;MACf;MAEA,IAAI,CAAC,IAAI,CAAChU,OAAO,CAAC,IAAI,CAACgU,IAAI,CAAC/T,EAAE,CAAC,EAAE;QAC7BuL,OAAO,CAAC+F,KAAK,qDAA8C,IAAI,CAACyC,IAAI,CAAC/T,EAAE,mBAAgB;QACvF,OAAO,IAAI;MACf;MAEA,IAAMW,IAAI,GAAG,6BAAI,CAACZ,OAAO,CAAC,IAAI,CAACgU,IAAI,CAAC/T,EAAE,CAAC,CAACK,MAAM,kDAAjC,sBAAmCM,IAAI,GAChD,IAAI,CAACZ,OAAO,CAAC,IAAI,CAACgU,IAAI,CAAC/T,EAAE,CAAC,CAACK,MAAM,CAACM,IAAI,4BAAU,IAAI,CAACoT,IAAI,CAACnM,GAAG;MAEjE,IAAM4c,kBAAkB,GAAG,IAAI,CAAClZ,KAAK,CAACiZ,kBAAkB;MAExD,oBAAO,gCAAC,kBAAkB;QACtB,CAAC,EAAE,IAAI,CAACjZ,KAAK,CAACnD,CAAE;QAChB,IAAI,EAAE,IAAI,CAACmD,KAAK,CAAC3L,IAAK;QACtB,IAAI,EAAEgB,IAAK;QACX,MAAM,EAAE/J,iBAAK,CAAC4Q,SAAS,CAAC,IAAI,CAACzH,OAAO,CAAC,IAAI,CAACgU,IAAI,CAAC/T,EAAE,CAAC,CAAE;QACpD,SAAS,EAAE,IAAI,CAACsL,KAAK,CAACgW,SAAU;QAChC,UAAU,EAAE,IAAI,CAACna,KAAK,CAACkH,MAAM,CAACrM,UAAW;QACzC,KAAK,EAAE,IAAI,CAAC+R,IAAI,CAACnM,GAAI;QACrB,MAAM,EAAE,IAAI,CAAC0D,KAAK,CAACwB,MAAO;QAC1B,MAAM,EAAE,IAAI,CAAC/M,OAAO,CAAC,IAAI,CAACgU,IAAI,CAAC/T,EAAE,CAAE;QACnC,cAAc,EAAE,IAAI,CAACiX,cAAe;QACpC,UAAU,EAAE,IAAI,CAAC3L,KAAK,CAACjE,UAAW;QAClC,OAAO,EAAE,iBAAAod,GAAG,EAAI;UACZ,OAAI,CAACpY,QAAQ,CAAC;YAAE2V,YAAY,EAAE;UAAM,CAAC,CAAC;UACtCyC,GAAG,IAAI,OAAI,CAACC,QAAQ,CAACD,GAAG,CAAC;QAC7B;MAAE,EACJ;IACN;EAAC;IAAA;IAAA;IAUD;AACJ;AACA;AACA;IACI,kBAAS;MAAA;MACL,IAAI,CAAC7L,YAAY,GAAG,EAAE;MACtB,IAAI,CAAC+L,gBAAgB,IAAI7Y,YAAY,CAAC,IAAI,CAAC6Y,gBAAgB,CAAC;;MAE5D;MACA,IAAMC,UAAU,GAAGpmB,IAAI,CAACC,SAAS,CAAC,IAAI,CAAC0I,KAAK,CAACkH,MAAM,CAAC;MAEpD,IAAI,IAAI,CAAC9B,iBAAiB,KAAKqY,UAAU,IAAI,IAAI,CAAC7kB,OAAO,IAAI,IAAI,CAACkE,IAAI,EAAE;QACpE,IAAMhD,OAAO,GAAG;UAAE0B,KAAK,EAAE;QAAE,CAAC;QAE5B9B,WAAW,CAAC,IAAI,CAACoD,IAAI,EAAE,IAAI,CAACkD,KAAK,CAACkH,MAAM,EAAE,IAAI,CAAClH,KAAK,CAACxH,IAAI,EAAE,IAAI,CAACI,OAAO,EAAE,IAAI,EAAEkB,OAAO,EAAE,IAAI,CAACqK,KAAK,CAACpK,YAAY,EAAE,IAAI,CAACoK,KAAK,CAAChH,KAAK,CAAC;QAElI,IAAIrD,OAAO,CAAC0B,KAAK,GAAG,GAAG,IAAI,CAAC,IAAI,CAACwE,KAAK,CAACgM,gBAAgB,EAAE;UACrDvH,UAAU,CAAC;YAAA,OAAM,OAAI,CAACS,QAAQ,CAAC;cAAE8G,gBAAgB,EAAE;YAAK,CAAC,CAAC;UAAA,EAAC;QAC/D,CAAC,MAAM,IAAIlS,OAAO,CAAC0B,KAAK,IAAI,GAAG,IAAI,IAAI,CAACwE,KAAK,CAACgM,gBAAgB,EAAE;UAC5DvH,UAAU,CAAC;YAAA,OAAM,OAAI,CAACS,QAAQ,CAAC;cAAE8G,gBAAgB,EAAE;YAAM,CAAC,CAAC;UAAA,EAAC;QAChE;QAEA,IAAI,CAAC5G,iBAAiB,GAAGqY,UAAU;MACvC;MAEA,IAAI,CAACD,gBAAgB,GAAG/Y,UAAU,CAAC,YAAM;QACrC,OAAI,CAAC+Y,gBAAgB,GAAG,IAAI;QAC5B,OAAI,CAACE,iBAAiB,EAAE;MAC5B,CAAC,EAAE,GAAG,CAAC;MAEP,IAAI,CAAC,IAAI,CAAC1d,KAAK,CAAC6L,MAAM,EAAE;QACpB,oBAAO,gCAAC,4BAAgB;UAAC,GAAG,YAAK,IAAI,CAAC1H,KAAK,CAAC8E,UAAU;QAAK,EAAG;MAClE;MACA,IAAMjN,OAAO,GAAG,IAAI,CAACmI,KAAK,CAACnI,OAAO;MAClC,IAAMgf,KAAK,GAAG,IAAI,CAACI,UAAU,CAAC,IAAI,CAACte,IAAI,EAAE7E,SAAS,EAAE+D,OAAO,CAAC;MAE5D,oBAAO,gCAAC,wBAAY;QAAC,GAAG,EAAE,IAAI,CAACmI,KAAK,CAAC8E,UAAW;QAAC,OAAO,EAAE,CAAE;MAAE,gBAC1D,gCAAC,qBAAS,QACL,IAAI,CAAC0U,UAAU,EAAE,CACV,eACZ,gCAAC,sBAAU;QAAC,OAAO,EAAE,CAAE;MAAE,GACpB,IAAI,CAACC,YAAY,EAAE,eACpB;QAAK,SAAS,EAAE,IAAI,CAACzZ,KAAK,CAACnI,OAAO,CAAClN,QAAS;QAAC,GAAG,EAAE,IAAI,CAAC4b;MAAS,GAC3DsQ,KAAK,CACJ,CACG,EACZ,IAAI,CAAC6C,WAAW,EAAE,EAClB,IAAI,CAACC,6BAA6B,EAAE,EACpC,IAAI,CAACC,2BAA2B,EAAE,EAClC,IAAI,CAACC,kBAAkB,EAAE,EACzB,IAAI,CAACC,qBAAqB,EAAE,EAC5B,IAAI,CAACC,sBAAsB,EAAE,EAC7B,IAAI,CAACC,0BAA0B,EAAE,EACjC,IAAI,CAACC,oBAAoB,EAAE,EAC3B,IAAI,CAACC,gBAAgB,EAAE,EACvB,IAAI,CAACC,iBAAiB,EAAE,EACxB,IAAI,CAACC,kBAAkB,EAAE,EACzB,IAAI,CAACve,KAAK,CAACoU,WAAW,IAAI,IAAI,CAACjQ,KAAK,CAACqa,cAAc,IAAI,IAAI,CAACra,KAAK,CAACqa,cAAc,CAAC,IAAI,CAAC,EACtF,IAAI,CAACxe,KAAK,CAACiV,iBAAiB,IAAI,IAAI,CAAC9Q,KAAK,CAACsa,wBAAwB,IAAI,IAAI,CAACta,KAAK,CAACsa,wBAAwB,CAAC,IAAI,EAAE,IAAI,CAACze,KAAK,CAACkV,wBAAwB,CAAC,CAC3I;IACnB;EAAC;IAAA;IAAA,OA7nGD,kCAAgC/Q,KAAK,EAAEnE,KAAK,EAAE;MAC1C,IAAM4E,QAAQ,GAAG,CAAC,CAAC;MACnB,IAAIyL,OAAO,GAAG,KAAK;MACnB,IAAIlM,KAAK,CAACtJ,UAAU,KAAK5C,SAAS,IAAIkM,KAAK,CAACtJ,UAAU,KAAKmF,KAAK,CAACkH,MAAM,CAACrM,UAAU,EAAE;QAChFwV,OAAO,GAAG,IAAI;QACdzL,QAAQ,CAACsC,MAAM,qBAAQlH,KAAK,CAACkH,MAAM,CAAE;QACrCtC,QAAQ,CAACsC,MAAM,CAACrM,UAAU,GAAGsJ,KAAK,CAACtJ,UAAU;MACjD;MACA,OAAOwV,OAAO,GAAGzL,QAAQ,GAAG,IAAI;IACpC;EAAC;IAAA;IAAA,OA+4BD,uBAAqBmH,KAAK,EAAEzB,QAAQ,EAAE;MAClC,OAAOA,QAAQ,CAACpD,MAAM,CAAC,UAAArO,EAAE;QAAA,OAAIA,EAAE,CAACY,KAAK,CAAC,GAAG,CAAC,CAACvB,MAAM,IAAI6T,KAAK;MAAA,EAAC;IAC/D;EAAC;IAAA;IAAA,OAqpCD,wBAAsBhV,GAAG,EAAEqhB,EAAE,EAAE;MAC3B,IAAIrhB,GAAG,IAAIA,GAAG,CAACoI,GAAG,IAAIpI,GAAG,CAACoI,GAAG,CAAC/F,UAAU,WAAIgf,EAAE,CAAChW,OAAO,OAAI,IAAIgW,EAAE,CAAC9H,IAAI,CAACpY,MAAM,GAAG,CAAC,EAAE;QAC9E,IAAMwmB,CAAC,GAAGtG,EAAE,CAAC9H,IAAI;QACjB,IAAIrP,KAAK;QACT,IAAIlK,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,yBAAO3nB,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,MAAK,QAAQ,EAAE;UAC5C,IAAIA,CAAC,CAACxmB,MAAM,KAAK,CAAC,EAAE;YAAE;YAClB+I,KAAK,GAAGlK,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC;UAC3B,CAAC,MAAM,IAAIA,CAAC,CAACxmB,MAAM,KAAK,CAAC,EAAE;YACvB+I,KAAK,GAAGlK,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,yBAAO3nB,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,MAAK,QAAQ,GAAG3nB,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;UACjG,CAAC,MAAM,IAAIA,CAAC,CAACxmB,MAAM,KAAK,CAAC,EAAE;YACvB+I,KAAK,GAAGlK,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,yBAAO3nB,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,MAAK,QAAQ,IAAI3nB,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG3nB,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;UAChI,CAAC,MAAM,IAAIA,CAAC,CAACxmB,MAAM,KAAK,CAAC,EAAE;YACvB+I,KAAK,GAAGlK,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,yBAAO3nB,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,MAAK,QAAQ,IAAI3nB,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI3nB,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG3nB,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;UACrK,CAAC,MAAM,IAAIA,CAAC,CAACxmB,MAAM,KAAK,CAAC,EAAE;YACvB+I,KAAK,GAAGlK,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,yBAAO3nB,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,MAAK,QAAQ,IAAI3nB,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI3nB,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI3nB,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG3nB,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;UAChN;UACA,IAAIzd,KAAK,KAAKhJ,SAAS,IAAIgJ,KAAK,KAAK,IAAI,EAAE;YACvC,OAAO,IAAI;UACf;UACA,OAAOA,KAAK;QAChB;MACJ;MAEA,OAAO,IAAI;IACf;;IAEA;AACJ;AACA;AACA;AACA;AACA;EALI;IAAA;IAAA,OAMA,wBAAsBlK,GAAG,EAAEqhB,EAAE,EAAEnX,KAAK,EAAE;MAClC,IAAIlK,GAAG,IAAIA,GAAG,CAACoI,GAAG,IAAIpI,GAAG,CAACoI,GAAG,CAAC/F,UAAU,WAAIgf,EAAE,CAAChW,OAAO,OAAI,IAAIgW,EAAE,CAAC9H,IAAI,CAACpY,MAAM,GAAG,CAAC,EAAE;QAC9E,IAAMwmB,CAAC,GAAGtG,EAAE,CAAC9H,IAAI;QACjB,IAAIvZ,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,yBAAO3nB,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,MAAK,QAAQ,EAAE;UAC5C,IAAIA,CAAC,CAACxmB,MAAM,KAAK,CAAC,EAAE;YAAE;YAClBnB,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGzd,KAAK;YACvB,OAAO,IAAI;UACf;UACA,IAAIyd,CAAC,CAACxmB,MAAM,KAAK,CAAC,EAAE;YAChB,IAAInB,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,yBAAO3nB,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,MAAK,QAAQ,EAAE;cACxD3nB,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGzd,KAAK;cAC7B,OAAO,IAAI;YACf;UACJ,CAAC,MAAM,IAAIyd,CAAC,CAACxmB,MAAM,KAAK,CAAC,EAAE;YACvB,IAAInB,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,yBAAO3nB,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,MAAK,QAAQ,IAAI3nB,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,yBAAO3nB,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,MAAK,QAAQ,EAAE;cAC9H3nB,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGzd,KAAK;cACnC,OAAO,IAAI;YACf;UACJ,CAAC,MAAM,IAAIyd,CAAC,CAACxmB,MAAM,KAAK,CAAC,EAAE;YACvB,IAAInB,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,yBAAO3nB,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,MAAK,QAAQ,IAAI3nB,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,yBAAO3nB,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,MAAK,QAAQ,IAAI3nB,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,yBAAO3nB,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,MAAK,QAAQ,EAAE;cAChN3nB,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGzd,KAAK;cACzC,OAAO,IAAI;YACf;UACJ,CAAC,MAAM,IAAIyd,CAAC,CAACxmB,MAAM,KAAK,CAAC,EAAE;YACvB,IAAInB,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,yBAAO3nB,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,MAAK,QAAQ,IAAI3nB,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,yBAAO3nB,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,MAAK,QAAQ,IAAI3nB,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,yBAAO3nB,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,MAAK,QAAQ,IAAI3nB,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,yBAAO3nB,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,MAAK,QAAQ,EAAE;cAC9S3nB,GAAG,CAAC2nB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGzd,KAAK;cAC/C,OAAO,IAAI;YACf;UACJ;QACJ;MACJ;MACA,OAAO,KAAK;IAChB;EAAC;EAAA;AAAA,EAr/EuB0d,gBAAS;AAsgHrCza,aAAa,CAAC0a,YAAY,GAAG;EACzB1K,gBAAgB,EAAE,KAAK;EACvBO,iBAAiB,EAAE,KAAK;EACxB7I,gBAAgB,EAAE,KAAK;EACvByI,kBAAkB,EAAE,KAAK;EACzBW,yBAAyB,EAAE,KAAK;EAChCwJ,cAAc,EAAE,0BAAM,CAAE,CAAC;EACzBC,wBAAwB,EAAE,oCAAM,CAAE;AACtC,CAAC;AAEDva,aAAa,CAAC2a,SAAS,GAAG;EACtB5V,UAAU,EAAE6V,qBAAS,CAACC,MAAM;EAAE;EAC9B/iB,OAAO,EAAE8iB,qBAAS,CAACjP,MAAM;EACzBtF,cAAc,EAAEuU,qBAAS,CAACjP,MAAM;EAChC7I,QAAQ,EAAE8X,qBAAS,CAACE,SAAS,CAAC,CAC1BF,qBAAS,CAACC,MAAM,EAChBD,qBAAS,CAACG,KAAK,CAClB,CAAC;EACFvO,QAAQ,EAAEoO,qBAAS,CAACvkB,IAAI;EACxB+X,eAAe,EAAEwM,qBAAS,CAACvkB,IAAI;EAC/BoL,MAAM,EAAEmZ,qBAAS,CAACjP,MAAM;EACxB+D,gBAAgB,EAAEkL,qBAAS,CAACI,IAAI;EAChCrkB,UAAU,EAAEikB,qBAAS,CAACI,IAAI;EAC1BpmB,WAAW,EAAEgmB,qBAAS,CAACC,MAAM;EAC7B/E,SAAS,EAAE8E,qBAAS,CAACC,MAAM;EAC3B5E,SAAS,EAAE2E,qBAAS,CAACC,MAAM;EAC3BhzB,KAAK,EAAE+yB,qBAAS,CAACjP,MAAM;EACvB7O,CAAC,EAAE8d,qBAAS,CAACvkB,IAAI;EACjB/B,IAAI,EAAEsmB,qBAAS,CAACC,MAAM,CAACI,UAAU;EACjC7N,WAAW,EAAEwN,qBAAS,CAACI,IAAI;EAC3BtG,WAAW,EAAEkG,qBAAS,CAACI,IAAI;EAC3BxT,YAAY,EAAEoT,qBAAS,CAACI,IAAI;EAC5BrL,qBAAqB,EAAEiL,qBAAS,CAACI,IAAI;EACrC/e,YAAY,EAAE2e,qBAAS,CAACI,IAAI;EAC5Bhf,UAAU,EAAE4e,qBAAS,CAACC,MAAM;EAC5BjQ,YAAY,EAAEgQ,qBAAS,CAACM,MAAM;EAE9B;EACAzJ,kBAAkB,EAAEmJ,qBAAS,CAACE,SAAS,CAAC,CACpCF,qBAAS,CAACjP,MAAM,EAChBiP,qBAAS,CAACvkB,IAAI,CACjB,CAAC;EACF2Z,gBAAgB,EAAE4K,qBAAS,CAACI,IAAI;EAAI;EACpCzK,iBAAiB,EAAEqK,qBAAS,CAACI,IAAI;EAAG;EACpCtT,gBAAgB,EAAEkT,qBAAS,CAACI,IAAI;EAAI;EACpC7K,kBAAkB,EAAEyK,qBAAS,CAACI,IAAI;EAAE;EACpClK,yBAAyB,EAAE8J,qBAAS,CAACI,IAAI;EAAE;EAC3CV,cAAc,EAAEM,qBAAS,CAACvkB,IAAI;EAAM;EACpCkkB,wBAAwB,EAAEK,qBAAS,CAACvkB,IAAI;EAAE;EAC1Cwa,cAAc,EAAE+J,qBAAS,CAACvkB,IAAI;EAAM;EACpCR,YAAY,EAAE+kB,qBAAS,CAACjP,MAAM;EAAM;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACpCuN,kBAAkB,EAAE0B,qBAAS,CAACjP,MAAM;EACpC2E,uBAAuB,EAAEsK,qBAAS,CAACjP,MAAM;EACzCiI,qBAAqB,EAAEgH,qBAAS,CAACjP,MAAM;EAAE;EACzCyJ,qBAAqB,EAAEwF,qBAAS,CAACvkB,IAAI;EAAE;EACvC6Q,MAAM,EAAE0T,qBAAS,CAACE,SAAS,CAAC,CACxBF,qBAAS,CAACjP,MAAM,EAChBiP,qBAAS,CAACvkB,IAAI,CACjB,CAAC;EACF4C,KAAK,EAAE2hB,qBAAS,CAACG,KAAK;EAAc;EACpCjU,OAAO,EAAE8T,qBAAS,CAACG,KAAK;EAAY;;EAEpC7P,aAAa,EAAE0P,qBAAS,CAACjP,MAAM;EAAK;EACpC/K,UAAU,EAAEga,qBAAS,CAACvkB,IAAI;EAAU;EACA;;EAEpC8kB,YAAY,EAAEP,qBAAS,CAACjP,MAAM;EAC9BsL,WAAW,EAAE2D,qBAAS,CAACvkB,IAAI;EAC3BmgB,WAAW,EAAEoE,qBAAS,CAACI,IAAI;EAC3BI,OAAO,EAAER,qBAAS,CAACvkB;AACvB,CAAC;;AAED;AACA,IAAMglB,OAAO,GAAG,IAAAC,qBAAS,GAAE,CAAC,IAAA1c,sBAAU,EAAChX,MAAM,CAAC,CAACoY,aAAa,CAAC,CAAC;AAAC,eAChDqb,OAAO;AAAA"}
1
+ {"version":3,"file":"ObjectBrowser.js","names":["ICON_SIZE","ROW_HEIGHT","ITEM_LEVEL","SMALL_BUTTON_SIZE","COLOR_NAME_SYSTEM","COLOR_NAME_SYSTEM_ADAPTER","COLOR_NAME_ERROR_DARK","COLOR_NAME_ERROR_LIGHT","COLOR_NAME_CONNECTED_DARK","COLOR_NAME_CONNECTED_LIGHT","COLOR_NAME_DISCONNECTED_DARK","COLOR_NAME_DISCONNECTED_LIGHT","styles","theme","toolbar","minHeight","toolbarButtons","padding","marginLeft","switchColumnAuto","spacing","dialogColumns","transition","dialogColumnsLabel","fontSize","paddingTop","columnCustom","width","display","columnCustomEditable","cursor","columnCustomCenter","textAlign","columnCustomLeft","columnCustomRight","width100","transparent_10","opacity","transparent_20","transparent_30","transparent_40","transparent_50","transparent_60","transparent_70","transparent_80","transparent_90","transparent_100","columnsDialogInputWidth","headerRow","paddingLeft","height","whiteSpace","userSelect","buttonClearFilter","position","buttonClearFilterIcon","zIndex","top","left","color","tableDiv","overflow","tableRow","lineHeight","verticalAlign","background","palette","mode","primary","dark","light","Utils","invertColor","main","flexWrap","tableRowLines","borderBottom","borderRight","tableRowNoDragging","tableRowAlias","tableRowAliasReadWrite","checkBox","cellId","textOverflow","marginTop","cellIdSpan","cellIdIconFolder","marginRight","secondary","cellIdIconDocument","cellIdIconOwn","cellIdTooltip","cellIdTooltipLink","cellCopyButton","right","cellEditButton","cellName","cellIdAlias","fontStyle","cellIdAliasReadWriteDiv","cellIdAliasAlone","cellIdAliasReadWrite","cellType","cellRole","cellRoom","cellEnumParent","cellFunc","cellValue","cellValueButton","transform","cellValueButtonFalse","cellAdapter","cellValueTooltip","cellValueText","cellValueFile","cellValueTooltipTitle","cellValueTooltipValue","cellValueTooltipBoth","cellValueTooltipBox","cellValueTextUnit","newValue","animation","cellValueTextState","cellValueTooltipCopy","bottom","cellValueTooltipEdit","cellButtons","cellButtonsButton","cellButtonsEmptyButton","cellButtonMinWidth","minWidth","cellButtonsButtonAlone","cellButtonsButtonWithCustoms","cellButtonsButtonWithoutCustoms","cellButtonsValueButton","action","active","cellButtonsValueButtonCopy","cellButtonsValueButtonEdit","parseInt","filteredOut","filteredParentOut","filterInput","marginBottom","selectIcon","selectNone","itemSelected","header","headerCell","headerCellValue","headerCellInput","headerCellSelectItem","visibleButtons","grow","flexGrow","enumIconDiv","borderRadius","enumIcon","enumDialog","enumList","enumButton","enumCheckbox","buttonDiv","alignItems","aclText","rightsObject","rightsState","textCenter","tooltipAccessControl","flexDirection","fontSizeTitle","draggable","nonDraggable","selectClearButton","backgroundColor","iconDeviceConnected","iconDeviceDisconnected","iconDeviceError","resizeHandle","resizeHandleRight","borderColor","borderRightStyle","resizeHandleLeft","borderLeft","borderLeftStyle","invertedBackground","invertedBackgroundFlex","generateFile","filename","obj","el","document","createElement","setAttribute","encodeURIComponent","JSON","stringify","style","body","appendChild","click","removeChild","binarySearch","list","find","_start","_end","undefined","length","middle","Math","floor","getName","name","lang","en","toString","getSelectIdIcon","objects","id","imagePrefix","src","_id_","aIcon","common","icon","startsWith","includes","cIcon","instance","type","split","applyFilter","item","filters","context","counter","customFilter","selectedTypes","_depth","toLowerCase","custom","role","room","members","func","data","Array","isArray","Object","keys","expertMode","endsWith","expert","fID","fName","visible","hasVisibleChildren","children","forEach","_item","sumVisibility","count","hasVisibleParent","getVisibleItems","_result","push","getSystemIcon","k","getIdFieldTooltip","classes","desc","tooltip","clsx","buildTree","options","ids","sort","a","b","replace","currentPathArr","currentPath","currentPathLen","root","info","funcEnums","roomEnums","roles","types","customs","enums","hasSomeCustoms","croot","i","parts","supportCustoms","adminUI","substring","repeat","curPath","_croot","parent","level","generated","title","hasCustoms","button","write","u","move","splice","join","aName","pop","bName","findNode","_parts","_path","_level","found","_id","findRoomsForObject","withParentInfo","rooms","per","origin","ownEnums","findEnumsForObjectAsIds","enumName","funcs","findFunctionsForObject","pef","formatValue","state","texts","dateFormat","isFloatComma","states","getStates","isCommon","valText","v","val","match","Date","round","s","unit","valFull","t","value","ack","ts","formatDate","lc","from","user","c","quality","quality2text","q","nbr","prepareSparkData","values","time","DEFAULT_FILTER","ITEM_IMAGES","channel","device","adapter","meta","chart","config","group","host","schedule","script","folder","StyledBadge","withStyles","badge","border","paper","Badge","SCREEN_WIDTHS","xs","idWidth","fields","widths","sm","md","buttons","lg","changedFrom","qualityCode","timestamp","lastChange","xl","objectsAlreadyLoaded","ObjectBrowser","props","console","log","findItem","pausedSubscribes","statesUpdateTimer","setTimeout","forceUpdate","clearTimeout","newState","event","filterFunc","columnsForAdmin","parse","parseObjectForAdmins","setState","objectsUpdateTimer","lastAppliedFilter","result","mobile","objId","e","_enObj","enObj","socket","setObject","objs","hasOwn","_createAllEnums","getState","def","window","alert","evt","f","target","files","r","FileReader","onload","contents","json","len","loadObjects","readAsText","selected","selectedNonObject","filter","acl","check","valueNum","arrayTooltipText","funcRenderStateObject","rights","ownerGroup","ownerUser","owner","map","resizerActiveDiv","widthNext","resizeLeft","resizerOldWidth","clientX","resizerPosition","resizerOldWidthNext","resizerMin","resizerNextMin","resizerCurrentWidths","resizerActiveName","resizerNextName","resizerNextDiv","columnsVisibility","scrollBarWidth","customWidth","resizeTimeout","_localStorage","localStorage","setItem","dialogName","removeEventListener","resizerMouseMove","resizerMouseUp","resizerActiveIndex","storedWidths","parentNode","dataset","previousElementSibling","handle","querySelector","nextElementSibling","min","offsetWidth","addEventListener","calculateColumnsVisibility","removeItem","extendObject","error","lastSelectedItems","getItem","expanded","defaultFilters","_sessionStorage","sessionStorage","tableRef","createRef","filterRefs","selectedFound","subscribes","visibleCols","columns","pos","indexOf","customDialog","router","location","getLocation","dialog","pauseSubscribe","columnsWidths","foldersFirst","statesView","objectStatesView","loaded","filterKey","depth","expandAllVisible","toast","editObjectDialog","viewFileDialog","roleDialog","columnsSelectorShow","columnsAuto","columnsDialogTransparent","columnsEditCustomDialog","customColumnDialogValueChanged","showExportDialog","linesEnabled","edit","editObject","deleteObject","customConfig","copyState","editState","close","filter_id","filter_name","filter_type","filter_role","filter_room","filter_func","filter_custom","objectChangedByUser","objectChangedBy","objectChangedFrom","stateChangedBy","stateChangedFrom","deviceError","deviceDisconnected","deviceConnected","aclOwner_read_object","aclOwner_read_state","aclOwner_write_object","aclOwner_write_state","aclGroup_read_object","aclGroup_read_state","aclGroup_write_object","aclGroup_write_state","aclEveryone_read_object","aclEveryone_read_state","aclEveryone_write_object","aclEveryone_write_state","levelPadding","update","Promise","resolve","updating","then","objectsWorker","getObjects","_objects","getObjectViewSystem","getObject","moreObjects","systemConfig","assign","defaultNewAcl","object","defaultHistory","getAdditionalColumns","node","expandAllSelected","onAfterSelect","showError","cb","changed","path","isDouble","getObjectName","language","onSelect","loadAllObjects","registerHandler","onObjectChange","subscribeObject","filterTimer","unregisterHandler","unsubscribeObject","pattern","unsubscribeState","onStateChange","toggleItem","multiSelect","getAdapters","instances","recordStates","unsubscribe","_root","_partyId","shift","adminColumns","objTypes","warn","subscribeState","isPause","_name","current","tagName","onFilterChanged","childNodes","someNotEmpty","attr","underline","onFilter","firstChild","hasIcons","newFilter","getFilterSelect","onExpandAll","expandDepth","collapseDepth","idDot","idLen","key","isAll","_getSelectedIdsForExport","getEnumsForId","_exportObjects","allowObjectCreation","refreshComponent","showExpertButton","disableColumnSelector","onCollapseAll","onExpandVisible","onCollapseVisible","onStatesViewVisible","objectAddBoolean","toolTipObjectCreating","modalNewObj","objectImportExport","input","handleJsonUpload","objectBrowserEditObject","objectEditBoolean","doNavigate","text","stopPropagation","preventDefault","copyToClipboard","onObjectDelete","objectEditOfAccessControl","modalEditOfAccess","modalEditOfAccessObjData","start","cellButtonsButtonIcon","aclTooltip","renderTooltipAccessControl","aclSystemConfig","Number","isNaN","dontDelete","objectCustomDialog","sparkline","now","setHours","getHours","setMinutes","setSeconds","setMilliseconds","nowMs","getTime","getHistory","end","step","addID","aggregate","sparks","getElementsByClassName","subscribe","fill","copyText","onCopy","popper","readHistory","enumIds","newArray","enumId","promises","all","_syncEnum","toCheck","itemEnums","enumDialogEnums","enumsOriginal","syncEnum","labelId","objectBrowserEditRole","ObjectBrowserEditRole","isSave","customColumnDialog","parseFloat","setCustomValue","it","Error","getCustomValue","initValue","keyCode","onColumnsEditCustomDialogClose","checked","pathText","notEditable","align","isExpanded","iconFolder","itemType","toggleExpanded","iconItem","typeImg","checkbox","valueEditable","objectBrowserViewFile","enumEditable","checkVisibleObjectType","newValueTitle","readWriteAlias","alias","read","scrollToItem","checkColor","invertBackground","themeName","distance","colorDistance","themeType","icons","statusStates","colorSet","errorId","onlineId","offlineId","dragEnabled","adapterColumns","renderCustomValue","updateOpened","renderColumnValue","renderColumnButtons","items","leaf","renderLeaf","DragWrapper","renderItem","WIDTHS","nameHeader","widthSum","column","newWidth","reduce","accumulator","filterClearInValue","isFilterEmpty","clearFilter","getFilterInput","resizerMouseDown","resizerReset","getFilterSelectType","getFilterSelectRole","getFilterSelectRoom","getFilterSelectFunction","getFilterSelectCustoms","clientWidth","getElementById","scrollIntoView","behavior","block","inline","ObjectCustomDialog","changedIds","valAck","expire","ObjectBrowserEditObject","updateAlias","ObjectBrowserViewFile","objectBrowserValue","ObjectBrowserValue","res","onUpdate","unsubscribeTimer","jsonFilter","checkUnsubscribes","getToolbar","renderHeader","renderToast","renderColumnsEditCustomDialog","renderColumnsSelectorDialog","renderCustomDialog","renderEditValueDialog","renderEditObjectDialog","renderViewObjectFileDialog","renderEditRoleDialog","renderEnumDialog","renderErrorDialog","renderExportDialog","modalNewObject","modalEditOfAccessControl","p","Component","defaultProps","propTypes","PropTypes","string","oneOfType","array","bool","isRequired","number","dragSettings","useDrag","_export","withWidth"],"sources":["ObjectBrowser.js"],"sourcesContent":["/**\n * Copyright 2020-2022, bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n **/\nimport React, { Component, createRef } from 'react';\nimport PropTypes from 'prop-types';\nimport withStyles from '@mui/styles/withStyles';\nimport SVG from 'react-inlinesvg';\n\nimport IconButton from '@mui/material/IconButton';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport MenuItem from '@mui/material/MenuItem';\nimport Select from '@mui/material/Select';\nimport FormControl from '@mui/material/FormControl';\nimport Input from '@mui/material/Input';\nimport Grid from '@mui/material/Grid';\nimport Badge from '@mui/material/Badge';\nimport Tooltip from '@mui/material/Tooltip';\nimport Snackbar from '@mui/material/Snackbar';\nimport Checkbox from '@mui/material/Checkbox';\nimport List from '@mui/material/List';\nimport ListItem from '@mui/material/ListItem';\nimport ListItemIcon from '@mui/material/ListItemIcon';\nimport ListItemSecondaryAction from '@mui/material/ListItemSecondaryAction';\nimport ListItemText from '@mui/material/ListItemText';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport Dialog from '@mui/material/Dialog';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogContentText from '@mui/material/DialogContentText';\nimport DialogActions from '@mui/material/DialogActions';\nimport Button from '@mui/material/Button';\nimport Fab from '@mui/material/Fab';\nimport TextField from '@mui/material/TextField';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport Switch from '@mui/material/Switch';\n// import ListItemButton from '@mui/material/ListItemButton';\n// import Slider from '@mui/material/Slider';\n// import Typography from '@mui/material/Typography';\n\n// Icons\nimport IconEdit from '@mui/icons-material/Edit';\nimport IconDelete from '@mui/icons-material/Delete';\nimport IconConfig from '@mui/icons-material/Settings';\nimport IconSystem from '@mui/icons-material/SettingsApplications';\nimport IconPhoto from '@mui/icons-material/Photo';\nimport IconGroup from '@mui/icons-material/SupervisedUserCircle';\nimport IconSchedule from '@mui/icons-material/CalendarToday';\nimport IconUser from '@mui/icons-material/PersonOutlined';\nimport IconHost from '@mui/icons-material/Router';\nimport IconConnection from '@mui/icons-material/Wifi';\nimport IconInfo from '@mui/icons-material/Info';\nimport IconMeta from '@mui/icons-material/Description';\nimport IconScript from '@mui/icons-material/Code';\nimport IconChart from '@mui/icons-material/ShowChart';\nimport IconEnum from '@mui/icons-material/ListAlt';\nimport IconColumns from '@mui/icons-material/ViewColumn';\nimport IconClose from '@mui/icons-material/Close';\nimport IconCheck from '@mui/icons-material/Check';\nimport BuildIcon from '@mui/icons-material/Build';\nimport PublishIcon from '@mui/icons-material/Publish';\nimport AddIcon from '@mui/icons-material/Add';\nimport RefreshIcon from '@mui/icons-material/Refresh';\nimport LooksOneIcon from '@mui/icons-material/LooksOne';\nimport PressButtonIcon from '@mui/icons-material/RoomService';\nimport IconError from '@mui/icons-material/Error';\nimport IconDisconnected from '@mui/icons-material/WifiOff';\n\nimport IconExpert from '../icons/IconExpert';\nimport IconAdapter from '../icons/IconAdapter';\nimport IconAlias from '../icons/IconAlias';\nimport IconChannel from '../icons/IconChannel';\nimport IconCopy from '../icons/IconCopy';\nimport IconDevice from '../icons/IconDevice';\nimport IconDocument from '../icons/IconDocument';\nimport IconDocumentReadOnly from '../icons/IconDocumentReadOnly';\nimport IconInstance from '../icons/IconInstance';\nimport IconState from '../icons/IconState';\nimport IconClosed from '../icons/IconClosed';\nimport IconOpen from '../icons/IconOpen';\nimport IconClearFilter from '../icons/IconClearFilter';\n\n// own\nimport Icon from './Icon';\nimport withWidth from './withWidth';\nimport Utils from './Utils';\nimport TabContainer from './TabContainer';\nimport TabContent from './TabContent';\nimport TabHeader from './TabHeader';\n\nconst ICON_SIZE = 24;\nconst ROW_HEIGHT = 32;\nconst ITEM_LEVEL = 16;\nconst SMALL_BUTTON_SIZE = 20;\nconst COLOR_NAME_SYSTEM = '#ff6d69';\nconst COLOR_NAME_SYSTEM_ADAPTER = '#5773ff';\nconst COLOR_NAME_ERROR_DARK = '#ff413c';\nconst COLOR_NAME_ERROR_LIGHT = '#86211f';\nconst COLOR_NAME_CONNECTED_DARK = '#57ff45';\nconst COLOR_NAME_CONNECTED_LIGHT = '#098c04';\nconst COLOR_NAME_DISCONNECTED_DARK = '#f3ad11';\nconst COLOR_NAME_DISCONNECTED_LIGHT = '#6c5008';\n\nconst styles = theme => ({\n toolbar: {\n minHeight: 38, // Theme.toolbar.height,\n // boxShadow: '0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12)'\n },\n toolbarButtons: {\n padding: 4,\n marginLeft: 4,\n },\n switchColumnAuto: {\n marginLeft: theme.spacing(2),\n },\n dialogColumns: {\n transition: 'opacity 1s',\n },\n dialogColumnsLabel: {\n fontSize: 12,\n paddingTop: theme.spacing(1),\n },\n columnCustom: {\n width: '100%',\n display: 'inline-block',\n },\n columnCustomEditable: {\n cursor: 'text',\n },\n columnCustomCenter: {\n textAlign: 'center',\n },\n columnCustomLeft: {\n textAlign: 'left',\n },\n columnCustomRight: {\n textAlign: 'right',\n },\n width100: {\n width: '100%',\n },\n transparent_10: {\n opacity: 0.1,\n },\n transparent_20: {\n opacity: 0.2,\n },\n transparent_30: {\n opacity: 0.3,\n },\n transparent_40: {\n opacity: 0.4,\n },\n transparent_50: {\n opacity: 0.5,\n },\n transparent_60: {\n opacity: 0.6,\n },\n transparent_70: {\n opacity: 0.7,\n },\n transparent_80: {\n opacity: 0.8,\n },\n transparent_90: {\n opacity: 0.9,\n },\n transparent_100: {\n opacity: 1,\n },\n columnsDialogInputWidth: {\n width: 80,\n },\n headerRow: {\n paddingLeft: theme.spacing(1),\n height: 38,\n whiteSpace: 'nowrap',\n userSelect: 'none',\n },\n buttonClearFilter: {\n position: 'relative',\n float: 'right',\n padding: 0,\n },\n buttonClearFilterIcon: {\n zIndex: 2,\n position: 'absolute',\n top: 0,\n left: 0,\n color: '#FF0000',\n opacity: 0.7,\n },\n\n tableDiv: {\n paddingTop: 0, // theme.spacing(1),\n paddingLeft: 0,\n width: `calc(100% - ${theme.spacing(1)})`,\n height: 'calc(100% - 38px)',\n overflow: 'auto',\n },\n tableRow: {\n paddingLeft: theme.spacing(1),\n height: ROW_HEIGHT,\n lineHeight: `${ROW_HEIGHT}px`,\n verticalAlign: 'top',\n userSelect: 'none',\n width: '100%',\n '&:hover': {\n background: `${theme.palette.mode === 'dark' ? theme.palette.primary.dark : theme.palette.primary.light} !important`,\n color: Utils.invertColor(theme.palette.primary.main, true),\n },\n whiteSpace: 'nowrap',\n flexWrap: 'nowrap',\n },\n tableRowLines: {\n borderBottom: `1px solid ${theme.palette.mode === 'dark' ? '#8888882e' : '#8888882e'}`,\n '& > div': {\n borderRight: `1px solid ${theme.palette.mode === 'dark' ? '#8888882e' : '#8888882e'}`,\n },\n },\n tableRowNoDragging: {\n cursor: 'pointer',\n },\n tableRowAlias: {\n height: ROW_HEIGHT + 10,\n },\n tableRowAliasReadWrite: {\n height: ROW_HEIGHT + 22,\n },\n checkBox: {\n padding: 0,\n },\n cellId: {\n position: 'relative',\n fontSize: '1rem',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n // verticalAlign: 'top',\n // position: 'relative',\n '& .copyButton': {\n display: 'none',\n },\n '&:hover .copyButton': {\n display: 'block',\n },\n '& .iconOwn': {\n display: 'block',\n width: ROW_HEIGHT - 4,\n height: ROW_HEIGHT - 4,\n marginTop: 2,\n float: 'right',\n },\n '&:hover .iconOwn': {\n display: 'none',\n },\n '& *': {\n width: 'initial',\n },\n },\n cellIdSpan: {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n // display: 'inline-block',\n // verticalAlign: 'top',\n },\n cellIdIconFolder: {\n marginRight: theme.spacing(1),\n width: ROW_HEIGHT - 4,\n height: ROW_HEIGHT - 4,\n cursor: 'pointer',\n color: theme.palette.secondary.main || '#fbff7d',\n verticalAlign: 'top',\n },\n cellIdIconDocument: {\n verticalAlign: 'middle',\n marginLeft: (ROW_HEIGHT - SMALL_BUTTON_SIZE) / 2,\n marginRight: theme.spacing(1),\n width: SMALL_BUTTON_SIZE,\n height: SMALL_BUTTON_SIZE,\n },\n cellIdIconOwn: {\n\n },\n cellIdTooltip: {\n fontSize: 14,\n },\n cellIdTooltipLink: {\n color: \"#7ec2fd\",\n \"&:hover\": {\n color: \"#7ec2fd\"\n },\n \"&:visited\": {\n color: \"#7ec2fd\"\n }\n },\n cellCopyButton: {\n width: SMALL_BUTTON_SIZE,\n height: SMALL_BUTTON_SIZE,\n top: (ROW_HEIGHT - SMALL_BUTTON_SIZE) / 2,\n opacity: 0.8,\n '&:hover': {\n opacity: 1,\n },\n position: 'absolute',\n right: 3,\n },\n cellEditButton: {\n width: SMALL_BUTTON_SIZE,\n height: SMALL_BUTTON_SIZE,\n color: 'white',\n position: 'absolute',\n top: (ROW_HEIGHT - SMALL_BUTTON_SIZE) / 2,\n right: SMALL_BUTTON_SIZE + 3,\n opacity: 0.7,\n '&:hover': {\n opacity: 1,\n },\n },\n cellName: {\n display: 'inline-block',\n verticalAlign: 'top',\n fontSize: 14,\n marginLeft: 5,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n position: 'relative',\n '& .copyButton': {\n display: 'none',\n },\n '&:hover .copyButton': {\n display: 'block',\n },\n },\n cellIdAlias: {\n fontStyle: 'italic',\n fontSize: 12,\n opacity: 0.7,\n '&:hover': {\n color: theme.palette.mode === 'dark' ? '#009900' : '#007700',\n },\n },\n cellIdAliasReadWriteDiv: {\n height: 24,\n marginTop: -5,\n },\n cellIdAliasAlone: {\n lineHeight: 0,\n },\n cellIdAliasReadWrite: {\n lineHeight: '12px',\n },\n cellType: {\n display: 'inline-block',\n verticalAlign: 'top',\n '& .itemIcon': {\n verticalAlign: 'middle',\n width: ICON_SIZE,\n height: ICON_SIZE,\n display: 'inline-block',\n },\n '& .itemIconFolder': {\n marginLeft: 3,\n },\n },\n cellRole: {\n display: 'inline-block',\n verticalAlign: 'top',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n },\n cellRoom: {\n display: 'inline-block',\n verticalAlign: 'top',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n },\n cellEnumParent: {\n opacity: 0.4,\n },\n cellFunc: {\n display: 'inline-block',\n verticalAlign: 'top',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n },\n cellValue: {\n display: 'inline-block',\n verticalAlign: 'top',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n },\n cellValueButton: {\n marginTop: 5,\n '&:active': {\n transform: 'scale(0.8)',\n },\n },\n cellValueButtonFalse: {\n opacity: 0.3,\n },\n cellAdapter: {\n display: 'inline-block',\n verticalAlign: 'top',\n },\n cellValueTooltip: {\n fontSize: 12,\n },\n cellValueText: {\n width: '100%',\n height: ROW_HEIGHT,\n fontSize: 16,\n display: 'inline-block',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n position: 'relative',\n verticalAlign: 'top',\n '& .copyButton': {\n display: 'none',\n },\n '&:hover .copyButton': {\n display: 'block',\n },\n },\n cellValueFile: {\n color: '#2837b9',\n },\n cellValueTooltipTitle: {\n fontStyle: 'italic',\n width: 100,\n display: 'inline-block',\n },\n cellValueTooltipValue: {\n width: 120,\n display: 'inline-block',\n // overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n },\n cellValueTooltipBoth: {\n width: 220,\n display: 'inline-block',\n whiteSpace: 'nowrap',\n },\n cellValueTooltipBox: {\n width: 250,\n overflow: 'hidden',\n },\n cellValueTextUnit: {\n marginLeft: theme.spacing(0.5),\n opacity: 0.8,\n },\n newValue: {\n animation: '$newValueAnimation 2s ease-in-out',\n },\n '@keyframes newValueAnimation': {\n '0%': {\n color: '#00f900',\n },\n '80%': {\n color: '#008000',\n },\n '100%': {\n color: theme.palette.mode === 'dark' ? '#fff' : '#000',\n },\n },\n cellValueTextState: {\n opacity: 0.7,\n },\n cellValueTooltipCopy: {\n position: 'absolute',\n bottom: 3,\n right: 3,\n },\n cellValueTooltipEdit: {\n position: 'absolute',\n bottom: 3,\n right: 15,\n },\n cellButtons: {\n display: 'inline-block',\n verticalAlign: 'top',\n },\n cellButtonsButton: {\n display: 'inline-block',\n opacity: 0.7,\n width: SMALL_BUTTON_SIZE + 4,\n height: SMALL_BUTTON_SIZE + 4,\n '&:hover': {\n opacity: 1,\n },\n paddingTop: 0,\n paddingLeft: 0,\n marginTop: -2,\n },\n cellButtonsEmptyButton: {\n fontSize: 12,\n },\n cellButtonMinWidth: {\n minWidth: 47,\n },\n cellButtonsButtonAlone: {\n marginLeft: SMALL_BUTTON_SIZE + 4,\n paddingTop: 0,\n marginTop: -2,\n },\n cellButtonsButtonWithCustoms: {\n color: theme.palette.secondary.main,\n },\n cellButtonsButtonWithoutCustoms: {\n opacity: 0.2,\n },\n cellButtonsValueButton: {\n position: 'absolute',\n display: 'inline-block',\n top: SMALL_BUTTON_SIZE / 2 - 2,\n opacity: 0.7,\n width: SMALL_BUTTON_SIZE - 2,\n height: SMALL_BUTTON_SIZE - 2,\n color: theme.palette.action.active,\n '&:hover': {\n opacity: 1,\n },\n },\n cellButtonsValueButtonCopy: {\n right: theme.spacing(1),\n cursor: 'pointer',\n },\n cellButtonsValueButtonEdit: {\n right: SMALL_BUTTON_SIZE / 2 + parseInt(theme.spacing(2), 10),\n },\n\n filteredOut: {\n opacity: 0.5,\n },\n filteredParentOut: {\n opacity: 0.3,\n },\n filterInput: {\n marginTop: 0,\n marginBottom: 0,\n },\n selectIcon: {\n width: 24,\n height: 24,\n marginRight: 4,\n },\n selectNone: {\n opacity: 0.5,\n },\n itemSelected: {\n background: `${theme.palette.primary.main} !important`,\n color: `${Utils.invertColor(theme.palette.primary.main, true)} !important`,\n },\n header: {\n width: '100%',\n },\n headerCell: {\n display: 'inline-block',\n verticalAlign: 'top',\n },\n headerCellValue: {\n paddingTop: 4,\n // paddingLeft: 5,\n fontSize: 16,\n },\n headerCellInput: {\n width: 'calc(100% - 5px)',\n height: ROW_HEIGHT,\n paddingTop: 3,\n '& .itemIcon': {\n verticalAlign: 'middle',\n width: ICON_SIZE,\n height: ICON_SIZE,\n display: 'inline-block',\n },\n },\n headerCellSelectItem: {\n '& .itemIcon': {\n width: ICON_SIZE,\n height: ICON_SIZE,\n marginRight: 5,\n display: 'inline-block',\n },\n },\n visibleButtons: {\n color: '#2196f3',\n opacity: 0.7,\n },\n grow: {\n flexGrow: 1,\n },\n enumIconDiv: {\n marginRight: theme.spacing(1),\n width: 32,\n height: 32,\n borderRadius: 8,\n background: '#FFFFFF',\n },\n enumIcon: {\n marginTop: 4,\n marginLeft: 4,\n width: 24,\n height: 24,\n },\n enumDialog: {\n overflow: 'hidden',\n },\n enumList: {\n minWidth: 250,\n height: 'calc(100% - 50px)',\n overflow: 'auto',\n },\n enumButton: {\n float: 'right',\n },\n enumCheckbox: {\n minWidth: 0,\n },\n buttonDiv: {\n display: 'flex',\n height: '100%',\n alignItems: 'center',\n },\n aclText: {\n fontSize: 13,\n },\n rightsObject: {\n color: '#55ff55',\n paddingLeft: 3,\n },\n rightsState: {\n color: '#86b6ff',\n paddingLeft: 3,\n },\n textCenter: {\n padding: 12,\n textAlign: 'center',\n },\n tooltipAccessControl: {\n display: 'flex',\n flexDirection: 'column',\n },\n '@media screen and (max-width: 465px)': {\n columnsDialogInputWidth: {\n width: 50,\n },\n fontSizeTitle: {\n '& *': {\n fontSize: 12,\n },\n },\n },\n '@media screen and (max-width: 700px)': {\n\n },\n '@media screen and (max-width: 430px)': {\n\n },\n draggable: {\n cursor: 'copy',\n },\n nonDraggable: {\n cursor: 'no-drop',\n },\n selectClearButton: {\n position: 'absolute',\n top: 0,\n right: 0,\n borderRadius: 20,\n backgroundColor: theme.palette.background.default,\n },\n iconDeviceConnected: {\n color: theme.palette.mode === 'dark' ? COLOR_NAME_CONNECTED_DARK : COLOR_NAME_CONNECTED_LIGHT,\n opacity: 0.8,\n position: 'absolute',\n top: 4,\n right: 32,\n width: 20,\n },\n iconDeviceDisconnected: {\n color: theme.palette.mode === 'dark' ? COLOR_NAME_DISCONNECTED_DARK : COLOR_NAME_DISCONNECTED_LIGHT,\n opacity: 0.8,\n position: 'absolute',\n top: 4,\n right: 32,\n width: 20,\n },\n iconDeviceError: {\n color: theme.palette.mode === 'dark' ? COLOR_NAME_ERROR_DARK : COLOR_NAME_ERROR_LIGHT,\n opacity: 0.8,\n position: 'absolute',\n top: 4,\n right: 50,\n width: 20,\n },\n resizeHandle: {\n display: 'block',\n position: 'absolute',\n cursor: 'col-resize',\n width: 7,\n top: 2,\n bottom: 2,\n zIndex: 1,\n },\n resizeHandleRight: {\n right: 3,\n borderRight: '2px dotted #888',\n '&:hover': {\n borderColor: '#ccc',\n borderRightStyle: 'solid',\n },\n '&.active': {\n borderColor: '#517ea5',\n borderRightStyle: 'solid',\n },\n },\n resizeHandleLeft: {\n left: -4,\n borderLeft: '2px dotted #888',\n '&:hover': {\n borderColor: '#ccc',\n borderLeftStyle: 'solid',\n },\n '&.active': {\n borderColor: '#517ea5',\n borderLeftStyle: 'solid',\n },\n },\n invertedBackground: {\n backgroundColor: theme.palette.mode === 'dark' ? '#9a9a9a' : '#565656',\n padding: '0 3px',\n borderRadius: '2px 0 0 2px',\n },\n invertedBackgroundFlex: {\n backgroundColor: theme.palette.mode === 'dark' ? '#9a9a9a' : '#565656',\n borderRadius: '0 2px 2px 0',\n },\n});\n\nfunction generateFile(filename, obj) {\n const el = document.createElement('a');\n el.setAttribute('href', `data:application/json;charset=utf-8,${encodeURIComponent(JSON.stringify(obj, null, 2))}`);\n el.setAttribute('download', filename);\n\n el.style.display = 'none';\n document.body.appendChild(el);\n\n el.click();\n\n document.body.removeChild(el);\n}\n\n// d=data, t=target, s=start, e=end, m=middle\nfunction binarySearch(list, find, _start, _end) {\n _start = _start || 0;\n if (_end === undefined) {\n _end = list.length - 1;\n if (!_end) {\n return list[0] === find;\n }\n }\n const middle = Math.floor((_start + _end) / 2);\n if (find === list[middle]) {\n return list[middle];\n }\n if (_end - 1 === _start) {\n return list[_start] === find || list[_end] === find;\n }\n if (find > list[middle]) {\n return binarySearch(list, find, middle, _end);\n }\n if (find < list[middle]) {\n return binarySearch(list, find, _start, middle);\n }\n return false;\n}\n\nfunction getName(name, lang) {\n if (name && typeof name === 'object') {\n return (name[lang] || name.en || '').toString();\n }\n\n return (name || '').toString();\n}\n\nfunction getSelectIdIcon(objects, id, imagePrefix) {\n imagePrefix = imagePrefix || '.'; // http://localhost:8081';\n let src = '';\n const _id_ = `system.adapter.${id}`;\n const aIcon = id && objects[_id_] && objects[_id_].common && objects[_id_].common.icon;\n if (aIcon) {\n // if not BASE64\n if (!aIcon.startsWith('data:image/')) {\n if (aIcon.includes('.')) {\n src = `${imagePrefix}/adapter/${objects[_id_].common.name}/${aIcon}`;\n } else if (aIcon && aIcon.length < 3) {\n return aIcon; // utf-8\n } else {\n return null; // '<i class=\"material-icons iob-list-icon\">' + objects[_id_].common.icon + '</i>';\n }\n } else {\n if (aIcon.startsWith('data:image/svg')) {\n src = <SVG className=\"iconOwn\" src={aIcon} width={28} height={28} />;\n } else {\n src = aIcon;\n }\n }\n } else {\n const common = objects[id] && objects[id].common;\n\n if (common) {\n const cIcon = common.icon;\n if (cIcon) {\n if (!cIcon.startsWith('data:image/')) {\n if (cIcon.includes('.')) {\n let instance;\n if (objects[id].type === 'instance' || objects[id].type === 'adapter') {\n src = `${imagePrefix}/adapter/${common.name}/${cIcon}`;\n } else if (id && id.startsWith('system.adapter.')) {\n instance = id.split('.', 3);\n if (cIcon[0] === '/') {\n instance[2] += cIcon;\n } else {\n instance[2] += `/${cIcon}`;\n }\n src = `${imagePrefix}/adapter/${instance[2]}`;\n } else {\n instance = id.split('.', 2);\n if (cIcon[0] === '/') {\n instance[0] += cIcon;\n } else {\n instance[0] += `/${cIcon}`;\n }\n src = `${imagePrefix}/adapter/${instance[0]}`;\n }\n } else if (aIcon && aIcon.length < 3) {\n return aIcon; // utf-8\n } else {\n return null;\n }\n } else if (cIcon.startsWith('data:image/svg')) {\n // if base 64 image\n src = <SVG className=\"iconOwn\" src={cIcon} width={28} height={28} />;\n } else {\n src = cIcon;\n }\n }\n }\n }\n\n return src || null;\n}\n\nfunction applyFilter(item, filters, lang, objects, context, counter, customFilter, selectedTypes, _depth) {\n _depth = _depth || 0;\n let filteredOut = false;\n if (!context) {\n context = {};\n if (filters.id) {\n context.id = filters.id.toLowerCase();\n }\n if (filters.name) {\n context.name = filters.name.toLowerCase();\n }\n if (filters.type) {\n context.type = filters.type.toLowerCase();\n }\n if (filters.custom) {\n context.custom = filters.custom.toLowerCase();\n }\n if (filters.role) {\n context.role = filters.role.toLowerCase();\n }\n if (filters.room) {\n context.room = (objects[filters.room] && objects[filters.room].common && objects[filters.room].common.members) || [];\n }\n if (filters.func) {\n context.func = (objects[filters.func] && objects[filters.func].common && objects[filters.func].common.members) || [];\n }\n }\n\n const data = item.data;\n\n if (data && data.id) {\n const common = data.obj?.common;\n\n if (customFilter) {\n if (customFilter.type) {\n if (typeof customFilter.type === 'string') {\n if (!data.obj || customFilter.type !== data.obj.type) {\n filteredOut = true;\n }\n } else if (Array.isArray(customFilter.type)) {\n if (!data.obj || !customFilter.type.includes(data.obj.type)) {\n filteredOut = true;\n }\n }\n }\n if (!filteredOut && customFilter.common?.type) {\n if (!common?.type) {\n filteredOut = true;\n } else if (typeof customFilter.common.type === 'string') {\n if (customFilter.common.type !== common.type) {\n filteredOut = true;\n }\n } else if (Array.isArray(customFilter.common.type)) {\n if (!customFilter.type.includes(common.type)) {\n filteredOut = true;\n }\n }\n }\n if (!filteredOut && customFilter.common?.role) {\n if (!common?.role) {\n filteredOut = true;\n } else if (typeof customFilter.common.role === 'string') {\n if (common.role.startsWith(customFilter.common.role)) {\n filteredOut = true;\n }\n } else if (Array.isArray(customFilter.common.role)) {\n if (!customFilter.common.role.find(role => customFilter.role.includes(role))) {\n filteredOut = true;\n }\n }\n }\n if (!filteredOut && customFilter.common?.custom) {\n if (!common?.custom) {\n filteredOut = true;\n } else\n if (customFilter.common.custom === '_dataSources') {\n // TODO: make it configurable\n if (!Object.keys(common.custom).find(id => id.startsWith('history.') || id.startsWith('sql.') || id.startsWith('influxdb.'))) {\n filteredOut = true;\n }\n } else\n if (customFilter.common.custom !== true &&\n !Object.keys(common.custom).find(id => id.startsWith(customFilter.common.custom))\n ) {\n filteredOut = true;\n }\n }\n }\n\n if (!filteredOut && !filters.expertMode) {\n filteredOut =\n data.id === 'system' ||\n data.id === 'enum' ||\n // (data.obj && data.obj.type === 'meta') ||\n data.id.startsWith('system.') ||\n data.id.startsWith('enum.') ||\n data.id.startsWith('_design/') ||\n data.id.endsWith('.admin') ||\n (common && common.expert);\n }\n if (!filteredOut && context.id) {\n if (data.fID === undefined) {\n data.fID = data.id.toLowerCase();\n }\n filteredOut = !data.fID.includes(context.id);\n }\n if (!filteredOut && context.name) {\n if (common) {\n if (data.fName === undefined) {\n data.fName = (common && getName(common.name, lang)) || '';\n data.fName = data.fName.toLowerCase();\n }\n filteredOut = !data.fName.includes(context.name);\n } else {\n filteredOut = true;\n }\n }\n if (!filteredOut && filters.role && common) {\n if (common) {\n filteredOut = !(common.role && common.role.startsWith(context.role));\n } else {\n filteredOut = true;\n }\n }\n if (!filteredOut && context.room) {\n filteredOut = !context.room.find(id => id === data.id || data.id.startsWith(`${id}.`));\n }\n if (!filteredOut && context.func) {\n filteredOut = !context.func.find(id => id === data.id || data.id.startsWith(`${id}.`));\n }\n if (!filteredOut && context.type) {\n filteredOut = !(data.obj && data.obj.type && data.obj.type === context.type);\n }\n if (!filteredOut && selectedTypes) {\n filteredOut = !(data.obj && data.obj.type && selectedTypes.includes(data.obj.type));\n }\n if (!filteredOut && context.custom) {\n if (common) {\n filteredOut = !common.custom || !common.custom[context.custom];\n } else {\n filteredOut = true;\n }\n }\n }\n\n data.visible = !filteredOut;\n\n data.hasVisibleChildren = false;\n if (item.children && _depth < 20) {\n item.children.forEach(_item => {\n const visible = applyFilter(_item, filters, lang, objects, context, counter, customFilter, selectedTypes, _depth + 1);\n if (visible) {\n data.hasVisibleChildren = true;\n }\n });\n }\n\n // const visible = data.visible || data.hasVisibleChildren;\n data.sumVisibility = data.visible || data.hasVisibleChildren;// || data.hasVisibleParent;\n if (counter && data.sumVisibility) {\n counter.count++;\n }\n\n // show all children of visible object with opacity 0.5\n if (data.id && data.sumVisibility && item.children) {\n item.children.forEach(_item => _item.data.hasVisibleParent = true);\n }\n\n return data.visible || data.hasVisibleChildren;\n}\n\nfunction getVisibleItems(item, type, objects, _result) {\n _result = _result || [];\n const data = item.data;\n if (data.sumVisibility) {\n data.id && objects[data.id] && (!type || objects[data.id].type === type) && _result.push(data.id);\n item.children?.forEach(_item =>\n getVisibleItems(_item, type, objects, _result));\n }\n\n return _result;\n}\n\nfunction getSystemIcon(objects, id, k, imagePrefix) {\n let icon;\n\n // system or design have special icons\n if (id.startsWith('_design/') || (id === 'system')) {\n icon = <IconSystem className=\"iconOwn\" />;\n } else if (id === '0_userdata' || id === '0_userdata.0') {\n icon = <IconPhoto className=\"iconOwn\" />;\n } else if (id === 'alias' || id === 'alias.0') {\n icon = <IconAlias className=\"iconOwn\" />;\n } else if (id === 'system.adapter') {\n icon = <IconSystem className=\"iconOwn\" />;\n } else if (id === 'system.group') {\n icon = <IconGroup className=\"iconOwn\" />;\n } else if (id === 'system.user') {\n icon = <IconUser className=\"iconOwn\" />;\n } else if (id === 'system.host') {\n icon = <IconHost className=\"iconOwn\" />;\n } else if (id.endsWith('.connection') || id.endsWith('.connected')) {\n icon = <IconConnection className=\"iconOwn\" />;\n } else if (id.endsWith('.info')) {\n icon = <IconInfo className=\"iconOwn\" />;\n } else if (objects[id] && objects[id].type === 'meta') {\n icon = <IconMeta className=\"iconOwn\" />;\n } else if (k < 2) {\n // detect \"cloud.0\"\n if (objects[`system.adapter.${id}`]) {\n icon = getSelectIdIcon(objects, `system.adapter.${id}`, imagePrefix);\n }\n }\n\n return icon || null;\n}\n\nfunction getIdFieldTooltip(data, classes, lang) {\n if (data?.obj?.common?.desc && data.obj.common.desc !== '') {\n let tooltip = '';\n\n if (typeof data?.obj?.common?.desc === 'object' && data.obj.common.desc[lang] !== undefined) {\n tooltip = data.obj.common.desc[lang];\n } else if (typeof data?.obj?.common?.desc === 'object' && data.obj.common.desc['en'] !== undefined) {\n tooltip = data.obj.common.desc['en'];\n } else if (typeof data?.obj?.common?.desc === 'object' && data.obj.common.desc[lang] === undefined) {\n return data.id;\n } else {\n tooltip = data.obj.common.desc;\n }\n\n if (tooltip?.startsWith('http')) {\n return <a\n className={Utils.clsx(classes.cellIdTooltipLink)}\n href={tooltip}\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n {tooltip}\n </a>;\n }\n\n return <span className={Utils.clsx(classes.cellIdTooltip)}>{tooltip}</span>;\n }\n\n return data.id;\n}\n\nfunction buildTree(objects, options) {\n options = options || {};\n const imagePrefix = options.imagePrefix || '.';\n\n const ids = Object.keys(objects);\n\n ids.sort((a, b) => {\n if (a === b) return 0;\n a = a.replace(/\\./g, '!!!');\n b = b.replace(/\\./g, '!!!');\n if (a > b) return 1;\n return -1;\n });\n\n // find empty nodes and create names for it\n let currentPathArr = [];\n let currentPath = '';\n let currentPathLen = 0;\n const root = {\n data: {\n name: '',\n id: '',\n },\n children: [],\n };\n\n const info = {\n funcEnums: [],\n roomEnums: [],\n roles: [],\n ids: [],\n types: [],\n objects,\n customs: [],\n enums: [],\n hasSomeCustoms: false,\n };\n\n let croot = root;\n\n for (let i = 0; i < ids.length; i++) {\n const id = ids[i];\n if (!id) {\n continue;\n }\n const obj = objects[id];\n const parts = id.split('.');\n\n if (obj.type && !info.types.includes(obj.type)) {\n info.types.push(obj.type);\n }\n\n if (obj) {\n const common = obj.common;\n const role = common && common.role;\n if (role && !info.roles.includes(role)) {\n info.roles.push(role);\n } else if (id.startsWith('enum.rooms.')) {\n info.roomEnums.push(id);\n info.enums.push(id);\n } else if (id.startsWith('enum.functions.')) {\n info.funcEnums.push(id);\n info.enums.push(id);\n } else if (obj.type === 'enum') {\n info.enums.push(id);\n } else if (obj.type === 'instance' && common && (common.supportCustoms || common.adminUI?.custom)) {\n info.hasSomeCustoms = true;\n info.customs.push(id.substring('system.adapter.'.length));\n }\n }\n\n info.ids.push(id);\n\n let repeat;\n\n // if next level\n do {\n repeat = false;\n\n // If current level is still OK, and we can add ID to children\n if (!currentPath || id.startsWith(`${currentPath}.`)) {\n // if more than one level added\n if (parts.length - currentPathLen > 1) {\n let curPath = currentPath;\n // generate missing levels\n for (let k = currentPathLen; k < parts.length - 1; k++) {\n curPath += (curPath ? '.' : '') + parts[k];\n // level does not exist\n if (!binarySearch(info.ids, curPath)) {\n const _croot = {\n data: {\n name: parts[k],\n parent: croot,\n id: curPath,\n obj: objects[curPath],\n level: k,\n icon: getSystemIcon(objects, curPath, k, imagePrefix),\n generated: true,\n },\n };\n\n croot.children = croot.children || [];\n croot.children.push(_croot);\n croot = _croot;\n info.ids.push(curPath); // IDs will be added by alphabet\n } else {\n croot = croot.children.find(item => item.data.name === parts[k]);\n }\n }\n }\n\n const _croot = {\n data: {\n name: parts[parts.length - 1],\n title: getName(obj && obj.common && obj.common.name, options.lang),\n obj,\n parent: croot,\n icon: getSelectIdIcon(objects, id, imagePrefix) || getSystemIcon(objects, id, 0, imagePrefix),\n id,\n hasCustoms: obj.common?.custom && Object.keys(obj.common.custom).length,\n level: parts.length - 1,\n generated: false,\n button: obj.type === 'state' && obj.common?.role && typeof obj.common.role === 'string' && obj.common.role.startsWith('button') && obj.common?.write !== false,\n },\n };\n\n croot.children = croot.children || [];\n croot.children.push(_croot);\n croot = _croot;\n\n currentPathLen = parts.length;\n currentPathArr = parts;\n currentPath = id;\n } else {\n let u = 0;\n\n while (currentPathArr[u] === parts[u]) {\n u++;\n }\n\n if (u > 0) {\n let move = currentPathArr.length;\n currentPathArr = currentPathArr.splice(0, u);\n currentPathLen = u;\n currentPath = currentPathArr.join('.');\n while (move > u) {\n croot = croot.data.parent;\n move--;\n }\n } else {\n croot = root;\n currentPathArr = [];\n currentPath = '';\n currentPathLen = 0;\n }\n repeat = true;\n }\n } while (repeat);\n }\n\n info.roomEnums.sort((a, b) => {\n const aName = getName(objects[a]?.common?.name || a.split('.').pop());\n const bName = getName(objects[b]?.common?.name || b.split('.').pop());\n if (aName > bName) {\n return 1;\n }\n if (aName < bName) {\n return -1;\n }\n return 0;\n });\n info.funcEnums.sort((a, b) => {\n const aName = getName(objects[a]?.common?.name || a.split('.').pop());\n const bName = getName(objects[b]?.common?.name || b.split('.').pop());\n if (aName > bName) {\n return 1;\n }\n if (aName < bName) {\n return -1;\n }\n return 0;\n });\n info.roles.sort();\n info.types.sort();\n\n return { info, root };\n}\n\nfunction findNode(root, id, _parts, _path, _level) {\n if (root.data.id === id) {\n return root;\n }\n if (!_parts) {\n _parts = id.split('.');\n _level = 0;\n _path = _parts[_level];\n }\n if (!root.children && root.data.id !== id) {\n return null;\n }\n let found;\n for (let i = 0; i < root.children.length; i++) {\n const _id = root.children[i].data.id;\n if (_id === _path) {\n found = root.children[i];\n break;\n } else\n if (_id > _path) {\n break;\n }\n }\n if (found) {\n return findNode(found, id, _parts, `${_path}.${_parts[_level + 1]}`, _level + 1);\n }\n\n return null;\n}\n\nfunction findRoomsForObject(data, id, lang, withParentInfo, rooms) {\n if (!id) {\n return { rooms: [], per: false };\n }\n rooms = rooms || [];\n for (let i = 0; i < data.roomEnums.length; i++) {\n const common = data.objects[data.roomEnums[i]]?.common;\n const name = getName(common.name, lang);\n\n if (common?.members?.includes(id) && !rooms.includes(name)) {\n if (!withParentInfo) {\n rooms.push(name);\n } else {\n rooms.push({ name, origin: id });\n }\n }\n }\n\n let ownEnums;\n\n // Check parent\n const parts = id.split('.');\n parts.pop();\n id = parts.join('.');\n if (data.objects[id]) {\n ownEnums = rooms.length;\n findRoomsForObject(data, id, lang, withParentInfo, rooms);\n }\n\n return { rooms, per: !ownEnums }; // pe is if the enums are from parent\n}\n\nfunction findEnumsForObjectAsIds(data, id, enumName, funcs) {\n if (!id) {\n return [];\n }\n funcs = funcs || [];\n for (let i = 0; i < data[enumName].length; i++) {\n const common = data.objects[data[enumName][i]]?.common;\n if (common?.members?.includes(id) && !funcs.includes(data[enumName][i])) {\n funcs.push(data[enumName][i]);\n }\n }\n funcs.sort();\n\n return funcs;\n}\n\nfunction findFunctionsForObject(data, id, lang, withParentInfo, funcs) {\n if (!id) {\n return { funcs: [], pef: false };\n }\n funcs = funcs || [];\n for (let i = 0; i < data.funcEnums.length; i++) {\n const common = data.objects[data.funcEnums[i]]?.common;\n const name = getName(common.name, lang);\n if (common?.members?.includes(id) && !funcs.includes(name)) {\n if (!withParentInfo) {\n funcs.push(name);\n } else {\n funcs.push({ name, origin: id });\n }\n }\n }\n\n let ownEnums;\n\n // Check parent\n const parts = id.split('.');\n parts.pop();\n id = parts.join('.');\n if (data.objects[id]) {\n ownEnums = funcs.length;\n findFunctionsForObject(data, id, lang, withParentInfo, funcs);\n }\n\n return { funcs, pef: !ownEnums };\n}\n\n/*\nfunction quality2text(q) {\n if (!q) {\n return 'ok';\n }\n const custom = q & 0xFFFF0000;\n let text = '';\n if (q & 0x40) text += 'device';\n if (q & 0x80) text += 'sensor';\n if (q & 0x01) text += ' bad';\n if (q & 0x02) text += ' not connected';\n if (q & 0x04) text += ' error';\n\n return text + (custom ? '|0x' + (custom >> 16).toString(16).toUpperCase() : '') + ' [0x' + q.toString(16).toUpperCase() + ']';\n}\n*/\n\nfunction formatValue(id, state, obj, texts, dateFormat, isFloatComma) {\n const states = Utils.getStates(obj);\n const isCommon = obj.common;\n\n const valText = {};\n let v = (isCommon && isCommon.type === 'file') ? '[file]' : (!state || state.val === null ? '(null)' : (state.val === undefined ? '[undef]' : state.val));\n const type = typeof v;\n\n if (isCommon && isCommon.role && typeof isCommon.role === 'string' && isCommon.role.match(/^value\\.time|^date/)) {\n if (v && typeof v === 'string') {\n if (v.length === 13) { // (length of \"1647597254924\") warning, this solution only works till Nov 20 2286 18:46:39CET\n v = new Date(parseInt(v, 10)).toString();\n } else {\n // we don't know what is that, so leave it as it is\n }\n } else {\n if (v > 946681200 && v < 946681200000) { // '2000-01-01T00:00:00' => 946681200000\n v *= 1000; // may be the time is in seconds (UNIX time)\n }\n // null and undefined could not be here. See `let v = (isCommon && isCommon.type === 'file') ....` above\n v = v ? new Date(v).toString() : v;\n }\n } else {\n if (type === 'number') {\n v = Math.round(v * 100000000) / 100000000; // remove 4.00000000000000001\n if (isFloatComma) {\n v = v.toString().replace('.', ',');\n }\n } else if (type === 'object') {\n v = JSON.stringify(v);\n } else if (type !== 'string') {\n v = v.toString();\n }\n\n if (typeof v !== 'string') {\n v = v.toString();\n }\n }\n\n // try to replace number with \"common.states\"\n if (states && states[v] !== undefined) {\n if (v !== states[v]) {\n valText.s = v;\n v = states[v];\n }\n }\n\n if (isCommon && isCommon.unit) {\n valText.u = isCommon.unit;\n }\n const valFull = [{ t: texts.value, v }];\n\n if (state) {\n if (state.ack !== undefined && state.ack !== null) {\n valFull.push({ t: texts.ack, v: state.ack.toString() });\n }\n if (state.ts) {\n valFull.push({ t: texts.ts, v: state.ts ? Utils.formatDate(new Date(state.ts), dateFormat) : '' });\n }\n if (state.lc) {\n valFull.push({ t: texts.lc, v: state.lc ? Utils.formatDate(new Date(state.lc), dateFormat) : '' });\n }\n if (state.from) {\n let from = state.from.toString();\n if (from.startsWith('system.adapter.')) {\n from = from.substring(15);\n }\n valFull.push({ t: texts.from, v: from });\n }\n if (state.user) {\n let user = state.user.toString();\n if (user.startsWith('system.user.')) {\n user = user.substring(12);\n }\n valFull.push({ t: texts.user, v: user });\n }\n if (state.c) {\n valFull.push({ t: texts.c, v: state.c });\n }\n valFull.push({ t: texts.quality, v: Utils.quality2text(state.q || 0).join(', '), nbr: true });\n }\n\n valText.v = v;\n\n return {\n valText,\n valFull,\n style: { color: state?.ack ? (state.q ? '#ffa500' : '') : '#ff2222c9' },\n };\n}\n\nfunction prepareSparkData(values, from) {\n // set every hour one point\n let time = from;\n let i = 1;\n const v = [];\n\n while (i < values.length && time < from + 25 * 3600000) {\n // find the interval\n while (values[i - 1].ts < time && time <= values[i].ts && i < values.length) {\n i++;\n }\n if (i === 1 && values[i - 1].ts >= time) {\n // assume the value was always null\n v.push(0);\n } else\n if (i < values.length) {\n if (typeof values[i].val === 'boolean' || typeof values[i - 1].val === 'boolean') {\n v.push(values[i].val ? 1 : 0);\n } else {\n // remove nulls\n values[i - 1].val = values[i - 1].val || 0;\n values[i].val = values[i].val || 0;\n // interpolate\n const val = values[i - 1].val + ((values[i].val - values[i - 1].val) * (time - values[i - 1].ts)) / (values[i].ts - values[i - 1].ts);\n\n v.push(val);\n }\n }\n\n time += 3600000;\n }\n\n return v;\n}\n\n/**\n * @type {import('./types').ObjectBrowserTableFilter}\n */\nconst DEFAULT_FILTER = {\n id: '',\n name: '',\n room: '',\n func: '',\n role: '',\n type: '',\n custom: '',\n expertMode: false,\n};\n\nconst ITEM_IMAGES = {\n state: <IconState className=\"itemIcon\" />,\n channel: <IconChannel className=\"itemIcon\" />,\n device: <IconDevice className=\"itemIcon\" />,\n adapter: <IconAdapter className=\"itemIcon\" />,\n meta: <IconMeta className=\"itemIcon\" />,\n instance: <IconInstance className=\"itemIcon\" style={{ color: '#7da7ff' }} />,\n enum: <IconEnum className=\"itemIcon\" />,\n chart: <IconChart className=\"itemIcon\" />,\n config: <IconConfig className=\"itemIcon\" />,\n group: <IconGroup className=\"itemIcon\" />,\n user: <IconUser className=\"itemIcon\" />,\n host: <IconHost className=\"itemIcon\" />,\n schedule: <IconSchedule className=\"itemIcon\" />,\n script: <IconScript className=\"itemIcon\" />,\n folder: <IconClosed className=\"itemIcon itemIconFolder\" />,\n};\n\nconst StyledBadge = withStyles(theme => ({\n badge: {\n right: 3,\n top: 3,\n border: `2px solid ${theme.palette.background.paper}`,\n padding: '0 4px',\n },\n}))(Badge);\n\nconst SCREEN_WIDTHS = {\n // extra-small: 0px\n xs: { idWidth: '100%', fields: [], widths: {} },\n // small: 600px\n sm: { idWidth: 300, fields: ['room', 'val'], widths: { room: 100, val: 200 } },\n // medium: 960px\n md: {\n idWidth: 300,\n fields: ['room', 'func', 'val', 'buttons'],\n widths: {\n name: 200, room: 150, func: 150, val: 120, buttons: 120,\n },\n },\n // large: 1280px\n lg: {\n idWidth: 300,\n fields: ['name', 'type', 'role', 'room', 'func', 'val', 'buttons', 'changedFrom', 'qualityCode', 'timestamp', 'lastChange'],\n widths: {\n name: 300,\n type: 80,\n role: 120,\n room: 180,\n func: 180,\n val: 140,\n buttons: 120,\n changedFrom: 120,\n qualityCode: 100,\n timestamp: 165,\n lastChange: 165,\n },\n },\n // /////////////\n // extra-large: 1920px\n xl: {\n idWidth: 550,\n fields: ['name', 'type', 'role', 'room', 'func', 'val', 'buttons', 'changedFrom', 'qualityCode', 'timestamp', 'lastChange'],\n widths: {\n name: 400,\n type: 80,\n role: 120,\n room: 180,\n func: 180,\n val: 140,\n buttons: 120,\n changedFrom: 120,\n qualityCode: 100,\n timestamp: 170,\n lastChange: 170,\n },\n },\n};\n\nlet objectsAlreadyLoaded = false;\n\n/**\n * @extends {React.Component<import('./types').ObjectBrowserProps>}\n */\nclass ObjectBrowser extends Component {\n /**\n * @param {import('./types').ObjectBrowserProps} props\n */\n constructor(props) {\n super(props);\n\n this.lastSelectedItems = (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.objectSelected`) || '[]';\n try {\n this.lastSelectedItems = JSON.parse(this.lastSelectedItems);\n if (typeof this.lastSelectedItems !== 'object') {\n this.lastSelectedItems = [this.lastSelectedItems];\n }\n this.lastSelectedItems = this.lastSelectedItems.filter(id => id);\n } catch (e) {\n // ignore\n }\n\n let expanded = (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.objectExpanded`) || '[]';\n try {\n expanded = JSON.parse(expanded);\n } catch (e) {\n expanded = [];\n }\n\n let filter =\n props.defaultFilters ||\n (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.objectFilter`) ||\n { ...DEFAULT_FILTER };\n\n if (typeof filter === 'string') {\n try {\n filter = JSON.parse(filter);\n } catch (e) {\n filter = { ...DEFAULT_FILTER };\n }\n }\n\n filter.expertMode = props.expertMode !== undefined ? props.expertMode : ((window._sessionStorage || window.sessionStorage).getItem('App.expertMode') === 'true');\n this.tableRef = createRef();\n this.filterRefs = {};\n\n Object.keys(DEFAULT_FILTER).forEach(name =>\n this.filterRefs[name] = createRef());\n\n this.lastAppliedFilter = null;\n this.pausedSubscribes = false;\n\n this.selectedFound = false;\n this.root = null;\n this.states = {};\n this.subscribes = [];\n this.statesUpdateTimer = null;\n this.objectsUpdateTimer = null;\n\n this.visibleCols = props.columns || SCREEN_WIDTHS[props.width].fields;\n // remove type column if only one type must be selected\n if (props.types && props.types.length === 1) {\n const pos = this.visibleCols.indexOf('type');\n pos !== -1 && this.visibleCols.splice(pos, 1);\n }\n\n // this.possibleCols = SCREEN_WIDTHS.xl.fields;\n\n let customDialog = null;\n\n if (props.router) {\n const location = props.router.getLocation();\n if (location.id && location.dialog === 'customs') {\n customDialog = [location.id];\n this.pauseSubscribe(true);\n }\n }\n\n let selected = (props.selected || '');\n if (typeof selected !== 'object') {\n selected = [selected];\n }\n selected = selected.map(id => id.replace(/[\"']/g, '')).filter(id => id);\n\n let columns = null; // (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.columns`);\n try {\n columns = columns ? JSON.parse(columns) : null;\n } catch (e) {\n columns = null;\n }\n\n let columnsWidths = null; // (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.columnsWidths`);\n try {\n columnsWidths = columnsWidths ? JSON.parse(columnsWidths) : {};\n } catch (e) {\n columnsWidths = {};\n }\n\n this.imagePrefix = props.imagePrefix || '.';\n let foldersFirst = (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.foldersFirst`);\n if (foldersFirst === 'false') {\n foldersFirst = false;\n } else if (foldersFirst === 'true') {\n foldersFirst = true;\n } else {\n foldersFirst = props.foldersFirst === undefined ? true : props.foldersFirst;\n }\n\n let statesView = false;\n try {\n statesView = this.props.objectStatesView ? JSON.parse((window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.objectStatesView`)) || false : false;\n } catch (error) {\n // ignore\n }\n\n this.state = {\n loaded: false,\n foldersFirst,\n selected,\n selectedNonObject: (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.selectedNonObject`) || '',\n filter,\n filterKey: 0,\n depth: 0,\n expandAllVisible: false,\n expanded,\n toast: '',\n lang: props.lang,\n scrollBarWidth: 16,\n customDialog,\n editObjectDialog: '',\n viewFileDialog: '',\n enumDialog: null,\n roleDialog: null,\n statesView,\n columns,\n columnsForAdmin: null,\n columnsSelectorShow: false,\n columnsAuto: true, // (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.columnsAuto`) !== 'false',\n columnsWidths,\n columnsDialogTransparent: 100,\n columnsEditCustomDialog: null,\n customColumnDialogValueChanged: false,\n showExportDialog: false,\n linesEnabled: (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.lines`) === 'true',\n };\n\n this.edit = {};\n\n this.texts = {\n value: props.t('ra_tooltip_value'),\n ack: props.t('ra_tooltip_ack'),\n ts: props.t('ra_tooltip_ts'),\n lc: props.t('ra_tooltip_lc'),\n from: props.t('ra_tooltip_from'),\n user: props.t('ra_tooltip_user'),\n c: props.t('ra_tooltip_comment'),\n quality: props.t('ra_tooltip_quality'),\n editObject: props.t('ra_tooltip_editObject'),\n deleteObject: props.t('ra_tooltip_deleteObject'),\n customConfig: props.t('ra_tooltip_customConfig'),\n copyState: props.t('ra_tooltip_copyState'),\n editState: props.t('ra_tooltip_editState'),\n close: props.t('ra_Close'),\n filter_id: props.t('ra_filter_id'),\n filter_name: props.t('ra_filter_name'),\n filter_type: props.t('ra_filter_type'),\n filter_role: props.t('ra_filter_role'),\n filter_room: props.t('ra_filter_room'),\n filter_func: props.t('ra_filter_func'),\n filter_custom: props.t('ra_filter_customs'), //\n objectChangedByUser: props.t('ra_object_changed_by_user'), // Object last changed at\n objectChangedBy: props.t('ra_object_changed_by'), // Object changed by\n objectChangedFrom: props.t('ra_state_changed_from'), // Object changed from\n stateChangedBy: props.t('ra_state_changed_by'), // State changed by\n stateChangedFrom: props.t('ra_state_changed_from'), // State changed from\n ownerGroup: props.t('ra_Owner group'),\n ownerUser: props.t('ra_Owner user'),\n deviceError: props.t('ra_Error'),\n deviceDisconnected: props.t('ra_Disconnected'),\n deviceConnected: props.t('ra_Connected'),\n\n aclOwner_read_object: props.t('ra_aclOwner_read_object'),\n aclOwner_read_state: props.t('ra_aclOwner_read_state'),\n aclOwner_write_object: props.t('ra_aclOwner_write_object'),\n aclOwner_write_state: props.t('ra_aclOwner_write_state'),\n aclGroup_read_object: props.t('ra_aclGroup_read_object'),\n aclGroup_read_state: props.t('ra_aclGroup_read_state'),\n aclGroup_write_object: props.t('ra_aclGroup_write_object'),\n aclGroup_write_state: props.t('ra_aclGroup_write_state'),\n aclEveryone_read_object: props.t('ra_aclEveryone_read_object'),\n aclEveryone_read_state: props.t('ra_aclEveryone_read_state'),\n aclEveryone_write_object: props.t('ra_aclEveryone_write_object'),\n aclEveryone_write_state: props.t('ra_aclEveryone_write_state'),\n };\n\n this.levelPadding = props.levelPadding || ITEM_LEVEL;\n\n let resizerCurrentWidths = (window._localStorage || window.localStorage).getItem(`${this.props.dialogName || 'App'}.table`);\n if (resizerCurrentWidths) {\n try {\n resizerCurrentWidths = JSON.parse(resizerCurrentWidths);\n this.storedWidths = JSON.parse(JSON.stringify(SCREEN_WIDTHS[this.props.width]));\n Object.keys(resizerCurrentWidths)\n .forEach(id => {\n if (id === 'id') {\n SCREEN_WIDTHS[this.props.width].idWidth = resizerCurrentWidths.id;\n } else if (id === 'nameHeader') {\n SCREEN_WIDTHS[this.props.width].widths.name = resizerCurrentWidths[id];\n } else if (SCREEN_WIDTHS[this.props.width].widths[id] !== undefined) {\n SCREEN_WIDTHS[this.props.width].widths[id] = resizerCurrentWidths[id];\n }\n });\n\n this.customWidth = true;\n } catch (e) {\n // ignore\n }\n }\n\n this.calculateColumnsVisibility();\n }\n\n loadAllObjects(update) {\n const props = this.props;\n let objects;\n\n return new Promise(resolve => {\n this.setState({ updating: true }, () => resolve());\n })\n .then(() => (this.props.objectsWorker ?\n this.props.objectsWorker.getObjects(update) :\n props.socket.getObjects(update, true)))\n .then(_objects => {\n objects = _objects;\n if (props.types && props.types[0] !== 'state') {\n if (props.length >= 1) {\n console.error('more than one type does not supported! Use filterFunc instead');\n }\n return props.socket.getObjectViewSystem(props.types[0], null, null);\n }\n return !objects['system.config'] ? props.socket.getObject('system.config')\n .then(obj => ({ 'system.config': obj })) : Promise.resolve(null);\n })\n .then(moreObjects => {\n this.systemConfig = objects['system.config'] || moreObjects['system.config'] || {};\n\n if (moreObjects) {\n if (moreObjects['system.config']) {\n delete moreObjects['system.config'];\n }\n Object.assign(objects, moreObjects);\n }\n\n this.systemConfig.common = this.systemConfig.common || {};\n this.systemConfig.common.defaultNewAcl = this.systemConfig.common.defaultNewAcl || {};\n this.systemConfig.common.defaultNewAcl.owner = this.systemConfig.common.defaultNewAcl.owner || 'system.user.admin';\n this.systemConfig.common.defaultNewAcl.ownerGroup = this.systemConfig.common.defaultNewAcl.ownerGroup || 'system.group.administrator';\n if (typeof this.systemConfig.common.defaultNewAcl.state !== 'number') {\n // TODO: may be convert here from string\n this.systemConfig.common.defaultNewAcl.state = 0x664;\n }\n if (typeof this.systemConfig.common.defaultNewAcl.object !== 'number') {\n // TODO: may be convert here from string\n this.systemConfig.common.defaultNewAcl.state = 0x664;\n }\n\n if (typeof props.filterFunc === 'function') {\n this.objects = {};\n Object.keys(objects).forEach(id => {\n try {\n if (props.filterFunc(objects[id])) {\n this.objects[id] = objects[id];\n }\n } catch (e) {\n console.log(`Error by filtering of \"${id}\": ${e}`);\n }\n });\n } else\n if (props.types) {\n this.objects = {};\n Object.keys(objects).forEach(id => {\n const type = objects[id] && objects[id].type;\n // include \"folder\" types too\n if (type && (\n type === 'channel' ||\n type === 'device' ||\n type === 'enum' ||\n type === 'folder' ||\n type === 'adapter' ||\n type === 'instance' ||\n props.types.includes(type))) {\n this.objects[id] = objects[id];\n }\n });\n } else {\n this.objects = objects;\n }\n\n // read default history\n this.defaultHistory = this.systemConfig.common.defaultHistory;\n if (this.defaultHistory) {\n props.socket.getState(`system.adapter.${this.defaultHistory}.alive`)\n .then(state => {\n if (!state || !state.val) {\n this.defaultHistory = '';\n }\n })\n .catch(e => window.alert(`Cannot get state: ${e}`));\n }\n\n return this.getAdditionalColumns();\n })\n .then(columnsForAdmin => {\n this.calculateColumnsVisibility(null, null, columnsForAdmin);\n\n const { info, root } = buildTree(this.objects, this.props);\n this.root = root;\n this.info = info;\n\n // Show first selected item\n const node = this.state.selected && this.state.selected.length && findNode(this.root, this.state.selected[0]);\n\n this.lastAppliedFilter = null;\n\n // If selected ID is not visible, reset filter\n if (node && !applyFilter(node, this.state.filter, this.state.lang, this.objects, null, null, props.customFilter, props.types)) {\n // reset filter\n this.setState({ filter: { ...DEFAULT_FILTER }, columnsForAdmin }, () => {\n this.setState({ loaded: true, updating: false }, () =>\n this.expandAllSelected(() =>\n this.onAfterSelect()));\n });\n } else {\n this.setState({ loaded: true, updating: false, columnsForAdmin }, () =>\n this.expandAllSelected(() =>\n this.onAfterSelect()));\n }\n })\n .catch(e => this.showError(e));\n }\n\n /**\n * @private\n * @param {ioBroker.EmptyCallback} cb\n */\n expandAllSelected(cb) {\n const expanded = [...this.state.expanded];\n let changed = false;\n this.state.selected.forEach(id => {\n const parts = id.split('.');\n const path = [];\n for (let i = 0; i < parts.length - 1; i++) {\n path.push(parts[i]);\n if (!expanded.includes(path.join('.'))) {\n expanded.push(path.join('.'));\n changed = true;\n }\n }\n });\n if (changed) {\n expanded.sort();\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectExpanded`, JSON.stringify(expanded));\n this.setState({ expanded }, cb);\n } else {\n cb && cb();\n }\n }\n\n /**\n * @private\n * @param {boolean} [isDouble]\n */\n onAfterSelect(isDouble) {\n this.lastSelectedItems = [...this.state.selected];\n if (this.state.selected && this.state.selected.length) {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectSelected`, JSON.stringify(this.lastSelectedItems));\n\n const name = this.lastSelectedItems.length === 1 ? Utils.getObjectName(this.objects, this.lastSelectedItems[0], null, { language: this.state.lang }) : '';\n this.props.onSelect && this.props.onSelect(this.lastSelectedItems, name, isDouble);\n } else {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectSelected`, '');\n if (this.state.selected.length) {\n this.setState({ selected: [] }, () => this.props.onSelect && this.props.onSelect([], ''));\n } else {\n this.props.onSelect && this.props.onSelect([], '');\n }\n }\n }\n\n /**\n * @private\n * @param {import('./types').ObjectBrowserProps} props\n * @param {any} state\n */\n static getDerivedStateFromProps(props, state) {\n const newState = {};\n let changed = false;\n if (props.expertMode !== undefined && props.expertMode !== state.filter.expertMode) {\n changed = true;\n newState.filter = { ...state.filter };\n newState.filter.expertMode = props.expertMode;\n }\n return changed ? newState : null;\n }\n\n /**\n * Called when component is mounted.\n */\n componentDidMount() {\n this.loadAllObjects(!objectsAlreadyLoaded)\n .then(() => {\n if (this.props.objectsWorker) {\n this.props.objectsWorker.registerHandler(this.onObjectChange);\n } else {\n this.props.socket.subscribeObject('*', this.onObjectChange);\n }\n\n objectsAlreadyLoaded = true;\n });\n }\n\n /**\n * Called when component is unmounted.\n */\n componentWillUnmount() {\n this.filterTimer && clearTimeout(this.filterTimer);\n this.filterTimer = null;\n\n if (this.props.objectsWorker) {\n this.props.objectsWorker.unregisterHandler(this.onObjectChange, true);\n } else {\n this.props.socket.unsubscribeObject('*', this.onObjectChange);\n }\n\n // remove all subscribes\n this.subscribes.forEach(pattern => {\n console.log(`- unsubscribe ${pattern}`);\n this.props.socket.unsubscribeState(pattern, this.onStateChange);\n });\n\n this.subscribes = [];\n this.objects = {};\n }\n\n /**\n * Called when component is mounted.\n */\n refreshComponent() {\n // remove all subscribes\n this.subscribes.forEach(pattern => {\n console.log(`- unsubscribe ${pattern}`);\n this.props.socket.unsubscribeState(pattern, this.onStateChange);\n });\n\n this.subscribes = [];\n\n this.loadAllObjects(true)\n .then(() => console.log('updated!'));\n }\n\n /**\n * Renders the error dialog.\n * @returns {JSX.Element | null}\n */\n renderErrorDialog() {\n return this.state.error ? <Dialog\n open={!0}\n maxWidth=\"sm\"\n fullWidth\n onClose={() => this.setState({ error: '' })}\n aria-labelledby=\"error-dialog-title\"\n aria-describedby=\"error-dialog-description\"\n >\n <DialogTitle id=\"alert-dialog-title\">{this.props.title || this.props.t('ra_Error')}</DialogTitle>\n <DialogContent>\n <DialogContentText id=\"alert-dialog-description\">\n {this.state.error}\n </DialogContentText>\n </DialogContent>\n <DialogActions>\n <Button\n variant=\"contained\"\n onClick={() => this.setState({ error: '' })}\n color=\"primary\"\n autoFocus\n startIcon={<IconCheck />}\n >\n {this.props.t('ra_Ok')}\n </Button>\n </DialogActions>\n </Dialog> : null;\n }\n\n /**\n * Show the error dialog.\n * @param {any} error\n */\n showError(error) {\n this.setState({ error: typeof error === 'object' ? (error && typeof error.toString === 'function' ? error.toString() : JSON.stringify(error)) : error });\n }\n\n /**\n * Called when an item is selected/deselected.\n * @param {string} toggleItem\n * @param {boolean} [isDouble]\n */\n onSelect(toggleItem, isDouble) {\n if (!this.props.multiSelect) {\n if (this.objects[toggleItem] && (!this.props.types || this.props.types.includes(this.objects[toggleItem].type))) {\n (window._localStorage || window.localStorage).removeItem(`${this.props.dialogName || 'App'}.selectedNonObject`);\n if (this.state.selected[0] !== toggleItem) {\n this.setState({ selected: [toggleItem], selectedNonObject: '' }, () =>\n this.onAfterSelect(isDouble));\n } else if (isDouble && this.props.onSelect) {\n this.onAfterSelect(isDouble);\n }\n } else {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.selectedNonObject`, toggleItem);\n this.setState({ selected: [], selectedNonObject: toggleItem }, () =>\n this.onAfterSelect());\n }\n } else if (this.objects[toggleItem] && (!this.props.types || this.props.types.includes(this.objects[toggleItem].type))) {\n (window._localStorage || window.localStorage).removeItem(`${this.props.dialogName || 'App'}.selectedNonObject`);\n\n const selected = [...this.state.selected];\n const pos = selected.indexOf(toggleItem);\n if (pos === -1) {\n selected.push(toggleItem);\n selected.sort();\n } else if (!isDouble) {\n selected.splice(pos, 1);\n }\n\n this.setState({ selected, selectedNonObject: '' }, () =>\n this.onAfterSelect(isDouble));\n }\n }\n\n /**\n * @private\n * @param {boolean} isLast\n */\n /*\n _renderDefinedList(isLast) {\n const cols = [...this.possibleCols];\n cols.unshift('id');\n if (this.props.columns && !this.props.columns.includes('buttons')) {\n const pos = cols.indexOf('buttons');\n if (pos !== -1) {\n cols.splice(pos, 1);\n }\n }\n return cols\n .filter(id => (isLast && (id === 'val' || id === 'buttons')) || (!isLast && id !== 'val' && id !== 'buttons'))\n .map(id =>\n <ListItemButton onClick={() => {\n if (!this.state.columnsAuto && id !== 'id') {\n const columns = [...(this.state.columns || [])];\n const pos = columns.indexOf(id);\n if (pos === -1) {\n columns.push(id);\n columns.sort();\n } else {\n columns.splice(pos, 1);\n }\n (window._localStorage || window.localStorage).setItem((this.props.dialogName || 'App') + '.columns', JSON.stringify(columns));\n this.calculateColumnsVisibility(null, columns);\n this.setState({ columns });\n }\n }} key={id}>\n <Checkbox\n edge=\"start\"\n disabled={id === 'id' || this.state.columnsAuto}\n checked={id === 'id' || (this.state.columnsAuto ? this.visibleCols.includes(id) : (this.state.columns && this.state.columns.includes(id)))}\n disableRipple\n />\n <ListItemText primary={this.texts['filter_' + id] || this.props.t('ra_' + id)} />\n <ListItemSecondaryAction>\n <FormControl\n variant=\"standard\"\n className={this.props.classes.columnsDialogInputWidth}\n style={{ marginTop: 0, marginBottom: 0 }}\n margin=\"dense\"\n >\n <Input\n classes={{ underline: 'no-underline' }}\n placeholder={this.props.t('ra_Width')}\n value={this.state.columnsWidths[id] || ''}\n onChange={e => {\n const columnsWidths = JSON.parse(JSON.stringify(this.state.columnsWidths));\n columnsWidths[id] = e.target.value;\n (window._localStorage || window.localStorage).setItem((this.props.dialogName || 'App') + '.columnsWidths', JSON.stringify(columnsWidths));\n this.calculateColumnsVisibility(null, null, null, columnsWidths);\n this.setState({ columnsWidths });\n }}\n autoComplete=\"off\"\n />\n </FormControl>\n </ListItemSecondaryAction>\n </ListItemButton>\n );\n }\n */\n\n /**\n * Renders the columns selector.\n * @returns {JSX.Element | null}\n */\n renderColumnsSelectorDialog() {\n if (!this.state.columnsSelectorShow) {\n return null;\n }\n return <Dialog\n onClose={() => this.setState({ columnsSelectorShow: false })}\n open={!0}\n classes={{ root: Utils.clsx(this.props.classes.dialogColumns, this.props.classes[`transparent_${this.state.columnsDialogTransparent}`]) }}\n >\n <DialogTitle className={this.props.classes.fontSizeTitle}>{this.props.t('ra_Configure')}</DialogTitle>\n <DialogContent className={this.props.classes.fontSizeTitle}>\n {\n /*\n <FormControlLabel\n className={this.props.classes.switchColumnAuto}\n control={<Switch checked={this.state.columnsAuto} onChange={() => {\n (window._localStorage || window.localStorage).setItem((this.props.dialogName || 'App') + '.columnsAuto', this.state.columnsAuto ? 'false' : 'true');\n if (!this.state.columnsAuto) {\n this.calculateColumnsVisibility(true);\n this.setState({ columnsAuto: true });\n } else {\n if (!this.state.columns) {\n this.calculateColumnsVisibility(false, [...this.visibleCols]);\n this.setState({ columnsAuto: false, columns: [...this.visibleCols] });\n } else {\n this.calculateColumnsVisibility(false);\n this.setState({ columnsAuto: false });\n }\n }\n }} />}\n label={this.props.t('ra_Auto (no custom columns)')}\n /> */\n }\n <FormControlLabel\n className={this.props.classes.switchColumnAuto}\n control={<Switch\n checked={this.state.foldersFirst}\n onChange={() => {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.foldersFirst`, this.state.foldersFirst ? 'false' : 'true');\n this.setState({ foldersFirst: !this.state.foldersFirst });\n }}\n />}\n label={this.props.t('ra_Folders always first')}\n />\n <FormControlLabel\n className={this.props.classes.switchColumnAuto}\n control={<Switch\n checked={this.state.linesEnabled}\n onChange={() => {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.lines`, this.state.linesEnabled ? 'false' : 'true');\n this.setState({ linesEnabled: !this.state.linesEnabled });\n }}\n />}\n label={this.props.t('ra_Show lines between rows')}\n />\n {\n /*\n <Typography classes={{ root: this.props.classes.dialogColumnsLabel }}>{this.props.t('ra_Transparent dialog')}</Typography>\n <Slider classes={{ root: this.props.classes.width100 }} value={this.state.columnsDialogTransparent} min={20} max={100} step={10} onChange={(event, newValue) =>\n this.setState({ columnsDialogTransparent: newValue })\n } />\n <List>\n {this._renderDefinedList(false)}\n\n {this.state.columnsForAdmin && Object.keys(this.state.columnsForAdmin).sort().map(adapter =>\n this.state.columnsForAdmin[adapter].map(column =>\n <ListItemButton onClick={() => {\n if (!this.state.columnsAuto) {\n const columns = [...(this.state.columns || [])];\n const id = '_' + adapter + '_' + column.path;\n const pos = columns.indexOf(id);\n if (pos === -1) {\n columns.push(id);\n columns.sort();\n } else {\n columns.splice(pos, 1);\n }\n this.calculateColumnsVisibility(null, columns);\n (window._localStorage || window.localStorage).setItem((this.props.dialogName || 'App') + '.columns', JSON.stringify(columns));\n this.setState({ columns });\n }\n }} key={adapter + '_' + column.name}>\n <ListItemIcon>\n <Checkbox\n disabled={this.state.columnsAuto}\n edge=\"start\"\n checked={!this.state.columnsAuto && this.state.columns && this.state.columns.includes('_' + adapter + '_' + column.path)}\n disableRipple\n />\n </ListItemIcon>\n <ListItemText primary={column.name + ' (' + adapter + ')'} />\n <ListItemSecondaryAction>\n <FormControl\n variant=\"standard\"\n className={this.props.classes.columnsDialogInputWidth}\n style={{ marginTop: 0, marginBottom: 0 }}\n margin=\"dense\"\n >\n <Input\n classes={{ underline: 'no-underline' }}\n placeholder={this.props.t('ra_Width')}\n value={this.state.columnsWidths['_' + adapter + '_' + column.path] || ''}\n onChange={e => {\n const columnsWidths = JSON.parse(JSON.stringify(this.state.columnsWidths));\n columnsWidths['_' + adapter + '_' + column.path] = e.target.value;\n (window._localStorage || window.localStorage).setItem((this.props.dialogName || 'App') + '.columnsWidths', JSON.stringify(columnsWidths));\n this.calculateColumnsVisibility(null, null, null, columnsWidths);\n this.setState({ columnsWidths });\n }}\n autoComplete=\"off\"\n />\n </FormControl>\n </ListItemSecondaryAction>\n </ListItemButton>\n )\n )}\n {this._renderDefinedList(true)}\n </List>\n */}\n </DialogContent>\n <DialogActions>\n <Button\n variant=\"contained\"\n onClick={() => this.setState({ columnsSelectorShow: false })}\n color=\"primary\"\n startIcon={<IconClose />}\n >\n {this.texts.close}\n </Button>\n </DialogActions>\n </Dialog>;\n }\n\n /**\n * @private\n */\n getAdditionalColumns() {\n return this.props.socket.getAdapters()\n .then(instances => {\n let columnsForAdmin = null;\n // find all additional columns\n instances.forEach(obj =>\n columnsForAdmin = this.parseObjectForAdmins(columnsForAdmin, obj));\n\n return columnsForAdmin;\n })\n .catch(() => {\n // window.alert('Cannot get adapters: ' + e);\n // Object browser in Web has no additional columns\n });\n }\n\n /**\n * @private\n */\n checkUnsubscribes() {\n // Remove unused subscriptions\n for (let i = this.subscribes.length - 1; i >= 0; i--) {\n !this.recordStates.includes(this.subscribes[i]) && this.unsubscribe(this.subscribes[i]);\n }\n this.recordStates = [];\n }\n\n /**\n * Find an item.\n * @param {string} id\n * @param {string[] | undefined} [_parts]\n * @param {{ data: { name: string; id: string; }; children: never[]; } | null | undefined} [_root]\n * @param {string | undefined} [_partyId]\n * @returns {any}\n */\n findItem(id, _parts, _root, _partyId) {\n _parts = _parts || id.split('.');\n _root = _root || this.root;\n if (!_root || !_parts.length) {\n return null;\n }\n\n _partyId = (_partyId ? `${_partyId}.` : '') + _parts.shift();\n\n if (_root.children) {\n const item = _root.children.find(i => i.data.id === _partyId);\n if (item) {\n if (item.data.id === id) {\n return item;\n }\n if (_parts.length) {\n return this.findItem(id, _parts, item, _partyId);\n }\n } else {\n return null;\n }\n }\n\n return null;\n }\n\n /**\n * Called when a state changes.\n * @param {string} id\n * @param {ioBroker.State} state\n */\n onStateChange = (id, state) => {\n console.log(`> stateChange ${id}`);\n if (this.states[id]) {\n const item = this.findItem(id);\n if (item && item.data.state) {\n item.data.state = null;\n }\n }\n this.states[id] = state;\n\n if (!this.pausedSubscribes) {\n if (!this.statesUpdateTimer) {\n this.statesUpdateTimer = setTimeout(() => {\n this.statesUpdateTimer = null;\n this.forceUpdate();\n }, 300);\n }\n } else if (this.statesUpdateTimer) {\n clearTimeout(this.statesUpdateTimer);\n this.statesUpdateTimer = null;\n }\n };\n\n /**\n * @private\n * @param {{ [x: string]: any; }} columnsForAdmin\n * @param {any} obj\n */\n parseObjectForAdmins(columnsForAdmin, obj) {\n if (obj.common && obj.common.adminColumns && obj.common.name) {\n let columns = obj.common.adminColumns;\n if (typeof columns !== 'object') {\n columns = [columns];\n }\n columns = columns.map(item => {\n if (typeof item !== 'object') {\n return { path: item, name: item.split('.').pop() };\n }\n\n // string => array\n if (item.objTypes && typeof item.objTypes !== 'object') {\n item.objTypes = [item.objTypes];\n } else if (!item.objTypes) {\n item.objTypes = null;\n }\n\n if (!item.name && item.path) {\n return {\n path: item.path,\n name: item.path.split('.').pop(),\n width: item.width,\n edit: !!item.edit,\n type: item.type,\n objTypes: item.objTypes,\n };\n }\n if (typeof item.name !== 'object' && item.path) {\n return {\n path: item.path,\n name: item.name,\n width: item.width,\n edit: !!item.edit,\n type: item.type,\n objTypes: item.objTypes,\n };\n }\n if (!item.path) {\n console.warn(`Admin columns for ${obj._id} ignored, because path not found`);\n return null;\n }\n return {\n path: item.path,\n name: item.name[this.props.lang] || item.name.en,\n width: item.width,\n edit: !!item.edit,\n type: item.type,\n objTypes: item.objTypes,\n };\n }).filter(item => item);\n\n if (columns && columns.length) {\n columnsForAdmin = columnsForAdmin || {};\n columnsForAdmin[obj.common.name] = columns.sort((a, b) => (a.path > b.path ? -1 : (a.path < b.path ? 1 : 0)));\n }\n } else if (obj.common && obj.common.name && columnsForAdmin && columnsForAdmin[obj.common.name]) {\n delete columnsForAdmin[obj.common.name];\n }\n return columnsForAdmin;\n }\n\n /**\n * @param {string} id\n * @param {ioBroker.Object} obj\n */\n onObjectChange = (id, obj/* , oldObj */) => {\n let newState;\n\n if (Array.isArray(id)) {\n id.forEach(event => {\n console.log(`> objectChange ${event.id}`);\n\n if (event.obj && typeof this.props.filterFunc === 'function' && !this.props.filterFunc(event.obj)) {\n return;\n }\n\n if (event.id.startsWith('system.adapter.') && event.obj && event.obj.type === 'adapter') {\n const columnsForAdmin = JSON.parse(JSON.stringify(this.state.columnsForAdmin));\n\n this.parseObjectForAdmins(columnsForAdmin, event.obj);\n\n if (JSON.stringify(this.state.columnsForAdmin) !== JSON.stringify(columnsForAdmin)) {\n newState = { columnsForAdmin };\n }\n }\n this.objects = this.objects || [];\n if (this.objects[event.id]) {\n if (event.obj) {\n this.objects[event.id] = event.obj;\n } else {\n delete this.objects[event.id];\n }\n }\n });\n } else {\n console.log(`> objectChange ${id}`);\n this.objects = this.objects || [];\n\n if (obj && typeof this.props.filterFunc === 'function' && !this.props.filterFunc(obj)) {\n return;\n }\n\n if (id.startsWith('system.adapter.') && obj && obj.type === 'adapter') {\n const columnsForAdmin = JSON.parse(JSON.stringify(this.state.columnsForAdmin));\n this.parseObjectForAdmins(columnsForAdmin, obj);\n if (JSON.stringify(this.state.columnsForAdmin) !== JSON.stringify(columnsForAdmin)) {\n newState = { columnsForAdmin };\n }\n }\n\n if (this.objects[id]) {\n if (obj) {\n this.objects[id] = obj;\n } else {\n delete this.objects[id];\n }\n }\n }\n\n newState && this.setState(newState);\n\n if (!this.objectsUpdateTimer && this.objects) {\n this.objectsUpdateTimer = setTimeout(() => {\n this.objectsUpdateTimer = null;\n const { info, root } = buildTree(this.objects, this.props);\n this.root = root;\n this.info = info;\n this.lastAppliedFilter = null; // apply filter anew\n\n if (!this.pausedSubscribes) {\n this.forceUpdate();\n }\n // else it will be re-rendered when dialog will be closed\n }, 500);\n }\n };\n\n /**\n * @private\n * @param {string} id\n */\n subscribe(id) {\n if (!this.subscribes.includes(id)) {\n this.subscribes.push(id);\n console.log(`+ subscribe ${id}`);\n !this.pausedSubscribes && this.props.socket.subscribeState(id, this.onStateChange);\n }\n }\n\n /**\n * @private\n * @param {string} id\n */\n unsubscribe(id) {\n const pos = this.subscribes.indexOf(id);\n if (pos !== -1) {\n this.subscribes.splice(pos, 1);\n if (this.states[id]) {\n delete this.states[id];\n }\n console.log(`- unsubscribe ${id}`);\n this.props.socket.unsubscribeState(id, this.onStateChange);\n\n if (this.pausedSubscribes) {\n console.warn('Unsubscribe during pause?');\n }\n }\n }\n\n /**\n * @private\n * @param {boolean} isPause\n */\n pauseSubscribe(isPause) {\n if (!this.pausedSubscribes && isPause) {\n this.pausedSubscribes = true;\n this.subscribes.forEach(id => this.props.socket.unsubscribeState(id, this.onStateChange));\n } else if (this.pausedSubscribes && !isPause) {\n this.pausedSubscribes = false;\n this.subscribes.forEach(id => this.props.socket.subscribeState(id, this.onStateChange));\n }\n }\n\n /**\n * @private\n * @param {string} [name]\n * @param {boolean} [value]\n */\n onFilter(name, value) {\n this.filterTimer = null;\n const filter = { ...this.state.filter };\n\n Object.keys(this.filterRefs).forEach(_name => {\n if (this.filterRefs[_name] && this.filterRefs[_name].current) {\n for (let i = 0; i < this.filterRefs[_name].current.children.length; i++) {\n if (this.filterRefs[_name].current.children[i].tagName === 'INPUT') {\n filter[_name] = this.filterRefs[_name].current.children[i].value;\n break;\n }\n }\n }\n });\n\n if (name) {\n filter[name] = value;\n if (name === 'expertMode') {\n (window._sessionStorage || window.sessionStorage).setItem('App.expertMode', value ? 'true' : 'false');\n }\n }\n\n if (JSON.stringify(this.state.filter) !== JSON.stringify(filter)) {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectFilter`, JSON.stringify(filter));\n this.setState({ filter }, () =>\n this.props.onFilterChanged && this.props.onFilterChanged(filter));\n }\n }\n\n clearFilter() {\n const filter = { ...this.state.filter };\n\n Object.keys(this.filterRefs).forEach(name => {\n if (this.filterRefs[name] && this.filterRefs[name].current) {\n for (let i = 0; i < this.filterRefs[name].current.childNodes.length; i++) {\n const item = this.filterRefs[name].current.childNodes[i];\n if (item.tagName === 'INPUT') {\n filter[name] = '';\n item.value = '';\n break;\n }\n }\n }\n });\n\n if (JSON.stringify(this.state.filter) !== JSON.stringify(filter)) {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectFilter`, JSON.stringify(filter));\n this.setState({ filter, filterKey: this.state.filterKey + 1 }, () =>\n this.props.onFilterChanged && this.props.onFilterChanged(filter));\n }\n }\n\n isFilterEmpty() {\n const someNotEmpty = Object.keys(this.state.filter).find(attr =>\n attr !== 'expertMode' && this.state.filter[attr]);\n return !someNotEmpty;\n }\n\n /**\n * @private\n * @param {string} name\n */\n getFilterInput(name) {\n return <FormControl\n className={Utils.clsx(this.props.classes.headerCellInput, this.props.classes.filterInput)}\n key={`${name}_${this.state.filterKey}`}\n // style={{ marginTop: 0, marginBottom: 0 }}\n margin=\"dense\"\n >\n <Input\n ref={this.filterRefs[name]}\n classes={{ underline: 'no-underline' }}\n id={name}\n placeholder={this.texts[`filter_${name}`]}\n defaultValue={this.state.filter[name]}\n onChange={() => {\n this.filterTimer && clearTimeout(this.filterTimer);\n this.filterTimer = setTimeout(() => this.onFilter(), 400);\n }}\n autoComplete=\"off\"\n />\n {this.filterRefs[name]?.current?.firstChild.value ?\n <div\n style={{\n position: 'absolute',\n right: 0,\n }}\n >\n <IconButton\n size=\"small\"\n onClick={() => {\n this.filterRefs[name].current.firstChild.value = '';\n this.onFilter(name, '');\n }}\n >\n <IconClose />\n </IconButton>\n </div> : null}\n </FormControl>;\n }\n\n /**\n * @private\n * @param {string} name\n * @param {any[]} values\n */\n getFilterSelect(name, values) {\n const hasIcons = !!values.find(item => item.icon);\n return <div style={{ position: 'relative' }}>\n <Select\n variant=\"standard\"\n key={`${name}_${this.state.filterKey}`}\n ref={this.filterRefs[name]}\n className={`${this.props.classes.headerCellInput} no-underline`}\n onChange={() => {\n this.filterTimer && clearTimeout(this.filterTimer);\n this.filterTimer = setTimeout(() => this.onFilter(), 400);\n }}\n defaultValue={this.state.filter[name] || ''}\n inputProps={{ name, id: name }}\n displayEmpty\n >\n <MenuItem key=\"empty\" value=\"\">\n <span className={this.props.classes.selectNone}>{this.texts[`filter_${name}`]}</span>\n </MenuItem>\n {values.map(item => {\n let id;\n let _name;\n let icon;\n if (typeof item === 'object') {\n id = item.value;\n _name = item.name;\n icon = item.icon;\n } else {\n id = item;\n _name = item;\n }\n return <MenuItem className={this.props.classes.headerCellSelectItem} key={id} value={id}>\n {icon || (hasIcons ? <div className=\"itemIcon\" /> : null)}\n {_name}\n </MenuItem>;\n })}\n </Select>\n {this.filterRefs[name]?.current?.childNodes[1]?.value ?\n <div className={Utils.clsx(this.props.classes.selectClearButton)}>\n <IconButton\n size=\"small\"\n onClick={() => {\n const newFilter = { ...this.state.filter };\n newFilter[name] = '';\n this.filterRefs[name].current.childNodes[1].value = '';\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectFilter`, JSON.stringify(newFilter));\n this.setState({ filter: newFilter, filterKey: this.state.filterKey + 1 }, () =>\n this.props.onFilterChanged && this.props.onFilterChanged(newFilter));\n }}\n >\n <IconClose />\n </IconButton>\n </div> : null}\n </div>;\n }\n\n /**\n * @private\n */\n getFilterSelectRole() {\n return this.getFilterSelect('role', this.info.roles);\n }\n\n /**\n * @private\n */\n getFilterSelectRoom() {\n const rooms = this.info.roomEnums.map(id => ({\n name: getName(this.objects[id]?.common?.name || id.split('.').pop()),\n value: id,\n icon: <Icon src={this.objects[id]?.common?.icon || ''} className={this.props.classes.selectIcon} />,\n }));\n\n return this.getFilterSelect('room', rooms);\n }\n\n /**\n * @private\n */\n getFilterSelectFunction() {\n const func = this.info.funcEnums.map(id => ({\n name: getName((this.objects[id] && this.objects[id].common && this.objects[id].common.name) || id.split('.').pop()),\n value: id,\n icon: <Icon src={this.objects[id]?.common?.icon || ''} className={this.props.classes.selectIcon} />,\n }));\n\n return this.getFilterSelect('func', func);\n }\n\n /**\n * @private\n */\n getFilterSelectType() {\n const types = this.info.types.map(type => ({\n name: type,\n value: type,\n icon: ITEM_IMAGES[type],\n }));\n\n return this.getFilterSelect('type', types);\n }\n\n /**\n * @private\n */\n getFilterSelectCustoms() {\n if (this.info.customs.length) {\n const customs = this.info.customs.map(id => ({\n name: id,\n value: id,\n icon: <Icon src={getSelectIdIcon(this.objects, id, this.imagePrefix) || ''} className={this.props.classes.selectIcon} />,\n }));\n return this.getFilterSelect('custom', customs);\n }\n return null;\n }\n\n /**\n * @private\n * @param {any} [root]\n * @param {any[]} [expanded]\n */\n onExpandAll(root, expanded) {\n root = root || this.root;\n expanded = expanded || [];\n\n root.children && root.children.forEach(item => {\n if (item.data.sumVisibility) {\n expanded.push(item.data.id);\n this.onExpandAll(item, expanded);\n }\n });\n\n if (root === this.root) {\n expanded.sort();\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectExpanded`, JSON.stringify(expanded));\n\n this.setState({ expanded });\n }\n }\n\n /**\n * @private\n */\n onCollapseAll() {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectExpanded`, JSON.stringify([]));\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectSelected`, '[]');\n this.setState({ expanded: [], depth: 0, selected: [] }, () =>\n this.onAfterSelect());\n }\n\n /**\n * @private\n * @param {any} root\n * @param {number} depth\n * @param {any[]} expanded\n */\n expandDepth(root, depth, expanded) {\n root = root || this.root;\n if (depth > 0) {\n if (root.children) {\n root.children.forEach(item => {\n if (item.data.sumVisibility) {\n if (!binarySearch(expanded, item.data.id)) {\n expanded.push(item.data.id);\n expanded.sort();\n }\n if (depth - 1 > 0) {\n this.expandDepth(item, depth - 1, expanded);\n }\n }\n });\n }\n }\n }\n\n /**\n * @private\n * @param {number} depth\n * @param {any[]} expanded\n */\n static collapseDepth(depth, expanded) {\n return expanded.filter(id => id.split('.').length <= depth);\n }\n\n /**\n * @private\n */\n onExpandVisible() {\n if (this.state.depth < 9) {\n const depth = this.state.depth + 1;\n const expanded = [...this.state.expanded];\n this.expandDepth(this.root, depth, expanded);\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectExpanded`, JSON.stringify(expanded));\n this.setState({ depth, expanded });\n }\n }\n\n /**\n * @private\n */\n onStatesViewVisible() {\n const statesView = !this.state.statesView;\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectStatesView`, JSON.stringify(statesView));\n this.setState({ statesView });\n }\n\n /**\n * @private\n */\n onCollapseVisible() {\n if (this.state.depth > 0) {\n const depth = this.state.depth - 1;\n const expanded = ObjectBrowser.collapseDepth(depth, this.state.expanded);\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectExpanded`, JSON.stringify(expanded));\n this.setState({ depth, expanded });\n }\n }\n\n /**\n * @private\n * @param {string} id\n */\n getEnumsForId = id => {\n const result = [];\n this.info.enums.forEach(_id => {\n if (this.objects[_id]?.common?.members?.includes(id)) {\n const en = {\n _id: this.objects[_id]._id,\n common: JSON.parse(JSON.stringify(this.objects[_id].common)),\n native: this.objects[_id].native,\n type: 'enum',\n };\n if (en.common) {\n delete en.common.members;\n delete en.common.custom;\n delete en.common.mobile;\n }\n result.push(en);\n }\n });\n\n return result.length ? result : undefined;\n };\n\n /**\n * @private\n * @param {array} enums\n * @param {string} objId\n */\n _createAllEnums = async (enums, objId) => {\n for (let e = 0; e < enums.length; e++) {\n let id = enums[e];\n let _enObj;\n if (typeof id === 'object') {\n _enObj = id;\n id = id._id;\n }\n let enObj = this.objects[id];\n if (!enObj) {\n enObj = _enObj || {\n _id: id,\n common: {\n name: id.split('.').pop(),\n members: [],\n },\n native: {},\n };\n\n enObj.common = enObj.common || {};\n enObj.common.members = [objId];\n\n await this.props.socket.setObject(id, enObj);\n } else if (!enObj.common?.members?.includes(objId)) {\n enObj.common = enObj.common || {};\n enObj.common.members = enObj.common.members || [];\n // add missing object\n enObj.common.members.push(objId);\n enObj.common.members.sort();\n await this.props.socket.setObject(id, enObj);\n }\n }\n };\n\n /**\n * @private\n * @param {any} objs\n */\n loadObjects = async objs => {\n if (objs) {\n for (const id in objs) {\n if (!Object.hasOwn(objs, id) || !objs[id]) {\n continue;\n }\n const obj = objs[id];\n let enums = null;\n if (obj && obj.common && obj.common.enums) {\n enums = obj.common.enums;\n delete obj.common.enums;\n } else {\n enums = null;\n }\n try {\n await this.props.socket.setObject(id, obj);\n enums && (await this._createAllEnums(enums, obj._id));\n if (obj.type === 'state') {\n try {\n const state = await this.props.socket.getState(obj._id);\n if (!state || state.val === null) {\n try {\n await this.props.socket.setState(obj._id, !obj.common || obj.common.def === undefined ? null : obj.common.def, true);\n } catch (e) {\n window.alert(`Cannot set state \"${obj._id}\": ${e}`);\n }\n }\n } catch (e) {\n window.alert(`Cannot read state \"${obj._id}\": ${e}`);\n }\n }\n } catch (error) {\n window.alert(error);\n }\n }\n }\n };\n\n _getSelectedIdsForExport() {\n if (this.state.selected.length || this.state.selectedNonObject) {\n const result = [];\n const keys = Object.keys(this.objects);\n keys.sort();\n const id = this.state.selected[0] || this.state.selectedNonObject;\n const idDot = `${id}.`;\n const idLen = idDot.length;\n for (let k = 0; k < keys.length; k++) {\n const key = keys[k];\n if (id === key || key.startsWith(idDot)) {\n result.push(key);\n }\n if (key.substring(0, idLen) > idDot) {\n break;\n }\n }\n\n return result;\n }\n return [];\n }\n\n _exportObjects(isAll) {\n if (isAll) {\n generateFile('allObjects.json', this.objects);\n } else\n if (this.state.selected.length || this.state.selectedNonObject) {\n const result = {};\n const id = this.state.selected[0] || this.state.selectedNonObject;\n\n this._getSelectedIdsForExport().forEach(key => {\n result[key] = JSON.parse(JSON.stringify(this.objects[key]));\n // add enum information\n if (result[key].common) {\n const enums = this.getEnumsForId(key);\n if (enums) {\n result[key].common.enums = enums;\n }\n }\n });\n\n generateFile(`${id}.json`, result);\n } else {\n window.alert(this.props.t('ra_Save of objects-tree is not possible'));\n }\n }\n\n renderExportDialog() {\n if (this.state.showExportDialog === false) {\n return null;\n }\n return <Dialog open={!0}>\n <DialogTitle>{this.props.t('Select type of export')}</DialogTitle>\n <DialogContent>\n <DialogContentText>\n {this.props.t('You can export all objects or just the selected branch.')}\n <br />\n {this.props.t('Selected %s object(s)', this.state.showExportDialog)}\n </DialogContentText>\n </DialogContent>\n <DialogActions>\n <Button color=\"grey\" variant=\"outlined\" onClick={() => this.setState({ showExportDialog: false }, () => this._exportObjects(true))}>{this.props.t('ra_All objects')} ({Object.keys(this.objects).length})</Button>\n <Button color=\"primary\" variant=\"contained\" autoFocus onClick={() => this.setState({ showExportDialog: false }, () => this._exportObjects(false))}>{this.props.t('ra_Only selected')} ({this.state.showExportDialog})</Button>\n <Button color=\"grey\" variant=\"contained\" onClick={() => this.setState({ showExportDialog: false })} startIcon={<IconClose />}>{this.props.t('ra_Cancel')}</Button>\n </DialogActions>\n </Dialog>;\n }\n\n /**\n * @private\n * @param {object} evt\n */\n handleJsonUpload = evt => {\n const f = evt.target.files[0];\n if (f) {\n const r = new FileReader();\n r.onload = async e => {\n const contents = e.target.result;\n try {\n const json = JSON.parse(contents);\n const len = Object.keys(json).length;\n const id = json._id;\n if (id === undefined && len) {\n await this.loadObjects(json);\n window.alert(this.props.t('ra_%s object(s) processed', len));\n } else {\n // it is only one object in form\n // {\n // \"_id\": \"xxx\",\n // \"common\": \"yyy\",\n // \"native\": \"zzz\"\n // }\n if (!id) {\n return window.alert(this.props.t('ra_Invalid structure'));\n }\n try {\n let enums;\n if (json.common.enums) {\n enums = json.common.enums;\n delete json.common.enums;\n }\n await this.props.socket.setObject(json._id, json);\n if (json.type === 'state') {\n const state = await this.props.socket.getState(json._id);\n if (!state || state.val === null || state.val === undefined) {\n await this.props.socket.getState(json._id, json.common.def === undefined ? null : json.common.def, true);\n }\n }\n if (enums) {\n await this._createAllEnums(enums, json._id);\n }\n\n window.alert(this.props.t('ra_%s was imported', json._id));\n } catch (err) {\n window.alert(err);\n }\n }\n } catch (err) {\n window.alert(err);\n }\n return null;\n };\n r.readAsText(f);\n } else {\n window.alert(this.props.t('ra_Failed to open JSON File'));\n }\n };\n\n toolTipObjectCreating = () => {\n const { t } = this.props;\n\n let value = [\n <div key={1}>{t('ra_Only following structures of objects are available:')}</div>,\n <div key={2}>{t('ra_Folder → State')}</div>,\n <div key={3}>{t('ra_Folder → Channel → State')}</div>,\n <div key={4}>{t('ra_Folder → Device → Channel → State')}</div>,\n <div key={5}>{t('ra_Device → Channel → State')}</div>,\n <div key={6}>{t('ra_Channel → State')}</div>,\n <div key={7} style={{ height: 10 }} />,\n <div key={8}>{t('ra_Non-experts may create new objects only in \"0_userdata.0\" or \"alias.0\".')}</div>,\n <div key={9}>{t('ra_The experts may create objects everywhere but from second level (e.g. \"vis.0\" or \"javascript.0\").')}</div>,\n ];\n\n if (this.state.selected.length || this.state.selectedNonObject) {\n const id = this.state.selected[0] || this.state.selectedNonObject;\n if (id.split('.').length < 2 || (this.objects[id] && this.objects[id]?.type === 'state')) {\n // show default tooltip\n } else if (this.state.filter.expertMode) {\n switch (this.objects[id]?.type) {\n case 'device':\n value = [\n <div key={1}>{t('ra_Only following structures of objects are available:')}</div>,\n <div key={5}>{t('ra_Device → Channel → State')}</div>,\n <div key={7} style={{ height: 10 }} />,\n <div key={8}>{t('ra_Non-experts may create new objects only in \"0_userdata.0\" or \"alias.0\".')}</div>,\n <div key={9}>{t('ra_The experts may create objects everywhere but from second level (e.g. \"vis.0\" or \"javascript.0\").')}</div>,\n ];\n break;\n case 'folder':\n value = [\n <div key={1}>{t('ra_Only following structures of objects are available:')}</div>,\n <div key={2}>{t('ra_Folder → State')}</div>,\n <div key={3}>{t('ra_Folder → Channel → State')}</div>,\n <div key={4}>{t('ra_Folder → Device → Channel → State')}</div>,\n <div key={7} style={{ height: 10 }} />,\n <div key={8}>{t('ra_Non-experts may create new objects only in \"0_userdata.0\" or \"alias.0\".')}</div>,\n <div key={9}>{t('ra_The experts may create objects everywhere but from second level (e.g. \"vis.0\" or \"javascript.0\").')}</div>,\n ];\n break;\n case 'channel':\n value = [\n <div key={1}>{t('ra_Only following structures of objects are available:')}</div>,\n <div key={1}>{t('ra_Channel → State')}</div>,\n <div key={7} style={{ height: 10 }} />,\n <div key={8}>{t('ra_Non-experts may create new objects only in \"0_userdata.0\" or \"alias.0\".')}</div>,\n <div key={9}>{t('ra_The experts may create objects everywhere but from second level (e.g. \"vis.0\" or \"javascript.0\").')}</div>,\n ];\n break;\n default:\n break;\n }\n } else if (id.startsWith('alias.0') || id.startsWith('0_userdata')) {\n value = [\n <div key={1}>{t('ra_Only following structures of objects are available:')}</div>,\n <div key={2}>{t('ra_Folder → State')}</div>,\n <div key={3}>{t('ra_Folder → Channel → State')}</div>,\n <div key={4}>{t('ra_Folder → Device → Channel → State')}</div>,\n <div key={5}>{t('ra_Device → Channel → State')}</div>,\n <div key={6}>{t('ra_Channel → State')}</div>,\n <div key={7} style={{ height: 10 }} />,\n <div key={7}>{t('ra_Non-experts may create new objects only in \"0_userdata.0\" or \"alias.0\".')}</div>,\n <div key={8}>{t('ra_The experts may create objects everywhere but from second level (e.g. \"vis.0\" or \"javascript.0\").')}</div>,\n ];\n }\n }\n\n return value.length ? value : t('ra_Add new child object to selected parent');\n };\n\n /**\n * Renders the toolbar.\n * @returns {JSX.Element}\n */\n getToolbar() {\n let allowObjectCreation = false;\n if (this.state.selected.length || this.state.selectedNonObject) {\n const id = this.state.selected[0] || this.state.selectedNonObject;\n\n if (id.split('.').length < 2 || (this.objects[id] && this.objects[id].type === 'state')) {\n allowObjectCreation = false;\n } else if (this.state.filter.expertMode) {\n allowObjectCreation = true;\n } else if (id.startsWith('alias.0') || id.startsWith('0_userdata')) {\n allowObjectCreation = true;\n }\n }\n\n return <div style={{\n display: 'flex',\n width: '100%',\n alignItems: 'center',\n }}\n >\n <div style={{\n display: 'flex',\n width: '100%',\n alignItems: 'center',\n }}\n >\n\n <Tooltip title={this.props.t('ra_Refresh tree')}>\n <div>\n <IconButton\n onClick={() => this.refreshComponent()}\n disabled={this.state.updating}\n size=\"large\"\n >\n <RefreshIcon />\n </IconButton>\n </div>\n </Tooltip>\n {this.props.showExpertButton && !this.props.expertMode &&\n <Tooltip title={this.props.t('ra_expertMode')}>\n <IconButton\n key=\"expertMode\"\n color={this.state.filter.expertMode ? 'secondary' : 'default'}\n onClick={() => this.onFilter('expertMode', !this.state.filter.expertMode)}\n size=\"large\"\n >\n <IconExpert />\n </IconButton>\n </Tooltip>}\n {!this.props.disableColumnSelector &&\n <Tooltip title={this.props.t('ra_Configure')}>\n <IconButton\n key=\"columnSelector\"\n // color={this.state.columnsAuto ? 'primary' : 'default'}\n onClick={() => this.setState({ columnsSelectorShow: true })}\n size=\"large\"\n >\n <IconColumns />\n </IconButton>\n </Tooltip>}\n {this.state.expandAllVisible &&\n <Tooltip title={this.props.t('ra_Expand all nodes')}>\n <IconButton\n key=\"expandAll\"\n onClick={() => this.onExpandAll()}\n size=\"large\"\n >\n <IconOpen />\n </IconButton>\n </Tooltip>}\n <Tooltip title={this.props.t('ra_Collapse all nodes')}>\n <IconButton\n key=\"collapseAll\"\n onClick={() => this.onCollapseAll()}\n size=\"large\"\n >\n <IconClosed />\n </IconButton>\n </Tooltip>\n <Tooltip title={this.props.t('ra_Expand one step node')}>\n <IconButton\n key=\"expandVisible\"\n color=\"primary\"\n onClick={() => this.onExpandVisible()}\n size=\"large\"\n >\n <StyledBadge badgeContent={this.state.depth} color=\"secondary\">\n <IconOpen />\n </StyledBadge>\n </IconButton>\n </Tooltip>\n <Tooltip title={this.props.t('ra_Collapse one step node')}>\n <IconButton\n key=\"collapseVisible\"\n color=\"primary\"\n onClick={() => this.onCollapseVisible()}\n size=\"large\"\n >\n <StyledBadge badgeContent={this.state.depth} color=\"secondary\">\n <IconClosed />\n </StyledBadge>\n </IconButton>\n </Tooltip>\n {this.props.objectStatesView && <Tooltip title={this.props.t('ra_Toggle the states view')}>\n <IconButton\n onClick={() => this.onStatesViewVisible()}\n size=\"large\"\n >\n <LooksOneIcon color={this.state.statesView ? 'primary' : 'inherit'} />\n </IconButton>\n </Tooltip>}\n\n {this.props.objectAddBoolean ?\n <Tooltip title={this.toolTipObjectCreating()}>\n <div>\n <IconButton\n disabled={!allowObjectCreation}\n onClick={() => this.setState({ modalNewObj: true })}\n size=\"large\"\n >\n <AddIcon />\n </IconButton>\n </div>\n </Tooltip>\n : null}\n\n {this.props.objectImportExport &&\n <Tooltip title={this.props.t('ra_Add objects tree from JSON file')}>\n <IconButton\n onClick={() => {\n const input = document.createElement('input');\n input.setAttribute('type', 'file');\n input.setAttribute('id', 'files');\n input.setAttribute('opacity', 0);\n input.addEventListener('change', e => this.handleJsonUpload(e), false);\n input.click();\n }}\n size=\"large\"\n >\n <PublishIcon />\n </IconButton>\n </Tooltip>}\n {this.props.objectImportExport && (!!this.state.selected.length || this.state.selectedNonObject) &&\n <Tooltip title={this.props.t('ra_Save objects tree as JSON file')}>\n <IconButton\n onClick={() => this.setState({ showExportDialog: this._getSelectedIdsForExport().length })}\n size=\"large\"\n >\n <PublishIcon style={{ transform: 'rotate(180deg)' }} />\n </IconButton>\n </Tooltip>}\n </div>\n {!!this.props.objectBrowserEditObject && <div style={{ display: 'flex', whiteSpace: 'nowrap' }}>\n {`${this.props.t('ra_Objects')}: ${Object.keys(this.info.objects).length}, ${this.props.t('ra_States')}: ${Object.keys(this.info.objects).filter(el => this.info.objects[el].type === 'state').length}`}\n </div>}\n {this.props.objectEditBoolean &&\n <Tooltip title={this.props.t('ra_Edit custom config')}>\n <IconButton\n onClick={() => {\n // get all visible states\n const ids = getVisibleItems(this.root, 'state', this.objects);\n\n if (ids.length) {\n this.pauseSubscribe(true);\n\n if (ids.length === 1) {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectSelected`, this.state.selected[0]);\n this.props.router && this.props.router.doNavigate(null, 'custom', this.state.selected[0]);\n }\n this.setState({ customDialog: ids });\n } else {\n this.setState({ toast: this.props.t('ra_please select object') });\n }\n }}\n size=\"large\"\n >\n <BuildIcon />\n </IconButton>\n </Tooltip>}\n </div>;\n }\n\n /**\n * @private\n * @param {string} id\n */\n toggleExpanded(id) {\n const expanded = JSON.parse(JSON.stringify(this.state.expanded));\n const pos = expanded.indexOf(id);\n if (pos === -1) {\n expanded.push(id);\n expanded.sort();\n } else {\n expanded.splice(pos, 1);\n }\n\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectExpanded`, JSON.stringify(expanded));\n\n this.setState({ expanded });\n }\n\n /**\n * @private\n * @param {Event} e\n * @param {string} text\n */\n onCopy(e, text) {\n e.stopPropagation();\n e.preventDefault();\n Utils.copyToClipboard(text, null);\n if (text.length < 50) {\n this.setState({ toast: this.props.t('ra_Copied %s', text) });\n } else {\n this.setState({ toast: this.props.t('ra_Copied') });\n }\n }\n\n renderTooltipAccessControl = acl => {\n // acl ={object,state,owner,ownerGroup}\n if (!acl) {\n return null;\n }\n const check = [\n {\n value: '0x400', valueNum: 0x400, title: 'read', group: 'Owner',\n },\n {\n value: '0x200', valueNum: 0x200, title: 'write', group: 'Owner',\n },\n {\n value: '0x40', valueNum: 0x40, title: 'read', group: 'Group',\n },\n {\n value: '0x20', valueNum: 0x20, title: 'write', group: 'Group',\n },\n {\n value: '0x4', valueNum: 0x4, title: 'read', group: 'Everyone',\n },\n {\n value: '0x2', valueNum: 0x2, title: 'write', group: 'Everyone',\n },\n ];\n const arrayTooltipText = [];\n const funcRenderStateObject = (value = 'object') => {\n const rights = acl[value];\n check.forEach((el, i) => {\n // eslint-disable-next-line no-bitwise\n if (rights & el.valueNum) {\n arrayTooltipText.push(<span key={value + i}>\n {this.texts[`acl${el.group}_${el.title}_${value}`]}\n,\n <span className={value === 'object' ? this.props.classes.rightsObject : this.props.classes.rightsState}>\n {el.value}\n </span>\n </span>);\n }\n });\n };\n arrayTooltipText.push(<span key=\"group\">{`${this.texts.ownerGroup}: ${(acl.ownerGroup || '').replace('system.group.', '')}`}</span>);\n arrayTooltipText.push(<span key=\"owner\">{`${this.texts.ownerUser}: ${(acl.owner || '').replace('system.user.', '')}`}</span>);\n funcRenderStateObject();\n if (acl.state) {\n funcRenderStateObject('state');\n }\n return arrayTooltipText.length ? <span className={this.props.classes.tooltipAccessControl}>{arrayTooltipText.map(el => el)}</span> : '';\n };\n\n /**\n * @param {string} id\n * @param {{ data: { obj: { type: string; }; hasCustoms: any; }; }} item\n * @param {{ cellButtonsButton: string | undefined; cellButtonsButtonAlone: any; cellButtonsButtonIcon: string | undefined; cellButtonsButtonWithCustoms: any; }} classes\n */\n renderColumnButtons(id, item, classes) {\n if (!item.data.obj) {\n return this.props.onObjectDelete || this.props.objectEditOfAccessControl ? <div className={classes.buttonDiv}>\n {this.state.filter.expertMode && this.props.objectEditOfAccessControl ? <IconButton\n className={Utils.clsx(classes.cellButtonsButton, classes.cellButtonsEmptyButton, classes.cellButtonMinWidth)}\n onClick={() =>\n this.setState({ modalEditOfAccess: true, modalEditOfAccessObjData: item.data })}\n size=\"large\"\n >\n---\n </IconButton> : null}\n {this.props.onObjectDelete && item.children && item.children.length ? <IconButton\n className={Utils.clsx(classes.cellButtonsButton, classes.cellButtonsButtonAlone)}\n size=\"small\"\n aria-label=\"delete\"\n title={this.texts.deleteObject}\n onClick={() => {\n // calculate number of children\n const keys = Object.keys(this.objects);\n keys.sort();\n let count = 0;\n const start = `${id}.`;\n for (let i = 0; i < keys.length; i++) {\n if (keys[i].startsWith(start)) {\n count++;\n } else if (keys[i] > start) {\n break;\n }\n }\n\n this.props.onObjectDelete(id, !!(item.children && item.children.length), false, count + 1);\n }}\n >\n <IconDelete className={classes.cellButtonsButtonIcon} />\n </IconButton> : null}\n </div> : null;\n }\n\n item.data.aclTooltip = item.data.aclTooltip || this.renderTooltipAccessControl(item.data.obj.acl);\n\n const acl = item.data.obj.acl ? (item.data.obj.type === 'state' ? item.data.obj.acl.state : item.data.obj.acl.object) : 0;\n const aclSystemConfig = item.data.obj.acl && (item.data.obj.type === 'state' ? this.systemConfig.common.defaultNewAcl.state : this.systemConfig.common.defaultNewAcl.object);\n\n return [\n this.state.filter.expertMode && this.props.objectEditOfAccessControl ? <Tooltip key=\"acl\" title={item.data.aclTooltip}>\n <IconButton\n className={classes.cellButtonMinWidth}\n onClick={() => this.setState({ modalEditOfAccess: true, modalEditOfAccessObjData: item.data })}\n size=\"large\"\n >\n <div className={classes.aclText}>{Number.isNaN(Number(acl).toString(16)) ? Number(aclSystemConfig).toString(16) : Number(acl).toString(16)}</div>\n </IconButton>\n </Tooltip> : <div key=\"aclEmpty\" className={classes.cellButtonMinWidth} />,\n <IconButton\n key=\"edit\"\n className={classes.cellButtonsButton}\n size=\"small\"\n aria-label=\"edit\"\n title={this.texts.editObject}\n onClick={() => {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectSelected`, id);\n this.setState({ editObjectDialog: id });\n }}\n >\n <IconEdit className={classes.cellButtonsButtonIcon} />\n </IconButton>,\n this.props.onObjectDelete && (item.children?.length || !item.data.obj.common?.dontDelete) ? <IconButton\n key=\"delete\"\n className={classes.cellButtonsButton}\n size=\"small\"\n aria-label=\"delete\"\n onClick={() => {\n const keys = Object.keys(this.objects);\n keys.sort();\n let count = 0;\n const start = `${id}.`;\n for (let i = 0; i < keys.length; i++) {\n if (keys[i].startsWith(start)) {\n count++;\n } else if (keys[i] > start) {\n break;\n }\n }\n this.props.onObjectDelete(id, !!item.children?.length, !item.data.obj.common?.dontDelete, count);\n }}\n title={this.texts.deleteObject}\n >\n <IconDelete className={classes.cellButtonsButtonIcon} />\n </IconButton> : null,\n this.props.objectCustomDialog && this.info.hasSomeCustoms && item.data.obj.type === 'state' && item.data.obj.common?.type !== 'file' ? <IconButton\n className={Utils.clsx(classes.cellButtonsButton, item.data.hasCustoms ? classes.cellButtonsButtonWithCustoms : classes.cellButtonsButtonWithoutCustoms)}\n key=\"custom\"\n size=\"small\"\n aria-label=\"config\"\n title={this.texts.customConfig}\n onClick={() => {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectSelected`, id);\n\n this.pauseSubscribe(true);\n this.props.router && this.props.router.doNavigate(null, 'customs', id);\n this.setState({ customDialog: [id] });\n }}\n >\n <IconConfig className={classes.cellButtonsButtonIcon} />\n </IconButton> : null,\n ];\n }\n\n /**\n * @private\n * @param {string} id\n */\n readHistory(id) {\n /* interface GetHistoryOptions {\n instance?: string;\n start?: number;\n end?: number;\n step?: number;\n count?: number;\n from?: boolean;\n ack?: boolean;\n q?: boolean;\n addID?: boolean;\n limit?: number;\n ignoreNull?: boolean;\n sessionId?: any;\n aggregate?: 'minmax' | 'min' | 'max' | 'average' | 'total' | 'count' | 'none';\n } */\n if (window.sparkline &&\n this.defaultHistory &&\n this.objects[id] &&\n this.objects[id].common &&\n this.objects[id].common.custom &&\n this.objects[id].common.custom[this.defaultHistory]) {\n\n const now = new Date();\n now.setHours(now.getHours() - 24);\n now.setMinutes(0);\n now.setSeconds(0);\n now.setMilliseconds(0);\n const nowMs = now.getTime();\n\n this.props.socket.getHistory(id, {\n instance: this.defaultHistory,\n start: nowMs,\n end: Date.now(),\n step: 3600000,\n from: false,\n ack: false,\n q: false,\n addID: false,\n aggregate: 'minmax',\n })\n .then(values => {\n const sparks = window.document.getElementsByClassName('sparkline');\n\n for (let s = 0; s < sparks.length; s++) {\n if (sparks[s].dataset.id === id) {\n const v = prepareSparkData(values, nowMs);\n\n window.sparkline.sparkline(sparks[s], v);\n break;\n }\n }\n })\n .catch(e => console.warn(`Cannot read history: ${e}`));\n }\n }\n\n /**\n * @private\n * @param {string} id\n * @param {any} item\n * @param {Record<string, any>} classes\n * @returns {JSX.Element | null}\n */\n renderColumnValue(id, item, classes) {\n const obj = item.data.obj;\n if (!obj || !this.states) {\n return null;\n }\n\n if (obj.common?.type === 'file') {\n return <div className={Utils.clsx(classes.cellValueText, classes.cellValueFile)}>[file]</div>;\n }\n if (!this.states[id]) {\n if (obj.type === 'state') {\n !this.recordStates.includes(id) && this.recordStates.push(id);\n this.states[id] = { val: null };\n this.subscribe(id);\n }\n return null;\n }\n !this.recordStates.includes(id) && this.recordStates.push(id);\n\n const state = this.states[id];\n let info = item.data.state;\n if (!info) {\n item.data.state = item.data.state || formatValue(id, state, obj, this.texts, this.props.dateFormat, this.props.isFloatComma);\n info = item.data.state;\n\n info.valFull = info.valFull.map(_item => {\n if (_item.t === this.texts.quality && state.q) {\n return [\n <div className={classes.cellValueTooltipBoth} key={_item.t}>\n {_item.t}\n :&nbsp;\n {_item.v}\n </div>,\n // <div className={classes.cellValueTooltipValue} key={item.t + '_v'}>{item.v}</div>,\n !_item.nbr ? <br key={`${_item.t}_br`} /> : null,\n ];\n }\n return [\n <div className={classes.cellValueTooltipTitle} key={_item.t}>\n {_item.t}\n :&nbsp;\n </div>,\n <div className={classes.cellValueTooltipValue} key={`${_item.t}_v`}>{_item.v}</div>,\n !_item.nbr ? <br key={`${_item.t}_br`} /> : null,\n ];\n });\n\n if (this.defaultHistory && this.objects[id] && this.objects[id].common && this.objects[id].common.custom && this.objects[id].common.custom[this.defaultHistory]) {\n info.valFull.push(<svg key=\"sparkline\" className=\"sparkline\" data-id={id} style={{ fill: '#3d85de' }} width=\"200\" height=\"30\" strokeWidth=\"3\" />);\n }\n\n const copyText = info.valText.v || '';\n info.val = copyText;\n info.valText = [\n <span className={classes.newValue} key={`${info.valText.v.toString()}valText`}>{info.valText.v.toString()}</span>,\n info.valText.u ? <span className={Utils.clsx(classes.cellValueTextUnit, classes.newValue)} key={`${info.valText.v.toString()}unit`}>{info.valText.u}</span> : null,\n info.valText.s !== undefined ? <span className={Utils.clsx(classes.cellValueTextState, classes.newValue)} key={`${info.valText.v.toString()}states`}>\n (\n {info.valText.s}\n )\n </span> : null,\n <IconCopy className={Utils.clsx(classes.cellButtonsValueButton, 'copyButton', classes.cellButtonsValueButtonCopy)} onClick={e => this.onCopy(e, copyText)} key=\"cc\" />,\n // <IconEdit className={ Utils.clsx(classes.cellButtonsValueButton, 'copyButton', classes.cellButtonsValueButtonEdit) } key=\"ce\" />\n ];\n }\n\n let val = info.valText;\n if (!this.state.filter.expertMode && item.data.button) {\n val = <PressButtonIcon className={Utils.clsx(this.props.classes.cellValueButton, !this.states[id] || !this.states[id].val ? this.props.classes.cellValueButtonFalse : '')} />;\n }\n\n return <Tooltip\n key=\"value\"\n title={info.valFull}\n classes={{ tooltip: this.props.classes.cellValueTooltip, popper: this.props.classes.cellValueTooltipBox }}\n onOpen={() => this.readHistory(id)}\n >\n <div style={info.style} className={classes.cellValueText}>\n {val}\n </div>\n </Tooltip>;\n }\n\n /**\n * @private\n * @returns {undefined}\n */\n _syncEnum(id, enumIds, newArray, cb) {\n if (!enumIds || !enumIds.length) {\n cb && cb();\n return;\n }\n const enumId = enumIds.pop();\n const promises = [];\n if (this.info.objects[enumId]?.common) {\n if (this.info.objects[enumId].common.members?.length) {\n const pos = this.info.objects[enumId].common.members.indexOf(id);\n if (pos !== -1 && !newArray.includes(enumId)) {\n // delete from members\n const obj = JSON.parse(JSON.stringify(this.info.objects[enumId]));\n obj.common.members.splice(pos, 1);\n promises.push(this.props.socket.setObject(enumId, obj)\n .then(() => this.info.objects[enumId] = obj)\n .catch(e => this.showError(e)));\n }\n }\n\n // add to it\n if (newArray.includes(enumId) && !this.info.objects[enumId].common.members?.includes(id)) {\n // add to object\n const obj = JSON.parse(JSON.stringify(this.info.objects[enumId]));\n obj.common.members = obj.common.members || [];\n obj.common.members.push(id);\n obj.common.members.sort();\n promises.push(this.props.socket.setObject(enumId, obj)\n .then(() => this.info.objects[enumId] = obj)\n .catch(e => this.showError(e)));\n }\n }\n\n Promise.all(promises)\n .then(() => setTimeout(() =>\n this._syncEnum(id, enumIds, newArray, cb), 0));\n }\n\n /**\n * @private\n * @returns {Promise}\n */\n syncEnum(id, enumName, newArray) {\n const toCheck = [...this.info[enumName === 'func' ? 'funcEnums' : 'roomEnums']];\n\n return new Promise(resolve => {\n this._syncEnum(id, toCheck, newArray, error => {\n error && this.showError(error);\n // force update of object\n resolve();\n });\n });\n }\n\n /**\n * @private\n * @returns {JSX.Element | null}\n */\n renderEnumDialog() {\n if (this.state.enumDialog) {\n const type = this.state.enumDialog.type;\n const item = this.state.enumDialog.item;\n const itemEnums = this.state.enumDialogEnums;\n const enumsOriginal = this.state.enumDialog.enumsOriginal;\n\n const enums = (type === 'room' ? this.info.roomEnums : this.info.funcEnums).map(id => ({\n name: getName((this.objects[id] && this.objects[id].common && this.objects[id].common.name) || id.split('.').pop(), this.props.lang),\n value: id,\n icon: getSelectIdIcon(this.objects, id, this.imagePrefix),\n }))\n .sort((a, b) => a.name > b.name ? 1 : -1);\n\n enums.forEach(_item => {\n if (_item.icon && typeof _item.icon === 'string') {\n _item.icon = <div className={this.props.classes.enumIconDiv}>\n <img src={_item.icon} className={this.props.classes.enumIcon} alt={_item.name} />\n </div>;\n }\n });\n\n // const hasIcons = !!enums.find(item => item.icon);\n\n return <Dialog\n className={this.props.classes.enumDialog}\n onClose={() => this.setState({ enumDialog: null })}\n aria-labelledby=\"enum-dialog-title\"\n open={!0} // true\n >\n <DialogTitle id=\"enum-dialog-title\">\n {type === 'func' ? this.props.t('ra_Define functions') : this.props.t('ra_Define rooms')}\n <Fab\n className={this.props.classes.enumButton}\n color=\"primary\"\n disabled={JSON.stringify(enumsOriginal) === JSON.stringify(itemEnums)}\n size=\"small\"\n onClick={() =>\n this.syncEnum(item.data.id, type, itemEnums)\n .then(() => this.setState({ enumDialog: null, enumDialogEnums: null }))}\n >\n <IconCheck />\n </Fab>\n </DialogTitle>\n <List classes={{ root: this.props.classes.enumList }}>\n {\n enums.map(_item => {\n let id;\n let name;\n let icon;\n\n if (typeof _item === 'object') {\n id = _item.value;\n name = _item.name;\n icon = _item.icon;\n } else {\n id = _item;\n name = _item;\n }\n const labelId = `checkbox-list-label-${id}`;\n\n return <ListItem\n className={this.props.classes.headerCellSelectItem}\n key={id}\n onClick={() => {\n const pos = itemEnums.indexOf(id);\n const enumDialogEnums = JSON.parse(JSON.stringify(this.state.enumDialogEnums));\n if (pos === -1) {\n enumDialogEnums.push(id);\n enumDialogEnums.sort();\n } else {\n enumDialogEnums.splice(pos, 1);\n }\n this.setState({ enumDialogEnums });\n }}\n >\n <ListItemIcon classes={{ root: this.props.classes.enumCheckbox }}>\n <Checkbox\n edge=\"start\"\n checked={itemEnums.includes(id)}\n tabIndex={-1}\n disableRipple\n inputProps={{ 'aria-labelledby': labelId }}\n />\n </ListItemIcon>\n <ListItemText id={labelId}>{name}</ListItemText>\n {icon ? <ListItemSecondaryAction>{icon}</ListItemSecondaryAction> : null}\n </ListItem>;\n })\n }\n </List>\n </Dialog>;\n }\n return null;\n }\n\n /**\n * @private\n * @returns {JSX.Element | null}\n */\n renderEditRoleDialog() {\n if (this.state.roleDialog && this.props.objectBrowserEditRole) {\n const ObjectBrowserEditRole = this.props.objectBrowserEditRole;\n return <ObjectBrowserEditRole\n key=\"objectBrowserEditRole\"\n id={this.state.roleDialog}\n socket={this.props.socket}\n t={this.props.t}\n roles={this.info.roles}\n onClose={obj => {\n if (obj) {\n this.info.objects[this.state.roleDialog] = obj;\n }\n this.setState({ roleDialog: false });\n }}\n />;\n }\n return null;\n }\n\n /**\n * @private\n * @param {boolean} [isSave]\n */\n onColumnsEditCustomDialogClose(isSave) {\n if (isSave) {\n let value = this.customColumnDialog.value;\n if (this.customColumnDialog.type === 'boolean') {\n value = value === 'true' || value === true;\n } else if (this.customColumnDialog.type === 'number') {\n value = parseFloat(value);\n }\n this.customColumnDialog = null;\n this.props.socket.getObject(this.state.columnsEditCustomDialog.obj._id)\n .then(obj => {\n if (ObjectBrowser.setCustomValue(obj, this.state.columnsEditCustomDialog.it, value)) {\n return this.props.socket.setObject(obj._id, obj);\n }\n throw new Error(this.props.t('ra_Cannot update attribute, because not found in the object'));\n })\n .then(() => this.setState({ columnsEditCustomDialog: null }))\n .catch(e => this.showError(e));\n } else {\n this.customColumnDialog = null;\n this.setState({ columnsEditCustomDialog: null });\n }\n }\n\n /**\n * @private\n */\n renderColumnsEditCustomDialog() {\n if (this.state.columnsEditCustomDialog) {\n if (!this.customColumnDialog) {\n const value = ObjectBrowser.getCustomValue(this.state.columnsEditCustomDialog.obj, this.state.columnsEditCustomDialog.it);\n this.customColumnDialog = {\n type: this.state.columnsEditCustomDialog.it.type || typeof value,\n initValue: (value === null || value === undefined ? '' : value).toString(),\n value: (value === null || value === undefined ? '' : value).toString(),\n };\n }\n\n return <Dialog\n onClose={() => this.setState({ columnsEditCustomDialog: null })}\n maxWidth=\"md\"\n aria-labelledby=\"custom-dialog-title\"\n open={!0}\n >\n <DialogTitle id=\"custom-dialog-title\">{`${this.props.t('ra_Edit object field')}: ${this.state.columnsEditCustomDialog.obj._id}`}</DialogTitle>\n <DialogContent>\n <DialogContentText id=\"alert-dialog-description\">\n {this.customColumnDialog.type === 'boolean' ?\n <FormControlLabel\n control={<Checkbox\n onKeyUp={e => e.keyCode === 13 && this.onColumnsEditCustomDialogClose(true)}\n defaultChecked={this.customColumnDialog.value === 'true'}\n onChange={e => {\n this.customColumnDialog.value = e.target.checked.toString();\n const changed = this.customColumnDialog.value !== this.customColumnDialog.initValue;\n if (changed === !this.state.customColumnDialogValueChanged) {\n this.setState({ customColumnDialogValueChanged: changed });\n }\n }}\n />}\n label={`${this.state.columnsEditCustomDialog.it.name} (${this.state.columnsEditCustomDialog.it.pathText})`}\n />\n :\n <TextField\n variant=\"standard\"\n defaultValue={this.customColumnDialog.value}\n fullWidth\n onKeyUp={e => e.keyCode === 13 && this.onColumnsEditCustomDialogClose(true)}\n label={`${this.state.columnsEditCustomDialog.it.name} (${this.state.columnsEditCustomDialog.it.pathText})`}\n onChange={e => {\n this.customColumnDialog.value = e.target.value;\n const changed = this.customColumnDialog.value !== this.customColumnDialog.initValue;\n if (changed === !this.state.customColumnDialogValueChanged) {\n this.setState({ customColumnDialogValueChanged: changed });\n }\n }}\n autoFocus\n />}\n </DialogContentText>\n </DialogContent>\n <DialogActions>\n <Button\n variant=\"contained\"\n onClick={() => this.onColumnsEditCustomDialogClose(true)}\n disabled={!this.state.customColumnDialogValueChanged}\n color=\"primary\"\n startIcon={<IconCheck />}\n >\n {this.props.t('ra_Update')}\n </Button>\n <Button\n color=\"grey\"\n variant=\"contained\"\n onClick={() => this.onColumnsEditCustomDialogClose()}\n startIcon={<IconClose />}\n >\n {this.props.t('ra_Cancel')}\n </Button>\n </DialogActions>\n </Dialog>;\n }\n return null;\n }\n\n /**\n * @private\n * @param {any} obj\n * @param {any} it\n */\n static getCustomValue(obj, it) {\n if (obj && obj._id && obj._id.startsWith(`${it.adapter}.`) && it.path.length > 1) {\n const p = it.path;\n let value;\n if (obj[p[0]] && typeof obj[p[0]] === 'object') {\n if (p.length === 2) { // most common case\n value = obj[p[0]][p[1]];\n } else if (p.length === 3) {\n value = obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' ? obj[p[0]][p[1]][p[2]] : null;\n } else if (p.length === 4) {\n value = obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]] ? obj[p[0]][p[1]][p[2]][p[3]] : null;\n } else if (p.length === 5) {\n value = obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]] && obj[p[0]][p[1]][p[2]][p[3]] ? obj[p[0]][p[1]][p[2]][p[3]][p[4]] : null;\n } else if (p.length === 6) {\n value = obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]] && obj[p[0]][p[1]][p[2]][p[3]] && obj[p[0]][p[1]][p[2]][p[3]][p[4]] ? obj[p[0]][p[1]][p[2]][p[3]][p[4]][p[5]] : null;\n }\n if (value === undefined || value === null) {\n return null;\n }\n return value;\n }\n }\n\n return null;\n }\n\n /**\n * @private\n * @param {any} obj\n * @param {any} it\n * @param {any} value\n */\n static setCustomValue(obj, it, value) {\n if (obj && obj._id && obj._id.startsWith(`${it.adapter}.`) && it.path.length > 1) {\n const p = it.path;\n if (obj[p[0]] && typeof obj[p[0]] === 'object') {\n if (p.length === 2) { // most common case\n obj[p[0]][p[1]] = value;\n return true;\n }\n if (p.length === 3) {\n if (obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object') {\n obj[p[0]][p[1]][p[2]] = value;\n return true;\n }\n } else if (p.length === 4) {\n if (obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]] && typeof obj[p[0]][p[1]][p[2]] === 'object') {\n obj[p[0]][p[1]][p[2]][p[3]] = value;\n return true;\n }\n } else if (p.length === 5) {\n if (obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]] && typeof obj[p[0]][p[1]][p[2]] === 'object' && obj[p[0]][p[1]][p[2]][p[3]] && typeof obj[p[0]][p[1]][p[2]][p[3]] === 'object') {\n obj[p[0]][p[1]][p[2]][p[3]][p[4]] = value;\n return true;\n }\n } else if (p.length === 6) {\n if (obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]] && typeof obj[p[0]][p[1]][p[2]] === 'object' && obj[p[0]][p[1]][p[2]][p[3]] && typeof obj[p[0]][p[1]][p[2]][p[3]] === 'object' && obj[p[0]][p[1]][p[2]][p[3]][p[4]] && typeof obj[p[0]][p[1]][p[2]][p[3]][p[4]] === 'object') {\n obj[p[0]][p[1]][p[2]][p[3]][p[4]][p[5]] = value;\n return true;\n }\n }\n }\n }\n return false;\n }\n\n /**\n * Renders a custom value.\n * @param {any} obj\n * @param {any} it\n * @param {any} item\n * @returns {JSX.Element | null}\n */\n renderCustomValue(obj, it, item) {\n const text = ObjectBrowser.getCustomValue(obj, it);\n if (text !== null && text !== undefined) {\n if (it.edit && !this.props.notEditable && (!it.objTypes || it.objTypes.includes(obj.type))) {\n return <div\n className={Utils.clsx(this.props.classes.columnCustom, this.props.classes.columnCustomEditable, this.props.classes[`columnCustom_${it.align}`])}\n onClick={() => this.setState({ columnsEditCustomDialog: { item, it, obj }, customColumnDialogValueChanged: false })}\n >\n {text}\n </div>;\n }\n return <div\n className={Utils.clsx(this.props.classes.columnCustom, this.props.classes[`columnCustom_${it.align}`])}\n >\n {text}\n </div>;\n }\n return null;\n }\n\n /**\n * Renders a leaf.\n * @param {any} item\n * @param {boolean} isExpanded\n * @param {Record<string, any>} classes\n * @param {{ count: number; }} counter\n * @returns {JSX.Element}\n */\n renderLeaf(item, isExpanded, classes, counter) {\n const id = item.data.id;\n counter.count++;\n isExpanded = isExpanded === undefined ? this.state.expanded.includes(id) : isExpanded;\n\n // icon\n let iconFolder;\n const obj = item.data.obj;\n const itemType = obj?.type;\n\n if (item.children || itemType === 'folder' || itemType === 'device' || itemType === 'channel' || itemType === 'meta') {\n iconFolder = isExpanded ? <IconOpen\n className={classes.cellIdIconFolder}\n onClick={() => this.toggleExpanded(id)}\n /> : <IconClosed\n className={classes.cellIdIconFolder}\n onClick={() => this.toggleExpanded(id)}\n />;\n } else if (obj.common && (obj.common.write === false) && obj.type === 'state') {\n iconFolder = <IconDocumentReadOnly className={classes.cellIdIconDocument} />;\n } else {\n iconFolder = <IconDocument className={classes.cellIdIconDocument} />;\n }\n\n let iconItem = null;\n if (item.data.icon) {\n if (typeof item.data.icon === 'string') {\n if (item.data.icon.length < 3) {\n iconItem = <span className={Utils.clsx(classes.cellIdIconOwn, 'iconOwn')}>{item.data.icon}</span>; // utf-8 char\n } else {\n iconItem = <img className={Utils.clsx(classes.cellIdIconOwn, 'iconOwn')} src={item.data.icon} alt=\"\" />;\n }\n } else {\n iconItem = item.data.icon;\n }\n }\n\n const common = obj?.common;\n\n const typeImg = (obj && obj.type && ITEM_IMAGES[obj.type]) || <div className=\"itemIcon\" />;\n\n const paddingLeft = this.levelPadding * item.data.level;\n\n if (item.data.lang !== this.state.lang) {\n const { rooms, per } = findRoomsForObject(this.info, id, this.state.lang);\n item.data.rooms = rooms.join(', ');\n item.data.per = per;\n const { funcs, pef } = findFunctionsForObject(this.info, id, this.state.lang);\n item.data.funcs = funcs.join(', ');\n item.data.pef = pef;\n item.data.lang = this.state.lang;\n }\n\n const checkbox =\n this.props.multiSelect &&\n this.objects[id] && (!this.props.types || this.props.types.includes(this.objects[id].type)) ?\n <Checkbox\n className={classes.checkBox}\n checked={this.state.selected.includes(id)}\n /> :\n null;\n\n let valueEditable = !this.props.notEditable && itemType === 'state' && (this.state.filter.expertMode || common?.write !== false);\n if (this.props.objectBrowserViewFile && common?.type === 'file') {\n valueEditable = true;\n }\n const enumEditable = !this.props.notEditable && this.objects[id] && (this.state.filter.expertMode || itemType === 'state' || itemType === 'channel' || itemType === 'device');\n const checkVisibleObjectType = this.state.statesView && (itemType === 'state' || itemType === 'channel' || itemType === 'device');\n let newValue = '';\n const newValueTitle = [];\n if (checkVisibleObjectType) {\n newValue = this.states[id]?.from;\n if (newValue === undefined) {\n newValue = '&nbsp;';\n } else {\n newValue = newValue ? newValue.replace(/^system\\.adapter\\.|^system\\./, '') : '';\n newValueTitle.push(`${this.texts.stateChangedFrom} ${newValue}`);\n }\n if (obj.user) {\n const user = obj.user.replace('system.user.', '');\n newValue += `/${user}`;\n newValueTitle.push(`${this.texts.stateChangedBy} ${user}`);\n }\n }\n if (obj) {\n obj.from && newValueTitle.push(`${this.texts.objectChangedFrom} ${obj.from.replace(/^system\\.adapter\\.|^system\\./, '')}`);\n obj.user && newValueTitle.push(`${this.texts.objectChangedBy} ${obj.user.replace(/^system\\.user\\./, '')}`);\n obj.ts && newValueTitle.push(`${this.texts.objectChangedByUser} ${Utils.formatDate(new Date(obj.ts), this.props.dateFormat)}`);\n }\n\n const readWriteAlias = typeof common?.alias?.id === 'object';\n\n const alias = id.startsWith('alias.') && common?.alias?.id ?\n (readWriteAlias ?\n <div className={classes.cellIdAliasReadWriteDiv}>\n {common.alias.id.read ? <div\n onClick={e => {\n e.stopPropagation();\n e.preventDefault();\n this.onSelect(common.alias.id.read);\n setTimeout(() => {\n this.expandAllSelected(() =>\n this.scrollToItem(common.alias.id.read));\n }, 100);\n }}\n className={Utils.clsx(classes.cellIdAlias, classes.cellIdAliasReadWrite)}\n >\n ←\n {common.alias.id.read}\n </div> : null}\n {common.alias.id.write ? <div\n onClick={e => {\n e.stopPropagation();\n e.preventDefault();\n this.onSelect(common.alias.id.write);\n setTimeout(() => {\n this.expandAllSelected(() =>\n this.scrollToItem(common.alias.id.write));\n }, 100);\n }}\n className={Utils.clsx(classes.cellIdAlias, classes.cellIdAliasReadWrite)}\n >\n →\n {common.alias.id.write}\n </div> : null}\n </div>\n :\n <div\n onClick={e => {\n e.stopPropagation();\n e.preventDefault();\n this.onSelect(common.alias.id);\n setTimeout(() => {\n this.expandAllSelected(() =>\n this.scrollToItem(common.alias.id));\n }, 100);\n }}\n className={Utils.clsx(classes.cellIdAlias, classes.cellIdAliasAlone)}\n >\n →\n {common.alias.id}\n </div>\n ) : null;\n\n let checkColor = common?.color;\n let invertBackground = undefined;\n if (checkColor && !this.state.selected.includes(id)) {\n let background = this.props.themeName === 'dark' ? '#1f1f1f' : (this.props.themeName === 'blue' ? '#222a2e' : '#FFFFFF');\n const distance = Utils.colorDistance(checkColor, background);\n // console.log(`Distance: ${checkColor} - ${background} = ${distance}`);\n if (distance < 1000) {\n invertBackground = this.props.themeType === 'dark' ? '#9a9a9a' : '#565656';\n }\n }\n if (id === 'system') {\n checkColor = COLOR_NAME_SYSTEM;\n } else if (id === 'system.adapter') {\n checkColor = COLOR_NAME_SYSTEM_ADAPTER;\n } else\n if (!checkColor || this.state.selected.includes(id)) {\n checkColor = 'inherit';\n }\n\n const icons = [];\n\n if (common?.statusStates) {\n const ids = {};\n Object.keys(common.statusStates).forEach(name => {\n let _id = common.statusStates[name];\n if (_id.split('.').length < 3) {\n _id = `${id}.${_id}`;\n }\n ids[name] = _id;\n\n if (!this.states[_id]) {\n if (this.objects[_id]?.type === 'state') {\n !this.recordStates.includes(_id) && this.recordStates.push(_id);\n this.states[_id] = { val: null };\n this.subscribe(_id);\n }\n } else {\n !this.recordStates.includes(_id) && this.recordStates.push(_id);\n }\n });\n // calculate color\n // errorId has priority\n let colorSet = false;\n if (common.statusStates.errorId && this.states[ids.errorId] && this.states[ids.errorId].val) {\n checkColor = this.props.themeType === 'dark' ? COLOR_NAME_ERROR_DARK : COLOR_NAME_ERROR_LIGHT;\n colorSet = true;\n icons.push(<IconError key=\"error\" title={this.texts.deviceError} className={this.props.classes.iconDeviceError} />);\n }\n\n if (ids.onlineId && this.states[ids.onlineId] && this.states[ids.onlineId].val !== null) {\n if (!colorSet) {\n if (this.states[ids.onlineId].val) {\n checkColor = this.props.themeType === 'dark' ? COLOR_NAME_CONNECTED_DARK : COLOR_NAME_CONNECTED_LIGHT;\n icons.push(<IconConnection key=\"conn\" title={this.texts.deviceError} className={this.props.classes.iconDeviceConnected} />);\n } else {\n checkColor = this.props.themeType === 'dark' ? COLOR_NAME_DISCONNECTED_DARK : COLOR_NAME_DISCONNECTED_LIGHT;\n icons.push(<IconDisconnected key=\"disc\" title={this.texts.deviceError} className={this.props.classes.iconDeviceDisconnected} />);\n }\n } else if (this.states[ids.onlineId].val) {\n icons.push(<IconConnection key=\"conn\" title={this.texts.deviceError} className={this.props.classes.iconDeviceConnected} />);\n } else {\n icons.push(<IconDisconnected key=\"disc\" title={this.texts.deviceError} className={this.props.classes.iconDeviceDisconnected} />);\n }\n } else\n if (ids.offlineId && this.states[ids.offlineId] && this.states[ids.offlineId].val !== null) {\n if (!colorSet) {\n if (this.states[ids.offlineId].val) {\n checkColor = this.props.themeType === 'dark' ? COLOR_NAME_DISCONNECTED_DARK : COLOR_NAME_DISCONNECTED_LIGHT;\n icons.push(<IconDisconnected key=\"disc\" title={this.texts.deviceError} className={this.props.classes.iconDeviceDisconnected} />);\n } else {\n checkColor = this.props.themeType === 'dark' ? COLOR_NAME_CONNECTED_DARK : COLOR_NAME_CONNECTED_LIGHT;\n icons.push(<IconConnection key=\"conn\" title={this.texts.deviceError} className={this.props.classes.iconDeviceConnected} />);\n }\n } else if (this.states[ids.offlineId].val) {\n icons.push(<IconDisconnected key=\"disc\" title={this.texts.deviceError} className={this.props.classes.iconDeviceDisconnected} />);\n } else {\n icons.push(<IconConnection key=\"conn\" title={this.texts.deviceError} className={this.props.classes.iconDeviceConnected} />);\n }\n }\n }\n\n const q = checkVisibleObjectType ? Utils.quality2text(this.states[id]?.q || 0).join(', ') : null;\n\n return <Grid\n container\n direction=\"row\"\n wrap=\"nowrap\"\n className={Utils.clsx(\n classes.tableRow,\n this.state.linesEnabled && classes.tableRowLines,\n !this.props.dragEnabled && classes.tableRowNoDragging,\n alias && classes.tableRowAlias,\n readWriteAlias && classes.tableRowAliasReadWrite,\n !item.data.visible && classes.filteredOut,\n item.data.hasVisibleParent && !item.data.visible && !item.data.hasVisibleChildren && classes.filteredParentOut,\n this.state.selected.includes(id) && classes.itemSelected,\n this.state.selectedNonObject === id && classes.itemSelected,\n )}\n key={id}\n id={id}\n onClick={() => this.onSelect(id)}\n onDoubleClick={() => {\n if (!item.children) {\n this.onSelect(id, true);\n } else {\n this.toggleExpanded(id);\n }\n }}\n >\n <Grid\n container\n wrap=\"nowrap\"\n direction=\"row\"\n className={classes.cellId}\n style={{ width: this.columnsVisibility.id, paddingLeft }}\n >\n <Grid\n item\n container\n alignItems=\"center\"\n style={{\n // color: checkColor,\n // background: invertBackground,\n }}\n >\n {checkbox}\n {iconFolder}\n </Grid>\n <Grid\n item\n style={{ color: checkColor }}\n className={Utils.clsx(classes.cellIdSpan, invertBackground && classes.invertedBackground)}\n >\n <Tooltip title={getIdFieldTooltip(item.data, this.props.classes, this.props.lang)}><div>{item.data.name}</div></Tooltip>\n {alias}\n {icons}\n </Grid>\n <div className={Utils.clsx(classes.grow, invertBackground && classes.invertedBackgroundFlex)} />\n <Grid\n item\n container\n alignItems=\"center\"\n >\n {iconItem}\n </Grid>\n <div>\n <IconCopy className={Utils.clsx(classes.cellCopyButton, 'copyButton')} onClick={e => this.onCopy(e, id)} />\n </div>\n </Grid>\n\n {this.columnsVisibility.name ? <div className={classes.cellName} style={{ width: this.columnsVisibility.name }}>\n {(item.data?.title) || ''}\n {item.data?.title ? <div style={{ color: checkColor }}>\n <IconCopy className={Utils.clsx(classes.cellCopyButton, 'copyButton')} onClick={e => this.onCopy(e, item.data.title)} />\n </div> : null}\n </div> : null}\n\n {!this.state.statesView ?\n <>\n {this.columnsVisibility.type ? <div className={classes.cellType} style={{ width: this.columnsVisibility.type }}>\n {typeImg}\n &nbsp;\n {obj && obj.type}\n </div> : null}\n {this.columnsVisibility.role ? <div className={classes.cellRole} style={{ width: this.columnsVisibility.role, cursor: this.state.filter.expertMode && enumEditable && this.props.objectBrowserEditRole ? 'text' : 'default' }} onClick={this.state.filter.expertMode && enumEditable && this.props.objectBrowserEditRole ? () => this.setState({ roleDialog: item.data.id }) : undefined}>{common?.role}</div> : null}\n {this.columnsVisibility.room ? <div className={`${classes.cellRoom} ${item.data.per ? classes.cellEnumParent : ''}`} style={{ width: this.columnsVisibility.room, cursor: enumEditable ? 'text' : 'default' }} onClick={enumEditable ? () => { const enums = findEnumsForObjectAsIds(this.info, item.data.id, 'roomEnums'); this.setState({ enumDialogEnums: enums, enumDialog: { item, type: 'room', enumsOriginal: JSON.parse(JSON.stringify(enums)) } }); } : undefined}>{item.data.rooms}</div> : null}\n {this.columnsVisibility.func ? <div className={`${classes.cellFunc} ${item.data.pef ? classes.cellEnumParent : ''}`} style={{ width: this.columnsVisibility.func, cursor: enumEditable ? 'text' : 'default' }} onClick={enumEditable ? () => { const enums = findEnumsForObjectAsIds(this.info, item.data.id, 'funcEnums'); this.setState({ enumDialogEnums: enums, enumDialog: { item, type: 'func', enumsOriginal: JSON.parse(JSON.stringify(enums)) } }); } : undefined}>{item.data.funcs}</div> : null}\n </>\n :\n <>\n {this.columnsVisibility.changedFrom ? <div className={classes.cellRole} style={{ width: this.columnsVisibility.changedFrom }} title={newValueTitle.join('\\n')}>{checkVisibleObjectType && this.states[id]?.from ? newValue : null}</div> : null}\n {this.columnsVisibility.qualityCode ? <div className={classes.cellRole} style={{ width: this.columnsVisibility.qualityCode }} title={q || ''}>{q}</div> : null}\n {this.columnsVisibility.timestamp ? <div className={classes.cellRole} style={{ width: this.columnsVisibility.timestamp }}>{checkVisibleObjectType && this.states[id]?.ts ? Utils.formatDate(new Date(this.states[id].ts), this.props.dateFormat) : null}</div> : null}\n {this.columnsVisibility.lastChange ? <div className={classes.cellRole} style={{ width: this.columnsVisibility.lastChange }}>{checkVisibleObjectType && this.states[id]?.lc ? Utils.formatDate(new Date(this.states[id].lc), this.props.dateFormat) : null}</div> : null}\n </>}\n {this.adapterColumns.map(it => <div className={classes.cellAdapter} style={{ width: this.columnsVisibility[it.id] }} key={it.id} title={`${it.adapter} => ${it.pathText}`}>{this.renderCustomValue(obj, it, item)}</div>)}\n {this.columnsVisibility.val ? <div\n className={classes.cellValue}\n style={{ width: this.columnsVisibility.val, cursor: valueEditable ? (common?.type === 'file' ? 'zoom-in' : (item.data.button ? 'grab' : 'text')) : 'default' }}\n onClick={valueEditable ? () => {\n if (!obj || !this.states) {\n // return;\n } else\n if (common?.type === 'file') {\n this.setState({ viewFileDialog: id });\n } else\n // in non-expert mode control button directly\n if (!this.state.filter.expertMode && item.data.button) {\n this.props.socket.setState(id, true)\n .catch(e => window.alert(`Cannot write state \"${id}\": ${e}`));\n } else {\n this.edit = {\n val: this.states[id] ? this.states[id].val : '',\n q: this.states[id] ? this.states[id].q || 0 : 0,\n ack: false,\n id,\n };\n this.setState({ updateOpened: true });\n }\n } : undefined}\n >\n {this.renderColumnValue(id, item, classes)}\n </div> : null}\n {this.columnsVisibility.buttons ? <div className={classes.cellButtons} style={{ width: this.columnsVisibility.buttons }}>{this.renderColumnButtons(id, item, classes)}</div> : null}\n </Grid>;\n }\n\n /**\n * Renders an item.\n * @param {any} root\n * @param {boolean} isExpanded\n * @param {Record<string, any>} classes\n * @param {{ count: any; }} [counter]\n * @returns {JSX.Element[]}\n */\n renderItem(root, isExpanded, classes, counter) {\n const items = [];\n counter = counter || { count: 0 };\n let leaf = this.renderLeaf(root, isExpanded, classes, counter);\n const DragWrapper = this.props.DragWrapper;\n if (this.props.dragEnabled) {\n if (root.data.sumVisibility) {\n leaf = <DragWrapper key={root.data.id} item={root} className={classes.draggable}>{leaf}</DragWrapper>;\n } else {\n // change cursor\n leaf = <div key={root.data.id} className={classes.nonDraggable}>{leaf}</div>;\n }\n }\n root.data.id && items.push(leaf);\n\n isExpanded = isExpanded === undefined ? binarySearch(this.state.expanded, root.data.id) : isExpanded;\n if (!root.data.id || isExpanded) {\n if (!this.state.foldersFirst) {\n root.children && items.push(root.children.map(item => {\n // do not render too many items in column editor mode\n if (!this.state.columnsSelectorShow || counter.count < 15) {\n if (item.data.sumVisibility) {\n return this.renderItem(item, undefined, classes, counter);\n }\n }\n return null;\n }));\n } else {\n // first only folder\n root.children && items.push(root.children.map(item => {\n if (item.children) {\n // do not render too many items in column editor mode\n if (!this.state.columnsSelectorShow || counter.count < 15) {\n if (item.data.sumVisibility) {\n return this.renderItem(item, undefined, classes, counter);\n }\n }\n }\n\n return null;\n }));\n // then items\n root.children && items.push(root.children.map(item => {\n if (!item.children) {\n // do not render too many items in column editor mode\n if (!this.state.columnsSelectorShow || counter.count < 15) {\n if (item.data.sumVisibility) {\n return this.renderItem(item, undefined, classes, counter);\n }\n }\n }\n return null;\n }));\n }\n }\n\n return items;\n }\n\n /**\n * @private\n * @param {boolean} [columnsAuto]\n * @param {string[]} [columns]\n * @param {any} [columnsForAdmin]\n * @param {Record<string, number>} [columnsWidths]\n */\n calculateColumnsVisibility(columnsAuto, columns, columnsForAdmin, columnsWidths) {\n columnsWidths = columnsWidths || this.state.columnsWidths;\n columnsForAdmin = columnsForAdmin || this.state.columnsForAdmin;\n columns = columns || this.state.columns || [];\n columnsAuto = typeof columnsAuto !== 'boolean' ? this.state.columnsAuto : columnsAuto;\n\n columnsWidths = JSON.parse(JSON.stringify(columnsWidths));\n Object.keys(columnsWidths).forEach(name => {\n if (columnsWidths[name]) {\n columnsWidths[name] = parseInt(columnsWidths[name], 10) || 0;\n }\n });\n\n this.adapterColumns = [];\n const WIDTHS = SCREEN_WIDTHS[this.props.width].widths;\n\n if (columnsAuto) {\n this.columnsVisibility = {\n id: SCREEN_WIDTHS[this.props.width].idWidth,\n name: this.visibleCols.includes('name') ? WIDTHS.name || 0 : 0,\n nameHeader: this.visibleCols.includes('name') ? WIDTHS.name || 0 : 0,\n type: this.visibleCols.includes('type') ? WIDTHS.type || 0 : 0,\n role: this.visibleCols.includes('role') ? WIDTHS.role || 0 : 0,\n room: this.visibleCols.includes('room') ? WIDTHS.room || 0 : 0,\n func: this.visibleCols.includes('func') ? WIDTHS.func || 0 : 0,\n changedFrom: this.visibleCols.includes('changedFrom') ? WIDTHS.changedFrom || 0 : 0,\n qualityCode: this.visibleCols.includes('qualityCode') ? WIDTHS.qualityCode || 0 : 0,\n timestamp: this.visibleCols.includes('timestamp') ? WIDTHS.timestamp || 0 : 0,\n lastChange: this.visibleCols.includes('lastChange') ? WIDTHS.lastChange || 0 : 0,\n val: this.visibleCols.includes('val') ? WIDTHS.val || 0 : 0,\n buttons: this.visibleCols.includes('buttons') ? WIDTHS.buttons || 0 : 0,\n };\n\n if (this.columnsVisibility.name && !this.customWidth) {\n let widthSum = this.columnsVisibility.id; // id is always visible\n if (this.state.statesView) {\n widthSum += this.columnsVisibility.changedFrom;\n widthSum += this.columnsVisibility.qualityCode;\n widthSum += this.columnsVisibility.timestamp;\n widthSum += this.columnsVisibility.lastChange;\n } else {\n widthSum += this.columnsVisibility.type;\n widthSum += this.columnsVisibility.role;\n widthSum += this.columnsVisibility.room;\n widthSum += this.columnsVisibility.func;\n }\n widthSum += this.columnsVisibility.val;\n widthSum += this.columnsVisibility.buttons;\n this.columnsVisibility.name = `calc(100% - ${widthSum + 5}px)`;\n this.columnsVisibility.nameHeader = `calc(100% - ${widthSum + 5 + this.state.scrollBarWidth}px)`;\n } else if (!this.customWidth) {\n // Calculate the with of ID\n let widthSum = 0; // id is always visible\n if (this.state.statesView) {\n widthSum += this.columnsVisibility.changedFrom;\n widthSum += this.columnsVisibility.qualityCode;\n widthSum += this.columnsVisibility.timestamp;\n widthSum += this.columnsVisibility.lastChange;\n } else {\n widthSum += this.columnsVisibility.type;\n widthSum += this.columnsVisibility.role;\n widthSum += this.columnsVisibility.room;\n widthSum += this.columnsVisibility.func;\n }\n widthSum += this.columnsVisibility.val;\n widthSum += this.columnsVisibility.buttons;\n this.columnsVisibility.id = `calc(100% - ${widthSum + 5}px)`;\n }\n } else {\n this.columnsVisibility = {\n id: columnsWidths.id || SCREEN_WIDTHS[this.props.width].idWidth,\n name: columns.includes('name') ? columnsWidths.name || WIDTHS.name || SCREEN_WIDTHS[this.props.width].widths.name || 0 : 0,\n type: columns.includes('type') ? columnsWidths.type || WIDTHS.type || SCREEN_WIDTHS[this.props.width].widths.type || 0 : 0,\n role: columns.includes('role') ? columnsWidths.role || WIDTHS.role || SCREEN_WIDTHS[this.props.width].widths.role || 0 : 0,\n room: columns.includes('room') ? columnsWidths.room || WIDTHS.room || SCREEN_WIDTHS[this.props.width].widths.room || 0 : 0,\n func: columns.includes('func') ? columnsWidths.func || WIDTHS.func || SCREEN_WIDTHS[this.props.width].widths.func || 0 : 0,\n };\n let widthSum = this.columnsVisibility.id; // id is always visible\n if (this.columnsVisibility.name) {\n widthSum += this.columnsVisibility.type;\n widthSum += this.columnsVisibility.role;\n widthSum += this.columnsVisibility.room;\n widthSum += this.columnsVisibility.func;\n }\n\n if (columnsForAdmin && columns) {\n Object.keys(columnsForAdmin).sort().forEach(adapter =>\n columnsForAdmin[adapter].forEach(column => {\n const id = `_${adapter}_${column.path}`;\n this.columnsVisibility[id] = columns.includes(id);\n if (columns.includes(id)) {\n const item = {\n adapter,\n id: `_${adapter}_${column.path}`,\n name: column.name,\n path: column.path.split('.'),\n pathText: column.path,\n };\n if (column.edit) {\n item.edit = true;\n if (column.type) {\n item.type = column.type;\n }\n if (column.objTypes) {\n item.objTypes = column.objTypes;\n }\n }\n\n this.adapterColumns.push(item);\n this.columnsVisibility[id] = columnsWidths[item.id] || column.width || SCREEN_WIDTHS[this.props.width].widths.func || SCREEN_WIDTHS.xl.widths.func;\n widthSum += this.columnsVisibility[id];\n } else {\n this.columnsVisibility[id] = 0;\n }\n }));\n }\n this.adapterColumns.sort((a, b) => (a.id > b.id ? -1 : (a.id < b.id ? 1 : 0)));\n this.columnsVisibility.val = columns.includes('val') ? columnsWidths.val || WIDTHS.val || SCREEN_WIDTHS.xl.widths.val : 0;\n\n // do not show buttons if not desired\n if (!this.props.columns || this.props.columns.includes('buttons')) {\n this.columnsVisibility.buttons = columns.includes('buttons') ? columnsWidths.buttons || WIDTHS.buttons || SCREEN_WIDTHS.xl.widths.buttons : 0;\n widthSum += this.columnsVisibility.buttons;\n }\n\n if (this.columnsVisibility.name && !columnsWidths.name) {\n widthSum += this.columnsVisibility.val;\n this.columnsVisibility.name = `calc(100% - ${widthSum}px)`;\n this.columnsVisibility.nameHeader = `calc(100% - ${widthSum + 5 + this.state.scrollBarWidth}px)`;\n } else {\n const newWidth = Object.keys(this.columnsVisibility).reduce(\n (accumulator, name) => {\n if (name === 'id' || typeof this.columnsVisibility[name] === 'string' || !this.columnsVisibility[name]) {\n return accumulator;\n }\n return accumulator + this.columnsVisibility[name];\n },\n 0,\n );\n this.columnsVisibility.id = `calc(100% - ${newWidth}px)`;\n }\n }\n }\n\n resizerMouseMove = e => {\n if (this.resizerActiveDiv) {\n let width;\n let widthNext;\n if (this.resizeLeft) {\n width = this.resizerOldWidth - e.clientX + this.resizerPosition;\n widthNext = this.resizerOldWidthNext + e.clientX - this.resizerPosition;\n } else {\n width = this.resizerOldWidth + e.clientX - this.resizerPosition;\n widthNext = this.resizerOldWidthNext - e.clientX + this.resizerPosition;\n }\n\n if ((!this.resizerMin || width > this.resizerMin) &&\n (!this.resizerNextMin || widthNext > this.resizerNextMin)) {\n this.resizerCurrentWidths[this.resizerActiveName] = width;\n this.resizerCurrentWidths[this.resizerNextName] = widthNext;\n\n this.resizerActiveDiv.style.width = `${width}px`;\n this.resizerNextDiv.style.width = `${widthNext}px`;\n\n this.columnsVisibility[this.resizerActiveName] = width;\n this.columnsVisibility[this.resizerNextName] = widthNext;\n if (this.resizerNextName === 'nameHeader') {\n this.columnsVisibility.name = widthNext - this.state.scrollBarWidth;\n this.resizerCurrentWidths.name = widthNext - this.state.scrollBarWidth;\n } else\n if (this.resizerActiveName === 'nameHeader') {\n this.columnsVisibility.name = width - this.state.scrollBarWidth;\n this.resizerCurrentWidths.name = width - this.state.scrollBarWidth;\n }\n this.customWidth = true;\n this.resizeTimeout && clearTimeout(this.resizeTimeout);\n this.resizeTimeout = setTimeout(() => {\n this.resizeTimeout = null;\n this.forceUpdate();\n }, 200);\n }\n }\n };\n\n resizerMouseUp = () => {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.table`, JSON.stringify(this.resizerCurrentWidths));\n this.resizerActiveName = null;\n this.resizerNextName = null;\n this.resizerActiveDiv = null;\n this.resizerNextDiv = null;\n window.removeEventListener('mousemove', this.resizerMouseMove);\n window.removeEventListener('mouseup', this.resizerMouseUp);\n };\n\n resizerMouseDown = e => {\n if (this.resizerActiveIndex === null || this.resizerActiveIndex === undefined) {\n if (!this.storedWidths) {\n this.storedWidths = JSON.parse(JSON.stringify(SCREEN_WIDTHS[this.props.width]));\n }\n\n this.resizerCurrentWidths = this.resizerCurrentWidths || {};\n this.resizerActiveDiv = e.target.parentNode;\n this.resizerActiveName = this.resizerActiveDiv.dataset.name;\n\n let i = 0;\n if (e.target.dataset.left === 'true') {\n this.resizeLeft = true;\n this.resizerNextDiv = this.resizerActiveDiv.previousElementSibling;\n let handle = this.resizerNextDiv.querySelector(`.${this.props.classes.resizeHandle}`);\n while (this.resizerNextDiv && !handle && i < 10) {\n this.resizerNextDiv = this.resizerNextDiv.previousElementSibling;\n handle = this.resizerNextDiv.querySelector(`.${this.props.classes.resizeHandle}`);\n i++;\n }\n if (handle && handle.dataset.left !== 'true') {\n this.resizerNextDiv = this.resizerNextDiv.nextElementSibling;\n }\n } else {\n this.resizeLeft = false;\n this.resizerNextDiv = this.resizerActiveDiv.nextElementSibling;\n /* while (this.resizerNextDiv && !this.resizerNextDiv.querySelector('.' + this.props.classes.resizeHandle) && i < 10) {\n this.resizerNextDiv = this.resizerNextDiv.nextElementSibling;\n i++;\n } */\n }\n this.resizerNextName = this.resizerNextDiv.dataset.name;\n\n this.resizerMin = parseInt(this.resizerActiveDiv.dataset.min, 10) || 0;\n this.resizerNextMin = parseInt(this.resizerNextDiv.dataset.min, 10) || 0;\n\n this.resizerPosition = e.clientX;\n\n this.resizerCurrentWidths[this.resizerActiveName] = this.resizerActiveDiv.offsetWidth;\n this.resizerCurrentWidths[this.resizerNextName] = this.resizerNextDiv.offsetWidth;\n\n this.resizerOldWidth = this.resizerCurrentWidths[this.resizerActiveName];\n this.resizerOldWidthNext = this.resizerCurrentWidths[this.resizerNextName];\n\n window.addEventListener('mousemove', this.resizerMouseMove);\n window.addEventListener('mouseup', this.resizerMouseUp);\n }\n };\n\n resizerReset = () => {\n this.customWidth = false;\n SCREEN_WIDTHS[this.props.width] = JSON.parse(JSON.stringify(this.storedWidths));\n this.calculateColumnsVisibility();\n (window._localStorage || window.localStorage).removeItem(`${this.props.dialogName || 'App'}.table`);\n this.forceUpdate();\n };\n\n /**\n * @private\n * @returns {JSX.Element}\n */\n renderHeader() {\n const classes = this.props.classes;\n\n let filterClearInValue = null;\n if (!this.columnsVisibility.buttons && !this.isFilterEmpty()) {\n filterClearInValue = <IconButton\n onClick={() => this.clearFilter()}\n className={classes.buttonClearFilter}\n title={this.props.t('ra_Clear filter')}\n size=\"large\"\n >\n <IconClearFilter />\n <IconClose className={classes.buttonClearFilterIcon} />\n </IconButton>;\n }\n\n return <div className={classes.headerRow}>\n <div className={classes.headerCell} style={{ width: this.columnsVisibility.id, position: 'relative' }} data-min={240} data-name=\"id\">\n {this.getFilterInput('id')}\n <div className={`${this.props.classes.resizeHandle} ${this.props.classes.resizeHandleRight}`} onMouseDown={this.resizerMouseDown} onDoubleClick={this.resizerReset} title={this.props.t('ra_Double click to reset table layout')} />\n </div>\n {this.columnsVisibility.name ? <div className={classes.headerCell} style={{ width: this.columnsVisibility.nameHeader }} data-min={100} data-name=\"nameHeader\">{this.getFilterInput('name')}</div> : null}\n {!this.state.statesView && <>\n {this.columnsVisibility.type ? <div className={classes.headerCell} style={{ width: this.columnsVisibility.type }} data-min={100} data-name=\"type\">{this.getFilterSelectType()}</div> : null}\n {this.columnsVisibility.role ? <div className={classes.headerCell} style={{ width: this.columnsVisibility.role }} data-min={100} data-name=\"role\">{this.getFilterSelectRole()}</div> : null}\n {this.columnsVisibility.room ? <div className={classes.headerCell} style={{ width: this.columnsVisibility.room }} data-min={100} data-name=\"room\">{this.getFilterSelectRoom()}</div> : null}\n {this.columnsVisibility.func ? <div className={classes.headerCell} style={{ width: this.columnsVisibility.func }} data-min={100} data-name=\"func\">{this.getFilterSelectFunction()}</div> : null}\n </>}\n {this.state.statesView && <>\n <div className={Utils.clsx(classes.headerCell, classes.headerCellValue)} style={{ width: this.columnsVisibility.changedFrom }} data-min={100} data-name=\"changedFrom\">{this.props.t('ra_Changed from')}</div>\n <div className={Utils.clsx(classes.headerCell, classes.headerCellValue)} style={{ width: this.columnsVisibility.qualityCode }} data-min={100} data-name=\"qualityCode\">{this.props.t('ra_Quality code')}</div>\n <div className={Utils.clsx(classes.headerCell, classes.headerCellValue)} style={{ width: this.columnsVisibility.timestamp }} data-min={100} data-name=\"timestamp\">{this.props.t('ra_Timestamp')}</div>\n <div className={Utils.clsx(classes.headerCell, classes.headerCellValue)} style={{ width: this.columnsVisibility.lastChange }} data-min={100} data-name=\"lastChange\">{this.props.t('ra_Last change')}</div>\n </>}\n {this.adapterColumns.map(item => <div className={Utils.clsx(classes.headerCell, classes.headerCellValue)} style={{ width: this.columnsVisibility[item.id] }} title={item.adapter} key={item.id} data-min={100} data-name={item.id}>{item.name}</div>)}\n {this.columnsVisibility.val ? <div className={Utils.clsx(classes.headerCell, classes.headerCellValue)} style={{ width: this.columnsVisibility.val, position: 'relative' }} data-min={120} data-name=\"val\">\n <div className={`${this.props.classes.resizeHandle} ${this.props.classes.resizeHandleLeft}`} data-left=\"true\" onMouseDown={this.resizerMouseDown} onDoubleClick={this.resizerReset} title={this.props.t('ra_Double click to reset table layout')} />\n {this.props.t('ra_Value')}\n {filterClearInValue}\n </div> : null}\n {this.columnsVisibility.buttons ? <div className={classes.headerCell} style={{ width: this.columnsVisibility.buttons }}>\n {' '}\n {this.getFilterSelectCustoms()}\n </div> : null}\n </div>;\n }\n\n /**\n * @private\n * @returns {JSX.Element}\n */\n renderToast() {\n return <Snackbar\n open={!!this.state.toast}\n autoHideDuration={3000}\n onClick={() => this.setState({ toast: '' })}\n onClose={() => this.setState({ toast: '' })}\n message={this.state.toast}\n action={\n <IconButton size=\"small\" aria-label=\"close\" color=\"inherit\" onClick={() => this.setState({ toast: '' })}>\n <IconClose fontSize=\"small\" />\n </IconButton>\n }\n />;\n }\n\n /**\n * Called when component is updated.\n */\n componentDidUpdate() {\n if (this.tableRef.current) {\n const scrollBarWidth = this.tableRef.current.offsetWidth - this.tableRef.current.clientWidth;\n if (this.state.scrollBarWidth !== scrollBarWidth) {\n setTimeout(() => this.setState({ scrollBarWidth }), 100);\n } else if (!this.selectedFound && ((this.state.selected && this.state.selected[0]) || this.lastSelectedItems)) {\n this.scrollToItem((this.state.selected && this.state.selected[0]) || this.lastSelectedItems);\n }\n }\n }\n\n scrollToItem(id) {\n const node = window.document.getElementById(id);\n node && node.scrollIntoView({\n behavior: 'auto',\n block: 'center',\n inline: 'center',\n });\n this.selectedFound = true;\n }\n\n /**\n * @private\n * @returns {JSX.Element | null}\n */\n renderCustomDialog() {\n if (this.state.customDialog && this.props.objectCustomDialog) {\n const ObjectCustomDialog = this.props.objectCustomDialog;\n\n return <ObjectCustomDialog\n reportChangedIds={changedIds => this.changedIds = [...changedIds]}\n objectIDs={this.state.customDialog}\n expertMode={this.state.filter.expertMode}\n isFloatComma={this.props.isFloatComma}\n t={this.props.t}\n lang={this.props.lang}\n socket={this.props.socket}\n themeName={this.props.themeName}\n themeType={this.props.themeType}\n theme={this.props.theme}\n objects={this.objects}\n customsInstances={this.info.customs}\n onClose={() => {\n this.pauseSubscribe(false);\n this.setState({ customDialog: null });\n if (this.changedIds) {\n this.changedIds = null;\n // update all changed IDs\n this.forceUpdate();\n }\n\n this.props.router && this.props.router.doNavigate('tab-objects');\n }}\n />;\n }\n return null;\n }\n\n /**\n * @private\n * @param {Partial<ioBroker.State>} valAck\n */\n onUpdate(valAck) {\n this.props.socket.setState(this.edit.id, {\n val: valAck.val, ack: valAck.ack, q: valAck.q || 0, expire: valAck.expire || undefined,\n })\n .catch(e => this.showError(`Cannot write value: ${e}`));\n }\n\n /**\n * @private\n * @returns {JSX.Element | null}\n */\n renderEditObjectDialog() {\n if (!this.state.editObjectDialog || !this.props.objectBrowserEditObject) {\n return null;\n }\n\n const ObjectBrowserEditObject = this.props.objectBrowserEditObject;\n\n return <ObjectBrowserEditObject\n key={this.state.editObjectDialog}\n obj={this.objects[this.state.editObjectDialog]}\n roleArray={this.info.roles}\n objects={this.objects}\n dateFormat={this.props.dateFormat}\n isFloatComma={this.props.isFloatComma}\n themeName={this.props.themeName}\n socket={this.props.socket}\n dialogName={this.props.dialogName}\n t={this.props.t}\n expertMode={this.state.filter.expertMode}\n onNewObject={obj =>\n this.props.socket.setObject(obj._id, obj)\n .then(() => this.setState({ editObjectDialog: obj._id }, () => this.onSelect(obj._id)))\n .catch(e => this.showError(`Cannot write object: ${e}`))}\n onClose={obj => {\n if (obj) {\n let updateAlias;\n if (this.state.editObjectDialog.startsWith('alias.')) {\n if (JSON.stringify(this.objects[this.state.editObjectDialog].common?.alias) !== JSON.stringify(obj.common?.alias)) {\n updateAlias = this.state.editObjectDialog;\n }\n }\n\n this.props.socket.setObject(obj._id, obj)\n .then(() => {\n if (updateAlias && this.subscribes.includes(updateAlias)) {\n this.unsubscribe(updateAlias);\n setTimeout(() => this.subscribe(updateAlias), 100);\n }\n })\n .catch(e => this.showError(`Cannot write object: ${e}`));\n }\n this.setState({ editObjectDialog: '' });\n }}\n />;\n }\n\n /**\n * @private\n * @returns {JSX.Element | null}\n */\n renderViewObjectFileDialog() {\n if (!this.state.viewFileDialog || !this.props.objectBrowserViewFile) {\n return null;\n }\n const ObjectBrowserViewFile = this.props.objectBrowserViewFile;\n\n return <ObjectBrowserViewFile\n key=\"viewFile\"\n obj={this.objects[this.state.viewFileDialog]}\n themeType={this.props.themeType}\n socket={this.props.socket}\n dialogName={this.props.dialogName}\n t={this.props.t}\n expertMode={this.state.filter.expertMode}\n onClose={() => this.setState({ viewFileDialog: '' })}\n />;\n }\n\n /**\n * @private\n * @returns {JSX.Element | null}\n */\n renderEditValueDialog() {\n if (!this.state.updateOpened || !this.props.objectBrowserValue) {\n return null;\n }\n\n if (!this.edit.id) {\n console.error(`Invalid ID for edit: ${JSON.stringify(this.edit)}`);\n return null;\n }\n\n if (!this.objects[this.edit.id]) {\n console.error(`Something went wrong. Possibly the object ${this.edit.id} was deleted.`);\n return null;\n }\n\n const type = this.objects[this.edit.id].common?.type ?\n this.objects[this.edit.id].common.type : typeof this.edit.val;\n\n const ObjectBrowserValue = this.props.objectBrowserValue;\n\n return <ObjectBrowserValue\n t={this.props.t}\n lang={this.props.lang}\n type={type}\n states={Utils.getStates(this.objects[this.edit.id])}\n themeType={this.props.themeType}\n expertMode={this.state.filter.expertMode}\n value={this.edit.val}\n socket={this.props.socket}\n object={this.objects[this.edit.id]}\n defaultHistory={this.defaultHistory}\n dateFormat={this.props.dateFormat}\n onClose={res => {\n this.setState({ updateOpened: false });\n res && this.onUpdate(res);\n }}\n />;\n }\n\n extendObject = (id, data) =>\n this.props.socket.extendObject(id, data)\n .catch(error => window.alert(error));\n\n setObject = (id, data) =>\n this.props.socket.setObject(id, data)\n .catch(error => window.alert(error));\n\n /**\n * The rendering method of this component.\n * @returns {JSX.Element}\n */\n render() {\n this.recordStates = [];\n this.unsubscribeTimer && clearTimeout(this.unsubscribeTimer);\n\n // apply filter if changed\n const jsonFilter = JSON.stringify(this.state.filter);\n\n if (this.lastAppliedFilter !== jsonFilter && this.objects && this.root) {\n const counter = { count: 0 };\n\n applyFilter(this.root, this.state.filter, this.state.lang, this.objects, null, counter, this.props.customFilter, this.props.types);\n\n if (counter.count < 500 && !this.state.expandAllVisible) {\n setTimeout(() => this.setState({ expandAllVisible: true }));\n } else if (counter.count >= 500 && this.state.expandAllVisible) {\n setTimeout(() => this.setState({ expandAllVisible: false }));\n }\n\n this.lastAppliedFilter = jsonFilter;\n }\n\n this.unsubscribeTimer = setTimeout(() => {\n this.unsubscribeTimer = null;\n this.checkUnsubscribes();\n }, 200);\n\n if (!this.state.loaded) {\n return <CircularProgress key={`${this.props.dialogName}_c`} />;\n }\n const classes = this.props.classes;\n const items = this.renderItem(this.root, undefined, classes);\n\n return <TabContainer key={this.props.dialogName} classes={{ }}>\n <TabHeader>\n {this.getToolbar()}\n </TabHeader>\n <TabContent classes={{ }}>\n {this.renderHeader()}\n <div className={this.props.classes.tableDiv} ref={this.tableRef}>\n {items}\n </div>\n </TabContent>\n {this.renderToast()}\n {this.renderColumnsEditCustomDialog()}\n {this.renderColumnsSelectorDialog()}\n {this.renderCustomDialog()}\n {this.renderEditValueDialog()}\n {this.renderEditObjectDialog()}\n {this.renderViewObjectFileDialog()}\n {this.renderEditRoleDialog()}\n {this.renderEnumDialog()}\n {this.renderErrorDialog()}\n {this.renderExportDialog()}\n {this.state.modalNewObj && this.props.modalNewObject && this.props.modalNewObject(this)}\n {this.state.modalEditOfAccess && this.props.modalEditOfAccessControl && this.props.modalEditOfAccessControl(this, this.state.modalEditOfAccessObjData)}\n </TabContainer>;\n }\n}\n\nObjectBrowser.defaultProps = {\n objectAddBoolean: false,\n objectEditBoolean: false,\n objectStatesView: false,\n objectImportExport: false,\n objectEditOfAccessControl: false,\n modalNewObject: () => { },\n modalEditOfAccessControl: () => { },\n};\n\nObjectBrowser.propTypes = {\n dialogName: PropTypes.string, // where to store settings in localStorage\n classes: PropTypes.object,\n defaultFilters: PropTypes.object,\n selected: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.array,\n ]),\n onSelect: PropTypes.func,\n onFilterChanged: PropTypes.func,\n socket: PropTypes.object,\n showExpertButton: PropTypes.bool,\n expertMode: PropTypes.bool,\n imagePrefix: PropTypes.string,\n themeName: PropTypes.string,\n themeType: PropTypes.string,\n theme: PropTypes.object,\n t: PropTypes.func,\n lang: PropTypes.string.isRequired,\n multiSelect: PropTypes.bool,\n notEditable: PropTypes.bool,\n foldersFirst: PropTypes.bool,\n disableColumnSelector: PropTypes.bool,\n isFloatComma: PropTypes.bool,\n dateFormat: PropTypes.string,\n levelPadding: PropTypes.number,\n\n // components\n objectCustomDialog: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func,\n ]),\n objectAddBoolean: PropTypes.bool, // optional toolbar button\n objectEditBoolean: PropTypes.bool, // optional toolbar button\n objectStatesView: PropTypes.bool, // optional toolbar button\n objectImportExport: PropTypes.bool, // optional toolbar button\n objectEditOfAccessControl: PropTypes.bool, // Access Control\n modalNewObject: PropTypes.func, // modal add object\n modalEditOfAccessControl: PropTypes.func, // modal Edit Of Access Control\n onObjectDelete: PropTypes.func, // optional function (id, hasChildren, objectExists, childrenCount+1) { }\n customFilter: PropTypes.object, // optional\n // `{common: {custom: true}}` - show only objects with some custom settings\n // `{common: {custom: 'sql.0'}}` - show only objects with sql.0 custom settings (only of the specific instance)\n // `{common: {custom: '_dataSources'}}` - show only objects of adapters `influxdb' or 'sql' or 'history'\n // `{common: {custom: 'adapterName.'}}` - show only objects of custom settings of specific adapter (all instances)\n // `{type: 'channel'}` - show only channels\n // `{type: ['channel', 'device']}` - show only channels and devices\n // `{common: {type: 'number'}` - show only states of type 'number\n // `{common: {type: ['number', 'string']}` - show only states of type 'number and string\n // `{common: {role: 'switch']}` - show only states with roles starting from switch\n // `{common: {role: ['switch', 'button]}` - show only states with roles starting from `switch` and `button`\n objectBrowserValue: PropTypes.object,\n objectBrowserEditObject: PropTypes.object,\n objectBrowserEditRole: PropTypes.object, // on Edit role\n objectBrowserViewFile: PropTypes.func, // on view file state\n router: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func,\n ]),\n types: PropTypes.array, // optional ['state', 'instance', 'channel']\n columns: PropTypes.array, // optional ['name', 'type', 'role', 'room', 'func', 'val', 'buttons']\n\n objectsWorker: PropTypes.object, // optional cache of objects\n filterFunc: PropTypes.func, // function to filter out all unnecessary objects. It cannot be used together with \"types\"\n // Example for function: `obj => obj.common && obj.common.type === 'boolean'` to show only boolean states\n\n dragSettings: PropTypes.object,\n DragWrapper: PropTypes.func,\n dragEnabled: PropTypes.bool,\n useDrag: PropTypes.func,\n};\n\n/** @type {typeof ObjectBrowser} */\nconst _export = withWidth()(withStyles(styles)(ObjectBrowser));\nexport default _export;\n"],"mappings":"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"}