{"version":3,"sources":["../node_modules/react/index.js","../node_modules/prop-types/index.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/clsx/dist/clsx.m.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@material-ui/styles/esm/withStyles/withStyles.js","../node_modules/@material-ui/core/esm/styles/withStyles.js","../node_modules/classnames/index.js","../node_modules/react-popper/lib/Manager.js","../node_modules/react-popper/lib/Target.js","../node_modules/react-popper/lib/Popper.js","../node_modules/react-popper/lib/Arrow.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../../src/utils.js","../../src/Container.js","../../src/Row.js","../../src/Col.js","../../src/Navbar.js","../../src/NavbarBrand.js","../../src/NavbarToggler.js","../../src/Nav.js","../../src/NavItem.js","../../src/Dropdown.js","../../src/NavLink.js","../../src/Breadcrumb.js","../../src/BreadcrumbItem.js","../../src/Button.js","../../src/ButtonDropdown.js","../../src/ButtonGroup.js","../../src/ButtonToolbar.js","../../src/DropdownItem.js","../../src/DropdownMenu.js","../../src/DropdownToggle.js","../../node_modules/react-transition-group/utils/PropTypes.js","../../node_modules/react-transition-group/Transition.js","../../src/Fade.js","../../src/Badge.js","../../src/Card.js","../../src/CardGroup.js","../../src/CardDeck.js","../../src/CardColumns.js","../../src/CardBody.js","../../src/CardLink.js","../../src/CardFooter.js","../../src/CardHeader.js","../../src/CardImg.js","../../src/CardImgOverlay.js","../../src/CarouselItem.js","../../src/Carousel.js","../../src/CarouselControl.js","../../src/CarouselIndicators.js","../../src/CarouselCaption.js","../../src/UncontrolledCarousel.js","../../src/CardSubtitle.js","../../src/CardText.js","../../src/CardTitle.js","../../src/CustomInput.js","../../src/PopperContent.js","../../src/PopperTargetHelper.js","../../src/Popover.js","../../src/PopoverHeader.js","../../src/PopoverBody.js","../../src/Progress.js","../../src/Portal.js","../../src/Modal.js","../../src/ModalHeader.js","../../src/ModalBody.js","../../src/ModalFooter.js","../../src/Tooltip.js","../../src/Table.js","../../src/ListGroup.js","../../src/Form.js","../../src/FormFeedback.js","../../src/FormGroup.js","../../src/FormText.js","../../src/Input.js","../../src/InputGroup.js","../../src/InputGroupText.js","../../src/InputGroupAddon.js","../../src/InputGroupButton.js","../../src/InputGroupButtonDropdown.js","../../src/Label.js","../../src/Media.js","../../src/Pagination.js","../../src/PaginationItem.js","../../src/PaginationLink.js","../../src/TabContent.js","../../src/TabPane.js","../../src/Jumbotron.js","../../src/Alert.js","../../src/Collapse.js","../../src/ListGroupItem.js","../../src/ListGroupItemHeading.js","../../src/ListGroupItemText.js","../../src/UncontrolledAlert.js","../../src/UncontrolledButtonDropdown.js","../../src/UncontrolledCollapse.js","../../src/UncontrolledDropdown.js","../../src/UncontrolledTooltip.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@material-ui/core/esm/utils/capitalize.js","../node_modules/@material-ui/core/esm/styles/colorManipulator.js","../node_modules/@material-ui/core/esm/utils/useForkRef.js","../node_modules/react-dom/index.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/@babel/runtime/helpers/interopRequireWildcard.js","../node_modules/@material-ui/icons/utils/createSvgIcon.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@material-ui/core/esm/SvgIcon/SvgIcon.js","../node_modules/@material-ui/core/esm/utils/createSvgIcon.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@material-ui/core/esm/utils/ownerDocument.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@material-ui/core/esm/styles/transitions.js","../node_modules/@material-ui/core/esm/Typography/Typography.js","../node_modules/@material-ui/core/esm/styles/useTheme.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@material-ui/core/esm/utils/useEventCallback.js","../node_modules/@material-ui/core/esm/utils/createChainedFunction.js","../node_modules/@material-ui/core/esm/transitions/utils.js","../node_modules/@material-ui/core/esm/utils/deprecatedPropType.js","../node_modules/@material-ui/core/esm/utils/setRef.js","../node_modules/axios/lib/utils.js","../node_modules/@material-ui/core/esm/FormControl/useFormControl.js","../node_modules/@material-ui/core/esm/FormControl/formControlState.js","../node_modules/@material-ui/lab/esm/Skeleton/Skeleton.js","../node_modules/@material-ui/core/esm/List/ListContext.js","../node_modules/warning/warning.js","../node_modules/@material-ui/core/esm/Button/Button.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@material-ui/core/esm/utils/debounce.js","../node_modules/@material-ui/core/esm/utils/useControlled.js","../node_modules/@material-ui/icons/Cancel.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@material-ui/core/esm/utils/isMuiElement.js","../node_modules/@material-ui/core/esm/Table/Tablelvl2Context.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/axios/index.js","../node_modules/@material-ui/icons/Close.js","../node_modules/@material-ui/core/esm/utils/unstable_useId.js","../node_modules/@material-ui/icons/Refresh.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/invariant/browser.js","../node_modules/@material-ui/core/esm/FormControl/FormControlContext.js","../node_modules/@material-ui/core/esm/InputBase/utils.js","../node_modules/tiny-warning/dist/tiny-warning.esm.js","../node_modules/@material-ui/core/esm/utils/useIsFocusVisible.js","../node_modules/@material-ui/core/esm/utils/ownerWindow.js","../node_modules/@material-ui/icons/Delete.js","../node_modules/@material-ui/icons/Add.js","../node_modules/@material-ui/icons/CheckCircle.js","../node_modules/@material-ui/core/esm/styles/createBreakpoints.js","../node_modules/@material-ui/core/esm/styles/createMixins.js","../node_modules/@material-ui/core/esm/colors/common.js","../node_modules/@material-ui/core/esm/colors/grey.js","../node_modules/@material-ui/core/esm/colors/indigo.js","../node_modules/@material-ui/core/esm/colors/pink.js","../node_modules/@material-ui/core/esm/colors/red.js","../node_modules/@material-ui/core/esm/colors/orange.js","../node_modules/@material-ui/core/esm/colors/blue.js","../node_modules/@material-ui/core/esm/colors/green.js","../node_modules/@material-ui/core/esm/styles/createPalette.js","../node_modules/@material-ui/core/esm/styles/createTypography.js","../node_modules/@material-ui/core/esm/styles/shadows.js","../node_modules/@material-ui/core/esm/styles/shape.js","../node_modules/@material-ui/system/esm/merge.js","../node_modules/@material-ui/system/esm/breakpoints.js","../node_modules/@material-ui/system/esm/spacing.js","../node_modules/@material-ui/system/esm/memoize.js","../node_modules/@material-ui/core/esm/styles/createSpacing.js","../node_modules/@material-ui/core/esm/styles/createTheme.js","../node_modules/@material-ui/core/esm/styles/defaultTheme.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/@material-ui/core/esm/TableCell/TableCell.js","../node_modules/@material-ui/core/esm/utils/index.js","../node_modules/@material-ui/icons/AttachFile.js","../node_modules/@material-ui/icons/Publish.js","../node_modules/xlsx/xlsx.mjs","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@material-ui/icons/Stop.js","../node_modules/@material-ui/core/esm/IconButton/IconButton.js","../node_modules/react-is/index.js","../node_modules/webpack/buildin/global.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@material-ui/core/esm/styles/zIndex.js","../node_modules/@material-ui/core/esm/utils/getScrollbarSize.js","../node_modules/@material-ui/core/esm/Table/TableContext.js","../node_modules/@material-ui/core/esm/internal/SwitchBase.js","../node_modules/@material-ui/icons/Save.js","../node_modules/@material-ui/icons/Lock.js","../node_modules/@material-ui/icons/ArrowForward.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../node_modules/history/esm/history.js","../node_modules/@material-ui/core/esm/Paper/Paper.js","../node_modules/@material-ui/core/esm/TableRow/TableRow.js","../node_modules/@material-ui/core/esm/CardContent/CardContent.js","../node_modules/react-transition-group/esm/utils/ChildMapping.js","../node_modules/react-transition-group/esm/TransitionGroup.js","../node_modules/@material-ui/core/esm/ButtonBase/Ripple.js","../node_modules/@material-ui/core/esm/ButtonBase/TouchRipple.js","../node_modules/@material-ui/core/esm/ButtonBase/ButtonBase.js","../node_modules/@material-ui/core/esm/utils/requirePropFactory.js","../node_modules/@material-ui/core/esm/utils/unsupportedProp.js","../node_modules/axios/lib/defaults.js","../node_modules/lodash.isobject/index.js","../../../src/utils/isBrowser.js","../../../src/utils/debounce.js","../../../src/utils/isFunction.js","../../../src/utils/getStyleComputedProperty.js","../../../src/utils/getParentNode.js","../../../src/utils/getScrollParent.js","../../../src/utils/getReferenceNode.js","../../../src/utils/isIE.js","../../../src/utils/getOffsetParent.js","../../../src/utils/getRoot.js","../../../src/utils/findCommonOffsetParent.js","../../../src/utils/isOffsetContainer.js","../../../src/utils/getScroll.js","../../../src/utils/includeScroll.js","../../../src/utils/getBordersSize.js","../../../src/utils/getWindowSizes.js","../../../src/utils/getClientRect.js","../../../src/utils/getBoundingClientRect.js","../../../src/utils/getOffsetRectRelativeToArbitraryNode.js","../../../src/utils/getViewportOffsetRectRelativeToArtbitraryNode.js","../../../src/utils/isFixed.js","../../../src/utils/getFixedPositionOffsetParent.js","../../../src/utils/getBoundaries.js","../../../src/utils/computeAutoPlacement.js","../../../src/utils/getReferenceOffsets.js","../../../src/utils/getOuterSizes.js","../../../src/utils/getOppositePlacement.js","../../../src/utils/getPopperOffsets.js","../../../src/utils/find.js","../../../src/utils/runModifiers.js","../../../src/utils/findIndex.js","../../../src/methods/update.js","../../../src/utils/isModifierEnabled.js","../../../src/utils/getSupportedPropertyName.js","../../../src/methods/destroy.js","../../../src/utils/getWindow.js","../../../src/utils/setupEventListeners.js","../../../src/methods/enableEventListeners.js","../../../src/methods/disableEventListeners.js","../../../src/utils/removeEventListeners.js","../../../src/utils/isNumeric.js","../../../src/utils/setStyles.js","../../../src/modifiers/computeStyle.js","../../../src/utils/isModifierRequired.js","../../../src/methods/placements.js","../../../src/utils/clockwise.js","../../../src/modifiers/flip.js","../../../src/modifiers/offset.js","../../../src/modifiers/index.js","../../../src/methods/defaults.js","../../../src/modifiers/shift.js","../../../src/modifiers/preventOverflow.js","../../../src/modifiers/keepTogether.js","../../../src/modifiers/arrow.js","../../../src/utils/getOppositeVariation.js","../../../src/modifiers/inner.js","../../../src/modifiers/hide.js","../../../src/utils/getRoundedOffsets.js","../../../src/modifiers/applyStyle.js","../../../src/utils/setAttributes.js","../../../src/index.js","../node_modules/lodash.tonumber/index.js","../node_modules/@material-ui/icons/Update.js","../node_modules/@material-ui/icons/LastPage.js","../node_modules/@material-ui/icons/FirstPage.js","../node_modules/@material-ui/icons/KeyboardArrowRight.js","../node_modules/@material-ui/icons/KeyboardArrowLeft.js","../node_modules/@material-ui/icons/Check.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@material-ui/core/esm/DialogTitle/DialogTitle.js","../node_modules/@material-ui/core/esm/DialogContent/DialogContent.js","../node_modules/@material-ui/core/esm/DialogActions/DialogActions.js","../node_modules/@material-ui/core/esm/Dialog/Dialog.js","../node_modules/@material-ui/core/esm/MenuItem/MenuItem.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/react-transition-group/esm/utils/reflow.js","../node_modules/object-assign/index.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/enhanceError.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/core/createError.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/cancel/Cancel.js","../node_modules/jquery/dist/jquery.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/lodash.isfunction/index.js","../node_modules/@material-ui/icons/ArrowDropUp.js","../node_modules/@material-ui/icons/ArrowDropDown.js","../node_modules/@material-ui/icons/MoreVert.js","../node_modules/@material-ui/icons/ExpandLess.js","../node_modules/@material-ui/icons/ChevronRight.js","../node_modules/@material-ui/icons/ChevronLeft.js","../node_modules/@material-ui/icons/Launch.js","../node_modules/@material-ui/icons/SupervisorAccount.js","../node_modules/@material-ui/icons/History.js","../node_modules/path-to-regexp/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@material-ui/utils/esm/formatMuiErrorMessage.js","../node_modules/@material-ui/core/esm/Grow/Grow.js","../node_modules/@material-ui/core/esm/Fade/Fade.js","../node_modules/@material-ui/core/esm/Backdrop/Backdrop.js","../node_modules/@material-ui/core/esm/TableContainer/TableContainer.js","../node_modules/@material-ui/core/esm/Table/Table.js","../node_modules/@material-ui/core/esm/TableHead/TableHead.js","../node_modules/@material-ui/core/esm/TableBody/TableBody.js","../node_modules/@material-ui/core/esm/Popper/Popper.js","../node_modules/@material-ui/core/esm/Grid/Grid.js","../node_modules/@material-ui/core/esm/Collapse/Collapse.js","../node_modules/@material-ui/core/esm/TextareaAutosize/TextareaAutosize.js","../node_modules/@material-ui/core/esm/InputBase/InputBase.js","../node_modules/@material-ui/styles/esm/useTheme/ThemeContext.js","../node_modules/@material-ui/styles/esm/useTheme/useTheme.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/transformData.js","../node_modules/process/browser.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/buffer/index.js","../node_modules/base64-js/index.js","../node_modules/ieee754/index.js","../node_modules/isarray/index.js","../node_modules/path-to-regexp/node_modules/isarray/index.js","../node_modules/@material-ui/utils/esm/deepmerge.js","../node_modules/@material-ui/core/esm/styles/makeStyles.js","../node_modules/@material-ui/core/esm/ClickAwayListener/ClickAwayListener.js","../node_modules/@material-ui/core/esm/Portal/Portal.js","../node_modules/@material-ui/core/esm/DialogContentText/DialogContentText.js","../node_modules/@material-ui/core/esm/MenuList/MenuList.js","../node_modules/@material-ui/core/esm/List/List.js","../node_modules/@material-ui/core/esm/CircularProgress/CircularProgress.js","../node_modules/@material-ui/core/esm/Card/Card.js","../node_modules/@material-ui/core/esm/CardHeader/CardHeader.js","../node_modules/@material-ui/core/esm/ListItem/ListItem.js","../node_modules/@material-ui/core/esm/Divider/Divider.js","../node_modules/is-in-browser/dist/module.js","../node_modules/jss/dist/jss.esm.js","../node_modules/@material-ui/styles/esm/makeStyles/multiKeyStore.js","../node_modules/@material-ui/styles/esm/ThemeProvider/nested.js","../node_modules/@material-ui/styles/esm/createGenerateClassName/createGenerateClassName.js","../node_modules/jss-plugin-rule-value-function/dist/jss-plugin-rule-value-function.esm.js","../node_modules/jss-plugin-global/dist/jss-plugin-global.esm.js","../node_modules/jss-plugin-nested/dist/jss-plugin-nested.esm.js","../node_modules/hyphenate-style-name/index.js","../node_modules/jss-plugin-camel-case/dist/jss-plugin-camel-case.esm.js","../node_modules/jss-plugin-default-unit/dist/jss-plugin-default-unit.esm.js","../node_modules/css-vendor/dist/css-vendor.esm.js","../node_modules/jss-plugin-vendor-prefixer/dist/jss-plugin-vendor-prefixer.esm.js","../node_modules/jss-plugin-props-sort/dist/jss-plugin-props-sort.esm.js","../node_modules/@material-ui/styles/esm/jssPreset/jssPreset.js","../node_modules/@material-ui/styles/esm/StylesProvider/StylesProvider.js","../node_modules/@material-ui/styles/esm/makeStyles/indexCounter.js","../node_modules/@material-ui/styles/esm/getStylesCreator/getStylesCreator.js","../node_modules/@material-ui/styles/esm/getStylesCreator/noopTheme.js","../node_modules/@material-ui/styles/esm/makeStyles/makeStyles.js","../node_modules/@material-ui/core/esm/Modal/ModalManager.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@material-ui/core/esm/Unstable_TrapFocus/Unstable_TrapFocus.js","../node_modules/@material-ui/core/esm/Modal/SimpleBackdrop.js","../node_modules/@material-ui/core/esm/Modal/Modal.js","../node_modules/@material-ui/core/esm/SnackbarContent/SnackbarContent.js","../node_modules/@material-ui/core/esm/Snackbar/Snackbar.js","../node_modules/@material-ui/core/esm/internal/svg-icons/Person.js","../node_modules/@material-ui/core/esm/Avatar/Avatar.js","../node_modules/@material-ui/core/esm/AppBar/AppBar.js","../node_modules/@material-ui/styles/esm/mergeClasses/mergeClasses.js","../node_modules/@material-ui/styles/esm/getThemeProps/getThemeProps.js","../node_modules/react-router-dom/es/Link.js","../node_modules/@material-ui/core/esm/Input/Input.js","../node_modules/@material-ui/core/esm/FilledInput/FilledInput.js","../node_modules/@material-ui/core/esm/FormControl/FormControl.js","../node_modules/@material-ui/core/esm/FormGroup/FormGroup.js","../node_modules/@material-ui/core/esm/Fab/Fab.js","../node_modules/@material-ui/core/esm/FormControlLabel/FormControlLabel.js","../node_modules/@material-ui/core/esm/ListItemText/ListItemText.js","../node_modules/@material-ui/icons/esm/ExpandMore.js","../node_modules/@material-ui/core/esm/Tooltip/Tooltip.js","../node_modules/@material-ui/core/esm/ListItemIcon/ListItemIcon.js","../node_modules/tslib/tslib.es6.js","../../../src/utils/CryptoUtils.ts","../../../src/utils/Constants.ts","../../../src/authority/Authority.ts","../../../src/error/AuthError.ts","../../../src/utils/StringUtils.ts","../../../src/error/ClientAuthError.ts","../../../src/error/ClientConfigurationError.ts","../../src/ScopeSet.ts","../../../src/utils/UrlUtils.ts","../../../src/cache/AccessTokenKey.ts","../../../src/cache/AccessTokenValue.ts","../../src/ServerRequestParameters.ts","../../src/packageMetadata.ts","../../src/XHRClient.ts","../../../src/authority/TrustedAuthority.ts","../../src/Logger.ts","../../src/ClientInfo.ts","../../../src/utils/TimeUtils.ts","../../../src/utils/TokenUtils.ts","../../src/IdToken.ts","../../../src/cache/AccessTokenCacheItem.ts","../../../src/cache/BrowserStorage.ts","../../../src/utils/RequestUtils.ts","../../../src/cache/AuthCache.ts","../../src/Account.ts","../../../src/utils/WindowUtils.ts","../../../src/utils/ResponseUtils.ts","../../../src/authority/AuthorityFactory.ts","../../src/Configuration.ts","../../../src/error/ServerError.ts","../../../src/error/InteractionRequiredAuthError.ts","../../src/AuthResponse.ts","../../../src/telemetry/TelemetryConstants.ts","../../../src/telemetry/ApiEvent.ts","../../../src/telemetry/TelemetryUtils.ts","../../../src/telemetry/TelemetryEvent.ts","../../../src/telemetry/DefaultEvent.ts","../../../src/telemetry/HttpEvent.ts","../../../src/telemetry/TelemetryManager.ts","../../../src/utils/AuthCacheUtils.ts","../../src/UserAgentApplication.ts","../node_modules/@material-ui/core/esm/ListSubheader/ListSubheader.js","../node_modules/@material-ui/core/esm/internal/svg-icons/Cancel.js","../node_modules/@material-ui/core/esm/Chip/Chip.js","../node_modules/@material-ui/lab/esm/internal/svg-icons/Close.js","../node_modules/@material-ui/lab/esm/internal/svg-icons/ArrowDropDown.js","../node_modules/@material-ui/lab/esm/useAutocomplete/useAutocomplete.js","../node_modules/@material-ui/lab/esm/Autocomplete/Autocomplete.js","../node_modules/@material-ui/core/esm/Popover/Popover.js","../node_modules/@material-ui/core/esm/Menu/Menu.js","../node_modules/@material-ui/core/esm/Select/SelectInput.js","../node_modules/@material-ui/core/esm/internal/svg-icons/ArrowDropDown.js","../node_modules/@material-ui/core/esm/NativeSelect/NativeSelectInput.js","../node_modules/@material-ui/core/esm/NativeSelect/NativeSelect.js","../node_modules/@material-ui/core/esm/Select/Select.js","../node_modules/@material-ui/core/esm/internal/svg-icons/RadioButtonUnchecked.js","../node_modules/@material-ui/core/esm/internal/svg-icons/RadioButtonChecked.js","../node_modules/@material-ui/core/esm/Radio/RadioButtonIcon.js","../node_modules/@material-ui/core/esm/RadioGroup/RadioGroupContext.js","../node_modules/@material-ui/core/esm/Radio/Radio.js","../node_modules/@material-ui/core/esm/RadioGroup/useRadioGroup.js","../node_modules/@material-ui/core/esm/Toolbar/Toolbar.js","../node_modules/@material-ui/core/esm/internal/svg-icons/KeyboardArrowLeft.js","../node_modules/@material-ui/core/esm/internal/svg-icons/KeyboardArrowRight.js","../node_modules/@material-ui/core/esm/TablePagination/TablePaginationActions.js","../node_modules/@material-ui/core/esm/TablePagination/TablePagination.js","../node_modules/@material-ui/core/esm/FormLabel/FormLabel.js","../node_modules/@material-ui/core/esm/InputLabel/InputLabel.js","../node_modules/@material-ui/core/esm/FormHelperText/FormHelperText.js","../node_modules/@material-ui/core/esm/TextField/TextField.js","../node_modules/@material-ui/core/esm/internal/svg-icons/CheckBoxOutlineBlank.js","../node_modules/@material-ui/core/esm/internal/svg-icons/CheckBox.js","../node_modules/@material-ui/core/esm/internal/svg-icons/IndeterminateCheckBox.js","../node_modules/@material-ui/core/esm/Checkbox/Checkbox.js","../node_modules/react-router/es/Router.js","../node_modules/react-router-dom/es/Router.js","../node_modules/react-router-dom/es/BrowserRouter.js","../node_modules/@material-ui/core/esm/Slide/Slide.js","../node_modules/@material-ui/core/esm/Drawer/Drawer.js","../node_modules/react-router/es/matchPath.js","../node_modules/react-router/es/Route.js","../node_modules/@material-ui/core/esm/OutlinedInput/NotchedOutline.js","../node_modules/@material-ui/core/esm/OutlinedInput/OutlinedInput.js","../node_modules/@material-ui/core/esm/internal/svg-icons/ArrowDownward.js","../node_modules/@material-ui/core/esm/TableSortLabel/TableSortLabel.js"],"names":["module","exports","require","_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","_objectWithoutProperties","excluded","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","r","e","t","f","n","Array","isArray","clsx","_slicedToArray","arr","Symbol","iterator","_arr","_n","_d","_e","undefined","_s","_i","next","done","push","value","err","unsupportedIterableToArray","TypeError","withStyles","stylesOrCreator","options","Component","defaultTheme","_options$withTheme","withTheme","name","stylesOptions","classNamePrefix","useStyles","makeStyles","displayName","WithStyles","React","forwardRef","props","ref","classes","theme","innerRef","other","defaultProps","more","useTheme","getThemeProps","createElement","hoistNonReactStatics","withStylesWithoutDefault","hasOwn","classNames","arg","argType","inner","join","default","_createClass","defineProperties","descriptor","enumerable","configurable","writable","defineProperty","Constructor","protoProps","staticProps","_classCallCheck","instance","_possibleConstructorReturn","self","ReferenceError","Manager","_Component","_ref","_temp","_this","_len","args","_key","__proto__","getPrototypeOf","concat","_setTargetNode","node","_targetNode","_getTargetNode","subClass","superClass","create","constructor","setPrototypeOf","_inherits","popperManager","setTargetNode","getTargetNode","_props","tag","children","restProps","obj","keys","childContextTypes","PropTypes","object","isRequired","propTypes","oneOfType","string","bool","func","Target","context","_props$component","component","targetRef","targetProps","componentProps","contextTypes","placements","PopperJS","Popper","state","_setArrowNode","_arrowNode","Error","_getOffsets","data","offsets","map","_isDataDirty","JSON","stringify","_updateStateModifier","enabled","order","fn","setState","_getPopperStyle","_popper","position","popper","styles","pointerEvents","opacity","_getPopperPlacement","placement","_getPopperHide","hide","_getArrowStyle","arrow","_this$state$data$offs","top","left","_handlePopperRef","_popperNode","_createPopper","_destroyPopper","_scheduleUpdate","scheduleUpdate","setArrowNode","getArrowStyle","lastProps","eventsEnabled","_this2","positionFixed","modifiers","applyStyle","updateState","element","setTimeout","destroy","_props2","popperStyle","popperPlacement","popperHide","popperProps","style","oneOf","instanceOf","Element","shape","getBoundingClientRect","clientWidth","number","clientHeight","Arrow","arrowRef","arrowStyle","arrowProps","componentWillMount","getDerivedStateFromProps","componentWillReceiveProps","nextProps","prevState","bind","componentWillUpdate","nextState","prevProps","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","__suppressDeprecationWarning","getScrollbarWidth","scrollDiv","document","width","height","overflow","body","appendChild","scrollbarWidth","offsetWidth","removeChild","setScrollbarWidth","padding","paddingRight","isBodyOverflowing","window","innerWidth","getOriginalBodyPadding","getComputedStyle","parseInt","getPropertyValue","conditionallyUpdateScrollbar","fixedContent","querySelectorAll","bodyPadding","globalCssModule","mapToCssModules","className","cssModule","split","c","omit","omitKeys","result","forEach","pick","pickKeys","warned","warnOnce","message","console","error","deprecated","propType","explanation","propName","componentName","rest","DOMElement","targetPropType","current","TransitionTimeouts","TransitionPropTypeKeys","TransitionStatuses","keyCodes","PopperPlacements","canUseDOM","isReactRefObj","findDOMElements","isFunction","selection","isArrayOrNodeList","els","getTarget","defaultToggleEvents","addMultipleEventListeners","_els","handler","_events","events","event","el","addEventListener","removeEventListener","focusableElements","Container","fluid","Tag","attributes","Row","noGutters","form","stringOrNumberProp","columnProps","array","getColumnSizeClass","isXs","colWidth","colSize","Col","widths","colClasses","columnProp","isobject","colSizeInterfix","colClass","size","offset","toggleableToExpand","Navbar","toggleable","expand","light","dark","inverse","fixed","sticky","color","getExpandClass","getToggleableClass","NavbarBrand","NavbarToggler","Nav","tabs","pills","vertical","horizontal","justified","fill","navbar","card","getVerticalClass","NavItem","active","Dropdown","addEvents","handleDocumentClick","handleKeyDown","removeEvents","toggle","isOpen","direction","dropup","inNavbar","handleProps","ReactDOM","findDOMNode","which","type","tab","container","getContainer","contains","test","tagName","space","preventDefault","disabled","enter","click","esc","querySelector","focus","menuClass","itemClass","disabledClass","items","index","charPressed","String","fromCharCode","toLowerCase","textContent","up","down","group","nav","setActiveFromChild","addonType","attrs","subItemIsActive","Children","dropdownItem","onKeyDown","any","NavLink","onClick","href","Breadcrumb","listClassName","ListTag","listTag","label","listClasses","aria-label","BreadcrumbItem","aria-current","Button","ariaLabel","block","close","outline","aria-hidden","btnOutlineColor","defaultAriaLabel","ButtonDropdown","ButtonGroup","ButtonToolbar","DropdownItem","getTabIndex","header","divider","tabIndex","noFlipModifier","flip","directionPositionMap","DropdownMenu","right","persist","position1","position2","DropdownToggle","caret","transitionType","timeoutPropName","enabledPropName","_propTypes2","_propTypes","__esModule","newObj","_interopRequireWildcard","_react2","_interopRequireDefault","_react","_reactDom2","_reactDom","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","_React$Component","parentGroup","transitionGroup","appear","isMounting","initialStatus","nextStatus","in","unmountOnExit","mountOnEnter","status","nextCallback","getChildContext","componentDidMount","updateStatus","pendingState","componentDidUpdate","componentWillUnmount","cancelNextCallback","getTimeouts","timeout","exit","mounting","performEnter","performExit","appearing","timeouts","onEnter","safeSetState","onEntering","onTransitionEnd","onEntered","_this3","onExit","onExiting","onExited","cancel","callback","_this4","setNextCallback","_this5","addEndListener","render","childProps","child","only","cloneElement","noop","arrayOf","Fade","baseClass","baseClassActive","otherProps","transitionProps","isActive","Badge","pill","Card","CardGroup","CardDeck","CardColumns","CardBody","CardLink","CardFooter","CardHeader","CardImg","bottom","cardImgClassName","CardImgOverlay","CarouselItem","isAppearing","startAnimation","offsetHeight","dispatchEvent","CustomEvent","isIn","slide","directionClassName","orderClassName","itemClasses","Carousel","handleKeyPress","renderItems","hoverStart","hoverEnd","ride","setInterval","activeIndex","indicatorClicked","clearInterval","interval","cycleInterval","pause","mouseEnter","mouseLeave","evt","keyboard","keyCode","previous","carouselItems","role","item","outerClasses","innerClasses","filter","every","onMouseEnter","onMouseLeave","controlLeft","controlRight","indicators","wrappedIndicators","onClickHandler","CarouselControl","directionText","anchorClasses","iconClasses","screenReaderClasses","CarouselIndicators","idx","indicatorClasses","src","caption","altText","CarouselCaption","captionHeader","captionText","UncontrolledCarousel","animating","goToIndex","nextIndex","newIndex","autoPlay","controls","slides","alt","CardSubtitle","CardText","CardTitle","PopperContent","handlePlacementChange","_element","renderIntoSubtree","targetNode","show","getContainerNode","unmountComponentAtNode","childNodes","unstable_renderSubtreeIntoContainer","renderChildren","fallbackPlacement","placementPrefix","_arrowClassName","arrowClassName","hideArrow","boundariesElement","popperClassName","extendedModifiers","behavior","x-placement","PopperTargetHelper","DEFAULT_DELAYS","Popover","addTargetEvents","removeTargetEvents","getRef","_target","clearShowTimeout","clearHideTimeout","_popover","delay","isNaN","_showTimeout","getDelay","_hideTimeout","innerClassName","popperClasses","PopoverHeader","PopoverBody","Progress","barClassName","max","animated","striped","bar","multi","percent","toNumber","progressClasses","progressBarClasses","ProgressBar","Portal","defaultNode","createPortal","FadePropTypes","propsToOmit","Modal","_originalBodyPadding","getFocusableChildren","handleBackdropClick","handleBackdropMouseDown","handleEscape","handleTab","onOpened","onClosed","init","autoFocus","setFocus","_isMounted","zIndex","modalTransition","_dialog","parentNode","currentFocus","focusableChildren","activeElement","_mouseDownElement","stopPropagation","backdrop","totalFocusable","getFocusedChild","focusedIndex","shiftKey","_triggeringElement","setAttribute","openCount","modalOpenClassName","modalOpenClassNameRegex","RegExp","replace","trim","dialogBaseClass","centered","contentClassName","wrapClassName","modalClassName","backdropClassName","labelledBy","external","modalAttributes","display","hasTransition","fade","backdropTransition","Backdrop","renderModalDialog","ModalHeader","closeButton","WrapTag","wrapTag","closeAriaLabel","charCode","closeIcon","ModalBody","ModalFooter","Tooltip","onMouseOverTooltip","onMouseLeaveTooltip","onMouseOverTooltipContent","onMouseLeaveTooltipContent","onEscKeyDown","autohide","getAttribute","trigger","triggers","Table","bordered","borderless","hover","responsive","ResponsiveTag","responsiveTag","table","responsiveClassName","ListGroup","flush","Form","submit","inline","FormFeedback","valid","tooltip","validMode","FormGroup","row","check","FormText","Input","bsSize","invalid","addon","staticInput","static","plaintext","checkInput","isNotaNumber","formControlClass","InputGroup","InputGroupText","InputGroupAddon","Label","hidden","htmlFor","for","Pagination","PaginationItem","PaginationLink","defaultCaret","TabContent","activeTab","isReactComponent","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","newApiName","maybeSnapshot","snapshot","polyfill","TabPane","tabId","Jumbotron","Alert","closeClassName","transition","closeClasses","alertTransition","Collapse","transitionStatusToClassHash","getHeight","scrollHeight","collapseClass","getTransitionClass","handleDisabledOnClick","ListGroupItem","action","ListGroupItemHeading","ListGroupItemText","UncontrolledAlert","UncontrolledButtonDropdown","UncontrolledCollapse","togglers","removeEventListeners","toggler","toggleEvents","UncontrolledDropdown","UncontrolledTooltip","asyncGeneratorStep","gen","resolve","reject","_next","_throw","info","Promise","then","_asyncToGenerator","capitalize","_formatMuiErrorMessage","charAt","toUpperCase","slice","clamp","min","Math","decomposeColor","substr","re","colors","match","round","hexToRgb","marker","substring","values","parseFloat","recomposeColor","getContrastRatio","foreground","background","lumA","getLuminance","lumB","rgb","h","s","l","a","k","hslToRgb","val","pow","Number","toFixed","emphasize","coefficient","darken","lighten","alpha","useForkRef","refA","refB","refValue","setRef","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","process","_defineProperty","ownKeys","enumerableOnly","symbols","sym","getOwnPropertyDescriptor","_objectSpread2","getOwnPropertyDescriptors","_typeof","_getRequireWildcardCache","WeakMap","cache","has","get","hasPropertyDescriptor","desc","set","_utils","createSvgIcon","_defineProperties","_assertThisInitialized","SvgIcon","_props$color","_props$fontSize","fontSize","htmlColor","titleAccess","_props$viewBox","viewBox","root","focusable","muiName","userSelect","flexShrink","typography","pxToRem","transitions","duration","shorter","colorPrimary","palette","primary","main","colorSecondary","secondary","colorAction","colorError","colorDisabled","fontSizeInherit","fontSizeSmall","fontSizeLarge","path","memo","_getPrototypeOf","o","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","Date","toString","assertThisInitialized","_createSuper","Derived","Super","NewTarget","_setPrototypeOf","p","ownerDocument","easing","easeInOut","easeOut","easeIn","sharp","shortest","short","standard","complex","enteringScreen","leavingScreen","formatMs","milliseconds","_options$duration","durationOption","_options$easing","easingOption","_options$delay","animatedProp","getAutoHeightDuration","constant","defaultVariantMapping","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","Typography","_props$align","align","_props$display","_props$gutterBottom","gutterBottom","_props$noWrap","noWrap","_props$paragraph","paragraph","_props$variant","variant","_props$variantMapping","variantMapping","margin","button","overline","srOnly","alignLeft","textAlign","alignCenter","alignRight","alignJustify","textOverflow","whiteSpace","marginBottom","colorInherit","colorTextPrimary","text","colorTextSecondary","displayInline","displayBlock","useThemeWithoutDefault","arrayWithHoles","nonIterableRest","useEnhancedEffect","useEventCallback","createChainedFunction","funcs","reduce","acc","_len2","_key2","reflow","scrollTop","getTransitionProps","_props$style","transitionDuration","mode","transitionDelay","deprecatedPropType","validator","reason","isUndefined","isObject","isPlainObject","isArrayBuffer","isBuffer","isFormData","FormData","isArrayBufferView","ArrayBuffer","isView","buffer","isString","isNumber","isDate","isFile","isBlob","isStream","pipe","isURLSearchParams","URLSearchParams","isStandardBrowserEnv","navigator","product","merge","assignValue","extend","b","thisArg","str","stripBOM","content","charCodeAt","useFormControl","FormControlContext","formControlState","states","muiFormControl","Skeleton","_props$animation","animation","hasChildren","Boolean","withChildren","fitContent","heightAuto","backgroundColor","marginTop","transformOrigin","transform","borderRadius","rect","circle","pulse","wave","visibility","maxWidth","ListContext","warning","_props$disabled","_props$disableElevati","disableElevation","_props$disableFocusRi","disableFocusRipple","endIconProp","endIcon","focusVisibleClassName","_props$fullWidth","fullWidth","_props$size","startIconProp","startIcon","_props$type","ButtonBase","focusRipple","focusVisible","boxSizing","minWidth","textDecoration","hoverOpacity","alignItems","justifyContent","textPrimary","textSecondary","outlined","border","disabledBackground","outlinedPrimary","outlinedSecondary","contained","getContrastText","grey","boxShadow","shadows","A100","containedPrimary","contrastText","containedSecondary","borderColor","textSizeSmall","textSizeLarge","outlinedSizeSmall","outlinedSizeLarge","containedSizeSmall","containedSizeLarge","sizeSmall","sizeLarge","marginRight","marginLeft","iconSizeSmall","iconSizeMedium","iconSizeLarge","debounce","wait","debounced","that","later","clearTimeout","clear","useControlled","controlled","defaultProp","isControlled","_React$useState","valueState","setValue","newValue","_default","d","_objectWithoutPropertiesLoose","sourceKeys","isMuiElement","muiNames","Tablelvl2Context","_toConsumableArray","arrayLikeToArray","iterableToArray","useId","idOverride","defaultId","setDefaultId","id","random","_inheritsLoose","condition","format","argIndex","framesToPop","hasValue","isFilled","SSR","defaultValue","isAdornedStart","startAdornment","hadKeyboardEvent","hadFocusVisibleRecently","hadFocusVisibleRecentlyTimeout","inputTypesWhitelist","search","url","tel","email","password","date","month","week","time","datetime","metaKey","altKey","ctrlKey","handlePointerDown","handleVisibilityChange","visibilityState","isFocusVisible","matches","readOnly","isContentEditable","focusTriggersKeyboardModality","handleBlurVisible","useIsFocusVisible","onBlurVisible","doc","ownerWindow","defaultView","createBreakpoints","breakpoints","_breakpoints$values","xs","sm","md","lg","xl","_breakpoints$unit","unit","_breakpoints$step","step","between","start","end","endIndex","upperbound","createMixins","spacing","mixins","_toolbar","gutters","warn","paddingLeft","toolbar","minHeight","common","black","white","50","100","200","300","400","500","600","700","800","900","A200","A400","A700","indigo","pink","red","orange","blue","green","hint","paper","selected","selectedOpacity","disabledOpacity","focusOpacity","activatedOpacity","icon","addLightOrDark","intent","shade","tonalOffset","tonalOffsetLight","tonalOffsetDark","createPalette","_palette$primary","_palette$secondary","_palette$error","_palette$warning","_palette$info","_palette$success","success","_palette$type","_palette$contrastThre","contrastThreshold","_palette$tonalOffset","augmentColor","mainShade","lightShade","darkShade","types","deepmerge","roundWithDeprecationWarning","caseAllCaps","textTransform","createTypography","_ref$fontFamily","fontFamily","_ref$fontSize","_ref$fontWeightLight","fontWeightLight","_ref$fontWeightRegula","fontWeightRegular","_ref$fontWeightMedium","fontWeightMedium","_ref$fontWeightBold","fontWeightBold","_ref$htmlFontSize","htmlFontSize","allVariants","pxToRem2","coef","buildVariant","fontWeight","lineHeight","letterSpacing","casing","variants","clone","createShadow","defaultBreakpoints","properties","m","directions","x","y","aliases","marginX","marginY","paddingX","paddingY","getCssProperties","memoize","prop","_prop$split","_prop$split2","property","dir","spacingKeys","createUnarySpacing","themeSpacing","abs","getStyleFromPropValue","cssProperties","transformer","propValue","cssProperty","transformed","getValue","styleFromPropValue","themeBreakpoints","_themeBreakpoints","breakpoint","handleBreakpoints","filterProps","createSpacing","spacingInput","mui","argument","output","createTheme","_options$breakpoints","breakpointsInput","_options$mixins","mixinsInput","_options$palette","paletteInput","_options$typography","typographyInput","muiTheme","overrides","createContext","TableCell","paddingProp","scopeProp","scope","sizeProp","sortDirection","variantProp","TableContext","tablelvl2","isHeadCell","ariaSort","stickyHeader","verticalAlign","borderBottom","head","footer","paddingCheckbox","paddingNone","flexDirection","$cptable","XLSX","current_codepage","current_ansi","VALID_ANSI","CS2CP","0","1","2","77","128","129","130","134","136","161","162","163","177","178","186","204","222","238","255","69","set_ansi","cp","set_cp","reset_cp","char_codes","len","utf16leread","utf16beread","debom","c1","c2","_getchar","_getansi","Base64_map","Base64_encode","input","c3","e1","e2","e3","e4","Base64_decode","has_buf","Buffer","versions","Buffer_from","nbfs","from","buf","enc","buf_utf16le","new_raw_buf","alloc","Uint8Array","new_unsafe_buf","allocUnsafe","s2a","a2s","ab2a","bconcat","bufs","maxlen","chr0","chr1","_strrev","pad0","v","pad_","rpad_","p2_32","pad0r","pad0r1","pad0r2","SSF_isgeneral","days","months","table_fmt","3","4","9","10","11","12","13","14","15","16","17","18","19","20","21","22","37","38","39","40","45","46","47","48","49","56","SSF_default_map","5","6","7","8","23","24","25","26","27","28","29","30","31","51","52","53","54","55","57","58","59","60","61","62","67","68","70","71","72","73","74","75","76","78","79","80","81","82","SSF_default_str","63","64","65","66","41","42","43","44","SSF_frac","D","mixed","sgn","B","P_2","P_1","P","Q_2","Q_1","Q","A","floor","q","SSF_parse_date_code","opts","b2","dow","dout","out","T","u","H","M","S","date1904","setDate","getDate","getFullYear","getMonth","getDay","SSF_fix_hijri","SSF_strip_decimal","SSF_general_num","V","log","LOG10E","toPrecision","w","toExponential","SSF_small_exp","SSF_large_exp","SSF_normalize_exp","SSF_general","SSF_format","datenum","SSF_write_date","fmt","ss0","ss","tt","outl","commaify","j","pct1","frac1","dec1","closeparen","phone","hashq","cc","rnd","dd","dec","_frac","write_num_flt","ffmt","write_num","write_num_cm","sfmt","mul","write_num_pct","write_num_exp","period","ee","fakee","$$","$1","$2","$3","ri","ff","aval","sign","den","rr","base","myn","myd","write_num_f1","carry","oa","lres","rres","flr","write_num_int","write_num_cm2","write_num_pct2","write_num_exp2","write_num_f2","lastIndexOf","SSF_abstime","fmt_is_date","cfregex2","chkcond","thresh","choose_fmt","in_str","SSF_split_fmt","lat","m1","m2","dateNF","flen","dt","lst","hr","ssm","bt","jj","nstr","myv","ostr","vv","decpt","lasti","retval","eval_fmt","SSF_load","make_ssf","SSFImplicit","dateNFregex","bad_formats","SSF__load","_fs","CRC32","version","T0","Int32Array","signed_crc_table","TT","subarray","slice_by_16_tables","T1","T2","T3","T4","T5","T6","T7","T8","T9","Ta","Tb","Tc","Td","Te","Tf","bstr","seed","C","L","CFB","fs","dirname","filename","write_dos_date","hms","getHours","getMinutes","getSeconds","write_shift","ymd","parse_extra_field","blob","prep_blob","flags","read_shift","sz","tgt","mtime","atime","ctime","mt","sz1","sz2","usz","csz","get_fs","parse","file","parse_zip","di","mboundary","boundary","FileIndex","FullPaths","init_cfb","start_di","fcnt","line","parse_mime","parse_mad","mver","nmfs","difat_sec_cnt","dir_start","minifat_start","difat_start","ssz","fat_addrs","mv","chk","HEADER_SIGNATURE","check_get_mver","shift","check_shifts","dir_cnt","sectors","nsectors","ceil","sectorify","sleuth_fat","cnt","ENDOFCHAIN","sector","__readInt32LE","sector_list","sl","chkd","buf_chain","modulus","seen","addr","nodes","__toBuffer","make_sector_list","Paths","files","mini","minifat_store","pl","namelen","__utf16le","R","clsid","ct","read_date","storage","get_sector_list","get_mfat_entry","read_directory","FI","FP","dad","build_full_paths","raw","entry","payload","MSSZ","new_buf","__readUInt32LE","cfb","CLSID","nm","find","rebuild_cfb","seed_cfb","gc","_file","pop","now","fullPaths","HEADER_CLSID","sort","Z","namecmp","elt","_write","_opts","fileType","fp","fi","ca","cstr","dispcnt","csl","qp","get_content_type","write_quoted_printable","write_base64_76","write_mad","cdirs","method","compression","start_cd","crcs","sz_cd","namebuf","outbuf","_zlib","deflateRawSync","_deflate","write_zip","mini_size","fat_size","mfat_cnt","fat_base","fat_cnt","difat_cnt","HEADER_SIG","chainit","consts","DIFSECT","FATSECT","_nm","copy","MAXREGSECT","FREESECT","HEADER_MINOR_VERSION","MAXREGSID","NOSTREAM","EntryTypes","CLEN_ORDER","LEN_LN","DST_LN","bit_swap_8","use_typed_arrays","bitswap8","bit_swap_n","rev","read_bits_2","bl","read_bits_3","read_bits_5","read_bits_7","read_bits_n","write_bits_3","write_bits_1","write_bits_8","write_bits_16","realloc","zero_fill_array","build_tree","clens","cmap","MAX","ccode","bl_count","Uint16Array","ctree","cleni","fix_lmap","fix_dmap","dlens","_deflateRaw","DST_LN_RE","LEN_LN_RE","boff","write_stored","addrs","hash","mlen","len_eb","dst_eb","write_huff_fixed","off","dyn_lmap","dyn_dmap","dyn_cmap","dyn_len_1","dyn_len_2","dyn","_HLIT","_HDIST","_HCLEN","read_bits_4","next_code","hcodes","_inflate","woff","OL","max_len_1","max_len_2","bits","code","dst","inflate","warn_or_throw","wrn","msg","efsz","fcsz","EF","parse_local_file","meth","setMilliseconds","setFullYear","setMonth","setHours","setMinutes","setSeconds","parse_dos_date","_csz","_usz","ef","InflRaw","InflateRaw","_processChunk","_finishFlushFlag","bytesRead","_inflateRawSync","cfb_add","unsafe","ContentTypeMap","ctype","ext","encoded","si","tmp","fdata","fname","cte","oi","parse_quoted_printable","fpath","utils","cfb_gc","UCFullPaths","UCPaths","UCPath","read","readFileSync","read_file","write","writeFileSync","writeFile","cfb_new","cfb_del","splice","cfb_mov","old_name","new_name","ReadShift","CheckField","use_zlib","zlib","_inflateRaw","ks","o2","evert","K","dnthresh","UTC","dnthresh1","dnthresh2","res","getTime","numdate","setTime","parse_isodur","sec","pdre1","pdre2","pdre3","parseDate","cc2str","debomit","utf8write","TextDecoder","decode","dup","fuzzynum","isFinite","NaN","wt","FDRE1","FDRE2","FDISO","utc_append_works","valueOf","lower_months","fuzzydate","local_to_utc","lower","lnos","fuzzytime1","fuzzytime2","getYear","split_regex","safe_split_regex","def","utc_to_local","utc","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","local","getMilliseconds","getdatastr","asNodeBuffer","asBinary","_data","getContent","getdatabin","safegetzipfile","zip","g","getzipfile","getzipdata","safe","getzipstr","zipentries","zip_add_file","widx","ridx","utf8decode","zip_read","resolve_path","XML_HEADER","attregexg","tagregex1","tagregex","nsregex","nsregex2","parsexmltag","skip_root","skip_LC","z","eq","quot","strip_ns","encodings","rencoding","unescapexml","encregex","coderegex","xlsx","raw_unescapexml","decregex","htmlcharegex","escapehtml","xlml_fixstr","entregex","entrepl","parsexmlbool","utf8reada","orig","utf8readb","ww","utf8readc","utf8corpus","utf8read","matchtag","mtcache","htmldecode","entities","vtregex","vt_cache","vtvregex","vtmregex","parseVector","baseType","WTF","xlml_normalize","xlmlregex","XMLNS","XMLNS_main","___toBuffer","___utf16le","__readUInt16LE","___hexlify","__hexlify","___utf8","__readUInt8","__utf8","___lpstr","__lpstr","___cpstr","__cpstr","___lpwstr","__lpwstr","___lpp4","__lpp4","___8lpp4","__8lpp4","___double","Infinity","read_double_le","__double","is_buf","cpdoit","readUInt32LE","readDoubleLE","__readInt16LE","__readInt32BE","oI","oR","loc","oo","lens","__writeUInt16LE","WriteShift","cpp","encode","__writeUInt32LE","bs","av","LN2","write_double_le","__writeInt32LE","hexstr","fld","pos","parsenoop","recordhopper","cb","tmpbyte","cntbyte","RT","XLSBRecordEnum","buf_array","blksz","newblk","curbuf","endbuf","_bufs","shift_cell_xls","cell","cRel","rRel","biff","shift_range_xls","range","encode_cell_xls","encode_cell","fix_row","encode_range_xls","encode_row","encode_col","decode_row","rowstr","decode_col","colstr","col","decode_cell","decode_range","encode_range","cs","ce","formula_quote_sheet_name","sname","safe_decode_range","safe_format_cell","XF","numFmtId","format_cell","BErr","sheet_to_workbook","sheet","sheets","SheetNames","Sheets","sheet_add_aoa","_ws","dense","ws","_R","_C","origin","_origin","_range","__R","__Rstr","__C","nullError","sheetStubs","cellDates","cell_ref","aoa_to_sheet","parse_XLWideString","cchCharacters","parse_StrRun","ich","ifnt","parse_RichStr","rgsStrRun","dwSizeStrRun","parse_BrtCommentText","parse_XLSBCell","iStyleRef","parse_XLSBShortCell","parse_XLSBCodeName","parse_XLNullableWideString","parse_XLNameWideString","parse_RelID","parse_RkNumber","fX100","fInt","RK","parse_RfX","parse_UncheckedRfX","parse_Xnum","parse_ClipboardFormatOrString","VT_CUSTOM","DocSummaryPIDDSI","SummaryPIDSI","CountryEnum","XLSFillPattern","rgbify","XLSIcv","RBErr","XLSLblBuiltIn","ct2type","RELS","WB","SHEET","HLINK","VML","XPATH","XMISS","XLINK","CXML","CXMLP","CMNT","CORE_PROPS","EXT_PROPS","CUST_PROPS","SST","STY","THEME","CHART","CHARTEX","CS","WS","DS","MS","IMG","DRAW","XLMETA","TCMNT","PEOPLE","CONN","VBA","get_rels_path","parse_rels","currentFilePath","rels","rel","Type","Id","TargetMode","canonictarget","CORE_PROPS_REGEX","parse_core_props","cur","load_props_pairs","HP","TOP","hp","parts","Worksheets","NamedRanges","DefinedNames","Chartsheets","ChartNames","custregex","evert_XLMLDPM","XLMLDocPropsMap","Title","Subject","Author","Keywords","Comments","LastAuthor","RevNumber","Application","LastPrinted","CreatedDate","ModifiedDate","Category","Company","AppVersion","ContentStatus","Identifier","Language","xlml_set_prop","Props","parse_FILETIME","dwLowDateTime","dwHighDateTime","toISOString","parse_lpstr","pad","parse_lpwstr","parse_VtStringBase","stringType","parse_VtString","parse_VtHeadingPair","headingString","parse_TypedPropertyValue","parse_dictionary","CodePage","dict","pid","parse_BLOB","bytes","ret","Size","parse_ClipboardData","parse_VtUnalignedString","cElements","parse_VtVecHeadingPairValue","parse_VtVecLpwstrValue","parse_VtVecUnalignedLpstrValue","parse_PropertySet","PIDSI","start_addr","NumProps","Dictionary","DictObj","PropID","Offset","PropH","fail","piddsi","oldpos","parsebool","parse_PropertySetStream","NumSets","FMTID0","FMTID1","Offset0","Offset1","SystemIdentifier","PSet1","PSet0","rval","FMTID","parsenoop2","parseuint16","parseuint16a","parslurp","parse_Bes","parse_ShortXLUnicodeString","cch","encoding","parse_XLUnicodeRichExtendedString","cbExtRst","fExtSt","fRichSt","cRun","parse_XLUnicodeStringNoCch","parse_XLUnicodeString","parse_XLUnicodeString2","parse_HyperlinkMoniker","extra","parse_URLMoniker","cAnti","preamble","ansiPath","parse_FileMoniker","parse_HyperlinkString","parse_LongRGBA","parse_LongRGB","parse_XLSCell","ixfe","parse_XTI","parse_RkRec","parse_Ref8U","rwFirst","rwLast","parse_RefU","parse_Ref","parse_FtCmo","ot","parse_FtSkip","FtTab","cf","fSharedNote","parse_BOF","BIFFVer","parse_DefaultRowHeight","miyRw","Unsynced","DyZero","ExAsc","ExDsc","parse_BIFF2Format","parse_Dimensions","parse_XLHeaderFooter","parse_ExternName","fBuiltIn","fWantAdvise","fWantPict","fOle","fOleLink","fIcon","sbcch","udfName","parse_AddinUdf","Name","parse_Lbl","chKey","cce","itab","npflen","rgce","rgcb","parse_Rgce","parse_RgbExtra","parse_NameParsedFormula","parse_ExternSheet","parse_BIFF5ExternSheet","parse_Array","parse_ArrayParsedFormula","parse_BIFF5OT","cchName","parse_ColInfo","cellStyles","colFirst","colLast","coldx","level","parse_Blank","parse_Scl","parse_String","DBF_SUPPORTED_VERSIONS","DBF","dbf_codepage_map","dbf_reverse_map","dbf_to_sheet","ft","vfp","l7","nrow","fpos","rlen","current_cp","codepage","fields","field","hend","hi","lo","sheetRows","dbf_to_aoa","wch","_RLEN","to_workbook","bookType","to_sheet","from_sheet","old_cp","ba","aoa","sheet_to_json","headers","cols","hcnt","coltypes","colwidths","coldecimals","guess","_guess","hf","_f","hb","rout","_l","SYLK","sylk_escapes","AA","BA","CA","DA","HA","JA","AE","BE","CE","HE","AI","BI","CI","HI","AO","BO","CO","DO","HO","AU","BU","CU","HU","Aa","Ba","Ca","Da","Ha","Ja","Ae","Be","Ce","He","Ai","Bi","Ci","Hi","Ao","Bo","Co","Do","Ho","Au","Bu","Cu","Hu","KC","Kc","DN","Dn","Hy","sylk_char_regex","sylk_char_fn","_","decode_sylk_char","newcc","sylk_to_aoa_str","records","rj","formats","next_cell_format","sht","rowinfo","colinfo","cw","Mval","wb","Workbook","WBProps","Names","rstr","record","d1904","nn","Sheet","Ref","rc_to_a1","C_seen_K","C_seen_X","C_seen_S","C_seen_E","formula","cell_t","cmnt","cellText","shrbase","shift_formula_str","F_seen","hpt","hpx","pt2px","process_col","write_ws_cell_sylk","F","a1_to_rc","write_ws_cmnt_sylk","aoasht","sylk_to_aoa","outwb","_formats","RS","ifmt","rec","wpx","width2px","px2char","rows","px2pt","write_ws_rows_sylk","DIF","dif_to_aoa_str","metadata","dif_to_sheet","dif_to_aoa","make_value","make_value_str","ETH","eth_to_sheet","eth_to_aoa","sep","meta","sheet_to_eth_data","coord","PRN","set_text_arr","guess_seps","guess_sep_weights","guess_sep","instr","dsv_to_sheet_str","FS","sepcc","startcc","_re","lastIndex","dateNF_regex","finish_cell","news","Y","datestr","timestr","dateNF_fix","cellNF","outer","prn_to_sheet_str","lines","prn_to_aoa_str","prn_to_sheet","firstbyte","WK_","lotushopper","Enum","WK1Enum","LOTUS_DATE_FMTS","lotus_to_workbook_buf","next_n","sidx","snames","realnames","sdata","refguess","lastcell","DENSE","FMTS","QPWNFTable","book_append_sheet","CC","fmtidx","delta","newcell","qpw_to_workbook_buf","vers","qpro","works","works2","tmpcell","WK3Enum","osheets","rnames","parse_cell","get_wk1_fmt","write_LABEL","write_INTEGER","write_NUMBER","wk1_parse_rc","FuncTab","BinOpTab","parse_cell_3","write_LABEL_16","wsidx","parse_NUMBER_17","v1","v2","write_NUMBER_17","log2","parse_NUMBER_27","parse_SHEETNAMECS","write_XFORMAT_SHEETNAME","argc","argL","argR","wk1_fmla_to_csf","sheet_to_wk1","write_biff_rec","write_BOF_WK1","write_RANGE","max_R","dc","book_to_wk3","wscnt","write_BOF_WK3","parse_rs","tregex","rpregex","parse_r","rpr","font","pass","shadow","strike","uval","family","valign","parse_rpr","rregex","rend","rs","rs_to_html","nlregex","r_to_html","terms","intro","outro","parse_rpr2","sitregex","sirregex","sirphregex","parse_si","html","cellHTML","sstr0","sstr1","sstr2","_JS2ANSI","parse_CRYPTOVersion","Major","Minor","parse_DataSpaceMapEntry","comps","parse_Primary","hdr","U","W","parse_TransformInfoHeader","ename","cmode","parse_EncryptionHeader","Flags","AlgID","AlgIDHash","KeySize","ProviderType","CSPName","parse_EncryptionVerifier","Salt","Verifier","VerifierHash","parse_EncInfoStd","parse_EncInfoExt","parse_EncInfoAgl","KeyData","xml","encryptedHmacKey","encryptedHmacValue","encs","uri","crypto_CreatePasswordVerifier_Method1","Password","PasswordArray","PasswordDecoded","crypto_CreateXorArray_Method1","PadArray","InitialCode","XorMatrix","XorRor","byte1","byte2","Byte","Temp","PasswordLastChar","PadIndex","XorKey","CurrentElement","Char","CreateXorKey_Method1","Index","ObfuscationArray","crypto_MakeXorDecryptor","XorArrayIndex","XorArray","Data","O","Value","crypto_DecryptData_Method1","parse_FilePassHeader","Info","EncryptionVersionInfo","EncryptedVerifier","EncryptedVerifierHash","parse_RC4Header","EncryptionHeader","EncryptionVerifier","parse_RC4CryptoHeader","rtf_to_sheet_str","rowtf","rtfre","last_index","exec","rtf_to_workbook","rtf_to_sheet","rgb2Hex","rgb_tint","hex","tint","hsl","G","H6","L2","rgb2HSL","hex2RGB","X","hsl2RGB","MDW","px","char2width","chr","cycle_width","collw","find_mdw_colw","_MDW","coll","customWidth","pt","XLMLPatternTypeMap","cellXF_uint","cellXF_bool","parse_sty_xml","numFmtRegex","cellXfRegex","fillsRegex","fontsRegex","bordersRegex","themes","NumberFmt","formatCode","parse_numFmts","Fonts","bold","italic","underline","condense","vertAlign","scheme","auto","indexed","icv","themeElements","clrScheme","parse_fonts","Fills","patternType","bgColor","fgColor","parse_fills","Borders","diagonalUp","diagonalDown","parse_borders","xf","CellXf","alignment","textRotation","indent","wrapText","parse_cellXfs","parse_BrtFill","parse_BrtBorder","XLSXThemeClrScheme","parse_clrScheme","lastClr","parse_fontScheme","parse_fmtScheme","clrsregex","fntsregex","fmtsregex","themeltregex","parse_theme_xml","write_theme","parse_themeElements","Themes","themeXLSX","parse_FullColorExt","xclrType","nTintShade","xclrValue","parse_IcvXF","parse_ColorTheme","parse_ExtProp","extType","parse_XFExtGradient","shapevmlregex","sheet_insert_comments","comments","threaded","people","comment","author","parse_BrtCommentAuthor","rcregex","rcbase","rcfunc","fstr","crefregex","$0","$4","$5","shift_formula_xlsx","_xlfn","parseread1","parse_ColRelU","parse_RgceArea","parse_RgceArea_BIFF2","parse_RgceLoc","parse_RgceLoc_BIFF2","parse_RgceElfLoc","fQuoted","parse_PtgAttrBaxcel","bitSemi","parse_PtgAttrSpaceType","parse_SerAr","parse_PtgExtraMem","count","parse_PtgExtraArray","parse_PtgElfLoc","parse_PtgElfNoop","parse_PtgElfLel","PtgListRT","PtgTypes","iftab","FtabArgc","Ftab","cparams","parsetab","Cetab","nameindex","rl","parse_RgceLocRel_BIFF2","cl","parse_RgceLocRel","parse_RgceAreaRel","ixti","parse_PtgNameX_BIFF5","PtgDupes","Ptg18","coltype","rt","Ptg19","bitIf","bitGoto","ptgs","stringify_array","PtgBinOp","PtgAdd","PtgConcat","PtgDiv","PtgEq","PtgGe","PtgGt","PtgLe","PtgLt","PtgMul","PtgNe","PtgPower","PtgSub","make_3d_range","get_ixti_raw","supbooks","XTI","SID","get_ixti","ixtiraw","stringify_formula","stack","nameidx","last_sp","sp","fflen","lbl","names","xlfn","externbook","bookidx","ixtidata","lp","rp","sharedf","parsedf","fnd","arrayf","_left","parse_SharedParsedFormula","parse_Formula","parse_FormulaValue","cbf","parse_XLSCellParsedFormula","shared","parse_XLSBParsedFormula","parse_XLSBArrayParsedFormula","parse_XLSBCellParsedFormula","parse_XLSBNameParsedFormula","parse_XLSBSharedParsedFormula","32","34","35","36","83","84","85","86","87","88","89","90","91","92","93","94","95","96","97","98","99","101","102","103","104","105","106","107","108","109","110","111","112","113","114","115","116","117","118","119","120","121","122","124","125","126","127","131","132","133","135","137","138","139","140","142","143","144","145","146","147","148","149","150","151","152","153","155","159","164","166","167","168","169","170","171","172","173","174","175","185","187","188","189","190","191","192","193","194","195","196","197","198","199","201","202","203","206","207","208","209","210","211","212","213","214","215","216","217","218","219","220","223","224","225","226","227","228","229","240","243","249","250","251","252","253","254","256","259","260","265","266","267","268","269","272","273","274","276","277","278","279","280","281","282","283","284","285","288","289","290","291","292","293","295","296","297","298","302","305","306","307","308","309","310","311","312","313","314","315","316","318","319","320","321","322","323","324","325","328","330","336","338","339","342","343","344","350","352","354","355","356","370","373","374","375","376","377","378","379","380","381","382","383","384","385","386","388","390","391","392","393","394","395","396","397","398","399","412","413","414","415","416","417","420","421","422","423","424","425","430","431","432","433","434","435","436","437","438","439","440","441","442","443","444","445","446","447","448","449","450","451","452","453","454","455","456","458","459","460","461","462","463","464","465","466","467","468","469","470","471","472","473","474","475","476","477","478","480","481","482","485","489","491","493","494","495","509","510","511","517","518","519","520","521","522","523","545","546","547","548","549","620","621","647","653","667","673","753","755","808","33","123","141","154","156","157","158","160","165","176","179","180","181","182","183","184","205","221","230","231","232","233","234","235","236","237","239","241","242","244","245","246","247","248","257","258","261","262","263","264","270","271","275","286","287","294","299","301","303","304","317","326","327","329","331","332","334","335","337","340","341","345","346","347","348","349","351","353","357","358","359","360","361","362","363","364","365","366","367","368","369","371","372","387","389","401","402","403","404","405","406","407","408","409","410","411","418","419","426","427","428","429","457","724","479","483","484","65535","ods_to_csf_formula","ods_to_csf_3D","strs","_ssfopts","default_margins","margins","defs","safe_format","fmtid","fillid","raw_rgb","mergecregex","sheetdataregex","hlinkregex","dimregex","colregex","afregex","marginregex","sheetprregex","sheetprregex2","svsregex","parse_ws_xml","data1","data2","mtch","sheetPr","parse_ws_xml_sheetpr","parse_ws_xml_sheetpr2","nodim","parse_ws_xml_dim","svs","Views","sviewregex","zoomScale","zoom","rightToLeft","RTL","parse_ws_xml_sheetviews","columns","seencol","coli","colm","colM","outlineLevel","parse_ws_xml_cols","parse_ws_xml_data","afilter","parse_ws_xml_autofilter","merges","_merge","hlink","location","Rel","rng","parse_ws_xml_hlinks","parse_ws_xml_margins","tmpref","codeName","CodeName","cellregex","rowregex","isregex","refregex","match_v","match_f","sstr","ftag","cells","cref","tagr","tagc","do_format","rowobj","rowrite","marr","marrlen","xlen","rstarti","outa","ht","rslice","cellFormula","___f","_tag","fillId","cm","xlmeta","Cell","_r","parse_BrtWsDim","parse_BrtShortReal","parse_BrtMergeCell","BrtMarginKeys","parse_chart","csheet","nc","num","nf","parse_Cache","WBPropsDef","WBViewDef","SheetDef","CalcPrDef","push_defaults_array","defaults","push_defaults","parse_wb_defaults","CalcPr","WBView","badchars","check_ws_name","wbnsregex","parse_BrtFRTArchID$","ArchID","parse_wb","xmlns","Ptg","parse_wb_bin","dname","dnstart","Hidden","Comment","localSheetId","parse_wb_xml","parse_ws","ai","af","vm","RR","aii","relId","rfx","above","parse_ws_bin","parse_cs","parse_cs_bin","parse_cs_xml","parse_sty","parse_sty_bin","parse_sst","Count","Unique","parse_sst_bin","sst","uniqueCount","parse_sst_xml","parse_cmnt","authors","iauthor","parse_comments_bin","commentList","authtag","cmnttag","authorId","guid","textMatch","parse_comments_xml","parse_cc","parse_cc_bin","parse_cc_xml","parse_xlink","parse_xlink_bin","parse_xlmeta","Types","metatype","parse_xlmeta_bin","lastmeta","parse_xlmeta_xml","XLMLFormatMap","attregexg2","attregex2","xlml_parsexmltag","words","xlml_parsexmltagobj","xlml_set_custprop","Custprops","oval","safe_format_xlml","xlml_format","process_style_xlml","stag","Interior","I","Pattern","ID","parse_xlml_data","csty","sid","StyleID","interiors","Parent","Formula","ArrayRange","xlml_clean_comment","parse_xlml_xml","Rn","opening","ishtml","_o","html_to_sheet","html_to_workbook","sheetnames","cursheet","sheetname","dtag","didx","fidx","pidx","cstys","wsprops","raw_Rn3","HRef","HRefScreenTip","MergeAcross","MergeDown","cma","cmd","AutoFitHeight","Height","Format","ssfidx","Width","_col","Span","_NamedRange","_DefinedName","RefersTo","AutoFilter","Range","parse_fods","Margin","pagemargins","Top","Left","Right","Bottom","bookSheets","bookProps","SSF","parse_xlml","fix_read_opts","parse_compobj","AnsiUserType","AnsiClipboardFormat","parse_ClipboardFormatOrAnsiString","Reserved1","UnicodeClipboardFormat","parse_ClipboardFormatOrUnicodeString","Reserved2","CONTINUE_RT","slurp","RecordType","insitu","nextrt","XLSRecordEnum","ll","safe_format_xf","make_cell","parse_workbook","rngC","rngR","temp_val","country","Directory","last_formula","cur_sheet","Preamble","last_cell","XFs","biff4w","get_rgb","addcell","file_depth","xfd","icvFore","icvBack","process_cell_style","afi","rrtabid","lastuser","winlocked","wtf","objects","last_lbl","last_RT","BIFF2Fmt","BIFF2FmtTable","FilterDatabases","seen_codepage","Date1904","WriteProtect","cpval","CalcRefMode","FullCalc","fDialog","fBelow","fRight","ExternCount","tmpri","biffguess","fakebs8","hs","rknum","rkrec","_fr","_fc","_fe","_arraystart","isst","_j","_ixfe","b4idx","b2idx","cmo","lastobj","TxO","ImData","noteobj","xfe","Strings","Encryption","Metadata","Country","PSCLSID","parse_xlscfb","CompObj","WorkbookP","bookVBA","vbaraw","newcfb","newpath","make_vba_xls","DSI","DocSummary","SI","Summary","HeadingPairs","TitlesOfParts","parse_xls_props","bookFiles","grbit","fBold","fItalic","fUnderline","fStrikeout","fOutline","fShadow","fCondense","fExtend","parse_FontFlags","bCharSet","charset","xColorType","nTS","bR","bG","bB","parse_BrtColor","ixfeParent","defaultThemeVersion","strName","autoCompressPictures","backupFile","checkCompatibility","filterPrivacy","hidePivotFieldList","promptedSolutions","publishItems","refreshAllConnections","saveExternalLinkValues","showBorderUnselectedTables","showInkAnnotation","showObjects","showPivotChartFilter","updateLinks","iTabID","strRelID","fAlwaysCalc","idObj","parse_NoteSh","verificationBytes","verifier","parse_XORObfuscation","dyHeight","fl","Pos","Dim","CurTab","FirstTab","Selected","TabRatio","UserName","fts","parse_BIFF5Obj","parse_FtArray","ccv","rw","rkrecs","lastcol","ixfes","fStyle","alc","fWrap","alcV","fJustLast","trot","cIndent","fShrinkToFit","iReadOrder","fAtrNum","fAtrFnt","fAtrAlc","fAtrBdr","fAtrPat","fAtrProt","dgLeft","dgRight","dgTop","dgBottom","icvLeft","icvRight","grbitDiag","icvTop","icvBottom","icvDiag","dgDiag","fsxButton","parse_CellStyleXF","cmcs","ucnt","extsst","dsst","ctab","virtPath","rgst","texts","accel","parse_ControlInfo","cchText","sVer","targetFrameName","moniker","oleMoniker","fileTime","Loc","parse_Hyperlink","xnum","cUse","wzTooltip","cxfs","crc","cexts","cchComment","themeXML","parse_frtHeader","area","bestart","env","lcb","mtch2","hd","midx","colspan","rowspan","_t","parse_text_p","parse_ods_styles","_nfm","number_format_map","NFtag","NF","tNF","etpos","tidx","parse_content_xml","nfidx","sheetag","rowtag","ctag","textp","textpidx","oldtextp","oldtextpidx","textR","oldtextR","row_ol","mrange","rowpeat","colpeat","atag","_Ref","creator","creatoridx","isstub","intable","rptR","rpt","annotag","xlmlidx","styletag","nrange","ptp","parse_ods","FEtag","parse_manifest","Styles","u8_to_dataview","DataView","byteOffset","byteLength","u8str","u8","u8concat","u8a","popcnt","parse_varint49","ptr","varint","varint_to_i32","i32","parse_shallow","mappa","parse_iwa_file","_a","messages","mi","parse_snappy_chunk","chunks","clen","u8i","decompress_iwa_file","numbers_format_cell","ofmt","nfmt","_b","_c","ver","dur","dstyle","dmin","dmax","autodur","dstr","zstr","parse_new_storage","lut","dv","getUint32","doff","zidx","d128","ieee","exp","mantissa","readDecimal128LE","getFloat64","rts","rsst","cmntidx","iwa","replies","reply","iwa_to_s5s_comment","parse_cell_storage","parse_old_storage","parse_TSP_Reference","parse_TST_TableDataList","pb","entries","le","rtp","rtpref","mtype","tswpsa","richtext","sfields","smartfields","sf","_a2","_b2","attr","objtype","parse_TSD_CommentStorageArchive","_g","_h","csp","asp","pi","parse_TST_Tile","_k","_m","used_storage_u8","used_storage","wide_offsets","used_storage_offsets","getUint16","parse_TST_TileRowInfo","nrows","parse_TST_TableInfoArchive","tableref","dws","store","fmla","ferr","tile","tl","ref2","mtype2","_tile","parse_TST_TableModelArchive","parse_TN_DocumentArchive","root2","parse_TN_SheetArchive","parse_numbers_iwa","indices","packets","packet","docroot","iwam","fix_opts_func","parse_sheet_legacy_drawing","draw","cidx","aidx","ObjectType","ws_get_cell_stub","parse_vml","safe_parse_sheet","relsPath","sheetRels","stype","dfile","drelsp","chartp","parse_drawing","crelsp","parse_ds","tcomments","personId","parse_tcmnt_xml","strip_front_slash","_zip","getzipbin","index_zip","Bun","readSync","binname","workbooks","charts","dialogs","macros","threadedcomments","links","coreprops","extprops","custprops","calcchains","vba","drawings","TODO","ctext","Extension","ContentType","PartName","calcchain","parse_ct","xlsb","link","propdata","parse_ext_props","toks","parse_cust_props","deps","bookDeps","wbsheets","wbext","wbrelsi","wbrelsfile","wbrels","displayname","parse_people_xml","safe_parse_wbrels","nmode","wsloop","snjseen","snj","Deps","bin","parse_xlsxcfb","parse_DataSpaceVersionInfo","dsm","parse_DataSpaceMap","seds","parse_DataSpaceDefinition","einfo","parse_EncryptionInfo","decrypt_agile","decrypt_std76","read_plaintext","read_utf16","utf16lereadu","read_prn","Deno","$","File","Folder","infile","open","read_binary","bstrify","ab","vu","foo","read_cfb","OLD_WTF","read_wb_ID","read_zip","read_plaintext_raw","make_json_row","defval","isempty","__rowNum__","rawNumbers","outi","counter","header_cnt","skipHidden","blankrows","RC","roll","_arrayLikeToArray","arr2","IconButton","_props$edge","edge","edgeStart","edgeEnd","centerRipple","flex","Function","_unsupportedIterableToArray","minLen","mobileStepper","speedDial","appBar","drawer","modal","snackbar","getScrollbarSize","scrollbarSize","SwitchBase","checkedProp","checked","checkedIcon","defaultChecked","disabledProp","inputProps","inputRef","onBlur","onChange","onFocus","required","_useControlled","_useControlled2","setCheckedState","hasLabelFor","newChecked","cursor","isAbsolute","pathname","spliceOne","list","resolvePathname","to","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","last","part","unshift","invariant","addLeadingSlash","stripBasename","prefix","hasBasename","stripTrailingSlash","createPath","createLocation","currentLocation","hashIndex","searchIndex","parsePath","decodeURI","URIError","createTransitionManager","prompt","listeners","setPrompt","nextPrompt","confirmTransitionTo","getUserConfirmation","appendListener","listener","notifyListeners","getConfirmation","confirm","getHistoryState","history","createBrowserHistory","globalHistory","canUseHistory","ua","userAgent","supportsHistory","needsHashChangeListener","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","basename","getDOMLocation","historyState","_window$location","createKey","transitionManager","handlePopState","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","ok","fromLocation","toLocation","toIndex","allKeys","fromIndex","go","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","isBlocked","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","unblock","listen","unlisten","Paper","_props$square","square","_props$elevation","elevation","rounded","elevations","TableRow","_props$hover","_props$selected","CardContent","paddingBottom","getChildMapping","mapFn","isValidElement","mapper","getProp","getNextChildMapping","prevChildMapping","nextChildMapping","prev","getValueForKey","nextKeysPending","pendingKeys","prevKey","childMapping","nextKey","pendingNextKey","mergeChildMappings","hasPrev","hasNext","prevChild","isLeaving","TransitionGroup","handleExited","contextValue","firstRender","_proto","mounted","currentChildMapping","_this$props","childFactory","TransitionGroupContext","Provider","Ripple","_props$pulsate","pulsate","rippleX","rippleY","rippleSize","inProp","_props$onExited","leaving","setLeaving","rippleClassName","ripple","rippleVisible","ripplePulsate","rippleStyles","childClassName","childLeaving","childPulsate","timeoutId","TouchRipple","_props$center","center","centerProp","ripples","setRipples","rippleCallback","ignoringMouseDown","startTimer","startTimerCommit","startCommit","params","oldRipples","_options$pulsate","_options$center","_options$fakeElement","fakeElement","clientX","clientY","touches","sqrt","sizeX","sizeY","stop","animationDuration","buttonRefProp","buttonRef","_props$centerRipple","_props$disableRipple","disableRipple","_props$disableTouchRi","disableTouchRipple","_props$focusRipple","onFocusVisible","onKeyUp","onMouseDown","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","onDragLeave","_props$tabIndex","TouchRippleProps","rippleRef","setFocusVisible","_useIsFocusVisible","focusVisibleRef","useRippleHandler","rippleAction","eventCallback","skipRippleAction","handleMouseDown","handleDragLeave","handleMouseUp","handleMouseLeave","handleTouchStart","handleTouchEnd","handleTouchMove","handleBlur","handleFocus","currentTarget","isNonNativeButton","keydownRef","handleKeyUp","defaultPrevented","ComponentProp","buttonProps","handleUserRef","handleOwnRef","handleRef","_React$useState2","mountedState","setMountedState","enableTouchRipple","WebkitTapHighlightColor","borderStyle","colorAdjust","requirePropFactory","componentNameInError","unsupportedProp","propFullName","normalizeHeaderName","enhanceError","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","transitional","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","adapter","XMLHttpRequest","getDefaultAdapter","transformRequest","rawValue","parser","encoder","stringifySafely","transformResponse","strictJSONParsing","responseType","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","timeoutDuration","longerTimeoutBrowsers","isBrowser","called","scheduled","functionToCheck","getStyleComputedProperty","nodeType","css","getParentNode","nodeName","host","getScrollParent","overflowX","overflowY","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","getOffsetParent","documentElement","noOffsetParent","offsetParent","nextElementSibling","getRoot","findCommonOffsetParent","element1","element2","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","createRange","setStart","setEnd","commonAncestorContainer","firstElementChild","isOffsetContainer","element1root","getScroll","side","upperSide","scrollingElement","includeScroll","subtract","scrollLeft","modifier","getBordersSize","axis","sideA","sideB","getSize","computedStyle","getWindowSizes","getClientRect","sizes","horizScrollbar","vertScrollbar","getOffsetRectRelativeToArbitraryNode","parent","fixedPosition","runIsIE","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerHeight","isFixed","getFixedPositionOffsetParent","parentElement","getBoundaries","boundaries","boundariesNode","isPaddingNumber","getArea","computeAutoPlacement","refRect","rects","sortedAreas","filteredAreas","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","getOppositePlacement","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","runModifiers","ends","findIndex","update","isDestroyed","originalPlacement","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","some","getSupportedPropertyName","prefixes","upperProp","toCheck","removeAttribute","willChange","disableEventListeners","removeOnDestroy","getWindow","setupEventListeners","updateBound","passive","scrollElement","attachToScrollParents","scrollParents","isBody","enableEventListeners","isNumeric","setStyles","isFirefox","isModifierRequired","requestingName","requestedName","requesting","requested","validPlacements","clockwise","reverse","BEHAVIORS","parseOffset","basePlacement","useHeight","fragments","frag","splitRegex","ops","op","mergeWithPrevious","toValue","index2","shiftvariation","isVertical","shiftOffsets","transformProp","popperStyles","priority","escapeWithReference","opSide","arrowElement","sideCapitalized","altSide","arrowElementSize","popperMarginSide","popperBorderSide","sideValue","flipped","placementOpposite","flipOrder","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","subtractLength","bound","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","devicePixelRatio","prefixedProperty","invertTop","invertLeft","arrowStyles","modifierOptions","requestAnimationFrame","Defaults","jquery","onLoad","Utils","global","PopperUtils","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","objectToString","isObjectLike","isSymbol","isBinary","iter","DialogTitle","_props$disableTypogra","disableTypography","DialogContent","_props$dividers","dividers","WebkitOverflowScrolling","paddingTop","borderTop","DialogActions","_props$disableSpacing","disableSpacing","defaultTransitionDuration","Dialog","BackdropProps","_props$disableBackdro","disableBackdropClick","_props$disableEscapeK","disableEscapeKeyDown","_props$fullScreen","fullScreen","_props$maxWidth","onBackdropClick","onClose","onEscapeKeyDown","_props$PaperComponent","PaperComponent","_props$PaperProps","PaperProps","_props$scroll","scroll","_props$TransitionComp","TransitionComponent","_props$transitionDura","TransitionProps","ariaDescribedby","ariaLabelledby","mouseDownTarget","BackdropComponent","closeAfterTransition","paperFullScreen","paperFullWidth","scrollPaper","scrollBody","paperScrollPaper","maxHeight","paperScrollBody","paperWidthFalse","paperWidthXs","paperWidthSm","paperWidthMd","paperWidthLg","paperWidthXl","MenuItem","_props$disableGutters","disableGutters","ListItemClasses","_props$role","tabIndexProp","ListItem","appearStatus","nodeRef","forceReflow","_ref2","maybeNode","maybeAppearing","enterTimeout","config","doesNotHaveTimeoutOrListener","_ref3","maybeNextCallback","contextType","propIsEnumerable","toObject","test1","getOwnPropertyNames","test2","test3","letter","shouldUseNative","encodeURIComponent","paramsSerializer","serializedParams","hashmarkIndex","request","response","isAxiosError","toJSON","description","fileName","lineNumber","columnNumber","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","requestData","requestHeaders","auth","username","unescape","Authorization","btoa","fullPath","baseURL","onloadend","responseHeaders","getAllResponseHeaders","responseText","statusText","onreadystatechange","readyState","responseURL","onabort","onerror","ontimeout","timeoutErrorMessage","xsrfValue","withCredentials","setRequestHeader","onDownloadProgress","onUploadProgress","upload","cancelToken","promise","abort","send","__CANCEL__","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","mergeDeepProperties","axiosKeys","otherKeys","Cancel","factory","noGlobal","getProto","flat","class2type","fnToString","ObjectFunctionString","support","isWindow","preservedScriptAttributes","nonce","noModule","DOMEval","script","toType","jQuery","selector","isArrayLike","toArray","pushStack","elems","prevObject","each","elem","first","even","grep","_elem","odd","copyIsArray","deep","expando","isReady","proto","Ctor","isEmptyObject","globalEval","makeArray","results","inArray","second","invert","callbackExpect","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","preferredDoc","dirruns","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","pushNative","booleans","whitespace","identifier","pseudos","rwhitespace","rtrim","rcomma","rleadingCombinator","rdescend","rpseudo","ridentifier","matchExpr","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","escape","nonHex","high","rcssescape","fcssescape","ch","asCodePoint","unloadHandler","inDisabledFieldset","addCombinator","nid","groups","newSelector","newContext","getElementById","getElementsByTagName","getElementsByClassName","qsa","testContext","toSelector","qsaError","cacheLength","markFunction","assert","addHandle","attrHandle","siblingCheck","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","matchIndexes","namespace","namespaceURI","hasCompare","subWindow","attachEvent","cssHas","createComment","getById","getElementsByName","attrId","getAttributeNode","innerHTML","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","adown","bup","compare","sortDetached","aup","ap","bp","expr","elements","specified","sel","uniqueSort","duplicates","detectDuplicates","sortStable","firstChild","nodeValue","selectors","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","what","_argument","simple","forward","ofType","_context","uniqueCache","outerCache","nodeIndex","useCache","lastChild","uniqueID","pseudo","setFilters","matcher","unmatched","lang","elemLang","hasFocus","selectedIndex","_matchIndexes","radio","checkbox","image","reset","tokens","combinator","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","filters","parseOnly","soFar","preFilters","cached","setMatchers","elementMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","matcherFromGroupMatchers","token","compiled","_name","unique","isXMLDoc","escapeSelector","until","truncate","is","siblings","rneedsContext","needsContext","rsingleTag","winnow","qualifier","not","rootjQuery","parseHTML","ready","rparentsprev","guaranteedUnique","contents","sibling","targets","closest","prevAll","add","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","rnothtmlwhite","Identity","Thrower","ex","adoptValue","noValue","Callbacks","flag","createOptions","firing","memory","fired","locked","queue","firingIndex","fire","once","stopOnFalse","remove","empty","disable","lock","fireWith","Deferred","tuples","always","deferred","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","special","mightThrow","notifyWith","resolveWith","exceptionHook","stackTrace","rejectWith","getStackHook","stateString","when","singleValue","remaining","resolveContexts","resolveValues","updateFunc","rerrorNames","readyException","readyList","completed","catch","readyWait","doScroll","access","chainable","emptyGet","bulk","rmsPrefix","rdashAlpha","fcamelCase","_all","camelCase","acceptData","owner","uid","hasData","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","getData","removeData","_removeData","dequeue","startLength","hooks","_queueHooks","setter","clearQueue","defer","pnum","rcssNum","cssExpand","isAttached","composed","getRootNode","isHiddenWithinTree","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","showHide","rcheckableType","rtagName","rscriptType","div","createDocumentFragment","checkClone","cloneNode","noCloneChecked","option","wrapMap","thead","tr","td","getAll","setGlobalEval","refElements","tbody","tfoot","colgroup","th","optgroup","buildFragment","scripts","ignored","wrap","attached","fragment","htmlPrefilter","createTextNode","rtypenamespace","returnTrue","returnFalse","expectSync","safeActiveElement","on","one","origFn","leverageNative","notAsync","saved","isTrigger","delegateType","stopImmediatePropagation","Event","handleObjIn","eventHandle","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","bindType","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","isImmediatePropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","addProp","hook","originalEvent","load","noBubble","beforeunload","returnValue","isDefaultPrevented","relatedTarget","timeStamp","isSimulated","bubbles","cancelable","changedTouches","detail","eventPhase","pageX","pageY","view","buttons","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","blur","mouseenter","mouseleave","pointerenter","pointerleave","related","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","valueIsFunction","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","rnumnonpx","rcustomProp","getStyles","opener","swap","old","rboxStyle","rtrimCSS","curCSS","computed","isCustomProp","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","pixelBoxStylesVal","boxSizingReliableVal","scrollboxSizeVal","measure","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","trChild","trStyle","borderBottomWidth","cssPrefixes","emptyStyle","vendorProps","finalPropName","final","cssProps","capName","vendorPropName","rdisplayswap","cssShow","cssNormalTransform","setPositiveNumber","boxModelAdjustment","dimension","box","isBorderBox","computedVal","getWidthOrHeight","valueIsBorderBox","offsetProp","getClientRects","Tween","cssHooks","origName","setProperty","scrollboxSizeBuggy","suffix","expanded","propHooks","run","eased","fx","linear","swing","cos","PI","fxNow","inProgress","rfxtypes","rrun","schedule","tick","createFxNow","genFx","includeWidth","createTween","Animation","tweeners","stopped","prefilters","currentTime","startTime","tweens","specialEasing","originalProperties","originalOptions","gotoEnd","propFilter","complete","timer","anim","tweener","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","prefilter","speed","opt","speeds","fadeTo","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","attrNames","getter","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","addClass","curValue","finalValue","removeClass","toggleClass","stateVal","isValidValue","hasClass","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","triggerHandler","attaches","rquery","parseXML","parserErrorElem","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","param","valueOrFunction","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","lastModified","etag","isLocal","protocol","processData","async","contentType","accepts","json","responseFields","converters","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeadersNames","strAbort","getResponseHeader","overrideMimeType","mimeType","finalText","crossDomain","hasContent","ifModified","beforeSend","nativeStatusText","responses","isSuccess","modified","finalDataType","firstDataType","ajaxHandleResponses","conv2","conv","dataFilter","throws","ajaxConvert","getJSON","getScript","wrapAll","wrapInner","htmlIsFunction","unwrap","visible","xhr","xhrSuccessStatus","1223","xhrSupported","cors","errorCallback","xhrFields","onload","binary","scriptAttrs","scriptCharset","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","win","pageYOffset","pageXOffset","parentOffset","scrollTo","defaultExtra","funcName","unbind","delegate","undelegate","fnOver","fnOut","proxy","holdReady","hold","parseJSON","_jQuery","_$","noConflict","reactIs","REACT_STATICS","getDefaultProps","getDerivedStateFromError","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","objectPrototype","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","_iterableToArray","_arrayWithHoles","_nonIterableRest","freeGlobal","freeSelf","objectProto","nativeObjectToString","symToStringTag","toStringTag","baseGetTag","isOwn","unmasked","getRawTag","isarray","pathToRegexp","tokensToFunction","tokensToRegExp","PATH_REGEXP","defaultDelimiter","delimiter","escaped","capture","asterisk","partial","repeat","optional","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","pretty","segment","attachKeys","sensitive","strict","route","endsWithDelimiter","regexpToRegexp","arrayToRegexp","stringToRegexp","formatMuiErrorMessage","getScale","entering","entered","Grow","_props$disableStrictM","disableStrictModeCompat","_props$timeout","autoTimeout","enableStrictModeCompat","unstable_strictMode","foreignRef","normalizedTransitionCallback","nodeOrAppearing","handleEntering","handleEnter","_getTransitionProps","handleEntered","handleExiting","handleExit","_getTransitionProps2","nodeOrNext","maybeNext","muiSupportAuto","defaultTimeout","webkitTransition","_props$invisible","invisible","TableContainer","_props$padding","_props$stickyHeader","borderCollapse","borderSpacing","captionSide","TableHead","TableBody","getAnchorEl","anchorEl","defaultPopperOptions","_props$disablePortal","disablePortal","_props$keepMounted","keepMounted","_props$placement","initialPlacement","_props$popperOptions","popperOptions","popperRefProp","popperRef","_props$transition","tooltipRef","ownRef","handlePopperRef","handlePopperRefRef","exited","setExited","rtlPlacement","flipPlacement","setPlacement","handleOpen","handlePopperUpdate","PopperJs","preventOverflow","handleClose","SPACINGS","GRID_SIZES","getOffset","Grid","_props$alignContent","alignContent","_props$alignItems","classNameProp","_props$container","_props$direction","_props$item","justify","_props$justifyContent","_props$lg","_props$md","_props$sm","_props$spacing","_props$wrap","_props$xl","_props$xs","_props$zeroMinWidth","zeroMinWidth","StyledGrid","flexWrap","generateGutter","accumulator","globalStyles","flexBasis","flexGrow","generateGrid","collapsedHeight","_props$collapsedSize","collapsedSize","collapsedSizeProp","wrapperRef","autoTransitionDuration","wrapperHeight","duration2","wrapper","wrapperInner","getStyleValue","TextareaAutosize","rowsMax","rowsMinProp","rowsMin","maxRowsProp","maxRows","_props$minRows","minRows","minRowsProp","shadowRef","renders","syncHeight","inputShallow","placeholder","singleRowHeight","outerHeight","outerHeightStyle","handleResize","InputBase","autoComplete","endAdornment","_props$inputComponent","inputComponent","_props$inputProps","inputPropsProp","inputRefProp","_props$multiline","multiline","renderSuffix","valueProp","handleInputRefWarning","handleInputPropsRefProp","handleInputRefProp","handleInputRef","focused","setFocused","fcs","onFilled","onEmpty","checkDirty","InputComponent","setAdornedStart","formControl","adornedStart","adornedEnd","marginDense","onAnimationStart","animationName","inputMultiline","hiddenLabel","inputHiddenLabel","inputAdornedStart","inputAdornedEnd","inputTypeSearch","inputMarginDense","placeholderHidden","placeholderVisible","resize","ThemeContext","useContext","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","E","refs","updater","forceUpdate","isPureReactComponent","J","__self","__source","$$typeof","_owner","keyPrefix","aa","N","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","ReactCurrentOwner","IsSomeRendererActing","Fragment","Profiler","PureComponent","StrictMode","Suspense","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","Consumer","createFactory","createRef","lazy","_ctor","_status","_result","useCallback","useDebugValue","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useState","onError","da","ea","fa","ha","ia","ja","la","ma","na","ka","pa","qa","ra","sa","extractEvents","eventTypes","ta","phasedRegistrationNames","registrationName","va","wa","dependencies","xa","ya","za","stateNode","Ea","Fa","Ga","Ia","Ka","La","Ma","Na","Oa","Pa","Qa","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","Ua","Va","xlinkHref","Wa","Xa","Sa","Ra","setAttributeNS","Ya","Za","$a","bb","db","eb","fb","gb","ib","jb","kb","lb","mb","nb","qb","_debugOwner","_debugSource","return","rb","sb","xb","_valueTracker","stopTracking","tb","yb","zb","_wrapperState","initialChecked","Ab","initialValue","Bb","Cb","Db","Eb","Gb","Fb","Hb","defaultSelected","Ib","dangerouslySetInnerHTML","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","MSApp","execUnsafeLocalFunction","Rb","Sb","animationend","animationiteration","animationstart","transitionend","Ub","Vb","Wb","Xb","Yb","Zb","$b","ac","bc","Map","alternate","effectTag","ec","memoizedState","dehydrated","fc","hc","ic","jc","kc","lc","_dispatchListeners","_dispatchInstances","isPersistent","release","mc","srcElement","correspondingUseElement","oc","pc","qc","topLevelType","targetInst","ancestors","rc","eventSystemFlags","sc","containerInfo","tc","uc","vc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","blockedOn","Lc","delete","Mc","Nc","Pc","unstable_runWithPriority","hydrate","Qc","Rc","Sc","Uc","unstable_scheduleCallback","unstable_NormalPriority","Vc","Wc","Yc","Zc","$c","ad","bubbled","captured","eventPriority","bd","cd","unstable_UserBlockingPriority","ed","fd","gd","Oc","jd","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flexPositive","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","orphans","tabSize","widows","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","kd","ld","nd","menuitem","br","embed","img","keygen","track","wbr","od","pd","qd","rd","sd","ud","vd","xd","HTMLIFrameElement","contentWindow","yd","contentEditable","Dd","Ed","Fd","Gd","__html","Hd","Jd","Kd","previousSibling","Ld","Md","Nd","Od","Pd","Qd","Rd","Sd","dispatchConfig","Ud","_targetInst","Vd","Wd","Xd","Yd","Zd","$d","ae","be","Interface","eventPool","fe","destructor","de","getPooled","cancelBubble","isTrusted","ge","he","ie","je","ke","me","ne","oe","beforeInput","compositionEnd","compositionStart","compositionUpdate","pe","qe","se","ve","locale","te","char","ue","we","xe","ye","change","ze","De","Ee","Fe","Ge","detachEvent","Ie","Je","Ke","Le","Me","_isInputEventSupported","Ne","Oe","Alt","Control","Meta","Shift","Pe","getModifierState","Qe","Re","Se","Ue","Ve","fromElement","movementX","movementY","We","pressure","tangentialPressure","tiltX","tiltY","twist","isPrimary","Xe","pointerEnter","pointerLeave","Ye","$e","bf","df","gf","jf","selectionStart","selectionEnd","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","kf","onSelect","lf","elapsedTime","pseudoElement","mf","clipboardData","of","pf","Esc","Spacebar","Up","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","qf","rf","dataTransfer","tf","uf","vf","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","wf","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","yf","zf","Af","Bf","Cf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Df","Ef","Ff","Gf","__reactInternalMemoizedMergedChildContext","Hf","If","Jf","Kf","unstable_cancelCallback","Lf","unstable_requestPaint","Mf","unstable_now","Nf","unstable_getCurrentPriorityLevel","Of","unstable_ImmediatePriority","Pf","Qf","Rf","unstable_LowPriority","Sf","unstable_IdlePriority","Uf","unstable_shouldYield","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","mg","ng","og","pg","childExpirationTime","qg","firstContext","expirationTime","rg","sg","observedBits","responders","tg","ug","updateQueue","baseState","baseQueue","pending","effects","vg","wg","suspenseConfig","xg","yg","zg","Ag","Bg","Cg","Dg","Eg","Fg","Jg","_reactInternalFiber","Gg","Hg","Ig","Kg","shouldComponentUpdate","Lg","Mg","Ng","Og","Pg","_stringRef","Qg","Rg","lastEffect","nextEffect","firstEffect","Sg","Tg","elementType","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","dh","eh","fh","gh","hh","memoizedProps","revealOrder","ih","responder","jh","kh","lh","mh","nh","oh","ph","qh","rh","sh","uh","vh","wh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","readContext","useResponder","useDeferredValue","useTransition","Oh","Ph","Qh","Rh","Sh","Th","pendingProps","Uh","Vh","Wh","Xh","Yh","Zh","$h","bi","ci","ei","gi","pendingContext","ni","qi","ii","retryTime","ji","fallback","unstable_avoidThisFallback","ki","li","isBackwards","rendering","renderingStartTime","tail","tailExpiration","tailMode","wasMultiple","multiple","onclick","createElementNS","ti","ui","vi","wi","xi","yi","zi","WeakSet","Set","Fi","Ei","Gi","__reactInternalSnapshotBeforeUpdate","Ii","Ji","Ki","Li","Di","Mi","Ni","Oi","Pi","Qi","_reactRootContainer","Ri","Si","Ti","Ui","Vi","Wi","Xi","Yi","Zi","$i","componentDidCatch","aj","componentStack","Rj","bj","cj","dj","kj","lj","mj","nj","oj","qj","sj","tj","uj","vj","wj","timeoutMs","xj","yj","zj","lastExpiredTime","Aj","firstPendingTime","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","callbackPriority","callbackNode","Bj","Cj","Dj","Ej","Fj","Gj","Hj","finishedWork","finishedExpirationTime","lastSuspendedTime","Ij","timeoutHandle","Jj","busyMinDurationMs","busyDelayMs","Kj","Mj","Nj","pingCache","Oj","ub","Pj","Xc","Qj","Sj","firstSuspendedTime","rangeCount","activeElementDetached","focusedElem","selectionRange","Tj","wd","removeAllRanges","addRange","vb","Uj","Vj","Wj","ob","Xj","unstable_observedBits","Zj","pendingChildren","ak","bk","ck","dk","ek","fk","Jc","_internalRoot","gk","ik","hasAttribute","hk","jk","kk","unmount","Lj","lk","Events","findFiberByHostInstance","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","Yj","overrideHookState","overrideProps","setSuspenseHandler","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","bundleType","rendererPackageName","flushSync","unstable_batchedUpdates","unstable_createPortal","MessageChannel","unstable_forceFrameRate","performance","cancelAnimationFrame","port2","port1","onmessage","postMessage","sortIndex","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","secret","getShim","ReactPropTypes","symbol","objectOf","exact","checkPropTypes","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Lazy","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","Axios","mergeConfig","createInstance","defaultConfig","axios","instanceConfig","CancelToken","isCancel","all","promises","spread","InterceptorManager","dispatchRequest","validators","interceptors","assertOptions","boolean","requestInterceptorChain","synchronousRequestInterceptors","interceptor","runWhen","synchronous","fulfilled","rejected","responseInterceptorChain","chain","newConfig","getUri","use","eject","transformData","throwIfCancellationRequested","throwIfRequested","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","runClearTimeout","Item","nextTick","title","browser","argv","addListener","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","binding","cwd","chdir","umask","normalizedName","expires","domain","secure","cookie","toGMTString","decodeURIComponent","isAbsoluteURL","combineURLs","requestedURL","relativeURL","ignoreDuplicateOf","originURL","msie","urlParsingNode","resolveURL","hostname","port","requestURL","pkg","thing","deprecatedWarnings","currentVerArr","isOlderVersion","thanVersion","pkgVersionArr","destVer","isDeprecated","formatMessage","schema","allowUnknown","executor","resolvePromise","base64","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","RangeError","encodingOrOffset","fromArrayLike","fromArrayBuffer","isEncoding","actual","fromString","fromObject","assertSize","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","readUInt16BE","foundIndex","found","hexWrite","strLen","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","utf16leToBytes","fromByteArray","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","decodeCodePointsArray","SlowBuffer","INSPECT_MAX_BYTES","typedArraySupport","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","swap16","swap32","swap64","equals","thisStart","thisEnd","thisCopy","targetCopy","includes","toHex","checkOffset","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","readUIntBE","readUInt8","readUInt16LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","leadSurrogate","toByteArray","stringtrim","base64clean","b64","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","len2","encodeChunk","lookup","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","makeStylesWithoutDefault","mapEventPropToEvent","eventProp","ClickAwayListener","_props$disableReactTr","disableReactTree","_props$mouseEvent","mouseEvent","onClickAway","_props$touchEvent","touchEvent","movedRef","activatedRef","syntheticEventRef","handleClickAway","insideReactTree","clickedRootScrollbar","insideDOM","composedPath","createHandleSynthetic","handlerName","childrenPropsHandler","childrenProps","mappedTouchEvent","mappedMouseEvent","onRendered","mountNode","setMountNode","DialogContentText","nextItem","disableListWrap","previousItem","previousElementSibling","textCriteriaMatches","nextFocus","textCriteria","innerText","repeating","moveFocus","disabledItemsFocusable","traversalFunction","wrappedOnce","nextFocusDisabled","MenuList","actions","_props$autoFocus","_props$autoFocusItem","autoFocusItem","_props$disabledItemsF","_props$disableListWra","listRef","textCriteriaRef","previousKeyMatched","lastTime","adjustStyleForScrollbar","containerElement","noExplicitWidth","activeItemIndex","newChildProps","List","criteria","lowerKey","currTime","keepFocusOnCurrent","_props$dense","_props$disablePadding","disablePadding","subheader","listStyle","CircularProgress","_props$disableShrink","disableShrink","_props$thickness","thickness","_props$value","circleStyle","rootStyle","rootProps","circumference","determinate","indeterminate","svg","SIZE","circleDisableShrink","circleDeterminate","circleIndeterminate","circleStatic","cx","cy","stroke","_props$raised","raised","avatar","subheaderProp","subheaderTypographyProps","titleProp","titleTypographyProps","alignSelf","_props$button","childrenProp","componentProp","_props$ContainerCompo","ContainerComponent","_props$ContainerProps","ContainerProps","ContainerClassName","_props$divider","childContext","listItemRef","hasSecondaryAction","alignItemsFlexStart","secondaryAction","Divider","_props$absolute","absolute","_props$flexItem","flexItem","_props$light","_props$orientation","orientation","inset","middle","plainObjectConstrurctor","cloneStyle","newStyle","createRule","decl","jss","declCopy","rule","plugins","onCreateRule","by","toCssValue","cssValue","getWhitespaceSymbols","linebreak","indentStr","toCss","_options$indent","fallbacks","_getWhitespaceSymbols","_prop","_value","_prop2","_value2","allowEmpty","escapeRegex","nativeEscape","CSS","BaseStyleRule","isProcessed","Renderer","renderer","force","onChangeValue","isEmpty","isDefined","renderable","removeProperty","StyleRule","_BaseStyleRule","scoped","generateId","selectorText","_proto2","applyTo","setSelector","replaceRule","pluginStyleRule","defaultToStringOptions","atRegExp","ConditionalRule","atMatch","at","query","rules","RuleList","getRule","addRule","onProcessRule","newRule","keyRegExp","pluginConditionalRule","defaultToStringOptions$1","nameRegExp","KeyframesRule","frames","nameMatch","keyRegExp$1","refRegExp","findReferencedKeyframe","keyframes","replaceRef","refKeyframe","pluginKeyframesRule","onProcessStyle","KeyframeRule","pluginKeyframeRule","FontFaceRule","keyRegExp$2","pluginFontFaceRule","ViewportRule","pluginViewportRule","SimpleRule","keysMap","defaultUpdateOptions","forceUpdateOptions","ruleOptions","_this$options","register","oldRule","oldIndex","nameOrSelector","unregister","updateOne","_this$options2","nextValue","_nextValue","_prevValue","StyleSheet","deployed","attach","deploy","insertRule","deleteRule","addRules","added","_this$rules","PluginsRegistry","internal","registry","onProcessSheet","processedValue","newPlugin","plugin","SheetsRegistry","globalThis$1","globalThis","ns","moduleId","createGenerateId","ruleCounter","jssId","minify","cssRule","attributeStyleMap","indexOfImportantFlag","cssValueWithoutImportantFlag","getHead","findPrevNode","insertionPoint","findHigherSheet","findHighestSheet","findCommentNode","getNonce","_insertRule","appendRule","cssRules","getValidRuleInsertionIndex","maxIndex","DomRenderer","hasInsertedRules","media","createStyle","nextNode","insertionPointElement","insertStyle","insertRules","nativeParent","latestNativeParent","_insertionIndex","refCssRule","ruleStr","insertionIndex","nativeRule","getRules","instanceCounter","Jss","isInBrowser","createStyleSheet","removeStyleSheet","createJss","hasCSSTOMSupport","multiKeyStore","key1","key2","subCache","hasSymbol","pseudoClasses","fnValuesNs","fnRuleNs","functionPlugin","fnValues","styleRule","fnRule","GlobalContainerRule","GlobalPrefixedRule","separatorRegExp","addScope","jssGlobal","handleNestedGlobalContainerRule","handlePrefixedGlobalRule","parentRegExp","jssNested","getReplaceRef","replaceParentRefs","nestedProp","parentProp","parentSelectors","nestedSelectors","nested","getOptions","prevOptions","nestingLevel","isNested","isNestedConditional","uppercasePattern","msPattern","toHyphenLower","hyphenateStyleName","hName","convertCase","converted","hyphenate","hyphenatedProp","ms","addCamelCasedVersion","regExp","motion","perspective","gap","grid","iterate","innerProp","_innerProp","defaultUnit","camelCasedOptions","js","vendor","isTouch","jsCssMap","Moz","Webkit","appearence","noPrefill","supportedProperty","toUpper","camelize","pascalize","mask","textOrientation","writingMode","breakPropsOld","inlineLogicalOld","newProp","unprefixed","prefixed","pascalized","scrollSnap","overscrollBehavior","propMap","flex2012","propMap$1","propKeys","prefixCss","propertyDetectors","key$1","el$1","cache$1","transitionProperties","transPropsRegExp","prefixTransitionCallback","p1","p2","prefixedValue","supportedValue","cacheKey","jssVendorPrefixer","prefixStyle","changeProp","supportedProp","changeValue","supportedValue$1","atRule","jssPropsSort","prop0","prop1","jssPreset","functions","vendorPrefixer","propsSort","defaultOptions","disableGeneration","generateClassName","_options$disableGloba","disableGlobal","_options$productionPr","productionPrefix","_options$seed","seedPrefix","getNextCounterId","styleSheet","createGenerateClassName","sheetsCache","sheetsManager","sheetsRegistry","StylesContext","indexCounter","increment","getStylesCreator","themingEnabled","stylesWithOverrides","noopTheme","getClasses","cacheClasses","lastProp","lastJSS","generate","mergeClasses","baseClasses","newClasses","stylesCreator","sheetManager","staticSheet","dynamicStyles","serverGenerateClassName","getDynamicStyles","extracted","dynamicSheet","_ref4","useSynchronousEffect","currentKey","classNamePrefixOption","_options$defaultTheme","stylesOptions2","shouldUpdate","ariaHidden","getPaddingRight","ariaHiddenSiblings","currentNode","nodesToExclude","blacklistTagNames","findIndexOf","handleContainer","fixedNodes","restoreStyle","restorePaddings","disableScrollLock","isOverflowing","scrollContainer","ModalManager","modals","containers","modalIndex","modalRef","hiddenSiblingNodes","hiddenSiblings","getHiddenSiblings","containerIndex","restore","nextTop","Unstable_TrapFocus","_props$disableAutoFoc","disableAutoFocus","_props$disableEnforce","disableEnforceFocus","_props$disableRestore","disableRestoreFocus","getDoc","isEnabled","ignoreNextEnforceFocus","sentinelStart","sentinelEnd","nodeToRestore","rootRef","prevOpenRef","contain","loopFocus","SimpleBackdrop","defaultManager","inProps","_props$BackdropCompon","_props$closeAfterTran","_props$disableScrollL","_props$hideBackdrop","hideBackdrop","_props$manager","manager","mountNodeRef","getHasTransition","getModal","handleMounted","mount","resolvedContainer","isTopModal","handlePortalRef","inlineStyle","TrapFocus","SnackbarContent","emphasis","Snackbar","_props$anchorOrigin","anchorOrigin","_props$autoHideDurati","autoHideDuration","ClickAwayListenerProps","ContentProps","_props$disableWindowB","disableWindowBlurListener","resumeHideDuration","timerAutoHide","setAutoHideTimer","autoHideDurationParam","handlePause","handleResume","top1","bottom1","top3","bottom3","right3","left3","anchorOriginTopCenter","anchorOriginBottomCenter","anchorOriginTopRight","anchorOriginBottomRight","anchorOriginTopLeft","anchorOriginBottomLeft","Avatar","imgProps","srcSet","loaded","setLoaded","Image","useLoaded","hasImg","hasImgNotFailing","Person","system","colorDefault","circular","objectFit","textIndent","AppBar","_props$position","backgroundColorDefault","positionAbsolute","positionSticky","positionStatic","positionRelative","colorTransparent","nextClasses","isModifiedEvent","Link","handleClick","router","disableUnderline","bottomLineColor","borderBottomColor","borderBottomStyle","FilledInput","borderTopLeftRadius","borderTopRightRadius","WebkitBoxShadow","WebkitTextFillColor","caretColor","FormControl","_props$error","visuallyFocused","_props$hiddenLabel","_props$margin","_props$required","initialAdornedStart","initialFilled","filled","setFilled","_React$useState3","_focused","registerEffect","marginNormal","_props$row","Fab","extended","sizeMedium","FormControlLabel","control","_props$labelPlacement","labelPlacement","controlProps","labelPlacementStart","labelPlacementTop","labelPlacementBottom","ListItemText","_props$inset","primaryProp","primaryTypographyProps","secondaryProp","secondaryTypographyProps","hystersisOpen","hystersisTimer","_props$arrow","_props$disableFocusLi","disableFocusListener","_props$disableHoverLi","disableHoverListener","_props$disableTouchLi","disableTouchListener","_props$enterDelay","enterDelay","_props$enterNextDelay","enterNextDelay","_props$enterTouchDela","enterTouchDelay","idProp","_props$interactive","interactive","_props$leaveDelay","leaveDelay","_props$leaveTouchDela","leaveTouchDelay","onOpen","openProp","_props$PopperComponen","PopperComponent","PopperProps","childNode","setChildNode","setArrowRef","ignoreNonTouchEvents","closeTimer","enterTimer","leaveTimer","touchTimer","openState","setOpenState","onMouseOver","childIsFocusVisible","setChildIsFocusVisible","handleLeave","detectTouchStart","handleUseRef","handleFocusRef","shouldShowNativeTitle","interactiveWrapperListeners","mergedPopperProps","popperInteractive","popperArrow","placementInner","TransitionPropsInner","touch","tooltipArrow","wordWrap","tooltipPlacementLeft","tooltipPlacementRight","tooltipPlacementTop","tooltipPlacementBottom","ListItemIcon","extendStatics","__extends","__","__assign","__awaiter","_arguments","generator","__generator","sent","trys","verb","__spreadArrays","il","jl","guidHolder","guidResponse","ClientAuthError","ClientAuthErrorMessage","ClientConfigurationError","ClientConfigurationErrorMessage","requestScopes","convertedCachedScopes","authEndpoint","pathArray","jsonResponse","policy","claims","BrowserStorage","idToken","AuthCache","ifr","Logger","logMessage","LogLevel","ServerError","ServerErrorMessage","InteractionRequiredAuthError","TelemetryEvent","API_CODE","API_EVENT_IDENTIFIER","apiCode","logger","verbose","ListSubheader","_props$disableSticky","disableSticky","isDeleteKeyboardEvent","keyboardEvent","Chip","avatarProp","clickableProp","clickable","deleteIconProp","deleteIcon","iconProp","onDelete","chipRef","handleDeleteIconClick","small","moreProps","customClasses","deleteIconSmall","CancelIcon","avatarSmall","iconSmall","deletable","labelSmall","deleteIconColor","clickableColorPrimary","clickableColorSecondary","deletableColorPrimary","deletableColorSecondary","avatarColorPrimary","avatarColorSecondary","iconColorPrimary","iconColorSecondary","deleteIconColorPrimary","deleteIconColorSecondary","deleteIconOutlinedColorPrimary","deleteIconOutlinedColorSecondary","stripDiacritics","normalize","comp","defaultFilterOptions","_config$ignoreAccents","ignoreAccents","_config$ignoreCase","ignoreCase","_config$matchFrom","matchFrom","_config$trim","inputValue","getOptionLabel","filteredOptions","candidate","createFilterOptions","useAutocomplete","_props$autoComplete","_props$autoHighlight","autoHighlight","_props$autoSelect","autoSelect","_props$blurOnSelect","blurOnSelect","_props$clearOnBlur","clearOnBlur","freeSolo","_props$clearOnEscape","clearOnEscape","_props$componentName","_props$debug","debug","_props$defaultValue","_props$disableClearab","disableClearable","_props$disableCloseOn","disableCloseOnSelect","_props$filterOptions","filterOptions","_props$filterSelected","filterSelectedOptions","_props$freeSolo","getOptionDisabled","_props$getOptionLabel","getOptionLabelProp","_props$getOptionSelec","getOptionSelected","groupBy","_props$handleHomeEndK","handleHomeEndKeys","_props$includeInputIn","includeInputInList","inputValueProp","_props$multiple","onHighlightChange","onInputChange","_props$openOnFocus","openOnFocus","_props$selectOnFocus","selectOnFocus","ignoreFocus","firstFocus","listboxRef","setAnchorEl","focusedTag","setFocusedTag","defaultHighlighted","highlightedIndexRef","_useControlled3","_useControlled4","setInputValue","resetInputValue","newInputValue","optionLabel","_useControlled5","_useControlled6","inputValueIsSelectedValue","popupOpen","value2","focusTag","tagToFocus","setHighlightedIndex","_ref2$reason","listboxNode","scrollBottom","elementBottom","offsetTop","changeHighlightedIndex","_ref3$direction","_ref3$reason","validOptionIndex","getNextIndex","setSelectionRange","syncHighlightedIndex","valueItem","currentOption","itemIndex","optionItem","handleListboxRef","handleValue","details","selectNewValue","reasonProp","handleFocusTag","nextTag","validTagIndex","handleClear","handleInputChange","handleOptionMouseOver","handleOptionTouchStart","handleOptionClick","handleTagDelete","handlePopupIndicator","handleInputMouseDown","dirty","groupedOptions","getRootProps","getInputLabelProps","getInputProps","autoCapitalize","spellCheck","getClearProps","getPopupIndicatorProps","getTagProps","getListboxProps","getOptionProps","_ref5","DisablePortal","CloseIcon","ArrowDropDownIcon","Autocomplete","ChipProps","_props$clearText","clearText","_props$closeIcon","_props$closeText","closeText","_props$forcePopupIcon","forcePopupIcon","_props$getLimitTagsTe","getLimitTagsText","_props$limitTags","limitTags","_props$ListboxCompone","ListboxComponent","ListboxProps","_props$loading","loading","_props$loadingText","loadingText","_props$noOptionsText","noOptionsText","_props$openText","openText","PopperComponentProp","_props$popupIcon","popupIcon","renderGroupProp","renderGroup","renderInput","renderOptionProp","renderOption","renderTags","_useAutocomplete","getCustomizedTagProps","tagSizeSmall","groupLabel","groupUl","renderListOption","optionProps","hasClearIcon","hasPopupIcon","InputLabelProps","InputProps","inputRoot","clearIndicator","clearIndicatorDirty","popupIndicator","popupIndicatorOpen","inputFocused","popperDisablePortal","noOptions","listbox","option2","_option","getOffsetTop","getOffsetLeft","getTransformOriginValue","anchorPosition","_props$anchorReferenc","anchorReference","containerProp","getContentAnchorEl","_props$marginThreshol","marginThreshold","_props$transformOrigi","transitionDurationProp","_props$TransitionProp","paperRef","getAnchorOffset","contentAnchorOffset","resolvedAnchorEl","anchorRect","anchorVertical","getContentAnchorOffset","contentAnchorEl","getTransformOrigin","elemRect","getPositioningStyle","elemTransformOrigin","containerWindow","heightThreshold","widthThreshold","_diff","_diff2","_diff3","setPositioningStyles","positioning","handlePaperRef","updatePosition","RTL_ORIGIN","LTR_ORIGIN","disableAutoFocusItem","_props$MenuListProps","MenuListProps","onEnteringProp","PopoverClasses","menuListActionsRef","contentAnchorRef","areEqualValues","SelectInput","autoWidth","displayEmpty","IconComponent","labelId","_props$MenuProps","MenuProps","renderValue","_props$SelectDisplayP","SelectDisplayProps","displayNode","setDisplayNode","isOpenControlled","menuMinWidthState","setMenuMinWidthState","isCollapsed","displaySingle","childrenArray","handleItemClick","displayMultiple","computeDisplay","menuMinWidth","buttonId","selectMenu","nativeInput","iconOpen","NativeSelectInput","iconFilled","iconOutlined","defaultInput","NativeSelect","_props$IconComponent","_props$input","nativeSelectStyles","Select","_props$autoWidth","_props$displayEmpty","_props$labelWidth","labelWidth","_props$native","native","variantProps","OutlinedInput","layer","RadioButtonUncheckedIcon","RadioButtonCheckedIcon","RadioGroupContext","defaultCheckedIcon","RadioButtonIcon","defaultIcon","Radio","nameProp","onChangeProp","radioGroup","Toolbar","regular","KeyboardArrowRight","KeyboardArrowLeft","TablePaginationActions","backIconButtonProps","nextIconButtonProps","_props$onChangePage","onChangePage","_props$onPageChange","onPageChange","page","rowsPerPage","defaultLabelDisplayedRows","defaultRowsPerPageOptions","TablePagination","colSpan","_props$ActionsCompone","ActionsComponent","_props$backIconButton","backIconButtonText","colSpanProp","_props$labelDisplayed","labelDisplayedRows","_props$labelRowsPerPa","labelRowsPerPage","_props$nextIconButton","nextIconButtonText","onChangeRowsPerPageProp","onChangeRowsPerPage","onRowsPerPageChangeProp","onRowsPerPageChange","_props$rowsPerPageOpt","rowsPerPageOptions","_props$SelectProps","SelectProps","selectId","MenuItemComponent","spacer","selectIcon","selectRoot","rowsPerPageOption","menuItem","textAlignLast","FormLabel","InputLabel","_props$disableAnimati","disableAnimation","shrinkProp","shrink","FormHelperText","variantComponent","TextField","FormHelperTextProps","helperText","_props$select","InputMore","notched","_InputLabelProps$requ","displayRequired","helperTextId","inputLabelId","InputElement","CheckBoxIcon","CheckBoxOutlineBlankIcon","defaultIndeterminateIcon","IndeterminateCheckBoxIcon","Checkbox","_props$checkedIcon","_props$icon","_props$indeterminate","_props$indeterminateI","indeterminateIcon","indeterminateIconProp","Router","computeMatch","isExact","BrowserRouter","createHistory","setTranslateValue","fakeTransform","transformValues","getTranslateValue","webkitTransform","Slide","childrenRef","handleRefIntermediary","oppositeDirection","Drawer","_props$anchor","anchor","anchorProp","_props$ModalProps","ModalProps","BackdropPropsProp","_props$open","SlideProps","isHorizontal","getAnchor","docked","slidingDrawer","paperAnchorLeft","paperAnchorRight","paperAnchorTop","paperAnchorBottom","paperAnchorDockedLeft","borderRight","paperAnchorDockedTop","paperAnchorDockedRight","borderLeft","paperAnchorDockedBottom","patternCache","cacheCount","compilePath","compiledPattern","matchPath","_options","_options$exact","_options$strict","_options$sensitive","_compilePath","isEmptyChildren","Route","computedMatch","nextContext","_context$router","staticContext","NotchedOutline","labelWidthProp","legendLabelled","legendNotched","legend","borderWidth","notchedOutline","TableSortLabel","_props$active","_props$hideSortIcon","hideSortIcon","ArrowDownwardIcon","iconDirectionDesc","iconDirectionAsc"],"mappings":"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GAAa,CAAEE,EAAG,YAAaF,EA1FrB,GA2FV,GAAa,CAAEE,EAAG,YAAaF,EAhErB,IAiEV,GAAa,CAAEE,EAAG,cAAeF,EAzDvB,IA0DV,GAAa,CAAEE,EAAG,cAAeF,EA7FvB,GA8FV,IAAa,GAEb,WAAmB,CAAEE,EAAG,SAAUF,EAnFxB,IAoFV,WAAmB,CAAEE,EAAG,WAAYF,EApF1B,IAqFV,WAAmB,IAIvByrE,GAAc,CACV,EAAe,KACf,EAAe,KACf,EAAe,GACf,EAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,MAAe,MAInBC,GAAiB,CACpB,KACA,QACA,aACA,WACA,YACA,iBACA,eACA,WACA,SACA,WACA,cACA,kBACA,gBACA,YACA,UACA,YACA,eACA,UACA,YAGD,SAASC,GAAOprE,GAA6D,OAAOA,EAAI6H,KAAI,SAAS8oC,GAAK,MAAO,CAAEA,GAAG,GAAI,IAAKA,GAAG,EAAG,IAAM,IAAFA,MAIzI,IA4FI06B,GAAsBnP,GA5FEkP,GAAO,CAElC,EACA,SACA,SACA,MACA,IACA,SACA,SACA,MAGA,EACA,SACA,SACA,MACA,IACA,SACA,SACA,MAEA,QACA,MACA,IACA,QACA,QACA,MACA,SACA,QACA,SACA,SACA,SACA,SACA,QACA,SACA,MACA,SAEA,IACA,SACA,SACA,MACA,QACA,QACA,MACA,IACA,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","file":"static/js/2.4b5a6ef2.chunk.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t 1 && arguments[1] !== undefined ? arguments[1] : {};\n return function (Component) {\n var defaultTheme = options.defaultTheme,\n _options$withTheme = options.withTheme,\n withTheme = _options$withTheme === void 0 ? false : _options$withTheme,\n name = options.name,\n stylesOptions = _objectWithoutProperties(options, [\"defaultTheme\", \"withTheme\", \"name\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n if (Component === undefined) {\n throw new Error(['You are calling withStyles(styles)(Component) with an undefined component.', 'You may have forgotten to import it.'].join('\\n'));\n }\n }\n\n var classNamePrefix = name;\n\n if (process.env.NODE_ENV !== 'production') {\n if (!name) {\n // Provide a better DX outside production.\n var displayName = getDisplayName(Component);\n\n if (displayName !== undefined) {\n classNamePrefix = displayName;\n }\n }\n }\n\n var useStyles = makeStyles(stylesOrCreator, _extends({\n defaultTheme: defaultTheme,\n Component: Component,\n name: name || Component.displayName,\n classNamePrefix: classNamePrefix\n }, stylesOptions));\n var WithStyles = /*#__PURE__*/React.forwardRef(function WithStyles(props, ref) {\n var classesProp = props.classes,\n innerRef = props.innerRef,\n other = _objectWithoutProperties(props, [\"classes\", \"innerRef\"]); // The wrapper receives only user supplied props, which could be a subset of\n // the actual props Component might receive due to merging with defaultProps.\n // So copying it here would give us the same result in the wrapper as well.\n\n\n var classes = useStyles(_extends({}, Component.defaultProps, props));\n var theme;\n var more = other;\n\n if (typeof name === 'string' || withTheme) {\n // name and withTheme are invariant in the outer scope\n // eslint-disable-next-line react-hooks/rules-of-hooks\n theme = useTheme() || defaultTheme;\n\n if (name) {\n more = getThemeProps({\n theme: theme,\n name: name,\n props: other\n });\n } // Provide the theme to the wrapped component.\n // So we don't have to use the `withTheme()` Higher-order Component.\n\n\n if (withTheme && !more.theme) {\n more.theme = theme;\n }\n }\n\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: innerRef || ref,\n classes: classes\n }, more));\n });\n process.env.NODE_ENV !== \"production\" ? WithStyles.propTypes = {\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * Use that prop to pass a ref to the decorated component.\n * @deprecated\n */\n innerRef: chainPropTypes(PropTypes.oneOfType([PropTypes.func, PropTypes.object]), function (props) {\n if (props.innerRef == null) {\n return null;\n }\n\n return null; // return new Error(\n // 'Material-UI: The `innerRef` prop is deprecated and will be removed in v5. ' +\n // 'Refs are now automatically forwarded to the inner component.',\n // );\n })\n } : void 0;\n\n if (process.env.NODE_ENV !== 'production') {\n WithStyles.displayName = \"WithStyles(\".concat(getDisplayName(Component), \")\");\n }\n\n hoistNonReactStatics(WithStyles, Component);\n\n if (process.env.NODE_ENV !== 'production') {\n // Exposed for test purposes.\n WithStyles.Naked = Component;\n WithStyles.options = options;\n WithStyles.useStyles = useStyles;\n }\n\n return WithStyles;\n };\n};\n\nexport default withStyles;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { withStyles as withStylesWithoutDefault } from '@material-ui/styles';\nimport defaultTheme from './defaultTheme';\n\nfunction withStyles(stylesOrCreator, options) {\n return withStylesWithoutDefault(stylesOrCreator, _extends({\n defaultTheme: defaultTheme\n }, options));\n}\n\nexport default withStyles;","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport { Component, createElement } from 'react';\nimport PropTypes from 'prop-types';\n\nvar Manager = function (_Component) {\n _inherits(Manager, _Component);\n\n function Manager() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Manager);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Manager.__proto__ || Object.getPrototypeOf(Manager)).call.apply(_ref, [this].concat(args))), _this), _this._setTargetNode = function (node) {\n _this._targetNode = node;\n }, _this._getTargetNode = function () {\n return _this._targetNode;\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Manager, [{\n key: 'getChildContext',\n value: function getChildContext() {\n return {\n popperManager: {\n setTargetNode: this._setTargetNode,\n getTargetNode: this._getTargetNode\n }\n };\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n tag = _props.tag,\n children = _props.children,\n restProps = _objectWithoutProperties(_props, ['tag', 'children']);\n\n if (tag !== false) {\n return createElement(tag, restProps, children);\n } else {\n return children;\n }\n }\n }]);\n\n return Manager;\n}(Component);\n\nManager.childContextTypes = {\n popperManager: PropTypes.object.isRequired\n};\nManager.propTypes = {\n tag: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func])\n};\nManager.defaultProps = {\n tag: 'div'\n};\n\n\nexport default Manager;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nimport { createElement } from 'react';\nimport PropTypes from 'prop-types';\n\nvar Target = function Target(props, context) {\n var _props$component = props.component,\n component = _props$component === undefined ? 'div' : _props$component,\n innerRef = props.innerRef,\n children = props.children,\n restProps = _objectWithoutProperties(props, ['component', 'innerRef', 'children']);\n\n var popperManager = context.popperManager;\n\n var targetRef = function targetRef(node) {\n popperManager.setTargetNode(node);\n if (typeof innerRef === 'function') {\n innerRef(node);\n }\n };\n\n if (typeof children === 'function') {\n var targetProps = { ref: targetRef };\n return children({ targetProps: targetProps, restProps: restProps });\n }\n\n var componentProps = _extends({}, restProps);\n\n if (typeof component === 'string') {\n componentProps.ref = targetRef;\n } else {\n componentProps.innerRef = targetRef;\n }\n\n return createElement(component, componentProps, children);\n};\n\nTarget.contextTypes = {\n popperManager: PropTypes.object.isRequired\n};\n\nTarget.propTypes = {\n component: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n innerRef: PropTypes.func,\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func])\n};\n\nexport default Target;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport { Component, createElement } from 'react';\nimport PropTypes from 'prop-types';\nimport PopperJS from 'popper.js';\n\nexport var placements = PopperJS.placements;\n\nvar Popper = function (_Component) {\n _inherits(Popper, _Component);\n\n function Popper() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Popper);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Popper.__proto__ || Object.getPrototypeOf(Popper)).call.apply(_ref, [this].concat(args))), _this), _this.state = {}, _this._setArrowNode = function (node) {\n _this._arrowNode = node;\n }, _this._getTargetNode = function () {\n if (_this.props.target) {\n return _this.props.target;\n } else if (!_this.context.popperManager || !_this.context.popperManager.getTargetNode()) {\n throw new Error('Target missing. Popper must be given a target from the Popper Manager, or as a prop.');\n }\n return _this.context.popperManager.getTargetNode();\n }, _this._getOffsets = function (data) {\n return Object.keys(data.offsets).map(function (key) {\n return data.offsets[key];\n });\n }, _this._isDataDirty = function (data) {\n if (_this.state.data) {\n return JSON.stringify(_this._getOffsets(_this.state.data)) !== JSON.stringify(_this._getOffsets(data));\n } else {\n return true;\n }\n }, _this._updateStateModifier = {\n enabled: true,\n order: 900,\n fn: function fn(data) {\n if (_this._isDataDirty(data)) {\n _this.setState({ data: data });\n }\n return data;\n }\n }, _this._getPopperStyle = function () {\n var data = _this.state.data;\n\n\n if (!_this._popper || !data) {\n return {\n position: 'absolute',\n pointerEvents: 'none',\n opacity: 0\n };\n }\n\n return _extends({\n position: data.offsets.popper.position\n }, data.styles);\n }, _this._getPopperPlacement = function () {\n return _this.state.data ? _this.state.data.placement : undefined;\n }, _this._getPopperHide = function () {\n return !!_this.state.data && _this.state.data.hide ? '' : undefined;\n }, _this._getArrowStyle = function () {\n if (!_this.state.data || !_this.state.data.offsets.arrow) {\n return {};\n } else {\n var _this$state$data$offs = _this.state.data.offsets.arrow,\n top = _this$state$data$offs.top,\n left = _this$state$data$offs.left;\n\n return { top: top, left: left };\n }\n }, _this._handlePopperRef = function (node) {\n _this._popperNode = node;\n if (node) {\n _this._createPopper();\n } else {\n _this._destroyPopper();\n }\n if (_this.props.innerRef) {\n _this.props.innerRef(node);\n }\n }, _this._scheduleUpdate = function () {\n _this._popper && _this._popper.scheduleUpdate();\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Popper, [{\n key: 'getChildContext',\n value: function getChildContext() {\n return {\n popper: {\n setArrowNode: this._setArrowNode,\n getArrowStyle: this._getArrowStyle\n }\n };\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(lastProps) {\n if (lastProps.placement !== this.props.placement || lastProps.eventsEnabled !== this.props.eventsEnabled || lastProps.target !== this.props.target) {\n this._destroyPopper();\n this._createPopper();\n }\n if (lastProps.children !== this.props.children) {\n this._scheduleUpdate();\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this._destroyPopper();\n }\n }, {\n key: '_createPopper',\n value: function _createPopper() {\n var _this2 = this;\n\n var _props = this.props,\n placement = _props.placement,\n eventsEnabled = _props.eventsEnabled,\n positionFixed = _props.positionFixed;\n\n var modifiers = _extends({}, this.props.modifiers, {\n applyStyle: { enabled: false },\n updateState: this._updateStateModifier\n });\n if (this._arrowNode) {\n modifiers.arrow = _extends({}, this.props.modifiers.arrow || {}, {\n element: this._arrowNode\n });\n }\n this._popper = new PopperJS(this._getTargetNode(), this._popperNode, {\n placement: placement,\n positionFixed: positionFixed,\n eventsEnabled: eventsEnabled,\n modifiers: modifiers\n });\n\n // TODO: look into setTimeout scheduleUpdate call, without it, the popper will not position properly on creation\n setTimeout(function () {\n return _this2._scheduleUpdate();\n });\n }\n }, {\n key: '_destroyPopper',\n value: function _destroyPopper() {\n if (this._popper) {\n this._popper.destroy();\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _props2 = this.props,\n component = _props2.component,\n innerRef = _props2.innerRef,\n placement = _props2.placement,\n eventsEnabled = _props2.eventsEnabled,\n positionFixed = _props2.positionFixed,\n modifiers = _props2.modifiers,\n children = _props2.children,\n restProps = _objectWithoutProperties(_props2, ['component', 'innerRef', 'placement', 'eventsEnabled', 'positionFixed', 'modifiers', 'children']);\n\n var popperStyle = this._getPopperStyle();\n var popperPlacement = this._getPopperPlacement();\n var popperHide = this._getPopperHide();\n\n if (typeof children === 'function') {\n var popperProps = {\n ref: this._handlePopperRef,\n style: popperStyle,\n 'data-placement': popperPlacement,\n 'data-x-out-of-boundaries': popperHide\n };\n return children({\n popperProps: popperProps,\n restProps: restProps,\n scheduleUpdate: this._scheduleUpdate\n });\n }\n\n var componentProps = _extends({}, restProps, {\n style: _extends({}, restProps.style, popperStyle),\n 'data-placement': popperPlacement,\n 'data-x-out-of-boundaries': popperHide\n });\n\n if (typeof component === 'string') {\n componentProps.ref = this._handlePopperRef;\n } else {\n componentProps.innerRef = this._handlePopperRef;\n }\n\n return createElement(component, componentProps, children);\n }\n }]);\n\n return Popper;\n}(Component);\n\nPopper.contextTypes = {\n popperManager: PropTypes.object\n};\nPopper.childContextTypes = {\n popper: PropTypes.object.isRequired\n};\nPopper.propTypes = {\n component: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n innerRef: PropTypes.func,\n placement: PropTypes.oneOf(placements),\n eventsEnabled: PropTypes.bool,\n positionFixed: PropTypes.bool,\n modifiers: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n target: PropTypes.oneOfType([\n // the following check is needed for SSR\n PropTypes.instanceOf(typeof Element !== 'undefined' ? Element : Object), PropTypes.shape({\n getBoundingClientRect: PropTypes.func.isRequired,\n clientWidth: PropTypes.number.isRequired,\n clientHeight: PropTypes.number.isRequired\n })])\n};\nPopper.defaultProps = {\n component: 'div',\n placement: 'bottom',\n eventsEnabled: true,\n positionFixed: false,\n modifiers: {}\n};\n\n\nexport default Popper;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nimport { createElement } from 'react';\nimport PropTypes from 'prop-types';\n\nvar Arrow = function Arrow(props, context) {\n var _props$component = props.component,\n component = _props$component === undefined ? 'span' : _props$component,\n innerRef = props.innerRef,\n children = props.children,\n restProps = _objectWithoutProperties(props, ['component', 'innerRef', 'children']);\n\n var popper = context.popper;\n\n var arrowRef = function arrowRef(node) {\n popper.setArrowNode(node);\n if (typeof innerRef === 'function') {\n innerRef(node);\n }\n };\n var arrowStyle = popper.getArrowStyle();\n\n if (typeof children === 'function') {\n var arrowProps = {\n ref: arrowRef,\n style: arrowStyle\n };\n return children({ arrowProps: arrowProps, restProps: restProps });\n }\n\n var componentProps = _extends({}, restProps, {\n style: _extends({}, arrowStyle, restProps.style)\n });\n\n if (typeof component === 'string') {\n componentProps.ref = arrowRef;\n } else {\n componentProps.innerRef = arrowRef;\n }\n\n return createElement(component, componentProps, children);\n};\n\nArrow.contextTypes = {\n popper: PropTypes.object.isRequired\n};\n\nArrow.propTypes = {\n component: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n innerRef: PropTypes.func,\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func])\n};\n\nexport default Arrow;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n","import isFunction from 'lodash.isfunction';\nimport PropTypes from 'prop-types';\n\n// https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.4/js/src/modal.js#L436-L443\nexport function getScrollbarWidth() {\n let scrollDiv = document.createElement('div');\n // .modal-scrollbar-measure styles // https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.4/scss/_modal.scss#L106-L113\n scrollDiv.style.position = 'absolute';\n scrollDiv.style.top = '-9999px';\n scrollDiv.style.width = '50px';\n scrollDiv.style.height = '50px';\n scrollDiv.style.overflow = 'scroll';\n document.body.appendChild(scrollDiv);\n const scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n}\n\nexport function setScrollbarWidth(padding) {\n document.body.style.paddingRight = padding > 0 ? `${padding}px` : null;\n}\n\nexport function isBodyOverflowing() {\n return document.body.clientWidth < window.innerWidth;\n}\n\nexport function getOriginalBodyPadding() {\n const style = window.getComputedStyle(document.body, null);\n\n return parseInt((style && style.getPropertyValue('padding-right')) || 0, 10);\n}\n\nexport function conditionallyUpdateScrollbar() {\n const scrollbarWidth = getScrollbarWidth();\n // https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.6/js/src/modal.js#L433\n const fixedContent = document.querySelectorAll(\n '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\n )[0];\n const bodyPadding = fixedContent\n ? parseInt(fixedContent.style.paddingRight || 0, 10)\n : 0;\n\n if (isBodyOverflowing()) {\n setScrollbarWidth(bodyPadding + scrollbarWidth);\n }\n}\n\nlet globalCssModule;\n\nexport function setGlobalCssModule(cssModule) {\n globalCssModule = cssModule;\n}\n\nexport function mapToCssModules(className = '', cssModule = globalCssModule) {\n if (!cssModule) return className;\n return className\n .split(' ')\n .map(c => cssModule[c] || c)\n .join(' ');\n}\n\n/**\n * Returns a new object with the key/value pairs from `obj` that are not in the array `omitKeys`.\n */\nexport function omit(obj, omitKeys) {\n const result = {};\n Object.keys(obj).forEach((key) => {\n if (omitKeys.indexOf(key) === -1) {\n result[key] = obj[key];\n }\n });\n return result;\n}\n\n/**\n * Returns a filtered copy of an object with only the specified keys.\n */\nexport function pick(obj, keys) {\n const pickKeys = Array.isArray(keys) ? keys : [keys];\n let length = pickKeys.length;\n let key;\n const result = {};\n\n while (length > 0) {\n length -= 1;\n key = pickKeys[length];\n result[key] = obj[key];\n }\n return result;\n}\n\nlet warned = {};\n\nexport function warnOnce(message) {\n if (!warned[message]) {\n /* istanbul ignore else */\n if (typeof console !== 'undefined') {\n console.error(message); // eslint-disable-line no-console\n }\n warned[message] = true;\n }\n}\n\nexport function deprecated(propType, explanation) {\n return function validate(props, propName, componentName, ...rest) {\n if (props[propName] !== null && typeof props[propName] !== 'undefined') {\n warnOnce(\n `\"${propName}\" property of \"${componentName}\" has been deprecated.\\n${explanation}`\n );\n }\n\n return propType(props, propName, componentName, ...rest);\n };\n}\n\nexport function DOMElement(props, propName, componentName) {\n if (!(props[propName] instanceof Element)) {\n return new Error(\n 'Invalid prop `' +\n propName +\n '` supplied to `' +\n componentName +\n '`. Expected prop to be an instance of Element. Validation failed.'\n );\n }\n}\n\nexport const targetPropType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n DOMElement,\n PropTypes.shape({ current: PropTypes.any })\n]);\n\n\n/* eslint key-spacing: [\"error\", { afterColon: true, align: \"value\" }] */\n// These are all setup to match what is in the bootstrap _variables.scss\n// https://github.com/twbs/bootstrap/blob/v4-dev/scss/_variables.scss\nexport const TransitionTimeouts = {\n Fade: 150, // $transition-fade\n Collapse: 350, // $transition-collapse\n Modal: 300, // $modal-transition\n Carousel: 600 // $carousel-transition\n};\n\n// Duplicated Transition.propType keys to ensure that Reactstrap builds\n// for distribution properly exclude these keys for nested child HTML attributes\n// since `react-transition-group` removes propTypes in production builds.\nexport const TransitionPropTypeKeys = [\n 'in',\n 'mountOnEnter',\n 'unmountOnExit',\n 'appear',\n 'enter',\n 'exit',\n 'timeout',\n 'onEnter',\n 'onEntering',\n 'onEntered',\n 'onExit',\n 'onExiting',\n 'onExited'\n];\n\nexport const TransitionStatuses = {\n ENTERING: 'entering',\n ENTERED: 'entered',\n EXITING: 'exiting',\n EXITED: 'exited'\n};\n\nexport const keyCodes = {\n esc: 27,\n space: 32,\n enter: 13,\n tab: 9,\n up: 38,\n down: 40\n};\n\nexport const PopperPlacements = [\n 'auto-start',\n 'auto',\n 'auto-end',\n 'top-start',\n 'top',\n 'top-end',\n 'right-start',\n 'right',\n 'right-end',\n 'bottom-end',\n 'bottom',\n 'bottom-start',\n 'left-end',\n 'left',\n 'left-start'\n];\n\nexport const canUseDOM = !!(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement\n);\n\nexport function isReactRefObj(target) {\n if (target && typeof target === 'object') {\n return 'current' in target;\n }\n return false;\n}\n\nexport function findDOMElements(target) {\n if (isReactRefObj(target)) {\n return target.current;\n }\n if (isFunction(target)) {\n return target();\n }\n if (typeof target === 'string' && canUseDOM) {\n let selection = document.querySelectorAll(target);\n if (!selection.length) {\n selection = document.querySelectorAll(`#${target}`);\n }\n if (!selection.length) {\n throw new Error(\n `The target '${target}' could not be identified in the dom, tip: check spelling`\n );\n }\n return selection;\n }\n return target;\n}\n\nexport function isArrayOrNodeList(els) {\n if (els === null) {\n return false;\n }\n return Array.isArray(els) || (canUseDOM && typeof els.length === 'number');\n}\n\n\nexport function getTarget(target) {\n const els = findDOMElements(target);\n if (isArrayOrNodeList(els)) {\n return els[0];\n }\n return els;\n}\n\nexport const defaultToggleEvents = ['touchstart', 'click'];\n\nexport function addMultipleEventListeners(_els, handler, _events) {\n let els = _els;\n if (!isArrayOrNodeList(els)) {\n els = [els];\n }\n\n let events = _events;\n if (typeof events === 'string') {\n events = events.split(/\\s+/);\n }\n\n if (\n !isArrayOrNodeList(els) ||\n typeof handler !== 'function' ||\n !Array.isArray(events)\n ) {\n throw new Error(`\n The first argument of this function must be DOM node or an array on DOM nodes or NodeList.\n The second must be a function.\n The third is a string or an array of strings that represents DOM events\n `);\n }\n events.forEach((event) => {\n els.forEach((el) => {\n el.addEventListener(event, handler);\n });\n });\n return function removeEvents() {\n events.forEach((event) => {\n els.forEach((el) => {\n el.removeEventListener(event, handler);\n });\n });\n };\n}\n\nexport const focusableElements = [\n 'a[href]',\n 'area[href]',\n 'input:not([disabled]):not([type=hidden])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n 'button:not([disabled])',\n 'object',\n 'embed',\n '[tabindex]:not(.modal)',\n 'audio[controls]',\n 'video[controls]',\n '[contenteditable]:not([contenteditable=\"false\"])',\n];\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n fluid: PropTypes.bool,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'div',\n};\n\nconst Container = (props) => {\n const {\n className,\n cssModule,\n fluid,\n tag: Tag,\n ...attributes\n } = props;\n\n const classes = mapToCssModules(classNames(\n className,\n fluid ? 'container-fluid' : 'container'\n ), cssModule);\n\n return (\n \n );\n};\n\nContainer.propTypes = propTypes;\nContainer.defaultProps = defaultProps;\n\nexport default Container;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n noGutters: PropTypes.bool,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n form: PropTypes.bool\n};\n\nconst defaultProps = {\n tag: 'div'\n};\n\nconst Row = (props) => {\n const {\n className,\n cssModule,\n noGutters,\n tag: Tag,\n form,\n ...attributes\n } = props;\n\n const classes = mapToCssModules(classNames(\n className,\n noGutters ? 'no-gutters' : null,\n form ? 'form-row' : 'row'\n ), cssModule);\n\n return (\n \n );\n};\n\nRow.propTypes = propTypes;\nRow.defaultProps = defaultProps;\n\nexport default Row;\n","import isobject from 'lodash.isobject';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, deprecated } from './utils';\n\nconst colWidths = ['xs', 'sm', 'md', 'lg', 'xl'];\nconst stringOrNumberProp = PropTypes.oneOfType([PropTypes.number, PropTypes.string]);\n\nconst columnProps = PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.number,\n PropTypes.string,\n PropTypes.shape({\n size: PropTypes.oneOfType([PropTypes.bool, PropTypes.number, PropTypes.string]),\n push: deprecated(stringOrNumberProp, 'Please use the prop \"order\"'),\n pull: deprecated(stringOrNumberProp, 'Please use the prop \"order\"'),\n order: stringOrNumberProp,\n offset: stringOrNumberProp\n })\n]);\n\nconst propTypes = {\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n xs: columnProps,\n sm: columnProps,\n md: columnProps,\n lg: columnProps,\n xl: columnProps,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n widths: PropTypes.array,\n};\n\nconst defaultProps = {\n tag: 'div',\n widths: colWidths,\n};\n\nconst getColumnSizeClass = (isXs, colWidth, colSize) => {\n if (colSize === true || colSize === '') {\n return isXs ? 'col' : `col-${colWidth}`;\n } else if (colSize === 'auto') {\n return isXs ? 'col-auto' : `col-${colWidth}-auto`;\n }\n\n return isXs ? `col-${colSize}` : `col-${colWidth}-${colSize}`;\n};\n\nconst Col = (props) => {\n const {\n className,\n cssModule,\n widths,\n tag: Tag,\n ...attributes\n } = props;\n const colClasses = [];\n\n widths.forEach((colWidth, i) => {\n let columnProp = props[colWidth];\n\n delete attributes[colWidth];\n\n if (!columnProp && columnProp !== '') {\n return;\n }\n\n const isXs = !i;\n\n if (isobject(columnProp)) {\n const colSizeInterfix = isXs ? '-' : `-${colWidth}-`;\n const colClass = getColumnSizeClass(isXs, colWidth, columnProp.size);\n\n colClasses.push(mapToCssModules(classNames({\n [colClass]: columnProp.size || columnProp.size === '',\n [`order${colSizeInterfix}${columnProp.order}`]: columnProp.order || columnProp.order === 0,\n [`offset${colSizeInterfix}${columnProp.offset}`]: columnProp.offset || columnProp.offset === 0\n }), cssModule));\n } else {\n const colClass = getColumnSizeClass(isXs, colWidth, columnProp);\n colClasses.push(colClass);\n }\n });\n\n if (!colClasses.length) {\n colClasses.push('col');\n }\n\n const classes = mapToCssModules(classNames(\n className,\n colClasses\n ), cssModule);\n\n return (\n \n );\n};\n\nCol.propTypes = propTypes;\nCol.defaultProps = defaultProps;\n\nexport default Col;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, deprecated } from './utils';\n\nconst propTypes = {\n light: PropTypes.bool,\n dark: PropTypes.bool,\n inverse: deprecated(PropTypes.bool, 'Please use the prop \"dark\"'),\n full: PropTypes.bool,\n fixed: PropTypes.string,\n sticky: PropTypes.string,\n color: PropTypes.string,\n role: PropTypes.string,\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n className: PropTypes.string,\n cssModule: PropTypes.object,\n toggleable: deprecated(PropTypes.oneOfType([PropTypes.bool, PropTypes.string]), 'Please use the prop \"expand\"'),\n expand: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n};\n\nconst defaultProps = {\n tag: 'nav',\n expand: false,\n};\n\nconst getExpandClass = (expand) => {\n if (expand === false) {\n return false;\n } else if (expand === true || expand === 'xs') {\n return 'navbar-expand';\n }\n\n return `navbar-expand-${expand}`;\n};\n\n// To better maintain backwards compatibility while toggleable is deprecated.\n// We must map breakpoints to the next breakpoint so that toggleable and expand do the same things at the same breakpoint.\nconst toggleableToExpand = {\n xs: 'sm',\n sm: 'md',\n md: 'lg',\n lg: 'xl',\n};\n\nconst getToggleableClass = (toggleable) => {\n if (toggleable === undefined || toggleable === 'xl') {\n return false;\n } else if (toggleable === false) {\n return 'navbar-expand';\n }\n\n return `navbar-expand-${toggleable === true ? 'sm' : (toggleableToExpand[toggleable] || toggleable)}`;\n};\n\nconst Navbar = (props) => {\n const {\n toggleable,\n expand,\n className,\n cssModule,\n light,\n dark,\n inverse,\n fixed,\n sticky,\n color,\n tag: Tag,\n ...attributes\n } = props;\n\n const classes = mapToCssModules(classNames(\n className,\n 'navbar',\n getExpandClass(expand) || getToggleableClass(toggleable),\n {\n 'navbar-light': light,\n 'navbar-dark': inverse || dark,\n [`bg-${color}`]: color,\n [`fixed-${fixed}`]: fixed,\n [`sticky-${sticky}`]: sticky,\n }\n ), cssModule);\n\n return (\n \n );\n};\n\nNavbar.propTypes = propTypes;\nNavbar.defaultProps = defaultProps;\n\nexport default Navbar;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'a'\n};\n\nconst NavbarBrand = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n ...attributes\n } = props;\n\n const classes = mapToCssModules(classNames(\n className,\n 'navbar-brand'\n ), cssModule);\n\n return (\n \n );\n};\n\nNavbarBrand.propTypes = propTypes;\nNavbarBrand.defaultProps = defaultProps;\n\nexport default NavbarBrand;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n type: PropTypes.string,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n children: PropTypes.node,\n};\n\nconst defaultProps = {\n tag: 'button',\n type: 'button'\n};\n\nconst NavbarToggler = (props) => {\n const {\n className,\n cssModule,\n children,\n tag: Tag,\n ...attributes\n } = props;\n\n const classes = mapToCssModules(classNames(\n className,\n 'navbar-toggler'\n ), cssModule);\n\n return (\n \n {children || }\n \n );\n};\n\nNavbarToggler.propTypes = propTypes;\nNavbarToggler.defaultProps = defaultProps;\n\nexport default NavbarToggler;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n tabs: PropTypes.bool,\n pills: PropTypes.bool,\n vertical: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n horizontal: PropTypes.string,\n justified: PropTypes.bool,\n fill: PropTypes.bool,\n navbar: PropTypes.bool,\n card: PropTypes.bool,\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'ul',\n vertical: false,\n};\n\nconst getVerticalClass = (vertical) => {\n if (vertical === false) {\n return false;\n } else if (vertical === true || vertical === 'xs') {\n return 'flex-column';\n }\n\n return `flex-${vertical}-column`;\n};\n\nconst Nav = (props) => {\n const {\n className,\n cssModule,\n tabs,\n pills,\n vertical,\n horizontal,\n justified,\n fill,\n navbar,\n card,\n tag: Tag,\n ...attributes\n } = props;\n\n const classes = mapToCssModules(classNames(\n className,\n navbar ? 'navbar-nav' : 'nav',\n horizontal ? `justify-content-${horizontal}` : false,\n getVerticalClass(vertical),\n {\n 'nav-tabs': tabs,\n 'card-header-tabs': card && tabs,\n 'nav-pills': pills,\n 'card-header-pills': card && pills,\n 'nav-justified': justified,\n 'nav-fill': fill,\n }\n ), cssModule);\n\n return (\n \n );\n};\n\nNav.propTypes = propTypes;\nNav.defaultProps = defaultProps;\n\nexport default Nav;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n active: PropTypes.bool,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'li'\n};\n\nconst NavItem = (props) => {\n const {\n className,\n cssModule,\n active,\n tag: Tag,\n ...attributes\n } = props;\n\n const classes = mapToCssModules(classNames(\n className,\n 'nav-item',\n active ? 'active' : false\n ), cssModule);\n\n return (\n \n );\n};\n\nNavItem.propTypes = propTypes;\nNavItem.defaultProps = defaultProps;\n\nexport default NavItem;\n","/* eslint react/no-find-dom-node: 0 */\n// https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-find-dom-node.md\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport { Manager } from 'react-popper';\nimport classNames from 'classnames';\nimport { mapToCssModules, omit, keyCodes, deprecated } from './utils';\n\nconst propTypes = {\n disabled: PropTypes.bool,\n dropup: deprecated(PropTypes.bool, 'Please use the prop \"direction\" with the value \"up\".'),\n direction: PropTypes.oneOf(['up', 'down', 'left', 'right']),\n group: PropTypes.bool,\n isOpen: PropTypes.bool,\n nav: PropTypes.bool,\n active: PropTypes.bool,\n addonType: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['prepend', 'append'])]),\n size: PropTypes.string,\n tag: PropTypes.string,\n toggle: PropTypes.func,\n children: PropTypes.node,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n inNavbar: PropTypes.bool,\n setActiveFromChild: PropTypes.bool,\n};\n\nconst defaultProps = {\n isOpen: false,\n direction: 'down',\n nav: false,\n active: false,\n addonType: false,\n inNavbar: false,\n setActiveFromChild: false\n};\n\nconst childContextTypes = {\n toggle: PropTypes.func.isRequired,\n isOpen: PropTypes.bool.isRequired,\n direction: PropTypes.oneOf(['up', 'down', 'left', 'right']).isRequired,\n inNavbar: PropTypes.bool.isRequired,\n};\n\nclass Dropdown extends React.Component {\n constructor(props) {\n super(props);\n\n this.addEvents = this.addEvents.bind(this);\n this.handleDocumentClick = this.handleDocumentClick.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.removeEvents = this.removeEvents.bind(this);\n this.toggle = this.toggle.bind(this);\n }\n\n getChildContext() {\n return {\n toggle: this.props.toggle,\n isOpen: this.props.isOpen,\n direction: (this.props.direction === 'down' && this.props.dropup) ? 'up' : this.props.direction,\n inNavbar: this.props.inNavbar,\n };\n }\n\n componentDidMount() {\n this.handleProps();\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.isOpen !== prevProps.isOpen) {\n this.handleProps();\n }\n }\n\n componentWillUnmount() {\n this.removeEvents();\n }\n\n getContainer() {\n return ReactDOM.findDOMNode(this);\n }\n\n addEvents() {\n ['click', 'touchstart', 'keyup'].forEach(event =>\n document.addEventListener(event, this.handleDocumentClick, true)\n );\n }\n\n removeEvents() {\n ['click', 'touchstart', 'keyup'].forEach(event =>\n document.removeEventListener(event, this.handleDocumentClick, true)\n );\n }\n\n handleDocumentClick(e) {\n if (e && (e.which === 3 || (e.type === 'keyup' && e.which !== keyCodes.tab))) return;\n const container = this.getContainer();\n\n if (container.contains(e.target) && container !== e.target && (e.type !== 'keyup' || e.which === keyCodes.tab)) {\n return;\n }\n\n this.toggle(e);\n }\n\n handleKeyDown(e) {\n if (keyCodes.tab === e.which ||\n (/button/i.test(e.target.tagName) && e.which === keyCodes.space) ||\n /input|textarea/i.test(e.target.tagName)) {\n return;\n }\n\n e.preventDefault();\n if (this.props.disabled) return;\n\n const container = this.getContainer();\n\n if (e.which === keyCodes.space && keyCodes.enter && this.props.isOpen && container !== e.target) {\n e.target.click();\n }\n\n if (e.which === keyCodes.esc || !this.props.isOpen) {\n this.toggle(e);\n container.querySelector('[aria-expanded]').focus();\n return;\n }\n\n const menuClass = mapToCssModules('dropdown-menu', this.props.cssModule);\n const itemClass = mapToCssModules('dropdown-item', this.props.cssModule);\n const disabledClass = mapToCssModules('disabled', this.props.cssModule);\n\n const items = container.querySelectorAll(`.${menuClass} .${itemClass}:not(.${disabledClass})`);\n if (!items.length) return;\n\n let index = -1;\n\n const charPressed = String.fromCharCode(e.which).toLowerCase();\n\n for (let i = 0; i < items.length; i += 1) {\n const firstLetter = items[i].textContent && items[i].textContent[0].toLowerCase();\n if (firstLetter === charPressed || items[i] === e.target) {\n index = i;\n break;\n }\n }\n\n if (e.which === keyCodes.up && index > 0) {\n index -= 1;\n }\n\n if (e.which === keyCodes.down && index < items.length - 1) {\n index += 1;\n }\n\n\n if (index < 0) {\n index = 0;\n }\n\n items[index].focus();\n }\n\n handleProps() {\n if (this.props.isOpen) {\n this.addEvents();\n } else {\n this.removeEvents();\n }\n }\n\n toggle(e) {\n if (this.props.disabled) {\n return e && e.preventDefault();\n }\n\n return this.props.toggle(e);\n }\n\n render() {\n const {\n className,\n cssModule,\n dropup,\n isOpen,\n group,\n size,\n nav,\n setActiveFromChild,\n active,\n addonType,\n ...attrs\n } = omit(this.props, ['toggle', 'disabled', 'inNavbar', 'direction']);\n\n const direction = (this.props.direction === 'down' && dropup) ? 'up' : this.props.direction;\n\n attrs.tag = attrs.tag || (nav ? 'li' : 'div');\n\n let subItemIsActive = false;\n if (setActiveFromChild) {\n React.Children.map(this.props.children[1].props.children,\n (dropdownItem) => {\n if (dropdownItem.props.active) subItemIsActive = true;\n }\n );\n }\n\n const classes = mapToCssModules(classNames(\n className,\n direction !== 'down' && `drop${direction}`,\n nav && active ? 'active' : false,\n setActiveFromChild && subItemIsActive ? 'active' : false,\n {\n [`input-group-${addonType}`]: addonType,\n 'btn-group': group,\n [`btn-group-${size}`]: !!size,\n dropdown: !group && !addonType,\n show: isOpen,\n 'nav-item': nav\n }\n ), cssModule);\n\n return ;\n }\n}\n\nDropdown.propTypes = propTypes;\nDropdown.defaultProps = defaultProps;\nDropdown.childContextTypes = childContextTypes;\n\nexport default Dropdown;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func, PropTypes.string]),\n disabled: PropTypes.bool,\n active: PropTypes.bool,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n onClick: PropTypes.func,\n href: PropTypes.any,\n};\n\nconst defaultProps = {\n tag: 'a',\n};\n\nclass NavLink extends React.Component {\n constructor(props) {\n super(props);\n\n this.onClick = this.onClick.bind(this);\n }\n\n onClick(e) {\n if (this.props.disabled) {\n e.preventDefault();\n return;\n }\n\n if (this.props.href === '#') {\n e.preventDefault();\n }\n\n if (this.props.onClick) {\n this.props.onClick(e);\n }\n }\n\n render() {\n let {\n className,\n cssModule,\n active,\n tag: Tag,\n innerRef,\n ...attributes\n } = this.props;\n\n const classes = mapToCssModules(classNames(\n className,\n 'nav-link',\n {\n disabled: attributes.disabled,\n active: active\n }\n ), cssModule);\n\n return (\n \n );\n }\n}\n\nNavLink.propTypes = propTypes;\nNavLink.defaultProps = defaultProps;\n\nexport default NavLink;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n listTag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n className: PropTypes.string,\n listClassName: PropTypes.string,\n cssModule: PropTypes.object,\n children: PropTypes.node,\n 'aria-label': PropTypes.string\n};\n\nconst defaultProps = {\n tag: 'nav',\n listTag: 'ol',\n 'aria-label': 'breadcrumb'\n};\n\nconst Breadcrumb = (props) => {\n const {\n className,\n listClassName,\n cssModule,\n children,\n tag: Tag,\n listTag: ListTag,\n 'aria-label': label,\n ...attributes\n } = props;\n\n const classes = mapToCssModules(classNames(\n className\n ), cssModule);\n\n const listClasses = mapToCssModules(classNames(\n 'breadcrumb',\n listClassName\n ), cssModule);\n\n return (\n \n \n {children}\n \n \n );\n};\n\nBreadcrumb.propTypes = propTypes;\nBreadcrumb.defaultProps = defaultProps;\n\nexport default Breadcrumb;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n active: PropTypes.bool,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'li'\n};\n\nconst BreadcrumbItem = (props) => {\n const {\n className,\n cssModule,\n active,\n tag: Tag,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n active ? 'active' : false,\n 'breadcrumb-item'\n ), cssModule);\n\n return (\n \n );\n};\n\nBreadcrumbItem.propTypes = propTypes;\nBreadcrumbItem.defaultProps = defaultProps;\n\nexport default BreadcrumbItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n active: PropTypes.bool,\n 'aria-label': PropTypes.string,\n block: PropTypes.bool,\n color: PropTypes.string,\n disabled: PropTypes.bool,\n outline: PropTypes.bool,\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func, PropTypes.string]),\n onClick: PropTypes.func,\n size: PropTypes.string,\n children: PropTypes.node,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n close: PropTypes.bool,\n};\n\nconst defaultProps = {\n color: 'secondary',\n tag: 'button',\n};\n\nclass Button extends React.Component {\n constructor(props) {\n super(props);\n\n this.onClick = this.onClick.bind(this);\n }\n\n onClick(e) {\n if (this.props.disabled) {\n e.preventDefault();\n return;\n }\n\n if (this.props.onClick) {\n this.props.onClick(e);\n }\n }\n\n render() {\n let {\n active,\n 'aria-label': ariaLabel,\n block,\n className,\n close,\n cssModule,\n color,\n outline,\n size,\n tag: Tag,\n innerRef,\n ...attributes\n } = this.props;\n\n if (close && typeof attributes.children === 'undefined') {\n attributes.children = ×;\n }\n\n const btnOutlineColor = `btn${outline ? '-outline' : ''}-${color}`;\n\n const classes = mapToCssModules(classNames(\n className,\n { close },\n close || 'btn',\n close || btnOutlineColor,\n size ? `btn-${size}` : false,\n block ? 'btn-block' : false,\n { active, disabled: this.props.disabled }\n ), cssModule);\n\n if (attributes.href && Tag === 'button') {\n Tag = 'a';\n }\n\n const defaultAriaLabel = close ? 'Close' : null;\n\n return (\n \n );\n }\n}\n\nButton.propTypes = propTypes;\nButton.defaultProps = defaultProps;\n\nexport default Button;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Dropdown from './Dropdown';\n\nconst propTypes = {\n children: PropTypes.node,\n};\n\nconst ButtonDropdown = (props) => {\n return (\n \n );\n};\n\nButtonDropdown.propTypes = propTypes;\n\nexport default ButtonDropdown;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n 'aria-label': PropTypes.string,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n role: PropTypes.string,\n size: PropTypes.string,\n vertical: PropTypes.bool,\n};\n\nconst defaultProps = {\n tag: 'div',\n role: 'group',\n};\n\nconst ButtonGroup = (props) => {\n const {\n className,\n cssModule,\n size,\n vertical,\n tag: Tag,\n ...attributes\n } = props;\n\n const classes = mapToCssModules(classNames(\n className,\n size ? 'btn-group-' + size : false,\n vertical ? 'btn-group-vertical' : 'btn-group'\n ), cssModule);\n\n return (\n \n );\n};\n\nButtonGroup.propTypes = propTypes;\nButtonGroup.defaultProps = defaultProps;\n\nexport default ButtonGroup;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n 'aria-label': PropTypes.string,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n role: PropTypes.string,\n};\n\nconst defaultProps = {\n tag: 'div',\n role: 'toolbar',\n};\n\nconst ButtonToolbar = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n ...attributes\n } = props;\n\n const classes = mapToCssModules(classNames(\n className,\n 'btn-toolbar'\n ), cssModule);\n\n return (\n \n );\n};\n\nButtonToolbar.propTypes = propTypes;\nButtonToolbar.defaultProps = defaultProps;\n\nexport default ButtonToolbar;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, omit } from './utils';\n\nconst propTypes = {\n children: PropTypes.node,\n active: PropTypes.bool,\n disabled: PropTypes.bool,\n divider: PropTypes.bool,\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n header: PropTypes.bool,\n onClick: PropTypes.func,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n toggle: PropTypes.bool\n};\n\nconst contextTypes = {\n toggle: PropTypes.func\n};\n\nconst defaultProps = {\n tag: 'button',\n toggle: true\n};\n\nclass DropdownItem extends React.Component {\n constructor(props) {\n super(props);\n\n this.onClick = this.onClick.bind(this);\n this.getTabIndex = this.getTabIndex.bind(this);\n }\n\n onClick(e) {\n if (this.props.disabled || this.props.header || this.props.divider) {\n e.preventDefault();\n return;\n }\n\n if (this.props.onClick) {\n this.props.onClick(e);\n }\n\n if (this.props.toggle) {\n this.context.toggle(e);\n }\n }\n\n getTabIndex() {\n if (this.props.disabled || this.props.header || this.props.divider) {\n return '-1';\n }\n\n return '0';\n }\n\n render() {\n const tabIndex = this.getTabIndex();\n let {\n className,\n cssModule,\n divider,\n tag: Tag,\n header,\n active,\n ...props } = omit(this.props, ['toggle']);\n\n const classes = mapToCssModules(classNames(\n className,\n {\n disabled: props.disabled,\n 'dropdown-item': !divider && !header,\n active: active,\n 'dropdown-header': header,\n 'dropdown-divider': divider\n }\n ), cssModule);\n\n if (Tag === 'button') {\n if (header) {\n Tag = 'h6';\n } else if (divider) {\n Tag = 'div';\n } else if (props.href) {\n Tag = 'a';\n }\n }\n\n return (\n \n );\n }\n}\n\nDropdownItem.propTypes = propTypes;\nDropdownItem.defaultProps = defaultProps;\nDropdownItem.contextTypes = contextTypes;\n\nexport default DropdownItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { Popper } from 'react-popper';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n tag: PropTypes.string,\n children: PropTypes.node.isRequired,\n right: PropTypes.bool,\n flip: PropTypes.bool,\n modifiers: PropTypes.object,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n persist: PropTypes.bool,\n};\n\nconst defaultProps = {\n tag: 'div',\n flip: true,\n};\n\nconst contextTypes = {\n isOpen: PropTypes.bool.isRequired,\n direction: PropTypes.oneOf(['up', 'down', 'left', 'right']).isRequired,\n inNavbar: PropTypes.bool.isRequired,\n};\n\nconst noFlipModifier = { flip: { enabled: false } };\n\nconst directionPositionMap = {\n up: 'top',\n left: 'left',\n right: 'right',\n down: 'bottom',\n};\n\nconst DropdownMenu = (props, context) => {\n const { className, cssModule, right, tag, flip, modifiers, persist, ...attrs } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'dropdown-menu',\n {\n 'dropdown-menu-right': right,\n show: context.isOpen,\n }\n ), cssModule);\n\n let Tag = tag;\n\n if (persist || (context.isOpen && !context.inNavbar)) {\n Tag = Popper;\n\n const position1 = directionPositionMap[context.direction] || 'bottom';\n const position2 = right ? 'end' : 'start';\n attrs.placement = `${position1}-${position2}`;\n attrs.component = tag;\n attrs.modifiers = !flip ? {\n ...modifiers,\n ...noFlipModifier,\n } : modifiers;\n }\n\n return (\n \n );\n};\n\nDropdownMenu.propTypes = propTypes;\nDropdownMenu.defaultProps = defaultProps;\nDropdownMenu.contextTypes = contextTypes;\n\nexport default DropdownMenu;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { Target } from 'react-popper';\nimport { mapToCssModules } from './utils';\nimport Button from './Button';\n\nconst propTypes = {\n caret: PropTypes.bool,\n color: PropTypes.string,\n children: PropTypes.node,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n disabled: PropTypes.bool,\n onClick: PropTypes.func,\n 'aria-haspopup': PropTypes.bool,\n split: PropTypes.bool,\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n nav: PropTypes.bool,\n};\n\nconst defaultProps = {\n 'aria-haspopup': true,\n color: 'secondary',\n};\n\nconst contextTypes = {\n isOpen: PropTypes.bool.isRequired,\n toggle: PropTypes.func.isRequired,\n inNavbar: PropTypes.bool.isRequired,\n};\n\nclass DropdownToggle extends React.Component {\n constructor(props) {\n super(props);\n\n this.onClick = this.onClick.bind(this);\n }\n\n onClick(e) {\n if (this.props.disabled) {\n e.preventDefault();\n return;\n }\n\n if (this.props.nav && !this.props.tag) {\n e.preventDefault();\n }\n\n if (this.props.onClick) {\n this.props.onClick(e);\n }\n\n this.context.toggle(e);\n }\n\n render() {\n const { className, color, cssModule, caret, split, nav, tag, ...props } = this.props;\n const ariaLabel = props['aria-label'] || 'Toggle Dropdown';\n const classes = mapToCssModules(classNames(\n className,\n {\n 'dropdown-toggle': caret || split,\n 'dropdown-toggle-split': split,\n 'nav-link': nav\n }\n ), cssModule);\n const children = props.children || {ariaLabel};\n\n let Tag;\n\n if (nav && !tag) {\n Tag = 'a';\n props.href = '#';\n } else if (!tag) {\n Tag = Button;\n props.color = color;\n props.cssModule = cssModule;\n } else {\n Tag = tag;\n }\n\n if (this.context.inNavbar) {\n return (\n \n );\n }\n\n return (\n \n );\n }\n}\n\nDropdownToggle.propTypes = propTypes;\nDropdownToggle.defaultProps = defaultProps;\nDropdownToggle.contextTypes = contextTypes;\n\nexport default DropdownToggle;\n","'use strict';\n\nexports.__esModule = true;\nexports.classNamesShape = exports.timeoutsShape = undefined;\nexports.transitionTimeout = transitionTimeout;\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction transitionTimeout(transitionType) {\n var timeoutPropName = 'transition' + transitionType + 'Timeout';\n var enabledPropName = 'transition' + transitionType;\n\n return function (props) {\n // If the transition is enabled\n if (props[enabledPropName]) {\n // If no timeout duration is provided\n if (props[timeoutPropName] == null) {\n return new Error(timeoutPropName + ' wasn\\'t supplied to CSSTransitionGroup: ' + 'this can cause unreliable animations and won\\'t be supported in ' + 'a future version of React. See ' + 'https://fb.me/react-animation-transition-group-timeout for more ' + 'information.');\n\n // If the duration isn't a number\n } else if (typeof props[timeoutPropName] !== 'number') {\n return new Error(timeoutPropName + ' must be a number (in milliseconds)');\n }\n }\n\n return null;\n };\n}\n\nvar timeoutsShape = exports.timeoutsShape = _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.shape({\n enter: _propTypes2.default.number,\n exit: _propTypes2.default.number\n}).isRequired]);\n\nvar classNamesShape = exports.classNamesShape = _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({\n enter: _propTypes2.default.string,\n exit: _propTypes2.default.string,\n active: _propTypes2.default.string\n}), _propTypes2.default.shape({\n enter: _propTypes2.default.string,\n enterDone: _propTypes2.default.string,\n enterActive: _propTypes2.default.string,\n exit: _propTypes2.default.string,\n exitDone: _propTypes2.default.string,\n exitActive: _propTypes2.default.string\n})]);","'use strict';\n\nexports.__esModule = true;\nexports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = undefined;\n\nvar _propTypes = require('prop-types');\n\nvar PropTypes = _interopRequireWildcard(_propTypes);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _PropTypes = require('./utils/PropTypes');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar UNMOUNTED = exports.UNMOUNTED = 'unmounted';\nvar EXITED = exports.EXITED = 'exited';\nvar ENTERING = exports.ENTERING = 'entering';\nvar ENTERED = exports.ENTERED = 'entered';\nvar EXITING = exports.EXITING = 'exiting';\n\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the components.\n * It's up to you to give meaning and effect to those states. For example we can\n * add styles to a component when it enters or exits:\n *\n * ```jsx\n * import Transition from 'react-transition-group/Transition';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 0 },\n * entered: { opacity: 1 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {(state) => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * As noted the `Transition` component doesn't _do_ anything by itself to its child component.\n * What it does do is track transition states over time so you can update the\n * component (such as by adding styles or classes) when it changes states.\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component begins the\n * \"Enter\" stage. During this stage, the component will shift from its current transition state,\n * to `'entering'` for the duration of the transition and then to the `'entered'` stage once\n * it's complete. Let's take the following example:\n *\n * ```jsx\n * state = { in: false };\n *\n * toggleEnterState = () => {\n * this.setState({ in: true });\n * }\n *\n * render() {\n * return (\n *
\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state and\n * stay there for 500ms (the value of `timeout`) before it finally switches to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from `'exiting'` to `'exited'`.\n *\n * ## Timing\n *\n * Timing is often the trickiest part of animation, mistakes can result in slight delays\n * that are hard to pin down. A common example is when you want to add an exit transition,\n * you should set the desired final styles when the state is `'exiting'`. That's when the\n * transition to those styles will start and, if you matched the `timeout` prop with the\n * CSS Transition duration, it will end exactly when the state changes to `'exited'`.\n *\n * > **Note**: For simpler transitions the `Transition` component might be enough, but\n * > take into account that it's platform-agnostic, while the `CSSTransition` component\n * > [forces reflows](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * > in order to make more complex transitions more predictable. For example, even though\n * > classes `example-enter` and `example-enter-active` are applied immediately one after\n * > another, you can still transition from one to the other because of the forced reflow\n * > (read [this issue](https://github.com/reactjs/react-transition-group/issues/159#issuecomment-322761171)\n * > for more info). Take this into account when choosing between `Transition` and\n * > `CSSTransition`.\n *\n * ## Example\n *\n * \n *\n */\n\nvar Transition = function (_React$Component) {\n _inherits(Transition, _React$Component);\n\n function Transition(props, context) {\n _classCallCheck(this, Transition);\n\n var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context));\n\n var parentGroup = context.transitionGroup;\n // In the context of a TransitionGroup all enters are really appears\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n\n var initialStatus = void 0;\n _this.nextStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.nextStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = { status: initialStatus };\n\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.prototype.getChildContext = function getChildContext() {\n return { transitionGroup: null }; // allows for nested Transitions\n };\n\n Transition.prototype.componentDidMount = function componentDidMount() {\n this.updateStatus(true);\n };\n\n Transition.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var _ref = this.pendingState || this.state,\n status = _ref.status;\n\n if (nextProps.in) {\n if (status === UNMOUNTED) {\n this.setState({ status: EXITED });\n }\n if (status !== ENTERING && status !== ENTERED) {\n this.nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n this.nextStatus = EXITING;\n }\n }\n };\n\n Transition.prototype.componentDidUpdate = function componentDidUpdate() {\n this.updateStatus();\n };\n\n Transition.prototype.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n Transition.prototype.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n\n var exit = void 0,\n enter = void 0,\n appear = void 0;\n\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter;\n appear = timeout.appear;\n }\n return { exit: exit, enter: enter, appear: appear };\n };\n\n Transition.prototype.updateStatus = function updateStatus() {\n var mounting = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var nextStatus = this.nextStatus;\n\n if (nextStatus !== null) {\n this.nextStatus = null;\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n var node = _reactDom2.default.findDOMNode(this);\n\n if (nextStatus === ENTERING) {\n this.performEnter(node, mounting);\n } else {\n this.performExit(node);\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({ status: UNMOUNTED });\n }\n };\n\n Transition.prototype.performEnter = function performEnter(node, mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n\n var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting;\n\n var timeouts = this.getTimeouts();\n\n // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n if (!mounting && !enter) {\n this.safeSetState({ status: ENTERED }, function () {\n _this2.props.onEntered(node);\n });\n return;\n }\n\n this.props.onEnter(node, appearing);\n\n this.safeSetState({ status: ENTERING }, function () {\n _this2.props.onEntering(node, appearing);\n\n // FIXME: appear timeout?\n _this2.onTransitionEnd(node, timeouts.enter, function () {\n _this2.safeSetState({ status: ENTERED }, function () {\n _this2.props.onEntered(node, appearing);\n });\n });\n });\n };\n\n Transition.prototype.performExit = function performExit(node) {\n var _this3 = this;\n\n var exit = this.props.exit;\n\n var timeouts = this.getTimeouts();\n\n // no exit animation skip right to EXITED\n if (!exit) {\n this.safeSetState({ status: EXITED }, function () {\n _this3.props.onExited(node);\n });\n return;\n }\n this.props.onExit(node);\n\n this.safeSetState({ status: EXITING }, function () {\n _this3.props.onExiting(node);\n\n _this3.onTransitionEnd(node, timeouts.exit, function () {\n _this3.safeSetState({ status: EXITED }, function () {\n _this3.props.onExited(node);\n });\n });\n });\n };\n\n Transition.prototype.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n Transition.prototype.safeSetState = function safeSetState(nextState, callback) {\n var _this4 = this;\n\n // We need to track pending updates for instances where a cWRP fires quickly\n // after cDM and before the state flushes, which would double trigger a\n // transition\n this.pendingState = nextState;\n\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, function () {\n _this4.pendingState = null;\n callback();\n });\n };\n\n Transition.prototype.setNextCallback = function setNextCallback(callback) {\n var _this5 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this5.nextCallback = null;\n\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n Transition.prototype.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {\n this.setNextCallback(handler);\n\n if (node) {\n if (this.props.addEndListener) {\n this.props.addEndListener(node, this.nextCallback);\n }\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n } else {\n setTimeout(this.nextCallback, 0);\n }\n };\n\n Transition.prototype.render = function render() {\n var status = this.state.status;\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _props = this.props,\n children = _props.children,\n childProps = _objectWithoutProperties(_props, ['children']);\n // filter props for Transtition\n\n\n delete childProps.in;\n delete childProps.mountOnEnter;\n delete childProps.unmountOnExit;\n delete childProps.appear;\n delete childProps.enter;\n delete childProps.exit;\n delete childProps.timeout;\n delete childProps.addEndListener;\n delete childProps.onEnter;\n delete childProps.onEntering;\n delete childProps.onEntered;\n delete childProps.onExit;\n delete childProps.onExiting;\n delete childProps.onExited;\n\n if (typeof children === 'function') {\n return children(status, childProps);\n }\n\n var child = _react2.default.Children.only(children);\n return _react2.default.cloneElement(child, childProps);\n };\n\n return Transition;\n}(_react2.default.Component);\n\nTransition.contextTypes = {\n transitionGroup: PropTypes.object\n};\nTransition.childContextTypes = {\n transitionGroup: function transitionGroup() {}\n};\n\n\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A `function` child can be used instead of a React element.\n * This function is called with the current transition status\n * ('entering', 'entered', 'exiting', 'exited', 'unmounted'), which can be used\n * to apply context specific props to a component.\n *\n * ```jsx\n * \n * {(status) => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * Normally a component is not transitioned if it is shown when the `` component mounts.\n * If you want to transition on the first mount set `appear` to `true`, and the\n * component will transition in as soon as the `` mounts.\n *\n * > Note: there are no specific \"appear\" states. `appear` only adds an additional `enter` transition.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided\n *\n * You may specify a single timeout for all transitions like: `timeout={500}`,\n * or individually like:\n *\n * ```jsx\n * timeout={{\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * @type {number | { enter?: number, exit?: number }}\n */\n timeout: function timeout(props) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var pt = _PropTypes.timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n return pt.apply(undefined, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. **Note:** Timeouts are still used as a fallback if provided.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {};\n\n// Name the function so it is clearer in the documentation\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\n\nTransition.UNMOUNTED = 0;\nTransition.EXITED = 1;\nTransition.ENTERING = 2;\nTransition.ENTERED = 3;\nTransition.EXITING = 4;\n\nexports.default = Transition;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Transition from 'react-transition-group/Transition';\nimport { mapToCssModules, omit, pick, TransitionPropTypeKeys, TransitionTimeouts } from './utils';\n\nconst propTypes = {\n ...Transition.propTypes,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node\n ]),\n tag: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n baseClass: PropTypes.string,\n baseClassActive: PropTypes.string,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n innerRef: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.string,\n PropTypes.func,\n ]),\n};\n\nconst defaultProps = {\n ...Transition.defaultProps,\n tag: 'div',\n baseClass: 'fade',\n baseClassActive: 'show',\n timeout: TransitionTimeouts.Fade,\n appear: true,\n enter: true,\n exit: true,\n in: true,\n};\n\nfunction Fade(props) {\n const {\n tag: Tag,\n baseClass,\n baseClassActive,\n className,\n cssModule,\n children,\n innerRef,\n ...otherProps\n } = props;\n\n // In NODE_ENV=production the Transition.propTypes are wrapped which results in an\n // empty object \"{}\". This is the result of the `react-transition-group` babel\n // configuration settings. Therefore, to ensure that production builds work without\n // error, we can either explicitly define keys or use the Transition.defaultProps.\n // Using the Transition.defaultProps excludes any required props. Thus, the best\n // solution is to explicitly define required props in our utilities and reference these.\n // This also gives us more flexibility in the future to remove the prop-types\n // dependency in distribution builds (Similar to how `react-transition-group` does).\n // Note: Without omitting the `react-transition-group` props, the resulting child\n // Tag component would inherit the Transition properties as attributes for the HTML\n // element which results in errors/warnings for non-valid attributes.\n const transitionProps = pick(otherProps, TransitionPropTypeKeys);\n const childProps = omit(otherProps, TransitionPropTypeKeys);\n\n return (\n \n {(status) => {\n const isActive = status === 'entered';\n const classes = mapToCssModules(classNames(\n className,\n baseClass,\n isActive && baseClassActive\n ), cssModule);\n return (\n \n {children}\n \n );\n }}\n \n );\n}\n\nFade.propTypes = propTypes;\nFade.defaultProps = defaultProps;\n\nexport default Fade;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n color: PropTypes.string,\n pill: PropTypes.bool,\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n children: PropTypes.node,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n color: 'secondary',\n pill: false,\n tag: 'span'\n};\n\nconst Badge = (props) => {\n let {\n className,\n cssModule,\n color,\n pill,\n tag: Tag,\n ...attributes\n } = props;\n\n const classes = mapToCssModules(classNames(\n className,\n 'badge',\n 'badge-' + color,\n pill ? 'badge-pill' : false\n ), cssModule);\n\n if (attributes.href && Tag === 'span') {\n Tag = 'a';\n }\n\n return (\n \n );\n};\n\nBadge.propTypes = propTypes;\nBadge.defaultProps = defaultProps;\n\nexport default Badge;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, deprecated } from './utils';\n\nconst propTypes = {\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n inverse: PropTypes.bool,\n color: PropTypes.string,\n block: deprecated(PropTypes.bool, 'Please use the props \"body\"'),\n body: PropTypes.bool,\n outline: PropTypes.bool,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n innerRef: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.string,\n PropTypes.func,\n ]),\n};\n\nconst defaultProps = {\n tag: 'div'\n};\n\nconst Card = (props) => {\n const {\n className,\n cssModule,\n color,\n block,\n body,\n inverse,\n outline,\n tag: Tag,\n innerRef,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'card',\n inverse ? 'text-white' : false,\n block || body ? 'card-body' : false,\n color ? `${outline ? 'border' : 'bg'}-${color}` : false\n ), cssModule);\n\n return (\n \n );\n};\n\nCard.propTypes = propTypes;\nCard.defaultProps = defaultProps;\n\nexport default Card;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'div'\n};\n\nconst CardGroup = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'card-group'\n ), cssModule);\n\n return (\n \n );\n};\n\nCardGroup.propTypes = propTypes;\nCardGroup.defaultProps = defaultProps;\n\nexport default CardGroup;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'div',\n};\n\nconst CardDeck = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'card-deck'\n ), cssModule);\n\n return (\n \n );\n};\n\nCardDeck.propTypes = propTypes;\nCardDeck.defaultProps = defaultProps;\n\nexport default CardDeck;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'div'\n};\n\nconst CardColumns = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'card-columns'\n ), cssModule);\n\n return (\n \n );\n};\n\nCardColumns.propTypes = propTypes;\nCardColumns.defaultProps = defaultProps;\n\nexport default CardColumns;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'div'\n};\n\nconst CardBody = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'card-body'\n ), cssModule);\n\n return (\n \n );\n};\n\nCardBody.propTypes = propTypes;\nCardBody.defaultProps = defaultProps;\n\nexport default CardBody;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func, PropTypes.string]),\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'a'\n};\n\nconst CardLink = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n innerRef,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'card-link'\n ), cssModule);\n\n return (\n \n );\n};\n\nCardLink.propTypes = propTypes;\nCardLink.defaultProps = defaultProps;\n\nexport default CardLink;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'div'\n};\n\nconst CardFooter = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'card-footer'\n ), cssModule);\n\n return (\n \n );\n};\n\nCardFooter.propTypes = propTypes;\nCardFooter.defaultProps = defaultProps;\n\nexport default CardFooter;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'div'\n};\n\nconst CardHeader = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'card-header'\n ), cssModule);\n\n return (\n \n );\n};\n\nCardHeader.propTypes = propTypes;\nCardHeader.defaultProps = defaultProps;\n\nexport default CardHeader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n top: PropTypes.bool,\n bottom: PropTypes.bool,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'img'\n};\n\nconst CardImg = (props) => {\n const {\n className,\n cssModule,\n top,\n bottom,\n tag: Tag,\n ...attributes\n } = props;\n\n let cardImgClassName = 'card-img';\n if (top) {\n cardImgClassName = 'card-img-top';\n }\n if (bottom) {\n cardImgClassName = 'card-img-bottom';\n }\n\n const classes = mapToCssModules(classNames(\n className,\n cardImgClassName\n ), cssModule);\n\n return (\n \n );\n};\n\nCardImg.propTypes = propTypes;\nCardImg.defaultProps = defaultProps;\n\nexport default CardImg;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'div'\n};\n\nconst CardImgOverlay = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'card-img-overlay'\n ), cssModule);\n\n return (\n \n );\n};\n\nCardImgOverlay.propTypes = propTypes;\nCardImgOverlay.defaultProps = defaultProps;\n\nexport default CardImgOverlay;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Transition from 'react-transition-group/Transition';\nimport { mapToCssModules, TransitionTimeouts, TransitionStatuses } from './utils';\n\nclass CarouselItem extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n startAnimation: false,\n };\n\n this.onEnter = this.onEnter.bind(this);\n this.onEntering = this.onEntering.bind(this);\n this.onExit = this.onExit.bind(this);\n this.onExiting = this.onExiting.bind(this);\n this.onExited = this.onExited.bind(this);\n }\n\n onEnter(node, isAppearing) {\n this.setState({ startAnimation: false });\n this.props.onEnter(node, isAppearing);\n }\n\n onEntering(node, isAppearing) {\n // getting this variable triggers a reflow\n const offsetHeight = node.offsetHeight;\n this.setState({ startAnimation: true });\n this.props.onEntering(node, isAppearing);\n return offsetHeight;\n }\n\n onExit(node) {\n this.setState({ startAnimation: false });\n this.props.onExit(node);\n }\n\n onExiting(node) {\n this.setState({ startAnimation: true });\n node.dispatchEvent(new CustomEvent('slide.bs.carousel'));\n this.props.onExiting(node);\n }\n\n onExited(node) {\n node.dispatchEvent(new CustomEvent('slid.bs.carousel'));\n this.props.onExited(node);\n }\n\n render() {\n const { in: isIn, children, cssModule, slide, tag: Tag, className, ...transitionProps } = this.props;\n\n return (\n \n {(status) => {\n const { direction } = this.context;\n const isActive = (status === TransitionStatuses.ENTERED) || (status === TransitionStatuses.EXITING);\n const directionClassName = (status === TransitionStatuses.ENTERING || status === TransitionStatuses.EXITING) &&\n this.state.startAnimation &&\n (direction === 'right' ? 'carousel-item-left' : 'carousel-item-right');\n const orderClassName = (status === TransitionStatuses.ENTERING) &&\n (direction === 'right' ? 'carousel-item-next' : 'carousel-item-prev');\n const itemClasses = mapToCssModules(classNames(\n className,\n 'carousel-item',\n isActive && 'active',\n directionClassName,\n orderClassName,\n ), cssModule);\n\n return (\n \n {children}\n \n );\n }}\n \n );\n }\n}\n\nCarouselItem.propTypes = {\n ...Transition.propTypes,\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n in: PropTypes.bool,\n cssModule: PropTypes.object,\n children: PropTypes.node,\n slide: PropTypes.bool,\n className: PropTypes.string,\n};\n\nCarouselItem.defaultProps = {\n ...Transition.defaultProps,\n tag: 'div',\n timeout: TransitionTimeouts.Carousel,\n slide: true,\n};\n\nCarouselItem.contextTypes = {\n direction: PropTypes.string\n};\n\nexport default CarouselItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport CarouselItem from './CarouselItem';\nimport { mapToCssModules } from './utils';\n\nclass Carousel extends React.Component {\n constructor(props) {\n super(props);\n this.handleKeyPress = this.handleKeyPress.bind(this);\n this.renderItems = this.renderItems.bind(this);\n this.hoverStart = this.hoverStart.bind(this);\n this.hoverEnd = this.hoverEnd.bind(this);\n this.state = {\n direction: 'right',\n indicatorClicked: false,\n };\n }\n\n getChildContext() {\n return { direction: this.state.direction };\n }\n\n componentDidMount() {\n // Set up the cycle\n if (this.props.ride === 'carousel') {\n this.setInterval();\n }\n\n // TODO: move this to the specific carousel like bootstrap. Currently it will trigger ALL carousels on the page.\n document.addEventListener('keyup', this.handleKeyPress);\n }\n\n componentWillReceiveProps(nextProps) {\n this.setInterval(nextProps);\n // Calculate the direction to turn\n if (this.props.activeIndex + 1 === nextProps.activeIndex) {\n this.setState({ direction: 'right' });\n } else if (this.props.activeIndex - 1 === nextProps.activeIndex) {\n this.setState({ direction: 'left' });\n } else if (this.props.activeIndex > nextProps.activeIndex) {\n this.setState({ direction: this.state.indicatorClicked ? 'left' : 'right' });\n } else if (this.props.activeIndex !== nextProps.activeIndex) {\n this.setState({ direction: this.state.indicatorClicked ? 'right' : 'left' });\n }\n this.setState({ indicatorClicked: false });\n }\n\n componentWillUnmount() {\n this.clearInterval();\n document.removeEventListener('keyup', this.handleKeyPress);\n }\n\n setInterval(props = this.props) {\n // make sure not to have multiple intervals going...\n this.clearInterval();\n if (props.interval) {\n this.cycleInterval = setInterval(() => {\n props.next();\n }, parseInt(props.interval, 10));\n }\n }\n\n clearInterval() {\n clearInterval(this.cycleInterval);\n }\n\n hoverStart(...args) {\n if (this.props.pause === 'hover') {\n this.clearInterval();\n }\n if (this.props.mouseEnter) {\n this.props.mouseEnter(...args);\n }\n }\n\n hoverEnd(...args) {\n if (this.props.pause === 'hover') {\n this.setInterval();\n }\n if (this.props.mouseLeave) {\n this.props.mouseLeave(...args);\n }\n }\n\n handleKeyPress(evt) {\n if (this.props.keyboard) {\n if (evt.keyCode === 37) {\n this.props.previous();\n } else if (evt.keyCode === 39) {\n this.props.next();\n }\n }\n }\n\n renderItems(carouselItems, className) {\n const { slide } = this.props;\n return (\n
\n {carouselItems.map((item, index) => {\n const isIn = (index === this.props.activeIndex);\n return React.cloneElement(item, {\n in: isIn,\n slide: slide,\n });\n })}\n
\n );\n }\n\n render() {\n const { cssModule, slide, className } = this.props;\n const outerClasses = mapToCssModules(classNames(\n className,\n 'carousel',\n slide && 'slide'\n ), cssModule);\n\n const innerClasses = mapToCssModules(classNames(\n 'carousel-inner'\n ), cssModule);\n\n // filter out booleans, null, or undefined\n const children = this.props.children.filter(child => child !== null && child !== undefined && typeof child !== 'boolean');\n\n const slidesOnly = children.every(child => child.type === CarouselItem);\n\n // Rendering only slides\n if (slidesOnly) {\n return (\n
\n {this.renderItems(children, innerClasses)}\n
\n );\n }\n\n // Rendering slides and controls\n if (children[0] instanceof Array) {\n const carouselItems = children[0];\n const controlLeft = children[1];\n const controlRight = children[2];\n\n return (\n
\n {this.renderItems(carouselItems, innerClasses)}\n {controlLeft}\n {controlRight}\n
\n );\n }\n\n // Rendering indicators, slides and controls\n const indicators = children[0];\n const wrappedOnClick = (e) => {\n if (typeof indicators.props.onClickHandler === 'function') {\n this.setState({ indicatorClicked: true }, () => indicators.props.onClickHandler(e));\n }\n };\n const wrappedIndicators = React.cloneElement(indicators, { onClickHandler: wrappedOnClick });\n const carouselItems = children[1];\n const controlLeft = children[2];\n const controlRight = children[3];\n\n return (\n
\n {wrappedIndicators}\n {this.renderItems(carouselItems, innerClasses)}\n {controlLeft}\n {controlRight}\n
\n );\n }\n}\n\nCarousel.propTypes = {\n // the current active slide of the carousel\n activeIndex: PropTypes.number,\n // a function which should advance the carousel to the next slide (via activeIndex)\n next: PropTypes.func.isRequired,\n // a function which should advance the carousel to the previous slide (via activeIndex)\n previous: PropTypes.func.isRequired,\n // controls if the left and right arrow keys should control the carousel\n keyboard: PropTypes.bool,\n /* If set to \"hover\", pauses the cycling of the carousel on mouseenter and resumes the cycling of the carousel on\n * mouseleave. If set to false, hovering over the carousel won't pause it. (default: \"hover\")\n */\n pause: PropTypes.oneOf(['hover', false]),\n // Autoplays the carousel after the user manually cycles the first item. If \"carousel\", autoplays the carousel on load.\n // This is how bootstrap defines it... I would prefer a bool named autoplay or something...\n ride: PropTypes.oneOf(['carousel']),\n // the interval at which the carousel automatically cycles (default: 5000)\n // eslint-disable-next-line react/no-unused-prop-types\n interval: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n PropTypes.bool,\n ]),\n children: PropTypes.array,\n // called when the mouse enters the Carousel\n mouseEnter: PropTypes.func,\n // called when the mouse exits the Carousel\n mouseLeave: PropTypes.func,\n // controls whether the slide animation on the Carousel works or not\n slide: PropTypes.bool,\n cssModule: PropTypes.object,\n className: PropTypes.string,\n};\n\nCarousel.defaultProps = {\n interval: 5000,\n pause: 'hover',\n keyboard: true,\n slide: true,\n};\n\nCarousel.childContextTypes = {\n direction: PropTypes.string\n};\n\nexport default Carousel;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst CarouselControl = (props) => {\n const { direction, onClickHandler, cssModule, directionText, className } = props;\n\n const anchorClasses = mapToCssModules(classNames(\n className,\n `carousel-control-${direction}`\n ), cssModule);\n\n const iconClasses = mapToCssModules(classNames(\n `carousel-control-${direction}-icon`\n ), cssModule);\n\n const screenReaderClasses = mapToCssModules(classNames(\n 'sr-only'\n ), cssModule);\n\n\n return (\n {\n e.preventDefault();\n onClickHandler();\n }}\n >\n \n {directionText || direction}\n \n );\n};\n\nCarouselControl.propTypes = {\n direction: PropTypes.oneOf(['prev', 'next']).isRequired,\n onClickHandler: PropTypes.func.isRequired,\n cssModule: PropTypes.object,\n directionText: PropTypes.string,\n className: PropTypes.string,\n};\n\nexport default CarouselControl;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst CarouselIndicators = (props) => {\n const { items, activeIndex, cssModule, onClickHandler, className } = props;\n\n const listClasses = mapToCssModules(classNames(className, 'carousel-indicators'), cssModule);\n const indicators = items.map((item, idx) => {\n const indicatorClasses = mapToCssModules(classNames(\n { active: activeIndex === idx }\n ), cssModule);\n return (\n {\n e.preventDefault();\n onClickHandler(idx);\n }}\n className={indicatorClasses}\n />);\n });\n\n return (\n
    \n {indicators}\n
\n );\n};\n\nCarouselIndicators.propTypes = {\n items: PropTypes.array.isRequired,\n activeIndex: PropTypes.number.isRequired,\n cssModule: PropTypes.object,\n onClickHandler: PropTypes.func.isRequired,\n className: PropTypes.string,\n};\n\nexport default CarouselIndicators;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst CarouselCaption = (props) => {\n const { captionHeader, captionText, cssModule, className } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'carousel-caption',\n 'd-none',\n 'd-md-block'\n ), cssModule);\n\n return (\n
\n

{captionHeader}

\n

{captionText}

\n
\n );\n};\n\nCarouselCaption.propTypes = {\n captionHeader: PropTypes.string,\n captionText: PropTypes.string.isRequired,\n cssModule: PropTypes.object,\n className: PropTypes.string,\n};\n\nexport default CarouselCaption;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Carousel from './Carousel';\nimport CarouselItem from './CarouselItem';\nimport CarouselControl from './CarouselControl';\nimport CarouselIndicators from './CarouselIndicators';\nimport CarouselCaption from './CarouselCaption';\n\nconst propTypes = {\n items: PropTypes.array.isRequired,\n indicators: PropTypes.bool,\n controls: PropTypes.bool,\n autoPlay: PropTypes.bool,\n activeIndex: PropTypes.number,\n next: PropTypes.func,\n previous: PropTypes.func,\n goToIndex: PropTypes.func,\n};\n\nclass UncontrolledCarousel extends Component {\n constructor(props) {\n super(props);\n this.animating = false;\n this.state = { activeIndex: 0 };\n this.next = this.next.bind(this);\n this.previous = this.previous.bind(this);\n this.goToIndex = this.goToIndex.bind(this);\n this.onExiting = this.onExiting.bind(this);\n this.onExited = this.onExited.bind(this);\n }\n\n onExiting() {\n this.animating = true;\n }\n\n onExited() {\n this.animating = false;\n }\n\n next() {\n if (this.animating) return;\n const nextIndex = this.state.activeIndex === this.props.items.length - 1 ? 0 : this.state.activeIndex + 1;\n this.setState({ activeIndex: nextIndex });\n }\n\n previous() {\n if (this.animating) return;\n const nextIndex = this.state.activeIndex === 0 ? this.props.items.length - 1 : this.state.activeIndex - 1;\n this.setState({ activeIndex: nextIndex });\n }\n\n goToIndex(newIndex) {\n if (this.animating) return;\n this.setState({ activeIndex: newIndex });\n }\n\n render() {\n const { autoPlay, indicators, controls, items, goToIndex, ...props } = this.props;\n const { activeIndex } = this.state;\n\n const slides = items.map((item) => {\n return (\n \n {item.altText}\n \n \n );\n });\n\n return (\n \n {indicators && }\n {slides}\n {controls && }\n {controls && }\n \n );\n }\n}\n\nUncontrolledCarousel.propTypes = propTypes;\nUncontrolledCarousel.defaultProps = {\n controls: true,\n indicators: true,\n autoPlay: true,\n};\n\nexport default UncontrolledCarousel;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'h6'\n};\n\nconst CardSubtitle = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'card-subtitle'\n ), cssModule);\n\n return (\n \n );\n};\n\nCardSubtitle.propTypes = propTypes;\nCardSubtitle.defaultProps = defaultProps;\n\nexport default CardSubtitle;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'p'\n};\n\nconst CardText = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'card-text'\n ), cssModule);\n\n return (\n \n );\n};\n\nCardText.propTypes = propTypes;\nCardText.defaultProps = defaultProps;\n\nexport default CardText;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'h5'\n};\n\nconst CardTitle = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'card-title'\n ), cssModule);\n\n return (\n \n );\n};\n\nCardTitle.propTypes = propTypes;\nCardTitle.defaultProps = defaultProps;\n\nexport default CardTitle;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n className: PropTypes.string,\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n type: PropTypes.string.isRequired,\n label: PropTypes.node,\n inline: PropTypes.bool,\n valid: PropTypes.bool,\n invalid: PropTypes.bool,\n bsSize: PropTypes.string,\n cssModule: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.array, PropTypes.func]),\n innerRef: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.string,\n PropTypes.func,\n ])\n};\n\nfunction CustomInput(props) {\n const {\n className,\n label,\n inline,\n valid,\n invalid,\n cssModule,\n children,\n bsSize,\n innerRef,\n ...attributes\n } = props;\n\n const type = attributes.type;\n\n const customClass = mapToCssModules(classNames(\n className,\n `custom-${type}`,\n bsSize ? `custom-${type}-${bsSize}` : false,\n ), cssModule);\n\n const validationClassNames = mapToCssModules(classNames(\n invalid && 'is-invalid',\n valid && 'is-valid',\n ), cssModule);\n\n if (type === 'select') {\n return ;\n }\n\n if (type === 'file') {\n return (\n
\n \n \n
\n );\n }\n\n if (type !== 'checkbox' && type !== 'radio') {\n return ;\n }\n\n const wrapperClasses = classNames(\n customClass,\n mapToCssModules(classNames(\n 'custom-control',\n { 'custom-control-inline': inline }\n ), cssModule)\n );\n\n return (\n
\n \n \n {children}\n
\n );\n}\n\nCustomInput.propTypes = propTypes;\n\nexport default CustomInput;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport { Arrow, Popper as ReactPopper } from 'react-popper';\nimport { getTarget, targetPropType, mapToCssModules, DOMElement } from './utils';\n\nconst propTypes = {\n children: PropTypes.node.isRequired,\n className: PropTypes.string,\n placement: PropTypes.string,\n placementPrefix: PropTypes.string,\n arrowClassName: PropTypes.string,\n hideArrow: PropTypes.bool,\n tag: PropTypes.string,\n isOpen: PropTypes.bool.isRequired,\n cssModule: PropTypes.object,\n offset: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n fallbackPlacement: PropTypes.oneOfType([PropTypes.string, PropTypes.array]),\n flip: PropTypes.bool,\n container: targetPropType,\n target: targetPropType.isRequired,\n modifiers: PropTypes.object,\n boundariesElement: PropTypes.oneOfType([PropTypes.string, DOMElement]),\n};\n\nconst defaultProps = {\n boundariesElement: 'scrollParent',\n placement: 'auto',\n hideArrow: false,\n isOpen: false,\n offset: 0,\n fallbackPlacement: 'flip',\n flip: true,\n container: 'body',\n modifiers: {},\n};\n\nconst childContextTypes = {\n popperManager: PropTypes.object.isRequired,\n};\n\nclass PopperContent extends React.Component {\n constructor(props) {\n super(props);\n\n this.handlePlacementChange = this.handlePlacementChange.bind(this);\n this.setTargetNode = this.setTargetNode.bind(this);\n this.getTargetNode = this.getTargetNode.bind(this);\n this.state = {};\n }\n\n getChildContext() {\n return {\n popperManager: {\n setTargetNode: this.setTargetNode,\n getTargetNode: this.getTargetNode,\n },\n };\n }\n\n componentDidMount() {\n this.handleProps();\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.isOpen !== prevProps.isOpen) {\n this.handleProps();\n } else if (this._element) {\n // rerender\n this.renderIntoSubtree();\n }\n }\n\n componentWillUnmount() {\n this.hide();\n }\n\n setTargetNode(node) {\n this.targetNode = node;\n }\n\n getTargetNode() {\n return this.targetNode;\n }\n\n getContainerNode() {\n return getTarget(this.props.container);\n }\n\n handlePlacementChange(data) {\n if (this.state.placement !== data.placement) {\n this.setState({ placement: data.placement });\n }\n return data;\n }\n\n handleProps() {\n if (this.props.container !== 'inline') {\n if (this.props.isOpen) {\n this.show();\n } else {\n this.hide();\n }\n }\n }\n\n hide() {\n if (this._element) {\n this.getContainerNode().removeChild(this._element);\n ReactDOM.unmountComponentAtNode(this._element);\n this._element = null;\n }\n }\n\n show() {\n this._element = document.createElement('div');\n this.getContainerNode().appendChild(this._element);\n this.renderIntoSubtree();\n if (this._element.childNodes && this._element.childNodes[0] && this._element.childNodes[0].focus) {\n this._element.childNodes[0].focus();\n }\n }\n\n renderIntoSubtree() {\n ReactDOM.unstable_renderSubtreeIntoContainer(\n this,\n this.renderChildren(),\n this._element\n );\n }\n\n renderChildren() {\n const {\n cssModule,\n children,\n isOpen,\n flip,\n target,\n offset,\n fallbackPlacement,\n placementPrefix,\n arrowClassName: _arrowClassName,\n hideArrow,\n className,\n tag,\n container,\n modifiers,\n boundariesElement,\n ...attrs\n } = this.props;\n const arrowClassName = mapToCssModules(classNames(\n 'arrow',\n _arrowClassName\n ), cssModule);\n const placement = (this.state.placement || attrs.placement).split('-')[0];\n const popperClassName = mapToCssModules(classNames(\n className,\n placementPrefix ? `${placementPrefix}-${placement}` : placement\n ), this.props.cssModule);\n\n const extendedModifiers = {\n offset: { offset },\n flip: { enabled: flip, behavior: fallbackPlacement },\n preventOverflow: { boundariesElement },\n update: {\n enabled: true,\n order: 950,\n fn: this.handlePlacementChange,\n },\n ...modifiers,\n };\n\n return (\n \n {children}\n {!hideArrow && }\n \n );\n }\n\n render() {\n this.setTargetNode(getTarget(this.props.target));\n\n if (this.props.container === 'inline') {\n return this.props.isOpen ? this.renderChildren() : null;\n }\n\n return null;\n }\n}\n\nPopperContent.propTypes = propTypes;\nPopperContent.defaultProps = defaultProps;\nPopperContent.childContextTypes = childContextTypes;\n\nexport default PopperContent;\n","import PropTypes from 'prop-types';\nimport { getTarget, targetPropType } from './utils';\n\nconst PopperTargetHelper = (props, context) => {\n context.popperManager.setTargetNode(getTarget(props.target));\n return null;\n};\n\nPopperTargetHelper.contextTypes = {\n popperManager: PropTypes.object.isRequired,\n};\n\nPopperTargetHelper.propTypes = {\n target: targetPropType.isRequired,\n};\n\nexport default PopperTargetHelper;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport PopperContent from './PopperContent';\nimport { getTarget, mapToCssModules, omit, PopperPlacements, targetPropType, DOMElement } from './utils';\n\nconst propTypes = {\n placement: PropTypes.oneOf(PopperPlacements),\n target: targetPropType.isRequired,\n container: targetPropType,\n boundariesElement: PropTypes.oneOfType([PropTypes.string, DOMElement]),\n isOpen: PropTypes.bool,\n disabled: PropTypes.bool,\n hideArrow: PropTypes.bool,\n className: PropTypes.string,\n innerClassName: PropTypes.string,\n placementPrefix: PropTypes.string,\n cssModule: PropTypes.object,\n toggle: PropTypes.func,\n delay: PropTypes.oneOfType([\n PropTypes.shape({ show: PropTypes.number, hide: PropTypes.number }),\n PropTypes.number,\n ]),\n modifiers: PropTypes.object,\n offset: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n};\n\nconst DEFAULT_DELAYS = {\n show: 0,\n hide: 0,\n};\n\nconst defaultProps = {\n isOpen: false,\n hideArrow: false,\n placement: 'right',\n placementPrefix: 'bs-popover',\n delay: DEFAULT_DELAYS,\n toggle: () => {},\n};\n\nclass Popover extends React.Component {\n constructor(props) {\n super(props);\n\n this.addTargetEvents = this.addTargetEvents.bind(this);\n this.handleDocumentClick = this.handleDocumentClick.bind(this);\n this.removeTargetEvents = this.removeTargetEvents.bind(this);\n this.getRef = this.getRef.bind(this);\n this.toggle = this.toggle.bind(this);\n this.show = this.show.bind(this);\n this.hide = this.hide.bind(this);\n this._target = null;\n }\n componentDidMount() {\n this._target = getTarget(this.props.target);\n this.handleProps();\n }\n\n componentDidUpdate() {\n this.handleProps();\n }\n\n componentWillUnmount() {\n this.clearShowTimeout();\n this.clearHideTimeout();\n this.removeTargetEvents();\n }\n\n getRef(ref) {\n this._popover = ref;\n }\n\n getDelay(key) {\n const { delay } = this.props;\n if (typeof delay === 'object') {\n return isNaN(delay[key]) ? DEFAULT_DELAYS[key] : delay[key];\n }\n return delay;\n }\n\n handleProps() {\n if (this.props.isOpen) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n show() {\n this.clearHideTimeout();\n this.addTargetEvents();\n if (!this.props.isOpen) {\n this.clearShowTimeout();\n this._showTimeout = setTimeout(this.toggle, this.getDelay('show'));\n }\n }\n\n hide() {\n this.clearShowTimeout();\n this.removeTargetEvents();\n if (this.props.isOpen) {\n this.clearHideTimeout();\n this._hideTimeout = setTimeout(this.toggle, this.getDelay('hide'));\n }\n }\n\n clearShowTimeout() {\n clearTimeout(this._showTimeout);\n this._showTimeout = undefined;\n }\n\n clearHideTimeout() {\n clearTimeout(this._hideTimeout);\n this._hideTimeout = undefined;\n }\n\n handleDocumentClick(e) {\n if (this._target) {\n if (e.target !== this._target && !this._target.contains(e.target) && e.target !== this._popover && !(this._popover && this._popover.contains(e.target))) {\n if (this._hideTimeout) {\n this.clearHideTimeout();\n }\n\n if (this.props.isOpen) {\n this.toggle(e);\n }\n }\n }\n }\n\n addTargetEvents() {\n ['click', 'touchstart'].forEach(event =>\n document.addEventListener(event, this.handleDocumentClick, true)\n );\n }\n\n removeTargetEvents() {\n ['click', 'touchstart'].forEach(event =>\n document.removeEventListener(event, this.handleDocumentClick, true)\n );\n }\n\n toggle(e) {\n if (this.props.disabled) {\n return e && e.preventDefault();\n }\n\n return this.props.toggle(e);\n }\n\n render() {\n if (!this.props.isOpen) {\n return null;\n }\n\n const attributes = omit(this.props, Object.keys(propTypes));\n const classes = mapToCssModules(classNames(\n 'popover-inner',\n this.props.innerClassName\n ), this.props.cssModule);\n\n const popperClasses = mapToCssModules(classNames(\n 'popover',\n 'show',\n this.props.className\n ), this.props.cssModule);\n\n return (\n \n
\n \n );\n }\n}\n\nPopover.propTypes = propTypes;\nPopover.defaultProps = defaultProps;\n\nexport default Popover;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'h3'\n};\n\nconst PopoverHeader = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n ...attributes\n } = props;\n\n const classes = mapToCssModules(classNames(\n className,\n 'popover-header'\n ), cssModule);\n\n return (\n \n );\n};\n\nPopoverHeader.propTypes = propTypes;\nPopoverHeader.defaultProps = defaultProps;\n\nexport default PopoverHeader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'div'\n};\n\nconst PopoverBody = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n ...attributes\n } = props;\n\n const classes = mapToCssModules(classNames(\n className,\n 'popover-body'\n ), cssModule);\n\n return (\n \n );\n};\n\nPopoverBody.propTypes = propTypes;\nPopoverBody.defaultProps = defaultProps;\n\nexport default PopoverBody;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport toNumber from 'lodash.tonumber';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n children: PropTypes.node,\n bar: PropTypes.bool,\n multi: PropTypes.bool,\n tag: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n max: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n animated: PropTypes.bool,\n striped: PropTypes.bool,\n color: PropTypes.string,\n className: PropTypes.string,\n barClassName: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'div',\n value: 0,\n max: 100,\n};\n\nconst Progress = (props) => {\n const {\n children,\n className,\n barClassName,\n cssModule,\n value,\n max,\n animated,\n striped,\n color,\n bar,\n multi,\n tag: Tag,\n ...attributes\n } = props;\n\n const percent = ((toNumber(value) / toNumber(max)) * 100);\n\n const progressClasses = mapToCssModules(classNames(\n className,\n 'progress'\n ), cssModule);\n\n const progressBarClasses = mapToCssModules(classNames(\n 'progress-bar',\n bar ? className || barClassName : barClassName,\n animated ? 'progress-bar-animated' : null,\n color ? `bg-${color}` : null,\n striped || animated ? 'progress-bar-striped' : null\n ), cssModule);\n\n const ProgressBar = multi ? children : (\n \n );\n\n if (bar) {\n return ProgressBar;\n }\n\n return (\n \n );\n};\n\nProgress.propTypes = propTypes;\nProgress.defaultProps = defaultProps;\n\nexport default Progress;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { canUseDOM } from './utils';\n\nconst propTypes = {\n children: PropTypes.node.isRequired,\n node: PropTypes.any\n};\n\nclass Portal extends React.Component {\n componentWillUnmount() {\n if (this.defaultNode) {\n document.body.removeChild(this.defaultNode);\n }\n this.defaultNode = null;\n }\n\n render() {\n if (!canUseDOM) {\n return null;\n }\n\n if (!this.props.node && !this.defaultNode) {\n this.defaultNode = document.createElement('div');\n document.body.appendChild(this.defaultNode);\n }\n\n return ReactDOM.createPortal(\n this.props.children,\n this.props.node || this.defaultNode\n );\n }\n}\n\nPortal.propTypes = propTypes;\n\nexport default Portal;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Portal from './Portal';\nimport Fade from './Fade';\nimport {\n getOriginalBodyPadding,\n conditionallyUpdateScrollbar,\n setScrollbarWidth,\n mapToCssModules,\n omit,\n focusableElements,\n TransitionTimeouts\n} from './utils';\n\nfunction noop() { }\n\nconst FadePropTypes = PropTypes.shape(Fade.propTypes);\n\nconst propTypes = {\n isOpen: PropTypes.bool,\n autoFocus: PropTypes.bool,\n centered: PropTypes.bool,\n size: PropTypes.string,\n toggle: PropTypes.func,\n keyboard: PropTypes.bool,\n role: PropTypes.string,\n labelledBy: PropTypes.string,\n backdrop: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.oneOf(['static'])\n ]),\n onEnter: PropTypes.func,\n onExit: PropTypes.func,\n onOpened: PropTypes.func,\n onClosed: PropTypes.func,\n children: PropTypes.node,\n className: PropTypes.string,\n wrapClassName: PropTypes.string,\n modalClassName: PropTypes.string,\n backdropClassName: PropTypes.string,\n contentClassName: PropTypes.string,\n external: PropTypes.node,\n fade: PropTypes.bool,\n cssModule: PropTypes.object,\n zIndex: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n backdropTransition: FadePropTypes,\n modalTransition: FadePropTypes,\n innerRef: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.string,\n PropTypes.func,\n ]),\n};\n\nconst propsToOmit = Object.keys(propTypes);\n\nconst defaultProps = {\n isOpen: false,\n autoFocus: true,\n centered: false,\n role: 'dialog',\n backdrop: true,\n keyboard: true,\n zIndex: 1050,\n fade: true,\n onOpened: noop,\n onClosed: noop,\n modalTransition: {\n timeout: TransitionTimeouts.Modal,\n },\n backdropTransition: {\n mountOnEnter: true,\n timeout: TransitionTimeouts.Fade, // uses standard fade transition\n },\n};\n\nclass Modal extends React.Component {\n constructor(props) {\n super(props);\n\n this._element = null;\n this._originalBodyPadding = null;\n this.getFocusableChildren = this.getFocusableChildren.bind(this);\n this.handleBackdropClick = this.handleBackdropClick.bind(this);\n this.handleBackdropMouseDown = this.handleBackdropMouseDown.bind(this);\n this.handleEscape = this.handleEscape.bind(this);\n this.handleTab = this.handleTab.bind(this);\n this.onOpened = this.onOpened.bind(this);\n this.onClosed = this.onClosed.bind(this);\n\n this.state = {\n isOpen: props.isOpen,\n };\n\n if (props.isOpen) {\n this.init();\n }\n }\n\n componentDidMount() {\n if (this.props.onEnter) {\n this.props.onEnter();\n }\n\n if (this.state.isOpen && this.props.autoFocus) {\n this.setFocus();\n }\n\n this._isMounted = true;\n }\n\n componentWillReceiveProps(nextProps) {\n if (nextProps.isOpen && !this.props.isOpen) {\n this.setState({ isOpen: nextProps.isOpen });\n }\n }\n\n componentWillUpdate(nextProps, nextState) {\n if (nextState.isOpen && !this.state.isOpen) {\n this.init();\n }\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (this.props.autoFocus && this.state.isOpen && !prevState.isOpen) {\n this.setFocus();\n }\n\n if (this._element && prevProps.zIndex !== this.props.zIndex) {\n this._element.style.zIndex = this.props.zIndex;\n }\n }\n\n componentWillUnmount() {\n if (this.props.onExit) {\n this.props.onExit();\n }\n\n if (this.state.isOpen) {\n this.destroy();\n }\n\n this._isMounted = false;\n }\n\n onOpened(node, isAppearing) {\n this.props.onOpened();\n (this.props.modalTransition.onEntered || noop)(node, isAppearing);\n }\n\n onClosed(node) {\n // so all methods get called before it is unmounted\n this.props.onClosed();\n (this.props.modalTransition.onExited || noop)(node);\n this.destroy();\n\n if (this._isMounted) {\n this.setState({ isOpen: false });\n }\n }\n\n setFocus() {\n if (this._dialog && this._dialog.parentNode && typeof this._dialog.parentNode.focus === 'function') {\n this._dialog.parentNode.focus();\n }\n }\n\n getFocusableChildren() {\n return this._element.querySelectorAll(focusableElements.join(', '));\n }\n\n getFocusedChild() {\n let currentFocus;\n const focusableChildren = this.getFocusableChildren();\n\n try {\n currentFocus = document.activeElement;\n } catch (err) {\n currentFocus = focusableChildren[0];\n }\n return currentFocus;\n }\n\n // not mouseUp because scrollbar fires it, shouldn't close when user scrolls\n handleBackdropClick(e) {\n if (e.target === this._mouseDownElement) {\n e.stopPropagation();\n if (!this.props.isOpen || this.props.backdrop !== true) return;\n\n const container = this._dialog;\n\n if (e.target && !container.contains(e.target) && this.props.toggle) {\n this.props.toggle(e);\n }\n }\n }\n\n handleTab(e) {\n if (e.which !== 9) return;\n\n const focusableChildren = this.getFocusableChildren();\n const totalFocusable = focusableChildren.length;\n const currentFocus = this.getFocusedChild();\n\n let focusedIndex = 0;\n\n for (let i = 0; i < totalFocusable; i += 1) {\n if (focusableChildren[i] === currentFocus) {\n focusedIndex = i;\n break;\n }\n }\n\n if (e.shiftKey && focusedIndex === 0) {\n e.preventDefault();\n focusableChildren[totalFocusable - 1].focus();\n } else if (!e.shiftKey && focusedIndex === totalFocusable - 1) {\n e.preventDefault();\n focusableChildren[0].focus();\n }\n }\n\n handleBackdropMouseDown(e) {\n this._mouseDownElement = e.target;\n }\n\n handleEscape(e) {\n if (this.props.isOpen && this.props.keyboard && e.keyCode === 27 && this.props.toggle) {\n this.props.toggle(e);\n }\n }\n\n init() {\n try {\n this._triggeringElement = document.activeElement;\n } catch (err) {\n this._triggeringElement = null;\n }\n this._element = document.createElement('div');\n this._element.setAttribute('tabindex', '-1');\n this._element.style.position = 'relative';\n this._element.style.zIndex = this.props.zIndex;\n this._originalBodyPadding = getOriginalBodyPadding();\n\n conditionallyUpdateScrollbar();\n\n document.body.appendChild(this._element);\n if (Modal.openCount === 0) {\n document.body.className = classNames(\n document.body.className,\n mapToCssModules('modal-open', this.props.cssModule)\n );\n }\n Modal.openCount += 1;\n }\n\n destroy() {\n if (this._element) {\n document.body.removeChild(this._element);\n this._element = null;\n }\n\n if (this._triggeringElement) {\n if (this._triggeringElement.focus) this._triggeringElement.focus();\n this._triggeringElement = null;\n }\n\n if (Modal.openCount <= 1) {\n const modalOpenClassName = mapToCssModules('modal-open', this.props.cssModule);\n // Use regex to prevent matching `modal-open` as part of a different class, e.g. `my-modal-opened`\n const modalOpenClassNameRegex = new RegExp(`(^| )${modalOpenClassName}( |$)`);\n document.body.className = document.body.className.replace(modalOpenClassNameRegex, ' ').trim();\n }\n Modal.openCount -= 1;\n\n setScrollbarWidth(this._originalBodyPadding);\n }\n\n renderModalDialog() {\n const attributes = omit(this.props, propsToOmit);\n const dialogBaseClass = 'modal-dialog';\n\n return (\n {\n this._dialog = c;\n }}\n >\n \n {this.props.children}\n
\n \n );\n }\n\n render() {\n if (this.state.isOpen) {\n const {\n wrapClassName,\n modalClassName,\n backdropClassName,\n cssModule,\n isOpen,\n backdrop,\n role,\n labelledBy,\n external,\n innerRef,\n } = this.props;\n\n const modalAttributes = {\n onClick: this.handleBackdropClick,\n onMouseDown: this.handleBackdropMouseDown,\n onKeyUp: this.handleEscape,\n onKeyDown: this.handleTab,\n style: { display: 'block' },\n 'aria-labelledby': labelledBy,\n role,\n tabIndex: '-1'\n };\n\n const hasTransition = this.props.fade;\n const modalTransition = {\n ...Fade.defaultProps,\n ...this.props.modalTransition,\n baseClass: hasTransition ? this.props.modalTransition.baseClass : '',\n timeout: hasTransition ? this.props.modalTransition.timeout : 0,\n };\n const backdropTransition = {\n ...Fade.defaultProps,\n ...this.props.backdropTransition,\n baseClass: hasTransition ? this.props.backdropTransition.baseClass : '',\n timeout: hasTransition ? this.props.backdropTransition.timeout : 0,\n };\n\n const Backdrop = hasTransition ?\n ()\n :
;\n\n return (\n \n
\n \n {external}\n {this.renderModalDialog()}\n \n {Backdrop}\n
\n
\n );\n }\n\n return null;\n }\n}\n\nModal.propTypes = propTypes;\nModal.defaultProps = defaultProps;\nModal.openCount = 0;\n\nexport default Modal;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n wrapTag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n toggle: PropTypes.func,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n children: PropTypes.node,\n closeAriaLabel: PropTypes.string,\n charCode: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n close: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'h5',\n wrapTag: 'div',\n closeAriaLabel: 'Close',\n charCode: 215,\n};\n\nconst ModalHeader = (props) => {\n let closeButton;\n const {\n className,\n cssModule,\n children,\n toggle,\n tag: Tag,\n wrapTag: WrapTag,\n closeAriaLabel,\n charCode,\n close,\n ...attributes } = props;\n\n const classes = mapToCssModules(classNames(\n className,\n 'modal-header'\n ), cssModule);\n\n if (!close && toggle) {\n const closeIcon = typeof charCode === 'number' ? String.fromCharCode(charCode) : charCode;\n closeButton = (\n \n );\n }\n\n return (\n \n \n {children}\n \n {close || closeButton}\n \n );\n};\n\nModalHeader.propTypes = propTypes;\nModalHeader.defaultProps = defaultProps;\n\nexport default ModalHeader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'div',\n};\n\nconst ModalBody = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n ...attributes } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'modal-body'\n ), cssModule);\n\n return (\n \n );\n};\n\nModalBody.propTypes = propTypes;\nModalBody.defaultProps = defaultProps;\n\nexport default ModalBody;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'div',\n};\n\nconst ModalFooter = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n ...attributes } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'modal-footer'\n ), cssModule);\n\n return (\n \n );\n};\n\nModalFooter.propTypes = propTypes;\nModalFooter.defaultProps = defaultProps;\n\nexport default ModalFooter;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport PopperContent from './PopperContent';\nimport { getTarget, mapToCssModules, omit, PopperPlacements, targetPropType, DOMElement } from './utils';\n\nconst propTypes = {\n placement: PropTypes.oneOf(PopperPlacements),\n target: targetPropType.isRequired,\n container: targetPropType,\n isOpen: PropTypes.bool,\n disabled: PropTypes.bool,\n hideArrow: PropTypes.bool,\n boundariesElement: PropTypes.oneOfType([PropTypes.string, DOMElement]),\n className: PropTypes.string,\n innerClassName: PropTypes.string,\n arrowClassName: PropTypes.string,\n cssModule: PropTypes.object,\n toggle: PropTypes.func,\n autohide: PropTypes.bool,\n placementPrefix: PropTypes.string,\n delay: PropTypes.oneOfType([\n PropTypes.shape({ show: PropTypes.number, hide: PropTypes.number }),\n PropTypes.number,\n ]),\n modifiers: PropTypes.object,\n offset: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number\n ]),\n innerRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.string,\n PropTypes.object\n ]),\n trigger: PropTypes.string,\n};\n\nconst DEFAULT_DELAYS = {\n show: 0,\n hide: 250\n};\n\nconst defaultProps = {\n isOpen: false,\n hideArrow: false,\n placement: 'top',\n placementPrefix: 'bs-tooltip',\n delay: DEFAULT_DELAYS,\n autohide: true,\n toggle: function () { }\n};\n\nclass Tooltip extends React.Component {\n constructor(props) {\n super(props);\n\n this._target = null;\n this.addTargetEvents = this.addTargetEvents.bind(this);\n this.handleDocumentClick = this.handleDocumentClick.bind(this);\n this.removeTargetEvents = this.removeTargetEvents.bind(this);\n this.toggle = this.toggle.bind(this);\n this.onMouseOverTooltip = this.onMouseOverTooltip.bind(this);\n this.onMouseLeaveTooltip = this.onMouseLeaveTooltip.bind(this);\n this.onMouseOverTooltipContent = this.onMouseOverTooltipContent.bind(this);\n this.onMouseLeaveTooltipContent = this.onMouseLeaveTooltipContent.bind(this);\n this.show = this.show.bind(this);\n this.hide = this.hide.bind(this);\n this.onEscKeyDown = this.onEscKeyDown.bind(this);\n }\n\n componentDidMount() {\n this._target = getTarget(this.props.target);\n this.addTargetEvents();\n }\n\n componentWillUnmount() {\n this.clearHideTimeout();\n this.clearShowTimeout();\n this.removeTargetEvents();\n }\n\n onMouseOverTooltip(e) {\n if (this._hideTimeout) {\n this.clearHideTimeout();\n }\n this._showTimeout = setTimeout(this.show.bind(this, e), this.getDelay('show'));\n }\n\n onMouseLeaveTooltip(e) {\n if (this._showTimeout) {\n this.clearShowTimeout();\n }\n this._hideTimeout = setTimeout(this.hide.bind(this, e), this.getDelay('hide'));\n }\n\n onMouseOverTooltipContent() {\n if (this.props.autohide) {\n return;\n }\n if (this._hideTimeout) {\n this.clearHideTimeout();\n }\n }\n\n onMouseLeaveTooltipContent(e) {\n if (this.props.autohide) {\n return;\n }\n if (this._showTimeout) {\n this.clearShowTimeout();\n }\n e.persist();\n this._hideTimeout = setTimeout(this.hide.bind(this, e), this.getDelay('hide'));\n }\n\n onEscKeyDown(e) {\n if (e.key === 'Escape') {\n this.hide(e);\n }\n }\n\n getDelay(key) {\n const { delay } = this.props;\n if (typeof delay === 'object') {\n return isNaN(delay[key]) ? DEFAULT_DELAYS[key] : delay[key];\n }\n return delay;\n }\n\n show(e) {\n if (!this.props.isOpen) {\n this.clearShowTimeout();\n this.toggle(e);\n }\n }\n\n hide(e) {\n if (this.props.isOpen) {\n this.clearHideTimeout();\n this.toggle(e);\n }\n }\n\n clearShowTimeout() {\n clearTimeout(this._showTimeout);\n this._showTimeout = undefined;\n }\n\n clearHideTimeout() {\n clearTimeout(this._hideTimeout);\n this._hideTimeout = undefined;\n }\n\n handleDocumentClick(e) {\n if (this._target !== null && (e.target === this._target || this._target.contains(e.target))) {\n if (this._hideTimeout) {\n this.clearHideTimeout();\n }\n\n if (!this.props.isOpen) {\n this.toggle(e);\n }\n } else if (this.props.isOpen && e.target.getAttribute('role') !== 'tooltip') {\n if (this._showTimeout) {\n this.clearShowTimeout();\n }\n this._hideTimeout = setTimeout(this.hide.bind(this, e), this.getDelay('hide'));\n }\n }\n\n addTargetEvents() {\n if (this.props.trigger) {\n let triggers = this.props.trigger.split(' ');\n if (triggers.indexOf('manual') === -1) {\n if (triggers.indexOf('click') > -1) {\n ['click', 'touchstart'].forEach(event =>\n document.addEventListener(event, this.handleDocumentClick, true)\n );\n }\n if (this._target !== null) {\n if (triggers.indexOf('hover') > -1) {\n this._target.addEventListener('mouseover', this.onMouseOverTooltip, true);\n this._target.addEventListener('mouseout', this.onMouseLeaveTooltip, true);\n }\n if (triggers.indexOf('focus') > -1) {\n this._target.addEventListener('focusin', this.show, true);\n this._target.addEventListener('focusout', this.hide, true);\n }\n this._target.addEventListener('keydown', this.onEscKeyDown, true);\n }\n }\n } else {\n if (this._target !== null) {\n this._target.addEventListener('mouseover', this.onMouseOverTooltip, true);\n this._target.addEventListener('mouseout', this.onMouseLeaveTooltip, true);\n this._target.addEventListener('keydown', this.onEscKeyDown, true);\n this._target.addEventListener('focusin', this.show, true);\n this._target.addEventListener('focusout', this.hide, true);\n }\n ['click', 'touchstart'].forEach(event =>\n document.addEventListener(event, this.handleDocumentClick, true)\n );\n }\n }\n\n removeTargetEvents() {\n if (this._target !== null) {\n this._target.removeEventListener('mouseover', this.onMouseOverTooltip, true);\n this._target.removeEventListener('mouseout', this.onMouseLeaveTooltip, true);\n this._target.addEventListener('keydown', this.onEscKeyDown, true);\n this._target.addEventListener('focusin', this.show, true);\n this._target.addEventListener('focusout', this.hide, true);\n }\n ['click', 'touchstart'].forEach(event =>\n document.removeEventListener(event, this.handleDocumentClick, true)\n );\n }\n\n toggle(e) {\n if (this.props.disabled) {\n return e && e.preventDefault();\n }\n\n return this.props.toggle(e);\n }\n\n render() {\n if (!this.props.isOpen) {\n return null;\n }\n\n const attributes = omit(this.props, Object.keys(propTypes));\n const classes = mapToCssModules(classNames(\n 'tooltip-inner',\n this.props.innerClassName\n ), this.props.cssModule);\n\n const popperClasses = mapToCssModules(classNames(\n 'tooltip',\n 'show',\n this.props.className\n ), this.props.cssModule);\n\n return (\n \n \n \n );\n }\n}\n\nTooltip.propTypes = propTypes;\nTooltip.defaultProps = defaultProps;\n\nexport default Tooltip;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, deprecated } from './utils';\n\nconst propTypes = {\n className: PropTypes.string,\n cssModule: PropTypes.object,\n size: PropTypes.string,\n bordered: PropTypes.bool,\n borderless: PropTypes.bool,\n striped: PropTypes.bool,\n inverse: deprecated(PropTypes.bool, 'Please use the prop \"dark\"'),\n dark: PropTypes.bool,\n hover: PropTypes.bool,\n responsive: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n responsiveTag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n};\n\nconst defaultProps = {\n tag: 'table',\n responsiveTag: 'div',\n};\n\nconst Table = (props) => {\n const {\n className,\n cssModule,\n size,\n bordered,\n borderless,\n striped,\n inverse,\n dark,\n hover,\n responsive,\n tag: Tag,\n responsiveTag: ResponsiveTag,\n ...attributes\n } = props;\n\n const classes = mapToCssModules(classNames(\n className,\n 'table',\n size ? 'table-' + size : false,\n bordered ? 'table-bordered' : false,\n borderless ? 'table-borderless' : false,\n striped ? 'table-striped' : false,\n (dark || inverse) ? 'table-dark' : false,\n hover ? 'table-hover' : false,\n ), cssModule);\n\n const table = ;\n\n if (responsive) {\n const responsiveClassName = responsive === true ? 'table-responsive' : `table-responsive-${responsive}`;\n\n return (\n {table}\n );\n }\n\n return table;\n};\n\nTable.propTypes = propTypes;\nTable.defaultProps = defaultProps;\n\nexport default Table;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n flush: PropTypes.bool,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'ul'\n};\n\nconst ListGroup = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n flush,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'list-group',\n flush ? 'list-group-flush' : false\n ), cssModule);\n\n return (\n \n );\n};\n\nListGroup.propTypes = propTypes;\nListGroup.defaultProps = defaultProps;\n\nexport default ListGroup;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n children: PropTypes.node,\n inline: PropTypes.bool,\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func, PropTypes.string]),\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'form',\n};\nclass Form extends Component {\n constructor(props) {\n super(props);\n this.getRef = this.getRef.bind(this);\n this.submit = this.submit.bind(this);\n }\n\n getRef(ref) {\n if (this.props.innerRef) {\n this.props.innerRef(ref);\n }\n this.ref = ref;\n }\n\n submit() {\n if (this.ref) {\n this.ref.submit();\n }\n }\n\n render() {\n const {\n className,\n cssModule,\n inline,\n tag: Tag,\n innerRef,\n ...attributes\n } = this.props;\n\n const classes = mapToCssModules(classNames(\n className,\n inline ? 'form-inline' : false\n ), cssModule);\n\n return (\n \n );\n }\n}\n\nForm.propTypes = propTypes;\nForm.defaultProps = defaultProps;\n\nexport default Form;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n children: PropTypes.node,\n tag: PropTypes.string,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n valid: PropTypes.bool,\n tooltip: PropTypes.bool\n};\n\nconst defaultProps = {\n tag: 'div',\n valid: undefined\n};\n\nconst FormFeedback = (props) => {\n const {\n className,\n cssModule,\n valid,\n tooltip,\n tag: Tag,\n ...attributes\n } = props;\n\n const validMode = tooltip ? 'tooltip' : 'feedback';\n\n const classes = mapToCssModules(\n classNames(\n className,\n valid ? `valid-${validMode}` : `invalid-${validMode}`\n ),\n cssModule\n );\n\n return ;\n};\n\nFormFeedback.propTypes = propTypes;\nFormFeedback.defaultProps = defaultProps;\n\nexport default FormFeedback;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n children: PropTypes.node,\n row: PropTypes.bool,\n check: PropTypes.bool,\n inline: PropTypes.bool,\n disabled: PropTypes.bool,\n tag: PropTypes.string,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'div',\n};\n\nconst FormGroup = (props) => {\n const {\n className,\n cssModule,\n row,\n disabled,\n check,\n inline,\n tag: Tag,\n ...attributes\n } = props;\n\n const classes = mapToCssModules(classNames(\n className,\n 'position-relative',\n row ? 'row' : false,\n check ? 'form-check' : 'form-group',\n check && inline ? 'form-check-inline' : false,\n check && disabled ? 'disabled' : false\n ), cssModule);\n\n return (\n \n );\n};\n\nFormGroup.propTypes = propTypes;\nFormGroup.defaultProps = defaultProps;\n\nexport default FormGroup;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n children: PropTypes.node,\n inline: PropTypes.bool,\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n color: PropTypes.string,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'small',\n color: 'muted',\n};\n\nconst FormText = (props) => {\n const {\n className,\n cssModule,\n inline,\n color,\n tag: Tag,\n ...attributes\n } = props;\n\n const classes = mapToCssModules(classNames(\n className,\n !inline ? 'form-text' : false,\n color ? `text-${color}` : false\n ), cssModule);\n\n return (\n \n );\n};\n\nFormText.propTypes = propTypes;\nFormText.defaultProps = defaultProps;\n\nexport default FormText;\n","/* eslint react/prefer-stateless-function: 0 */\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, deprecated, warnOnce } from './utils';\n\nconst propTypes = {\n children: PropTypes.node,\n type: PropTypes.string,\n size: PropTypes.string,\n bsSize: PropTypes.string,\n state: deprecated(PropTypes.string, 'Please use the props \"valid\" and \"invalid\" to indicate the state.'),\n valid: PropTypes.bool,\n invalid: PropTypes.bool,\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func, PropTypes.string]),\n static: deprecated(PropTypes.bool, 'Please use the prop \"plaintext\"'),\n plaintext: PropTypes.bool,\n addon: PropTypes.bool,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n type: 'text',\n};\n\nclass Input extends React.Component {\n constructor(props) {\n super(props);\n this.getRef = this.getRef.bind(this);\n this.focus = this.focus.bind(this);\n }\n\n getRef(ref) {\n if (this.props.innerRef) {\n this.props.innerRef(ref);\n }\n this.ref = ref;\n }\n\n focus() {\n if (this.ref) {\n this.ref.focus();\n }\n }\n\n render() {\n let {\n className,\n cssModule,\n type,\n bsSize,\n state,\n valid,\n invalid,\n tag,\n addon,\n static: staticInput,\n plaintext,\n innerRef,\n ...attributes\n } = this.props;\n\n const checkInput = ['radio', 'checkbox'].indexOf(type) > -1;\n const isNotaNumber = new RegExp('\\\\D', 'g');\n\n const fileInput = type === 'file';\n const textareaInput = type === 'textarea';\n const selectInput = type === 'select';\n let Tag = tag || ((selectInput || textareaInput) ? type : 'input');\n\n let formControlClass = 'form-control';\n\n if (plaintext || staticInput) {\n formControlClass = `${formControlClass}-plaintext`;\n Tag = tag || 'p';\n } else if (fileInput) {\n formControlClass = `${formControlClass}-file`;\n } else if (checkInput) {\n if (addon) {\n formControlClass = null;\n } else {\n formControlClass = 'form-check-input';\n }\n }\n\n if (state && typeof valid === 'undefined' && typeof invalid === 'undefined') {\n if (state === 'danger') {\n invalid = true;\n } else if (state === 'success') {\n valid = true;\n }\n }\n\n if (attributes.size && isNotaNumber.test(attributes.size)) {\n warnOnce('Please use the prop \"bsSize\" instead of the \"size\" to bootstrap\\'s input sizing.');\n bsSize = attributes.size;\n delete attributes.size;\n }\n\n const classes = mapToCssModules(classNames(\n className,\n invalid && 'is-invalid',\n valid && 'is-valid',\n bsSize ? `form-control-${bsSize}` : false,\n formControlClass\n ), cssModule);\n\n if (Tag === 'input' || (tag && typeof tag === 'function')) {\n attributes.type = type;\n }\n\n if (attributes.children && !(plaintext || staticInput || type === 'select' || typeof Tag !== 'string' || Tag === 'select')) {\n warnOnce(`Input with a type of \"${type}\" cannot have children. Please use \"value\"/\"defaultValue\" instead.`);\n delete attributes.children;\n }\n\n return (\n \n );\n }\n}\n\nInput.propTypes = propTypes;\nInput.defaultProps = defaultProps;\n\nexport default Input;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n size: PropTypes.string,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'div'\n};\n\nconst InputGroup = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n size,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'input-group',\n size ? `input-group-${size}` : null\n ), cssModule);\n\n return (\n \n );\n};\n\nInputGroup.propTypes = propTypes;\nInputGroup.defaultProps = defaultProps;\n\nexport default InputGroup;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'span'\n};\n\nconst InputGroupText = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n ...attributes\n } = props;\n\n const classes = mapToCssModules(classNames(\n className,\n 'input-group-text'\n ), cssModule);\n\n return (\n \n );\n};\n\nInputGroupText.propTypes = propTypes;\nInputGroupText.defaultProps = defaultProps;\n\nexport default InputGroupText;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\nimport InputGroupText from './InputGroupText';\n\nconst propTypes = {\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n addonType: PropTypes.oneOf(['prepend', 'append']).isRequired,\n children: PropTypes.node,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'div'\n};\n\nconst InputGroupAddon = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n addonType,\n children,\n ...attributes\n } = props;\n\n const classes = mapToCssModules(classNames(\n className,\n 'input-group-' + addonType\n ), cssModule);\n\n // Convenience to assist with transition\n if (typeof children === 'string') {\n return (\n \n \n \n );\n }\n\n return (\n \n );\n};\n\nInputGroupAddon.propTypes = propTypes;\nInputGroupAddon.defaultProps = defaultProps;\n\nexport default InputGroupAddon;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Button from './Button';\nimport InputGroupAddon from './InputGroupAddon';\nimport { warnOnce } from './utils';\n\nconst propTypes = {\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n addonType: PropTypes.oneOf(['prepend', 'append']).isRequired,\n children: PropTypes.node,\n groupClassName: PropTypes.string,\n groupAttributes: PropTypes.object,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst InputGroupButton = (props) => {\n warnOnce('The \"InputGroupButton\" component has been deprecated.\\nPlease use component \"InputGroupAddon\".');\n\n let {\n children,\n groupClassName,\n groupAttributes,\n ...propsWithoutGroup\n } = props;\n\n if (typeof children === 'string') {\n let {\n cssModule,\n tag,\n addonType,\n ...attributes\n } = propsWithoutGroup;\n\n const allGroupAttributes = {\n ...groupAttributes,\n cssModule,\n tag,\n addonType\n };\n\n return (\n \n \n : null}\n {children}\n \n );\n}\n\nAlert.propTypes = propTypes;\nAlert.defaultProps = defaultProps;\n\nexport default Alert;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Transition from 'react-transition-group/Transition';\nimport { mapToCssModules, omit, pick, TransitionTimeouts, TransitionPropTypeKeys, TransitionStatuses } from './utils';\n\nconst propTypes = {\n ...Transition.propTypes,\n isOpen: PropTypes.bool,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node\n ]),\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n className: PropTypes.node,\n navbar: PropTypes.bool,\n cssModule: PropTypes.object,\n innerRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.string,\n PropTypes.object\n ]),\n};\n\nconst defaultProps = {\n ...Transition.defaultProps,\n isOpen: false,\n appear: false,\n enter: true,\n exit: true,\n tag: 'div',\n timeout: TransitionTimeouts.Collapse,\n};\n\nconst transitionStatusToClassHash = {\n [TransitionStatuses.ENTERING]: 'collapsing',\n [TransitionStatuses.ENTERED]: 'collapse show',\n [TransitionStatuses.EXITING]: 'collapsing',\n [TransitionStatuses.EXITED]: 'collapse',\n};\n\nfunction getTransitionClass(status) {\n return transitionStatusToClassHash[status] || 'collapse';\n}\n\nfunction getHeight(node) {\n return node.scrollHeight;\n}\n\nclass Collapse extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n height: null\n };\n\n ['onEntering', 'onEntered', 'onExit', 'onExiting', 'onExited'].forEach((name) => {\n this[name] = this[name].bind(this);\n });\n }\n\n onEntering(node, isAppearing) {\n this.setState({ height: getHeight(node) });\n this.props.onEntering(node, isAppearing);\n }\n\n onEntered(node, isAppearing) {\n this.setState({ height: null });\n this.props.onEntered(node, isAppearing);\n }\n\n onExit(node) {\n this.setState({ height: getHeight(node) });\n this.props.onExit(node);\n }\n\n onExiting(node) {\n // getting this variable triggers a reflow\n const _unused = node.offsetHeight; // eslint-disable-line no-unused-vars\n this.setState({ height: 0 });\n this.props.onExiting(node);\n }\n\n onExited(node) {\n this.setState({ height: null });\n this.props.onExited(node);\n }\n\n render() {\n const {\n tag: Tag,\n isOpen,\n className,\n navbar,\n cssModule,\n children,\n innerRef,\n ...otherProps\n } = this.props;\n\n const { height } = this.state;\n\n // In NODE_ENV=production the Transition.propTypes are wrapped which results in an\n // empty object \"{}\". This is the result of the `react-transition-group` babel\n // configuration settings. Therefore, to ensure that production builds work without\n // error, we can either explicitly define keys or use the Transition.defaultProps.\n // Using the Transition.defaultProps excludes any required props. Thus, the best\n // solution is to explicitly define required props in our utilities and reference these.\n // This also gives us more flexibility in the future to remove the prop-types\n // dependency in distribution builds (Similar to how `react-transition-group` does).\n // Note: Without omitting the `react-transition-group` props, the resulting child\n // Tag component would inherit the Transition properties as attributes for the HTML\n // element which results in errors/warnings for non-valid attributes.\n const transitionProps = pick(otherProps, TransitionPropTypeKeys);\n const childProps = omit(otherProps, TransitionPropTypeKeys);\n return (\n \n {(status) => {\n let collapseClass = getTransitionClass(status);\n const classes = mapToCssModules(classNames(\n className,\n collapseClass,\n navbar && 'navbar-collapse'\n ), cssModule);\n const style = height === null ? null : { height };\n return (\n \n {children}\n \n );\n }}\n \n );\n }\n}\n\nCollapse.propTypes = propTypes;\nCollapse.defaultProps = defaultProps;\nexport default Collapse;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n active: PropTypes.bool,\n disabled: PropTypes.bool,\n color: PropTypes.string,\n action: PropTypes.bool,\n className: PropTypes.any,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'li'\n};\n\nconst handleDisabledOnClick = (e) => {\n e.preventDefault();\n};\n\nconst ListGroupItem = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n active,\n disabled,\n action,\n color,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n active ? 'active' : false,\n disabled ? 'disabled' : false,\n action ? 'list-group-item-action' : false,\n color ? `list-group-item-${color}` : false,\n 'list-group-item'\n ), cssModule);\n\n // Prevent click event when disabled.\n if (disabled) {\n attributes.onClick = handleDisabledOnClick;\n }\n return (\n \n );\n};\n\nListGroupItem.propTypes = propTypes;\nListGroupItem.defaultProps = defaultProps;\n\nexport default ListGroupItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n className: PropTypes.any,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'h5'\n};\n\nconst ListGroupItemHeading = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'list-group-item-heading'\n ), cssModule);\n\n return (\n \n );\n};\n\nListGroupItemHeading.propTypes = propTypes;\nListGroupItemHeading.defaultProps = defaultProps;\n\nexport default ListGroupItemHeading;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n className: PropTypes.any,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'p'\n};\n\nconst ListGroupItemText = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'list-group-item-text'\n ), cssModule);\n\n return (\n \n );\n};\n\nListGroupItemText.propTypes = propTypes;\nListGroupItemText.defaultProps = defaultProps;\n\nexport default ListGroupItemText;\n","import React, { Component } from 'react';\nimport Alert from './Alert';\n\nclass UncontrolledAlert extends Component {\n constructor(props) {\n super(props);\n\n this.state = { isOpen: true };\n this.toggle = this.toggle.bind(this);\n }\n\n toggle() {\n this.setState({ isOpen: !this.state.isOpen });\n }\n\n render() {\n return ;\n }\n}\n\nexport default UncontrolledAlert;\n","import React, { Component } from 'react';\nimport ButtonDropdown from './ButtonDropdown';\n\nexport default class UncontrolledButtonDropdown extends Component {\n constructor(props) {\n super(props);\n\n this.state = { isOpen: false };\n this.toggle = this.toggle.bind(this);\n }\n\n toggle() {\n this.setState({ isOpen: !this.state.isOpen });\n }\n\n render() {\n return ;\n }\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Collapse from './Collapse';\nimport { findDOMElements, defaultToggleEvents, addMultipleEventListeners } from './utils';\n\nconst propTypes = {\n toggler: PropTypes.string.isRequired,\n toggleEvents: PropTypes.arrayOf(PropTypes.string)\n};\n\nconst defaultProps = {\n toggleEvents: defaultToggleEvents\n};\n\nclass UncontrolledCollapse extends Component {\n constructor(props) {\n super(props);\n\n this.togglers = null;\n this.removeEventListeners = null;\n this.toggle = this.toggle.bind(this);\n\n this.state = {\n isOpen: false\n };\n }\n\n componentDidMount() {\n this.togglers = findDOMElements(this.props.toggler);\n if (this.togglers.length) {\n this.removeEventListeners = addMultipleEventListeners(\n this.togglers,\n this.toggle,\n this.props.toggleEvents\n );\n }\n }\n\n componentWillUnmount() {\n if (this.togglers.length && this.removeEventListeners) {\n this.removeEventListeners();\n }\n }\n\n toggle(e) {\n this.setState(({ isOpen }) => ({ isOpen: !isOpen }));\n e.preventDefault();\n }\n\n render() {\n const { toggleEvents, ...rest } = this.props;\n return ;\n }\n}\n\nUncontrolledCollapse.propTypes = propTypes;\nUncontrolledCollapse.defaultProps = defaultProps;\n\nexport default UncontrolledCollapse;\n","import React, { Component } from 'react';\nimport Dropdown from './Dropdown';\n\nexport default class UncontrolledDropdown extends Component {\n constructor(props) {\n super(props);\n\n this.state = { isOpen: false };\n this.toggle = this.toggle.bind(this);\n }\n\n toggle() {\n this.setState({ isOpen: !this.state.isOpen });\n }\n\n render() {\n return ;\n }\n}\n","import React, { Component } from 'react';\nimport Tooltip from './Tooltip';\n\nexport default class UncontrolledTooltip extends Component {\n constructor(props) {\n super(props);\n\n this.state = { isOpen: false };\n this.toggle = this.toggle.bind(this);\n }\n\n toggle() {\n this.setState({ isOpen: !this.state.isOpen });\n }\n\n render() {\n return ;\n }\n}\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","import { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@material-ui/utils\";\n// It should to be noted that this function isn't equivalent to `text-transform: capitalize`.\n//\n// A strict capitalization should uppercase the first letter of each word a the sentence.\n// We only handle the first word.\nexport default function capitalize(string) {\n if (typeof string !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: capitalize(string) expects a string argument.\" : _formatMuiErrorMessage(7));\n }\n\n return string.charAt(0).toUpperCase() + string.slice(1);\n}","import { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@material-ui/utils\";\n\n/* eslint-disable no-use-before-define */\n\n/**\n * Returns a number whose value is limited to the given range.\n *\n * @param {number} value The value to be clamped\n * @param {number} min The lower boundary of the output range\n * @param {number} max The upper boundary of the output range\n * @returns {number} A number in the range [min, max]\n */\nfunction clamp(value) {\n var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n\n if (process.env.NODE_ENV !== 'production') {\n if (value < min || value > max) {\n console.error(\"Material-UI: The value provided \".concat(value, \" is out of range [\").concat(min, \", \").concat(max, \"].\"));\n }\n }\n\n return Math.min(Math.max(min, value), max);\n}\n/**\n * Converts a color from CSS hex format to CSS rgb format.\n *\n * @param {string} color - Hex color, i.e. #nnn or #nnnnnn\n * @returns {string} A CSS rgb color string\n */\n\n\nexport function hexToRgb(color) {\n color = color.substr(1);\n var re = new RegExp(\".{1,\".concat(color.length >= 6 ? 2 : 1, \"}\"), 'g');\n var colors = color.match(re);\n\n if (colors && colors[0].length === 1) {\n colors = colors.map(function (n) {\n return n + n;\n });\n }\n\n return colors ? \"rgb\".concat(colors.length === 4 ? 'a' : '', \"(\").concat(colors.map(function (n, index) {\n return index < 3 ? parseInt(n, 16) : Math.round(parseInt(n, 16) / 255 * 1000) / 1000;\n }).join(', '), \")\") : '';\n}\n\nfunction intToHex(int) {\n var hex = int.toString(16);\n return hex.length === 1 ? \"0\".concat(hex) : hex;\n}\n/**\n * Converts a color from CSS rgb format to CSS hex format.\n *\n * @param {string} color - RGB color, i.e. rgb(n, n, n)\n * @returns {string} A CSS rgb color string, i.e. #nnnnnn\n */\n\n\nexport function rgbToHex(color) {\n // Idempotent\n if (color.indexOf('#') === 0) {\n return color;\n }\n\n var _decomposeColor = decomposeColor(color),\n values = _decomposeColor.values;\n\n return \"#\".concat(values.map(function (n) {\n return intToHex(n);\n }).join(''));\n}\n/**\n * Converts a color from hsl format to rgb format.\n *\n * @param {string} color - HSL color values\n * @returns {string} rgb color values\n */\n\nexport function hslToRgb(color) {\n color = decomposeColor(color);\n var _color = color,\n values = _color.values;\n var h = values[0];\n var s = values[1] / 100;\n var l = values[2] / 100;\n var a = s * Math.min(l, 1 - l);\n\n var f = function f(n) {\n var k = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (n + h / 30) % 12;\n return l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n };\n\n var type = 'rgb';\n var rgb = [Math.round(f(0) * 255), Math.round(f(8) * 255), Math.round(f(4) * 255)];\n\n if (color.type === 'hsla') {\n type += 'a';\n rgb.push(values[3]);\n }\n\n return recomposeColor({\n type: type,\n values: rgb\n });\n}\n/**\n * Returns an object with the type and values of a color.\n *\n * Note: Does not support rgb % values.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {object} - A MUI color object: {type: string, values: number[]}\n */\n\nexport function decomposeColor(color) {\n // Idempotent\n if (color.type) {\n return color;\n }\n\n if (color.charAt(0) === '#') {\n return decomposeColor(hexToRgb(color));\n }\n\n var marker = color.indexOf('(');\n var type = color.substring(0, marker);\n\n if (['rgb', 'rgba', 'hsl', 'hsla'].indexOf(type) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: Unsupported `\".concat(color, \"` color.\\nWe support the following formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla().\") : _formatMuiErrorMessage(3, color));\n }\n\n var values = color.substring(marker + 1, color.length - 1).split(',');\n values = values.map(function (value) {\n return parseFloat(value);\n });\n return {\n type: type,\n values: values\n };\n}\n/**\n * Converts a color object with type and values to a string.\n *\n * @param {object} color - Decomposed color\n * @param {string} color.type - One of: 'rgb', 'rgba', 'hsl', 'hsla'\n * @param {array} color.values - [n,n,n] or [n,n,n,n]\n * @returns {string} A CSS color string\n */\n\nexport function recomposeColor(color) {\n var type = color.type;\n var values = color.values;\n\n if (type.indexOf('rgb') !== -1) {\n // Only convert the first 3 values to int (i.e. not alpha)\n values = values.map(function (n, i) {\n return i < 3 ? parseInt(n, 10) : n;\n });\n } else if (type.indexOf('hsl') !== -1) {\n values[1] = \"\".concat(values[1], \"%\");\n values[2] = \"\".concat(values[2], \"%\");\n }\n\n return \"\".concat(type, \"(\").concat(values.join(', '), \")\");\n}\n/**\n * Calculates the contrast ratio between two colors.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n *\n * @param {string} foreground - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {string} background - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} A contrast ratio value in the range 0 - 21.\n */\n\nexport function getContrastRatio(foreground, background) {\n var lumA = getLuminance(foreground);\n var lumB = getLuminance(background);\n return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05);\n}\n/**\n * The relative brightness of any point in a color space,\n * normalized to 0 for darkest black and 1 for lightest white.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} The relative brightness of the color in the range 0 - 1\n */\n\nexport function getLuminance(color) {\n color = decomposeColor(color);\n var rgb = color.type === 'hsl' ? decomposeColor(hslToRgb(color)).values : color.values;\n rgb = rgb.map(function (val) {\n val /= 255; // normalized\n\n return val <= 0.03928 ? val / 12.92 : Math.pow((val + 0.055) / 1.055, 2.4);\n }); // Truncate at 3 digits\n\n return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3));\n}\n/**\n * Darken or lighten a color, depending on its luminance.\n * Light colors are darkened, dark colors are lightened.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient=0.15 - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function emphasize(color) {\n var coefficient = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.15;\n return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient);\n}\nvar warnedOnce = false;\n/**\n * Set the absolute transparency of a color.\n * Any existing alpha values are overwritten.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} value - value to set the alpha channel to in the range 0 -1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n *\n * @deprecated\n * Use `import { alpha } from '@material-ui/core/styles'` instead.\n */\n\nexport function fade(color, value) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.error(['Material-UI: The `fade` color utility was renamed to `alpha` to better describe its functionality.', '', \"You should use `import { alpha } from '@material-ui/core/styles'`\"].join('\\n'));\n }\n }\n\n return alpha(color, value);\n}\n/**\n * Set the absolute transparency of a color.\n * Any existing alpha value is overwritten.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} value - value to set the alpha channel to in the range 0-1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function alpha(color, value) {\n color = decomposeColor(color);\n value = clamp(value);\n\n if (color.type === 'rgb' || color.type === 'hsl') {\n color.type += 'a';\n }\n\n color.values[3] = value;\n return recomposeColor(color);\n}\n/**\n * Darkens a color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function darken(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clamp(coefficient);\n\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] *= 1 - coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (var i = 0; i < 3; i += 1) {\n color.values[i] *= 1 - coefficient;\n }\n }\n\n return recomposeColor(color);\n}\n/**\n * Lightens a color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function lighten(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clamp(coefficient);\n\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] += (100 - color.values[2]) * coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (var i = 0; i < 3; i += 1) {\n color.values[i] += (255 - color.values[i]) * coefficient;\n }\n }\n\n return recomposeColor(color);\n}","import * as React from 'react';\nimport setRef from './setRef';\nexport default function useForkRef(refA, refB) {\n /**\n * This will create a new function if the ref props change and are defined.\n * This means react will call the old forkRef with `null` and the new forkRef\n * with the ref. Cleanup naturally emerges from this behavior\n */\n return React.useMemo(function () {\n if (refA == null && refB == null) {\n return null;\n }\n\n return function (refValue) {\n setRef(refA, refValue);\n setRef(refB, refValue);\n };\n }, [refA, refB]);\n}","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"./defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","var _typeof = require(\"../helpers/typeof\");\n\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n\n return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n\n var cache = _getRequireWildcardCache();\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nmodule.exports = _interopRequireWildcard;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _utils.createSvgIcon;\n }\n});\n\nvar _utils = require(\"@material-ui/core/utils\");","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes } from '@material-ui/utils';\nimport withStyles from '../styles/withStyles';\nimport capitalize from '../utils/capitalize';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n userSelect: 'none',\n width: '1em',\n height: '1em',\n display: 'inline-block',\n fill: 'currentColor',\n flexShrink: 0,\n fontSize: theme.typography.pxToRem(24),\n transition: theme.transitions.create('fill', {\n duration: theme.transitions.duration.shorter\n })\n },\n\n /* Styles applied to the root element if `color=\"primary\"`. */\n colorPrimary: {\n color: theme.palette.primary.main\n },\n\n /* Styles applied to the root element if `color=\"secondary\"`. */\n colorSecondary: {\n color: theme.palette.secondary.main\n },\n\n /* Styles applied to the root element if `color=\"action\"`. */\n colorAction: {\n color: theme.palette.action.active\n },\n\n /* Styles applied to the root element if `color=\"error\"`. */\n colorError: {\n color: theme.palette.error.main\n },\n\n /* Styles applied to the root element if `color=\"disabled\"`. */\n colorDisabled: {\n color: theme.palette.action.disabled\n },\n\n /* Styles applied to the root element if `fontSize=\"inherit\"`. */\n fontSizeInherit: {\n fontSize: 'inherit'\n },\n\n /* Styles applied to the root element if `fontSize=\"small\"`. */\n fontSizeSmall: {\n fontSize: theme.typography.pxToRem(20)\n },\n\n /* Styles applied to the root element if `fontSize=\"large\"`. */\n fontSizeLarge: {\n fontSize: theme.typography.pxToRem(35)\n }\n };\n};\nvar SvgIcon = /*#__PURE__*/React.forwardRef(function SvgIcon(props, ref) {\n var children = props.children,\n classes = props.classes,\n className = props.className,\n _props$color = props.color,\n color = _props$color === void 0 ? 'inherit' : _props$color,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'svg' : _props$component,\n _props$fontSize = props.fontSize,\n fontSize = _props$fontSize === void 0 ? 'medium' : _props$fontSize,\n htmlColor = props.htmlColor,\n titleAccess = props.titleAccess,\n _props$viewBox = props.viewBox,\n viewBox = _props$viewBox === void 0 ? '0 0 24 24' : _props$viewBox,\n other = _objectWithoutProperties(props, [\"children\", \"classes\", \"className\", \"color\", \"component\", \"fontSize\", \"htmlColor\", \"titleAccess\", \"viewBox\"]);\n\n return /*#__PURE__*/React.createElement(Component, _extends({\n className: clsx(classes.root, className, color !== 'inherit' && classes[\"color\".concat(capitalize(color))], fontSize !== 'default' && fontSize !== 'medium' && classes[\"fontSize\".concat(capitalize(fontSize))]),\n focusable: \"false\",\n viewBox: viewBox,\n color: htmlColor,\n \"aria-hidden\": titleAccess ? undefined : true,\n role: titleAccess ? 'img' : undefined,\n ref: ref\n }, other), children, titleAccess ? /*#__PURE__*/React.createElement(\"title\", null, titleAccess) : null);\n});\nprocess.env.NODE_ENV !== \"production\" ? SvgIcon.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Node passed into the SVG element.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The color of the component. It supports those theme colors that make sense for this component.\n * You can use the `htmlColor` prop to apply a color attribute to the SVG element.\n */\n color: PropTypes.oneOf(['action', 'disabled', 'error', 'inherit', 'primary', 'secondary']),\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * The fontSize applied to the icon. Defaults to 24px, but can be configure to inherit font size.\n */\n fontSize: chainPropTypes(PropTypes.oneOf(['default', 'inherit', 'large', 'medium', 'small']), function (props) {\n var fontSize = props.fontSize;\n\n if (fontSize === 'default') {\n throw new Error('Material-UI: `fontSize=\"default\"` is deprecated. Use `fontSize=\"medium\"` instead.');\n }\n\n return null;\n }),\n\n /**\n * Applies a color attribute to the SVG element.\n */\n htmlColor: PropTypes.string,\n\n /**\n * The shape-rendering attribute. The behavior of the different options is described on the\n * [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/shape-rendering).\n * If you are having issues with blurry icons you should investigate this property.\n */\n shapeRendering: PropTypes.string,\n\n /**\n * Provides a human-readable title for the element that contains it.\n * https://www.w3.org/TR/SVG-access/#Equivalent\n */\n titleAccess: PropTypes.string,\n\n /**\n * Allows you to redefine what the coordinates without units mean inside an SVG element.\n * For example, if the SVG element is 500 (width) by 200 (height),\n * and you pass viewBox=\"0 0 50 20\",\n * this means that the coordinates inside the SVG will go from the top left corner (0,0)\n * to bottom right (50,20) and each unit will be worth 10px.\n */\n viewBox: PropTypes.string\n} : void 0;\nSvgIcon.muiName = 'SvgIcon';\nexport default withStyles(styles, {\n name: 'MuiSvgIcon'\n})(SvgIcon);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport React from 'react';\nimport SvgIcon from '../SvgIcon';\n/**\n * Private module reserved for @material-ui/x packages.\n */\n\nexport default function createSvgIcon(path, displayName) {\n var Component = function Component(props, ref) {\n return /*#__PURE__*/React.createElement(SvgIcon, _extends({\n ref: ref\n }, props), path);\n };\n\n if (process.env.NODE_ENV !== 'production') {\n // Need to set `displayName` on the inner component for React.memo.\n // React prior to 16.14 ignores `displayName` on the wrapper.\n Component.displayName = \"\".concat(displayName, \"Icon\");\n }\n\n Component.muiName = SvgIcon.muiName;\n return /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(Component));\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"../../helpers/esm/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","import getPrototypeOf from \"./getPrototypeOf\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn\";\nexport default function _createSuper(Derived) {\n return function () {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (isNativeReflectConstruct()) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\n// Follow https://material.google.com/motion/duration-easing.html#duration-easing-natural-easing-curves\n// to learn the context in which each easing should be used.\nexport var easing = {\n // This is the most common easing curve.\n easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',\n // Objects enter the screen at full velocity from off-screen and\n // slowly decelerate to a resting point.\n easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)',\n // Objects leave the screen at full velocity. They do not decelerate when off-screen.\n easeIn: 'cubic-bezier(0.4, 0, 1, 1)',\n // The sharp curve is used by objects that may return to the screen at any time.\n sharp: 'cubic-bezier(0.4, 0, 0.6, 1)'\n}; // Follow https://material.io/guidelines/motion/duration-easing.html#duration-easing-common-durations\n// to learn when use what timing\n\nexport var duration = {\n shortest: 150,\n shorter: 200,\n short: 250,\n // most basic recommended timing\n standard: 300,\n // this is to be used in complex animations\n complex: 375,\n // recommended when something is entering screen\n enteringScreen: 225,\n // recommended when something is leaving screen\n leavingScreen: 195\n};\n\nfunction formatMs(milliseconds) {\n return \"\".concat(Math.round(milliseconds), \"ms\");\n}\n/**\n * @param {string|Array} props\n * @param {object} param\n * @param {string} param.prop\n * @param {number} param.duration\n * @param {string} param.easing\n * @param {number} param.delay\n */\n\n\nexport default {\n easing: easing,\n duration: duration,\n create: function create() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['all'];\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var _options$duration = options.duration,\n durationOption = _options$duration === void 0 ? duration.standard : _options$duration,\n _options$easing = options.easing,\n easingOption = _options$easing === void 0 ? easing.easeInOut : _options$easing,\n _options$delay = options.delay,\n delay = _options$delay === void 0 ? 0 : _options$delay,\n other = _objectWithoutProperties(options, [\"duration\", \"easing\", \"delay\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n var isString = function isString(value) {\n return typeof value === 'string';\n };\n\n var isNumber = function isNumber(value) {\n return !isNaN(parseFloat(value));\n };\n\n if (!isString(props) && !Array.isArray(props)) {\n console.error('Material-UI: Argument \"props\" must be a string or Array.');\n }\n\n if (!isNumber(durationOption) && !isString(durationOption)) {\n console.error(\"Material-UI: Argument \\\"duration\\\" must be a number or a string but found \".concat(durationOption, \".\"));\n }\n\n if (!isString(easingOption)) {\n console.error('Material-UI: Argument \"easing\" must be a string.');\n }\n\n if (!isNumber(delay) && !isString(delay)) {\n console.error('Material-UI: Argument \"delay\" must be a number or a string.');\n }\n\n if (Object.keys(other).length !== 0) {\n console.error(\"Material-UI: Unrecognized argument(s) [\".concat(Object.keys(other).join(','), \"].\"));\n }\n }\n\n return (Array.isArray(props) ? props : [props]).map(function (animatedProp) {\n return \"\".concat(animatedProp, \" \").concat(typeof durationOption === 'string' ? durationOption : formatMs(durationOption), \" \").concat(easingOption, \" \").concat(typeof delay === 'string' ? delay : formatMs(delay));\n }).join(',');\n },\n getAutoHeightDuration: function getAutoHeightDuration(height) {\n if (!height) {\n return 0;\n }\n\n var constant = height / 36; // https://www.wolframalpha.com/input/?i=(4+%2B+15+*+(x+%2F+36+)+**+0.25+%2B+(x+%2F+36)+%2F+5)+*+10\n\n return Math.round((4 + 15 * Math.pow(constant, 0.25) + constant / 5) * 10);\n }\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport capitalize from '../utils/capitalize';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n margin: 0\n },\n\n /* Styles applied to the root element if `variant=\"body2\"`. */\n body2: theme.typography.body2,\n\n /* Styles applied to the root element if `variant=\"body1\"`. */\n body1: theme.typography.body1,\n\n /* Styles applied to the root element if `variant=\"caption\"`. */\n caption: theme.typography.caption,\n\n /* Styles applied to the root element if `variant=\"button\"`. */\n button: theme.typography.button,\n\n /* Styles applied to the root element if `variant=\"h1\"`. */\n h1: theme.typography.h1,\n\n /* Styles applied to the root element if `variant=\"h2\"`. */\n h2: theme.typography.h2,\n\n /* Styles applied to the root element if `variant=\"h3\"`. */\n h3: theme.typography.h3,\n\n /* Styles applied to the root element if `variant=\"h4\"`. */\n h4: theme.typography.h4,\n\n /* Styles applied to the root element if `variant=\"h5\"`. */\n h5: theme.typography.h5,\n\n /* Styles applied to the root element if `variant=\"h6\"`. */\n h6: theme.typography.h6,\n\n /* Styles applied to the root element if `variant=\"subtitle1\"`. */\n subtitle1: theme.typography.subtitle1,\n\n /* Styles applied to the root element if `variant=\"subtitle2\"`. */\n subtitle2: theme.typography.subtitle2,\n\n /* Styles applied to the root element if `variant=\"overline\"`. */\n overline: theme.typography.overline,\n\n /* Styles applied to the root element if `variant=\"srOnly\"`. Only accessible to screen readers. */\n srOnly: {\n position: 'absolute',\n height: 1,\n width: 1,\n overflow: 'hidden'\n },\n\n /* Styles applied to the root element if `align=\"left\"`. */\n alignLeft: {\n textAlign: 'left'\n },\n\n /* Styles applied to the root element if `align=\"center\"`. */\n alignCenter: {\n textAlign: 'center'\n },\n\n /* Styles applied to the root element if `align=\"right\"`. */\n alignRight: {\n textAlign: 'right'\n },\n\n /* Styles applied to the root element if `align=\"justify\"`. */\n alignJustify: {\n textAlign: 'justify'\n },\n\n /* Styles applied to the root element if `nowrap={true}`. */\n noWrap: {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap'\n },\n\n /* Styles applied to the root element if `gutterBottom={true}`. */\n gutterBottom: {\n marginBottom: '0.35em'\n },\n\n /* Styles applied to the root element if `paragraph={true}`. */\n paragraph: {\n marginBottom: 16\n },\n\n /* Styles applied to the root element if `color=\"inherit\"`. */\n colorInherit: {\n color: 'inherit'\n },\n\n /* Styles applied to the root element if `color=\"primary\"`. */\n colorPrimary: {\n color: theme.palette.primary.main\n },\n\n /* Styles applied to the root element if `color=\"secondary\"`. */\n colorSecondary: {\n color: theme.palette.secondary.main\n },\n\n /* Styles applied to the root element if `color=\"textPrimary\"`. */\n colorTextPrimary: {\n color: theme.palette.text.primary\n },\n\n /* Styles applied to the root element if `color=\"textSecondary\"`. */\n colorTextSecondary: {\n color: theme.palette.text.secondary\n },\n\n /* Styles applied to the root element if `color=\"error\"`. */\n colorError: {\n color: theme.palette.error.main\n },\n\n /* Styles applied to the root element if `display=\"inline\"`. */\n displayInline: {\n display: 'inline'\n },\n\n /* Styles applied to the root element if `display=\"block\"`. */\n displayBlock: {\n display: 'block'\n }\n };\n};\nvar defaultVariantMapping = {\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n h5: 'h5',\n h6: 'h6',\n subtitle1: 'h6',\n subtitle2: 'h6',\n body1: 'p',\n body2: 'p'\n};\nvar Typography = /*#__PURE__*/React.forwardRef(function Typography(props, ref) {\n var _props$align = props.align,\n align = _props$align === void 0 ? 'inherit' : _props$align,\n classes = props.classes,\n className = props.className,\n _props$color = props.color,\n color = _props$color === void 0 ? 'initial' : _props$color,\n component = props.component,\n _props$display = props.display,\n display = _props$display === void 0 ? 'initial' : _props$display,\n _props$gutterBottom = props.gutterBottom,\n gutterBottom = _props$gutterBottom === void 0 ? false : _props$gutterBottom,\n _props$noWrap = props.noWrap,\n noWrap = _props$noWrap === void 0 ? false : _props$noWrap,\n _props$paragraph = props.paragraph,\n paragraph = _props$paragraph === void 0 ? false : _props$paragraph,\n _props$variant = props.variant,\n variant = _props$variant === void 0 ? 'body1' : _props$variant,\n _props$variantMapping = props.variantMapping,\n variantMapping = _props$variantMapping === void 0 ? defaultVariantMapping : _props$variantMapping,\n other = _objectWithoutProperties(props, [\"align\", \"classes\", \"className\", \"color\", \"component\", \"display\", \"gutterBottom\", \"noWrap\", \"paragraph\", \"variant\", \"variantMapping\"]);\n\n var Component = component || (paragraph ? 'p' : variantMapping[variant] || defaultVariantMapping[variant]) || 'span';\n return /*#__PURE__*/React.createElement(Component, _extends({\n className: clsx(classes.root, className, variant !== 'inherit' && classes[variant], color !== 'initial' && classes[\"color\".concat(capitalize(color))], noWrap && classes.noWrap, gutterBottom && classes.gutterBottom, paragraph && classes.paragraph, align !== 'inherit' && classes[\"align\".concat(capitalize(align))], display !== 'initial' && classes[\"display\".concat(capitalize(display))]),\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? Typography.propTypes = {\n /**\n * Set the text-align on the component.\n */\n align: PropTypes.oneOf(['inherit', 'left', 'center', 'right', 'justify']),\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object.isRequired,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The color of the component. It supports those theme colors that make sense for this component.\n */\n color: PropTypes.oneOf(['initial', 'inherit', 'primary', 'secondary', 'textPrimary', 'textSecondary', 'error']),\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n * Overrides the behavior of the `variantMapping` prop.\n */\n component: PropTypes\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * Controls the display type\n */\n display: PropTypes.oneOf(['initial', 'block', 'inline']),\n\n /**\n * If `true`, the text will have a bottom margin.\n */\n gutterBottom: PropTypes.bool,\n\n /**\n * If `true`, the text will not wrap, but instead will truncate with a text overflow ellipsis.\n *\n * Note that text overflow can only happen with block or inline-block level elements\n * (the element needs to have a width in order to overflow).\n */\n noWrap: PropTypes.bool,\n\n /**\n * If `true`, the text will have a bottom margin.\n */\n paragraph: PropTypes.bool,\n\n /**\n * Applies the theme typography styles.\n */\n variant: PropTypes.oneOf(['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'subtitle1', 'subtitle2', 'body1', 'body2', 'caption', 'button', 'overline', 'srOnly', 'inherit']),\n\n /**\n * The component maps the variant prop to a range of different HTML element types.\n * For instance, subtitle1 to `
`.\n * If you wish to change that mapping, you can provide your own.\n * Alternatively, you can use the `component` prop.\n */\n variantMapping: PropTypes.object\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiTypography'\n})(Typography);","import { useTheme as useThemeWithoutDefault } from '@material-ui/styles';\nimport React from 'react';\nimport defaultTheme from './defaultTheme';\nexport default function useTheme() {\n var theme = useThemeWithoutDefault() || defaultTheme;\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(theme);\n }\n\n return theme;\n}","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","import * as React from 'react';\nvar useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n/**\n * https://github.com/facebook/react/issues/14099#issuecomment-440013892\n *\n * @param {function} fn\n */\n\nexport default function useEventCallback(fn) {\n var ref = React.useRef(fn);\n useEnhancedEffect(function () {\n ref.current = fn;\n });\n return React.useCallback(function () {\n return (0, ref.current).apply(void 0, arguments);\n }, []);\n}","/**\n * Safe chained function\n *\n * Will only create a new function if needed,\n * otherwise will pass back existing functions or null.\n *\n * @param {function} functions to chain\n * @returns {function|null}\n */\nexport default function createChainedFunction() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n return funcs.reduce(function (acc, func) {\n if (func == null) {\n return acc;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof func !== 'function') {\n console.error('Material-UI: Invalid Argument Type, must only provide functions, undefined, or null.');\n }\n }\n\n return function chainedFunction() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n acc.apply(this, args);\n func.apply(this, args);\n };\n }, function () {});\n}","export var reflow = function reflow(node) {\n return node.scrollTop;\n};\nexport function getTransitionProps(props, options) {\n var timeout = props.timeout,\n _props$style = props.style,\n style = _props$style === void 0 ? {} : _props$style;\n return {\n duration: style.transitionDuration || typeof timeout === 'number' ? timeout : timeout[options.mode] || 0,\n delay: style.transitionDelay\n };\n}","export default function deprecatedPropType(validator, reason) {\n if (process.env.NODE_ENV === 'production') {\n return function () {\n return null;\n };\n }\n\n return function (props, propName, componentName, location, propFullName) {\n var componentNameSafe = componentName || '<>';\n var propFullNameSafe = propFullName || propName;\n\n if (typeof props[propName] !== 'undefined') {\n return new Error(\"The \".concat(location, \" `\").concat(propFullNameSafe, \"` of \") + \"`\".concat(componentNameSafe, \"` is deprecated. \").concat(reason));\n }\n\n return null;\n };\n}","// TODO v5: consider to make it private\nexport default function setRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","import * as React from 'react';\nimport FormControlContext from './FormControlContext';\nexport default function useFormControl() {\n return React.useContext(FormControlContext);\n}","export default function formControlState(_ref) {\n var props = _ref.props,\n states = _ref.states,\n muiFormControl = _ref.muiFormControl;\n return states.reduce(function (acc, state) {\n acc[state] = props[state];\n\n if (muiFormControl) {\n if (typeof props[state] === 'undefined') {\n acc[state] = muiFormControl[state];\n }\n }\n\n return acc;\n }, {});\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { alpha, withStyles } from '@material-ui/core/styles';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n display: 'block',\n // Create a \"on paper\" color with sufficient contrast retaining the color\n backgroundColor: alpha(theme.palette.text.primary, theme.palette.type === 'light' ? 0.11 : 0.13),\n height: '1.2em'\n },\n\n /* Styles applied to the root element if `variant=\"text\"`. */\n text: {\n marginTop: 0,\n marginBottom: 0,\n height: 'auto',\n transformOrigin: '0 60%',\n transform: 'scale(1, 0.60)',\n borderRadius: theme.shape.borderRadius,\n '&:empty:before': {\n content: '\"\\\\00a0\"'\n }\n },\n\n /* Styles applied to the root element if `variant=\"rect\"`. */\n rect: {},\n\n /* Styles applied to the root element if `variant=\"circle\"`. */\n circle: {\n borderRadius: '50%'\n },\n\n /* Styles applied to the root element if `animation=\"pulse\"`. */\n pulse: {\n animation: '$pulse 1.5s ease-in-out 0.5s infinite'\n },\n '@keyframes pulse': {\n '0%': {\n opacity: 1\n },\n '50%': {\n opacity: 0.4\n },\n '100%': {\n opacity: 1\n }\n },\n\n /* Styles applied to the root element if `animation=\"wave\"`. */\n wave: {\n position: 'relative',\n overflow: 'hidden',\n '&::after': {\n animation: '$wave 1.6s linear 0.5s infinite',\n background: \"linear-gradient(90deg, transparent, \".concat(theme.palette.action.hover, \", transparent)\"),\n content: '\"\"',\n position: 'absolute',\n transform: 'translateX(-100%)',\n // Avoid flash during server-side hydration\n bottom: 0,\n left: 0,\n right: 0,\n top: 0\n }\n },\n '@keyframes wave': {\n '0%': {\n transform: 'translateX(-100%)'\n },\n '60%': {\n // +0.5s of delay between each loop\n transform: 'translateX(100%)'\n },\n '100%': {\n transform: 'translateX(100%)'\n }\n },\n\n /* Styles applied when the component is passed children. */\n withChildren: {\n '& > *': {\n visibility: 'hidden'\n }\n },\n\n /* Styles applied when the component is passed children and no width. */\n fitContent: {\n maxWidth: 'fit-content'\n },\n\n /* Styles applied when the component is passed children and no height. */\n heightAuto: {\n height: 'auto'\n }\n };\n};\nvar Skeleton = /*#__PURE__*/React.forwardRef(function Skeleton(props, ref) {\n var _props$animation = props.animation,\n animation = _props$animation === void 0 ? 'pulse' : _props$animation,\n classes = props.classes,\n className = props.className,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'span' : _props$component,\n height = props.height,\n _props$variant = props.variant,\n variant = _props$variant === void 0 ? 'text' : _props$variant,\n width = props.width,\n other = _objectWithoutProperties(props, [\"animation\", \"classes\", \"className\", \"component\", \"height\", \"variant\", \"width\"]);\n\n var hasChildren = Boolean(other.children);\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: ref,\n className: clsx(classes.root, classes[variant], className, hasChildren && [classes.withChildren, !width && classes.fitContent, !height && classes.heightAuto], animation !== false && classes[animation])\n }, other, {\n style: _extends({\n width: width,\n height: height\n }, other.style)\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Skeleton.propTypes = {\n /**\n * The animation.\n * If `false` the animation effect is disabled.\n */\n animation: PropTypes.oneOf(['pulse', 'wave', false]),\n\n /**\n * Optional children to infer width and height from.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object.isRequired,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * Height of the skeleton.\n * Useful when you don't want to adapt the skeleton to a text element but for instance a card.\n */\n height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * The type of content that will be rendered.\n */\n variant: PropTypes.oneOf(['text', 'rect', 'circle']),\n\n /**\n * Width of the skeleton.\n * Useful when the skeleton is inside an inline element with no width of its own.\n */\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiSkeleton'\n})(Skeleton);","import * as React from 'react';\n/**\n * @ignore - internal component.\n */\n\nvar ListContext = React.createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n ListContext.displayName = 'ListContext';\n}\n\nexport default ListContext;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport { alpha } from '../styles/colorManipulator';\nimport ButtonBase from '../ButtonBase';\nimport capitalize from '../utils/capitalize';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: _extends({}, theme.typography.button, {\n boxSizing: 'border-box',\n minWidth: 64,\n padding: '6px 16px',\n borderRadius: theme.shape.borderRadius,\n color: theme.palette.text.primary,\n transition: theme.transitions.create(['background-color', 'box-shadow', 'border'], {\n duration: theme.transitions.duration.short\n }),\n '&:hover': {\n textDecoration: 'none',\n backgroundColor: alpha(theme.palette.text.primary, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n },\n '&$disabled': {\n backgroundColor: 'transparent'\n }\n },\n '&$disabled': {\n color: theme.palette.action.disabled\n }\n }),\n\n /* Styles applied to the span element that wraps the children. */\n label: {\n width: '100%',\n // Ensure the correct width for iOS Safari\n display: 'inherit',\n alignItems: 'inherit',\n justifyContent: 'inherit'\n },\n\n /* Styles applied to the root element if `variant=\"text\"`. */\n text: {\n padding: '6px 8px'\n },\n\n /* Styles applied to the root element if `variant=\"text\"` and `color=\"primary\"`. */\n textPrimary: {\n color: theme.palette.primary.main,\n '&:hover': {\n backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n },\n\n /* Styles applied to the root element if `variant=\"text\"` and `color=\"secondary\"`. */\n textSecondary: {\n color: theme.palette.secondary.main,\n '&:hover': {\n backgroundColor: alpha(theme.palette.secondary.main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n },\n\n /* Styles applied to the root element if `variant=\"outlined\"`. */\n outlined: {\n padding: '5px 15px',\n border: \"1px solid \".concat(theme.palette.type === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)'),\n '&$disabled': {\n border: \"1px solid \".concat(theme.palette.action.disabledBackground)\n }\n },\n\n /* Styles applied to the root element if `variant=\"outlined\"` and `color=\"primary\"`. */\n outlinedPrimary: {\n color: theme.palette.primary.main,\n border: \"1px solid \".concat(alpha(theme.palette.primary.main, 0.5)),\n '&:hover': {\n border: \"1px solid \".concat(theme.palette.primary.main),\n backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n },\n\n /* Styles applied to the root element if `variant=\"outlined\"` and `color=\"secondary\"`. */\n outlinedSecondary: {\n color: theme.palette.secondary.main,\n border: \"1px solid \".concat(alpha(theme.palette.secondary.main, 0.5)),\n '&:hover': {\n border: \"1px solid \".concat(theme.palette.secondary.main),\n backgroundColor: alpha(theme.palette.secondary.main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n },\n '&$disabled': {\n border: \"1px solid \".concat(theme.palette.action.disabled)\n }\n },\n\n /* Styles applied to the root element if `variant=\"contained\"`. */\n contained: {\n color: theme.palette.getContrastText(theme.palette.grey[300]),\n backgroundColor: theme.palette.grey[300],\n boxShadow: theme.shadows[2],\n '&:hover': {\n backgroundColor: theme.palette.grey.A100,\n boxShadow: theme.shadows[4],\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n boxShadow: theme.shadows[2],\n backgroundColor: theme.palette.grey[300]\n },\n '&$disabled': {\n backgroundColor: theme.palette.action.disabledBackground\n }\n },\n '&$focusVisible': {\n boxShadow: theme.shadows[6]\n },\n '&:active': {\n boxShadow: theme.shadows[8]\n },\n '&$disabled': {\n color: theme.palette.action.disabled,\n boxShadow: theme.shadows[0],\n backgroundColor: theme.palette.action.disabledBackground\n }\n },\n\n /* Styles applied to the root element if `variant=\"contained\"` and `color=\"primary\"`. */\n containedPrimary: {\n color: theme.palette.primary.contrastText,\n backgroundColor: theme.palette.primary.main,\n '&:hover': {\n backgroundColor: theme.palette.primary.dark,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: theme.palette.primary.main\n }\n }\n },\n\n /* Styles applied to the root element if `variant=\"contained\"` and `color=\"secondary\"`. */\n containedSecondary: {\n color: theme.palette.secondary.contrastText,\n backgroundColor: theme.palette.secondary.main,\n '&:hover': {\n backgroundColor: theme.palette.secondary.dark,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: theme.palette.secondary.main\n }\n }\n },\n\n /* Styles applied to the root element if `disableElevation={true}`. */\n disableElevation: {\n boxShadow: 'none',\n '&:hover': {\n boxShadow: 'none'\n },\n '&$focusVisible': {\n boxShadow: 'none'\n },\n '&:active': {\n boxShadow: 'none'\n },\n '&$disabled': {\n boxShadow: 'none'\n }\n },\n\n /* Pseudo-class applied to the ButtonBase root element if the button is keyboard focused. */\n focusVisible: {},\n\n /* Pseudo-class applied to the root element if `disabled={true}`. */\n disabled: {},\n\n /* Styles applied to the root element if `color=\"inherit\"`. */\n colorInherit: {\n color: 'inherit',\n borderColor: 'currentColor'\n },\n\n /* Styles applied to the root element if `size=\"small\"` and `variant=\"text\"`. */\n textSizeSmall: {\n padding: '4px 5px',\n fontSize: theme.typography.pxToRem(13)\n },\n\n /* Styles applied to the root element if `size=\"large\"` and `variant=\"text\"`. */\n textSizeLarge: {\n padding: '8px 11px',\n fontSize: theme.typography.pxToRem(15)\n },\n\n /* Styles applied to the root element if `size=\"small\"` and `variant=\"outlined\"`. */\n outlinedSizeSmall: {\n padding: '3px 9px',\n fontSize: theme.typography.pxToRem(13)\n },\n\n /* Styles applied to the root element if `size=\"large\"` and `variant=\"outlined\"`. */\n outlinedSizeLarge: {\n padding: '7px 21px',\n fontSize: theme.typography.pxToRem(15)\n },\n\n /* Styles applied to the root element if `size=\"small\"` and `variant=\"contained\"`. */\n containedSizeSmall: {\n padding: '4px 10px',\n fontSize: theme.typography.pxToRem(13)\n },\n\n /* Styles applied to the root element if `size=\"large\"` and `variant=\"contained\"`. */\n containedSizeLarge: {\n padding: '8px 22px',\n fontSize: theme.typography.pxToRem(15)\n },\n\n /* Styles applied to the root element if `size=\"small\"`. */\n sizeSmall: {},\n\n /* Styles applied to the root element if `size=\"large\"`. */\n sizeLarge: {},\n\n /* Styles applied to the root element if `fullWidth={true}`. */\n fullWidth: {\n width: '100%'\n },\n\n /* Styles applied to the startIcon element if supplied. */\n startIcon: {\n display: 'inherit',\n marginRight: 8,\n marginLeft: -4,\n '&$iconSizeSmall': {\n marginLeft: -2\n }\n },\n\n /* Styles applied to the endIcon element if supplied. */\n endIcon: {\n display: 'inherit',\n marginRight: -4,\n marginLeft: 8,\n '&$iconSizeSmall': {\n marginRight: -2\n }\n },\n\n /* Styles applied to the icon element if supplied and `size=\"small\"`. */\n iconSizeSmall: {\n '& > *:first-child': {\n fontSize: 18\n }\n },\n\n /* Styles applied to the icon element if supplied and `size=\"medium\"`. */\n iconSizeMedium: {\n '& > *:first-child': {\n fontSize: 20\n }\n },\n\n /* Styles applied to the icon element if supplied and `size=\"large\"`. */\n iconSizeLarge: {\n '& > *:first-child': {\n fontSize: 22\n }\n }\n };\n};\nvar Button = /*#__PURE__*/React.forwardRef(function Button(props, ref) {\n var children = props.children,\n classes = props.classes,\n className = props.className,\n _props$color = props.color,\n color = _props$color === void 0 ? 'default' : _props$color,\n _props$component = props.component,\n component = _props$component === void 0 ? 'button' : _props$component,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled,\n _props$disableElevati = props.disableElevation,\n disableElevation = _props$disableElevati === void 0 ? false : _props$disableElevati,\n _props$disableFocusRi = props.disableFocusRipple,\n disableFocusRipple = _props$disableFocusRi === void 0 ? false : _props$disableFocusRi,\n endIconProp = props.endIcon,\n focusVisibleClassName = props.focusVisibleClassName,\n _props$fullWidth = props.fullWidth,\n fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,\n _props$size = props.size,\n size = _props$size === void 0 ? 'medium' : _props$size,\n startIconProp = props.startIcon,\n _props$type = props.type,\n type = _props$type === void 0 ? 'button' : _props$type,\n _props$variant = props.variant,\n variant = _props$variant === void 0 ? 'text' : _props$variant,\n other = _objectWithoutProperties(props, [\"children\", \"classes\", \"className\", \"color\", \"component\", \"disabled\", \"disableElevation\", \"disableFocusRipple\", \"endIcon\", \"focusVisibleClassName\", \"fullWidth\", \"size\", \"startIcon\", \"type\", \"variant\"]);\n\n var startIcon = startIconProp && /*#__PURE__*/React.createElement(\"span\", {\n className: clsx(classes.startIcon, classes[\"iconSize\".concat(capitalize(size))])\n }, startIconProp);\n var endIcon = endIconProp && /*#__PURE__*/React.createElement(\"span\", {\n className: clsx(classes.endIcon, classes[\"iconSize\".concat(capitalize(size))])\n }, endIconProp);\n return /*#__PURE__*/React.createElement(ButtonBase, _extends({\n className: clsx(classes.root, classes[variant], className, color === 'inherit' ? classes.colorInherit : color !== 'default' && classes[\"\".concat(variant).concat(capitalize(color))], size !== 'medium' && [classes[\"\".concat(variant, \"Size\").concat(capitalize(size))], classes[\"size\".concat(capitalize(size))]], disableElevation && classes.disableElevation, disabled && classes.disabled, fullWidth && classes.fullWidth),\n component: component,\n disabled: disabled,\n focusRipple: !disableFocusRipple,\n focusVisibleClassName: clsx(classes.focusVisible, focusVisibleClassName),\n ref: ref,\n type: type\n }, other), /*#__PURE__*/React.createElement(\"span\", {\n className: classes.label\n }, startIcon, children, endIcon));\n});\nprocess.env.NODE_ENV !== \"production\" ? Button.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the button.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The color of the component. It supports those theme colors that make sense for this component.\n */\n color: PropTypes.oneOf(['default', 'inherit', 'primary', 'secondary']),\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * If `true`, the button will be disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, no elevation is used.\n */\n disableElevation: PropTypes.bool,\n\n /**\n * If `true`, the keyboard focus ripple will be disabled.\n */\n disableFocusRipple: PropTypes.bool,\n\n /**\n * If `true`, the ripple effect will be disabled.\n *\n * ⚠️ Without a ripple there is no styling for :focus-visible by default. Be sure\n * to highlight the element by applying separate styles with the `focusVisibleClassName`.\n */\n disableRipple: PropTypes.bool,\n\n /**\n * Element placed after the children.\n */\n endIcon: PropTypes.node,\n\n /**\n * @ignore\n */\n focusVisibleClassName: PropTypes.string,\n\n /**\n * If `true`, the button will take up the full width of its container.\n */\n fullWidth: PropTypes.bool,\n\n /**\n * The URL to link to when the button is clicked.\n * If defined, an `a` element will be used as the root node.\n */\n href: PropTypes.string,\n\n /**\n * The size of the button.\n * `small` is equivalent to the dense button styling.\n */\n size: PropTypes.oneOf(['large', 'medium', 'small']),\n\n /**\n * Element placed before the children.\n */\n startIcon: PropTypes.node,\n\n /**\n * @ignore\n */\n type: PropTypes.oneOfType([PropTypes.oneOf(['button', 'reset', 'submit']), PropTypes.string]),\n\n /**\n * The variant to use.\n */\n variant: PropTypes.oneOf(['contained', 'outlined', 'text'])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiButton'\n})(Button);","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","// Corresponds to 10 frames at 60 Hz.\n// A few bytes payload overhead when lodash/debounce is ~3 kB and debounce ~300 B.\nexport default function debounce(func) {\n var wait = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 166;\n var timeout;\n\n function debounced() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n // eslint-disable-next-line consistent-this\n var that = this;\n\n var later = function later() {\n func.apply(that, args);\n };\n\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n }\n\n debounced.clear = function () {\n clearTimeout(timeout);\n };\n\n return debounced;\n}","/* eslint-disable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */\nimport * as React from 'react';\nexport default function useControlled(_ref) {\n var controlled = _ref.controlled,\n defaultProp = _ref.default,\n name = _ref.name,\n _ref$state = _ref.state,\n state = _ref$state === void 0 ? 'value' : _ref$state;\n\n var _React$useRef = React.useRef(controlled !== undefined),\n isControlled = _React$useRef.current;\n\n var _React$useState = React.useState(defaultProp),\n valueState = _React$useState[0],\n setValue = _React$useState[1];\n\n var value = isControlled ? controlled : valueState;\n\n if (process.env.NODE_ENV !== 'production') {\n React.useEffect(function () {\n if (isControlled !== (controlled !== undefined)) {\n console.error([\"Material-UI: A component is changing the \".concat(isControlled ? '' : 'un', \"controlled \").concat(state, \" state of \").concat(name, \" to be \").concat(isControlled ? 'un' : '', \"controlled.\"), 'Elements should not switch from uncontrolled to controlled (or vice versa).', \"Decide between using a controlled or uncontrolled \".concat(name, \" \") + 'element for the lifetime of the component.', \"The nature of the state is determined during the first render, it's considered controlled if the value is not `undefined`.\", 'More info: https://fb.me/react-controlled-components'].join('\\n'));\n }\n }, [controlled]);\n\n var _React$useRef2 = React.useRef(defaultProp),\n defaultValue = _React$useRef2.current;\n\n React.useEffect(function () {\n if (!isControlled && defaultValue !== defaultProp) {\n console.error([\"Material-UI: A component is changing the default \".concat(state, \" state of an uncontrolled \").concat(name, \" after being initialized. \") + \"To suppress this warning opt to use a controlled \".concat(name, \".\")].join('\\n'));\n }\n }, [JSON.stringify(defaultProp)]);\n }\n\n var setValueIfUncontrolled = React.useCallback(function (newValue) {\n if (!isControlled) {\n setValue(newValue);\n }\n }, []);\n return [value, setValueIfUncontrolled];\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z\"\n}), 'Cancel');\n\nexports.default = _default;","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import * as React from 'react';\nexport default function isMuiElement(element, muiNames) {\n return /*#__PURE__*/React.isValidElement(element) && muiNames.indexOf(element.type.muiName) !== -1;\n}","import * as React from 'react';\n/**\n * @ignore - internal component.\n */\n\nvar Tablelvl2Context = React.createContext();\n\nif (process.env.NODE_ENV !== 'production') {\n Tablelvl2Context.displayName = 'Tablelvl2Context';\n}\n\nexport default Tablelvl2Context;","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","module.exports = require('./lib/axios');","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');\n\nexports.default = _default;","import * as React from 'react';\n/**\n * Private module reserved for @material-ui/x packages.\n */\n\nexport default function useId(idOverride) {\n var _React$useState = React.useState(idOverride),\n defaultId = _React$useState[0],\n setDefaultId = _React$useState[1];\n\n var id = idOverride || defaultId;\n React.useEffect(function () {\n if (defaultId == null) {\n // Fallback to this default id when possible.\n // Use the random value for client-side rendering only.\n // We can't use it server-side.\n setDefaultId(\"mui-\".concat(Math.round(Math.random() * 1e5)));\n }\n }, [defaultId]);\n return id;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z\"\n}), 'Refresh');\n\nexports.default = _default;","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","import * as React from 'react';\n/**\n * @ignore - internal component.\n */\n\nvar FormControlContext = React.createContext();\n\nif (process.env.NODE_ENV !== 'production') {\n FormControlContext.displayName = 'FormControlContext';\n}\n\nexport function useFormControl() {\n return React.useContext(FormControlContext);\n}\nexport default FormControlContext;","// Supports determination of isControlled().\n// Controlled input accepts its current value as a prop.\n//\n// @see https://facebook.github.io/react/docs/forms.html#controlled-components\n// @param value\n// @returns {boolean} true if string (including '') or number (including zero)\nexport function hasValue(value) {\n return value != null && !(Array.isArray(value) && value.length === 0);\n} // Determine if field is empty or filled.\n// Response determines if label is presented above field or as placeholder.\n//\n// @param obj\n// @param SSR\n// @returns {boolean} False when not present or empty string.\n// True when any number or string with length.\n\nexport function isFilled(obj) {\n var SSR = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return obj && (hasValue(obj.value) && obj.value !== '' || SSR && hasValue(obj.defaultValue) && obj.defaultValue !== '');\n} // Determine if an Input is adorned on start.\n// It's corresponding to the left with LTR.\n//\n// @param obj\n// @returns {boolean} False when no adornments.\n// True when adorned at the start.\n\nexport function isAdornedStart(obj) {\n return obj.startAdornment;\n}","var isProduction = process.env.NODE_ENV === 'production';\nfunction warning(condition, message) {\n if (!isProduction) {\n if (condition) {\n return;\n }\n\n var text = \"Warning: \" + message;\n\n if (typeof console !== 'undefined') {\n console.warn(text);\n }\n\n try {\n throw Error(text);\n } catch (x) {}\n }\n}\n\nexport default warning;\n","// based on https://github.com/WICG/focus-visible/blob/v4.1.5/src/focus-visible.js\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nvar hadKeyboardEvent = true;\nvar hadFocusVisibleRecently = false;\nvar hadFocusVisibleRecentlyTimeout = null;\nvar inputTypesWhitelist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n};\n/**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} node\n * @return {boolean}\n */\n\nfunction focusTriggersKeyboardModality(node) {\n var type = node.type,\n tagName = node.tagName;\n\n if (tagName === 'INPUT' && inputTypesWhitelist[type] && !node.readOnly) {\n return true;\n }\n\n if (tagName === 'TEXTAREA' && !node.readOnly) {\n return true;\n }\n\n if (node.isContentEditable) {\n return true;\n }\n\n return false;\n}\n/**\n * Keep track of our keyboard modality state with `hadKeyboardEvent`.\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * @param {KeyboardEvent} event\n */\n\n\nfunction handleKeyDown(event) {\n if (event.metaKey || event.altKey || event.ctrlKey) {\n return;\n }\n\n hadKeyboardEvent = true;\n}\n/**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n */\n\n\nfunction handlePointerDown() {\n hadKeyboardEvent = false;\n}\n\nfunction handleVisibilityChange() {\n if (this.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n }\n}\n\nfunction prepare(doc) {\n doc.addEventListener('keydown', handleKeyDown, true);\n doc.addEventListener('mousedown', handlePointerDown, true);\n doc.addEventListener('pointerdown', handlePointerDown, true);\n doc.addEventListener('touchstart', handlePointerDown, true);\n doc.addEventListener('visibilitychange', handleVisibilityChange, true);\n}\n\nexport function teardown(doc) {\n doc.removeEventListener('keydown', handleKeyDown, true);\n doc.removeEventListener('mousedown', handlePointerDown, true);\n doc.removeEventListener('pointerdown', handlePointerDown, true);\n doc.removeEventListener('touchstart', handlePointerDown, true);\n doc.removeEventListener('visibilitychange', handleVisibilityChange, true);\n}\n\nfunction isFocusVisible(event) {\n var target = event.target;\n\n try {\n return target.matches(':focus-visible');\n } catch (error) {} // browsers not implementing :focus-visible will throw a SyntaxError\n // we use our own heuristic for those browsers\n // rethrow might be better if it's not the expected error but do we really\n // want to crash if focus-visible malfunctioned?\n // no need for validFocusTarget check. the user does that by attaching it to\n // focusable events only\n\n\n return hadKeyboardEvent || focusTriggersKeyboardModality(target);\n}\n/**\n * Should be called if a blur event is fired on a focus-visible element\n */\n\n\nfunction handleBlurVisible() {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(function () {\n hadFocusVisibleRecently = false;\n }, 100);\n}\n\nexport default function useIsFocusVisible() {\n var ref = React.useCallback(function (instance) {\n var node = ReactDOM.findDOMNode(instance);\n\n if (node != null) {\n prepare(node.ownerDocument);\n }\n }, []);\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(isFocusVisible);\n }\n\n return {\n isFocusVisible: isFocusVisible,\n onBlurVisible: handleBlurVisible,\n ref: ref\n };\n}","import ownerDocument from './ownerDocument';\nexport default function ownerWindow(node) {\n var doc = ownerDocument(node);\n return doc.defaultView || window;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z\"\n}), 'Delete');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"\n}), 'Add');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"\n}), 'CheckCircle');\n\nexports.default = _default;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\n// Sorted ASC by size. That's important.\n// It can't be configured as it's used statically for propTypes.\nexport var keys = ['xs', 'sm', 'md', 'lg', 'xl']; // Keep in mind that @media is inclusive by the CSS specification.\n\nexport default function createBreakpoints(breakpoints) {\n var _breakpoints$values = breakpoints.values,\n values = _breakpoints$values === void 0 ? {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920\n } : _breakpoints$values,\n _breakpoints$unit = breakpoints.unit,\n unit = _breakpoints$unit === void 0 ? 'px' : _breakpoints$unit,\n _breakpoints$step = breakpoints.step,\n step = _breakpoints$step === void 0 ? 5 : _breakpoints$step,\n other = _objectWithoutProperties(breakpoints, [\"values\", \"unit\", \"step\"]);\n\n function up(key) {\n var value = typeof values[key] === 'number' ? values[key] : key;\n return \"@media (min-width:\".concat(value).concat(unit, \")\");\n }\n\n function down(key) {\n var endIndex = keys.indexOf(key) + 1;\n var upperbound = values[keys[endIndex]];\n\n if (endIndex === keys.length) {\n // xl down applies to all sizes\n return up('xs');\n }\n\n var value = typeof upperbound === 'number' && endIndex > 0 ? upperbound : key;\n return \"@media (max-width:\".concat(value - step / 100).concat(unit, \")\");\n }\n\n function between(start, end) {\n var endIndex = keys.indexOf(end);\n\n if (endIndex === keys.length - 1) {\n return up(start);\n }\n\n return \"@media (min-width:\".concat(typeof values[start] === 'number' ? values[start] : start).concat(unit, \") and \") + \"(max-width:\".concat((endIndex !== -1 && typeof values[keys[endIndex + 1]] === 'number' ? values[keys[endIndex + 1]] : end) - step / 100).concat(unit, \")\");\n }\n\n function only(key) {\n return between(key, key);\n }\n\n var warnedOnce = false;\n\n function width(key) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.warn([\"Material-UI: The `theme.breakpoints.width` utility is deprecated because it's redundant.\", 'Use the `theme.breakpoints.values` instead.'].join('\\n'));\n }\n }\n\n return values[key];\n }\n\n return _extends({\n keys: keys,\n values: values,\n up: up,\n down: down,\n between: between,\n only: only,\n width: width\n }, other);\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nexport default function createMixins(breakpoints, spacing, mixins) {\n var _toolbar;\n\n return _extends({\n gutters: function gutters() {\n var styles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n console.warn(['Material-UI: theme.mixins.gutters() is deprecated.', 'You can use the source of the mixin directly:', \"\\n paddingLeft: theme.spacing(2),\\n paddingRight: theme.spacing(2),\\n [theme.breakpoints.up('sm')]: {\\n paddingLeft: theme.spacing(3),\\n paddingRight: theme.spacing(3),\\n },\\n \"].join('\\n'));\n return _extends({\n paddingLeft: spacing(2),\n paddingRight: spacing(2)\n }, styles, _defineProperty({}, breakpoints.up('sm'), _extends({\n paddingLeft: spacing(3),\n paddingRight: spacing(3)\n }, styles[breakpoints.up('sm')])));\n },\n toolbar: (_toolbar = {\n minHeight: 56\n }, _defineProperty(_toolbar, \"\".concat(breakpoints.up('xs'), \" and (orientation: landscape)\"), {\n minHeight: 48\n }), _defineProperty(_toolbar, breakpoints.up('sm'), {\n minHeight: 64\n }), _toolbar)\n }, mixins);\n}","var common = {\n black: '#000',\n white: '#fff'\n};\nexport default common;","var grey = {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#eeeeee',\n 300: '#e0e0e0',\n 400: '#bdbdbd',\n 500: '#9e9e9e',\n 600: '#757575',\n 700: '#616161',\n 800: '#424242',\n 900: '#212121',\n A100: '#d5d5d5',\n A200: '#aaaaaa',\n A400: '#303030',\n A700: '#616161'\n};\nexport default grey;","var indigo = {\n 50: '#e8eaf6',\n 100: '#c5cae9',\n 200: '#9fa8da',\n 300: '#7986cb',\n 400: '#5c6bc0',\n 500: '#3f51b5',\n 600: '#3949ab',\n 700: '#303f9f',\n 800: '#283593',\n 900: '#1a237e',\n A100: '#8c9eff',\n A200: '#536dfe',\n A400: '#3d5afe',\n A700: '#304ffe'\n};\nexport default indigo;","var pink = {\n 50: '#fce4ec',\n 100: '#f8bbd0',\n 200: '#f48fb1',\n 300: '#f06292',\n 400: '#ec407a',\n 500: '#e91e63',\n 600: '#d81b60',\n 700: '#c2185b',\n 800: '#ad1457',\n 900: '#880e4f',\n A100: '#ff80ab',\n A200: '#ff4081',\n A400: '#f50057',\n A700: '#c51162'\n};\nexport default pink;","var red = {\n 50: '#ffebee',\n 100: '#ffcdd2',\n 200: '#ef9a9a',\n 300: '#e57373',\n 400: '#ef5350',\n 500: '#f44336',\n 600: '#e53935',\n 700: '#d32f2f',\n 800: '#c62828',\n 900: '#b71c1c',\n A100: '#ff8a80',\n A200: '#ff5252',\n A400: '#ff1744',\n A700: '#d50000'\n};\nexport default red;","var orange = {\n 50: '#fff3e0',\n 100: '#ffe0b2',\n 200: '#ffcc80',\n 300: '#ffb74d',\n 400: '#ffa726',\n 500: '#ff9800',\n 600: '#fb8c00',\n 700: '#f57c00',\n 800: '#ef6c00',\n 900: '#e65100',\n A100: '#ffd180',\n A200: '#ffab40',\n A400: '#ff9100',\n A700: '#ff6d00'\n};\nexport default orange;","var blue = {\n 50: '#e3f2fd',\n 100: '#bbdefb',\n 200: '#90caf9',\n 300: '#64b5f6',\n 400: '#42a5f5',\n 500: '#2196f3',\n 600: '#1e88e5',\n 700: '#1976d2',\n 800: '#1565c0',\n 900: '#0d47a1',\n A100: '#82b1ff',\n A200: '#448aff',\n A400: '#2979ff',\n A700: '#2962ff'\n};\nexport default blue;","var green = {\n 50: '#e8f5e9',\n 100: '#c8e6c9',\n 200: '#a5d6a7',\n 300: '#81c784',\n 400: '#66bb6a',\n 500: '#4caf50',\n 600: '#43a047',\n 700: '#388e3c',\n 800: '#2e7d32',\n 900: '#1b5e20',\n A100: '#b9f6ca',\n A200: '#69f0ae',\n A400: '#00e676',\n A700: '#00c853'\n};\nexport default green;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@material-ui/utils\";\nimport { deepmerge } from '@material-ui/utils';\nimport common from '../colors/common';\nimport grey from '../colors/grey';\nimport indigo from '../colors/indigo';\nimport pink from '../colors/pink';\nimport red from '../colors/red';\nimport orange from '../colors/orange';\nimport blue from '../colors/blue';\nimport green from '../colors/green';\nimport { darken, getContrastRatio, lighten } from './colorManipulator';\nexport var light = {\n // The colors used to style the text.\n text: {\n // The most important text.\n primary: 'rgba(0, 0, 0, 0.87)',\n // Secondary text.\n secondary: 'rgba(0, 0, 0, 0.54)',\n // Disabled text have even lower visual prominence.\n disabled: 'rgba(0, 0, 0, 0.38)',\n // Text hints.\n hint: 'rgba(0, 0, 0, 0.38)'\n },\n // The color used to divide different elements.\n divider: 'rgba(0, 0, 0, 0.12)',\n // The background colors used to style the surfaces.\n // Consistency between these values is important.\n background: {\n paper: common.white,\n default: grey[50]\n },\n // The colors used to style the action elements.\n action: {\n // The color of an active action like an icon button.\n active: 'rgba(0, 0, 0, 0.54)',\n // The color of an hovered action.\n hover: 'rgba(0, 0, 0, 0.04)',\n hoverOpacity: 0.04,\n // The color of a selected action.\n selected: 'rgba(0, 0, 0, 0.08)',\n selectedOpacity: 0.08,\n // The color of a disabled action.\n disabled: 'rgba(0, 0, 0, 0.26)',\n // The background color of a disabled action.\n disabledBackground: 'rgba(0, 0, 0, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(0, 0, 0, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.12\n }\n};\nexport var dark = {\n text: {\n primary: common.white,\n secondary: 'rgba(255, 255, 255, 0.7)',\n disabled: 'rgba(255, 255, 255, 0.5)',\n hint: 'rgba(255, 255, 255, 0.5)',\n icon: 'rgba(255, 255, 255, 0.5)'\n },\n divider: 'rgba(255, 255, 255, 0.12)',\n background: {\n paper: grey[800],\n default: '#303030'\n },\n action: {\n active: common.white,\n hover: 'rgba(255, 255, 255, 0.08)',\n hoverOpacity: 0.08,\n selected: 'rgba(255, 255, 255, 0.16)',\n selectedOpacity: 0.16,\n disabled: 'rgba(255, 255, 255, 0.3)',\n disabledBackground: 'rgba(255, 255, 255, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(255, 255, 255, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.24\n }\n};\n\nfunction addLightOrDark(intent, direction, shade, tonalOffset) {\n var tonalOffsetLight = tonalOffset.light || tonalOffset;\n var tonalOffsetDark = tonalOffset.dark || tonalOffset * 1.5;\n\n if (!intent[direction]) {\n if (intent.hasOwnProperty(shade)) {\n intent[direction] = intent[shade];\n } else if (direction === 'light') {\n intent.light = lighten(intent.main, tonalOffsetLight);\n } else if (direction === 'dark') {\n intent.dark = darken(intent.main, tonalOffsetDark);\n }\n }\n}\n\nexport default function createPalette(palette) {\n var _palette$primary = palette.primary,\n primary = _palette$primary === void 0 ? {\n light: indigo[300],\n main: indigo[500],\n dark: indigo[700]\n } : _palette$primary,\n _palette$secondary = palette.secondary,\n secondary = _palette$secondary === void 0 ? {\n light: pink.A200,\n main: pink.A400,\n dark: pink.A700\n } : _palette$secondary,\n _palette$error = palette.error,\n error = _palette$error === void 0 ? {\n light: red[300],\n main: red[500],\n dark: red[700]\n } : _palette$error,\n _palette$warning = palette.warning,\n warning = _palette$warning === void 0 ? {\n light: orange[300],\n main: orange[500],\n dark: orange[700]\n } : _palette$warning,\n _palette$info = palette.info,\n info = _palette$info === void 0 ? {\n light: blue[300],\n main: blue[500],\n dark: blue[700]\n } : _palette$info,\n _palette$success = palette.success,\n success = _palette$success === void 0 ? {\n light: green[300],\n main: green[500],\n dark: green[700]\n } : _palette$success,\n _palette$type = palette.type,\n type = _palette$type === void 0 ? 'light' : _palette$type,\n _palette$contrastThre = palette.contrastThreshold,\n contrastThreshold = _palette$contrastThre === void 0 ? 3 : _palette$contrastThre,\n _palette$tonalOffset = palette.tonalOffset,\n tonalOffset = _palette$tonalOffset === void 0 ? 0.2 : _palette$tonalOffset,\n other = _objectWithoutProperties(palette, [\"primary\", \"secondary\", \"error\", \"warning\", \"info\", \"success\", \"type\", \"contrastThreshold\", \"tonalOffset\"]); // Use the same logic as\n // Bootstrap: https://github.com/twbs/bootstrap/blob/1d6e3710dd447de1a200f29e8fa521f8a0908f70/scss/_functions.scss#L59\n // and material-components-web https://github.com/material-components/material-components-web/blob/ac46b8863c4dab9fc22c4c662dc6bd1b65dd652f/packages/mdc-theme/_functions.scss#L54\n\n\n function getContrastText(background) {\n var contrastText = getContrastRatio(background, dark.text.primary) >= contrastThreshold ? dark.text.primary : light.text.primary;\n\n if (process.env.NODE_ENV !== 'production') {\n var contrast = getContrastRatio(background, contrastText);\n\n if (contrast < 3) {\n console.error([\"Material-UI: The contrast ratio of \".concat(contrast, \":1 for \").concat(contrastText, \" on \").concat(background), 'falls below the WCAG recommended absolute minimum contrast ratio of 3:1.', 'https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast'].join('\\n'));\n }\n }\n\n return contrastText;\n }\n\n var augmentColor = function augmentColor(color) {\n var mainShade = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;\n var lightShade = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 300;\n var darkShade = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 700;\n color = _extends({}, color);\n\n if (!color.main && color[mainShade]) {\n color.main = color[mainShade];\n }\n\n if (!color.main) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: The color provided to augmentColor(color) is invalid.\\nThe color object needs to have a `main` property or a `\".concat(mainShade, \"` property.\") : _formatMuiErrorMessage(4, mainShade));\n }\n\n if (typeof color.main !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: The color provided to augmentColor(color) is invalid.\\n`color.main` should be a string, but `\".concat(JSON.stringify(color.main), \"` was provided instead.\\n\\nDid you intend to use one of the following approaches?\\n\\nimport {\\xA0green } from \\\"@material-ui/core/colors\\\";\\n\\nconst theme1 = createTheme({ palette: {\\n primary: green,\\n} });\\n\\nconst theme2 = createTheme({ palette: {\\n primary: { main: green[500] },\\n} });\") : _formatMuiErrorMessage(5, JSON.stringify(color.main)));\n }\n\n addLightOrDark(color, 'light', lightShade, tonalOffset);\n addLightOrDark(color, 'dark', darkShade, tonalOffset);\n\n if (!color.contrastText) {\n color.contrastText = getContrastText(color.main);\n }\n\n return color;\n };\n\n var types = {\n dark: dark,\n light: light\n };\n\n if (process.env.NODE_ENV !== 'production') {\n if (!types[type]) {\n console.error(\"Material-UI: The palette type `\".concat(type, \"` is not supported.\"));\n }\n }\n\n var paletteOutput = deepmerge(_extends({\n // A collection of common colors.\n common: common,\n // The palette type, can be light or dark.\n type: type,\n // The colors used to represent primary interface elements for a user.\n primary: augmentColor(primary),\n // The colors used to represent secondary interface elements for a user.\n secondary: augmentColor(secondary, 'A400', 'A200', 'A700'),\n // The colors used to represent interface elements that the user should be made aware of.\n error: augmentColor(error),\n // The colors used to represent potentially dangerous actions or important messages.\n warning: augmentColor(warning),\n // The colors used to present information to the user that is neutral and not necessarily important.\n info: augmentColor(info),\n // The colors used to indicate the successful completion of an action that user triggered.\n success: augmentColor(success),\n // The grey colors.\n grey: grey,\n // Used by `getContrastText()` to maximize the contrast between\n // the background and the text.\n contrastThreshold: contrastThreshold,\n // Takes a background color and returns the text color that maximizes the contrast.\n getContrastText: getContrastText,\n // Generate a rich color object.\n augmentColor: augmentColor,\n // Used by the functions below to shift a color's luminance by approximately\n // two indexes within its tonal palette.\n // E.g., shift from Red 500 to Red 300 or Red 700.\n tonalOffset: tonalOffset\n }, types[type]), other);\n return paletteOutput;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport { deepmerge } from '@material-ui/utils';\n\nfunction round(value) {\n return Math.round(value * 1e5) / 1e5;\n}\n\nvar warnedOnce = false;\n\nfunction roundWithDeprecationWarning(value) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n console.warn(['Material-UI: The `theme.typography.round` helper is deprecated.', 'Head to https://mui.com/r/migration-v4/#theme for a migration path.'].join('\\n'));\n warnedOnce = true;\n }\n }\n\n return round(value);\n}\n\nvar caseAllCaps = {\n textTransform: 'uppercase'\n};\nvar defaultFontFamily = '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif';\n/**\n * @see @link{https://material.io/design/typography/the-type-system.html}\n * @see @link{https://material.io/design/typography/understanding-typography.html}\n */\n\nexport default function createTypography(palette, typography) {\n var _ref = typeof typography === 'function' ? typography(palette) : typography,\n _ref$fontFamily = _ref.fontFamily,\n fontFamily = _ref$fontFamily === void 0 ? defaultFontFamily : _ref$fontFamily,\n _ref$fontSize = _ref.fontSize,\n fontSize = _ref$fontSize === void 0 ? 14 : _ref$fontSize,\n _ref$fontWeightLight = _ref.fontWeightLight,\n fontWeightLight = _ref$fontWeightLight === void 0 ? 300 : _ref$fontWeightLight,\n _ref$fontWeightRegula = _ref.fontWeightRegular,\n fontWeightRegular = _ref$fontWeightRegula === void 0 ? 400 : _ref$fontWeightRegula,\n _ref$fontWeightMedium = _ref.fontWeightMedium,\n fontWeightMedium = _ref$fontWeightMedium === void 0 ? 500 : _ref$fontWeightMedium,\n _ref$fontWeightBold = _ref.fontWeightBold,\n fontWeightBold = _ref$fontWeightBold === void 0 ? 700 : _ref$fontWeightBold,\n _ref$htmlFontSize = _ref.htmlFontSize,\n htmlFontSize = _ref$htmlFontSize === void 0 ? 16 : _ref$htmlFontSize,\n allVariants = _ref.allVariants,\n pxToRem2 = _ref.pxToRem,\n other = _objectWithoutProperties(_ref, [\"fontFamily\", \"fontSize\", \"fontWeightLight\", \"fontWeightRegular\", \"fontWeightMedium\", \"fontWeightBold\", \"htmlFontSize\", \"allVariants\", \"pxToRem\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof fontSize !== 'number') {\n console.error('Material-UI: `fontSize` is required to be a number.');\n }\n\n if (typeof htmlFontSize !== 'number') {\n console.error('Material-UI: `htmlFontSize` is required to be a number.');\n }\n }\n\n var coef = fontSize / 14;\n\n var pxToRem = pxToRem2 || function (size) {\n return \"\".concat(size / htmlFontSize * coef, \"rem\");\n };\n\n var buildVariant = function buildVariant(fontWeight, size, lineHeight, letterSpacing, casing) {\n return _extends({\n fontFamily: fontFamily,\n fontWeight: fontWeight,\n fontSize: pxToRem(size),\n // Unitless following https://meyerweb.com/eric/thoughts/2006/02/08/unitless-line-heights/\n lineHeight: lineHeight\n }, fontFamily === defaultFontFamily ? {\n letterSpacing: \"\".concat(round(letterSpacing / size), \"em\")\n } : {}, casing, allVariants);\n };\n\n var variants = {\n h1: buildVariant(fontWeightLight, 96, 1.167, -1.5),\n h2: buildVariant(fontWeightLight, 60, 1.2, -0.5),\n h3: buildVariant(fontWeightRegular, 48, 1.167, 0),\n h4: buildVariant(fontWeightRegular, 34, 1.235, 0.25),\n h5: buildVariant(fontWeightRegular, 24, 1.334, 0),\n h6: buildVariant(fontWeightMedium, 20, 1.6, 0.15),\n subtitle1: buildVariant(fontWeightRegular, 16, 1.75, 0.15),\n subtitle2: buildVariant(fontWeightMedium, 14, 1.57, 0.1),\n body1: buildVariant(fontWeightRegular, 16, 1.5, 0.15),\n body2: buildVariant(fontWeightRegular, 14, 1.43, 0.15),\n button: buildVariant(fontWeightMedium, 14, 1.75, 0.4, caseAllCaps),\n caption: buildVariant(fontWeightRegular, 12, 1.66, 0.4),\n overline: buildVariant(fontWeightRegular, 12, 2.66, 1, caseAllCaps)\n };\n return deepmerge(_extends({\n htmlFontSize: htmlFontSize,\n pxToRem: pxToRem,\n round: roundWithDeprecationWarning,\n // TODO v5: remove\n fontFamily: fontFamily,\n fontSize: fontSize,\n fontWeightLight: fontWeightLight,\n fontWeightRegular: fontWeightRegular,\n fontWeightMedium: fontWeightMedium,\n fontWeightBold: fontWeightBold\n }, variants), other, {\n clone: false // No need to clone deep\n\n });\n}","var shadowKeyUmbraOpacity = 0.2;\nvar shadowKeyPenumbraOpacity = 0.14;\nvar shadowAmbientShadowOpacity = 0.12;\n\nfunction createShadow() {\n return [\"\".concat(arguments.length <= 0 ? undefined : arguments[0], \"px \").concat(arguments.length <= 1 ? undefined : arguments[1], \"px \").concat(arguments.length <= 2 ? undefined : arguments[2], \"px \").concat(arguments.length <= 3 ? undefined : arguments[3], \"px rgba(0,0,0,\").concat(shadowKeyUmbraOpacity, \")\"), \"\".concat(arguments.length <= 4 ? undefined : arguments[4], \"px \").concat(arguments.length <= 5 ? undefined : arguments[5], \"px \").concat(arguments.length <= 6 ? undefined : arguments[6], \"px \").concat(arguments.length <= 7 ? undefined : arguments[7], \"px rgba(0,0,0,\").concat(shadowKeyPenumbraOpacity, \")\"), \"\".concat(arguments.length <= 8 ? undefined : arguments[8], \"px \").concat(arguments.length <= 9 ? undefined : arguments[9], \"px \").concat(arguments.length <= 10 ? undefined : arguments[10], \"px \").concat(arguments.length <= 11 ? undefined : arguments[11], \"px rgba(0,0,0,\").concat(shadowAmbientShadowOpacity, \")\")].join(',');\n} // Values from https://github.com/material-components/material-components-web/blob/be8747f94574669cb5e7add1a7c54fa41a89cec7/packages/mdc-elevation/_variables.scss\n\n\nvar shadows = ['none', createShadow(0, 2, 1, -1, 0, 1, 1, 0, 0, 1, 3, 0), createShadow(0, 3, 1, -2, 0, 2, 2, 0, 0, 1, 5, 0), createShadow(0, 3, 3, -2, 0, 3, 4, 0, 0, 1, 8, 0), createShadow(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), createShadow(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), createShadow(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), createShadow(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), createShadow(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), createShadow(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), createShadow(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), createShadow(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), createShadow(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), createShadow(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), createShadow(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), createShadow(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), createShadow(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), createShadow(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), createShadow(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), createShadow(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), createShadow(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), createShadow(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), createShadow(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), createShadow(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), createShadow(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8)];\nexport default shadows;","var shape = {\n borderRadius: 4\n};\nexport default shape;","import { deepmerge } from '@material-ui/utils';\n\nfunction merge(acc, item) {\n if (!item) {\n return acc;\n }\n\n return deepmerge(acc, item, {\n clone: false // No need to clone deep, it's way faster.\n\n });\n}\n\nexport default merge;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport PropTypes from 'prop-types';\nimport merge from './merge'; // The breakpoint **start** at this value.\n// For instance with the first breakpoint xs: [xs, sm[.\n\nvar values = {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920\n};\nvar defaultBreakpoints = {\n // Sorted ASC by size. That's important.\n // It can't be configured as it's used statically for propTypes.\n keys: ['xs', 'sm', 'md', 'lg', 'xl'],\n up: function up(key) {\n return \"@media (min-width:\".concat(values[key], \"px)\");\n }\n};\nexport function handleBreakpoints(props, propValue, styleFromPropValue) {\n if (process.env.NODE_ENV !== 'production') {\n if (!props.theme) {\n console.error('Material-UI: You are calling a style function without a theme value.');\n }\n }\n\n if (Array.isArray(propValue)) {\n var themeBreakpoints = props.theme.breakpoints || defaultBreakpoints;\n return propValue.reduce(function (acc, item, index) {\n acc[themeBreakpoints.up(themeBreakpoints.keys[index])] = styleFromPropValue(propValue[index]);\n return acc;\n }, {});\n }\n\n if (_typeof(propValue) === 'object') {\n var _themeBreakpoints = props.theme.breakpoints || defaultBreakpoints;\n\n return Object.keys(propValue).reduce(function (acc, breakpoint) {\n acc[_themeBreakpoints.up(breakpoint)] = styleFromPropValue(propValue[breakpoint]);\n return acc;\n }, {});\n }\n\n var output = styleFromPropValue(propValue);\n return output;\n}\n\nfunction breakpoints(styleFunction) {\n var newStyleFunction = function newStyleFunction(props) {\n var base = styleFunction(props);\n var themeBreakpoints = props.theme.breakpoints || defaultBreakpoints;\n var extended = themeBreakpoints.keys.reduce(function (acc, key) {\n if (props[key]) {\n acc = acc || {};\n acc[themeBreakpoints.up(key)] = styleFunction(_extends({\n theme: props.theme\n }, props[key]));\n }\n\n return acc;\n }, null);\n return merge(base, extended);\n };\n\n newStyleFunction.propTypes = process.env.NODE_ENV !== 'production' ? _extends({}, styleFunction.propTypes, {\n xs: PropTypes.object,\n sm: PropTypes.object,\n md: PropTypes.object,\n lg: PropTypes.object,\n xl: PropTypes.object\n }) : {};\n newStyleFunction.filterProps = ['xs', 'sm', 'md', 'lg', 'xl'].concat(_toConsumableArray(styleFunction.filterProps));\n return newStyleFunction;\n}\n\nexport default breakpoints;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nimport merge from './merge';\nimport memoize from './memoize';\nvar properties = {\n m: 'margin',\n p: 'padding'\n};\nvar directions = {\n t: 'Top',\n r: 'Right',\n b: 'Bottom',\n l: 'Left',\n x: ['Left', 'Right'],\n y: ['Top', 'Bottom']\n};\nvar aliases = {\n marginX: 'mx',\n marginY: 'my',\n paddingX: 'px',\n paddingY: 'py'\n}; // memoize() impact:\n// From 300,000 ops/sec\n// To 350,000 ops/sec\n\nvar getCssProperties = memoize(function (prop) {\n // It's not a shorthand notation.\n if (prop.length > 2) {\n if (aliases[prop]) {\n prop = aliases[prop];\n } else {\n return [prop];\n }\n }\n\n var _prop$split = prop.split(''),\n _prop$split2 = _slicedToArray(_prop$split, 2),\n a = _prop$split2[0],\n b = _prop$split2[1];\n\n var property = properties[a];\n var direction = directions[b] || '';\n return Array.isArray(direction) ? direction.map(function (dir) {\n return property + dir;\n }) : [property + direction];\n});\nvar spacingKeys = ['m', 'mt', 'mr', 'mb', 'ml', 'mx', 'my', 'p', 'pt', 'pr', 'pb', 'pl', 'px', 'py', 'margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'padding', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft', 'paddingX', 'paddingY'];\nexport function createUnarySpacing(theme) {\n var themeSpacing = theme.spacing || 8;\n\n if (typeof themeSpacing === 'number') {\n return function (abs) {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof abs !== 'number') {\n console.error(\"Material-UI: Expected spacing argument to be a number, got \".concat(abs, \".\"));\n }\n }\n\n return themeSpacing * abs;\n };\n }\n\n if (Array.isArray(themeSpacing)) {\n return function (abs) {\n if (process.env.NODE_ENV !== 'production') {\n if (abs > themeSpacing.length - 1) {\n console.error([\"Material-UI: The value provided (\".concat(abs, \") overflows.\"), \"The supported values are: \".concat(JSON.stringify(themeSpacing), \".\"), \"\".concat(abs, \" > \").concat(themeSpacing.length - 1, \", you need to add the missing values.\")].join('\\n'));\n }\n }\n\n return themeSpacing[abs];\n };\n }\n\n if (typeof themeSpacing === 'function') {\n return themeSpacing;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n console.error([\"Material-UI: The `theme.spacing` value (\".concat(themeSpacing, \") is invalid.\"), 'It should be a number, an array or a function.'].join('\\n'));\n }\n\n return function () {\n return undefined;\n };\n}\n\nfunction getValue(transformer, propValue) {\n if (typeof propValue === 'string' || propValue == null) {\n return propValue;\n }\n\n var abs = Math.abs(propValue);\n var transformed = transformer(abs);\n\n if (propValue >= 0) {\n return transformed;\n }\n\n if (typeof transformed === 'number') {\n return -transformed;\n }\n\n return \"-\".concat(transformed);\n}\n\nfunction getStyleFromPropValue(cssProperties, transformer) {\n return function (propValue) {\n return cssProperties.reduce(function (acc, cssProperty) {\n acc[cssProperty] = getValue(transformer, propValue);\n return acc;\n }, {});\n };\n}\n\nfunction spacing(props) {\n var theme = props.theme;\n var transformer = createUnarySpacing(theme);\n return Object.keys(props).map(function (prop) {\n // Using a hash computation over an array iteration could be faster, but with only 28 items,\n // it's doesn't worth the bundle size.\n if (spacingKeys.indexOf(prop) === -1) {\n return null;\n }\n\n var cssProperties = getCssProperties(prop);\n var styleFromPropValue = getStyleFromPropValue(cssProperties, transformer);\n var propValue = props[prop];\n return handleBreakpoints(props, propValue, styleFromPropValue);\n }).reduce(merge, {});\n}\n\nspacing.propTypes = process.env.NODE_ENV !== 'production' ? spacingKeys.reduce(function (obj, key) {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nspacing.filterProps = spacingKeys;\nexport default spacing;","export default function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) {\n cache[arg] = fn(arg);\n }\n\n return cache[arg];\n };\n}","import { createUnarySpacing } from '@material-ui/system';\nvar warnOnce;\nexport default function createSpacing() {\n var spacingInput = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 8;\n\n // Already transformed.\n if (spacingInput.mui) {\n return spacingInput;\n } // Material Design layouts are visually balanced. Most measurements align to an 8dp grid applied, which aligns both spacing and the overall layout.\n // Smaller components, such as icons and type, can align to a 4dp grid.\n // https://material.io/design/layout/understanding-layout.html#usage\n\n\n var transform = createUnarySpacing({\n spacing: spacingInput\n });\n\n var spacing = function spacing() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!(args.length <= 4)) {\n console.error(\"Material-UI: Too many arguments provided, expected between 0 and 4, got \".concat(args.length));\n }\n }\n\n if (args.length === 0) {\n return transform(1);\n }\n\n if (args.length === 1) {\n return transform(args[0]);\n }\n\n return args.map(function (argument) {\n if (typeof argument === 'string') {\n return argument;\n }\n\n var output = transform(argument);\n return typeof output === 'number' ? \"\".concat(output, \"px\") : output;\n }).join(' ');\n }; // Backward compatibility, to remove in v5.\n\n\n Object.defineProperty(spacing, 'unit', {\n get: function get() {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnOnce || process.env.NODE_ENV === 'test') {\n console.error(['Material-UI: theme.spacing.unit usage has been deprecated.', 'It will be removed in v5.', 'You can replace `theme.spacing.unit * y` with `theme.spacing(y)`.', '', 'You can use the `https://github.com/mui-org/material-ui/tree/master/packages/material-ui-codemod/README.md#theme-spacing-api` migration helper to make the process smoother.'].join('\\n'));\n }\n\n warnOnce = true;\n }\n\n return spacingInput;\n }\n });\n spacing.mui = true;\n return spacing;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport { deepmerge } from '@material-ui/utils';\nimport createBreakpoints from './createBreakpoints';\nimport createMixins from './createMixins';\nimport createPalette from './createPalette';\nimport createTypography from './createTypography';\nimport shadows from './shadows';\nimport shape from './shape';\nimport createSpacing from './createSpacing';\nimport transitions from './transitions';\nimport zIndex from './zIndex';\n\nfunction createTheme() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _options$breakpoints = options.breakpoints,\n breakpointsInput = _options$breakpoints === void 0 ? {} : _options$breakpoints,\n _options$mixins = options.mixins,\n mixinsInput = _options$mixins === void 0 ? {} : _options$mixins,\n _options$palette = options.palette,\n paletteInput = _options$palette === void 0 ? {} : _options$palette,\n spacingInput = options.spacing,\n _options$typography = options.typography,\n typographyInput = _options$typography === void 0 ? {} : _options$typography,\n other = _objectWithoutProperties(options, [\"breakpoints\", \"mixins\", \"palette\", \"spacing\", \"typography\"]);\n\n var palette = createPalette(paletteInput);\n var breakpoints = createBreakpoints(breakpointsInput);\n var spacing = createSpacing(spacingInput);\n var muiTheme = deepmerge({\n breakpoints: breakpoints,\n direction: 'ltr',\n mixins: createMixins(breakpoints, spacing, mixinsInput),\n overrides: {},\n // Inject custom styles\n palette: palette,\n props: {},\n // Provide default props\n shadows: shadows,\n typography: createTypography(palette, typographyInput),\n spacing: spacing,\n shape: shape,\n transitions: transitions,\n zIndex: zIndex\n }, other);\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n muiTheme = args.reduce(function (acc, argument) {\n return deepmerge(acc, argument);\n }, muiTheme);\n\n if (process.env.NODE_ENV !== 'production') {\n var pseudoClasses = ['checked', 'disabled', 'error', 'focused', 'focusVisible', 'required', 'expanded', 'selected'];\n\n var traverse = function traverse(node, parentKey) {\n var depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var key; // eslint-disable-next-line guard-for-in, no-restricted-syntax\n\n for (key in node) {\n var child = node[key];\n\n if (depth === 1) {\n if (key.indexOf('Mui') === 0 && child) {\n traverse(child, key, depth + 1);\n }\n } else if (pseudoClasses.indexOf(key) !== -1 && Object.keys(child).length > 0) {\n if (process.env.NODE_ENV !== 'production') {\n console.error([\"Material-UI: The `\".concat(parentKey, \"` component increases \") + \"the CSS specificity of the `\".concat(key, \"` internal state.\"), 'You can not override it like this: ', JSON.stringify(node, null, 2), '', 'Instead, you need to use the $ruleName syntax:', JSON.stringify({\n root: _defineProperty({}, \"&$\".concat(key), child)\n }, null, 2), '', 'https://mui.com/r/pseudo-classes-guide'].join('\\n'));\n } // Remove the style to prevent global conflicts.\n\n\n node[key] = {};\n }\n }\n };\n\n traverse(muiTheme.overrides);\n }\n\n return muiTheme;\n}\n\nvar warnedOnce = false;\nexport function createMuiTheme() {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.error(['Material-UI: the createMuiTheme function was renamed to createTheme.', '', \"You should use `import { createTheme } from '@material-ui/core/styles'`\"].join('\\n'));\n }\n }\n\n return createTheme.apply(void 0, arguments);\n}\nexport default createTheme;","import createTheme from './createTheme';\nvar defaultTheme = createTheme();\nexport default defaultTheme;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","import React from 'react';\nexport default React.createContext(null);","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes } from '@material-ui/utils';\nimport withStyles from '../styles/withStyles';\nimport capitalize from '../utils/capitalize';\nimport { darken, alpha, lighten } from '../styles/colorManipulator';\nimport TableContext from '../Table/TableContext';\nimport Tablelvl2Context from '../Table/Tablelvl2Context';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: _extends({}, theme.typography.body2, {\n display: 'table-cell',\n verticalAlign: 'inherit',\n // Workaround for a rendering bug with spanned columns in Chrome 62.0.\n // Removes the alpha (sets it to 1), and lightens or darkens the theme color.\n borderBottom: \"1px solid\\n \".concat(theme.palette.type === 'light' ? lighten(alpha(theme.palette.divider, 1), 0.88) : darken(alpha(theme.palette.divider, 1), 0.68)),\n textAlign: 'left',\n padding: 16\n }),\n\n /* Styles applied to the root element if `variant=\"head\"` or `context.table.head`. */\n head: {\n color: theme.palette.text.primary,\n lineHeight: theme.typography.pxToRem(24),\n fontWeight: theme.typography.fontWeightMedium\n },\n\n /* Styles applied to the root element if `variant=\"body\"` or `context.table.body`. */\n body: {\n color: theme.palette.text.primary\n },\n\n /* Styles applied to the root element if `variant=\"footer\"` or `context.table.footer`. */\n footer: {\n color: theme.palette.text.secondary,\n lineHeight: theme.typography.pxToRem(21),\n fontSize: theme.typography.pxToRem(12)\n },\n\n /* Styles applied to the root element if `size=\"small\"`. */\n sizeSmall: {\n padding: '6px 24px 6px 16px',\n '&:last-child': {\n paddingRight: 16\n },\n '&$paddingCheckbox': {\n width: 24,\n // prevent the checkbox column from growing\n padding: '0 12px 0 16px',\n '&:last-child': {\n paddingLeft: 12,\n paddingRight: 16\n },\n '& > *': {\n padding: 0\n }\n }\n },\n\n /* Styles applied to the root element if `padding=\"checkbox\"`. */\n paddingCheckbox: {\n width: 48,\n // prevent the checkbox column from growing\n padding: '0 0 0 4px',\n '&:last-child': {\n paddingLeft: 0,\n paddingRight: 4\n }\n },\n\n /* Styles applied to the root element if `padding=\"none\"`. */\n paddingNone: {\n padding: 0,\n '&:last-child': {\n padding: 0\n }\n },\n\n /* Styles applied to the root element if `align=\"left\"`. */\n alignLeft: {\n textAlign: 'left'\n },\n\n /* Styles applied to the root element if `align=\"center\"`. */\n alignCenter: {\n textAlign: 'center'\n },\n\n /* Styles applied to the root element if `align=\"right\"`. */\n alignRight: {\n textAlign: 'right',\n flexDirection: 'row-reverse'\n },\n\n /* Styles applied to the root element if `align=\"justify\"`. */\n alignJustify: {\n textAlign: 'justify'\n },\n\n /* Styles applied to the root element if `context.table.stickyHeader={true}`. */\n stickyHeader: {\n position: 'sticky',\n top: 0,\n left: 0,\n zIndex: 2,\n backgroundColor: theme.palette.background.default\n }\n };\n};\n/**\n * The component renders a `` element when the parent context is a header\n * or otherwise a `` element.\n */\n\nvar TableCell = /*#__PURE__*/React.forwardRef(function TableCell(props, ref) {\n var _props$align = props.align,\n align = _props$align === void 0 ? 'inherit' : _props$align,\n classes = props.classes,\n className = props.className,\n component = props.component,\n paddingProp = props.padding,\n scopeProp = props.scope,\n sizeProp = props.size,\n sortDirection = props.sortDirection,\n variantProp = props.variant,\n other = _objectWithoutProperties(props, [\"align\", \"classes\", \"className\", \"component\", \"padding\", \"scope\", \"size\", \"sortDirection\", \"variant\"]);\n\n var table = React.useContext(TableContext);\n var tablelvl2 = React.useContext(Tablelvl2Context);\n var isHeadCell = tablelvl2 && tablelvl2.variant === 'head';\n var role;\n var Component;\n\n if (component) {\n Component = component;\n role = isHeadCell ? 'columnheader' : 'cell';\n } else {\n Component = isHeadCell ? 'th' : 'td';\n }\n\n var scope = scopeProp;\n\n if (!scope && isHeadCell) {\n scope = 'col';\n }\n\n var padding = paddingProp || (table && table.padding ? table.padding : 'normal');\n var size = sizeProp || (table && table.size ? table.size : 'medium');\n var variant = variantProp || tablelvl2 && tablelvl2.variant;\n var ariaSort = null;\n\n if (sortDirection) {\n ariaSort = sortDirection === 'asc' ? 'ascending' : 'descending';\n }\n\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: ref,\n className: clsx(classes.root, classes[variant], className, align !== 'inherit' && classes[\"align\".concat(capitalize(align))], padding !== 'normal' && classes[\"padding\".concat(capitalize(padding))], size !== 'medium' && classes[\"size\".concat(capitalize(size))], variant === 'head' && table && table.stickyHeader && classes.stickyHeader),\n \"aria-sort\": ariaSort,\n role: role,\n scope: scope\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? TableCell.propTypes = {\n /**\n * Set the text-align on the table cell content.\n *\n * Monetary or generally number fields **should be right aligned** as that allows\n * you to add them up quickly in your head without having to worry about decimals.\n */\n align: PropTypes.oneOf(['center', 'inherit', 'justify', 'left', 'right']),\n\n /**\n * The table cell contents.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * Sets the padding applied to the cell.\n * By default, the Table parent component set the value (`normal`).\n * `default` is deprecated, use `normal` instead.\n */\n padding: chainPropTypes(PropTypes.oneOf(['normal', 'checkbox', 'none', 'default']), function (props) {\n if (props.padding === 'default') {\n return new Error('Material-UI: padding=\"default\" was renamed to padding=\"normal\" for consistency.');\n }\n\n return null;\n }),\n\n /**\n * Set scope attribute.\n */\n scope: PropTypes.string,\n\n /**\n * Specify the size of the cell.\n * By default, the Table parent component set the value (`medium`).\n */\n size: PropTypes.oneOf(['medium', 'small']),\n\n /**\n * Set aria-sort direction.\n */\n sortDirection: PropTypes.oneOf(['asc', 'desc', false]),\n\n /**\n * Specify the cell type.\n * By default, the TableHead, TableBody or TableFooter parent component set the value.\n */\n variant: PropTypes.oneOf(['body', 'footer', 'head'])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiTableCell'\n})(TableCell);","export { default as capitalize } from './capitalize';\nexport { default as createChainedFunction } from './createChainedFunction';\nexport { default as createSvgIcon } from './createSvgIcon';\nexport { default as debounce } from './debounce';\nexport { default as deprecatedPropType } from './deprecatedPropType';\nexport { default as isMuiElement } from './isMuiElement';\nexport { default as ownerDocument } from './ownerDocument';\nexport { default as ownerWindow } from './ownerWindow';\nexport { default as requirePropFactory } from './requirePropFactory';\nexport { default as setRef } from './setRef';\nexport { default as unsupportedProp } from './unsupportedProp';\nexport { default as useControlled } from './useControlled';\nexport { default as useEventCallback } from './useEventCallback';\nexport { default as useForkRef } from './useForkRef'; // eslint-disable-next-line camelcase\n\nexport { default as unstable_useId } from './unstable_useId';\nexport { default as useIsFocusVisible } from './useIsFocusVisible';","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.5 6v11.5c0 2.21-1.79 4-4 4s-4-1.79-4-4V5c0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5v10.5c0 .55-.45 1-1 1s-1-.45-1-1V6H10v9.5c0 1.38 1.12 2.5 2.5 2.5s2.5-1.12 2.5-2.5V5c0-2.21-1.79-4-4-4S7 2.79 7 5v12.5c0 3.04 2.46 5.5 5.5 5.5s5.5-2.46 5.5-5.5V6h-1.5z\"\n}), 'AttachFile');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5 4v2h14V4H5zm0 10h4v6h6v-6h4l-7-7-7 7z\"\n}), 'Publish');\n\nexports.default = _default;","/*! xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported XLSX */\n/*global process:false, Buffer:false, ArrayBuffer:false, DataView:false, Deno:false */\nvar XLSX = {};\nXLSX.version = '0.20.0';\nvar current_codepage = 1200, current_ansi = 1252;\n/*:: declare var cptable:any; */\n/*global cptable:true, window */\nvar $cptable;\n\nvar VALID_ANSI = [ 874, 932, 936, 949, 950, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 10000 ];\n/* ECMA-376 Part I 18.4.1 charset to codepage mapping */\nvar CS2CP = ({\n\t/*::[*/0/*::]*/: 1252, /* ANSI */\n\t/*::[*/1/*::]*/: 65001, /* DEFAULT */\n\t/*::[*/2/*::]*/: 65001, /* SYMBOL */\n\t/*::[*/77/*::]*/: 10000, /* MAC */\n\t/*::[*/128/*::]*/: 932, /* SHIFTJIS */\n\t/*::[*/129/*::]*/: 949, /* HANGUL */\n\t/*::[*/130/*::]*/: 1361, /* JOHAB */\n\t/*::[*/134/*::]*/: 936, /* GB2312 */\n\t/*::[*/136/*::]*/: 950, /* CHINESEBIG5 */\n\t/*::[*/161/*::]*/: 1253, /* GREEK */\n\t/*::[*/162/*::]*/: 1254, /* TURKISH */\n\t/*::[*/163/*::]*/: 1258, /* VIETNAMESE */\n\t/*::[*/177/*::]*/: 1255, /* HEBREW */\n\t/*::[*/178/*::]*/: 1256, /* ARABIC */\n\t/*::[*/186/*::]*/: 1257, /* BALTIC */\n\t/*::[*/204/*::]*/: 1251, /* RUSSIAN */\n\t/*::[*/222/*::]*/: 874, /* THAI */\n\t/*::[*/238/*::]*/: 1250, /* EASTEUROPE */\n\t/*::[*/255/*::]*/: 1252, /* OEM */\n\t/*::[*/69/*::]*/: 6969 /* MISC */\n}/*:any*/);\n\nvar set_ansi = function(cp/*:number*/) { if(VALID_ANSI.indexOf(cp) == -1) return; current_ansi = CS2CP[0] = cp; };\nfunction reset_ansi() { set_ansi(1252); }\n\nvar set_cp = function(cp/*:number*/) { current_codepage = cp; set_ansi(cp); };\nfunction reset_cp() { set_cp(1200); reset_ansi(); }\n\nfunction char_codes(data/*:string*/)/*:Array*/ { var o/*:Array*/ = []; for(var i = 0, len = data.length; i < len; ++i) o[i] = data.charCodeAt(i); return o; }\n\nfunction utf16leread(data/*:string*/)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i) + (data.charCodeAt(2*i+1)<<8));\n\treturn o.join(\"\");\n}\nfunction utf16lereadu(data/*:Uint8Array*/)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data[2*i] + (data[2*i+1]<<8));\n\treturn o.join(\"\");\n}\nfunction utf16beread(data/*:string*/)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i+1) + (data.charCodeAt(2*i)<<8));\n\treturn o.join(\"\");\n}\n\nvar debom = function(data/*:string*/)/*:string*/ {\n\tvar c1 = data.charCodeAt(0), c2 = data.charCodeAt(1);\n\tif(c1 == 0xFF && c2 == 0xFE) return utf16leread(data.slice(2));\n\tif(c1 == 0xFE && c2 == 0xFF) return utf16beread(data.slice(2));\n\tif(c1 == 0xFEFF) return data.slice(1);\n\treturn data;\n};\n\nvar _getchar = function _gc1(x/*:number*/)/*:string*/ { return String.fromCharCode(x); };\nvar _getansi = function _ga1(x/*:number*/)/*:string*/ { return String.fromCharCode(x); };\n\nfunction set_cptable(cptable) {\n\t$cptable = cptable;\n\tset_cp = function(cp/*:number*/) { current_codepage = cp; set_ansi(cp); };\n\tdebom = function(data/*:string*/) {\n\t\tif(data.charCodeAt(0) === 0xFF && data.charCodeAt(1) === 0xFE) { return $cptable.utils.decode(1200, char_codes(data.slice(2))); }\n\t\treturn data;\n\t};\n\t_getchar = function _gc2(x/*:number*/)/*:string*/ {\n\t\tif(current_codepage === 1200) return String.fromCharCode(x);\n\t\treturn $cptable.utils.decode(current_codepage, [x&255,x>>8])[0];\n\t};\n\t_getansi = function _ga2(x/*:number*/)/*:string*/ {\n\t\treturn $cptable.utils.decode(current_ansi, [x])[0];\n\t};\n\tcpdoit();\n}\nvar DENSE = null;\nvar DIF_XL = true;\nvar Base64_map = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nfunction Base64_encode(input) {\n var o = \"\";\n var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;\n for (var i = 0; i < input.length; ) {\n c1 = input.charCodeAt(i++);\n e1 = c1 >> 2;\n c2 = input.charCodeAt(i++);\n e2 = (c1 & 3) << 4 | c2 >> 4;\n c3 = input.charCodeAt(i++);\n e3 = (c2 & 15) << 2 | c3 >> 6;\n e4 = c3 & 63;\n if (isNaN(c2)) {\n e3 = e4 = 64;\n } else if (isNaN(c3)) {\n e4 = 64;\n }\n o += Base64_map.charAt(e1) + Base64_map.charAt(e2) + Base64_map.charAt(e3) + Base64_map.charAt(e4);\n }\n return o;\n}\nfunction Base64_encode_pass(input) {\n var o = \"\";\n var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;\n for (var i = 0; i < input.length; ) {\n c1 = input.charCodeAt(i++);\n if (c1 > 255)\n c1 = 95;\n e1 = c1 >> 2;\n c2 = input.charCodeAt(i++);\n if (c2 > 255)\n c2 = 95;\n e2 = (c1 & 3) << 4 | c2 >> 4;\n c3 = input.charCodeAt(i++);\n if (c3 > 255)\n c3 = 95;\n e3 = (c2 & 15) << 2 | c3 >> 6;\n e4 = c3 & 63;\n if (isNaN(c2)) {\n e3 = e4 = 64;\n } else if (isNaN(c3)) {\n e4 = 64;\n }\n o += Base64_map.charAt(e1) + Base64_map.charAt(e2) + Base64_map.charAt(e3) + Base64_map.charAt(e4);\n }\n return o;\n}\nfunction Base64_encode_arr(input) {\n var o = \"\";\n var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;\n for (var i = 0; i < input.length; ) {\n c1 = input[i++];\n e1 = c1 >> 2;\n c2 = input[i++];\n e2 = (c1 & 3) << 4 | c2 >> 4;\n c3 = input[i++];\n e3 = (c2 & 15) << 2 | c3 >> 6;\n e4 = c3 & 63;\n if (isNaN(c2)) {\n e3 = e4 = 64;\n } else if (isNaN(c3)) {\n e4 = 64;\n }\n o += Base64_map.charAt(e1) + Base64_map.charAt(e2) + Base64_map.charAt(e3) + Base64_map.charAt(e4);\n }\n return o;\n}\nfunction Base64_decode(input) {\n var o = \"\";\n var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;\n input = input.replace(/^data:([^\\/]+\\/[^\\/]+)?;base64\\,/, \"\").replace(/[^\\w\\+\\/\\=]/g, \"\");\n for (var i = 0; i < input.length; ) {\n e1 = Base64_map.indexOf(input.charAt(i++));\n e2 = Base64_map.indexOf(input.charAt(i++));\n c1 = e1 << 2 | e2 >> 4;\n o += String.fromCharCode(c1);\n e3 = Base64_map.indexOf(input.charAt(i++));\n c2 = (e2 & 15) << 4 | e3 >> 2;\n if (e3 !== 64) {\n o += String.fromCharCode(c2);\n }\n e4 = Base64_map.indexOf(input.charAt(i++));\n c3 = (e3 & 3) << 6 | e4;\n if (e4 !== 64) {\n o += String.fromCharCode(c3);\n }\n }\n return o;\n}\nvar has_buf = /*#__PURE__*/(function() { return typeof Buffer !== 'undefined' && typeof process !== 'undefined' && typeof process.versions !== 'undefined' && !!process.versions.node; })();\n\nvar Buffer_from = /*#__PURE__*/(function() {\n\tif(typeof Buffer !== 'undefined') {\n\t\tvar nbfs = !Buffer.from;\n\t\tif(!nbfs) try { Buffer.from(\"foo\", \"utf8\"); } catch(e) { nbfs = true; }\n\t\treturn nbfs ? function(buf, enc) { return (enc) ? new Buffer(buf, enc) : new Buffer(buf); } : Buffer.from.bind(Buffer);\n\t}\n\treturn function() {};\n})();\nvar buf_utf16le = /*#__PURE__*/(function() {\n\tif(typeof Buffer === 'undefined') return false;\n\tvar x = Buffer_from([65,0]);\n\tif(!x) return false;\n\tvar o = x.toString(\"utf16le\");\n\treturn o.length == 1;\n})();\n\n\nfunction new_raw_buf(len/*:number*/) {\n\t/* jshint -W056 */\n\tif(has_buf) return Buffer.alloc ? Buffer.alloc(len) : new Buffer(len);\n\treturn typeof Uint8Array != \"undefined\" ? new Uint8Array(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nfunction new_unsafe_buf(len/*:number*/) {\n\t/* jshint -W056 */\n\tif(has_buf) return Buffer.allocUnsafe ? Buffer.allocUnsafe(len) : new Buffer(len);\n\treturn typeof Uint8Array != \"undefined\" ? new Uint8Array(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nvar s2a = function s2a(s/*:string*/)/*:any*/ {\n\tif(has_buf) return Buffer_from(s, \"binary\");\n\treturn s.split(\"\").map(function(x/*:string*/)/*:number*/{ return x.charCodeAt(0) & 0xff; });\n};\n\nfunction s2ab(s/*:string*/)/*:any*/ {\n\tif(typeof ArrayBuffer === 'undefined') return s2a(s);\n\tvar buf = new ArrayBuffer(s.length), view = new Uint8Array(buf);\n\tfor (var i=0; i!=s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;\n\treturn buf;\n}\n\nfunction a2s(data/*:any*/)/*:string*/ {\n\tif(Array.isArray(data)) return data.map(function(c) { return String.fromCharCode(c); }).join(\"\");\n\tvar o/*:Array*/ = []; for(var i = 0; i < data.length; ++i) o[i] = String.fromCharCode(data[i]); return o.join(\"\");\n}\n\nfunction a2u(data/*:Array*/)/*:Uint8Array*/ {\n\tif(typeof Uint8Array === 'undefined') throw new Error(\"Unsupported\");\n\treturn new Uint8Array(data);\n}\n\nfunction ab2a(data/*:ArrayBuffer|Uint8Array*/)/*:Array*/ {\n\tif(typeof ArrayBuffer == 'undefined') throw new Error(\"Unsupported\");\n\tif(data instanceof ArrayBuffer) return ab2a(new Uint8Array(data));\n\t/*:: if(data instanceof ArrayBuffer) throw new Error(\"unreachable\"); */\n\tvar o = new Array(data.length);\n\tfor(var i = 0; i < data.length; ++i) o[i] = data[i];\n\treturn o;\n}\n\nvar bconcat = has_buf ? function(bufs) { return Buffer.concat(bufs.map(function(buf) { return Buffer.isBuffer(buf) ? buf : Buffer_from(buf); })); } : function(bufs) {\n\tif(typeof Uint8Array !== \"undefined\") {\n\t\tvar i = 0, maxlen = 0;\n\t\tfor(i = 0; i < bufs.length; ++i) maxlen += bufs[i].length;\n\t\tvar o = new Uint8Array(maxlen);\n\t\tvar len = 0;\n\t\tfor(i = 0, maxlen = 0; i < bufs.length; maxlen += len, ++i) {\n\t\t\tlen = bufs[i].length;\n\t\t\tif(bufs[i] instanceof Uint8Array) o.set(bufs[i], maxlen);\n\t\t\telse if(typeof bufs[i] == \"string\") o.set(new Uint8Array(s2a(bufs[i])), maxlen);\n\t\t\telse o.set(new Uint8Array(bufs[i]), maxlen);\n\t\t}\n\t\treturn o;\n\t}\n\treturn [].concat.apply([], bufs.map(function(buf) { return Array.isArray(buf) ? buf : [].slice.call(buf); }));\n};\n\nfunction utf8decode(content/*:string*/) {\n\tvar out = [], widx = 0, L = content.length + 250;\n\tvar o = new_raw_buf(content.length + 255);\n\tfor(var ridx = 0; ridx < content.length; ++ridx) {\n\t\tvar c = content.charCodeAt(ridx);\n\t\tif(c < 0x80) o[widx++] = c;\n\t\telse if(c < 0x800) {\n\t\t\to[widx++] = (192|((c>>6)&31));\n\t\t\to[widx++] = (128|(c&63));\n\t\t} else if(c >= 0xD800 && c < 0xE000) {\n\t\t\tc = (c&1023)+64;\n\t\t\tvar d = content.charCodeAt(++ridx)&1023;\n\t\t\to[widx++] = (240|((c>>8)&7));\n\t\t\to[widx++] = (128|((c>>2)&63));\n\t\t\to[widx++] = (128|((d>>6)&15)|((c&3)<<4));\n\t\t\to[widx++] = (128|(d&63));\n\t\t} else {\n\t\t\to[widx++] = (224|((c>>12)&15));\n\t\t\to[widx++] = (128|((c>>6)&63));\n\t\t\to[widx++] = (128|(c&63));\n\t\t}\n\t\tif(widx > L) {\n\t\t\tout.push(o.slice(0, widx));\n\t\t\twidx = 0;\n\t\t\to = new_raw_buf(65535);\n\t\t\tL = 65530;\n\t\t}\n\t}\n\tout.push(o.slice(0, widx));\n\treturn bconcat(out);\n}\n\nvar chr0 = /\\u0000/g, chr1 = /[\\u0001-\\u0006]/g;\n/*::\ndeclare type Block = any;\ndeclare type BufArray = {\n\tnewblk(sz:number):Block;\n\tnext(sz:number):Block;\n\tend():any;\n\tpush(buf:Block):void;\n};\n\ntype RecordHopperCB = {(d:any, Rn:string, RT:number):?boolean;};\n\ntype EvertType = {[string]:string};\ntype EvertNumType = {[string]:number};\ntype EvertArrType = {[string]:Array};\n\ntype StringConv = {(string):string};\n\n*/\n/* ssf.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/*jshint -W041 */\nfunction _strrev(x/*:string*/)/*:string*/ { var o = \"\", i = x.length-1; while(i>=0) o += x.charAt(i--); return o; }\nfunction pad0(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad_(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v;return t.length>=d?t:fill(' ',d-t.length)+t;}\nfunction rpad_(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:t+fill(' ',d-t.length);}\nfunction pad0r1(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+Math.round(v); return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad0r2(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nvar p2_32 = /*#__PURE__*/Math.pow(2,32);\nfunction pad0r(v/*:any*/,d/*:number*/)/*:string*/{if(v>p2_32||v<-p2_32) return pad0r1(v,d); var i = Math.round(v); return pad0r2(i,d); }\n/* yes, in 2022 this is still faster than string compare */\nfunction SSF_isgeneral(s/*:string*/, i/*:?number*/)/*:boolean*/ { i = i || 0; return s.length >= 7 + i && (s.charCodeAt(i)|32) === 103 && (s.charCodeAt(i+1)|32) === 101 && (s.charCodeAt(i+2)|32) === 110 && (s.charCodeAt(i+3)|32) === 101 && (s.charCodeAt(i+4)|32) === 114 && (s.charCodeAt(i+5)|32) === 97 && (s.charCodeAt(i+6)|32) === 108; }\nvar days/*:Array >*/ = [\n\t['Sun', 'Sunday'],\n\t['Mon', 'Monday'],\n\t['Tue', 'Tuesday'],\n\t['Wed', 'Wednesday'],\n\t['Thu', 'Thursday'],\n\t['Fri', 'Friday'],\n\t['Sat', 'Saturday']\n];\nvar months/*:Array >*/ = [\n\t['J', 'Jan', 'January'],\n\t['F', 'Feb', 'February'],\n\t['M', 'Mar', 'March'],\n\t['A', 'Apr', 'April'],\n\t['M', 'May', 'May'],\n\t['J', 'Jun', 'June'],\n\t['J', 'Jul', 'July'],\n\t['A', 'Aug', 'August'],\n\t['S', 'Sep', 'September'],\n\t['O', 'Oct', 'October'],\n\t['N', 'Nov', 'November'],\n\t['D', 'Dec', 'December']\n];\nfunction SSF_init_table(t/*:any*/) {\n\tif(!t) t = {};\n\tt[0]= 'General';\n\tt[1]= '0';\n\tt[2]= '0.00';\n\tt[3]= '#,##0';\n\tt[4]= '#,##0.00';\n\tt[9]= '0%';\n\tt[10]= '0.00%';\n\tt[11]= '0.00E+00';\n\tt[12]= '# ?/?';\n\tt[13]= '# ??/??';\n\tt[14]= 'm/d/yy';\n\tt[15]= 'd-mmm-yy';\n\tt[16]= 'd-mmm';\n\tt[17]= 'mmm-yy';\n\tt[18]= 'h:mm AM/PM';\n\tt[19]= 'h:mm:ss AM/PM';\n\tt[20]= 'h:mm';\n\tt[21]= 'h:mm:ss';\n\tt[22]= 'm/d/yy h:mm';\n\tt[37]= '#,##0 ;(#,##0)';\n\tt[38]= '#,##0 ;[Red](#,##0)';\n\tt[39]= '#,##0.00;(#,##0.00)';\n\tt[40]= '#,##0.00;[Red](#,##0.00)';\n\tt[45]= 'mm:ss';\n\tt[46]= '[h]:mm:ss';\n\tt[47]= 'mmss.0';\n\tt[48]= '##0.0E+0';\n\tt[49]= '@';\n\tt[56]= '\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \"';\n\treturn t;\n}\n/* repeated to satiate webpack */\nvar table_fmt = {\n\t0: 'General',\n\t1: '0',\n\t2: '0.00',\n\t3: '#,##0',\n\t4: '#,##0.00',\n\t9: '0%',\n\t10: '0.00%',\n\t11: '0.00E+00',\n\t12: '# ?/?',\n\t13: '# ??/??',\n\t14: 'm/d/yy',\n\t15: 'd-mmm-yy',\n\t16: 'd-mmm',\n\t17: 'mmm-yy',\n\t18: 'h:mm AM/PM',\n\t19: 'h:mm:ss AM/PM',\n\t20: 'h:mm',\n\t21: 'h:mm:ss',\n\t22: 'm/d/yy h:mm',\n\t37: '#,##0 ;(#,##0)',\n\t38: '#,##0 ;[Red](#,##0)',\n\t39: '#,##0.00;(#,##0.00)',\n\t40: '#,##0.00;[Red](#,##0.00)',\n\t45: 'mm:ss',\n\t46: '[h]:mm:ss',\n\t47: 'mmss.0',\n\t48: '##0.0E+0',\n\t49: '@',\n\t56: '\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \"'\n};\n\n/* Defaults determined by systematically testing in Excel 2019 */\n\n/* These formats appear to default to other formats in the table */\nvar SSF_default_map = {\n\t5: 37, 6: 38, 7: 39, 8: 40, // 5 -> 37 ... 8 -> 40\n\n\t23: 0, 24: 0, 25: 0, 26: 0, // 23 -> 0 ... 26 -> 0\n\n\t27: 14, 28: 14, 29: 14, 30: 14, 31: 14, // 27 -> 14 ... 31 -> 14\n\n\t50: 14, 51: 14, 52: 14, 53: 14, 54: 14, // 50 -> 14 ... 58 -> 14\n\t55: 14, 56: 14, 57: 14, 58: 14,\n\t59: 1, 60: 2, 61: 3, 62: 4, // 59 -> 1 ... 62 -> 4\n\n\t67: 9, 68: 10, // 67 -> 9 ... 68 -> 10\n\t69: 12, 70: 13, 71: 14, // 69 -> 12 ... 71 -> 14\n\t72: 14, 73: 15, 74: 16, 75: 17, // 72 -> 14 ... 75 -> 17\n\t76: 20, 77: 21, 78: 22, // 76 -> 20 ... 78 -> 22\n\t79: 45, 80: 46, 81: 47, // 79 -> 45 ... 81 -> 47\n\t82: 0 // 82 -> 0 ... 65536 -> 0 (omitted)\n};\n\n\n/* These formats technically refer to Accounting formats with no equivalent */\nvar SSF_default_str = {\n\t// 5 -- Currency, 0 decimal, black negative\n\t5: '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t63: '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\n\t// 6 -- Currency, 0 decimal, red negative\n\t6: '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t64: '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\n\t// 7 -- Currency, 2 decimal, black negative\n\t7: '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t65: '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\n\t// 8 -- Currency, 2 decimal, red negative\n\t8: '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t66: '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\n\t// 41 -- Accounting, 0 decimal, No Symbol\n\t41: '_(* #,##0_);_(* \\\\(#,##0\\\\);_(* \"-\"_);_(@_)',\n\n\t// 42 -- Accounting, 0 decimal, $ Symbol\n\t42: '_(\"$\"* #,##0_);_(\"$\"* \\\\(#,##0\\\\);_(\"$\"* \"-\"_);_(@_)',\n\n\t// 43 -- Accounting, 2 decimal, No Symbol\n\t43: '_(* #,##0.00_);_(* \\\\(#,##0.00\\\\);_(* \"-\"??_);_(@_)',\n\n\t// 44 -- Accounting, 2 decimal, $ Symbol\n\t44: '_(\"$\"* #,##0.00_);_(\"$\"* \\\\(#,##0.00\\\\);_(\"$\"* \"-\"??_);_(@_)'\n};\n\nfunction SSF_frac(x/*:number*/, D/*:number*/, mixed/*:?boolean*/)/*:Array*/ {\n\tvar sgn = x < 0 ? -1 : 1;\n\tvar B = x * sgn;\n\tvar P_2 = 0, P_1 = 1, P = 0;\n\tvar Q_2 = 1, Q_1 = 0, Q = 0;\n\tvar A = Math.floor(B);\n\twhile(Q_1 < D) {\n\t\tA = Math.floor(B);\n\t\tP = A * P_1 + P_2;\n\t\tQ = A * Q_1 + Q_2;\n\t\tif((B - A) < 0.00000005) break;\n\t\tB = 1 / (B - A);\n\t\tP_2 = P_1; P_1 = P;\n\t\tQ_2 = Q_1; Q_1 = Q;\n\t}\n\tif(Q > D) { if(Q_1 > D) { Q = Q_2; P = P_2; } else { Q = Q_1; P = P_1; } }\n\tif(!mixed) return [0, sgn * P, Q];\n\tvar q = Math.floor(sgn * P/Q);\n\treturn [q, sgn*P - q*Q, Q];\n}\nfunction SSF_parse_date_code(v/*:number*/,opts/*:?any*/,b2/*:?boolean*/) {\n\tif(v > 2958465 || v < 0) return null;\n\tvar date = (v|0), time = Math.floor(86400 * (v - date)), dow=0;\n\tvar dout=[];\n\tvar out={D:date, T:time, u:86400*(v-date)-time,y:0,m:0,d:0,H:0,M:0,S:0,q:0};\n\tif(Math.abs(out.u) < 1e-6) out.u = 0;\n\tif(opts && opts.date1904) date += 1462;\n\tif(out.u > 0.9999) {\n\t\tout.u = 0;\n\t\tif(++time == 86400) { out.T = time = 0; ++date; ++out.D; }\n\t}\n\tif(date === 60) {dout = b2 ? [1317,10,29] : [1900,2,29]; dow=3;}\n\telse if(date === 0) {dout = b2 ? [1317,8,29] : [1900,1,0]; dow=6;}\n\telse {\n\t\tif(date > 60) --date;\n\t\t/* 1 = Jan 1 1900 in Gregorian */\n\t\tvar d = new Date(1900, 0, 1);\n\t\td.setDate(d.getDate() + date - 1);\n\t\tdout = [d.getFullYear(), d.getMonth()+1,d.getDate()];\n\t\tdow = d.getDay();\n\t\tif(date < 60) dow = (dow + 6) % 7;\n\t\tif(b2) dow = SSF_fix_hijri(d, dout);\n\t}\n\tout.y = dout[0]; out.m = dout[1]; out.d = dout[2];\n\tout.S = time % 60; time = Math.floor(time / 60);\n\tout.M = time % 60; time = Math.floor(time / 60);\n\tout.H = time;\n\tout.q = dow;\n\treturn out;\n}\n/* ECMA-376 18.8.30 numFmt*/\n/* Note: `toPrecision` uses standard form when prec > E and E >= -6 */\n/* exponent >= -9 and <= 9 */\nfunction SSF_strip_decimal(o/*:string*/)/*:string*/ {\n\treturn (o.indexOf(\".\") == -1) ? o : o.replace(/(?:\\.0*|(\\.\\d*[1-9])0+)$/, \"$1\");\n}\n\n/* General Exponential always shows 2 digits exp and trims the mantissa */\nfunction SSF_normalize_exp(o/*:string*/)/*:string*/ {\n\tif(o.indexOf(\"E\") == -1) return o;\n\treturn o.replace(/(?:\\.0*|(\\.\\d*[1-9])0+)[Ee]/,\"$1E\").replace(/(E[+-])(\\d)$/,\"$10$2\");\n}\n\n/* exponent >= -9 and <= 9 */\nfunction SSF_small_exp(v/*:number*/)/*:string*/ {\n\tvar w = (v<0?12:11);\n\tvar o = SSF_strip_decimal(v.toFixed(12)); if(o.length <= w) return o;\n\to = v.toPrecision(10); if(o.length <= w) return o;\n\treturn v.toExponential(5);\n}\n\n/* exponent >= 11 or <= -10 likely exponential */\nfunction SSF_large_exp(v/*:number*/)/*:string*/ {\n\tvar o = SSF_strip_decimal(v.toFixed(11));\n\treturn (o.length > (v<0?12:11) || o === \"0\" || o === \"-0\") ? v.toPrecision(6) : o;\n}\n\nfunction SSF_general_num(v/*:number*/)/*:string*/ {\n\tvar V = Math.floor(Math.log(Math.abs(v))*Math.LOG10E), o;\n\n\tif(V >= -4 && V <= -1) o = v.toPrecision(10+V);\n\telse if(Math.abs(V) <= 9) o = SSF_small_exp(v);\n\telse if(V === 10) o = v.toFixed(10).substr(0,12);\n\telse o = SSF_large_exp(v);\n\n\treturn SSF_strip_decimal(SSF_normalize_exp(o.toUpperCase()));\n}\n\n\n/*\n\t\"General\" rules:\n\t- text is passed through (\"@\")\n\t- booleans are rendered as TRUE/FALSE\n\t- \"up to 11 characters\" displayed for numbers\n\t- Default date format (code 14) used for Dates\n\n\tThe longest 32-bit integer text is \"-2147483648\", exactly 11 chars\n\tTODO: technically the display depends on the width of the cell\n*/\nfunction SSF_general(v/*:any*/, opts/*:any*/) {\n\tswitch(typeof v) {\n\t\tcase 'string': return v;\n\t\tcase 'boolean': return v ? \"TRUE\" : \"FALSE\";\n\t\tcase 'number': return (v|0) === v ? v.toString(10) : SSF_general_num(v);\n\t\tcase 'undefined': return \"\";\n\t\tcase 'object':\n\t\t\tif(v == null) return \"\";\n\t\t\tif(v instanceof Date) return SSF_format(14, datenum(v, opts && opts.date1904), opts);\n\t}\n\tthrow new Error(\"unsupported value in General format: \" + v);\n}\n\nfunction SSF_fix_hijri(date/*:Date*/, o/*:[number, number, number]*/) {\n /* TODO: properly adjust y/m/d and */\n o[0] -= 581;\n var dow = date.getDay();\n if(date < 60) dow = (dow + 6) % 7;\n return dow;\n}\n//var THAI_DIGITS = \"\\u0E50\\u0E51\\u0E52\\u0E53\\u0E54\\u0E55\\u0E56\\u0E57\\u0E58\\u0E59\".split(\"\");\nfunction SSF_write_date(type/*:number*/, fmt/*:string*/, val, ss0/*:?number*/)/*:string*/ {\n\tvar o=\"\", ss=0, tt=0, y = val.y, out, outl = 0;\n\tswitch(type) {\n\t\tcase 98: /* 'b' buddhist year */\n\t\t\ty = val.y + 543;\n\t\t\t/* falls through */\n\t\tcase 121: /* 'y' year */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = y % 100; outl = 2; break;\n\t\t\tdefault: out = y % 10000; outl = 4; break;\n\t\t} break;\n\t\tcase 109: /* 'm' month */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.m; outl = fmt.length; break;\n\t\t\tcase 3: return months[val.m-1][1];\n\t\t\tcase 5: return months[val.m-1][0];\n\t\t\tdefault: return months[val.m-1][2];\n\t\t} break;\n\t\tcase 100: /* 'd' day */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.d; outl = fmt.length; break;\n\t\t\tcase 3: return days[val.q][0];\n\t\t\tdefault: return days[val.q][1];\n\t\t} break;\n\t\tcase 104: /* 'h' 12-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = 1+(val.H+11)%12; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 72: /* 'H' 24-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.H; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 77: /* 'M' minutes */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.M; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad minute format: ' + fmt;\n\t\t} break;\n\t\tcase 115: /* 's' seconds */\n\t\t\tif(fmt != 's' && fmt != 'ss' && fmt != '.0' && fmt != '.00' && fmt != '.000') throw 'bad second format: ' + fmt;\n\t\t\tif(val.u === 0 && (fmt == \"s\" || fmt == \"ss\")) return pad0(val.S, fmt.length);\n\t\t\t/*::if(!ss0) ss0 = 0; */\n\t\t\tif(ss0 >= 2) tt = ss0 === 3 ? 1000 : 100;\n\t\t\telse tt = ss0 === 1 ? 10 : 1;\n\t\t\tss = Math.round((tt)*(val.S + val.u));\n\t\t\tif(ss >= 60*tt) ss = 0;\n\t\t\tif(fmt === 's') return ss === 0 ? \"0\" : \"\"+ss/tt;\n\t\t\to = pad0(ss,2 + ss0);\n\t\t\tif(fmt === 'ss') return o.substr(0,2);\n\t\t\treturn \".\" + o.substr(2,fmt.length-1);\n\t\tcase 90: /* 'Z' absolute time */\n\t\tswitch(fmt) {\n\t\t\tcase '[h]': case '[hh]': out = val.D*24+val.H; break;\n\t\t\tcase '[m]': case '[mm]': out = (val.D*24+val.H)*60+val.M; break;\n\t\t\tcase '[s]': case '[ss]': out = ((val.D*24+val.H)*60+val.M)*60+Math.round(val.S+val.u); break;\n\t\t\tdefault: throw 'bad abstime format: ' + fmt;\n\t\t} outl = fmt.length === 3 ? 1 : 2; break;\n\t\tcase 101: /* 'e' era */\n\t\t\tout = y; outl = 1; break;\n\t}\n\tvar outstr = outl > 0 ? pad0(out, outl) : \"\";\n\treturn outstr;\n}\n\n\n/*jshint -W086 */\n/*jshint +W086 */\nfunction commaify(s/*:string*/)/*:string*/ {\n\tvar w = 3;\n\tif(s.length <= w) return s;\n\tvar j = (s.length % w), o = s.substr(0,j);\n\tfor(; j!=s.length; j+=w) o+=(o.length > 0 ? \",\" : \"\") + s.substr(j,w);\n\treturn o;\n}\nvar pct1 = /%/g;\nfunction write_num_pct(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar sfmt = fmt.replace(pct1,\"\"), mul = fmt.length - sfmt.length;\n\treturn write_num(type, sfmt, val * Math.pow(10,2*mul)) + fill(\"%\",mul);\n}\n\nfunction write_num_cm(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar idx = fmt.length - 1;\n\twhile(fmt.charCodeAt(idx-1) === 44) --idx;\n\treturn write_num(type, fmt.substr(0,idx), val / Math.pow(10,3*(fmt.length-idx)));\n}\n\nfunction write_num_exp(fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar o/*:string*/;\n\tvar idx = fmt.indexOf(\"E\") - fmt.indexOf(\".\") - 1;\n\tif(fmt.match(/^#+0.0E\\+0$/)) {\n\t\tif(val == 0) return \"0.0E+0\";\n\t\telse if(val < 0) return \"-\" + write_num_exp(fmt, -val);\n\t\tvar period = fmt.indexOf(\".\"); if(period === -1) period=fmt.indexOf('E');\n\t\tvar ee = Math.floor(Math.log(val)*Math.LOG10E)%period;\n\t\tif(ee < 0) ee += period;\n\t\to = (val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);\n\t\tif(o.indexOf(\"e\") === -1) {\n\t\t\tvar fakee = Math.floor(Math.log(val)*Math.LOG10E);\n\t\t\tif(o.indexOf(\".\") === -1) o = o.charAt(0) + \".\" + o.substr(1) + \"E+\" + (fakee - o.length+ee);\n\t\t\telse o += \"E+\" + (fakee - ee);\n\t\t\twhile(o.substr(0,2) === \"0.\") {\n\t\t\t\to = o.charAt(0) + o.substr(2,period) + \".\" + o.substr(2+period);\n\t\t\t\to = o.replace(/^0+([1-9])/,\"$1\").replace(/^0+\\./,\"0.\");\n\t\t\t}\n\t\t\to = o.replace(/\\+-/,\"-\");\n\t\t}\n\t\to = o.replace(/^([+-]?)(\\d*)\\.(\\d*)[Ee]/,function($$,$1,$2,$3) { return $1 + $2 + $3.substr(0,(period+ee)%period) + \".\" + $3.substr(ee) + \"E\"; });\n\t} else o = val.toExponential(idx);\n\tif(fmt.match(/E\\+00$/) && o.match(/e[+-]\\d$/)) o = o.substr(0,o.length-1) + \"0\" + o.charAt(o.length-1);\n\tif(fmt.match(/E\\-/) && o.match(/e\\+/)) o = o.replace(/e\\+/,\"e\");\n\treturn o.replace(\"e\",\"E\");\n}\nvar frac1 = /# (\\?+)( ?)\\/( ?)(\\d+)/;\nfunction write_num_f1(r/*:Array*/, aval/*:number*/, sign/*:string*/)/*:string*/ {\n\tvar den = parseInt(r[4],10), rr = Math.round(aval * den), base = Math.floor(rr/den);\n\tvar myn = (rr - base*den), myd = den;\n\treturn sign + (base === 0 ? \"\" : \"\"+base) + \" \" + (myn === 0 ? fill(\" \", r[1].length + 1 + r[4].length) : pad_(myn,r[1].length) + r[2] + \"/\" + r[3] + pad0(myd,r[4].length));\n}\nfunction write_num_f2(r/*:Array*/, aval/*:number*/, sign/*:string*/)/*:string*/ {\n\treturn sign + (aval === 0 ? \"\" : \"\"+aval) + fill(\" \", r[1].length + 2 + r[4].length);\n}\nvar dec1 = /^#*0*\\.([0#]+)/;\nvar closeparen = /\\).*[0#]/;\nvar phone = /\\(###\\) ###\\\\?-####/;\nfunction hashq(str/*:string*/)/*:string*/ {\n\tvar o = \"\", cc;\n\tfor(var i = 0; i != str.length; ++i) switch((cc=str.charCodeAt(i))) {\n\t\tcase 35: break;\n\t\tcase 63: o+= \" \"; break;\n\t\tcase 48: o+= \"0\"; break;\n\t\tdefault: o+= String.fromCharCode(cc);\n\t}\n\treturn o;\n}\nfunction rnd(val/*:number*/, d/*:number*/)/*:string*/ { var dd = Math.pow(10,d); return \"\"+(Math.round(val * dd)/dd); }\nfunction dec(val/*:number*/, d/*:number*/)/*:number*/ {\n\tvar _frac = val - Math.floor(val), dd = Math.pow(10,d);\n\tif (d < ('' + Math.round(_frac * dd)).length) return 0;\n\treturn Math.round(_frac * dd);\n}\nfunction carry(val/*:number*/, d/*:number*/)/*:number*/ {\n\tif (d < ('' + Math.round((val-Math.floor(val))*Math.pow(10,d))).length) {\n\t\treturn 1;\n\t}\n\treturn 0;\n}\nfunction flr(val/*:number*/)/*:string*/ {\n\tif(val < 2147483647 && val > -2147483648) return \"\"+(val >= 0 ? (val|0) : (val-1|0));\n\treturn \"\"+Math.floor(val);\n}\nfunction write_num_flt(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/ {\n\tif(type.charCodeAt(0) === 40 && !fmt.match(closeparen)) {\n\t\tvar ffmt = fmt.replace(/\\( */,\"\").replace(/ \\)/,\"\").replace(/\\)/,\"\");\n\t\tif(val >= 0) return write_num_flt('n', ffmt, val);\n\t\treturn '(' + write_num_flt('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_flt(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\n\tvar o;\n\tvar r/*:?Array*/, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0r(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = pad0r(val,0); if(o === \"0\") o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1))) return write_num_f1(r, aval, sign);\n\tif(fmt.match(/^#+0+$/)) return sign + pad0r(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1))) {\n\t\to = rnd(val, r[1].length).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1])).replace(/\\.(\\d*)$/,function($$, $1) { return \".\" + $1 + fill(\"0\", hashq(/*::(*/r/*::||[\"\"])*/[1]).length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\n\t\treturn sign + rnd(aval, r[2].length).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify(pad0r(aval,0));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_flt(type, fmt, -val) : commaify(\"\"+(Math.floor(val) + carry(val, r[1].length))) + \".\" + pad0(dec(val, r[1].length),r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_flt(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\n\t\to = _strrev(write_num_flt(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri= 0) return write_num_int('n', ffmt, val);\n\t\treturn '(' + write_num_int('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm2(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct2(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp2(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_int(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\n\tvar o;\n\tvar r/*:?Array*/, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = (\"\"+val); if(val === 0) o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1))) return write_num_f2(r, aval, sign);\n\tif(fmt.match(/^#+0+$/)) return sign + pad0(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1))) {\n\t\t/*:: if(!Array.isArray(r)) throw new Error(\"unreachable\"); */\n\t\to = (\"\"+val).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1]));\n\t\to = o.replace(/\\.(\\d*)$/,function($$, $1) {\n\t\t/*:: if(!Array.isArray(r)) throw new Error(\"unreachable\"); */\n\t\t\treturn \".\" + $1 + fill(\"0\", hashq(r[1]).length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\n\t\treturn sign + (\"\"+aval).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify((\"\"+aval));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_int(type, fmt, -val) : commaify((\"\"+val)) + \".\" + fill('0',r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_int(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\n\t\to = _strrev(write_num_int(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri*/ {\n\tvar out/*:Array*/ = [];\n\tvar in_str = false/*, cc*/;\n\tfor(var i = 0, j = 0; i < fmt.length; ++i) switch((/*cc=*/fmt.charCodeAt(i))) {\n\t\tcase 34: /* '\"' */\n\t\t\tin_str = !in_str; break;\n\t\tcase 95: case 42: case 92: /* '_' '*' '\\\\' */\n\t\t\t++i; break;\n\t\tcase 59: /* ';' */\n\t\t\tout[out.length] = fmt.substr(j,i-j);\n\t\t\tj = i+1;\n\t}\n\tout[out.length] = fmt.substr(j);\n\tif(in_str === true) throw new Error(\"Format |\" + fmt + \"| unterminated string \");\n\treturn out;\n}\n\nvar SSF_abstime = /\\[[HhMmSs\\u0E0A\\u0E19\\u0E17]*\\]/;\nfunction fmt_is_date(fmt/*:string*/)/*:boolean*/ {\n\tvar i = 0, /*cc = 0,*/ c = \"\", o = \"\";\n\twhile(i < fmt.length) {\n\t\tswitch((c = fmt.charAt(i))) {\n\t\t\tcase 'G': if(SSF_isgeneral(fmt, i)) i+= 6; i++; break;\n\t\t\tcase '\"': for(;(/*cc=*/fmt.charCodeAt(++i)) !== 34 && i < fmt.length;){/*empty*/} ++i; break;\n\t\t\tcase '\\\\': i+=2; break;\n\t\t\tcase '_': i+=2; break;\n\t\t\tcase '@': ++i; break;\n\t\t\tcase 'B': case 'b':\n\t\t\t\tif(fmt.charAt(i+1) === \"1\" || fmt.charAt(i+1) === \"2\") return true;\n\t\t\t\t/* falls through */\n\t\t\tcase 'M': case 'D': case 'Y': case 'H': case 'S': case 'E':\n\t\t\t\t/* falls through */\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g': return true;\n\t\t\tcase 'A': case 'a': case '上':\n\t\t\t\tif(fmt.substr(i, 3).toUpperCase() === \"A/P\") return true;\n\t\t\t\tif(fmt.substr(i, 5).toUpperCase() === \"AM/PM\") return true;\n\t\t\t\tif(fmt.substr(i, 5).toUpperCase() === \"上午/下午\") return true;\n\t\t\t\t++i; break;\n\t\t\tcase '[':\n\t\t\t\to = c;\n\t\t\t\twhile(fmt.charAt(i++) !== ']' && i < fmt.length) o += fmt.charAt(i);\n\t\t\t\tif(o.match(SSF_abstime)) return true;\n\t\t\t\tbreak;\n\t\t\tcase '.':\n\t\t\t\t/* falls through */\n\t\t\tcase '0': case '#':\n\t\t\t\twhile(i < fmt.length && (\"0#?.,E+-%\".indexOf(c=fmt.charAt(++i)) > -1 || (c=='\\\\' && fmt.charAt(i+1) == \"-\" && \"0#\".indexOf(fmt.charAt(i+2))>-1))){/* empty */}\n\t\t\t\tbreak;\n\t\t\tcase '?': while(fmt.charAt(++i) === c){/* empty */} break;\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break;\n\t\t\tcase '(': case ')': ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\twhile(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1){/* empty */} break;\n\t\t\tcase ' ': ++i; break;\n\t\t\tdefault: ++i; break;\n\t\t}\n\t}\n\treturn false;\n}\n\nfunction eval_fmt(fmt/*:string*/, v/*:any*/, opts/*:any*/, flen/*:number*/) {\n\tvar out = [], o = \"\", i = 0, c = \"\", lst='t', dt, j, cc;\n\tvar hr='H';\n\t/* Tokenize */\n\twhile(i < fmt.length) {\n\t\tswitch((c = fmt.charAt(i))) {\n\t\t\tcase 'G': /* General */\n\t\t\t\tif(!SSF_isgeneral(fmt, i)) throw new Error('unrecognized character ' + c + ' in ' +fmt);\n\t\t\t\tout[out.length] = {t:'G', v:'General'}; i+=7; break;\n\t\t\tcase '\"': /* Literal text */\n\t\t\t\tfor(o=\"\";(cc=fmt.charCodeAt(++i)) !== 34 && i < fmt.length;) o += String.fromCharCode(cc);\n\t\t\t\tout[out.length] = {t:'t', v:o}; ++i; break;\n\t\t\tcase '\\\\': var w = fmt.charAt(++i), t = (w === \"(\" || w === \")\") ? w : 't';\n\t\t\t\tout[out.length] = {t:t, v:w}; ++i; break;\n\t\t\tcase '_': out[out.length] = {t:'t', v:\" \"}; i+=2; break;\n\t\t\tcase '@': /* Text Placeholder */\n\t\t\t\tout[out.length] = {t:'T', v:v}; ++i; break;\n\t\t\tcase 'B': case 'b':\n\t\t\t\tif(fmt.charAt(i+1) === \"1\" || fmt.charAt(i+1) === \"2\") {\n\t\t\t\t\tif(dt==null) { dt=SSF_parse_date_code(v, opts, fmt.charAt(i+1) === \"2\"); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'X', v:fmt.substr(i,2)}; lst = c; i+=2; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase 'M': case 'D': case 'Y': case 'H': case 'S': case 'E':\n\t\t\t\tc = c.toLowerCase();\n\t\t\t\t/* falls through */\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g':\n\t\t\t\tif(v < 0) return \"\";\n\t\t\t\tif(dt==null) { dt=SSF_parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\to = c; while(++i < fmt.length && fmt.charAt(i).toLowerCase() === c) o+=c;\n\t\t\t\tif(c === 'm' && lst.toLowerCase() === 'h') c = 'M';\n\t\t\t\tif(c === 'h') c = hr;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase 'A': case 'a': case '上':\n\t\t\t\tvar q={t:c, v:c};\n\t\t\t\tif(dt==null) dt=SSF_parse_date_code(v, opts);\n\t\t\t\tif(fmt.substr(i, 3).toUpperCase() === \"A/P\") { if(dt!=null) q.v = dt.H >= 12 ? fmt.charAt(i+2) : c; q.t = 'T'; hr='h';i+=3;}\n\t\t\t\telse if(fmt.substr(i,5).toUpperCase() === \"AM/PM\") { if(dt!=null) q.v = dt.H >= 12 ? \"PM\" : \"AM\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse if(fmt.substr(i,5).toUpperCase() === \"上午/下午\") { if(dt!=null) q.v = dt.H >= 12 ? \"下午\" : \"上午\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse { q.t = \"t\"; ++i; }\n\t\t\t\tif(dt==null && q.t === 'T') return \"\";\n\t\t\t\tout[out.length] = q; lst = c; break;\n\t\t\tcase '[':\n\t\t\t\to = c;\n\t\t\t\twhile(fmt.charAt(i++) !== ']' && i < fmt.length) o += fmt.charAt(i);\n\t\t\t\tif(o.slice(-1) !== ']') throw 'unterminated \"[\" block: |' + o + '|';\n\t\t\t\tif(o.match(SSF_abstime)) {\n\t\t\t\t\tif(dt==null) { dt=SSF_parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'Z', v:o.toLowerCase()};\n\t\t\t\t\tlst = o.charAt(1);\n\t\t\t\t} else if(o.indexOf(\"$\") > -1) {\n\t\t\t\t\to = (o.match(/\\$([^-\\[\\]]*)/)||[])[1]||\"$\";\n\t\t\t\t\tif(!fmt_is_date(fmt)) out[out.length] = {t:'t',v:o};\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t/* Numbers */\n\t\t\tcase '.':\n\t\t\t\tif(dt != null) {\n\t\t\t\t\to = c; while(++i < fmt.length && (c=fmt.charAt(i)) === \"0\") o += c;\n\t\t\t\t\tout[out.length] = {t:'s', v:o}; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase '0': case '#':\n\t\t\t\to = c; while(++i < fmt.length && \"0#?.,E+-%\".indexOf(c=fmt.charAt(i)) > -1) o += c;\n\t\t\t\tout[out.length] = {t:'n', v:o}; break;\n\t\t\tcase '?':\n\t\t\t\to = c; while(fmt.charAt(++i) === c) o+=c;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break; // **\n\t\t\tcase '(': case ')': out[out.length] = {t:(flen===1?'t':c), v:c}; ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\to = c; while(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1) o+=fmt.charAt(i);\n\t\t\t\tout[out.length] = {t:'D', v:o}; break;\n\t\t\tcase ' ': out[out.length] = {t:c, v:c}; ++i; break;\n\t\t\tcase '$': out[out.length] = {t:'t', v:'$'}; ++i; break;\n\t\t\tdefault:\n\t\t\t\tif(\",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP\".indexOf(c) === -1) throw new Error('unrecognized character ' + c + ' in ' + fmt);\n\t\t\t\tout[out.length] = {t:'t', v:c}; ++i; break;\n\t\t}\n\t}\n\n\t/* Scan for date/time parts */\n\tvar bt = 0, ss0 = 0, ssm;\n\tfor(i=out.length-1, lst='t'; i >= 0; --i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 'h': case 'H': out[i].t = hr; lst='h'; if(bt < 1) bt = 1; break;\n\t\t\tcase 's':\n\t\t\t\tif((ssm=out[i].v.match(/\\.0+$/))) ss0=Math.max(ss0,ssm[0].length-1);\n\t\t\t\tif(bt < 3) bt = 3;\n\t\t\t/* falls through */\n\t\t\tcase 'd': case 'y': case 'M': case 'e': lst=out[i].t; break;\n\t\t\tcase 'm': if(lst === 's') { out[i].t = 'M'; if(bt < 2) bt = 2; } break;\n\t\t\tcase 'X': /*if(out[i].v === \"B2\");*/\n\t\t\t\tbreak;\n\t\t\tcase 'Z':\n\t\t\t\tif(bt < 1 && out[i].v.match(/[Hh]/)) bt = 1;\n\t\t\t\tif(bt < 2 && out[i].v.match(/[Mm]/)) bt = 2;\n\t\t\t\tif(bt < 3 && out[i].v.match(/[Ss]/)) bt = 3;\n\t\t}\n\t}\n\t/* time rounding depends on presence of minute / second / usec fields */\n\tswitch(bt) {\n\t\tcase 0: break;\n\t\tcase 1:\n\t\t\t/*::if(!dt) break;*/\n\t\t\tif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tif(dt.M >= 60) { dt.M = 0; ++dt.H; }\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\t/*::if(!dt) break;*/\n\t\t\tif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tbreak;\n\t}\n\n\t/* replace fields */\n\tvar nstr = \"\", jj;\n\tfor(i=0; i < out.length; ++i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 't': case 'T': case ' ': case 'D': break;\n\t\t\tcase 'X': out[i].v = \"\"; out[i].t = \";\"; break;\n\t\t\tcase 'd': case 'm': case 'y': case 'h': case 'H': case 'M': case 's': case 'e': case 'b': case 'Z':\n\t\t\t\t/*::if(!dt) throw \"unreachable\"; */\n\t\t\t\tout[i].v = SSF_write_date(out[i].t.charCodeAt(0), out[i].v, dt, ss0);\n\t\t\t\tout[i].t = 't'; break;\n\t\t\tcase 'n': case '?':\n\t\t\t\tjj = i+1;\n\t\t\t\twhile(out[jj] != null && (\n\t\t\t\t\t(c=out[jj].t) === \"?\" || c === \"D\" ||\n\t\t\t\t\t((c === \" \" || c === \"t\") && out[jj+1] != null && (out[jj+1].t === '?' || out[jj+1].t === \"t\" && out[jj+1].v === '/')) ||\n\t\t\t\t\t(out[i].t === '(' && (c === ' ' || c === 'n' || c === ')')) ||\n\t\t\t\t\t(c === 't' && (out[jj].v === '/' || out[jj].v === ' ' && out[jj+1] != null && out[jj+1].t == '?'))\n\t\t\t\t)) {\n\t\t\t\t\tout[i].v += out[jj].v;\n\t\t\t\t\tout[jj] = {v:\"\", t:\";\"}; ++jj;\n\t\t\t\t}\n\t\t\t\tnstr += out[i].v;\n\t\t\t\ti = jj-1; break;\n\t\t\tcase 'G': out[i].t = 't'; out[i].v = SSF_general(v,opts); break;\n\t\t}\n\t}\n\tvar vv = \"\", myv, ostr;\n\tif(nstr.length > 0) {\n\t\tif(nstr.charCodeAt(0) == 40) /* '(' */ {\n\t\t\tmyv = (v<0&&nstr.charCodeAt(0) === 45 ? -v : v);\n\t\t\tostr = write_num('n', nstr, myv);\n\t\t} else {\n\t\t\tmyv = (v<0 && flen > 1 ? -v : v);\n\t\t\tostr = write_num('n', nstr, myv);\n\t\t\tif(myv < 0 && out[0] && out[0].t == 't') {\n\t\t\t\tostr = ostr.substr(1);\n\t\t\t\tout[0].v = \"-\" + out[0].v;\n\t\t\t}\n\t\t}\n\t\tjj=ostr.length-1;\n\t\tvar decpt = out.length;\n\t\tfor(i=0; i < out.length; ++i) if(out[i] != null && out[i].t != 't' && out[i].v.indexOf(\".\") > -1) { decpt = i; break; }\n\t\tvar lasti=out.length;\n\t\tif(decpt === out.length && ostr.indexOf(\"E\") === -1) {\n\t\t\tfor(i=out.length-1; i>= 0;--i) {\n\t\t\t\tif(out[i] == null || 'n?'.indexOf(out[i].t) === -1) continue;\n\t\t\t\tif(jj>=out[i].v.length-1) { jj -= out[i].v.length; out[i].v = ostr.substr(jj+1, out[i].v.length); }\n\t\t\t\telse if(jj < 0) out[i].v = \"\";\n\t\t\t\telse { out[i].v = ostr.substr(0, jj+1); jj = -1; }\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti= 0; --i) {\n\t\t\t\tif(out[i] == null || 'n?'.indexOf(out[i].t) === -1) continue;\n\t\t\t\tj=out[i].v.indexOf(\".\")>-1&&i===decpt?out[i].v.indexOf(\".\")-1:out[i].v.length-1;\n\t\t\t\tvv = out[i].v.substr(j+1);\n\t\t\t\tfor(; j>=0; --j) {\n\t\t\t\t\tif(jj>=0 && (out[i].v.charAt(j) === \"0\" || out[i].v.charAt(j) === \"#\")) vv = ostr.charAt(jj--) + vv;\n\t\t\t\t}\n\t\t\t\tout[i].v = vv;\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti-1&&i===decpt?out[i].v.indexOf(\".\")+1:0;\n\t\t\t\tvv = out[i].v.substr(0,j);\n\t\t\t\tfor(; j-1) {\n\t\tmyv = (flen >1 && v < 0 && i>0 && out[i-1].v === \"-\" ? -v:v);\n\t\tout[i].v = write_num(out[i].t, out[i].v, myv);\n\t\tout[i].t = 't';\n\t}\n\tvar retval = \"\";\n\tfor(i=0; i !== out.length; ++i) if(out[i] != null) retval += out[i].v;\n\treturn retval;\n}\n\nvar cfregex2 = /\\[(=|>[=]?|<[>=]?)(-?\\d+(?:\\.\\d*)?)\\]/;\nfunction chkcond(v, rr) {\n\tif(rr == null) return false;\n\tvar thresh = parseFloat(rr[2]);\n\tswitch(rr[1]) {\n\t\tcase \"=\": if(v == thresh) return true; break;\n\t\tcase \">\": if(v > thresh) return true; break;\n\t\tcase \"<\": if(v < thresh) return true; break;\n\t\tcase \"<>\": if(v != thresh) return true; break;\n\t\tcase \">=\": if(v >= thresh) return true; break;\n\t\tcase \"<=\": if(v <= thresh) return true; break;\n\t}\n\treturn false;\n}\nfunction choose_fmt(f/*:string*/, v/*:any*/) {\n\tvar fmt = SSF_split_fmt(f);\n\tvar l = fmt.length, lat = fmt[l-1].indexOf(\"@\");\n\tif(l<4 && lat>-1) --l;\n\tif(fmt.length > 4) throw new Error(\"cannot find right format for |\" + fmt.join(\"|\") + \"|\");\n\tif(typeof v !== \"number\") return [4, fmt.length === 4 || lat>-1?fmt[fmt.length-1]:\"@\"];\n\tswitch(fmt.length) {\n\t\tcase 1: fmt = lat>-1 ? [\"General\", \"General\", \"General\", fmt[0]] : [fmt[0], fmt[0], fmt[0], \"@\"]; break;\n\t\tcase 2: fmt = lat>-1 ? [fmt[0], fmt[0], fmt[0], fmt[1]] : [fmt[0], fmt[1], fmt[0], \"@\"]; break;\n\t\tcase 3: fmt = lat>-1 ? [fmt[0], fmt[1], fmt[0], fmt[2]] : [fmt[0], fmt[1], fmt[2], \"@\"]; break;\n\t\tcase 4: break;\n\t}\n\tvar ff = v > 0 ? fmt[0] : v < 0 ? fmt[1] : fmt[2];\n\tif(fmt[0].indexOf(\"[\") === -1 && fmt[1].indexOf(\"[\") === -1) return [l, ff];\n\tif(fmt[0].match(/\\[[=<>]/) != null || fmt[1].match(/\\[[=<>]/) != null) {\n\t\tvar m1 = fmt[0].match(cfregex2);\n\t\tvar m2 = fmt[1].match(cfregex2);\n\t\treturn chkcond(v, m1) ? [l, fmt[0]] : chkcond(v, m2) ? [l, fmt[1]] : [l, fmt[m1 != null && m2 != null ? 2 : 1]];\n\t}\n\treturn [l, ff];\n}\nfunction SSF_format(fmt/*:string|number*/,v/*:any*/,o/*:?any*/) {\n\tif(o == null) o = {};\n\tvar sfmt = \"\";\n\tswitch(typeof fmt) {\n\t\tcase \"string\":\n\t\t\tif(fmt == \"m/d/yy\" && o.dateNF) sfmt = o.dateNF;\n\t\t\telse sfmt = fmt;\n\t\t\tbreak;\n\t\tcase \"number\":\n\t\t\tif(fmt == 14 && o.dateNF) sfmt = o.dateNF;\n\t\t\telse sfmt = (o.table != null ? (o.table/*:any*/) : table_fmt)[fmt];\n\t\t\tif(sfmt == null) sfmt = (o.table && o.table[SSF_default_map[fmt]]) || table_fmt[SSF_default_map[fmt]];\n\t\t\tif(sfmt == null) sfmt = SSF_default_str[fmt] || \"General\";\n\t\t\tbreak;\n\t}\n\tif(SSF_isgeneral(sfmt,0)) return SSF_general(v, o);\n\tif(v instanceof Date) v = datenum(v, o.date1904);\n\tvar f = choose_fmt(sfmt, v);\n\tif(SSF_isgeneral(f[1])) return SSF_general(v, o);\n\tif(v === true) v = \"TRUE\"; else if(v === false) v = \"FALSE\";\n\telse if(v === \"\" || v == null) return \"\";\n\treturn eval_fmt(f[1], v, o, f[0]);\n}\nfunction SSF_load(fmt/*:string*/, idx/*:?number*/)/*:number*/ {\n\tif(typeof idx != 'number') {\n\t\tidx = +idx || -1;\n/*::if(typeof idx != 'number') return 0x188; */\n\t\tfor(var i = 0; i < 0x0188; ++i) {\n/*::if(typeof idx != 'number') return 0x188; */\n\t\t\tif(table_fmt[i] == undefined) { if(idx < 0) idx = i; continue; }\n\t\t\tif(table_fmt[i] == fmt) { idx = i; break; }\n\t\t}\n/*::if(typeof idx != 'number') return 0x188; */\n\t\tif(idx < 0) idx = 0x187;\n\t}\n/*::if(typeof idx != 'number') return 0x188; */\n\ttable_fmt[idx] = fmt;\n\treturn idx;\n}\nfunction SSF_load_table(tbl/*:SSFTable*/)/*:void*/ {\n\tfor(var i=0; i!=0x0188; ++i)\n\t\tif(tbl[i] !== undefined) SSF_load(tbl[i], i);\n}\n\nfunction make_ssf() {\n\ttable_fmt = SSF_init_table();\n}\n\nvar SSF = {\n\tformat: SSF_format,\n\tload: SSF_load,\n\t_table: table_fmt,\n\tload_table: SSF_load_table,\n\tparse_date_code: SSF_parse_date_code,\n\tis_date: fmt_is_date,\n\tget_table: function get_table() { return SSF._table = table_fmt; }\n};\n\nvar SSFImplicit/*{[number]:string}*/ = ({\n\t\"5\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t\"6\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t\"7\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t\"8\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"23\": 'General', \"24\": 'General', \"25\": 'General', \"26\": 'General',\n\t\"27\": 'm/d/yy', \"28\": 'm/d/yy', \"29\": 'm/d/yy', \"30\": 'm/d/yy', \"31\": 'm/d/yy',\n\t\"32\": 'h:mm:ss', \"33\": 'h:mm:ss', \"34\": 'h:mm:ss', \"35\": 'h:mm:ss',\n\t\"36\": 'm/d/yy',\n\t\"41\": '_(* #,##0_);_(* \\(#,##0\\);_(* \"-\"_);_(@_)',\n\t\"42\": '_(\"$\"* #,##0_);_(\"$\"* \\(#,##0\\);_(\"$\"* \"-\"_);_(@_)',\n\t\"43\": '_(* #,##0.00_);_(* \\(#,##0.00\\);_(* \"-\"??_);_(@_)',\n\t\"44\": '_(\"$\"* #,##0.00_);_(\"$\"* \\(#,##0.00\\);_(\"$\"* \"-\"??_);_(@_)',\n\t\"50\": 'm/d/yy', \"51\": 'm/d/yy', \"52\": 'm/d/yy', \"53\": 'm/d/yy', \"54\": 'm/d/yy',\n\t\"55\": 'm/d/yy', \"56\": 'm/d/yy', \"57\": 'm/d/yy', \"58\": 'm/d/yy',\n\t\"59\": '0',\n\t\"60\": '0.00',\n\t\"61\": '#,##0',\n\t\"62\": '#,##0.00',\n\t\"63\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t\"64\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t\"65\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t\"66\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"67\": '0%',\n\t\"68\": '0.00%',\n\t\"69\": '# ?/?',\n\t\"70\": '# ??/??',\n\t\"71\": 'm/d/yy',\n\t\"72\": 'm/d/yy',\n\t\"73\": 'd-mmm-yy',\n\t\"74\": 'd-mmm',\n\t\"75\": 'mmm-yy',\n\t\"76\": 'h:mm',\n\t\"77\": 'h:mm:ss',\n\t\"78\": 'm/d/yy h:mm',\n\t\"79\": 'mm:ss',\n\t\"80\": '[h]:mm:ss',\n\t\"81\": 'mmss.0'\n}/*:any*/);\n\n/* dateNF parse TODO: move to SSF */\nvar dateNFregex = /[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g;\nfunction dateNF_regex(dateNF/*:string|number*/)/*:RegExp*/ {\n\tvar fmt = typeof dateNF == \"number\" ? table_fmt[dateNF] : dateNF;\n\tfmt = fmt.replace(dateNFregex, \"(\\\\d+)\");\n\tdateNFregex.lastIndex = 0;\n\treturn new RegExp(\"^\" + fmt + \"$\");\n}\nfunction dateNF_fix(str/*:string*/, dateNF/*:string*/, match/*:Array*/)/*:string*/ {\n\tvar Y = -1, m = -1, d = -1, H = -1, M = -1, S = -1;\n\t(dateNF.match(dateNFregex)||[]).forEach(function(n, i) {\n\t\tvar v = parseInt(match[i+1], 10);\n\t\tswitch(n.toLowerCase().charAt(0)) {\n\t\t\tcase 'y': Y = v; break; case 'd': d = v; break;\n\t\t\tcase 'h': H = v; break; case 's': S = v; break;\n\t\t\tcase 'm': if(H >= 0) M = v; else m = v; break;\n\t\t}\n\t});\n\tdateNFregex.lastIndex = 0;\n\tif(S >= 0 && M == -1 && m >= 0) { M = m; m = -1; }\n\tvar datestr = ((\"\" + (Y>=0?Y: new Date().getFullYear())).slice(-4) + \"-\" + (\"00\" + (m>=1?m:1)).slice(-2) + \"-\" + (\"00\" + (d>=1?d:1)).slice(-2));\n\tif(datestr.length == 7) datestr = \"0\" + datestr;\n\tif(datestr.length == 8) datestr = \"20\" + datestr;\n\tvar timestr = ((\"00\" + (H>=0?H:0)).slice(-2) + \":\" + (\"00\" + (M>=0?M:0)).slice(-2) + \":\" + (\"00\" + (S>=0?S:0)).slice(-2));\n\tif(H == -1 && M == -1 && S == -1) return datestr;\n\tif(Y == -1 && m == -1 && d == -1) return timestr;\n\treturn datestr + \"T\" + timestr;\n}\n\n/* table of bad formats written by third-party tools */\nvar bad_formats = {\n\t\"d.m\": \"d\\\\.m\" // Issue #2571 Google Sheets writes invalid format 'd.m', correct format is 'd\".\"m' or 'd\\\\.m'\n};\n\nfunction SSF__load(fmt, idx) {\n\treturn SSF_load(bad_formats[fmt] || fmt, idx);\n}\n\n/*::\ndeclare var ReadShift:any;\ndeclare var CheckField:any;\ndeclare var prep_blob:any;\ndeclare var __readUInt32LE:any;\ndeclare var __readInt32LE:any;\ndeclare var __toBuffer:any;\ndeclare var __utf16le:any;\ndeclare var bconcat:any;\ndeclare var s2a:any;\ndeclare var chr0:any;\ndeclare var chr1:any;\ndeclare var has_buf:boolean;\ndeclare var new_buf:any;\ndeclare var new_raw_buf:any;\ndeclare var new_unsafe_buf:any;\ndeclare var Buffer_from:any;\n*/\n/* cfb.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*jshint eqnull:true */\n/*exported CFB */\n/*global Uint8Array:false, Uint16Array:false */\n\n/*::\ntype SectorEntry = {\n\tname?:string;\n\tnodes?:Array;\n\tdata:RawBytes;\n};\ntype SectorList = {\n\t[k:string|number]:SectorEntry;\n\tname:?string;\n\tfat_addrs:Array;\n\tssz:number;\n}\ntype CFBFiles = {[n:string]:CFBEntry};\n*/\n/* crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported CRC32 */\nvar CRC32 = /*#__PURE__*/(function() {\nvar CRC32 = {};\nCRC32.version = '1.2.0';\n/* see perf/crc32table.js */\n/*global Int32Array */\nfunction signed_crc_table()/*:any*/ {\n\tvar c = 0, table/*:Array*/ = new Array(256);\n\n\tfor(var n =0; n != 256; ++n){\n\t\tc = n;\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\ttable[n] = c;\n\t}\n\n\treturn typeof Int32Array !== 'undefined' ? new Int32Array(table) : table;\n}\n\nvar T0 = signed_crc_table();\nfunction slice_by_16_tables(T) {\n\tvar c = 0, v = 0, n = 0, table/*:Array*/ = typeof Int32Array !== 'undefined' ? new Int32Array(4096) : new Array(4096) ;\n\n\tfor(n = 0; n != 256; ++n) table[n] = T[n];\n\tfor(n = 0; n != 256; ++n) {\n\t\tv = T[n];\n\t\tfor(c = 256 + n; c < 4096; c += 256) v = table[c] = (v >>> 8) ^ T[v & 0xFF];\n\t}\n\tvar out = [];\n\tfor(n = 1; n != 16; ++n) out[n - 1] = typeof Int32Array !== 'undefined' && typeof table.subarray == \"function\" ? table.subarray(n * 256, n * 256 + 256) : table.slice(n * 256, n * 256 + 256);\n\treturn out;\n}\nvar TT = slice_by_16_tables(T0);\nvar T1 = TT[0], T2 = TT[1], T3 = TT[2], T4 = TT[3], T5 = TT[4];\nvar T6 = TT[5], T7 = TT[6], T8 = TT[7], T9 = TT[8], Ta = TT[9];\nvar Tb = TT[10], Tc = TT[11], Td = TT[12], Te = TT[13], Tf = TT[14];\nfunction crc32_bstr(bstr/*:string*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed/*:: ? 0 : 0 */ ^ -1;\n\tfor(var i = 0, L = bstr.length; i < L;) C = (C>>>8) ^ T0[(C^bstr.charCodeAt(i++))&0xFF];\n\treturn ~C;\n}\n\nfunction crc32_buf(B/*:Uint8Array|Array*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed/*:: ? 0 : 0 */ ^ -1, L = B.length - 15, i = 0;\n\tfor(; i < L;) C =\n\t\tTf[B[i++] ^ (C & 255)] ^\n\t\tTe[B[i++] ^ ((C >> 8) & 255)] ^\n\t\tTd[B[i++] ^ ((C >> 16) & 255)] ^\n\t\tTc[B[i++] ^ (C >>> 24)] ^\n\t\tTb[B[i++]] ^ Ta[B[i++]] ^ T9[B[i++]] ^ T8[B[i++]] ^\n\t\tT7[B[i++]] ^ T6[B[i++]] ^ T5[B[i++]] ^ T4[B[i++]] ^\n\t\tT3[B[i++]] ^ T2[B[i++]] ^ T1[B[i++]] ^ T0[B[i++]];\n\tL += 15;\n\twhile(i < L) C = (C>>>8) ^ T0[(C^B[i++])&0xFF];\n\treturn ~C;\n}\n\nfunction crc32_str(str/*:string*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed ^ -1;\n\tfor(var i = 0, L = str.length, c = 0, d = 0; i < L;) {\n\t\tc = str.charCodeAt(i++);\n\t\tif(c < 0x80) {\n\t\t\tC = (C>>>8) ^ T0[(C^c)&0xFF];\n\t\t} else if(c < 0x800) {\n\t\t\tC = (C>>>8) ^ T0[(C ^ (192|((c>>6)&31)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(c&63)))&0xFF];\n\t\t} else if(c >= 0xD800 && c < 0xE000) {\n\t\t\tc = (c&1023)+64; d = str.charCodeAt(i++)&1023;\n\t\t\tC = (C>>>8) ^ T0[(C ^ (240|((c>>8)&7)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((c>>2)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((d>>6)&15)|((c&3)<<4)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(d&63)))&0xFF];\n\t\t} else {\n\t\t\tC = (C>>>8) ^ T0[(C ^ (224|((c>>12)&15)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((c>>6)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(c&63)))&0xFF];\n\t\t}\n\t}\n\treturn ~C;\n}\nCRC32.table = T0;\nCRC32.bstr = crc32_bstr;\nCRC32.buf = crc32_buf;\nCRC32.str = crc32_str;\nreturn CRC32;\n})();\n/* [MS-CFB] v20171201 */\nvar CFB = /*#__PURE__*/(function _CFB(){\nvar exports/*:CFBModule*/ = /*::(*/{}/*:: :any)*/;\nexports.version = '1.2.2';\n/* [MS-CFB] 2.6.4 */\nfunction namecmp(l/*:string*/, r/*:string*/)/*:number*/ {\n\tvar L = l.split(\"/\"), R = r.split(\"/\");\n\tfor(var i = 0, c = 0, Z = Math.min(L.length, R.length); i < Z; ++i) {\n\t\tif((c = L[i].length - R[i].length)) return c;\n\t\tif(L[i] != R[i]) return L[i] < R[i] ? -1 : 1;\n\t}\n\treturn L.length - R.length;\n}\nfunction dirname(p/*:string*/)/*:string*/ {\n\tif(p.charAt(p.length - 1) == \"/\") return (p.slice(0,-1).indexOf(\"/\") === -1) ? p : dirname(p.slice(0, -1));\n\tvar c = p.lastIndexOf(\"/\");\n\treturn (c === -1) ? p : p.slice(0, c+1);\n}\n\nfunction filename(p/*:string*/)/*:string*/ {\n\tif(p.charAt(p.length - 1) == \"/\") return filename(p.slice(0, -1));\n\tvar c = p.lastIndexOf(\"/\");\n\treturn (c === -1) ? p : p.slice(c+1);\n}\n/* -------------------------------------------------------------------------- */\n/* DOS Date format:\n high|YYYYYYYm.mmmddddd.HHHHHMMM.MMMSSSSS|low\n add 1980 to stored year\n stored second should be doubled\n*/\n\n/* write JS date to buf as a DOS date */\nfunction write_dos_date(buf/*:CFBlob*/, date/*:Date|string*/) {\n\tif(typeof date === \"string\") date = new Date(date);\n\tvar hms/*:number*/ = date.getHours();\n\thms = hms << 6 | date.getMinutes();\n\thms = hms << 5 | (date.getSeconds()>>>1);\n\tbuf.write_shift(2, hms);\n\tvar ymd/*:number*/ = (date.getFullYear() - 1980);\n\tymd = ymd << 4 | (date.getMonth()+1);\n\tymd = ymd << 5 | date.getDate();\n\tbuf.write_shift(2, ymd);\n}\n\n/* read four bytes from buf and interpret as a DOS date */\nfunction parse_dos_date(buf/*:CFBlob*/)/*:Date*/ {\n\tvar hms = buf.read_shift(2) & 0xFFFF;\n\tvar ymd = buf.read_shift(2) & 0xFFFF;\n\tvar val = new Date();\n\tvar d = ymd & 0x1F; ymd >>>= 5;\n\tvar m = ymd & 0x0F; ymd >>>= 4;\n\tval.setMilliseconds(0);\n\tval.setFullYear(ymd + 1980);\n\tval.setMonth(m-1);\n\tval.setDate(d);\n\tvar S = hms & 0x1F; hms >>>= 5;\n\tvar M = hms & 0x3F; hms >>>= 6;\n\tval.setHours(hms);\n\tval.setMinutes(M);\n\tval.setSeconds(S<<1);\n\treturn val;\n}\nfunction parse_extra_field(blob/*:CFBlob*/)/*:any*/ {\n\tprep_blob(blob, 0);\n\tvar o = /*::(*/{}/*:: :any)*/;\n\tvar flags = 0;\n\twhile(blob.l <= blob.length - 4) {\n\t\tvar type = blob.read_shift(2);\n\t\tvar sz = blob.read_shift(2), tgt = blob.l + sz;\n\t\tvar p = {};\n\t\tswitch(type) {\n\t\t\t/* UNIX-style Timestamps */\n\t\t\tcase 0x5455: {\n\t\t\t\tflags = blob.read_shift(1);\n\t\t\t\tif(flags & 1) p.mtime = blob.read_shift(4);\n\t\t\t\t/* for some reason, CD flag corresponds to LFH */\n\t\t\t\tif(sz > 5) {\n\t\t\t\t\tif(flags & 2) p.atime = blob.read_shift(4);\n\t\t\t\t\tif(flags & 4) p.ctime = blob.read_shift(4);\n\t\t\t\t}\n\t\t\t\tif(p.mtime) p.mt = new Date(p.mtime*1000);\n\t\t\t} break;\n\t\t\t/* ZIP64 Extended Information Field */\n\t\t\tcase 0x0001: {\n\t\t\t\tvar sz1 = blob.read_shift(4), sz2 = blob.read_shift(4);\n\t\t\t\tp.usz = (sz2 * Math.pow(2,32) + sz1);\n\t\t\t\tsz1 = blob.read_shift(4); sz2 = blob.read_shift(4);\n\t\t\t\tp.csz = (sz2 * Math.pow(2,32) + sz1);\n\t\t\t\t// NOTE: volume fields are skipped\n\t\t\t} break;\n\t\t}\n\t\tblob.l = tgt;\n\t\to[type] = p;\n\t}\n\treturn o;\n}\nvar fs/*:: = require('fs'); */;\nfunction get_fs() { return fs || (fs = _fs); }\nfunction parse(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\nif(file[0] == 0x50 && file[1] == 0x4b) return parse_zip(file, options);\nif((file[0] | 0x20) == 0x6d && (file[1]|0x20) == 0x69) return parse_mad(file, options);\nif(file.length < 512) throw new Error(\"CFB file size \" + file.length + \" < 512\");\nvar mver = 3;\nvar ssz = 512;\nvar nmfs = 0; // number of mini FAT sectors\nvar difat_sec_cnt = 0;\nvar dir_start = 0;\nvar minifat_start = 0;\nvar difat_start = 0;\n\nvar fat_addrs/*:Array*/ = []; // locations of FAT sectors\n\n/* [MS-CFB] 2.2 Compound File Header */\nvar blob/*:CFBlob*/ = /*::(*/file.slice(0,512)/*:: :any)*/;\nprep_blob(blob, 0);\n\n/* major version */\nvar mv = check_get_mver(blob);\nmver = mv[0];\nswitch(mver) {\n\tcase 3: ssz = 512; break; case 4: ssz = 4096; break;\n\tcase 0: if(mv[1] == 0) return parse_zip(file, options);\n\t/* falls through */\n\tdefault: throw new Error(\"Major Version: Expected 3 or 4 saw \" + mver);\n}\n\n/* reprocess header */\nif(ssz !== 512) { blob = /*::(*/file.slice(0,ssz)/*:: :any)*/; prep_blob(blob, 28 /* blob.l */); }\n/* Save header for final object */\nvar header/*:RawBytes*/ = file.slice(0,ssz);\n\ncheck_shifts(blob, mver);\n\n// Number of Directory Sectors\nvar dir_cnt/*:number*/ = blob.read_shift(4, 'i');\nif(mver === 3 && dir_cnt !== 0) throw new Error('# Directory Sectors: Expected 0 saw ' + dir_cnt);\n\n// Number of FAT Sectors\nblob.l += 4;\n\n// First Directory Sector Location\ndir_start = blob.read_shift(4, 'i');\n\n// Transaction Signature\nblob.l += 4;\n\n// Mini Stream Cutoff Size\nblob.chk('00100000', 'Mini Stream Cutoff Size: ');\n\n// First Mini FAT Sector Location\nminifat_start = blob.read_shift(4, 'i');\n\n// Number of Mini FAT Sectors\nnmfs = blob.read_shift(4, 'i');\n\n// First DIFAT sector location\ndifat_start = blob.read_shift(4, 'i');\n\n// Number of DIFAT Sectors\ndifat_sec_cnt = blob.read_shift(4, 'i');\n\n// Grab FAT Sector Locations\nfor(var q = -1, j = 0; j < 109; ++j) { /* 109 = (512 - blob.l)>>>2; */\n\tq = blob.read_shift(4, 'i');\n\tif(q<0) break;\n\tfat_addrs[j] = q;\n}\n\n/** Break the file up into sectors */\nvar sectors/*:Array*/ = sectorify(file, ssz);\n\nsleuth_fat(difat_start, difat_sec_cnt, sectors, ssz, fat_addrs);\n\n/** Chains */\nvar sector_list/*:SectorList*/ = make_sector_list(sectors, dir_start, fat_addrs, ssz);\n\nif(dir_start < sector_list.length) sector_list[dir_start].name = \"!Directory\";\nif(nmfs > 0 && minifat_start !== ENDOFCHAIN) sector_list[minifat_start].name = \"!MiniFAT\";\nsector_list[fat_addrs[0]].name = \"!FAT\";\nsector_list.fat_addrs = fat_addrs;\nsector_list.ssz = ssz;\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nvar files/*:CFBFiles*/ = {}, Paths/*:Array*/ = [], FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array*/ = [];\nread_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex, minifat_start);\n\nbuild_full_paths(FileIndex, FullPaths, Paths);\nPaths.shift();\n\nvar o = {\n\tFileIndex: FileIndex,\n\tFullPaths: FullPaths\n};\n\n// $FlowIgnore\nif(options && options.raw) o.raw = {header: header, sectors: sectors};\nreturn o;\n} // parse\n\n/* [MS-CFB] 2.2 Compound File Header -- read up to major version */\nfunction check_get_mver(blob/*:CFBlob*/)/*:[number, number]*/ {\n\tif(blob[blob.l] == 0x50 && blob[blob.l + 1] == 0x4b) return [0, 0];\n\t// header signature 8\n\tblob.chk(HEADER_SIGNATURE, 'Header Signature: ');\n\n\t// clsid 16\n\t//blob.chk(HEADER_CLSID, 'CLSID: ');\n\tblob.l += 16;\n\n\t// minor version 2\n\tvar mver/*:number*/ = blob.read_shift(2, 'u');\n\n\treturn [blob.read_shift(2,'u'), mver];\n}\nfunction check_shifts(blob/*:CFBlob*/, mver/*:number*/)/*:void*/ {\n\tvar shift = 0x09;\n\n\t// Byte Order\n\t//blob.chk('feff', 'Byte Order: '); // note: some writers put 0xffff\n\tblob.l += 2;\n\n\t// Sector Shift\n\tswitch((shift = blob.read_shift(2))) {\n\t\tcase 0x09: if(mver != 3) throw new Error('Sector Shift: Expected 9 saw ' + shift); break;\n\t\tcase 0x0c: if(mver != 4) throw new Error('Sector Shift: Expected 12 saw ' + shift); break;\n\t\tdefault: throw new Error('Sector Shift: Expected 9 or 12 saw ' + shift);\n\t}\n\n\t// Mini Sector Shift\n\tblob.chk('0600', 'Mini Sector Shift: ');\n\n\t// Reserved\n\tblob.chk('000000000000', 'Reserved: ');\n}\n\n/** Break the file up into sectors */\nfunction sectorify(file/*:RawBytes*/, ssz/*:number*/)/*:Array*/ {\n\tvar nsectors = Math.ceil(file.length/ssz)-1;\n\tvar sectors/*:Array*/ = [];\n\tfor(var i=1; i < nsectors; ++i) sectors[i-1] = file.slice(i*ssz,(i+1)*ssz);\n\tsectors[nsectors-1] = file.slice(nsectors*ssz);\n\treturn sectors;\n}\n\n/* [MS-CFB] 2.6.4 Red-Black Tree */\nfunction build_full_paths(FI/*:CFBFileIndex*/, FP/*:Array*/, Paths/*:Array*/)/*:void*/ {\n\tvar i = 0, L = 0, R = 0, C = 0, j = 0, pl = Paths.length;\n\tvar dad/*:Array*/ = [], q/*:Array*/ = [];\n\n\tfor(; i < pl; ++i) { dad[i]=q[i]=i; FP[i]=Paths[i]; }\n\n\tfor(; j < q.length; ++j) {\n\t\ti = q[j];\n\t\tL = FI[i].L; R = FI[i].R; C = FI[i].C;\n\t\tif(dad[i] === i) {\n\t\t\tif(L !== -1 /*NOSTREAM*/ && dad[L] !== L) dad[i] = dad[L];\n\t\t\tif(R !== -1 && dad[R] !== R) dad[i] = dad[R];\n\t\t}\n\t\tif(C !== -1 /*NOSTREAM*/) dad[C] = i;\n\t\tif(L !== -1 && i != dad[i]) { dad[L] = dad[i]; if(q.lastIndexOf(L) < j) q.push(L); }\n\t\tif(R !== -1 && i != dad[i]) { dad[R] = dad[i]; if(q.lastIndexOf(R) < j) q.push(R); }\n\t}\n\tfor(i=1; i < pl; ++i) if(dad[i] === i) {\n\t\tif(R !== -1 /*NOSTREAM*/ && dad[R] !== R) dad[i] = dad[R];\n\t\telse if(L !== -1 && dad[L] !== L) dad[i] = dad[L];\n\t}\n\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type === 0 /* unknown */) continue;\n\t\tj = i;\n\t\tif(j != dad[j]) do {\n\t\t\tj = dad[j];\n\t\t\tFP[i] = FP[j] + \"/\" + FP[i];\n\t\t} while (j !== 0 && -1 !== dad[j] && j != dad[j]);\n\t\tdad[i] = -1;\n\t}\n\n\tFP[0] += \"/\";\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type !== 2 /* stream */) FP[i] += \"/\";\n\t}\n}\n\nfunction get_mfat_entry(entry/*:CFBEntry*/, payload/*:RawBytes*/, mini/*:?RawBytes*/)/*:CFBlob*/ {\n\tvar start = entry.start, size = entry.size;\n\t//return (payload.slice(start*MSSZ, start*MSSZ + size)/*:any*/);\n\tvar o = [];\n\tvar idx = start;\n\twhile(mini && size > 0 && idx >= 0) {\n\t\to.push(payload.slice(idx * MSSZ, idx * MSSZ + MSSZ));\n\t\tsize -= MSSZ;\n\t\tidx = __readInt32LE(mini, idx * 4);\n\t}\n\tif(o.length === 0) return (new_buf(0)/*:any*/);\n\treturn (bconcat(o).slice(0, entry.size)/*:any*/);\n}\n\n/** Chase down the rest of the DIFAT chain to build a comprehensive list\n DIFAT chains by storing the next sector number as the last 32 bits */\nfunction sleuth_fat(idx/*:number*/, cnt/*:number*/, sectors/*:Array*/, ssz/*:number*/, fat_addrs)/*:void*/ {\n\tvar q/*:number*/ = ENDOFCHAIN;\n\tif(idx === ENDOFCHAIN) {\n\t\tif(cnt !== 0) throw new Error(\"DIFAT chain shorter than expected\");\n\t} else if(idx !== -1 /*FREESECT*/) {\n\t\tvar sector = sectors[idx], m = (ssz>>>2)-1;\n\t\tif(!sector) return;\n\t\tfor(var i = 0; i < m; ++i) {\n\t\t\tif((q = __readInt32LE(sector,i*4)) === ENDOFCHAIN) break;\n\t\t\tfat_addrs.push(q);\n\t\t}\n\t\tif(cnt >= 1) sleuth_fat(__readInt32LE(sector,ssz-4),cnt - 1, sectors, ssz, fat_addrs);\n\t}\n}\n\n/** Follow the linked list of sectors for a given starting point */\nfunction get_sector_list(sectors/*:Array*/, start/*:number*/, fat_addrs/*:Array*/, ssz/*:number*/, chkd/*:?Array*/)/*:SectorEntry*/ {\n\tvar buf/*:Array*/ = [], buf_chain/*:Array*/ = [];\n\tif(!chkd) chkd = [];\n\tvar modulus = ssz - 1, j = 0, jj = 0;\n\tfor(j=start; j>=0;) {\n\t\tchkd[j] = true;\n\t\tbuf[buf.length] = j;\n\t\tbuf_chain.push(sectors[j]);\n\t\tvar addr = fat_addrs[Math.floor(j*4/ssz)];\n\t\tjj = ((j*4) & modulus);\n\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\n\t\tif(!sectors[addr]) break;\n\t\tj = __readInt32LE(sectors[addr], jj);\n\t}\n\treturn {nodes: buf, data:__toBuffer([buf_chain])};\n}\n\n/** Chase down the sector linked lists */\nfunction make_sector_list(sectors/*:Array*/, dir_start/*:number*/, fat_addrs/*:Array*/, ssz/*:number*/)/*:SectorList*/ {\n\tvar sl = sectors.length, sector_list/*:SectorList*/ = ([]/*:any*/);\n\tvar chkd/*:Array*/ = [], buf/*:Array*/ = [], buf_chain/*:Array*/ = [];\n\tvar modulus = ssz - 1, i=0, j=0, k=0, jj=0;\n\tfor(i=0; i < sl; ++i) {\n\t\tbuf = ([]/*:Array*/);\n\t\tk = (i + dir_start); if(k >= sl) k-=sl;\n\t\tif(chkd[k]) continue;\n\t\tbuf_chain = [];\n\t\tvar seen = [];\n\t\tfor(j=k; j>=0;) {\n\t\t\tseen[j] = true;\n\t\t\tchkd[j] = true;\n\t\t\tbuf[buf.length] = j;\n\t\t\tbuf_chain.push(sectors[j]);\n\t\t\tvar addr/*:number*/ = fat_addrs[Math.floor(j*4/ssz)];\n\t\t\tjj = ((j*4) & modulus);\n\t\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\n\t\t\tif(!sectors[addr]) break;\n\t\t\tj = __readInt32LE(sectors[addr], jj);\n\t\t\tif(seen[j]) break;\n\t\t}\n\t\tsector_list[k] = ({nodes: buf, data:__toBuffer([buf_chain])}/*:SectorEntry*/);\n\t}\n\treturn sector_list;\n}\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nfunction read_directory(dir_start/*:number*/, sector_list/*:SectorList*/, sectors/*:Array*/, Paths/*:Array*/, nmfs, files, FileIndex, mini) {\n\tvar minifat_store = 0, pl = (Paths.length?2:0);\n\tvar sector = sector_list[dir_start].data;\n\tvar i = 0, namelen = 0, name;\n\tfor(; i < sector.length; i+= 128) {\n\t\tvar blob/*:CFBlob*/ = /*::(*/sector.slice(i, i+128)/*:: :any)*/;\n\t\tprep_blob(blob, 64);\n\t\tnamelen = blob.read_shift(2);\n\t\tname = __utf16le(blob,0,namelen-pl);\n\t\tPaths.push(name);\n\t\tvar o/*:CFBEntry*/ = ({\n\t\t\tname: name,\n\t\t\ttype: blob.read_shift(1),\n\t\t\tcolor: blob.read_shift(1),\n\t\t\tL: blob.read_shift(4, 'i'),\n\t\t\tR: blob.read_shift(4, 'i'),\n\t\t\tC: blob.read_shift(4, 'i'),\n\t\t\tclsid: blob.read_shift(16),\n\t\t\tstate: blob.read_shift(4, 'i'),\n\t\t\tstart: 0,\n\t\t\tsize: 0\n\t\t});\n\t\tvar ctime/*:number*/ = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(ctime !== 0) o.ct = read_date(blob, blob.l-8);\n\t\tvar mtime/*:number*/ = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(mtime !== 0) o.mt = read_date(blob, blob.l-8);\n\t\to.start = blob.read_shift(4, 'i');\n\t\to.size = blob.read_shift(4, 'i');\n\t\tif(o.size < 0 && o.start < 0) { o.size = o.type = 0; o.start = ENDOFCHAIN; o.name = \"\"; }\n\t\tif(o.type === 5) { /* root */\n\t\t\tminifat_store = o.start;\n\t\t\tif(nmfs > 0 && minifat_store !== ENDOFCHAIN) sector_list[minifat_store].name = \"!StreamData\";\n\t\t\t/*minifat_size = o.size;*/\n\t\t} else if(o.size >= 4096 /* MSCSZ */) {\n\t\t\to.storage = 'fat';\n\t\t\tif(sector_list[o.start] === undefined) sector_list[o.start] = get_sector_list(sectors, o.start, sector_list.fat_addrs, sector_list.ssz);\n\t\t\tsector_list[o.start].name = o.name;\n\t\t\to.content = (sector_list[o.start].data.slice(0,o.size)/*:any*/);\n\t\t} else {\n\t\t\to.storage = 'minifat';\n\t\t\tif(o.size < 0) o.size = 0;\n\t\t\telse if(minifat_store !== ENDOFCHAIN && o.start !== ENDOFCHAIN && sector_list[minifat_store]) {\n\t\t\t\to.content = get_mfat_entry(o, sector_list[minifat_store].data, (sector_list[mini]||{}).data);\n\t\t\t}\n\t\t}\n\t\tif(o.content) prep_blob(o.content, 0);\n\t\tfiles[name] = o;\n\t\tFileIndex.push(o);\n\t}\n}\n\nfunction read_date(blob/*:RawBytes|CFBlob*/, offset/*:number*/)/*:Date*/ {\n\treturn new Date(( ( (__readUInt32LE(blob,offset+4)/1e7)*Math.pow(2,32)+__readUInt32LE(blob,offset)/1e7 ) - 11644473600)*1000);\n}\n\nfunction read_file(filename/*:string*/, options/*:CFBReadOpts*/) {\n\tget_fs();\n\treturn parse(fs.readFileSync(filename), options);\n}\n\nfunction read(blob/*:RawBytes|string*/, options/*:CFBReadOpts*/) {\n\tvar type = options && options.type;\n\tif(!type) {\n\t\tif(has_buf && Buffer.isBuffer(blob)) type = \"buffer\";\n\t}\n\tswitch(type || \"base64\") {\n\t\tcase \"file\": /*:: if(typeof blob !== 'string') throw \"Must pass a filename when type='file'\"; */return read_file(blob, options);\n\t\tcase \"base64\": /*:: if(typeof blob !== 'string') throw \"Must pass a base64-encoded binary string when type='file'\"; */return parse(s2a(Base64_decode(blob)), options);\n\t\tcase \"binary\": /*:: if(typeof blob !== 'string') throw \"Must pass a binary string when type='file'\"; */return parse(s2a(blob), options);\n\t}\n\treturn parse(/*::typeof blob == 'string' ? new Buffer(blob, 'utf-8') : */blob, options);\n}\n\nfunction init_cfb(cfb/*:CFBContainer*/, opts/*:?any*/)/*:void*/ {\n\tvar o = opts || {}, root = o.root || \"Root Entry\";\n\tif(!cfb.FullPaths) cfb.FullPaths = [];\n\tif(!cfb.FileIndex) cfb.FileIndex = [];\n\tif(cfb.FullPaths.length !== cfb.FileIndex.length) throw new Error(\"inconsistent CFB structure\");\n\tif(cfb.FullPaths.length === 0) {\n\t\tcfb.FullPaths[0] = root + \"/\";\n\t\tcfb.FileIndex[0] = ({ name: root, type: 5 }/*:any*/);\n\t}\n\tif(o.CLSID) cfb.FileIndex[0].clsid = o.CLSID;\n\tseed_cfb(cfb);\n}\nfunction seed_cfb(cfb/*:CFBContainer*/)/*:void*/ {\n\tvar nm = \"\\u0001Sh33tJ5\";\n\tif(CFB.find(cfb, \"/\" + nm)) return;\n\tvar p = new_buf(4); p[0] = 55; p[1] = p[3] = 50; p[2] = 54;\n\tcfb.FileIndex.push(({ name: nm, type: 2, content:p, size:4, L:69, R:69, C:69 }/*:any*/));\n\tcfb.FullPaths.push(cfb.FullPaths[0] + nm);\n\trebuild_cfb(cfb);\n}\nfunction rebuild_cfb(cfb/*:CFBContainer*/, f/*:?boolean*/)/*:void*/ {\n\tinit_cfb(cfb);\n\tvar gc = false, s = false;\n\tfor(var i = cfb.FullPaths.length - 1; i >= 0; --i) {\n\t\tvar _file = cfb.FileIndex[i];\n\t\tswitch(_file.type) {\n\t\t\tcase 0:\n\t\t\t\tif(s) gc = true;\n\t\t\t\telse { cfb.FileIndex.pop(); cfb.FullPaths.pop(); }\n\t\t\t\tbreak;\n\t\t\tcase 1: case 2: case 5:\n\t\t\t\ts = true;\n\t\t\t\tif(isNaN(_file.R * _file.L * _file.C)) gc = true;\n\t\t\t\tif(_file.R > -1 && _file.L > -1 && _file.R == _file.L) gc = true;\n\t\t\t\tbreak;\n\t\t\tdefault: gc = true; break;\n\t\t}\n\t}\n\tif(!gc && !f) return;\n\n\tvar now = new Date(1987, 1, 19), j = 0;\n\t// Track which names exist\n\tvar fullPaths = Object.create ? Object.create(null) : {};\n\tvar data/*:Array<[string, CFBEntry]>*/ = [];\n\tfor(i = 0; i < cfb.FullPaths.length; ++i) {\n\t\tfullPaths[cfb.FullPaths[i]] = true;\n\t\tif(cfb.FileIndex[i].type === 0) continue;\n\t\tdata.push([cfb.FullPaths[i], cfb.FileIndex[i]]);\n\t}\n\tfor(i = 0; i < data.length; ++i) {\n\t\tvar dad = dirname(data[i][0]);\n\t\ts = fullPaths[dad];\n\t\twhile(!s) {\n\t\t\twhile(dirname(dad) && !fullPaths[dirname(dad)]) dad = dirname(dad);\n\n\t\t\tdata.push([dad, ({\n\t\t\t\tname: filename(dad).replace(\"/\",\"\"),\n\t\t\t\ttype: 1,\n\t\t\t\tclsid: HEADER_CLSID,\n\t\t\t\tct: now, mt: now,\n\t\t\t\tcontent: null\n\t\t\t}/*:any*/)]);\n\n\t\t\t// Add name to set\n\t\t\tfullPaths[dad] = true;\n\n\t\t\tdad = dirname(data[i][0]);\n\t\t\ts = fullPaths[dad];\n\t\t}\n\t}\n\n\tdata.sort(function(x,y) { return namecmp(x[0], y[0]); });\n\tcfb.FullPaths = []; cfb.FileIndex = [];\n\tfor(i = 0; i < data.length; ++i) { cfb.FullPaths[i] = data[i][0]; cfb.FileIndex[i] = data[i][1]; }\n\tfor(i = 0; i < data.length; ++i) {\n\t\tvar elt = cfb.FileIndex[i];\n\t\tvar nm = cfb.FullPaths[i];\n\n\t\telt.name = filename(nm).replace(\"/\",\"\");\n\t\telt.L = elt.R = elt.C = -(elt.color = 1);\n\t\telt.size = elt.content ? elt.content.length : 0;\n\t\telt.start = 0;\n\t\telt.clsid = (elt.clsid || HEADER_CLSID);\n\t\tif(i === 0) {\n\t\t\telt.C = data.length > 1 ? 1 : -1;\n\t\t\telt.size = 0;\n\t\t\telt.type = 5;\n\t\t} else if(nm.slice(-1) == \"/\") {\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==nm) break;\n\t\t\telt.C = j >= data.length ? -1 : j;\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==dirname(nm)) break;\n\t\t\telt.R = j >= data.length ? -1 : j;\n\t\t\telt.type = 1;\n\t\t} else {\n\t\t\tif(dirname(cfb.FullPaths[i+1]||\"\") == dirname(nm)) elt.R = i + 1;\n\t\t\telt.type = 2;\n\t\t}\n\t}\n\n}\n\nfunction _write(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes|string*/ {\n\tvar _opts = options || {};\n\t/* MAD is order-sensitive, skip rebuild and sort */\n\tif(_opts.fileType == 'mad') return write_mad(cfb, _opts);\n\trebuild_cfb(cfb);\n\tswitch(_opts.fileType) {\n\t\tcase 'zip': return write_zip(cfb, _opts);\n\t\t//case 'mad': return write_mad(cfb, _opts);\n\t}\n\tvar L = (function(cfb/*:CFBContainer*/)/*:Array*/{\n\t\tvar mini_size = 0, fat_size = 0;\n\t\tfor(var i = 0; i < cfb.FileIndex.length; ++i) {\n\t\t\tvar file = cfb.FileIndex[i];\n\t\t\tif(!file.content) continue;\n\t\t\tvar flen = file.content.length;\n\t\t\tif(flen > 0){\n\t\t\t\tif(flen < 0x1000) mini_size += (flen + 0x3F) >> 6;\n\t\t\t\telse fat_size += (flen + 0x01FF) >> 9;\n\t\t\t}\n\t\t}\n\t\tvar dir_cnt = (cfb.FullPaths.length +3) >> 2;\n\t\tvar mini_cnt = (mini_size + 7) >> 3;\n\t\tvar mfat_cnt = (mini_size + 0x7F) >> 7;\n\t\tvar fat_base = mini_cnt + fat_size + dir_cnt + mfat_cnt;\n\t\tvar fat_cnt = (fat_base + 0x7F) >> 7;\n\t\tvar difat_cnt = fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt-109)/0x7F);\n\t\twhile(((fat_base + fat_cnt + difat_cnt + 0x7F) >> 7) > fat_cnt) difat_cnt = ++fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt-109)/0x7F);\n\t\tvar L = [1, difat_cnt, fat_cnt, mfat_cnt, dir_cnt, fat_size, mini_size, 0];\n\t\tcfb.FileIndex[0].size = mini_size << 6;\n\t\tL[7] = (cfb.FileIndex[0].start=L[0]+L[1]+L[2]+L[3]+L[4]+L[5])+((L[6]+7) >> 3);\n\t\treturn L;\n\t})(cfb);\n\tvar o = new_buf(L[7] << 9);\n\tvar i = 0, T = 0;\n\t{\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(1, HEADER_SIG[i]);\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(2, 0);\n\t\to.write_shift(2, 0x003E);\n\t\to.write_shift(2, 0x0003);\n\t\to.write_shift(2, 0xFFFE);\n\t\to.write_shift(2, 0x0009);\n\t\to.write_shift(2, 0x0006);\n\t\tfor(i = 0; i < 3; ++i) o.write_shift(2, 0);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, L[2]);\n\t\to.write_shift(4, L[0] + L[1] + L[2] + L[3] - 1);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, 1<<12);\n\t\to.write_shift(4, L[3] ? L[0] + L[1] + L[2] - 1: ENDOFCHAIN);\n\t\to.write_shift(4, L[3]);\n\t\to.write_shift(-4, L[1] ? L[0] - 1: ENDOFCHAIN);\n\t\to.write_shift(4, L[1]);\n\t\tfor(i = 0; i < 109; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\n\t}\n\tif(L[1]) {\n\t\tfor(T = 0; T < L[1]; ++T) {\n\t\t\tfor(; i < 236 + T * 127; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\n\t\t\to.write_shift(-4, T === L[1] - 1 ? ENDOFCHAIN : T + 1);\n\t\t}\n\t}\n\tvar chainit = function(w/*:number*/)/*:void*/ {\n\t\tfor(T += w; i> 9);\n\t}\n\tchainit((L[6] + 7) >> 3);\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\n\tT = i = 0;\n\tfor(j = 0; j < cfb.FileIndex.length; ++j) {\n\t\tfile = cfb.FileIndex[j];\n\t\tif(!file.content) continue;\n\t\t/*:: if(file.content == null) throw new Error(\"unreachable\"); */\n\t\tflen = file.content.length;\n\t\tif(!flen || flen >= 0x1000) continue;\n\t\tfile.start = T;\n\t\tchainit((flen + 0x3F) >> 6);\n\t}\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\n\tfor(i = 0; i < L[4]<<2; ++i) {\n\t\tvar nm = cfb.FullPaths[i];\n\t\tif(!nm || nm.length === 0) {\n\t\t\tfor(j = 0; j < 17; ++j) o.write_shift(4, 0);\n\t\t\tfor(j = 0; j < 3; ++j) o.write_shift(4, -1);\n\t\t\tfor(j = 0; j < 12; ++j) o.write_shift(4, 0);\n\t\t\tcontinue;\n\t\t}\n\t\tfile = cfb.FileIndex[i];\n\t\tif(i === 0) file.start = file.size ? file.start - 1 : ENDOFCHAIN;\n\t\tvar _nm/*:string*/ = (i === 0 && _opts.root) || file.name;\n\t\tif(_nm.length > 32) {\n\t\t\tconsole.error(\"Name \" + _nm + \" will be truncated to \" + _nm.slice(0,32));\n\t\t\t_nm = _nm.slice(0, 32);\n\t\t}\n\t\tflen = 2*(_nm.length+1);\n\t\to.write_shift(64, _nm, \"utf16le\");\n\t\to.write_shift(2, flen);\n\t\to.write_shift(1, file.type);\n\t\to.write_shift(1, file.color);\n\t\to.write_shift(-4, file.L);\n\t\to.write_shift(-4, file.R);\n\t\to.write_shift(-4, file.C);\n\t\tif(!file.clsid) for(j = 0; j < 4; ++j) o.write_shift(4, 0);\n\t\telse o.write_shift(16, file.clsid, \"hex\");\n\t\to.write_shift(4, file.state || 0);\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\n\t\to.write_shift(4, file.start);\n\t\to.write_shift(4, file.size); o.write_shift(4, 0);\n\t}\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\n\t\tfile = cfb.FileIndex[i];\n\t\t/*:: if(!file.content) throw new Error(\"unreachable\"); */\n\t\tif(file.size >= 0x1000) {\n\t\t\to.l = (file.start+1) << 9;\n\t\t\tif (has_buf && Buffer.isBuffer(file.content)) {\n\t\t\t\tfile.content.copy(o, o.l, 0, file.size);\n\t\t\t\t// o is a 0-filled Buffer so just set next offset\n\t\t\t\to.l += (file.size + 511) & -512;\n\t\t\t} else {\n\t\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\t\tfor(; j & 0x1FF; ++j) o.write_shift(1, 0);\n\t\t\t}\n\t\t}\n\t}\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\n\t\tfile = cfb.FileIndex[i];\n\t\t/*:: if(!file.content) throw new Error(\"unreachable\"); */\n\t\tif(file.size > 0 && file.size < 0x1000) {\n\t\t\tif (has_buf && Buffer.isBuffer(file.content)) {\n\t\t\t\tfile.content.copy(o, o.l, 0, file.size);\n\t\t\t\t// o is a 0-filled Buffer so just set next offset\n\t\t\t\to.l += (file.size + 63) & -64;\n\t\t\t} else {\n\t\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\t\tfor(; j & 0x3F; ++j) o.write_shift(1, 0);\n\t\t\t}\n\t\t}\n\t}\n\tif (has_buf) {\n\t\to.l = o.length;\n\t} else {\n\t\t// When using Buffer, already 0-filled\n\t\twhile(o.l < o.length) o.write_shift(1, 0);\n\t}\n\treturn o;\n}\n/* [MS-CFB] 2.6.4 (Unicode 3.0.1 case conversion) */\nfunction find(cfb/*:CFBContainer*/, path/*:string*/)/*:?CFBEntry*/ {\n\tvar UCFullPaths/*:Array*/ = cfb.FullPaths.map(function(x) { return x.toUpperCase(); });\n\tvar UCPaths/*:Array*/ = UCFullPaths.map(function(x) { var y = x.split(\"/\"); return y[y.length - (x.slice(-1) == \"/\" ? 2 : 1)]; });\n\tvar k/*:boolean*/ = false;\n\tif(path.charCodeAt(0) === 47 /* \"/\" */) { k = true; path = UCFullPaths[0].slice(0, -1) + path; }\n\telse k = path.indexOf(\"/\") !== -1;\n\tvar UCPath/*:string*/ = path.toUpperCase();\n\tvar w/*:number*/ = k === true ? UCFullPaths.indexOf(UCPath) : UCPaths.indexOf(UCPath);\n\tif(w !== -1) return cfb.FileIndex[w];\n\n\tvar m = !UCPath.match(chr1);\n\tUCPath = UCPath.replace(chr0,'');\n\tif(m) UCPath = UCPath.replace(chr1,'!');\n\tfor(w = 0; w < UCFullPaths.length; ++w) {\n\t\tif((m ? UCFullPaths[w].replace(chr1,'!') : UCFullPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\n\t\tif((m ? UCPaths[w].replace(chr1,'!') : UCPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\n\t}\n\treturn null;\n}\n/** CFB Constants */\nvar MSSZ = 64; /* Mini Sector Size = 1<<6 */\n//var MSCSZ = 4096; /* Mini Stream Cutoff Size */\n/* 2.1 Compound File Sector Numbers and Types */\nvar ENDOFCHAIN = -2;\n/* 2.2 Compound File Header */\nvar HEADER_SIGNATURE = 'd0cf11e0a1b11ae1';\nvar HEADER_SIG = [0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1];\nvar HEADER_CLSID = '00000000000000000000000000000000';\nvar consts = {\n\t/* 2.1 Compund File Sector Numbers and Types */\n\tMAXREGSECT: -6,\n\tDIFSECT: -4,\n\tFATSECT: -3,\n\tENDOFCHAIN: ENDOFCHAIN,\n\tFREESECT: -1,\n\t/* 2.2 Compound File Header */\n\tHEADER_SIGNATURE: HEADER_SIGNATURE,\n\tHEADER_MINOR_VERSION: '3e00',\n\tMAXREGSID: -6,\n\tNOSTREAM: -1,\n\tHEADER_CLSID: HEADER_CLSID,\n\t/* 2.6.1 Compound File Directory Entry */\n\tEntryTypes: ['unknown','storage','stream','lockbytes','property','root']\n};\n\nfunction write_file(cfb/*:CFBContainer*/, filename/*:string*/, options/*:CFBWriteOpts*/)/*:void*/ {\n\tget_fs();\n\tvar o = _write(cfb, options);\n\t/*:: if(typeof Buffer == 'undefined' || !Buffer.isBuffer(o) || !(o instanceof Buffer)) throw new Error(\"unreachable\"); */\n\tfs.writeFileSync(filename, o);\n}\n\nfunction a2s(o/*:RawBytes*/)/*:string*/ {\n\tvar out = new Array(o.length);\n\tfor(var i = 0; i < o.length; ++i) out[i] = String.fromCharCode(o[i]);\n\treturn out.join(\"\");\n}\n\nfunction write(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes|string*/ {\n\tvar o = _write(cfb, options);\n\tswitch(options && options.type || \"buffer\") {\n\t\tcase \"file\": get_fs(); fs.writeFileSync(options.filename, (o/*:any*/)); return o;\n\t\tcase \"binary\": return typeof o == \"string\" ? o : a2s(o);\n\t\tcase \"base64\": return Base64_encode(typeof o == \"string\" ? o : a2s(o));\n\t\tcase \"buffer\": if(has_buf) return Buffer.isBuffer(o) ? o : Buffer_from(o);\n\t\t\t/* falls through */\n\t\tcase \"array\": return typeof o == \"string\" ? s2a(o) : o;\n\t}\n\treturn o;\n}\n/* node < 8.1 zlib does not expose bytesRead, so default to pure JS */\nvar _zlib;\nfunction use_zlib(zlib) { try {\n\tvar InflateRaw = zlib.InflateRaw;\n\tvar InflRaw = new InflateRaw();\n\tInflRaw._processChunk(new Uint8Array([3, 0]), InflRaw._finishFlushFlag);\n\tif(InflRaw.bytesRead) _zlib = zlib;\n\telse throw new Error(\"zlib does not expose bytesRead\");\n} catch(e) {console.error(\"cannot use native zlib: \" + (e.message || e)); } }\n\nfunction _inflateRawSync(payload, usz) {\n\tif(!_zlib) return _inflate(payload, usz);\n\tvar InflateRaw = _zlib.InflateRaw;\n\tvar InflRaw = new InflateRaw();\n\tvar out = InflRaw._processChunk(payload.slice(payload.l), InflRaw._finishFlushFlag);\n\tpayload.l += InflRaw.bytesRead;\n\treturn out;\n}\n\nfunction _deflateRawSync(payload) {\n\treturn _zlib ? _zlib.deflateRawSync(payload) : _deflate(payload);\n}\nvar CLEN_ORDER = [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ];\n\n/* LEN_ID = [ 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285 ]; */\nvar LEN_LN = [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13 , 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258 ];\n\n/* DST_ID = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 ]; */\nvar DST_LN = [ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577 ];\n\nfunction bit_swap_8(n) { var t = (((((n<<1)|(n<<11)) & 0x22110) | (((n<<5)|(n<<15)) & 0x88440))); return ((t>>16) | (t>>8) |t)&0xFF; }\n\nvar use_typed_arrays = typeof Uint8Array !== 'undefined';\n\nvar bitswap8 = use_typed_arrays ? new Uint8Array(1<<8) : [];\nfor(var q = 0; q < (1<<8); ++q) bitswap8[q] = bit_swap_8(q);\n\nfunction bit_swap_n(n, b) {\n\tvar rev = bitswap8[n & 0xFF];\n\tif(b <= 8) return rev >>> (8-b);\n\trev = (rev << 8) | bitswap8[(n>>8)&0xFF];\n\tif(b <= 16) return rev >>> (16-b);\n\trev = (rev << 8) | bitswap8[(n>>16)&0xFF];\n\treturn rev >>> (24-b);\n}\n\n/* helpers for unaligned bit reads */\nfunction read_bits_2(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 6 ? 0 : buf[h+1]<<8))>>>w)& 0x03; }\nfunction read_bits_3(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 5 ? 0 : buf[h+1]<<8))>>>w)& 0x07; }\nfunction read_bits_4(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 4 ? 0 : buf[h+1]<<8))>>>w)& 0x0F; }\nfunction read_bits_5(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 3 ? 0 : buf[h+1]<<8))>>>w)& 0x1F; }\nfunction read_bits_7(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 1 ? 0 : buf[h+1]<<8))>>>w)& 0x7F; }\n\n/* works up to n = 3 * 8 + 1 = 25 */\nfunction read_bits_n(buf, bl, n) {\n\tvar w = (bl&7), h = (bl>>>3), f = ((1<>> w;\n\tif(n < 8 - w) return v & f;\n\tv |= buf[h+1]<<(8-w);\n\tif(n < 16 - w) return v & f;\n\tv |= buf[h+2]<<(16-w);\n\tif(n < 24 - w) return v & f;\n\tv |= buf[h+3]<<(24-w);\n\treturn v & f;\n}\n\n/* helpers for unaligned bit writes */\nfunction write_bits_3(buf, bl, v) { var w = bl & 7, h = bl >>> 3;\n\tif(w <= 5) buf[h] |= (v & 7) << w;\n\telse {\n\t\tbuf[h] |= (v << w) & 0xFF;\n\t\tbuf[h+1] = (v&7) >> (8-w);\n\t}\n\treturn bl + 3;\n}\n\nfunction write_bits_1(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv = (v&1) << w;\n\tbuf[h] |= v;\n\treturn bl + 1;\n}\nfunction write_bits_8(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv <<= w;\n\tbuf[h] |= v & 0xFF; v >>>= 8;\n\tbuf[h+1] = v;\n\treturn bl + 8;\n}\nfunction write_bits_16(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv <<= w;\n\tbuf[h] |= v & 0xFF; v >>>= 8;\n\tbuf[h+1] = v & 0xFF;\n\tbuf[h+2] = v >>> 8;\n\treturn bl + 16;\n}\n\n/* until ArrayBuffer#realloc is a thing, fake a realloc */\nfunction realloc(b, sz/*:number*/) {\n\tvar L = b.length, M = 2*L > sz ? 2*L : sz + 5, i = 0;\n\tif(L >= sz) return b;\n\tif(has_buf) {\n\t\tvar o = new_unsafe_buf(M);\n\t\t// $FlowIgnore\n\t\tif(b.copy) b.copy(o);\n\t\telse for(; i < b.length; ++i) o[i] = b[i];\n\t\treturn o;\n\t} else if(use_typed_arrays) {\n\t\tvar a = new Uint8Array(M);\n\t\tif(a.set) a.set(b);\n\t\telse for(; i < L; ++i) a[i] = b[i];\n\t\treturn a;\n\t}\n\tb.length = M;\n\treturn b;\n}\n\n/* zero-filled arrays for older browsers */\nfunction zero_fill_array(n) {\n\tvar o = new Array(n);\n\tfor(var i = 0; i < n; ++i) o[i] = 0;\n\treturn o;\n}\n\n/* build tree (used for literals and lengths) */\nfunction build_tree(clens, cmap, MAX/*:number*/)/*:number*/ {\n\tvar maxlen = 1, w = 0, i = 0, j = 0, ccode = 0, L = clens.length;\n\n\tvar bl_count = use_typed_arrays ? new Uint16Array(32) : zero_fill_array(32);\n\tfor(i = 0; i < 32; ++i) bl_count[i] = 0;\n\n\tfor(i = L; i < MAX; ++i) clens[i] = 0;\n\tL = clens.length;\n\n\tvar ctree = use_typed_arrays ? new Uint16Array(L) : zero_fill_array(L); // []\n\n\t/* build code tree */\n\tfor(i = 0; i < L; ++i) {\n\t\tbl_count[(w = clens[i])]++;\n\t\tif(maxlen < w) maxlen = w;\n\t\tctree[i] = 0;\n\t}\n\tbl_count[0] = 0;\n\tfor(i = 1; i <= maxlen; ++i) bl_count[i+16] = (ccode = (ccode + bl_count[i-1])<<1);\n\tfor(i = 0; i < L; ++i) {\n\t\tccode = clens[i];\n\t\tif(ccode != 0) ctree[i] = bl_count[ccode+16]++;\n\t}\n\n\t/* cmap[maxlen + 4 bits] = (off&15) + (lit<<4) reverse mapping */\n\tvar cleni = 0;\n\tfor(i = 0; i < L; ++i) {\n\t\tcleni = clens[i];\n\t\tif(cleni != 0) {\n\t\t\tccode = bit_swap_n(ctree[i], maxlen)>>(maxlen-cleni);\n\t\t\tfor(j = (1<<(maxlen + 4 - cleni)) - 1; j>=0; --j)\n\t\t\t\tcmap[ccode|(j<*/ = [];\n\tvar i = 0;\n\tfor(;i<32; i++) dlens.push(5);\n\tbuild_tree(dlens, fix_dmap, 32);\n\n\tvar clens/*:Array*/ = [];\n\ti = 0;\n\tfor(; i<=143; i++) clens.push(8);\n\tfor(; i<=255; i++) clens.push(9);\n\tfor(; i<=279; i++) clens.push(7);\n\tfor(; i<=287; i++) clens.push(8);\n\tbuild_tree(clens, fix_lmap, 288);\n})();var _deflateRaw = /*#__PURE__*/(function _deflateRawIIFE() {\n\tvar DST_LN_RE = use_typed_arrays ? new Uint8Array(0x8000) : [];\n\tvar j = 0, k = 0;\n\tfor(; j < DST_LN.length - 1; ++j) {\n\t\tfor(; k < DST_LN[j+1]; ++k) DST_LN_RE[k] = j;\n\t}\n\tfor(;k < 32768; ++k) DST_LN_RE[k] = 29;\n\n\tvar LEN_LN_RE = use_typed_arrays ? new Uint8Array(0x103) : [];\n\tfor(j = 0, k = 0; j < LEN_LN.length - 1; ++j) {\n\t\tfor(; k < LEN_LN[j+1]; ++k) LEN_LN_RE[k] = j;\n\t}\n\n\tfunction write_stored(data, out) {\n\t\tvar boff = 0;\n\t\twhile(boff < data.length) {\n\t\t\tvar L = Math.min(0xFFFF, data.length - boff);\n\t\t\tvar h = boff + L == data.length;\n\t\t\tout.write_shift(1, +h);\n\t\t\tout.write_shift(2, L);\n\t\t\tout.write_shift(2, (~L) & 0xFFFF);\n\t\t\twhile(L-- > 0) out[out.l++] = data[boff++];\n\t\t}\n\t\treturn out.l;\n\t}\n\n\t/* Fixed Huffman */\n\tfunction write_huff_fixed(data, out) {\n\t\tvar bl = 0;\n\t\tvar boff = 0;\n\t\tvar addrs = use_typed_arrays ? new Uint16Array(0x8000) : [];\n\t\twhile(boff < data.length) {\n\t\t\tvar L = /* data.length - boff; */ Math.min(0xFFFF, data.length - boff);\n\n\t\t\t/* write a stored block for short data */\n\t\t\tif(L < 10) {\n\t\t\t\tbl = write_bits_3(out, bl, +!!(boff + L == data.length)); // jshint ignore:line\n\t\t\t\tif(bl & 7) bl += 8 - (bl & 7);\n\t\t\t\tout.l = (bl / 8) | 0;\n\t\t\t\tout.write_shift(2, L);\n\t\t\t\tout.write_shift(2, (~L) & 0xFFFF);\n\t\t\t\twhile(L-- > 0) out[out.l++] = data[boff++];\n\t\t\t\tbl = out.l * 8;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tbl = write_bits_3(out, bl, +!!(boff + L == data.length) + 2); // jshint ignore:line\n\t\t\tvar hash = 0;\n\t\t\twhile(L-- > 0) {\n\t\t\t\tvar d = data[boff];\n\t\t\t\thash = ((hash << 5) ^ d) & 0x7FFF;\n\n\t\t\t\tvar match = -1, mlen = 0;\n\n\t\t\t\tif((match = addrs[hash])) {\n\t\t\t\t\tmatch |= boff & ~0x7FFF;\n\t\t\t\t\tif(match > boff) match -= 0x8000;\n\t\t\t\t\tif(match < boff) while(data[match + mlen] == data[boff + mlen] && mlen < 250) ++mlen;\n\t\t\t\t}\n\n\t\t\t\tif(mlen > 2) {\n\t\t\t\t\t/* Copy Token */\n\t\t\t\t\td = LEN_LN_RE[mlen];\n\t\t\t\t\tif(d <= 22) bl = write_bits_8(out, bl, bitswap8[d+1]>>1) - 1;\n\t\t\t\t\telse {\n\t\t\t\t\t\twrite_bits_8(out, bl, 3);\n\t\t\t\t\t\tbl += 5;\n\t\t\t\t\t\twrite_bits_8(out, bl, bitswap8[d-23]>>5);\n\t\t\t\t\t\tbl += 3;\n\t\t\t\t\t}\n\t\t\t\t\tvar len_eb = (d < 8) ? 0 : ((d - 4)>>2);\n\t\t\t\t\tif(len_eb > 0) {\n\t\t\t\t\t\twrite_bits_16(out, bl, mlen - LEN_LN[d]);\n\t\t\t\t\t\tbl += len_eb;\n\t\t\t\t\t}\n\n\t\t\t\t\td = DST_LN_RE[boff - match];\n\t\t\t\t\tbl = write_bits_8(out, bl, bitswap8[d]>>3);\n\t\t\t\t\tbl -= 3;\n\n\t\t\t\t\tvar dst_eb = d < 4 ? 0 : (d-2)>>1;\n\t\t\t\t\tif(dst_eb > 0) {\n\t\t\t\t\t\twrite_bits_16(out, bl, boff - match - DST_LN[d]);\n\t\t\t\t\t\tbl += dst_eb;\n\t\t\t\t\t}\n\t\t\t\t\tfor(var q = 0; q < mlen; ++q) {\n\t\t\t\t\t\taddrs[hash] = boff & 0x7FFF;\n\t\t\t\t\t\thash = ((hash << 5) ^ data[boff]) & 0x7FFF;\n\t\t\t\t\t\t++boff;\n\t\t\t\t\t}\n\t\t\t\t\tL-= mlen - 1;\n\t\t\t\t} else {\n\t\t\t\t\t/* Literal Token */\n\t\t\t\t\tif(d <= 143) d = d + 48;\n\t\t\t\t\telse bl = write_bits_1(out, bl, 1);\n\t\t\t\t\tbl = write_bits_8(out, bl, bitswap8[d]);\n\t\t\t\t\taddrs[hash] = boff & 0x7FFF;\n\t\t\t\t\t++boff;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tbl = write_bits_8(out, bl, 0) - 1;\n\t\t}\n\t\tout.l = ((bl + 7)/8)|0;\n\t\treturn out.l;\n\t}\n\treturn function _deflateRaw(data, out) {\n\t\tif(data.length < 8) return write_stored(data, out);\n\t\treturn write_huff_fixed(data, out);\n\t};\n})();\n\nfunction _deflate(data) {\n\tvar buf = new_buf(50+Math.floor(data.length*1.1));\n\tvar off = _deflateRaw(data, buf);\n\treturn buf.slice(0, off);\n}\n/* modified inflate function also moves original read head */\n\nvar dyn_lmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);\nvar dyn_dmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);\nvar dyn_cmap = use_typed_arrays ? new Uint16Array(128) : zero_fill_array(128);\nvar dyn_len_1 = 1, dyn_len_2 = 1;\n\n/* 5.5.3 Expanding Huffman Codes */\nfunction dyn(data, boff/*:number*/) {\n\t/* nomenclature from RFC1951 refers to bit values; these are offset by the implicit constant */\n\tvar _HLIT = read_bits_5(data, boff) + 257; boff += 5;\n\tvar _HDIST = read_bits_5(data, boff) + 1; boff += 5;\n\tvar _HCLEN = read_bits_4(data, boff) + 4; boff += 4;\n\tvar w = 0;\n\n\t/* grab and store code lengths */\n\tvar clens = use_typed_arrays ? new Uint8Array(19) : zero_fill_array(19);\n\tvar ctree = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];\n\tvar maxlen = 1;\n\tvar bl_count = use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);\n\tvar next_code = use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);\n\tvar L = clens.length; /* 19 */\n\tfor(var i = 0; i < _HCLEN; ++i) {\n\t\tclens[CLEN_ORDER[i]] = w = read_bits_3(data, boff);\n\t\tif(maxlen < w) maxlen = w;\n\t\tbl_count[w]++;\n\t\tboff += 3;\n\t}\n\n\t/* build code tree */\n\tvar ccode = 0;\n\tbl_count[0] = 0;\n\tfor(i = 1; i <= maxlen; ++i) next_code[i] = ccode = (ccode + bl_count[i-1])<<1;\n\tfor(i = 0; i < L; ++i) if((ccode = clens[i]) != 0) ctree[i] = next_code[ccode]++;\n\t/* cmap[7 bits from stream] = (off&7) + (lit<<3) */\n\tvar cleni = 0;\n\tfor(i = 0; i < L; ++i) {\n\t\tcleni = clens[i];\n\t\tif(cleni != 0) {\n\t\t\tccode = bitswap8[ctree[i]]>>(8-cleni);\n\t\t\tfor(var j = (1<<(7-cleni))-1; j>=0; --j) dyn_cmap[ccode|(j<*/ = [];\n\tmaxlen = 1;\n\tfor(; hcodes.length < _HLIT + _HDIST;) {\n\t\tccode = dyn_cmap[read_bits_7(data, boff)];\n\t\tboff += ccode & 7;\n\t\tswitch((ccode >>>= 3)) {\n\t\t\tcase 16:\n\t\t\t\tw = 3 + read_bits_2(data, boff); boff += 2;\n\t\t\t\tccode = hcodes[hcodes.length - 1];\n\t\t\t\twhile(w-- > 0) hcodes.push(ccode);\n\t\t\t\tbreak;\n\t\t\tcase 17:\n\t\t\t\tw = 3 + read_bits_3(data, boff); boff += 3;\n\t\t\t\twhile(w-- > 0) hcodes.push(0);\n\t\t\t\tbreak;\n\t\t\tcase 18:\n\t\t\t\tw = 11 + read_bits_7(data, boff); boff += 7;\n\t\t\t\twhile(w -- > 0) hcodes.push(0);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\thcodes.push(ccode);\n\t\t\t\tif(maxlen < ccode) maxlen = ccode;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t/* build literal / length trees */\n\tvar h1 = hcodes.slice(0, _HLIT), h2 = hcodes.slice(_HLIT);\n\tfor(i = _HLIT; i < 286; ++i) h1[i] = 0;\n\tfor(i = _HDIST; i < 30; ++i) h2[i] = 0;\n\tdyn_len_1 = build_tree(h1, dyn_lmap, 286);\n\tdyn_len_2 = build_tree(h2, dyn_dmap, 30);\n\treturn boff;\n}\n\n/* return [ data, bytesRead ] */\nfunction inflate(data, usz/*:number*/) {\n\t/* shortcircuit for empty buffer [0x03, 0x00] */\n\tif(data[0] == 3 && !(data[1] & 0x3)) { return [new_raw_buf(usz), 2]; }\n\n\t/* bit offset */\n\tvar boff = 0;\n\n\t/* header includes final bit and type bits */\n\tvar header = 0;\n\n\tvar outbuf = new_unsafe_buf(usz ? usz : (1<<18));\n\tvar woff = 0;\n\tvar OL = outbuf.length>>>0;\n\tvar max_len_1 = 0, max_len_2 = 0;\n\n\twhile((header&1) == 0) {\n\t\theader = read_bits_3(data, boff); boff += 3;\n\t\tif((header >>> 1) == 0) {\n\t\t\t/* Stored block */\n\t\t\tif(boff & 7) boff += 8 - (boff&7);\n\t\t\t/* 2 bytes sz, 2 bytes bit inverse */\n\t\t\tvar sz = data[boff>>>3] | data[(boff>>>3)+1]<<8;\n\t\t\tboff += 32;\n\t\t\t/* push sz bytes */\n\t\t\tif(sz > 0) {\n\t\t\t\tif(!usz && OL < woff + sz) { outbuf = realloc(outbuf, woff + sz); OL = outbuf.length; }\n\t\t\t\twhile(sz-- > 0) { outbuf[woff++] = data[boff>>>3]; boff += 8; }\n\t\t\t}\n\t\t\tcontinue;\n\t\t} else if((header >> 1) == 1) {\n\t\t\t/* Fixed Huffman */\n\t\t\tmax_len_1 = 9; max_len_2 = 5;\n\t\t} else {\n\t\t\t/* Dynamic Huffman */\n\t\t\tboff = dyn(data, boff);\n\t\t\tmax_len_1 = dyn_len_1; max_len_2 = dyn_len_2;\n\t\t}\n\t\tfor(;;) { // while(true) is apparently out of vogue in modern JS circles\n\t\t\tif(!usz && (OL < woff + 32767)) { outbuf = realloc(outbuf, woff + 32767); OL = outbuf.length; }\n\t\t\t/* ingest code and move read head */\n\t\t\tvar bits = read_bits_n(data, boff, max_len_1);\n\t\t\tvar code = (header>>>1) == 1 ? fix_lmap[bits] : dyn_lmap[bits];\n\t\t\tboff += code & 15; code >>>= 4;\n\t\t\t/* 0-255 are literals, 256 is end of block token, 257+ are copy tokens */\n\t\t\tif(((code>>>8)&0xFF) === 0) outbuf[woff++] = code;\n\t\t\telse if(code == 256) break;\n\t\t\telse {\n\t\t\t\tcode -= 257;\n\t\t\t\tvar len_eb = (code < 8) ? 0 : ((code-4)>>2); if(len_eb > 5) len_eb = 0;\n\t\t\t\tvar tgt = woff + LEN_LN[code];\n\t\t\t\t/* length extra bits */\n\t\t\t\tif(len_eb > 0) {\n\t\t\t\t\ttgt += read_bits_n(data, boff, len_eb);\n\t\t\t\t\tboff += len_eb;\n\t\t\t\t}\n\n\t\t\t\t/* dist code */\n\t\t\t\tbits = read_bits_n(data, boff, max_len_2);\n\t\t\t\tcode = (header>>>1) == 1 ? fix_dmap[bits] : dyn_dmap[bits];\n\t\t\t\tboff += code & 15; code >>>= 4;\n\t\t\t\tvar dst_eb = (code < 4 ? 0 : (code-2)>>1);\n\t\t\t\tvar dst = DST_LN[code];\n\t\t\t\t/* dist extra bits */\n\t\t\t\tif(dst_eb > 0) {\n\t\t\t\t\tdst += read_bits_n(data, boff, dst_eb);\n\t\t\t\t\tboff += dst_eb;\n\t\t\t\t}\n\n\t\t\t\t/* in the common case, manual byte copy is faster than TA set / Buffer copy */\n\t\t\t\tif(!usz && OL < tgt) { outbuf = realloc(outbuf, tgt + 100); OL = outbuf.length; }\n\t\t\t\twhile(woff < tgt) { outbuf[woff] = outbuf[woff - dst]; ++woff; }\n\t\t\t}\n\t\t}\n\t}\n\tif(usz) return [outbuf, (boff+7)>>>3];\n\treturn [outbuf.slice(0, woff), (boff+7)>>>3];\n}\n\nfunction _inflate(payload, usz) {\n\tvar data = payload.slice(payload.l||0);\n\tvar out = inflate(data, usz);\n\tpayload.l += out[1];\n\treturn out[0];\n}\n\nfunction warn_or_throw(wrn, msg) {\n\tif(wrn) { if(typeof console !== 'undefined') console.error(msg); }\n\telse throw new Error(msg);\n}\n\nfunction parse_zip(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\n\tvar blob/*:CFBlob*/ = /*::(*/file/*:: :any)*/;\n\tprep_blob(blob, 0);\n\n\tvar FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array*/ = [];\n\tvar o = {\n\t\tFileIndex: FileIndex,\n\t\tFullPaths: FullPaths\n\t};\n\tinit_cfb(o, { root: options.root });\n\n\t/* find end of central directory, start just after signature */\n\tvar i = blob.length - 4;\n\twhile((blob[i] != 0x50 || blob[i+1] != 0x4b || blob[i+2] != 0x05 || blob[i+3] != 0x06) && i >= 0) --i;\n\tblob.l = i + 4;\n\n\t/* parse end of central directory */\n\tblob.l += 4;\n\tvar fcnt = blob.read_shift(2);\n\tblob.l += 6;\n\tvar start_cd = blob.read_shift(4);\n\n\t/* parse central directory */\n\tblob.l = start_cd;\n\n\tfor(i = 0; i < fcnt; ++i) {\n\t\t/* trust local file header instead of CD entry */\n\t\tblob.l += 20;\n\t\tvar csz = blob.read_shift(4);\n\t\tvar usz = blob.read_shift(4);\n\t\tvar namelen = blob.read_shift(2);\n\t\tvar efsz = blob.read_shift(2);\n\t\tvar fcsz = blob.read_shift(2);\n\t\tblob.l += 8;\n\t\tvar offset = blob.read_shift(4);\n\t\tvar EF = parse_extra_field(/*::(*/blob.slice(blob.l+namelen, blob.l+namelen+efsz)/*:: :any)*/);\n\t\tblob.l += namelen + efsz + fcsz;\n\n\t\tvar L = blob.l;\n\t\tblob.l = offset + 4;\n\t\t/* ZIP64 lengths */\n\t\tif(EF && EF[0x0001]) {\n\t\t\tif((EF[0x0001]||{}).usz) usz = EF[0x0001].usz;\n\t\t\tif((EF[0x0001]||{}).csz) csz = EF[0x0001].csz;\n\t\t}\n\t\tparse_local_file(blob, csz, usz, o, EF);\n\t\tblob.l = L;\n\t}\n\n\treturn o;\n}\n\n\n/* head starts just after local file header signature */\nfunction parse_local_file(blob/*:CFBlob*/, csz/*:number*/, usz/*:number*/, o/*:CFBContainer*/, EF) {\n\t/* [local file header] */\n\tblob.l += 2;\n\tvar flags = blob.read_shift(2);\n\tvar meth = blob.read_shift(2);\n\tvar date = parse_dos_date(blob);\n\n\tif(flags & 0x2041) throw new Error(\"Unsupported ZIP encryption\");\n\tvar crc32 = blob.read_shift(4);\n\tvar _csz = blob.read_shift(4);\n\tvar _usz = blob.read_shift(4);\n\n\tvar namelen = blob.read_shift(2);\n\tvar efsz = blob.read_shift(2);\n\n\t// TODO: flags & (1<<11) // UTF8\n\tvar name = \"\"; for(var i = 0; i < namelen; ++i) name += String.fromCharCode(blob[blob.l++]);\n\tif(efsz) {\n\t\tvar ef = parse_extra_field(/*::(*/blob.slice(blob.l, blob.l + efsz)/*:: :any)*/);\n\t\tif((ef[0x5455]||{}).mt) date = ef[0x5455].mt;\n\t\tif((ef[0x0001]||{}).usz) _usz = ef[0x0001].usz;\n\t\tif((ef[0x0001]||{}).csz) _csz = ef[0x0001].csz;\n\t\tif(EF) {\n\t\t\tif((EF[0x5455]||{}).mt) date = EF[0x5455].mt;\n\t\t\tif((EF[0x0001]||{}).usz) _usz = ef[0x0001].usz;\n\t\t\tif((EF[0x0001]||{}).csz) _csz = ef[0x0001].csz;\n\t\t}\n\t}\n\tblob.l += efsz;\n\n\t/* [encryption header] */\n\n\t/* [file data] */\n\tvar data = blob.slice(blob.l, blob.l + _csz);\n\tswitch(meth) {\n\t\tcase 8: data = _inflateRawSync(blob, _usz); break;\n\t\tcase 0: break; // TODO: scan for magic number\n\t\tdefault: throw new Error(\"Unsupported ZIP Compression method \" + meth);\n\t}\n\n\t/* [data descriptor] */\n\tvar wrn = false;\n\tif(flags & 8) {\n\t\tcrc32 = blob.read_shift(4);\n\t\tif(crc32 == 0x08074b50) { crc32 = blob.read_shift(4); wrn = true; }\n\t\t_csz = blob.read_shift(4);\n\t\t_usz = blob.read_shift(4);\n\t}\n\n\tif(_csz != csz) warn_or_throw(wrn, \"Bad compressed size: \" + csz + \" != \" + _csz);\n\tif(_usz != usz) warn_or_throw(wrn, \"Bad uncompressed size: \" + usz + \" != \" + _usz);\n\t//var _crc32 = CRC32.buf(data, 0);\n\t//if((crc32>>0) != (_crc32>>0)) warn_or_throw(wrn, \"Bad CRC32 checksum: \" + crc32 + \" != \" + _crc32);\n\tcfb_add(o, name, data, {unsafe: true, mt: date});\n}\nfunction write_zip(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes*/ {\n\tvar _opts = options || {};\n\tvar out = [], cdirs = [];\n\tvar o/*:CFBlob*/ = new_buf(1);\n\tvar method = (_opts.compression ? 8 : 0), flags = 0;\n\tvar desc = false;\n\tif(desc) flags |= 8;\n\tvar i = 0, j = 0;\n\n\tvar start_cd = 0, fcnt = 0;\n\tvar root = cfb.FullPaths[0], fp = root, fi = cfb.FileIndex[0];\n\tvar crcs = [];\n\tvar sz_cd = 0;\n\n\tfor(i = 1; i < cfb.FullPaths.length; ++i) {\n\t\tfp = cfb.FullPaths[i].slice(root.length); fi = cfb.FileIndex[i];\n\t\tif(!fi.size || !fi.content || fp == \"\\u0001Sh33tJ5\") continue;\n\t\tvar start = start_cd;\n\n\t\t/* TODO: CP437 filename */\n\t\tvar namebuf = new_buf(fp.length);\n\t\tfor(j = 0; j < fp.length; ++j) namebuf.write_shift(1, fp.charCodeAt(j) & 0x7F);\n\t\tnamebuf = namebuf.slice(0, namebuf.l);\n\t\tcrcs[fcnt] = typeof fi.content == \"string\" ? CRC32.bstr(fi.content, 0) : CRC32.buf(/*::((*/fi.content/*::||[]):any)*/, 0);\n\n\t\tvar outbuf = typeof fi.content == \"string\" ? s2a(fi.content) : fi.content/*::||[]*/;\n\t\tif(method == 8) outbuf = _deflateRawSync(outbuf);\n\n\t\t/* local file header */\n\t\to = new_buf(30);\n\t\to.write_shift(4, 0x04034b50);\n\t\to.write_shift(2, 20);\n\t\to.write_shift(2, flags);\n\t\to.write_shift(2, method);\n\t\t/* TODO: last mod file time/date */\n\t\tif(fi.mt) write_dos_date(o, fi.mt);\n\t\telse o.write_shift(4, 0);\n\t\to.write_shift(-4, (flags & 8) ? 0 : crcs[fcnt]);\n\t\to.write_shift(4, (flags & 8) ? 0 : outbuf.length);\n\t\to.write_shift(4, (flags & 8) ? 0 : /*::(*/fi.content/*::||[])*/.length);\n\t\to.write_shift(2, namebuf.length);\n\t\to.write_shift(2, 0);\n\n\t\tstart_cd += o.length;\n\t\tout.push(o);\n\t\tstart_cd += namebuf.length;\n\t\tout.push(namebuf);\n\n\t\t/* TODO: extra fields? */\n\n\t\t/* TODO: encryption header ? */\n\n\t\tstart_cd += outbuf.length;\n\t\tout.push(outbuf);\n\n\t\t/* data descriptor */\n\t\tif(flags & 8) {\n\t\t\to = new_buf(12);\n\t\t\to.write_shift(-4, crcs[fcnt]);\n\t\t\to.write_shift(4, outbuf.length);\n\t\t\to.write_shift(4, /*::(*/fi.content/*::||[])*/.length);\n\t\t\tstart_cd += o.l;\n\t\t\tout.push(o);\n\t\t}\n\n\t\t/* central directory */\n\t\to = new_buf(46);\n\t\to.write_shift(4, 0x02014b50);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 20);\n\t\to.write_shift(2, flags);\n\t\to.write_shift(2, method);\n\t\to.write_shift(4, 0); /* TODO: last mod file time/date */\n\t\to.write_shift(-4, crcs[fcnt]);\n\n\t\to.write_shift(4, outbuf.length);\n\t\to.write_shift(4, /*::(*/fi.content/*::||[])*/.length);\n\t\to.write_shift(2, namebuf.length);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, start);\n\n\t\tsz_cd += o.l;\n\t\tcdirs.push(o);\n\t\tsz_cd += namebuf.length;\n\t\tcdirs.push(namebuf);\n\t\t++fcnt;\n\t}\n\n\t/* end of central directory */\n\to = new_buf(22);\n\to.write_shift(4, 0x06054b50);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, fcnt);\n\to.write_shift(2, fcnt);\n\to.write_shift(4, sz_cd);\n\to.write_shift(4, start_cd);\n\to.write_shift(2, 0);\n\n\treturn bconcat(([bconcat((out/*:any*/)), bconcat(cdirs), o]/*:any*/));\n}\nvar ContentTypeMap = ({\n\t\"htm\": \"text/html\",\n\t\"xml\": \"text/xml\",\n\n\t\"gif\": \"image/gif\",\n\t\"jpg\": \"image/jpeg\",\n\t\"png\": \"image/png\",\n\n\t\"mso\": \"application/x-mso\",\n\t\"thmx\": \"application/vnd.ms-officetheme\",\n\t\"sh33tj5\": \"application/octet-stream\"\n}/*:any*/);\n\nfunction get_content_type(fi/*:CFBEntry*/, fp/*:string*/)/*:string*/ {\n\tif(fi.ctype) return fi.ctype;\n\n\tvar ext = fi.name || \"\", m = ext.match(/\\.([^\\.]+)$/);\n\tif(m && ContentTypeMap[m[1]]) return ContentTypeMap[m[1]];\n\n\tif(fp) {\n\t\tm = (ext = fp).match(/[\\.\\\\]([^\\.\\\\])+$/);\n\t\tif(m && ContentTypeMap[m[1]]) return ContentTypeMap[m[1]];\n\t}\n\n\treturn \"application/octet-stream\";\n}\n\n/* 76 character chunks TODO: intertwine encoding */\nfunction write_base64_76(bstr/*:string*/)/*:string*/ {\n\tvar data = Base64_encode(bstr);\n\tvar o = [];\n\tfor(var i = 0; i < data.length; i+= 76) o.push(data.slice(i, i+76));\n\treturn o.join(\"\\r\\n\") + \"\\r\\n\";\n}\n\n/*\nRules for QP:\n\t- escape =## applies for all non-display characters and literal \"=\"\n\t- space or tab at end of line must be encoded\n\t- \\r\\n newlines can be preserved, but bare \\r and \\n must be escaped\n\t- lines must not exceed 76 characters, use soft breaks =\\r\\n\n\nTODO: Some files from word appear to write line extensions with bare equals:\n\n```\n*/ = [], split = encoded.split(\"\\r\\n\");\n\tfor(var si = 0; si < split.length; ++si) {\n\t\tvar str = split[si];\n\t\tif(str.length == 0) { o.push(\"\"); continue; }\n\t\tfor(var i = 0; i < str.length;) {\n\t\t\tvar end = 76;\n\t\t\tvar tmp = str.slice(i, i + end);\n\t\t\tif(tmp.charAt(end - 1) == \"=\") end --;\n\t\t\telse if(tmp.charAt(end - 2) == \"=\") end -= 2;\n\t\t\telse if(tmp.charAt(end - 3) == \"=\") end -= 3;\n\t\t\ttmp = str.slice(i, i + end);\n\t\t\ti += end;\n\t\t\tif(i < str.length) tmp += \"=\";\n\t\t\to.push(tmp);\n\t\t}\n\t}\n\n\treturn o.join(\"\\r\\n\");\n}\nfunction parse_quoted_printable(data/*:Array*/)/*:RawBytes*/ {\n\tvar o = [];\n\n\t/* unify long lines */\n\tfor(var di = 0; di < data.length; ++di) {\n\t\tvar line = data[di];\n\t\twhile(di <= data.length && line.charAt(line.length - 1) == \"=\") line = line.slice(0, line.length - 1) + data[++di];\n\t\to.push(line);\n\t}\n\n\t/* decode */\n\tfor(var oi = 0; oi < o.length; ++oi) o[oi] = o[oi].replace(/[=][0-9A-Fa-f]{2}/g, function($$) { return String.fromCharCode(parseInt($$.slice(1), 16)); });\n\treturn s2a(o.join(\"\\r\\n\"));\n}\n\n\nfunction parse_mime(cfb/*:CFBContainer*/, data/*:Array*/, root/*:string*/)/*:void*/ {\n\tvar fname = \"\", cte = \"\", ctype = \"\", fdata;\n\tvar di = 0;\n\tfor(;di < 10; ++di) {\n\t\tvar line = data[di];\n\t\tif(!line || line.match(/^\\s*$/)) break;\n\t\tvar m = line.match(/^(.*?):\\s*([^\\s].*)$/);\n\t\tif(m) switch(m[1].toLowerCase()) {\n\t\t\tcase \"content-location\": fname = m[2].trim(); break;\n\t\t\tcase \"content-type\": ctype = m[2].trim(); break;\n\t\t\tcase \"content-transfer-encoding\": cte = m[2].trim(); break;\n\t\t}\n\t}\n\t++di;\n\tswitch(cte.toLowerCase()) {\n\t\tcase 'base64': fdata = s2a(Base64_decode(data.slice(di).join(\"\"))); break;\n\t\tcase 'quoted-printable': fdata = parse_quoted_printable(data.slice(di)); break;\n\t\tdefault: throw new Error(\"Unsupported Content-Transfer-Encoding \" + cte);\n\t}\n\tvar file = cfb_add(cfb, fname.slice(root.length), fdata, {unsafe: true});\n\tif(ctype) file.ctype = ctype;\n}\n\nfunction parse_mad(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\n\tif(a2s(file.slice(0,13)).toLowerCase() != \"mime-version:\") throw new Error(\"Unsupported MAD header\");\n\tvar root = (options && options.root || \"\");\n\t// $FlowIgnore\n\tvar data = (has_buf && Buffer.isBuffer(file) ? file.toString(\"binary\") : a2s(file)).split(\"\\r\\n\");\n\tvar di = 0, row = \"\";\n\n\t/* if root is not specified, scan for the common prefix */\n\tfor(di = 0; di < data.length; ++di) {\n\t\trow = data[di];\n\t\tif(!/^Content-Location:/i.test(row)) continue;\n\t\trow = row.slice(row.indexOf(\"file\"));\n\t\tif(!root) root = row.slice(0, row.lastIndexOf(\"/\") + 1);\n\t\tif(row.slice(0, root.length) == root) continue;\n\t\twhile(root.length > 0) {\n\t\t\troot = root.slice(0, root.length - 1);\n\t\t\troot = root.slice(0, root.lastIndexOf(\"/\") + 1);\n\t\t\tif(row.slice(0,root.length) == root) break;\n\t\t}\n\t}\n\n\tvar mboundary = (data[1] || \"\").match(/boundary=\"(.*?)\"/);\n\tif(!mboundary) throw new Error(\"MAD cannot find boundary\");\n\tvar boundary = \"--\" + (mboundary[1] || \"\");\n\n\tvar FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array*/ = [];\n\tvar o = {\n\t\tFileIndex: FileIndex,\n\t\tFullPaths: FullPaths\n\t};\n\tinit_cfb(o);\n\tvar start_di, fcnt = 0;\n\tfor(di = 0; di < data.length; ++di) {\n\t\tvar line = data[di];\n\t\tif(line !== boundary && line !== boundary + \"--\") continue;\n\t\tif(fcnt++) parse_mime(o, data.slice(start_di, di), root);\n\t\tstart_di = di;\n\t}\n\treturn o;\n}\n\nfunction write_mad(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:string*/ {\n\tvar opts = options || {};\n\tvar boundary = opts.boundary || \"SheetJS\";\n\tboundary = '------=' + boundary;\n\n\tvar out = [\n\t\t'MIME-Version: 1.0',\n\t\t'Content-Type: multipart/related; boundary=\"' + boundary.slice(2) + '\"',\n\t\t'',\n\t\t'',\n\t\t''\n\t];\n\n\tvar root = cfb.FullPaths[0], fp = root, fi = cfb.FileIndex[0];\n\tfor(var i = 1; i < cfb.FullPaths.length; ++i) {\n\t\tfp = cfb.FullPaths[i].slice(root.length);\n\t\tfi = cfb.FileIndex[i];\n\t\tif(!fi.size || !fi.content || fp == \"\\u0001Sh33tJ5\") continue;\n\n\t\t/* Normalize filename */\n\t\tfp = fp.replace(/[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7E-\\xFF]/g, function(c) {\n\t\t\treturn \"_x\" + c.charCodeAt(0).toString(16) + \"_\";\n\t\t}).replace(/[\\u0080-\\uFFFF]/g, function(u) {\n\t\t\treturn \"_u\" + u.charCodeAt(0).toString(16) + \"_\";\n\t\t});\n\n\t\t/* Extract content as binary string */\n\t\tvar ca = fi.content;\n\t\t// $FlowIgnore\n\t\tvar cstr = has_buf && Buffer.isBuffer(ca) ? ca.toString(\"binary\") : a2s(ca);\n\n\t\t/* 4/5 of first 1024 chars ascii -> quoted printable, else base64 */\n\t\tvar dispcnt = 0, L = Math.min(1024, cstr.length), cc = 0;\n\t\tfor(var csl = 0; csl <= L; ++csl) if((cc=cstr.charCodeAt(csl)) >= 0x20 && cc < 0x80) ++dispcnt;\n\t\tvar qp = dispcnt >= L * 4 / 5;\n\n\t\tout.push(boundary);\n\t\tout.push('Content-Location: ' + (opts.root || 'file:///C:/SheetJS/') + fp);\n\t\tout.push('Content-Transfer-Encoding: ' + (qp ? 'quoted-printable' : 'base64'));\n\t\tout.push('Content-Type: ' + get_content_type(fi, fp));\n\t\tout.push('');\n\n\t\tout.push(qp ? write_quoted_printable(cstr) : write_base64_76(cstr));\n\t}\n\tout.push(boundary + '--\\r\\n');\n\treturn out.join(\"\\r\\n\");\n}\nfunction cfb_new(opts/*:?any*/)/*:CFBContainer*/ {\n\tvar o/*:CFBContainer*/ = ({}/*:any*/);\n\tinit_cfb(o, opts);\n\treturn o;\n}\n\nfunction cfb_add(cfb/*:CFBContainer*/, name/*:string*/, content/*:?RawBytes*/, opts/*:?any*/)/*:CFBEntry*/ {\n\tvar unsafe = opts && opts.unsafe;\n\tif(!unsafe) init_cfb(cfb);\n\tvar file = !unsafe && CFB.find(cfb, name);\n\tif(!file) {\n\t\tvar fpath/*:string*/ = cfb.FullPaths[0];\n\t\tif(name.slice(0, fpath.length) == fpath) fpath = name;\n\t\telse {\n\t\t\tif(fpath.slice(-1) != \"/\") fpath += \"/\";\n\t\t\tfpath = (fpath + name).replace(\"//\",\"/\");\n\t\t}\n\t\tfile = ({name: filename(name), type: 2}/*:any*/);\n\t\tcfb.FileIndex.push(file);\n\t\tcfb.FullPaths.push(fpath);\n\t\tif(!unsafe) CFB.utils.cfb_gc(cfb);\n\t}\n\t/*:: if(!file) throw new Error(\"unreachable\"); */\n\tfile.content = (content/*:any*/);\n\tfile.size = content ? content.length : 0;\n\tif(opts) {\n\t\tif(opts.CLSID) file.clsid = opts.CLSID;\n\t\tif(opts.mt) file.mt = opts.mt;\n\t\tif(opts.ct) file.ct = opts.ct;\n\t}\n\treturn file;\n}\n\nfunction cfb_del(cfb/*:CFBContainer*/, name/*:string*/)/*:boolean*/ {\n\tinit_cfb(cfb);\n\tvar file = CFB.find(cfb, name);\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\n\t\tcfb.FileIndex.splice(j, 1);\n\t\tcfb.FullPaths.splice(j, 1);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction cfb_mov(cfb/*:CFBContainer*/, old_name/*:string*/, new_name/*:string*/)/*:boolean*/ {\n\tinit_cfb(cfb);\n\tvar file = CFB.find(cfb, old_name);\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\n\t\tcfb.FileIndex[j].name = filename(new_name);\n\t\tcfb.FullPaths[j] = new_name;\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction cfb_gc(cfb/*:CFBContainer*/)/*:void*/ { rebuild_cfb(cfb, true); }\n\nexports.find = find;\nexports.read = read;\nexports.parse = parse;\nexports.write = write;\nexports.writeFile = write_file;\nexports.utils = {\n\tcfb_new: cfb_new,\n\tcfb_add: cfb_add,\n\tcfb_del: cfb_del,\n\tcfb_mov: cfb_mov,\n\tcfb_gc: cfb_gc,\n\tReadShift: ReadShift,\n\tCheckField: CheckField,\n\tprep_blob: prep_blob,\n\tbconcat: bconcat,\n\tuse_zlib: use_zlib,\n\t_deflateRaw: _deflate,\n\t_inflateRaw: _inflate,\n\tconsts: consts\n};\n\nreturn exports;\n})();\n\nvar _fs;\nfunction set_fs(fs) { _fs = fs; }\n\n/* normalize data for blob ctor */\nfunction blobify(data) {\n\tif(typeof data === \"string\") return s2ab(data);\n\tif(Array.isArray(data)) return a2u(data);\n\treturn data;\n}\n/* write or download file */\nfunction write_dl(fname/*:string*/, payload/*:any*/, enc/*:?string*/) {\n\t/*global IE_SaveFile, Blob, navigator, saveAs, document, File, chrome */\n\tif(typeof _fs !== 'undefined' && _fs.writeFileSync) return enc ? _fs.writeFileSync(fname, payload, enc) : _fs.writeFileSync(fname, payload);\n\tif(typeof Deno !== 'undefined') {\n\t\t/* in this spot, it's safe to assume typed arrays and TextEncoder/TextDecoder exist */\n\t\tif(enc && typeof payload == \"string\") switch(enc) {\n\t\t\tcase \"utf8\": payload = new TextEncoder(enc).encode(payload); break;\n\t\t\tcase \"binary\": payload = s2ab(payload); break;\n\t\t\t/* TODO: binary equivalent */\n\t\t\tdefault: throw new Error(\"Unsupported encoding \" + enc);\n\t\t}\n\t\treturn Deno.writeFileSync(fname, payload);\n\t}\n\tvar data = (enc == \"utf8\") ? utf8write(payload) : payload;\n\t/*:: declare var IE_SaveFile: any; */\n\tif(typeof IE_SaveFile !== 'undefined') return IE_SaveFile(data, fname);\n\tif(typeof Blob !== 'undefined') {\n\t\tvar blob = new Blob([blobify(data)], {type:\"application/octet-stream\"});\n\t\t/*:: declare var navigator: any; */\n\t\tif(typeof navigator !== 'undefined' && navigator.msSaveBlob) return navigator.msSaveBlob(blob, fname);\n\t\t/*:: declare var saveAs: any; */\n\t\tif(typeof saveAs !== 'undefined') return saveAs(blob, fname);\n\t\tif(typeof URL !== 'undefined' && typeof document !== 'undefined' && document.createElement && URL.createObjectURL) {\n\t\t\tvar url = URL.createObjectURL(blob);\n\t\t\t/*:: declare var chrome: any; */\n\t\t\tif(typeof chrome === 'object' && typeof (chrome.downloads||{}).download == \"function\") {\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\n\t\t\t\treturn chrome.downloads.download({ url: url, filename: fname, saveAs: true });\n\t\t\t}\n\t\t\tvar a = document.createElement(\"a\");\n\t\t\tif(a.download != null) {\n\t\t\t\t/*:: if(document.body == null) throw new Error(\"unreachable\"); */\n\t\t\t\ta.download = fname; a.href = url; document.body.appendChild(a); a.click();\n\t\t\t\t/*:: if(document.body == null) throw new Error(\"unreachable\"); */ document.body.removeChild(a);\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\n\t\t\t\treturn url;\n\t\t\t}\n\t\t} else if(typeof URL !== 'undefined' && !URL.createObjectURL && typeof chrome === 'object') {\n\t\t\t/* manifest v3 extensions -- no URL.createObjectURL */\n\t\t\tvar b64 = \"data:application/octet-stream;base64,\" + Base64_encode_arr(new Uint8Array(blobify(data)));\n\t\t\treturn chrome.downloads.download({ url: b64, filename: fname, saveAs: true });\n\t\t}\n\t}\n\t// $FlowIgnore\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\n\t\t// $FlowIgnore\n\t\tvar out = File(fname); out.open(\"w\"); out.encoding = \"binary\";\n\t\tif(Array.isArray(payload)) payload = a2s(payload);\n\t\tout.write(payload); out.close(); return payload;\n\t} catch(e) { if(!e.message || !e.message.match(/onstruct/)) throw e; }\n\tthrow new Error(\"cannot save file \" + fname);\n}\n\n/* read binary data from file */\nfunction read_binary(path/*:string*/) {\n\tif(typeof _fs !== 'undefined') return _fs.readFileSync(path);\n\tif(typeof Deno !== 'undefined') return Deno.readFileSync(path);\n\t// $FlowIgnore\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\n\t\t// $FlowIgnore\n\t\tvar infile = File(path); infile.open(\"r\"); infile.encoding = \"binary\";\n\t\tvar data = infile.read(); infile.close();\n\t\treturn data;\n\t} catch(e) { if(!e.message || !e.message.match(/onstruct/)) throw e; }\n\tthrow new Error(\"Cannot access file \" + path);\n}\nfunction keys(o/*:any*/)/*:Array*/ {\n\tvar ks = Object.keys(o), o2 = [];\n\tfor(var i = 0; i < ks.length; ++i) if(Object.prototype.hasOwnProperty.call(o, ks[i])) o2.push(ks[i]);\n\treturn o2;\n}\n\nfunction evert_key(obj/*:any*/, key/*:string*/)/*:EvertType*/ {\n\tvar o = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) if(o[obj[K[i]][key]] == null) o[obj[K[i]][key]] = K[i];\n\treturn o;\n}\n\nfunction evert(obj/*:any*/)/*:EvertType*/ {\n\tvar o = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = K[i];\n\treturn o;\n}\n\nfunction evert_num(obj/*:any*/)/*:EvertNumType*/ {\n\tvar o = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = parseInt(K[i],10);\n\treturn o;\n}\n\nfunction evert_arr(obj/*:any*/)/*:EvertArrType*/ {\n\tvar o/*:EvertArrType*/ = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) {\n\t\tif(o[obj[K[i]]] == null) o[obj[K[i]]] = [];\n\t\to[obj[K[i]]].push(K[i]);\n\t}\n\treturn o;\n}\n\nvar dnthresh = /*#__PURE__*/Date.UTC(1899, 11, 30, 0, 0, 0); // -2209161600000\nvar dnthresh1 = /*#__PURE__*/Date.UTC(1899, 11, 31, 0, 0, 0); // -2209075200000\nvar dnthresh2 = /*#__PURE__*/Date.UTC(1904, 0, 1, 0, 0, 0); // -2209075200000\nfunction datenum(v/*:Date*/, date1904/*:?boolean*/)/*:number*/ {\n\tvar epoch = /*#__PURE__*/v.getTime();\n\tvar res = (epoch - dnthresh) / (24 * 60 * 60 * 1000);\n\tif(date1904) { res -= 1462; return res < -1402 ? res - 1 : res; }\n\treturn res < 60 ? res - 1 : res;\n}\nfunction numdate(v/*:number*/)/*:Date|number*/ {\n\tif(v >= 60 && v < 61) return v;\n\tvar out = new Date();\n\tout.setTime((v>60 ? v : (v+1)) * 24 * 60 * 60 * 1000 + dnthresh);\n\treturn out;\n}\n\n/* ISO 8601 Duration */\nfunction parse_isodur(s) {\n\tvar sec = 0, mt = 0, time = false;\n\tvar m = s.match(/P([0-9\\.]+Y)?([0-9\\.]+M)?([0-9\\.]+D)?T([0-9\\.]+H)?([0-9\\.]+M)?([0-9\\.]+S)?/);\n\tif(!m) throw new Error(\"|\" + s + \"| is not an ISO8601 Duration\");\n\tfor(var i = 1; i != m.length; ++i) {\n\t\tif(!m[i]) continue;\n\t\tmt = 1;\n\t\tif(i > 3) time = true;\n\t\tswitch(m[i].slice(m[i].length-1)) {\n\t\t\tcase 'Y':\n\t\t\t\tthrow new Error(\"Unsupported ISO Duration Field: \" + m[i].slice(m[i].length-1));\n\t\t\tcase 'D': mt *= 24;\n\t\t\t\t/* falls through */\n\t\t\tcase 'H': mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'M':\n\t\t\t\tif(!time) throw new Error(\"Unsupported ISO Duration Field: M\");\n\t\t\t\telse mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'S': break;\n\t\t}\n\t\tsec += mt * parseInt(m[i], 10);\n\t}\n\treturn sec;\n}\n\n/* Blame https://bugs.chromium.org/p/v8/issues/detail?id=7863 for the regexide */\nvar pdre1 = /^(\\d+):(\\d+)(:\\d+)?(\\.\\d+)?$/; // HH:MM[:SS[.UUU]]\nvar pdre2 = /^(\\d+)-(\\d+)-(\\d+)$/; // YYYY-mm-dd\nvar pdre3 = /^(\\d+)-(\\d+)-(\\d+)[T ](\\d+):(\\d+)(:\\d+)?(\\.\\d+)?$/; // YYYY-mm-dd(T or space)HH:MM[:SS[.UUU]], sans \"Z\"\n/* parses a date string as a UTC date */\nfunction parseDate(str/*:string*/, date1904/*:boolean*/)/*:Date*/ {\n\tif(str instanceof Date) return str;\n\tvar m = str.match(pdre1);\n\tif(m) return new Date((date1904 ? dnthresh2 : dnthresh1) + ((parseInt(m[1], 10)*60 + parseInt(m[2], 10))*60 + (m[3] ? parseInt(m[3].slice(1), 10) : 0))*1000 + (m[4] ? parseInt((m[4]+\"000\").slice(1,4), 10) : 0));\n\tm = str.match(pdre2);\n\tif(m) return new Date(Date.UTC(+m[1], +m[2]-1, +m[3], 0, 0, 0, 0));\n\t/* TODO: 1900-02-29T00:00:00.000 should return a flag to treat as a date code (affects xlml) */\n\tm = str.match(pdre3);\n\tif(m) return new Date(Date.UTC(+m[1], +m[2]-1, +m[3], +m[4], +m[5], ((m[6] && parseInt(m[6].slice(1), 10))|| 0), ((m[7] && parseInt(m[7].slice(1), 10))||0)));\n\tvar d = new Date(str);\n\treturn d;\n}\n\nfunction cc2str(arr/*:Array*/, debomit)/*:string*/ {\n\tif(has_buf && Buffer.isBuffer(arr)) {\n\t\tif(debomit && buf_utf16le) {\n\t\t\t// TODO: temporary patch\n\t\t\tif(arr[0] == 0xFF && arr[1] == 0xFE) return utf8write(arr.slice(2).toString(\"utf16le\"));\n\t\t\tif(arr[1] == 0xFE && arr[2] == 0xFF) return utf8write(utf16beread(arr.slice(2).toString(\"binary\")));\n\t\t}\n\t\treturn arr.toString(\"binary\");\n\t}\n\n\tif(typeof TextDecoder !== \"undefined\") try {\n\t\tif(debomit) {\n\t\t\tif(arr[0] == 0xFF && arr[1] == 0xFE) return utf8write(new TextDecoder(\"utf-16le\").decode(arr.slice(2)));\n\t\t\tif(arr[0] == 0xFE && arr[1] == 0xFF) return utf8write(new TextDecoder(\"utf-16be\").decode(arr.slice(2)));\n\t\t}\n\t\tvar rev = {\n\t\t\t\"\\u20ac\": \"\\x80\", \"\\u201a\": \"\\x82\", \"\\u0192\": \"\\x83\", \"\\u201e\": \"\\x84\",\n\t\t\t\"\\u2026\": \"\\x85\", \"\\u2020\": \"\\x86\", \"\\u2021\": \"\\x87\", \"\\u02c6\": \"\\x88\",\n\t\t\t\"\\u2030\": \"\\x89\", \"\\u0160\": \"\\x8a\", \"\\u2039\": \"\\x8b\", \"\\u0152\": \"\\x8c\",\n\t\t\t\"\\u017d\": \"\\x8e\", \"\\u2018\": \"\\x91\", \"\\u2019\": \"\\x92\", \"\\u201c\": \"\\x93\",\n\t\t\t\"\\u201d\": \"\\x94\", \"\\u2022\": \"\\x95\", \"\\u2013\": \"\\x96\", \"\\u2014\": \"\\x97\",\n\t\t\t\"\\u02dc\": \"\\x98\", \"\\u2122\": \"\\x99\", \"\\u0161\": \"\\x9a\", \"\\u203a\": \"\\x9b\",\n\t\t\t\"\\u0153\": \"\\x9c\", \"\\u017e\": \"\\x9e\", \"\\u0178\": \"\\x9f\"\n\t\t};\n\t\tif(Array.isArray(arr)) arr = new Uint8Array(arr);\n\t\treturn new TextDecoder(\"latin1\").decode(arr).replace(/[€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ]/g, function(c) { return rev[c] || c; });\n\t} catch(e) {}\n\n\tvar o = [], i = 0;\n\t// this cascade is for the browsers and runtimes of antiquity (and for modern runtimes that lack TextEncoder)\n\ttry {\n\t\tfor(i = 0; i < arr.length - 65536; i+=65536) o.push(String.fromCharCode.apply(0, arr.slice(i, i + 65536)));\n\t\to.push(String.fromCharCode.apply(0, arr.slice(i)));\n\t} catch(e) { try {\n\t\t\tfor(; i < arr.length - 16384; i+=16384) o.push(String.fromCharCode.apply(0, arr.slice(i, i + 16384)));\n\t\t\to.push(String.fromCharCode.apply(0, arr.slice(i)));\n\t\t} catch(e) {\n\t\t\tfor(; i != arr.length; ++i) o.push(String.fromCharCode(arr[i]));\n\t\t}\n\t}\n\treturn o.join(\"\");\n}\n\nfunction dup(o/*:any*/)/*:any*/ {\n\tif(typeof JSON != 'undefined' && !Array.isArray(o)) return JSON.parse(JSON.stringify(o));\n\tif(typeof o != 'object' || o == null) return o;\n\tif(o instanceof Date) return new Date(o.getTime());\n\tvar out = {};\n\tfor(var k in o) if(Object.prototype.hasOwnProperty.call(o, k)) out[k] = dup(o[k]);\n\treturn out;\n}\n\nfunction fill(c/*:string*/,l/*:number*/)/*:string*/ { var o = \"\"; while(o.length < l) o+=c; return o; }\n\n/* TODO: stress test */\nfunction fuzzynum(s/*:string*/)/*:number*/ {\n\tvar v/*:number*/ = Number(s);\n\tif(!isNaN(v)) return isFinite(v) ? v : NaN;\n\tif(!/\\d/.test(s)) return v;\n\tvar wt = 1;\n\tvar ss = s.replace(/([\\d]),([\\d])/g,\"$1$2\").replace(/[$]/g,\"\").replace(/[%]/g, function() { wt *= 100; return \"\";});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\tss = ss.replace(/[(](.*)[)]/,function($$, $1) { wt = -wt; return $1;});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\treturn v;\n}\n\n/* NOTE: Chrome rejects bare times like 1:23 PM */\nvar FDRE1 = /^(0?\\d|1[0-2])(?:|:([0-5]?\\d)(?:|(\\.\\d+)(?:|:([0-5]?\\d))|:([0-5]?\\d)(|\\.\\d+)))\\s+([ap])m?$/;\nvar FDRE2 = /^([01]?\\d|2[0-3])(?:|:([0-5]?\\d)(?:|(\\.\\d+)(?:|:([0-5]?\\d))|:([0-5]?\\d)(|\\.\\d+)))$/;\nvar FDISO = /^(\\d+)-(\\d+)-(\\d+)[T ](\\d+):(\\d+)(:\\d+)(\\.\\d+)?[Z]?$/; // YYYY-mm-dd(T or space)HH:MM:SS[.UUU][Z]\n\n/* TODO: 1904 adjustment */\nvar utc_append_works = new Date(\"6/9/69 00:00 UTC\").valueOf() == -17798400000;\nfunction fuzzytime1(M) /*:Date*/ {\n\tif(!M[2]) return new Date(Date.UTC(1899,11,31,(+M[1]%12) + (M[7] == \"p\" ? 12 : 0), 0, 0, 0));\n\tif(M[3]) {\n\t\t\tif(M[4]) return new Date(Date.UTC(1899,11,31,(+M[1]%12) + (M[7] == \"p\" ? 12 : 0), +M[2], +M[4], parseFloat(M[3])*1000));\n\t\t\telse return new Date(Date.UTC(1899,11,31,(M[7] == \"p\" ? 12 : 0), +M[1], +M[2], parseFloat(M[3])*1000));\n\t}\n\telse if(M[5]) return new Date(Date.UTC(1899,11,31, (+M[1]%12) + (M[7] == \"p\" ? 12 : 0), +M[2], +M[5], M[6] ? parseFloat(M[6]) * 1000 : 0));\n\telse return new Date(Date.UTC(1899,11,31,(+M[1]%12) + (M[7] == \"p\" ? 12 : 0), +M[2], 0, 0));\n}\nfunction fuzzytime2(M) /*:Date*/ {\n\tif(!M[2]) return new Date(Date.UTC(1899,11,31,+M[1], 0, 0, 0));\n\tif(M[3]) {\n\t\t\tif(M[4]) return new Date(Date.UTC(1899,11,31,+M[1], +M[2], +M[4], parseFloat(M[3])*1000));\n\t\t\telse return new Date(Date.UTC(1899,11,31,0, +M[1], +M[2], parseFloat(M[3])*1000));\n\t}\n\telse if(M[5]) return new Date(Date.UTC(1899,11,31, +M[1], +M[2], +M[5], M[6] ? parseFloat(M[6]) * 1000 : 0));\n\telse return new Date(Date.UTC(1899,11,31,+M[1], +M[2], 0, 0));\n}\nvar lower_months = ['january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december'];\nfunction fuzzydate(s/*:string*/)/*:Date*/ {\n\t// See issue 2863 -- this is technically not supported in Excel but is otherwise useful\n\tif(FDISO.test(s)) return s.indexOf(\"Z\") == -1 ? local_to_utc(new Date(s)) : new Date(s);\n\tvar lower = s.toLowerCase();\n\tvar lnos = lower.replace(/\\s+/g, \" \").trim();\n\tvar M = lnos.match(FDRE1);\n\tif(M) return fuzzytime1(M);\n\tM = lnos.match(FDRE2);\n\tif(M) return fuzzytime2(M);\n\tM = lnos.match(pdre3);\n\tif(M) return new Date(Date.UTC(+M[1], +M[2]-1, +M[3], +M[4], +M[5], ((M[6] && parseInt(M[6].slice(1), 10))|| 0), ((M[7] && parseInt(M[7].slice(1), 10))||0)));\n\tvar o = new Date(utc_append_works && s.indexOf(\"UTC\") == -1 ? s + \" UTC\": s), n = new Date(NaN);\n\tvar y = o.getYear(), m = o.getMonth(), d = o.getDate();\n\tif(isNaN(d)) return n;\n\tif(lower.match(/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/)) {\n\t\tlower = lower.replace(/[^a-z]/g,\"\").replace(/([^a-z]|^)[ap]m?([^a-z]|$)/,\"\");\n\t\tif(lower.length > 3 && lower_months.indexOf(lower) == -1) return n;\n\t} else if(lower.replace(/[ap]m?/, \"\").match(/[a-z]/)) return n;\n\tif(y < 0 || y > 8099 || s.match(/[^-0-9:,\\/\\\\\\ ]/)) return n;\n\treturn o;\n}\n\nvar split_regex = /*#__PURE__*/(function() {\n\tvar safe_split_regex = \"abacaba\".split(/(:?b)/i).length == 5;\n\treturn function split_regex(str/*:string*/, re, def/*:string*/)/*:Array*/ {\n\t\tif(safe_split_regex || typeof re == \"string\") return str.split(re);\n\t\tvar p = str.split(re), o = [p[0]];\n\t\tfor(var i = 1; i < p.length; ++i) { o.push(def); o.push(p[i]); }\n\t\treturn o;\n\t};\n})();\n\nfunction utc_to_local(utc) {\n\treturn new Date(utc.getUTCFullYear(), utc.getUTCMonth(), utc.getUTCDate(), utc.getUTCHours(), utc.getUTCMinutes(), utc.getUTCSeconds(), utc.getUTCMilliseconds());\n}\nfunction local_to_utc(local) {\n\treturn new Date(Date.UTC(local.getFullYear(), local.getMonth(), local.getDate(), local.getHours(), local.getMinutes(), local.getSeconds(), local.getMilliseconds()));\n}\nfunction getdatastr(data)/*:?string*/ {\n\tif(!data) return null;\n\tif(data.content && data.type) return cc2str(data.content, true);\n\tif(data.data) return debom(data.data);\n\tif(data.asNodeBuffer && has_buf) return debom(data.asNodeBuffer().toString('binary'));\n\tif(data.asBinary) return debom(data.asBinary());\n\tif(data._data && data._data.getContent) return debom(cc2str(Array.prototype.slice.call(data._data.getContent(),0)));\n\treturn null;\n}\n\nfunction getdatabin(data) {\n\tif(!data) return null;\n\tif(data.data) return char_codes(data.data);\n\tif(data.asNodeBuffer && has_buf) return data.asNodeBuffer();\n\tif(data._data && data._data.getContent) {\n\t\tvar o = data._data.getContent();\n\t\tif(typeof o == \"string\") return char_codes(o);\n\t\treturn Array.prototype.slice.call(o);\n\t}\n\tif(data.content && data.type) return data.content;\n\treturn null;\n}\n\nfunction getdata(data) { return (data && data.name.slice(-4) === \".bin\") ? getdatabin(data) : getdatastr(data); }\n\n/* Part 2 Section 10.1.2 \"Mapping Content Types\" Names are case-insensitive */\n/* OASIS does not comment on filename case sensitivity */\nfunction safegetzipfile(zip, file/*:string*/) {\n\tvar k = zip.FullPaths || keys(zip.files);\n\tvar f = file.toLowerCase().replace(/[\\/]/g, '\\\\'), g = f.replace(/\\\\/g,'\\/');\n\tfor(var i=0; i\\/]+)\\s*=\\s*((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:')|([^'\">\\s]+))/g;\nvar tagregex1=/<[\\/\\?]?[a-zA-Z0-9:_-]+(?:\\s+[^\"\\s?>\\/]+\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^'\">\\s=]+))*\\s*[\\/\\?]?>/mg, tagregex2 = /<[^>]*>/g;\nvar tagregex = /*#__PURE__*/XML_HEADER.match(tagregex1) ? tagregex1 : tagregex2;\nvar nsregex=/<\\w*:/, nsregex2 = /<(\\/?)\\w+:/;\nfunction parsexmltag(tag/*:string*/, skip_root/*:?boolean*/, skip_LC/*:?boolean*/)/*:any*/ {\n\tvar z = ({}/*:any*/);\n\tvar eq = 0, c = 0;\n\tfor(; eq !== tag.length; ++eq) if((c = tag.charCodeAt(eq)) === 32 || c === 10 || c === 13) break;\n\tif(!skip_root) z[0] = tag.slice(0, eq);\n\tif(eq === tag.length) return z;\n\tvar m = tag.match(attregexg), j=0, v=\"\", i=0, q=\"\", cc=\"\", quot = 1;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\tcc = m[i];\n\t\tfor(c=0; c != cc.length; ++c) if(cc.charCodeAt(c) === 61) break;\n\t\tq = cc.slice(0,c).trim();\n\t\twhile(cc.charCodeAt(c+1) == 32) ++c;\n\t\tquot = ((eq=cc.charCodeAt(c+1)) == 34 || eq == 39) ? 1 : 0;\n\t\tv = cc.slice(c+1+quot, cc.length-quot);\n\t\tfor(j=0;j!=q.length;++j) if(q.charCodeAt(j) === 58) break;\n\t\tif(j===q.length) {\n\t\t\tif(q.indexOf(\"_\") > 0) q = q.slice(0, q.indexOf(\"_\")); // from ods\n\t\t\tz[q] = v;\n\t\t\tif(!skip_LC) z[q.toLowerCase()] = v;\n\t\t}\n\t\telse {\n\t\t\tvar k = (j===5 && q.slice(0,5)===\"xmlns\"?\"xmlns\":\"\")+q.slice(j+1);\n\t\t\tif(z[k] && q.slice(j-3,j) == \"ext\") continue; // from ods\n\t\t\tz[k] = v;\n\t\t\tif(!skip_LC) z[k.toLowerCase()] = v;\n\t\t}\n\t}\n\treturn z;\n}\nfunction strip_ns(x/*:string*/)/*:string*/ { return x.replace(nsregex2, \"<$1\"); }\n\nvar encodings = {\n\t'"': '\"',\n\t''': \"'\",\n\t'>': '>',\n\t'<': '<',\n\t'&': '&'\n};\nvar rencoding = /*#__PURE__*/evert(encodings);\n//var rencstr = \"&<>'\\\"\".split(\"\");\n\n// TODO: CP remap (need to read file version to determine OS)\nvar unescapexml/*:StringConv*/ = /*#__PURE__*/(function() {\n\t/* 22.4.2.4 bstr (Basic String) */\n\tvar encregex = /&(?:quot|apos|gt|lt|amp|#x?([\\da-fA-F]+));/ig, coderegex = /_x([\\da-fA-F]{4})_/ig;\n\tfunction raw_unescapexml(text/*:string*/)/*:string*/ {\n\t\tvar s = text + '', i = s.indexOf(\"-1?16:10))||$$; }).replace(coderegex,function(m,c) {return String.fromCharCode(parseInt(c,16));});\n\t\tvar j = s.indexOf(\"]]>\");\n\t\treturn raw_unescapexml(s.slice(0, i)) + s.slice(i+9,j) + raw_unescapexml(s.slice(j+3));\n\t}\n\treturn function unescapexml(text/*:string*/, xlsx/*:boolean*/) {\n\t\tvar out = raw_unescapexml(text);\n\t\treturn xlsx ? out.replace(/\\r\\n/g, \"\\n\") : out;\n\t};\n})();\n\nvar decregex=/[&<>'\"]/g, charegex = /[\\u0000-\\u0008\\u000b-\\u001f\\uFFFE-\\uFFFF]/g;\nfunction escapexml(text/*:string*/)/*:string*/{\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(charegex,function(s) { return \"_x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \"_\";});\n}\nfunction escapexmltag(text/*:string*/)/*:string*/{ return escapexml(text).replace(/ /g,\"_x0020_\"); }\n\nvar htmlcharegex = /[\\u0000-\\u001f]/g;\nfunction escapehtml(text/*:string*/)/*:string*/{\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(/\\n/g, \"
\").replace(htmlcharegex,function(s) { return \"&#x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \";\"; });\n}\n\nfunction escapexlml(text/*:string*/)/*:string*/{\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(htmlcharegex,function(s) { return \"&#x\" + (s.charCodeAt(0).toString(16)).toUpperCase() + \";\"; });\n}\n\n/* TODO: handle codepages */\nvar xlml_fixstr/*:StringConv*/ = /*#__PURE__*/(function() {\n\tvar entregex = /&#(\\d+);/g;\n\tfunction entrepl($$/*:string*/,$1/*:string*/)/*:string*/ { return String.fromCharCode(parseInt($1,10)); }\n\treturn function xlml_fixstr(str/*:string*/)/*:string*/ { return str.replace(entregex,entrepl); };\n})();\nfunction xlml_unfixstr(str/*:string*/)/*:string*/ { return str.replace(/(\\r\\n|[\\r\\n])/g,\"\\ \"); }\n\n/* note: xsd:boolean valid values: true / 1 / false / 0 */\nfunction parsexmlbool(value/*:any*/)/*:boolean*/ {\n\tswitch(value) {\n\t\tcase 1: case true: case '1': case 'true': return true;\n\t\tcase 0: case false: case '0': case 'false': return false;\n\t\t//default: throw new Error(\"Invalid xsd:boolean \" + value);\n\t}\n\treturn false;\n}\n\nfunction utf8reada(orig/*:string*/)/*:string*/ {\n\tvar out = \"\", i = 0, c = 0, d = 0, e = 0, f = 0, w = 0;\n\twhile (i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tif (c < 128) { out += String.fromCharCode(c); continue; }\n\t\td = orig.charCodeAt(i++);\n\t\tif (c>191 && c<224) { f = ((c & 31) << 6); f |= (d & 63); out += String.fromCharCode(f); continue; }\n\t\te = orig.charCodeAt(i++);\n\t\tif (c < 240) { out += String.fromCharCode(((c & 15) << 12) | ((d & 63) << 6) | (e & 63)); continue; }\n\t\tf = orig.charCodeAt(i++);\n\t\tw = (((c & 7) << 18) | ((d & 63) << 12) | ((e & 63) << 6) | (f & 63))-65536;\n\t\tout += String.fromCharCode(0xD800 + ((w>>>10)&1023));\n\t\tout += String.fromCharCode(0xDC00 + (w&1023));\n\t}\n\treturn out;\n}\n\nfunction utf8readb(data) {\n\tvar out = new_raw_buf(2*data.length), w, i, j = 1, k = 0, ww=0, c;\n\tfor(i = 0; i < data.length; i+=j) {\n\t\tj = 1;\n\t\tif((c=data.charCodeAt(i)) < 128) w = c;\n\t\telse if(c < 224) { w = (c&31)*64+(data.charCodeAt(i+1)&63); j=2; }\n\t\telse if(c < 240) { w=(c&15)*4096+(data.charCodeAt(i+1)&63)*64+(data.charCodeAt(i+2)&63); j=3; }\n\t\telse { j = 4;\n\t\t\tw = (c & 7)*262144+(data.charCodeAt(i+1)&63)*4096+(data.charCodeAt(i+2)&63)*64+(data.charCodeAt(i+3)&63);\n\t\t\tw -= 65536; ww = 0xD800 + ((w>>>10)&1023); w = 0xDC00 + (w&1023);\n\t\t}\n\t\tif(ww !== 0) { out[k++] = ww&255; out[k++] = ww>>>8; ww = 0; }\n\t\tout[k++] = w%256; out[k++] = w>>>8;\n\t}\n\treturn out.slice(0,k).toString('ucs2');\n}\n\nfunction utf8readc(data) { return Buffer_from(data, 'binary').toString('utf8'); }\n\nvar utf8corpus = \"foo bar baz\\u00e2\\u0098\\u0083\\u00f0\\u009f\\u008d\\u00a3\";\nvar utf8read = has_buf && (/*#__PURE__*/utf8readc(utf8corpus) == /*#__PURE__*/utf8reada(utf8corpus) && utf8readc || /*#__PURE__*/utf8readb(utf8corpus) == /*#__PURE__*/utf8reada(utf8corpus) && utf8readb) || utf8reada;\n\nvar utf8write/*:StringConv*/ = has_buf ? function(data) { return Buffer_from(data, 'utf8').toString(\"binary\"); } : function(orig/*:string*/)/*:string*/ {\n\tvar out/*:Array*/ = [], i = 0, c = 0, d = 0;\n\twhile(i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tswitch(true) {\n\t\t\tcase c < 128: out.push(String.fromCharCode(c)); break;\n\t\t\tcase c < 2048:\n\t\t\t\tout.push(String.fromCharCode(192 + (c >> 6)));\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\n\t\t\t\tbreak;\n\t\t\tcase c >= 55296 && c < 57344:\n\t\t\t\tc -= 55296; d = orig.charCodeAt(i++) - 56320 + (c<<10);\n\t\t\t\tout.push(String.fromCharCode(240 + ((d >>18) & 7)));\n\t\t\t\tout.push(String.fromCharCode(144 + ((d >>12) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + ((d >> 6) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + (d & 63)));\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tout.push(String.fromCharCode(224 + (c >> 12)));\n\t\t\t\tout.push(String.fromCharCode(128 + ((c >> 6) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\n\t\t}\n\t}\n\treturn out.join(\"\");\n};\n\n// matches ... extracts content\nvar matchtag = /*#__PURE__*/(function() {\n\tvar mtcache/*:{[k:string]:RegExp}*/ = ({}/*:any*/);\n\treturn function matchtag(f/*:string*/,g/*:?string*/)/*:RegExp*/ {\n\t\tvar t = f+\"|\"+(g||\"\");\n\t\tif(mtcache[t]) return mtcache[t];\n\t\treturn (mtcache[t] = new RegExp('<(?:\\\\w+:)?'+f+'(?: xml:space=\"preserve\")?(?:[^>]*)>([\\\\s\\\\S]*?)',((g||\"\")/*:any*/)));\n\t};\n})();\n\nvar htmldecode/*:{(s:string):string}*/ = /*#__PURE__*/(function() {\n\tvar entities/*:Array<[RegExp, string]>*/ = [\n\t\t['nbsp', ' '], ['middot', '·'],\n\t\t['quot', '\"'], ['apos', \"'\"], ['gt', '>'], ['lt', '<'], ['amp', '&']\n\t].map(function(x/*:[string, string]*/) { return [new RegExp('&' + x[0] + ';', \"ig\"), x[1]]; });\n\treturn function htmldecode(str/*:string*/)/*:string*/ {\n\t\tvar o = str\n\t\t\t\t// Remove new lines and spaces from start of content\n\t\t\t\t.replace(/^[\\t\\n\\r ]+/, \"\")\n\t\t\t\t// Remove new lines and spaces from end of content\n\t\t\t\t.replace(/[\\t\\n\\r ]+$/,\"\")\n\t\t\t\t// Added line which removes any white space characters after and before html tags\n\t\t\t\t.replace(/>\\s+/g,\">\").replace(/\\s+ tags with new lines\n\t\t\t\t.replace(/<\\s*[bB][rR]\\s*\\/?>/g,\"\\n\")\n\t\t\t\t// Strip HTML elements\n\t\t\t\t.replace(/<[^>]*>/g,\"\");\n\t\tfor(var i = 0; i < entities.length; ++i) o = o.replace(entities[i][0], entities[i][1]);\n\t\treturn o;\n\t};\n})();\n\nvar vtregex = /*#__PURE__*/(function(){ var vt_cache = {};\n\treturn function vt_regex(bt) {\n\t\tif(vt_cache[bt] !== undefined) return vt_cache[bt];\n\t\treturn (vt_cache[bt] = new RegExp(\"<(?:vt:)?\" + bt + \">([\\\\s\\\\S]*?)\", 'g') );\n};})();\nvar vtvregex = /<\\/?(?:vt:)?variant>/g, vtmregex = /<(?:vt:)([^>]*)>([\\s\\S]*)*/ {\n\tvar h = parsexmltag(data);\n\n\tvar matches/*:Array*/ = data.match(vtregex(h.baseType))||[];\n\tvar res/*:Array*/ = [];\n\tif(matches.length != h.size) {\n\t\tif(opts.WTF) throw new Error(\"unexpected vector length \" + matches.length + \" != \" + h.size);\n\t\treturn res;\n\t}\n\tmatches.forEach(function(x/*:string*/) {\n\t\tvar v = x.replace(vtvregex,\"\").match(vtmregex);\n\t\tif(v) res.push({v:utf8read(v[2]), t:v[1]});\n\t});\n\treturn res;\n}\n\nvar wtregex = /(^\\s|\\s$|\\n)/;\nfunction writetag(f/*:string*/,g/*:string*/)/*:string*/ { return '<' + f + (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + ''; }\n\nfunction wxt_helper(h)/*:string*/ { return keys(h).map(function(k) { return \" \" + k + '=\"' + h[k] + '\"';}).join(\"\"); }\nfunction writextag(f/*:string*/,g/*:?string*/,h) { return '<' + f + ((h != null) ? wxt_helper(h) : \"\") + ((g != null) ? (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + '';}\n\nfunction write_w3cdtf(d/*:Date*/, t/*:?boolean*/)/*:string*/ { try { return d.toISOString().replace(/\\.\\d*/,\"\"); } catch(e) { if(t) throw e; } return \"\"; }\n\nfunction write_vt(s, xlsx/*:?boolean*/)/*:string*/ {\n\tswitch(typeof s) {\n\t\tcase 'string':\n\t\t\tvar o = writextag('vt:lpwstr', escapexml(s));\n\t\t\tif(xlsx) o = o.replace(/"/g, \"_x0022_\");\n\t\t\treturn o;\n\t\tcase 'number': return writextag((s|0)==s?'vt:i4':'vt:r8', escapexml(String(s)));\n\t\tcase 'boolean': return writextag('vt:bool',s?'true':'false');\n\t}\n\tif(s instanceof Date) return writextag('vt:filetime', write_w3cdtf(s));\n\tthrow new Error(\"Unable to serialize \" + s);\n}\n\nfunction xlml_normalize(d)/*:string*/ {\n\tif(has_buf &&/*::typeof Buffer !== \"undefined\" && d != null && d instanceof Buffer &&*/ Buffer.isBuffer(d)) return d.toString('utf8');\n\tif(typeof d === 'string') return d;\n\t/* duktape */\n\tif(typeof Uint8Array !== 'undefined' && d instanceof Uint8Array) return utf8read(a2s(ab2a(d)));\n\tthrow new Error(\"Bad input format: expected Buffer or string\");\n}\n/* UOS uses CJK in tags */\nvar xlmlregex = /<(\\/?)([^\\s?>:\\/]+)(?:[\\s?:\\/](?:[^>=]|=\"[^\"]*?\")*)?>/mg;\n//var xlmlregex = /<(\\/?)([a-z0-9]*:|)(\\w+)[^>]*>/mg;\n\nvar XMLNS = ({\n\tCORE_PROPS: 'http://schemas.openxmlformats.org/package/2006/metadata/core-properties',\n\tCUST_PROPS: \"http://schemas.openxmlformats.org/officeDocument/2006/custom-properties\",\n\tEXT_PROPS: \"http://schemas.openxmlformats.org/officeDocument/2006/extended-properties\",\n\tCT: 'http://schemas.openxmlformats.org/package/2006/content-types',\n\tRELS: 'http://schemas.openxmlformats.org/package/2006/relationships',\n\tTCMNT: 'http://schemas.microsoft.com/office/spreadsheetml/2018/threadedcomments',\n\t'dc': 'http://purl.org/dc/elements/1.1/',\n\t'dcterms': 'http://purl.org/dc/terms/',\n\t'dcmitype': 'http://purl.org/dc/dcmitype/',\n\t'mx': 'http://schemas.microsoft.com/office/mac/excel/2008/main',\n\t'r': 'http://schemas.openxmlformats.org/officeDocument/2006/relationships',\n\t'sjs': 'http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties',\n\t'vt': 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes',\n\t'xsi': 'http://www.w3.org/2001/XMLSchema-instance',\n\t'xsd': 'http://www.w3.org/2001/XMLSchema'\n}/*:any*/);\n\nvar XMLNS_main = [\n\t'http://schemas.openxmlformats.org/spreadsheetml/2006/main',\n\t'http://purl.oclc.org/ooxml/spreadsheetml/main',\n\t'http://schemas.microsoft.com/office/excel/2006/main',\n\t'http://schemas.microsoft.com/office/excel/2006/2'\n];\n\nvar XLMLNS = ({\n\t'o': 'urn:schemas-microsoft-com:office:office',\n\t'x': 'urn:schemas-microsoft-com:office:excel',\n\t'ss': 'urn:schemas-microsoft-com:office:spreadsheet',\n\t'dt': 'uuid:C2F41010-65B3-11d1-A29F-00AA00C14882',\n\t'mv': 'http://macVmlSchemaUri',\n\t'v': 'urn:schemas-microsoft-com:vml',\n\t'html': 'http://www.w3.org/TR/REC-html40'\n}/*:any*/);\nfunction read_double_le(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ {\n\tvar s = 1 - 2 * (b[idx + 7] >>> 7);\n\tvar e = ((b[idx + 7] & 0x7f) << 4) + ((b[idx + 6] >>> 4) & 0x0f);\n\tvar m = (b[idx+6]&0x0f);\n\tfor(var i = 5; i >= 0; --i) m = m * 256 + b[idx + i];\n\tif(e == 0x7ff) return m == 0 ? (s * Infinity) : NaN;\n\tif(e == 0) e = -1022;\n\telse { e -= 1023; m += Math.pow(2,52); }\n\treturn s * Math.pow(2, e - 52) * m;\n}\n\nfunction write_double_le(b/*:RawBytes|CFBlob*/, v/*:number*/, idx/*:number*/) {\n\tvar bs = ((((v < 0) || (1/v == -Infinity)) ? 1 : 0) << 7), e = 0, m = 0;\n\tvar av = bs ? (-v) : v;\n\tif(!isFinite(av)) { e = 0x7ff; m = isNaN(v) ? 0x6969 : 0; }\n\telse if(av == 0) e = m = 0;\n\telse {\n\t\te = Math.floor(Math.log(av) / Math.LN2);\n\t\tm = av * Math.pow(2, 52 - e);\n\t\tif((e <= -1023) && (!isFinite(m) || (m < Math.pow(2,52)))) { e = -1022; }\n\t\telse { m -= Math.pow(2,52); e+=1023; }\n\t}\n\tfor(var i = 0; i <= 5; ++i, m/=256) b[idx + i] = m & 0xff;\n\tb[idx + 6] = ((e & 0x0f) << 4) | (m & 0xf);\n\tb[idx + 7] = (e >> 4) | bs;\n}\n\nvar ___toBuffer = function(bufs/*:Array >*/)/*:RawBytes*/ { var x=[],w=10240; for(var i=0;i 0 && Buffer.isBuffer(bufs[0][0])) ? Buffer.concat(bufs[0].map(function(x) { return Buffer.isBuffer(x) ? x : Buffer_from(x); })) : ___toBuffer(bufs);} : ___toBuffer;\n\nvar ___utf16le = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/)/*:string*/ { var ss/*:Array*/=[]; for(var i=s; i*/=[]; for(var i=s; i 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __lpstr = ___lpstr;\n\nvar ___cpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __cpstr = ___cpstr;\n\nvar ___lpwstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = 2*__readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __lpwstr = ___lpwstr;\n\nvar ___lpp4 = function lpp4_(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf16le(b, i+4,i+4+len) : \"\";};\nvar __lpp4 = ___lpp4;\n\nvar ___8lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len) : \"\";};\nvar __8lpp4 = ___8lpp4;\n\nvar ___double = function(b/*:RawBytes|CFBlob*/, idx/*:number*/) { return read_double_le(b, idx);};\nvar __double = ___double;\n\nvar is_buf = function is_buf_a(a) { return Array.isArray(a) || (typeof Uint8Array !== \"undefined\" && a instanceof Uint8Array); };\n\nif(has_buf/*:: && typeof Buffer !== 'undefined'*/) {\n\t__lpstr = function lpstr_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___lpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__cpstr = function cpstr_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___cpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__lpwstr = function lpwstr_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/ || !buf_utf16le) return ___lpwstr(b, i); var len = 2*b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len-1);};\n\t__lpp4 = function lpp4_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/ || !buf_utf16le) return ___lpp4(b, i); var len = b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len);};\n\t__8lpp4 = function lpp4_8b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___8lpp4(b, i); var len = b.readUInt32LE(i); return b.toString('utf8',i+4,i+4+len);};\n\t__double = function double_(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(Buffer.isBuffer(b)/*::&& b instanceof Buffer*/) return b.readDoubleLE(i); return ___double(b,i); };\n\tis_buf = function is_buf_b(a) { return Buffer.isBuffer(a) || Array.isArray(a) || (typeof Uint8Array !== \"undefined\" && a instanceof Uint8Array); };\n}\n\n/* from js-xls */\nfunction cpdoit() {\n\t__utf16le = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/) { return $cptable.utils.decode(1200, b.slice(s,e)).replace(chr0, ''); };\n\t__utf8 = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/) { return $cptable.utils.decode(65001, b.slice(s,e)); };\n\t__lpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(current_ansi, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__cpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(current_codepage, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__lpwstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = 2*__readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(1200, b.slice(i+4,i+4+len-1)) : \"\";};\n\t__lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(1200, b.slice(i+4,i+4+len)) : \"\";};\n\t__8lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(65001, b.slice(i+4,i+4+len)) : \"\";};\n}\nif(typeof $cptable !== 'undefined') cpdoit();\n\nvar __readUInt8 = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return b[idx]; };\nvar __readUInt16LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx+1]*(1<<8))+b[idx]; };\nvar __readInt16LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { var u = (b[idx+1]*(1<<8))+b[idx]; return (u < 0x8000) ? u : ((0xffff - u + 1) * -1); };\nvar __readUInt32LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return b[idx+3]*(1<<24)+(b[idx+2]<<16)+(b[idx+1]<<8)+b[idx]; };\nvar __readInt32LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx+3]<<24)|(b[idx+2]<<16)|(b[idx+1]<<8)|b[idx]; };\nvar __readInt32BE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx]<<24)|(b[idx+1]<<16)|(b[idx+2]<<8)|b[idx+3]; };\n\nfunction ReadShift(size/*:number*/, t/*:?string*/)/*:number|string*/ {\n\tvar o=\"\", oI/*:: :number = 0*/, oR, oo=[], w, vv, i, loc;\n\tswitch(t) {\n\t\tcase 'dbcs':\n\t\t\tloc = this.l;\n\t\t\tif(has_buf && Buffer.isBuffer(this) && buf_utf16le) o = this.slice(this.l, this.l+2*size).toString(\"utf16le\");\n\t\t\telse for(i = 0; i < size; ++i) { o+=String.fromCharCode(__readUInt16LE(this, loc)); loc+=2; }\n\t\t\tsize *= 2;\n\t\t\tbreak;\n\n\t\tcase 'utf8': o = __utf8(this, this.l, this.l + size); break;\n\t\tcase 'utf16le': size *= 2; o = __utf16le(this, this.l, this.l + size); break;\n\n\t\tcase 'wstr':\n\t\t\tif(typeof $cptable !== 'undefined') o = $cptable.utils.decode(current_codepage, this.slice(this.l, this.l+2*size));\n\t\t\telse return ReadShift.call(this, size, 'dbcs');\n\t\t\tsize = 2 * size; break;\n\n\t\t/* [MS-OLEDS] 2.1.4 LengthPrefixedAnsiString */\n\t\tcase 'lpstr-ansi': o = __lpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\tcase 'lpstr-cp': o = __cpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OLEDS] 2.1.5 LengthPrefixedUnicodeString */\n\t\tcase 'lpwstr': o = __lpwstr(this, this.l); size = 4 + 2 * __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OFFCRYPTO] 2.1.2 Length-Prefixed Padded Unicode String (UNICODE-LP-P4) */\n\t\tcase 'lpp4': size = 4 + __readUInt32LE(this, this.l); o = __lpp4(this, this.l); if(size & 0x02) size += 2; break;\n\t\t/* [MS-OFFCRYPTO] 2.1.3 Length-Prefixed UTF-8 String (UTF-8-LP-P4) */\n\t\tcase '8lpp4': size = 4 + __readUInt32LE(this, this.l); o = __8lpp4(this, this.l); if(size & 0x03) size += 4 - (size & 0x03); break;\n\n\t\tcase 'cstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt8(this, this.l + size++))!==0) oo.push(_getchar(w));\n\t\t\to = oo.join(\"\"); break;\n\t\tcase '_wstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt16LE(this,this.l +size))!==0){oo.push(_getchar(w));size+=2;}\n\t\t\tsize+=2; o = oo.join(\"\"); break;\n\n\t\t/* sbcs and dbcs support continue records in the SST way TODO codepages */\n\t\tcase 'dbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i < size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt16LE(this, loc)));\n\t\t\t\tloc+=2;\n\t\t\t} o = oo.join(\"\"); size *= 2; break;\n\n\t\tcase 'cpstr':\n\t\t\tif(typeof $cptable !== 'undefined') {\n\t\t\t\to = $cptable.utils.decode(current_codepage, this.slice(this.l, this.l + size));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t/* falls through */\n\t\tcase 'sbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i != size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt8(this, loc)));\n\t\t\t\tloc+=1;\n\t\t\t} o = oo.join(\"\"); break;\n\n\t\tdefault:\n\tswitch(size) {\n\t\tcase 1: oI = __readUInt8(this, this.l); this.l++; return oI;\n\t\tcase 2: oI = (t === 'i' ? __readInt16LE : __readUInt16LE)(this, this.l); this.l += 2; return oI;\n\t\tcase 4: case -4:\n\t\t\tif(t === 'i' || ((this[this.l+3] & 0x80)===0)) { oI = ((size > 0) ? __readInt32LE : __readInt32BE)(this, this.l); this.l += 4; return oI; }\n\t\t\telse { oR = __readUInt32LE(this, this.l); this.l += 4; } return oR;\n\t\tcase 8: case -8:\n\t\t\tif(t === 'f') {\n\t\t\t\tif(size == 8) oR = __double(this, this.l);\n\t\t\t\telse oR = __double([this[this.l+7],this[this.l+6],this[this.l+5],this[this.l+4],this[this.l+3],this[this.l+2],this[this.l+1],this[this.l+0]], 0);\n\t\t\t\tthis.l += 8; return oR;\n\t\t\t} else size = 8;\n\t\t/* falls through */\n\t\tcase 16: o = __hexlify(this, this.l, size); break;\n\t}}\n\tthis.l+=size; return o;\n}\n\nvar __writeUInt32LE = function(b/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); b[idx+2] = ((val >>> 16) & 0xFF); b[idx+3] = ((val >>> 24) & 0xFF); };\nvar __writeInt32LE = function(b/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >> 8) & 0xFF); b[idx+2] = ((val >> 16) & 0xFF); b[idx+3] = ((val >> 24) & 0xFF); };\nvar __writeUInt16LE = function(b/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); };\n\nfunction WriteShift(t/*:number*/, val/*:string|number*/, f/*:?string*/)/*:any*/ {\n\tvar size = 0, i = 0;\n\tif(f === 'dbcs') {\n\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\tfor(i = 0; i != val.length; ++i) __writeUInt16LE(this, val.charCodeAt(i), this.l + 2 * i);\n\t\tsize = 2 * val.length;\n\t} else if(f === 'sbcs' || f == 'cpstr') {\n\t\tif(typeof $cptable !== 'undefined' && current_ansi == 874) {\n\t\t\t/* TODO: use tables directly, don't encode */\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tfor(i = 0; i != val.length; ++i) {\n\t\t\t\tvar cpp = $cptable.utils.encode(current_ansi, val.charAt(i));\n\t\t\t\tthis[this.l + i] = cpp[0];\n\t\t\t}\n\t\t\tsize = val.length;\n\t\t} else if(typeof $cptable !== 'undefined' && f == 'cpstr') {\n\t\t\tcpp = $cptable.utils.encode(current_codepage, val);\n\t\t\t/* replace null bytes with _ when relevant */\n if(cpp.length == val.length) for(i = 0; i < val.length; ++i) if(cpp[i] == 0 && val.charCodeAt(i) != 0) cpp[i] = 0x5F;\n if(cpp.length == 2 * val.length) for(i = 0; i < val.length; ++i) if(cpp[2*i] == 0 && cpp[2*i+1] == 0 && val.charCodeAt(i) != 0) cpp[2*i] = 0x5F;\n\t\t\tfor(i = 0; i < cpp.length; ++i) this[this.l + i] = cpp[i];\n\t\t\tsize = cpp.length;\n\t\t} else {\n\t\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\t\tval = val.replace(/[^\\x00-\\x7F]/g, \"_\");\n\t\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\t\tfor(i = 0; i != val.length; ++i) this[this.l + i] = (val.charCodeAt(i) & 0xFF);\n\t\t\tsize = val.length;\n\t\t}\n\t} else if(f === 'hex') {\n\t\tfor(; i < t; ++i) {\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tthis[this.l++] = (parseInt(val.slice(2*i, 2*i+2), 16)||0);\n\t\t} return this;\n\t} else if(f === 'utf16le') {\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tvar end/*:number*/ = Math.min(this.l + t, this.length);\n\t\t\tfor(i = 0; i < Math.min(val.length, t); ++i) {\n\t\t\t\tvar cc = val.charCodeAt(i);\n\t\t\t\tthis[this.l++] = (cc & 0xff);\n\t\t\t\tthis[this.l++] = (cc >> 8);\n\t\t\t}\n\t\t\twhile(this.l < end) this[this.l++] = 0;\n\t\t\treturn this;\n\t} else /*:: if(typeof val === 'number') */ switch(t) {\n\t\tcase 1: size = 1; this[this.l] = val&0xFF; break;\n\t\tcase 2: size = 2; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; break;\n\t\tcase 3: size = 3; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; val >>>= 8; this[this.l+2] = val&0xFF; break;\n\t\tcase 4: size = 4; __writeUInt32LE(this, val, this.l); break;\n\t\tcase 8: size = 8; if(f === 'f') { write_double_le(this, val, this.l); break; }\n\t\t/* falls through */\n\t\tcase 16: break;\n\t\tcase -4: size = 4; __writeInt32LE(this, val, this.l); break;\n\t}\n\tthis.l += size; return this;\n}\n\nfunction CheckField(hexstr/*:string*/, fld/*:string*/)/*:void*/ {\n\tvar m = __hexlify(this,this.l,hexstr.length>>1);\n\tif(m !== hexstr) throw new Error(fld + 'Expected ' + hexstr + ' saw ' + m);\n\tthis.l += hexstr.length>>1;\n}\n\nfunction prep_blob(blob, pos/*:number*/)/*:void*/ {\n\tblob.l = pos;\n\tblob.read_shift = /*::(*/ReadShift/*:: :any)*/;\n\tblob.chk = CheckField;\n\tblob.write_shift = WriteShift;\n}\n\nfunction parsenoop(blob, length/*:: :number, opts?:any */) { blob.l += length; }\n\nfunction new_buf(sz/*:number*/)/*:Block*/ {\n\tvar o = new_raw_buf(sz);\n\tprep_blob(o, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.1.4 Record */\nfunction recordhopper(data, cb/*:RecordHopperCB*/, opts/*:?any*/) {\n\tif(!data) return;\n\tvar tmpbyte, cntbyte, length;\n\tprep_blob(data, data.l || 0);\n\tvar L = data.length, RT = 0, tgt = 0;\n\twhile(data.l < L) {\n\t\tRT = data.read_shift(1);\n\t\tif(RT & 0x80) RT = (RT & 0x7F) + ((data.read_shift(1) & 0x7F)<<7);\n\t\tvar R = XLSBRecordEnum[RT] || XLSBRecordEnum[0xFFFF];\n\t\ttmpbyte = data.read_shift(1);\n\t\tlength = tmpbyte & 0x7F;\n\t\tfor(cntbyte = 1; cntbyte <4 && (tmpbyte & 0x80); ++cntbyte) length += ((tmpbyte = data.read_shift(1)) & 0x7F)<<(7*cntbyte);\n\t\ttgt = data.l + length;\n\t\tvar d = R.f && R.f(data, length, opts);\n\t\tdata.l = tgt;\n\t\tif(cb(d, R, RT)) return;\n\t}\n}\n\n/* control buffer usage for fixed-length buffers */\nfunction buf_array()/*:BufArray*/ {\n\tvar bufs/*:Array*/ = [], blksz = has_buf ? 256 : 2048;\n\tvar newblk = function ba_newblk(sz/*:number*/)/*:Block*/ {\n\t\tvar o/*:Block*/ = (new_buf(sz)/*:any*/);\n\t\tprep_blob(o, 0);\n\t\treturn o;\n\t};\n\n\tvar curbuf/*:Block*/ = newblk(blksz);\n\n\tvar endbuf = function ba_endbuf() {\n\t\tif(!curbuf) return;\n\t\t// workaround for new Buffer(3).slice(0,0) bug in bun 0.1.3\n\t\tif(curbuf.l) {\n\t\t\tif(curbuf.length > curbuf.l) { curbuf = curbuf.slice(0, curbuf.l); curbuf.l = curbuf.length; }\n\t\t\tif(curbuf.length > 0) bufs.push(curbuf);\n\t\t}\n\t\tcurbuf = null;\n\t};\n\n\tvar next = function ba_next(sz/*:number*/)/*:Block*/ {\n\t\tif(curbuf && (sz < (curbuf.length - curbuf.l))) return curbuf;\n\t\tendbuf();\n\t\treturn (curbuf = newblk(Math.max(sz+1, blksz)));\n\t};\n\n\tvar end = function ba_end() {\n\t\tendbuf();\n\t\treturn bconcat(bufs);\n\t};\n\n\tvar push = function ba_push(buf) { endbuf(); curbuf = buf; if(curbuf.l == null) curbuf.l = curbuf.length; next(blksz); };\n\n\treturn ({ next:next, push:push, end:end, _bufs:bufs }/*:any*/);\n}\n\nfunction write_record(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/) {\n\tvar t/*:number*/ = +type, l;\n\tif(isNaN(t)) return; // TODO: throw something here?\n\tif(!length) length = XLSBRecordEnum[t].p || (payload||[]).length || 0;\n\tl = 1 + (t >= 0x80 ? 1 : 0) + 1/* + length*/;\n\tif(length >= 0x80) ++l; if(length >= 0x4000) ++l; if(length >= 0x200000) ++l;\n\tvar o = ba.next(l);\n\tif(t <= 0x7F) o.write_shift(1, t);\n\telse {\n\t\to.write_shift(1, (t & 0x7F) + 0x80);\n\t\to.write_shift(1, (t >> 7));\n\t}\n\tfor(var i = 0; i != 4; ++i) {\n\t\tif(length >= 0x80) { o.write_shift(1, (length & 0x7F)+0x80); length >>= 7; }\n\t\telse { o.write_shift(1, length); break; }\n\t}\n\tif(/*:: length != null &&*/length > 0 && is_buf(payload)) ba.push(payload);\n}\n/* XLS ranges enforced */\nfunction shift_cell_xls(cell/*:CellAddress*/, tgt/*:any*/, opts/*:?any*/)/*:CellAddress*/ {\n\tvar out = dup(cell);\n\tif(tgt.s) {\n\t\tif(out.cRel) out.c += tgt.s.c;\n\t\tif(out.rRel) out.r += tgt.s.r;\n\t} else {\n\t\tif(out.cRel) out.c += tgt.c;\n\t\tif(out.rRel) out.r += tgt.r;\n\t}\n\tif(!opts || opts.biff < 12) {\n\t\twhile(out.c >= 0x100) out.c -= 0x100;\n\t\twhile(out.r >= 0x10000) out.r -= 0x10000;\n\t}\n\treturn out;\n}\n\nfunction shift_range_xls(cell, range, opts) {\n\tvar out = dup(cell);\n\tout.s = shift_cell_xls(out.s, range.s, opts);\n\tout.e = shift_cell_xls(out.e, range.s, opts);\n\treturn out;\n}\n\nfunction encode_cell_xls(c/*:CellAddress*/, biff/*:number*/)/*:string*/ {\n\tif(c.cRel && c.c < 0) { c = dup(c); while(c.c < 0) c.c += (biff > 8) ? 0x4000 : 0x100; }\n\tif(c.rRel && c.r < 0) { c = dup(c); while(c.r < 0) c.r += (biff > 8) ? 0x100000 : ((biff > 5) ? 0x10000 : 0x4000); }\n\tvar s = encode_cell(c);\n\tif(!c.cRel && c.cRel != null) s = fix_col(s);\n\tif(!c.rRel && c.rRel != null) s = fix_row(s);\n\treturn s;\n}\n\nfunction encode_range_xls(r, opts)/*:string*/ {\n\tif(r.s.r == 0 && !r.s.rRel) {\n\t\tif(r.e.r == (opts.biff >= 12 ? 0xFFFFF : (opts.biff >= 8 ? 0x10000 : 0x4000)) && !r.e.rRel) {\n\t\t\treturn (r.s.cRel ? \"\" : \"$\") + encode_col(r.s.c) + \":\" + (r.e.cRel ? \"\" : \"$\") + encode_col(r.e.c);\n\t\t}\n\t}\n\tif(r.s.c == 0 && !r.s.cRel) {\n\t\tif(r.e.c == (opts.biff >= 12 ? 0x3FFF : 0xFF) && !r.e.cRel) {\n\t\t\treturn (r.s.rRel ? \"\" : \"$\") + encode_row(r.s.r) + \":\" + (r.e.rRel ? \"\" : \"$\") + encode_row(r.e.r);\n\t\t}\n\t}\n\treturn encode_cell_xls(r.s, opts.biff) + \":\" + encode_cell_xls(r.e, opts.biff);\n}\nfunction decode_row(rowstr/*:string*/)/*:number*/ { return parseInt(unfix_row(rowstr),10) - 1; }\nfunction encode_row(row/*:number*/)/*:string*/ { return \"\" + (row + 1); }\nfunction fix_row(cstr/*:string*/)/*:string*/ { return cstr.replace(/([A-Z]|^)(\\d+)$/,\"$1$$$2\"); }\nfunction unfix_row(cstr/*:string*/)/*:string*/ { return cstr.replace(/\\$(\\d+)$/,\"$1\"); }\n\nfunction decode_col(colstr/*:string*/)/*:number*/ { var c = unfix_col(colstr), d = 0, i = 0; for(; i !== c.length; ++i) d = 26*d + c.charCodeAt(i) - 64; return d - 1; }\nfunction encode_col(col/*:number*/)/*:string*/ { if(col < 0) throw new Error(\"invalid column \" + col); var s=\"\"; for(++col; col; col=Math.floor((col-1)/26)) s = String.fromCharCode(((col-1)%26) + 65) + s; return s; }\nfunction fix_col(cstr/*:string*/)/*:string*/ { return cstr.replace(/^([A-Z])/,\"$$$1\"); }\nfunction unfix_col(cstr/*:string*/)/*:string*/ { return cstr.replace(/^\\$([A-Z])/,\"$1\"); }\n\nfunction split_cell(cstr/*:string*/)/*:Array*/ { return cstr.replace(/(\\$?[A-Z]*)(\\$?\\d*)/,\"$1,$2\").split(\",\"); }\nfunction decode_cell(cstr/*:string*/)/*:CellAddress*/ {\n\tvar R = 0, C = 0;\n\tfor(var i = 0; i < cstr.length; ++i) {\n\t\tvar cc = cstr.charCodeAt(i);\n\t\tif(cc >= 48 && cc <= 57) R = 10 * R + (cc - 48);\n\t\telse if(cc >= 65 && cc <= 90) C = 26 * C + (cc - 64);\n\t}\n\treturn { c: C - 1, r:R - 1 };\n}\nfunction encode_cell(cell/*:CellAddress*/)/*:string*/ {\n\tvar col = cell.c + 1;\n\tvar s=\"\";\n\tfor(; col; col=((col-1)/26)|0) s = String.fromCharCode(((col-1)%26) + 65) + s;\n\treturn s + (cell.r + 1);\n}\nfunction decode_range(range/*:string*/)/*:Range*/ {\n\tvar idx = range.indexOf(\":\");\n\tif(idx == -1) return { s: decode_cell(range), e: decode_cell(range) };\n\treturn { s: decode_cell(range.slice(0, idx)), e: decode_cell(range.slice(idx + 1)) };\n}\n/*# if only one arg, it is assumed to be a Range. If 2 args, both are cell addresses */\nfunction encode_range(cs/*:CellAddrSpec|Range*/,ce/*:?CellAddrSpec*/)/*:string*/ {\n\tif(typeof ce === 'undefined' || typeof ce === 'number') {\n/*:: if(!(cs instanceof Range)) throw \"unreachable\"; */\n\t\treturn encode_range(cs.s, cs.e);\n\t}\n/*:: if((cs instanceof Range)) throw \"unreachable\"; */\n\tif(typeof cs !== 'string') cs = encode_cell((cs/*:any*/));\n\tif(typeof ce !== 'string') ce = encode_cell((ce/*:any*/));\n/*:: if(typeof cs !== 'string') throw \"unreachable\"; */\n/*:: if(typeof ce !== 'string') throw \"unreachable\"; */\n\treturn cs == ce ? cs : cs + \":\" + ce;\n}\nfunction fix_range(a1/*:string*/)/*:string*/ {\n\tvar s = decode_range(a1);\n\treturn \"$\" + encode_col(s.s.c) + \"$\" + encode_row(s.s.r) + \":$\" + encode_col(s.e.c) + \"$\" + encode_row(s.e.r);\n}\n\n// List of invalid characters needs to be tested further\nfunction formula_quote_sheet_name(sname/*:string*/, opts)/*:string*/ {\n\tif(!sname && !(opts && opts.biff <= 5 && opts.biff >= 2)) throw new Error(\"empty sheet name\");\n\tif (/[^\\w\\u4E00-\\u9FFF\\u3040-\\u30FF]/.test(sname)) return \"'\" + sname.replace(/'/g, \"''\") + \"'\";\n\treturn sname;\n}\n\nfunction safe_decode_range(range/*:string*/)/*:Range*/ {\n\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\tvar idx = 0, i = 0, cc = 0;\n\tvar len = range.length;\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.s.c = --idx;\n\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.s.r = --idx;\n\n\tif(i === len || cc != 10) { o.e.c=o.s.c; o.e.r=o.s.r; return o; }\n\t++i;\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.e.c = --idx;\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.e.r = --idx;\n\treturn o;\n}\n\nfunction safe_format_cell(cell/*:Cell*/, v/*:any*/) {\n\tvar q = (cell.t == 'd' && v instanceof Date);\n\tif(cell.z != null) try { return (cell.w = SSF_format(cell.z, q ? datenum(v) : v)); } catch(e) { }\n\ttry { return (cell.w = SSF_format((cell.XF||{}).numFmtId||(q ? 14 : 0), q ? datenum(v) : v)); } catch(e) { return ''+v; }\n}\n\nfunction format_cell(cell/*:Cell*/, v/*:any*/, o/*:any*/) {\n\tif(cell == null || cell.t == null || cell.t == 'z') return \"\";\n\tif(cell.w !== undefined) return cell.w;\n\tif(cell.t == 'd' && !cell.z && o && o.dateNF) cell.z = o.dateNF;\n\tif(cell.t == \"e\") return BErr[cell.v] || cell.v;\n\tif(v == undefined) return safe_format_cell(cell, cell.v);\n\treturn safe_format_cell(cell, v);\n}\n\nfunction sheet_to_workbook(sheet/*:Worksheet*/, opts)/*:Workbook*/ {\n\tvar n = opts && opts.sheet ? opts.sheet : \"Sheet1\";\n\tvar sheets = {}; sheets[n] = sheet;\n\treturn { SheetNames: [n], Sheets: sheets };\n}\n\nfunction sheet_add_aoa(_ws/*:?Worksheet*/, data/*:AOA*/, opts/*:?any*/)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tvar dense = _ws ? (_ws[\"!data\"] != null) : o.dense;\n\tif(DENSE != null && dense == null) dense = DENSE;\n\tvar ws/*:Worksheet*/ = _ws || ({}/*:any*/);\n\tif(dense && !ws[\"!data\"]) ws[\"!data\"] = [];\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin/*:CellAddress*/ = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t\tif(!ws[\"!ref\"]) ws[\"!ref\"] = \"A1:A1\";\n\t}\n\tvar range/*:Range*/ = ({s: {c:10000000, r:10000000}, e: {c:0, r:0}}/*:any*/);\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.s.c = _range.s.c;\n\t\trange.s.r = _range.s.r;\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) range.e.r = _R = _range.e.r + 1;\n\t}\n\tvar row = [];\n\tfor(var R = 0; R != data.length; ++R) {\n\t\tif(!data[R]) continue;\n\t\tif(!Array.isArray(data[R])) throw new Error(\"aoa_to_sheet expects an array of arrays\");\n\t\tvar __R = _R + R, __Rstr = \"\" + (__R + 1);\n\t\tif(dense) {\n\t\t\tif(!ws[\"!data\"][__R]) ws[\"!data\"][__R] = [];\n\t\t\trow = ws[\"!data\"][__R];\n\t\t}\n\t\tfor(var C = 0; C != data[R].length; ++C) {\n\t\t\tif(typeof data[R][C] === 'undefined') continue;\n\t\t\tvar cell/*:Cell*/ = ({v: data[R][C] }/*:any*/);\n\t\t\tvar __C = _C + C;\n\t\t\tif(range.s.r > __R) range.s.r = __R;\n\t\t\tif(range.s.c > __C) range.s.c = __C;\n\t\t\tif(range.e.r < __R) range.e.r = __R;\n\t\t\tif(range.e.c < __C) range.e.c = __C;\n\t\t\tif(data[R][C] && typeof data[R][C] === 'object' && !Array.isArray(data[R][C]) && !(data[R][C] instanceof Date)) cell = data[R][C];\n\t\t\telse {\n\t\t\t\tif(Array.isArray(cell.v)) { cell.f = data[R][C][1]; cell.v = cell.v[0]; }\n\t\t\t\tif(cell.v === null) {\n\t\t\t\t\tif(cell.f) cell.t = 'n';\n\t\t\t\t\telse if(o.nullError) { cell.t = 'e'; cell.v = 0; }\n\t\t\t\t\telse if(!o.sheetStubs) continue;\n\t\t\t\t\telse cell.t = 'z';\n\t\t\t\t}\n\t\t\t\telse if(typeof cell.v === 'number') cell.t = 'n';\n\t\t\t\telse if(typeof cell.v === 'boolean') cell.t = 'b';\n\t\t\t\telse if(cell.v instanceof Date) {\n\t\t\t\t\tcell.z = o.dateNF || table_fmt[14];\n\t\t\t\t\tif(!o.UTC) cell.v = local_to_utc(cell.v);\n\t\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.w = SSF_format(cell.z, datenum(cell.v, o.date1904)); }\n\t\t\t\t\telse { cell.t = 'n'; cell.v = datenum(cell.v, o.date1904); cell.w = SSF_format(cell.z, cell.v); }\n\t\t\t\t}\n\t\t\t\telse cell.t = 's';\n\t\t\t}\n\t\t\tif(dense) {\n\t\t\t\tif(row[__C] && row[__C].z) cell.z = row[__C].z;\n\t\t\t\trow[__C] = cell;\n\t\t\t} else {\n\t\t\t\tvar cell_ref = encode_col(__C) + __Rstr/*:any*/;\n\t\t\t\tif(ws[cell_ref] && ws[cell_ref].z) cell.z = ws[cell_ref].z;\n\t\t\t\tws[cell_ref] = cell;\n\t\t\t}\n\t\t}\n\t}\n\tif(range.s.c < 10000000) ws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction aoa_to_sheet(data/*:AOA*/, opts/*:?any*/)/*:Worksheet*/ { return sheet_add_aoa(null, data, opts); }\n\nfunction parse_Int32LE(data) {\n\treturn data.read_shift(4, 'i');\n}\nfunction write_UInt32LE(x/*:number*/, o) {\n\tif (!o) o = new_buf(4);\n\to.write_shift(4, x);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.168 */\nfunction parse_XLWideString(data/*::, length*/)/*:string*/ {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLWideString(data/*:string*/, o) {\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(4 + 2 * data.length); }\n\to.write_shift(4, data.length);\n\tif (data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.91 */\n//function parse_LPWideString(data/*::, length*/)/*:string*/ {\n//\tvar cchCharacters = data.read_shift(2);\n//\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, \"utf16le\");\n//}\n\n/* [MS-XLSB] 2.5.143 */\nfunction parse_StrRun(data) {\n\treturn { ich: data.read_shift(2), ifnt: data.read_shift(2) };\n}\nfunction write_StrRun(run, o) {\n\tif (!o) o = new_buf(4);\n\to.write_shift(2, run.ich || 0);\n\to.write_shift(2, run.ifnt || 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.121 */\nfunction parse_RichStr(data, length/*:number*/)/*:XLString*/ {\n\tvar start = data.l;\n\tvar flags = data.read_shift(1);\n\tvar str = parse_XLWideString(data);\n\tvar rgsStrRun = [];\n\tvar z = ({ t: str, h: str }/*:any*/);\n\tif ((flags & 1) !== 0) { /* fRichStr */\n\t\t/* TODO: formatted string */\n\t\tvar dwSizeStrRun = data.read_shift(4);\n\t\tfor (var i = 0; i != dwSizeStrRun; ++i) rgsStrRun.push(parse_StrRun(data));\n\t\tz.r = rgsStrRun;\n\t}\n\telse z.r = [{ ich: 0, ifnt: 0 }];\n\t//if((flags & 2) !== 0) { /* fExtStr */\n\t//\t/* TODO: phonetic string */\n\t//}\n\tdata.l = start + length;\n\treturn z;\n}\nfunction write_RichStr(str/*:XLString*/, o/*:?Block*/)/*:Block*/ {\n\t/* TODO: formatted string */\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(15 + 4 * str.t.length); }\n\to.write_shift(1, 0);\n\twrite_XLWideString(str.t, o);\n\treturn _null ? o.slice(0, o.l) : o;\n}\n/* [MS-XLSB] 2.4.328 BrtCommentText (RichStr w/1 run) */\nvar parse_BrtCommentText = parse_RichStr;\nfunction write_BrtCommentText(str/*:XLString*/, o/*:?Block*/)/*:Block*/ {\n\t/* TODO: formatted string */\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(23 + 4 * str.t.length); }\n\to.write_shift(1, 1);\n\twrite_XLWideString(str.t, o);\n\to.write_shift(4, 1);\n\twrite_StrRun({ ich: 0, ifnt: 0 }, o);\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.9 */\nfunction parse_XLSBCell(data)/*:any*/ {\n\tvar col = data.read_shift(4);\n\tvar iStyleRef = data.read_shift(2);\n\tiStyleRef += data.read_shift(1) << 16;\n\tdata.l++; //var fPhShow = data.read_shift(1);\n\treturn { c: col, iStyleRef: iStyleRef };\n}\nfunction write_XLSBCell(cell/*:any*/, o/*:?Block*/) {\n\tif (o == null) o = new_buf(8);\n\to.write_shift(-4, cell.c);\n\to.write_shift(3, cell.iStyleRef || cell.s);\n\to.write_shift(1, 0); /* fPhShow */\n\treturn o;\n}\n\n/* Short XLSB Cell does not include column */\nfunction parse_XLSBShortCell(data)/*:any*/ {\n\tvar iStyleRef = data.read_shift(2);\n\tiStyleRef += data.read_shift(1) <<16;\n\tdata.l++; //var fPhShow = data.read_shift(1);\n\treturn { c:-1, iStyleRef: iStyleRef };\n}\nfunction write_XLSBShortCell(cell/*:any*/, o/*:?Block*/) {\n\tif(o == null) o = new_buf(4);\n\to.write_shift(3, cell.iStyleRef || cell.s);\n\to.write_shift(1, 0); /* fPhShow */\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.21 */\nvar parse_XLSBCodeName = parse_XLWideString;\nvar write_XLSBCodeName = write_XLWideString;\n\n/* [MS-XLSB] 2.5.166 */\nfunction parse_XLNullableWideString(data/*::, length*/)/*:string*/ {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 || cchCharacters === 0xFFFFFFFF ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLNullableWideString(data/*:string*/, o) {\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(127); }\n\to.write_shift(4, data.length > 0 ? data.length : 0xFFFFFFFF);\n\tif (data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.165 */\nvar parse_XLNameWideString = parse_XLWideString;\n//var write_XLNameWideString = write_XLWideString;\n\n/* [MS-XLSB] 2.5.114 */\nvar parse_RelID = parse_XLNullableWideString;\nvar write_RelID = write_XLNullableWideString;\n\n\n/* [MS-XLS] 2.5.217 ; [MS-XLSB] 2.5.122 */\nfunction parse_RkNumber(data)/*:number*/ {\n\tvar b = data.slice(data.l, data.l + 4);\n\tvar fX100 = (b[0] & 1), fInt = (b[0] & 2);\n\tdata.l += 4;\n\tvar RK = fInt === 0 ? __double([0, 0, 0, 0, (b[0] & 0xFC), b[1], b[2], b[3]], 0) : __readInt32LE(b, 0) >> 2;\n\treturn fX100 ? (RK / 100) : RK;\n}\nfunction write_RkNumber(data/*:number*/, o) {\n\tif (o == null) o = new_buf(4);\n\tvar fX100 = 0, fInt = 0, d100 = data * 100;\n\tif ((data == (data | 0)) && (data >= -(1 << 29)) && (data < (1 << 29))) { fInt = 1; }\n\telse if ((d100 == (d100 | 0)) && (d100 >= -(1 << 29)) && (d100 < (1 << 29))) { fInt = 1; fX100 = 1; }\n\tif (fInt) o.write_shift(-4, ((fX100 ? d100 : data) << 2) + (fX100 + 2));\n\telse throw new Error(\"unsupported RkNumber \" + data); // TODO\n}\n\n\n/* [MS-XLSB] 2.5.117 RfX */\nfunction parse_RfX(data /*::, length*/)/*:Range*/ {\n\tvar cell/*:Range*/ = ({ s: {}, e: {} }/*:any*/);\n\tcell.s.r = data.read_shift(4);\n\tcell.e.r = data.read_shift(4);\n\tcell.s.c = data.read_shift(4);\n\tcell.e.c = data.read_shift(4);\n\treturn cell;\n}\nfunction write_RfX(r/*:Range*/, o) {\n\tif (!o) o = new_buf(16);\n\to.write_shift(4, r.s.r);\n\to.write_shift(4, r.e.r);\n\to.write_shift(4, r.s.c);\n\to.write_shift(4, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.153 UncheckedRfX */\nvar parse_UncheckedRfX = parse_RfX;\nvar write_UncheckedRfX = write_RfX;\n\n/* [MS-XLSB] 2.5.155 UncheckedSqRfX */\n//function parse_UncheckedSqRfX(data) {\n//\tvar cnt = data.read_shift(4);\n//\tvar out = [];\n//\tfor(var i = 0; i < cnt; ++i) {\n//\t\tvar rng = parse_UncheckedRfX(data);\n//\t\tout.push(encode_range(rng));\n//\t}\n//\treturn out.join(\",\");\n//}\n//function write_UncheckedSqRfX(sqrfx/*:string*/) {\n//\tvar parts = sqrfx.split(/\\s*,\\s*/);\n//\tvar o = new_buf(4); o.write_shift(4, parts.length);\n//\tvar out = [o];\n//\tparts.forEach(function(rng) {\n//\t\tout.push(write_UncheckedRfX(safe_decode_range(rng)));\n//\t});\n//\treturn bconcat(out);\n//}\n\n/* [MS-XLS] 2.5.342 ; [MS-XLSB] 2.5.171 */\n/* TODO: error checking, NaN and Infinity values are not valid Xnum */\nfunction parse_Xnum(data/*::, length*/) {\n\tif(data.length - data.l < 8) throw \"XLS Xnum Buffer underflow\";\n\treturn data.read_shift(8, 'f');\n}\nfunction write_Xnum(data, o) { return (o || new_buf(8)).write_shift(8, data, 'f'); }\n\n/* [MS-XLSB] 2.4.324 BrtColor */\nfunction parse_BrtColor(data/*::, length*/) {\n\tvar out = {};\n\tvar d = data.read_shift(1);\n\n\t//var fValidRGB = d & 1;\n\tvar xColorType = d >>> 1;\n\n\tvar index = data.read_shift(1);\n\tvar nTS = data.read_shift(2, 'i');\n\tvar bR = data.read_shift(1);\n\tvar bG = data.read_shift(1);\n\tvar bB = data.read_shift(1);\n\tdata.l++; //var bAlpha = data.read_shift(1);\n\n\tswitch (xColorType) {\n\t\tcase 0: out.auto = 1; break;\n\t\tcase 1:\n\t\t\tout.index = index;\n\t\t\tvar icv = XLSIcv[index];\n\t\t\t/* automatic pseudo index 81 */\n\t\t\tif (icv) out.rgb = rgb2Hex(icv);\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\t/* if(!fValidRGB) throw new Error(\"invalid\"); */\n\t\t\tout.rgb = rgb2Hex([bR, bG, bB]);\n\t\t\tbreak;\n\t\tcase 3: out.theme = index; break;\n\t}\n\tif (nTS != 0) out.tint = nTS > 0 ? nTS / 32767 : nTS / 32768;\n\n\treturn out;\n}\nfunction write_BrtColor(color, o) {\n\tif (!o) o = new_buf(8);\n\tif (!color || color.auto) { o.write_shift(4, 0); o.write_shift(4, 0); return o; }\n\tif (color.index != null) {\n\t\to.write_shift(1, 0x02);\n\t\to.write_shift(1, color.index);\n\t} else if (color.theme != null) {\n\t\to.write_shift(1, 0x06);\n\t\to.write_shift(1, color.theme);\n\t} else {\n\t\to.write_shift(1, 0x05);\n\t\to.write_shift(1, 0);\n\t}\n\tvar nTS = color.tint || 0;\n\tif (nTS > 0) nTS *= 32767;\n\telse if (nTS < 0) nTS *= 32768;\n\to.write_shift(2, nTS);\n\tif (!color.rgb || color.theme != null) {\n\t\to.write_shift(2, 0);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(1, 0);\n\t} else {\n\t\tvar rgb = (color.rgb || 'FFFFFF');\n\t\tif (typeof rgb == 'number') rgb = (\"000000\" + rgb.toString(16)).slice(-6);\n\t\to.write_shift(1, parseInt(rgb.slice(0, 2), 16));\n\t\to.write_shift(1, parseInt(rgb.slice(2, 4), 16));\n\t\to.write_shift(1, parseInt(rgb.slice(4, 6), 16));\n\t\to.write_shift(1, 0xFF);\n\t}\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.52 */\nfunction parse_FontFlags(data/*::, length, opts*/) {\n\tvar d = data.read_shift(1);\n\tdata.l++;\n\tvar out = {\n\t\tfBold: d & 0x01,\n\t\tfItalic: d & 0x02,\n\t\tfUnderline: d & 0x04,\n\t\tfStrikeout: d & 0x08,\n\t\tfOutline: d & 0x10,\n\t\tfShadow: d & 0x20,\n\t\tfCondense: d & 0x40,\n\t\tfExtend: d & 0x80\n\t};\n\treturn out;\n}\nfunction write_FontFlags(font, o) {\n\tif (!o) o = new_buf(2);\n\tvar grbit =\n\t\t(font.italic ? 0x02 : 0) |\n\t\t(font.strike ? 0x08 : 0) |\n\t\t(font.outline ? 0x10 : 0) |\n\t\t(font.shadow ? 0x20 : 0) |\n\t\t(font.condense ? 0x40 : 0) |\n\t\t(font.extend ? 0x80 : 0);\n\to.write_shift(1, grbit);\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-OLEDS] 2.3.1 and 2.3.2 */\nfunction parse_ClipboardFormatOrString(o, w/*:number*/)/*:string*/ {\n\t// $FlowIgnore\n\tvar ClipFmt = { 2: \"BITMAP\", 3: \"METAFILEPICT\", 8: \"DIB\", 14: \"ENHMETAFILE\" };\n\tvar m/*:number*/ = o.read_shift(4);\n\tswitch (m) {\n\t\tcase 0x00000000: return \"\";\n\t\tcase 0xffffffff: case 0xfffffffe: return ClipFmt[o.read_shift(4)] || \"\";\n\t}\n\tif (m > 0x190) throw new Error(\"Unsupported Clipboard: \" + m.toString(16));\n\to.l -= 4;\n\treturn o.read_shift(0, w == 1 ? \"lpstr\" : \"lpwstr\");\n}\nfunction parse_ClipboardFormatOrAnsiString(o) { return parse_ClipboardFormatOrString(o, 1); }\nfunction parse_ClipboardFormatOrUnicodeString(o) { return parse_ClipboardFormatOrString(o, 2); }\n\n/* [MS-OLEPS] 2.2 PropertyType */\n// Note: some tree shakers cannot handle VT_VECTOR | $CONST, hence extra vars\n//var VT_EMPTY = 0x0000;\n//var VT_NULL = 0x0001;\nvar VT_I2 = 0x0002;\nvar VT_I4 = 0x0003;\n//var VT_R4 = 0x0004;\n//var VT_R8 = 0x0005;\n//var VT_CY = 0x0006;\n//var VT_DATE = 0x0007;\n//var VT_BSTR = 0x0008;\n//var VT_ERROR = 0x000A;\nvar VT_BOOL = 0x000B;\nvar VT_VARIANT = 0x000C;\n//var VT_DECIMAL = 0x000E;\n//var VT_I1 = 0x0010;\n//var VT_UI1 = 0x0011;\n//var VT_UI2 = 0x0012;\nvar VT_UI4 = 0x0013;\n//var VT_I8 = 0x0014;\n//var VT_UI8 = 0x0015;\n//var VT_INT = 0x0016;\n//var VT_UINT = 0x0017;\n//var VT_LPSTR = 0x001E;\n//var VT_LPWSTR = 0x001F;\nvar VT_FILETIME = 0x0040;\nvar VT_BLOB = 0x0041;\n//var VT_STREAM = 0x0042;\n//var VT_STORAGE = 0x0043;\n//var VT_STREAMED_Object = 0x0044;\n//var VT_STORED_Object = 0x0045;\n//var VT_BLOB_Object = 0x0046;\nvar VT_CF = 0x0047;\n//var VT_CLSID = 0x0048;\n//var VT_VERSIONED_STREAM = 0x0049;\n//var VT_VECTOR = 0x1000;\nvar VT_VECTOR_VARIANT = 0x100C;\nvar VT_VECTOR_LPSTR = 0x101E;\n//var VT_ARRAY = 0x2000;\n\nvar VT_STRING = 0x0050; // 2.3.3.1.11 VtString\nvar VT_USTR = 0x0051; // 2.3.3.1.12 VtUnalignedString\nvar VT_CUSTOM = [VT_STRING, VT_USTR];\n\n/* [MS-OSHARED] 2.3.3.2.2.1 Document Summary Information PIDDSI */\nvar DocSummaryPIDDSI = {\n\t/*::[*/0x01/*::]*/: { n: 'CodePage', t: VT_I2 },\n\t/*::[*/0x02/*::]*/: { n: 'Category', t: VT_STRING },\n\t/*::[*/0x03/*::]*/: { n: 'PresentationFormat', t: VT_STRING },\n\t/*::[*/0x04/*::]*/: { n: 'ByteCount', t: VT_I4 },\n\t/*::[*/0x05/*::]*/: { n: 'LineCount', t: VT_I4 },\n\t/*::[*/0x06/*::]*/: { n: 'ParagraphCount', t: VT_I4 },\n\t/*::[*/0x07/*::]*/: { n: 'SlideCount', t: VT_I4 },\n\t/*::[*/0x08/*::]*/: { n: 'NoteCount', t: VT_I4 },\n\t/*::[*/0x09/*::]*/: { n: 'HiddenCount', t: VT_I4 },\n\t/*::[*/0x0a/*::]*/: { n: 'MultimediaClipCount', t: VT_I4 },\n\t/*::[*/0x0b/*::]*/: { n: 'ScaleCrop', t: VT_BOOL },\n\t/*::[*/0x0c/*::]*/: { n: 'HeadingPairs', t: VT_VECTOR_VARIANT /* VT_VECTOR | VT_VARIANT */ },\n\t/*::[*/0x0d/*::]*/: { n: 'TitlesOfParts', t: VT_VECTOR_LPSTR /* VT_VECTOR | VT_LPSTR */ },\n\t/*::[*/0x0e/*::]*/: { n: 'Manager', t: VT_STRING },\n\t/*::[*/0x0f/*::]*/: { n: 'Company', t: VT_STRING },\n\t/*::[*/0x10/*::]*/: { n: 'LinksUpToDate', t: VT_BOOL },\n\t/*::[*/0x11/*::]*/: { n: 'CharacterCount', t: VT_I4 },\n\t/*::[*/0x13/*::]*/: { n: 'SharedDoc', t: VT_BOOL },\n\t/*::[*/0x16/*::]*/: { n: 'HyperlinksChanged', t: VT_BOOL },\n\t/*::[*/0x17/*::]*/: { n: 'AppVersion', t: VT_I4, p: 'version' },\n\t/*::[*/0x18/*::]*/: { n: 'DigSig', t: VT_BLOB },\n\t/*::[*/0x1A/*::]*/: { n: 'ContentType', t: VT_STRING },\n\t/*::[*/0x1B/*::]*/: { n: 'ContentStatus', t: VT_STRING },\n\t/*::[*/0x1C/*::]*/: { n: 'Language', t: VT_STRING },\n\t/*::[*/0x1D/*::]*/: { n: 'Version', t: VT_STRING },\n\t/*::[*/0xFF/*::]*/: {},\n\t/* [MS-OLEPS] 2.18 */\n\t/*::[*/0x80000000/*::]*/: { n: 'Locale', t: VT_UI4 },\n\t/*::[*/0x80000003/*::]*/: { n: 'Behavior', t: VT_UI4 },\n\t/*::[*/0x72627262/*::]*/: {}\n};\n\n/* [MS-OSHARED] 2.3.3.2.1.1 Summary Information Property Set PIDSI */\nvar SummaryPIDSI = {\n\t/*::[*/0x01/*::]*/: { n: 'CodePage', t: VT_I2 },\n\t/*::[*/0x02/*::]*/: { n: 'Title', t: VT_STRING },\n\t/*::[*/0x03/*::]*/: { n: 'Subject', t: VT_STRING },\n\t/*::[*/0x04/*::]*/: { n: 'Author', t: VT_STRING },\n\t/*::[*/0x05/*::]*/: { n: 'Keywords', t: VT_STRING },\n\t/*::[*/0x06/*::]*/: { n: 'Comments', t: VT_STRING },\n\t/*::[*/0x07/*::]*/: { n: 'Template', t: VT_STRING },\n\t/*::[*/0x08/*::]*/: { n: 'LastAuthor', t: VT_STRING },\n\t/*::[*/0x09/*::]*/: { n: 'RevNumber', t: VT_STRING },\n\t/*::[*/0x0A/*::]*/: { n: 'EditTime', t: VT_FILETIME },\n\t/*::[*/0x0B/*::]*/: { n: 'LastPrinted', t: VT_FILETIME },\n\t/*::[*/0x0C/*::]*/: { n: 'CreatedDate', t: VT_FILETIME },\n\t/*::[*/0x0D/*::]*/: { n: 'ModifiedDate', t: VT_FILETIME },\n\t/*::[*/0x0E/*::]*/: { n: 'PageCount', t: VT_I4 },\n\t/*::[*/0x0F/*::]*/: { n: 'WordCount', t: VT_I4 },\n\t/*::[*/0x10/*::]*/: { n: 'CharCount', t: VT_I4 },\n\t/*::[*/0x11/*::]*/: { n: 'Thumbnail', t: VT_CF },\n\t/*::[*/0x12/*::]*/: { n: 'Application', t: VT_STRING },\n\t/*::[*/0x13/*::]*/: { n: 'DocSecurity', t: VT_I4 },\n\t/*::[*/0xFF/*::]*/: {},\n\t/* [MS-OLEPS] 2.18 */\n\t/*::[*/0x80000000/*::]*/: { n: 'Locale', t: VT_UI4 },\n\t/*::[*/0x80000003/*::]*/: { n: 'Behavior', t: VT_UI4 },\n\t/*::[*/0x72627262/*::]*/: {}\n};\n\n/* [MS-XLS] 2.4.63 Country/Region codes */\nvar CountryEnum = {\n\t/*::[*/0x0001/*::]*/: \"US\", // United States\n\t/*::[*/0x0002/*::]*/: \"CA\", // Canada\n\t/*::[*/0x0003/*::]*/: \"\", // Latin America (except Brazil)\n\t/*::[*/0x0007/*::]*/: \"RU\", // Russia\n\t/*::[*/0x0014/*::]*/: \"EG\", // Egypt\n\t/*::[*/0x001E/*::]*/: \"GR\", // Greece\n\t/*::[*/0x001F/*::]*/: \"NL\", // Netherlands\n\t/*::[*/0x0020/*::]*/: \"BE\", // Belgium\n\t/*::[*/0x0021/*::]*/: \"FR\", // France\n\t/*::[*/0x0022/*::]*/: \"ES\", // Spain\n\t/*::[*/0x0024/*::]*/: \"HU\", // Hungary\n\t/*::[*/0x0027/*::]*/: \"IT\", // Italy\n\t/*::[*/0x0029/*::]*/: \"CH\", // Switzerland\n\t/*::[*/0x002B/*::]*/: \"AT\", // Austria\n\t/*::[*/0x002C/*::]*/: \"GB\", // United Kingdom\n\t/*::[*/0x002D/*::]*/: \"DK\", // Denmark\n\t/*::[*/0x002E/*::]*/: \"SE\", // Sweden\n\t/*::[*/0x002F/*::]*/: \"NO\", // Norway\n\t/*::[*/0x0030/*::]*/: \"PL\", // Poland\n\t/*::[*/0x0031/*::]*/: \"DE\", // Germany\n\t/*::[*/0x0034/*::]*/: \"MX\", // Mexico\n\t/*::[*/0x0037/*::]*/: \"BR\", // Brazil\n\t/*::[*/0x003d/*::]*/: \"AU\", // Australia\n\t/*::[*/0x0040/*::]*/: \"NZ\", // New Zealand\n\t/*::[*/0x0042/*::]*/: \"TH\", // Thailand\n\t/*::[*/0x0051/*::]*/: \"JP\", // Japan\n\t/*::[*/0x0052/*::]*/: \"KR\", // Korea\n\t/*::[*/0x0054/*::]*/: \"VN\", // Viet Nam\n\t/*::[*/0x0056/*::]*/: \"CN\", // China\n\t/*::[*/0x005A/*::]*/: \"TR\", // Turkey\n\t/*::[*/0x0069/*::]*/: \"JS\", // Ramastan\n\t/*::[*/0x00D5/*::]*/: \"DZ\", // Algeria\n\t/*::[*/0x00D8/*::]*/: \"MA\", // Morocco\n\t/*::[*/0x00DA/*::]*/: \"LY\", // Libya\n\t/*::[*/0x015F/*::]*/: \"PT\", // Portugal\n\t/*::[*/0x0162/*::]*/: \"IS\", // Iceland\n\t/*::[*/0x0166/*::]*/: \"FI\", // Finland\n\t/*::[*/0x01A4/*::]*/: \"CZ\", // Czech Republic\n\t/*::[*/0x0376/*::]*/: \"TW\", // Taiwan\n\t/*::[*/0x03C1/*::]*/: \"LB\", // Lebanon\n\t/*::[*/0x03C2/*::]*/: \"JO\", // Jordan\n\t/*::[*/0x03C3/*::]*/: \"SY\", // Syria\n\t/*::[*/0x03C4/*::]*/: \"IQ\", // Iraq\n\t/*::[*/0x03C5/*::]*/: \"KW\", // Kuwait\n\t/*::[*/0x03C6/*::]*/: \"SA\", // Saudi Arabia\n\t/*::[*/0x03CB/*::]*/: \"AE\", // United Arab Emirates\n\t/*::[*/0x03CC/*::]*/: \"IL\", // Israel\n\t/*::[*/0x03CE/*::]*/: \"QA\", // Qatar\n\t/*::[*/0x03D5/*::]*/: \"IR\", // Iran\n\t/*::[*/0xFFFF/*::]*/: \"US\" // United States\n};\n\n/* [MS-XLS] 2.5.127 */\nvar XLSFillPattern = [\n\tnull,\n\t'solid',\n\t'mediumGray',\n\t'darkGray',\n\t'lightGray',\n\t'darkHorizontal',\n\t'darkVertical',\n\t'darkDown',\n\t'darkUp',\n\t'darkGrid',\n\t'darkTrellis',\n\t'lightHorizontal',\n\t'lightVertical',\n\t'lightDown',\n\t'lightUp',\n\t'lightGrid',\n\t'lightTrellis',\n\t'gray125',\n\t'gray0625'\n];\n\nfunction rgbify(arr/*:Array*/)/*:Array<[number, number, number]>*/ { return arr.map(function(x) { return [(x>>16)&255,(x>>8)&255,x&255]; }); }\n\n/* [MS-XLS] 2.5.161 */\n/* [MS-XLSB] 2.5.75 Icv */\nvar _XLSIcv = /*#__PURE__*/ rgbify([\n\t/* Color Constants */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t/* Overridable Defaults */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t0x800000,\n\t0x008000,\n\t0x000080,\n\t0x808000,\n\t0x800080,\n\t0x008080,\n\t0xC0C0C0,\n\t0x808080,\n\t0x9999FF,\n\t0x993366,\n\t0xFFFFCC,\n\t0xCCFFFF,\n\t0x660066,\n\t0xFF8080,\n\t0x0066CC,\n\t0xCCCCFF,\n\n\t0x000080,\n\t0xFF00FF,\n\t0xFFFF00,\n\t0x00FFFF,\n\t0x800080,\n\t0x800000,\n\t0x008080,\n\t0x0000FF,\n\t0x00CCFF,\n\t0xCCFFFF,\n\t0xCCFFCC,\n\t0xFFFF99,\n\t0x99CCFF,\n\t0xFF99CC,\n\t0xCC99FF,\n\t0xFFCC99,\n\n\t0x3366FF,\n\t0x33CCCC,\n\t0x99CC00,\n\t0xFFCC00,\n\t0xFF9900,\n\t0xFF6600,\n\t0x666699,\n\t0x969696,\n\t0x003366,\n\t0x339966,\n\t0x003300,\n\t0x333300,\n\t0x993300,\n\t0x993366,\n\t0x333399,\n\t0x333333,\n\n\t/* Other entries to appease BIFF8/12 */\n\t0x000000, /* 0x40 icvForeground ?? */\n\t0xFFFFFF, /* 0x41 icvBackground ?? */\n\t0x000000, /* 0x42 icvFrame ?? */\n\t0x000000, /* 0x43 icv3D ?? */\n\t0x000000, /* 0x44 icv3DText ?? */\n\t0x000000, /* 0x45 icv3DHilite ?? */\n\t0x000000, /* 0x46 icv3DShadow ?? */\n\t0x000000, /* 0x47 icvHilite ?? */\n\t0x000000, /* 0x48 icvCtlText ?? */\n\t0x000000, /* 0x49 icvCtlScrl ?? */\n\t0x000000, /* 0x4A icvCtlInv ?? */\n\t0x000000, /* 0x4B icvCtlBody ?? */\n\t0x000000, /* 0x4C icvCtlFrame ?? */\n\t0x000000, /* 0x4D icvCtlFore ?? */\n\t0x000000, /* 0x4E icvCtlBack ?? */\n\t0x000000, /* 0x4F icvCtlNeutral */\n\t0x000000, /* 0x50 icvInfoBk ?? */\n\t0x000000 /* 0x51 icvInfoText ?? */\n]);\nvar XLSIcv = /*#__PURE__*/dup(_XLSIcv);\n\n/* [MS-XLSB] 2.5.97.2 */\nvar BErr = {\n\t/*::[*/0x00/*::]*/: \"#NULL!\",\n\t/*::[*/0x07/*::]*/: \"#DIV/0!\",\n\t/*::[*/0x0F/*::]*/: \"#VALUE!\",\n\t/*::[*/0x17/*::]*/: \"#REF!\",\n\t/*::[*/0x1D/*::]*/: \"#NAME?\",\n\t/*::[*/0x24/*::]*/: \"#NUM!\",\n\t/*::[*/0x2A/*::]*/: \"#N/A\",\n\t/*::[*/0x2B/*::]*/: \"#GETTING_DATA\",\n\t/*::[*/0xFF/*::]*/: \"#WTF?\"\n};\n//var RBErr = evert_num(BErr);\nvar RBErr = {\n\t\"#NULL!\": 0x00,\n\t\"#DIV/0!\": 0x07,\n\t\"#VALUE!\": 0x0F,\n\t\"#REF!\": 0x17,\n\t\"#NAME?\": 0x1D,\n\t\"#NUM!\": 0x24,\n\t\"#N/A\": 0x2A,\n\t\"#GETTING_DATA\": 0x2B,\n\t\"#WTF?\": 0xFF\n};\n\nvar XLSLblBuiltIn = [\n\t\"_xlnm.Consolidate_Area\",\n\t\"_xlnm.Auto_Open\",\n\t\"_xlnm.Auto_Close\",\n\t\"_xlnm.Extract\",\n\t\"_xlnm.Database\",\n\t\"_xlnm.Criteria\",\n\t\"_xlnm.Print_Area\",\n\t\"_xlnm.Print_Titles\",\n\t\"_xlnm.Recorder\",\n\t\"_xlnm.Data_Form\",\n\t\"_xlnm.Auto_Activate\",\n\t\"_xlnm.Auto_Deactivate\",\n\t\"_xlnm.Sheet_Title\",\n\t\"_xlnm._FilterDatabase\"\n];\n\n/* Parts enumerated in OPC spec, MS-XLSB and MS-XLSX */\n/* 12.3 Part Summary */\n/* 14.2 Part Summary */\n/* [MS-XLSX] 2.1 Part Enumerations ; [MS-XLSB] 2.1.7 Part Enumeration */\nvar ct2type/*{[string]:string}*/ = ({\n\t/* Workbook */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\": \"workbooks\",\n\t\"application/vnd.ms-excel.sheet.macroEnabled.main+xml\": \"workbooks\",\n\t\"application/vnd.ms-excel.sheet.binary.macroEnabled.main\": \"workbooks\",\n\t\"application/vnd.ms-excel.addin.macroEnabled.main+xml\": \"workbooks\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\": \"workbooks\",\n\n\t/* Worksheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\": \"sheets\",\n\t\"application/vnd.ms-excel.worksheet\": \"sheets\",\n\t\"application/vnd.ms-excel.binIndexWs\": \"TODO\", /* Binary Index */\n\n\t/* Chartsheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\": \"charts\",\n\t\"application/vnd.ms-excel.chartsheet\": \"charts\",\n\n\t/* Macrosheet */\n\t\"application/vnd.ms-excel.macrosheet+xml\": \"macros\",\n\t\"application/vnd.ms-excel.macrosheet\": \"macros\",\n\t\"application/vnd.ms-excel.intlmacrosheet\": \"TODO\",\n\t\"application/vnd.ms-excel.binIndexMs\": \"TODO\", /* Binary Index */\n\n\t/* Dialogsheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\": \"dialogs\",\n\t\"application/vnd.ms-excel.dialogsheet\": \"dialogs\",\n\n\t/* Shared Strings */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\": \"strs\",\n\t\"application/vnd.ms-excel.sharedStrings\": \"strs\",\n\n\t/* Styles */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\": \"styles\",\n\t\"application/vnd.ms-excel.styles\": \"styles\",\n\n\t/* File Properties */\n\t\"application/vnd.openxmlformats-package.core-properties+xml\": \"coreprops\",\n\t\"application/vnd.openxmlformats-officedocument.custom-properties+xml\": \"custprops\",\n\t\"application/vnd.openxmlformats-officedocument.extended-properties+xml\": \"extprops\",\n\n\t/* Custom Data Properties */\n\t\"application/vnd.openxmlformats-officedocument.customXmlProperties+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty\": \"TODO\",\n\n\t/* Comments */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\": \"comments\",\n\t\"application/vnd.ms-excel.comments\": \"comments\",\n\t\"application/vnd.ms-excel.threadedcomments+xml\": \"threadedcomments\",\n\t\"application/vnd.ms-excel.person+xml\": \"people\",\n\n\t/* Metadata (Stock/Geography and Dynamic Array) */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml\": \"metadata\",\n\t\"application/vnd.ms-excel.sheetMetadata\": \"metadata\",\n\n\t/* PivotTable */\n\t\"application/vnd.ms-excel.pivotTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml\": \"TODO\",\n\n\t/* Chart Objects */\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\": \"TODO\",\n\n\t/* Chart Colors */\n\t\"application/vnd.ms-office.chartcolorstyle+xml\": \"TODO\",\n\n\t/* Chart Style */\n\t\"application/vnd.ms-office.chartstyle+xml\": \"TODO\",\n\n\t/* Chart Advanced */\n\t\"application/vnd.ms-office.chartex+xml\": \"TODO\",\n\n\t/* Calculation Chain */\n\t\"application/vnd.ms-excel.calcChain\": \"calcchains\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml\": \"calcchains\",\n\n\t/* Printer Settings */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings\": \"TODO\",\n\n\t/* ActiveX */\n\t\"application/vnd.ms-office.activeX\": \"TODO\",\n\t\"application/vnd.ms-office.activeX+xml\": \"TODO\",\n\n\t/* Custom Toolbars */\n\t\"application/vnd.ms-excel.attachedToolbars\": \"TODO\",\n\n\t/* External Data Connections */\n\t\"application/vnd.ms-excel.connections\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\": \"TODO\",\n\n\t/* External Links */\n\t\"application/vnd.ms-excel.externalLink\": \"links\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml\": \"links\",\n\n\t/* PivotCache */\n\t\"application/vnd.ms-excel.pivotCacheDefinition\": \"TODO\",\n\t\"application/vnd.ms-excel.pivotCacheRecords\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml\": \"TODO\",\n\n\t/* Query Table */\n\t\"application/vnd.ms-excel.queryTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml\": \"TODO\",\n\n\t/* Shared Workbook */\n\t\"application/vnd.ms-excel.userNames\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionHeaders\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionLog\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml\": \"TODO\",\n\n\t/* Single Cell Table */\n\t\"application/vnd.ms-excel.tableSingleCells\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml\": \"TODO\",\n\n\t/* Slicer */\n\t\"application/vnd.ms-excel.slicer\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache\": \"TODO\",\n\t\"application/vnd.ms-excel.slicer+xml\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache+xml\": \"TODO\",\n\n\t/* Sort Map */\n\t\"application/vnd.ms-excel.wsSortMap\": \"TODO\",\n\n\t/* Table */\n\t\"application/vnd.ms-excel.table\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\": \"TODO\",\n\n\t/* Themes */\n\t\"application/vnd.openxmlformats-officedocument.theme+xml\": \"themes\",\n\n\t/* Theme Override */\n\t\"application/vnd.openxmlformats-officedocument.themeOverride+xml\": \"TODO\",\n\n\t/* Timeline */\n\t\"application/vnd.ms-excel.Timeline+xml\": \"TODO\", /* verify */\n\t\"application/vnd.ms-excel.TimelineCache+xml\": \"TODO\", /* verify */\n\n\t/* VBA */\n\t\"application/vnd.ms-office.vbaProject\": \"vba\",\n\t\"application/vnd.ms-office.vbaProjectSignature\": \"TODO\",\n\n\t/* Volatile Dependencies */\n\t\"application/vnd.ms-office.volatileDependencies\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml\": \"TODO\",\n\n\t/* Control Properties */\n\t\"application/vnd.ms-excel.controlproperties+xml\": \"TODO\",\n\n\t/* Data Model */\n\t\"application/vnd.openxmlformats-officedocument.model+data\": \"TODO\",\n\n\t/* Survey */\n\t\"application/vnd.ms-excel.Survey+xml\": \"TODO\",\n\n\t/* Drawing */\n\t\"application/vnd.openxmlformats-officedocument.drawing+xml\": \"drawings\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml\": \"TODO\",\n\n\t/* VML */\n\t\"application/vnd.openxmlformats-officedocument.vmlDrawing\": \"TODO\",\n\n\t\"application/vnd.openxmlformats-package.relationships+xml\": \"rels\",\n\t\"application/vnd.openxmlformats-officedocument.oleObject\": \"TODO\",\n\n\t/* Image */\n\t\"image/png\": \"TODO\",\n\n\t\"sheet\": \"js\"\n}/*:any*/);\n\nvar CT_LIST = {\n\tworkbooks: {\n\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\",\n\t\txlsm: \"application/vnd.ms-excel.sheet.macroEnabled.main+xml\",\n\t\txlsb: \"application/vnd.ms-excel.sheet.binary.macroEnabled.main\",\n\t\txlam: \"application/vnd.ms-excel.addin.macroEnabled.main+xml\",\n\t\txltx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\"\n\t},\n\tstrs: { /* Shared Strings */\n\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\",\n\t\txlsb: \"application/vnd.ms-excel.sharedStrings\"\n\t},\n\tcomments: { /* Comments */\n\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\",\n\t\txlsb: \"application/vnd.ms-excel.comments\"\n\t},\n\tsheets: { /* Worksheet */\n\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\",\n\t\txlsb: \"application/vnd.ms-excel.worksheet\"\n\t},\n\tcharts: { /* Chartsheet */\n\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\",\n\t\txlsb: \"application/vnd.ms-excel.chartsheet\"\n\t},\n\tdialogs: { /* Dialogsheet */\n\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\",\n\t\txlsb: \"application/vnd.ms-excel.dialogsheet\"\n\t},\n\tmacros: { /* Macrosheet (Excel 4.0 Macros) */\n\t\txlsx: \"application/vnd.ms-excel.macrosheet+xml\",\n\t\txlsb: \"application/vnd.ms-excel.macrosheet\"\n\t},\n\tmetadata: { /* Metadata (Stock/Geography and Dynamic Array) */\n\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml\",\n\t\txlsb: \"application/vnd.ms-excel.sheetMetadata\"\n\t},\n\tstyles: { /* Styles */\n\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\",\n\t\txlsb: \"application/vnd.ms-excel.styles\"\n\t}\n};\n\nfunction new_ct()/*:any*/ {\n\treturn ({\n\t\tworkbooks:[], sheets:[], charts:[], dialogs:[], macros:[],\n\t\trels:[], strs:[], comments:[], threadedcomments:[], links:[],\n\t\tcoreprops:[], extprops:[], custprops:[], themes:[], styles:[],\n\t\tcalcchains:[], vba: [], drawings: [], metadata: [], people:[],\n\t\tTODO:[], xmlns: \"\" }/*:any*/);\n}\n\nfunction parse_ct(data/*:?string*/) {\n\tvar ct = new_ct();\n\tif(!data || !data.match) return ct;\n\tvar ctext = {};\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0].replace(nsregex,\"<\")) {\n\t\t\tcase ' 0 ? ct.calcchains[0] : \"\";\n\tct.sst = ct.strs.length > 0 ? ct.strs[0] : \"\";\n\tct.style = ct.styles.length > 0 ? ct.styles[0] : \"\";\n\tct.defaults = ctext;\n\tdelete ct.calcchains;\n\treturn ct;\n}\n\nfunction write_ct(ct, opts, raw)/*:string*/ {\n\tvar type2ct/*{[string]:Array}*/ = evert_arr(ct2type);\n\n\tvar o/*:Array*/ = [], v;\n\n\tif(!raw) {\n\t\to[o.length] = (XML_HEADER);\n\t\to[o.length] = writextag('Types', null, {\n\t\t\t'xmlns': XMLNS.CT,\n\t\t\t'xmlns:xsd': XMLNS.xsd,\n\t\t\t'xmlns:xsi': XMLNS.xsi\n\t\t});\n\t\to = o.concat([\n\t\t\t['xml', 'application/xml'],\n\t\t\t['bin', 'application/vnd.ms-excel.sheet.binary.macroEnabled.main'],\n\t\t\t['vml', 'application/vnd.openxmlformats-officedocument.vmlDrawing'],\n\t\t\t['data', 'application/vnd.openxmlformats-officedocument.model+data'],\n\t\t\t/* from test files */\n\t\t\t['bmp', 'image/bmp'],\n\t\t\t['png', 'image/png'],\n\t\t\t['gif', 'image/gif'],\n\t\t\t['emf', 'image/x-emf'],\n\t\t\t['wmf', 'image/x-wmf'],\n\t\t\t['jpg', 'image/jpeg'], ['jpeg', 'image/jpeg'],\n\t\t\t['tif', 'image/tiff'], ['tiff', 'image/tiff'],\n\t\t\t['pdf', 'application/pdf'],\n\t\t\t['rels', 'application/vnd.openxmlformats-package.relationships+xml']\n\t\t].map(function(x) {\n\t\t\treturn writextag('Default', null, {'Extension':x[0], 'ContentType': x[1]});\n\t\t}));\n\t}\n\n\t/* only write first instance */\n\tvar f1 = function(w) {\n\t\tif(ct[w] && ct[w].length > 0) {\n\t\t\tv = ct[w][0];\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType] || CT_LIST[w]['xlsx']\n\t\t\t}));\n\t\t}\n\t};\n\n\t/* book type-specific */\n\tvar f2 = function(w) {\n\t\t(ct[w]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType] || CT_LIST[w]['xlsx']\n\t\t\t}));\n\t\t});\n\t};\n\n\t/* standard type */\n\tvar f3 = function(t) {\n\t\t(ct[t]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': type2ct[t][0]\n\t\t\t}));\n\t\t});\n\t};\n\n\tf1('workbooks');\n\tf2('sheets');\n\tf2('charts');\n\tf3('themes');\n\t['strs', 'styles'].forEach(f1);\n\t['coreprops', 'extprops', 'custprops'].forEach(f3);\n\tf3('vba');\n\tf3('comments');\n\tf3('threadedcomments');\n\tf3('drawings');\n\tf2('metadata');\n\tf3('people');\n\tif(!raw && o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 9.3 Relationships */\nvar RELS = ({\n\tWB: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tSHEET: \"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tHLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink\",\n\tVML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing\",\n\tXPATH: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLinkPath\",\n\tXMISS: \"http://schemas.microsoft.com/office/2006/relationships/xlExternalLinkPath/xlPathMissing\",\n\tXLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLink\",\n\tCXML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml\",\n\tCXMLP: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps\",\n\tCMNT: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments\",\n\tCORE_PROPS: \"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties\",\n\tEXT_PROPS: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties',\n\tCUST_PROPS: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties',\n\tSST: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings\",\n\tSTY: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\",\n\tTHEME: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme\",\n\tCHART: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart\",\n\tCHARTEX: \"http://schemas.microsoft.com/office/2014/relationships/chartEx\",\n\tCS: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet\",\n\tWS: [\n\t\t\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\",\n\t\t\"http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet\"\n\t],\n\tDS: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet\",\n\tMS: \"http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet\",\n\tIMG: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image\",\n\tDRAW: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing\",\n\tXLMETA: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sheetMetadata\",\n\tTCMNT: \"http://schemas.microsoft.com/office/2017/10/relationships/threadedComment\",\n\tPEOPLE: \"http://schemas.microsoft.com/office/2017/10/relationships/person\",\n\tCONN: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/connections\",\n\tVBA: \"http://schemas.microsoft.com/office/2006/relationships/vbaProject\"\n}/*:any*/);\n\n/* 9.3.3 Representing Relationships */\nfunction get_rels_path(file/*:string*/)/*:string*/ {\n\tvar n = file.lastIndexOf(\"/\");\n\treturn file.slice(0,n+1) + '_rels/' + file.slice(n+1) + \".rels\";\n}\n\nfunction parse_rels(data/*:?string*/, currentFilePath/*:string*/) {\n\tvar rels = {\"!id\":{}};\n\tif (!data) return rels;\n\tif (currentFilePath.charAt(0) !== '/') {\n\t\tcurrentFilePath = '/'+currentFilePath;\n\t}\n\tvar hash = {};\n\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\t/* 9.3.2.2 OPC_Relationships */\n\t\tif (y[0] === '2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\nfunction add_rels(rels, rId/*:number*/, f, type, relobj, targetmode/*:?string*/)/*:number*/ {\n\tif(!relobj) relobj = {};\n\tif(!rels['!id']) rels['!id'] = {};\n\tif(!rels['!idx']) rels['!idx'] = 1;\n\tif(rId < 0) for(rId = rels['!idx']; rels['!id']['rId' + rId]; ++rId){/* empty */}\n\trels['!idx'] = rId + 1;\n\trelobj.Id = 'rId' + rId;\n\trelobj.Type = type;\n\trelobj.Target = f;\n\tif(targetmode) relobj.TargetMode = targetmode;\n\telse if([RELS.HLINK, RELS.XPATH, RELS.XMISS].indexOf(relobj.Type) > -1) relobj.TargetMode = \"External\";\n\tif(rels['!id'][relobj.Id]) throw new Error(\"Cannot rewrite rId \" + rId);\n\trels['!id'][relobj.Id] = relobj;\n\trels[('/' + relobj.Target).replace(\"//\",\"/\")] = relobj;\n\treturn rId;\n}\nvar CT_ODS = \"application/vnd.oasis.opendocument.spreadsheet\";\nfunction parse_manifest(d, opts) {\n var str = xlml_normalize(d);\n var Rn;\n var FEtag;\n while (Rn = xlmlregex.exec(str))\n switch (Rn[3]) {\n case \"manifest\":\n break;\n case \"file-entry\":\n FEtag = parsexmltag(Rn[0], false);\n if (FEtag.path == \"/\" && FEtag.type !== CT_ODS)\n throw new Error(\"This OpenDocument is not a spreadsheet\");\n break;\n case \"encryption-data\":\n case \"algorithm\":\n case \"start-key-generation\":\n case \"key-derivation\":\n throw new Error(\"Unsupported ODS Encryption\");\n default:\n if (opts && opts.WTF)\n throw Rn;\n }\n}\nfunction write_manifest(manifest) {\n var o = [XML_HEADER];\n o.push('\\n');\n o.push(' \\n');\n for (var i = 0; i < manifest.length; ++i)\n o.push(' \\n');\n o.push(\"\");\n return o.join(\"\");\n}\nfunction write_rdf_type(file, res, tag) {\n return [\n ' \\n',\n ' \\n',\n \" \\n\"\n ].join(\"\");\n}\nfunction write_rdf_has(base, file) {\n return [\n ' \\n',\n ' \\n',\n \" \\n\"\n ].join(\"\");\n}\nfunction write_rdf(rdf) {\n var o = [XML_HEADER];\n o.push('\\n');\n for (var i = 0; i != rdf.length; ++i) {\n o.push(write_rdf_type(rdf[i][0], rdf[i][1]));\n o.push(write_rdf_has(\"\", rdf[i][0]));\n }\n o.push(write_rdf_type(\"\", \"Document\", \"pkg\"));\n o.push(\"\");\n return o.join(\"\");\n}\nfunction write_meta_ods(wb, opts) {\n return 'SheetJS ' + XLSX.version + \"\";\n}\n/* ECMA-376 Part II 11.1 Core Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar CORE_PROPS/*:Array >*/ = [\n\t[\"cp:category\", \"Category\"],\n\t[\"cp:contentStatus\", \"ContentStatus\"],\n\t[\"cp:keywords\", \"Keywords\"],\n\t[\"cp:lastModifiedBy\", \"LastAuthor\"],\n\t[\"cp:lastPrinted\", \"LastPrinted\"],\n\t[\"cp:revision\", \"RevNumber\"],\n\t[\"cp:version\", \"Version\"],\n\t[\"dc:creator\", \"Author\"],\n\t[\"dc:description\", \"Comments\"],\n\t[\"dc:identifier\", \"Identifier\"],\n\t[\"dc:language\", \"Language\"],\n\t[\"dc:subject\", \"Subject\"],\n\t[\"dc:title\", \"Title\"],\n\t[\"dcterms:created\", \"CreatedDate\", 'date'],\n\t[\"dcterms:modified\", \"ModifiedDate\", 'date']\n];\n\nvar CORE_PROPS_REGEX/*:Array*/ = /*#__PURE__*/(function() {\n\tvar r = new Array(CORE_PROPS.length);\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i];\n\t\tvar g = \"(?:\"+ f[0].slice(0,f[0].indexOf(\":\")) +\":)\"+ f[0].slice(f[0].indexOf(\":\")+1);\n\t\tr[i] = new RegExp(\"<\" + g + \"[^>]*>([\\\\s\\\\S]*?)<\\/\" + g + \">\");\n\t}\n\treturn r;\n})();\n\nfunction parse_core_props(data) {\n\tvar p = {};\n\tdata = utf8read(data);\n\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i], cur = data.match(CORE_PROPS_REGEX[i]);\n\t\tif(cur != null && cur.length > 0) p[f[1]] = unescapexml(cur[1]);\n\t\tif(f[2] === 'date' && p[f[1]]) p[f[1]] = parseDate(p[f[1]]);\n\t}\n\n\treturn p;\n}\n\nfunction cp_doit(f, g, h, o, p) {\n\tif(p[f] != null || g == null || g === \"\") return;\n\tp[f] = g;\n\tg = escapexml(g);\n\to[o.length] = (h ? writextag(f,g,h) : writetag(f,g));\n}\n\nfunction write_core_props(cp, _opts) {\n\tvar opts = _opts || {};\n\tvar o = [XML_HEADER, writextag('cp:coreProperties', null, {\n\t\t//'xmlns': XMLNS.CORE_PROPS,\n\t\t'xmlns:cp': XMLNS.CORE_PROPS,\n\t\t'xmlns:dc': XMLNS.dc,\n\t\t'xmlns:dcterms': XMLNS.dcterms,\n\t\t'xmlns:dcmitype': XMLNS.dcmitype,\n\t\t'xmlns:xsi': XMLNS.xsi\n\t})], p = {};\n\tif(!cp && !opts.Props) return o.join(\"\");\n\n\tif(cp) {\n\t\tif(cp.CreatedDate != null) cp_doit(\"dcterms:created\", typeof cp.CreatedDate === \"string\" ? cp.CreatedDate : write_w3cdtf(cp.CreatedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\t\tif(cp.ModifiedDate != null) cp_doit(\"dcterms:modified\", typeof cp.ModifiedDate === \"string\" ? cp.ModifiedDate : write_w3cdtf(cp.ModifiedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\t}\n\n\tfor(var i = 0; i != CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i];\n\t\tvar v = opts.Props && opts.Props[f[1]] != null ? opts.Props[f[1]] : cp ? cp[f[1]] : null;\n\t\tif(v === true) v = \"1\";\n\t\telse if(v === false) v = \"0\";\n\t\telse if(typeof v == \"number\") v = String(v);\n\t\tif(v != null) cp_doit(f[0], v, null, o, p);\n\t}\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.3 Extended File Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar EXT_PROPS/*:Array >*/ = [\n\t[\"Application\", \"Application\", \"string\"],\n\t[\"AppVersion\", \"AppVersion\", \"string\"],\n\t[\"Company\", \"Company\", \"string\"],\n\t[\"DocSecurity\", \"DocSecurity\", \"string\"],\n\t[\"Manager\", \"Manager\", \"string\"],\n\t[\"HyperlinksChanged\", \"HyperlinksChanged\", \"bool\"],\n\t[\"SharedDoc\", \"SharedDoc\", \"bool\"],\n\t[\"LinksUpToDate\", \"LinksUpToDate\", \"bool\"],\n\t[\"ScaleCrop\", \"ScaleCrop\", \"bool\"],\n\t[\"HeadingPairs\", \"HeadingPairs\", \"raw\"],\n\t[\"TitlesOfParts\", \"TitlesOfParts\", \"raw\"]\n];\n\nvar PseudoPropsPairs = [\n\t\"Worksheets\", \"SheetNames\",\n\t\"NamedRanges\", \"DefinedNames\",\n\t\"Chartsheets\", \"ChartNames\"\n];\nfunction load_props_pairs(HP/*:string|Array>*/, TOP, props, opts) {\n\tvar v = [];\n\tif(typeof HP == \"string\") v = parseVector(HP, opts);\n\telse for(var j = 0; j < HP.length; ++j) v = v.concat(HP[j].map(function(hp) { return {v:hp}; }));\n\tvar parts = (typeof TOP == \"string\") ? parseVector(TOP, opts).map(function (x) { return x.v; }) : TOP;\n\tvar idx = 0, len = 0;\n\tif(parts.length > 0) for(var i = 0; i !== v.length; i += 2) {\n\t\tlen = +(v[i+1].v);\n\t\tswitch(v[i].v) {\n\t\t\tcase \"Worksheets\":\n\t\t\tcase \"工作表\":\n\t\t\tcase \"Листы\":\n\t\t\tcase \"أوراق العمل\":\n\t\t\tcase \"ワークシート\":\n\t\t\tcase \"גליונות עבודה\":\n\t\t\tcase \"Arbeitsblätter\":\n\t\t\tcase \"Çalışma Sayfaları\":\n\t\t\tcase \"Feuilles de calcul\":\n\t\t\tcase \"Fogli di lavoro\":\n\t\t\tcase \"Folhas de cálculo\":\n\t\t\tcase \"Planilhas\":\n\t\t\tcase \"Regneark\":\n\t\t\tcase \"Hojas de cálculo\":\n\t\t\tcase \"Werkbladen\":\n\t\t\t\tprops.Worksheets = len;\n\t\t\t\tprops.SheetNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Named Ranges\":\n\t\t\tcase \"Rangos con nombre\":\n\t\t\tcase \"名前付き一覧\":\n\t\t\tcase \"Benannte Bereiche\":\n\t\t\tcase \"Navngivne områder\":\n\t\t\t\tprops.NamedRanges = len;\n\t\t\t\tprops.DefinedNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Charts\":\n\t\t\tcase \"Diagramme\":\n\t\t\t\tprops.Chartsheets = len;\n\t\t\t\tprops.ChartNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\t\t}\n\t\tidx += len;\n\t}\n}\n\nfunction parse_ext_props(data, p, opts) {\n\tvar q = {}; if(!p) p = {};\n\tdata = utf8read(data);\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tvar xml = (data.match(matchtag(f[0]))||[])[1];\n\t\tswitch(f[2]) {\n\t\t\tcase \"string\": if(xml) p[f[1]] = unescapexml(xml); break;\n\t\t\tcase \"bool\": p[f[1]] = xml === \"true\"; break;\n\t\t\tcase \"raw\":\n\t\t\t\tvar cur = data.match(new RegExp(\"<\" + f[0] + \"[^>]*>([\\\\s\\\\S]*?)<\\/\" + f[0] + \">\"));\n\t\t\t\tif(cur && cur.length > 0) q[f[1]] = cur[1];\n\t\t\t\tbreak;\n\t\t}\n\t});\n\n\tif(q.HeadingPairs && q.TitlesOfParts) load_props_pairs(q.HeadingPairs, q.TitlesOfParts, p, opts);\n\n\treturn p;\n}\n\nfunction write_ext_props(cp/*::, opts*/)/*:string*/ {\n\tvar o/*:Array*/ = [], W = writextag;\n\tif(!cp) cp = {};\n\tcp.Application = \"SheetJS\";\n\to[o.length] = (XML_HEADER);\n\to[o.length] = (writextag('Properties', null, {\n\t\t'xmlns': XMLNS.EXT_PROPS,\n\t\t'xmlns:vt': XMLNS.vt\n\t}));\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tif(cp[f[1]] === undefined) return;\n\t\tvar v;\n\t\tswitch(f[2]) {\n\t\t\tcase 'string': v = escapexml(String(cp[f[1]])); break;\n\t\t\tcase 'bool': v = cp[f[1]] ? 'true' : 'false'; break;\n\t\t}\n\t\tif(v !== undefined) o[o.length] = (W(f[0], v));\n\t});\n\n\t/* TODO: HeadingPairs, TitlesOfParts */\n\to[o.length] = (W('HeadingPairs', W('vt:vector', W('vt:variant', 'Worksheets')+W('vt:variant', W('vt:i4', String(cp.Worksheets))), {size:2, baseType:\"variant\"})));\n\to[o.length] = (W('TitlesOfParts', W('vt:vector', cp.SheetNames.map(function(s) { return \"\" + escapexml(s) + \"\"; }).join(\"\"), {size: cp.Worksheets, baseType:\"lpstr\"})));\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.2 Custom File Properties Part */\nvar custregex = /<[^>]+>[^<]*/g;\nfunction parse_cust_props(data/*:string*/, opts) {\n\tvar p = {}, name = \"\";\n\tvar m = data.match(custregex);\n\tif(m) for(var i = 0; i != m.length; ++i) {\n\t\tvar x = m[i], y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': name = null; break;\n\t\t\tdefault: if (x.indexOf('');\n\t\t\t\tvar type = toks[0].slice(4), text = toks[1];\n\t\t\t\t/* 22.4.2.32 (CT_Variant). Omit the binary types from 22.4 (Variant Types) */\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase 'lpstr': case 'bstr': case 'lpwstr':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'bool':\n\t\t\t\t\t\tp[name] = parsexmlbool(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'i1': case 'i2': case 'i4': case 'i8': case 'int': case 'uint':\n\t\t\t\t\t\tp[name] = parseInt(text, 10);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'r4': case 'r8': case 'decimal':\n\t\t\t\t\t\tp[name] = parseFloat(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'filetime': case 'date':\n\t\t\t\t\t\tp[name] = parseDate(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'cy': case 'error':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tif(type.slice(-1) == '/') break;\n\t\t\t\t\t\tif(opts.WTF && typeof console !== 'undefined') console.warn('Unexpected', x, type, toks);\n\t\t\t\t}\n\t\t\t} else if(x.slice(0,2) === \"2){ o[o.length] = ''; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* Common Name -> XLML Name */\nvar XLMLDocPropsMap = {\n\tTitle: 'Title',\n\tSubject: 'Subject',\n\tAuthor: 'Author',\n\tKeywords: 'Keywords',\n\tComments: 'Description',\n\tLastAuthor: 'LastAuthor',\n\tRevNumber: 'Revision',\n\tApplication: 'AppName',\n\t/* TotalTime: 'TotalTime', */\n\tLastPrinted: 'LastPrinted',\n\tCreatedDate: 'Created',\n\tModifiedDate: 'LastSaved',\n\t/* Pages */\n\t/* Words */\n\t/* Characters */\n\tCategory: 'Category',\n\t/* PresentationFormat */\n\tManager: 'Manager',\n\tCompany: 'Company',\n\t/* Guid */\n\t/* HyperlinkBase */\n\t/* Bytes */\n\t/* Lines */\n\t/* Paragraphs */\n\t/* CharactersWithSpaces */\n\tAppVersion: 'Version',\n\n\tContentStatus: 'ContentStatus', /* NOTE: missing from schema */\n\tIdentifier: 'Identifier', /* NOTE: missing from schema */\n\tLanguage: 'Language' /* NOTE: missing from schema */\n};\nvar evert_XLMLDPM;\n\nfunction xlml_set_prop(Props, tag/*:string*/, val) {\n\tif(!evert_XLMLDPM) evert_XLMLDPM = evert(XLMLDocPropsMap);\n\ttag = evert_XLMLDPM[tag] || tag;\n\tProps[tag] = val;\n}\n\nfunction xlml_write_docprops(Props, opts) {\n\tvar o/*:Array*/ = [];\n\tkeys(XLMLDocPropsMap).map(function(m) {\n\t\tfor(var i = 0; i < CORE_PROPS.length; ++i) if(CORE_PROPS[i][1] == m) return CORE_PROPS[i];\n\t\tfor(i = 0; i < EXT_PROPS.length; ++i) if(EXT_PROPS[i][1] == m) return EXT_PROPS[i];\n\t\tthrow m;\n\t}).forEach(function(p) {\n\t\tif(Props[p[1]] == null) return;\n\t\tvar m = opts && opts.Props && opts.Props[p[1]] != null ? opts.Props[p[1]] : Props[p[1]];\n\t\tswitch(p[2]) {\n\t\t\tcase 'date': m = new Date(m).toISOString().replace(/\\.\\d*Z/,\"Z\"); break;\n\t\t}\n\t\tif(typeof m == 'number') m = String(m);\n\t\telse if(m === true || m === false) { m = m ? \"1\" : \"0\"; }\n\t\telse if(m instanceof Date) m = new Date(m).toISOString().replace(/\\.\\d*Z/,\"\");\n\t\to.push(writetag(XLMLDocPropsMap[p[1]] || p[1], m));\n\t});\n\treturn writextag('DocumentProperties', o.join(\"\"), {xmlns:XLMLNS.o });\n}\nfunction xlml_write_custprops(Props, Custprops/*::, opts*/) {\n\tvar BLACKLIST = [\"Worksheets\",\"SheetNames\"];\n\tvar T = 'CustomDocumentProperties';\n\tvar o/*:Array*/ = [];\n\tif(Props) keys(Props).forEach(function(k) {\n\t\t/*:: if(!Props) return; */\n\t\tif(!Object.prototype.hasOwnProperty.call(Props, k)) return;\n\t\tfor(var i = 0; i < CORE_PROPS.length; ++i) if(k == CORE_PROPS[i][1]) return;\n\t\tfor(i = 0; i < EXT_PROPS.length; ++i) if(k == EXT_PROPS[i][1]) return;\n\t\tfor(i = 0; i < BLACKLIST.length; ++i) if(k == BLACKLIST[i]) return;\n\n\t\tvar m = Props[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\tif(Custprops) keys(Custprops).forEach(function(k) {\n\t\t/*:: if(!Custprops) return; */\n\t\tif(!Object.prototype.hasOwnProperty.call(Custprops, k)) return;\n\t\tif(Props && Object.prototype.hasOwnProperty.call(Props, k)) return;\n\t\tvar m = Custprops[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse if(m instanceof Date) { t = \"dateTime.tz\"; m = m.toISOString(); }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\treturn '<' + T + ' xmlns=\"' + XLMLNS.o + '\">' + o.join(\"\") + '';\n}\n/* [MS-DTYP] 2.3.3 FILETIME */\n/* [MS-OLEDS] 2.1.3 FILETIME (Packet Version) */\n/* [MS-OLEPS] 2.8 FILETIME (Packet Version) */\nfunction parse_FILETIME(blob) {\n\tvar dwLowDateTime = blob.read_shift(4), dwHighDateTime = blob.read_shift(4);\n\treturn new Date(((dwHighDateTime/1e7*Math.pow(2,32) + dwLowDateTime/1e7) - 11644473600)*1000).toISOString().replace(/\\.000/,\"\");\n}\nfunction write_FILETIME(time/*:string|Date*/) {\n\tvar date = (typeof time == \"string\") ? new Date(Date.parse(time)) : time;\n\tvar t = date.getTime() / 1000 + 11644473600;\n\tvar l = t % Math.pow(2,32), h = (t - l) / Math.pow(2,32);\n\tl *= 1e7; h *= 1e7;\n\tvar w = (l / Math.pow(2,32)) | 0;\n\tif(w > 0) { l = l % Math.pow(2,32); h += w; }\n\tvar o = new_buf(8); o.write_shift(4, l); o.write_shift(4, h); return o;\n}\n\n/* [MS-OSHARED] 2.3.3.1.4 Lpstr */\nfunction parse_lpstr(blob, type, pad/*:?number*/) {\n\tvar start = blob.l;\n\tvar str = blob.read_shift(0, 'lpstr-cp');\n\tif(pad) while((blob.l - start) & 3) ++blob.l;\n\treturn str;\n}\n\n/* [MS-OSHARED] 2.3.3.1.6 Lpwstr */\nfunction parse_lpwstr(blob, type, pad) {\n\tvar str = blob.read_shift(0, 'lpwstr');\n\tif(pad) blob.l += (4 - ((str.length+1) & 3)) & 3;\n\treturn str;\n}\n\n\n/* [MS-OSHARED] 2.3.3.1.11 VtString */\n/* [MS-OSHARED] 2.3.3.1.12 VtUnalignedString */\nfunction parse_VtStringBase(blob, stringType, pad) {\n\tif(stringType === 0x1F /*VT_LPWSTR*/) return parse_lpwstr(blob);\n\treturn parse_lpstr(blob, stringType, pad);\n}\n\nfunction parse_VtString(blob, t/*:number*/, pad/*:?boolean*/) { return parse_VtStringBase(blob, t, pad === false ? 0: 4); }\nfunction parse_VtUnalignedString(blob, t/*:number*/) { if(!t) throw new Error(\"VtUnalignedString must have positive length\"); return parse_VtStringBase(blob, t, 0); }\n\n/* [MS-OSHARED] 2.3.3.1.7 VtVecLpwstrValue */\nfunction parse_VtVecLpwstrValue(blob)/*:Array*/ {\n\tvar length = blob.read_shift(4);\n\tvar ret/*:Array*/ = [];\n\tfor(var i = 0; i != length; ++i) {\n\t\tvar start = blob.l;\n\t\tret[i] = blob.read_shift(0, 'lpwstr').replace(chr0,'');\n\t\tif((blob.l - start) & 0x02) blob.l += 2;\n\t}\n\treturn ret;\n}\n\n/* [MS-OSHARED] 2.3.3.1.9 VtVecUnalignedLpstrValue */\nfunction parse_VtVecUnalignedLpstrValue(blob)/*:Array*/ {\n\tvar length = blob.read_shift(4);\n\tvar ret/*:Array*/ = [];\n\tfor(var i = 0; i != length; ++i) ret[i] = blob.read_shift(0, 'lpstr-cp').replace(chr0,'');\n\treturn ret;\n}\n\n\n/* [MS-OSHARED] 2.3.3.1.13 VtHeadingPair */\nfunction parse_VtHeadingPair(blob) {\n\tvar start = blob.l;\n\tvar headingString = parse_TypedPropertyValue(blob, VT_USTR);\n\tif(blob[blob.l] == 0x00 && blob[blob.l+1] == 0x00 && ((blob.l - start) & 0x02)) blob.l += 2;\n\tvar headerParts = parse_TypedPropertyValue(blob, VT_I4);\n\treturn [headingString, headerParts];\n}\n\n/* [MS-OSHARED] 2.3.3.1.14 VtVecHeadingPairValue */\nfunction parse_VtVecHeadingPairValue(blob) {\n\tvar cElements = blob.read_shift(4);\n\tvar out = [];\n\tfor(var i = 0; i < cElements / 2; ++i) out.push(parse_VtHeadingPair(blob));\n\treturn out;\n}\n\n/* [MS-OLEPS] 2.18.1 Dictionary (uses 2.17, 2.16) */\nfunction parse_dictionary(blob,CodePage) {\n\tvar cnt = blob.read_shift(4);\n\tvar dict/*:{[number]:string}*/ = ({}/*:any*/);\n\tfor(var j = 0; j != cnt; ++j) {\n\t\tvar pid = blob.read_shift(4);\n\t\tvar len = blob.read_shift(4);\n\t\tdict[pid] = blob.read_shift(len, (CodePage === 0x4B0 ?'utf16le':'utf8')).replace(chr0,'').replace(chr1,'!');\n\t\tif(CodePage === 0x4B0 && (len % 2)) blob.l += 2;\n\t}\n\tif(blob.l & 3) blob.l = (blob.l>>2+1)<<2;\n\treturn dict;\n}\n\n/* [MS-OLEPS] 2.9 BLOB */\nfunction parse_BLOB(blob) {\n\tvar size = blob.read_shift(4);\n\tvar bytes = blob.slice(blob.l,blob.l+size);\n\tblob.l += size;\n\tif((size & 3) > 0) blob.l += (4 - (size & 3)) & 3;\n\treturn bytes;\n}\n\n/* [MS-OLEPS] 2.11 ClipboardData */\nfunction parse_ClipboardData(blob) {\n\t// TODO\n\tvar o = {};\n\to.Size = blob.read_shift(4);\n\t//o.Format = blob.read_shift(4);\n\tblob.l += o.Size + 3 - (o.Size - 1) % 4;\n\treturn o;\n}\n\n/* [MS-OLEPS] 2.15 TypedPropertyValue */\nfunction parse_TypedPropertyValue(blob, type/*:number*/, _opts)/*:any*/ {\n\tvar t = blob.read_shift(2), ret, opts = _opts||{};\n\tblob.l += 2;\n\tif(type !== VT_VARIANT)\n\tif(t !== type && VT_CUSTOM.indexOf(type)===-1 && !((type & 0xFFFE) == 0x101E && (t & 0xFFFE) == 0x101E)) throw new Error('Expected type ' + type + ' saw ' + t);\n\tswitch(type === VT_VARIANT ? t : type) {\n\t\tcase 0x02 /*VT_I2*/: ret = blob.read_shift(2, 'i'); if(!opts.raw) blob.l += 2; return ret;\n\t\tcase 0x03 /*VT_I4*/: ret = blob.read_shift(4, 'i'); return ret;\n\t\tcase 0x0B /*VT_BOOL*/: return blob.read_shift(4) !== 0x0;\n\t\tcase 0x13 /*VT_UI4*/: ret = blob.read_shift(4); return ret;\n\t\tcase 0x1E /*VT_LPSTR*/: return parse_lpstr(blob, t, 4).replace(chr0,'');\n\t\tcase 0x1F /*VT_LPWSTR*/: return parse_lpwstr(blob);\n\t\tcase 0x40 /*VT_FILETIME*/: return parse_FILETIME(blob);\n\t\tcase 0x41 /*VT_BLOB*/: return parse_BLOB(blob);\n\t\tcase 0x47 /*VT_CF*/: return parse_ClipboardData(blob);\n\t\tcase 0x50 /*VT_STRING*/: return parse_VtString(blob, t, !opts.raw).replace(chr0,'');\n\t\tcase 0x51 /*VT_USTR*/: return parse_VtUnalignedString(blob, t/*, 4*/).replace(chr0,'');\n\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: return parse_VtVecHeadingPairValue(blob);\n\t\tcase 0x101E /*VT_VECTOR|VT_LPSTR*/:\n\t\tcase 0x101F /*VT_VECTOR|VT_LPWSTR*/:\n\t\t\treturn t == 0x101F ? parse_VtVecLpwstrValue(blob) : parse_VtVecUnalignedLpstrValue(blob);\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + t);\n\t}\n}\nfunction write_TypedPropertyValue(type/*:number*/, value) {\n\tvar o = new_buf(4), p = new_buf(4);\n\to.write_shift(4, type == 0x50 ? 0x1F : type);\n\tswitch(type) {\n\t\tcase 0x03 /*VT_I4*/: p.write_shift(-4, value); break;\n\t\tcase 0x05 /*VT_I4*/: p = new_buf(8); p.write_shift(8, value, 'f'); break;\n\t\tcase 0x0B /*VT_BOOL*/: p.write_shift(4, value ? 0x01 : 0x00); break;\n\t\tcase 0x40 /*VT_FILETIME*/: /*:: if(typeof value !== \"string\" && !(value instanceof Date)) throw \"unreachable\"; */ p = write_FILETIME(value); break;\n\t\tcase 0x1F /*VT_LPWSTR*/:\n\t\tcase 0x50 /*VT_STRING*/:\n\t\t\t/*:: if(typeof value !== \"string\") throw \"unreachable\"; */\n\t\t\tp = new_buf(4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));\n\t\t\tp.write_shift(4, value.length + 1);\n\t\t\tp.write_shift(0, value, \"dbcs\");\n\t\t\twhile(p.l != p.length) p.write_shift(1, 0);\n\t\t\tbreak;\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + value);\n\t}\n\treturn bconcat([o, p]);\n}\n\n/* [MS-OLEPS] 2.20 PropertySet */\nfunction parse_PropertySet(blob, PIDSI) {\n\tvar start_addr = blob.l;\n\tvar size = blob.read_shift(4);\n\tvar NumProps = blob.read_shift(4);\n\tvar Props = [], i = 0;\n\tvar CodePage = 0;\n\tvar Dictionary = -1, DictObj/*:{[number]:string}*/ = ({}/*:any*/);\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tvar PropID = blob.read_shift(4);\n\t\tvar Offset = blob.read_shift(4);\n\t\tProps[i] = [PropID, Offset + start_addr];\n\t}\n\tProps.sort(function(x,y) { return x[1] - y[1]; });\n\tvar PropH = {};\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tif(blob.l !== Props[i][1]) {\n\t\t\tvar fail = true;\n\t\t\tif(i>0 && PIDSI) switch(PIDSI[Props[i-1][0]].t) {\n\t\t\t\tcase 0x02 /*VT_I2*/: if(blob.l+2 === Props[i][1]) { blob.l+=2; fail = false; } break;\n\t\t\t\tcase 0x50 /*VT_STRING*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t}\n\t\t\tif((!PIDSI||i==0) && blob.l <= Props[i][1]) { fail=false; blob.l = Props[i][1]; }\n\t\t\tif(fail) throw new Error(\"Read Error: Expected address \" + Props[i][1] + ' at ' + blob.l + ' :' + i);\n\t\t}\n\t\tif(PIDSI) {\n\t\t\tif(Props[i][0] == 0 && Props.length > i+1 && Props[i][1] == Props[i+1][1]) continue; // R9\n\t\t\tvar piddsi = PIDSI[Props[i][0]];\n\t\t\tPropH[piddsi.n] = parse_TypedPropertyValue(blob, piddsi.t, {raw:true});\n\t\t\tif(piddsi.p === 'version') PropH[piddsi.n] = String(PropH[piddsi.n] >> 16) + \".\" + (\"0000\" + String(PropH[piddsi.n] & 0xFFFF)).slice(-4);\n\t\t\tif(piddsi.n == \"CodePage\") switch(PropH[piddsi.n]) {\n\t\t\t\tcase 0: PropH[piddsi.n] = 1252;\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 874:\n\t\t\t\tcase 932:\n\t\t\t\tcase 936:\n\t\t\t\tcase 949:\n\t\t\t\tcase 950:\n\t\t\t\tcase 1250:\n\t\t\t\tcase 1251:\n\t\t\t\tcase 1253:\n\t\t\t\tcase 1254:\n\t\t\t\tcase 1255:\n\t\t\t\tcase 1256:\n\t\t\t\tcase 1257:\n\t\t\t\tcase 1258:\n\t\t\t\tcase 10000:\n\t\t\t\tcase 1200:\n\t\t\t\tcase 1201:\n\t\t\t\tcase 1252:\n\t\t\t\tcase 65000: case -536:\n\t\t\t\tcase 65001: case -535:\n\t\t\t\t\tset_cp(CodePage = (PropH[piddsi.n]>>>0) & 0xFFFF); break;\n\t\t\t\tdefault: throw new Error(\"Unsupported CodePage: \" + PropH[piddsi.n]);\n\t\t\t}\n\t\t} else {\n\t\t\tif(Props[i][0] === 0x1) {\n\t\t\t\tCodePage = PropH.CodePage = (parse_TypedPropertyValue(blob, VT_I2)/*:number*/);\n\t\t\t\tset_cp(CodePage);\n\t\t\t\tif(Dictionary !== -1) {\n\t\t\t\t\tvar oldpos = blob.l;\n\t\t\t\t\tblob.l = Props[Dictionary][1];\n\t\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t\t\tblob.l = oldpos;\n\t\t\t\t}\n\t\t\t} else if(Props[i][0] === 0) {\n\t\t\t\tif(CodePage === 0) { Dictionary = i; blob.l = Props[i+1][1]; continue; }\n\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t} else {\n\t\t\t\tvar name = DictObj[Props[i][0]];\n\t\t\t\tvar val;\n\t\t\t\t/* [MS-OSHARED] 2.3.3.2.3.1.2 + PROPVARIANT */\n\t\t\t\tswitch(blob[blob.l]) {\n\t\t\t\t\tcase 0x41 /*VT_BLOB*/: blob.l += 4; val = parse_BLOB(blob); break;\n\t\t\t\t\tcase 0x1E /*VT_LPSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/\\u0000+$/,\"\"); break;\n\t\t\t\t\tcase 0x1F /*VT_LPWSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/\\u0000+$/,\"\"); break;\n\t\t\t\t\tcase 0x03 /*VT_I4*/: blob.l += 4; val = blob.read_shift(4, 'i'); break;\n\t\t\t\t\tcase 0x13 /*VT_UI4*/: blob.l += 4; val = blob.read_shift(4); break;\n\t\t\t\t\tcase 0x05 /*VT_R8*/: blob.l += 4; val = blob.read_shift(8, 'f'); break;\n\t\t\t\t\tcase 0x0B /*VT_BOOL*/: blob.l += 4; val = parsebool(blob, 4); break;\n\t\t\t\t\tcase 0x40 /*VT_FILETIME*/: blob.l += 4; val = parseDate(parse_FILETIME(blob)); break;\n\t\t\t\t\tdefault: throw new Error(\"unparsed value: \" + blob[blob.l]);\n\t\t\t\t}\n\t\t\t\tPropH[name] = val;\n\t\t\t}\n\t\t}\n\t}\n\tblob.l = start_addr + size; /* step ahead to skip padding */\n\treturn PropH;\n}\nvar XLSPSSkip = [ \"CodePage\", \"Thumbnail\", \"_PID_LINKBASE\", \"_PID_HLINKS\", \"SystemIdentifier\", \"FMTID\" ];\nfunction guess_property_type(val/*:any*/)/*:number*/ {\n\tswitch(typeof val) {\n\t\tcase \"boolean\": return 0x0B;\n\t\tcase \"number\": return ((val|0)==val) ? 0x03 : 0x05;\n\t\tcase \"string\": return 0x1F;\n\t\tcase \"object\": if(val instanceof Date) return 0x40; break;\n\t}\n\treturn -1;\n}\nfunction write_PropertySet(entries, RE, PIDSI) {\n\tvar hdr = new_buf(8), piao = [], prop = [];\n\tvar sz = 8, i = 0;\n\n\tvar pr = new_buf(8), pio = new_buf(8);\n\tpr.write_shift(4, 0x0002);\n\tpr.write_shift(4, 0x04B0);\n\tpio.write_shift(4, 0x0001);\n\tprop.push(pr); piao.push(pio);\n\tsz += 8 + pr.length;\n\n\tif(!RE) {\n\t\tpio = new_buf(8);\n\t\tpio.write_shift(4, 0);\n\t\tpiao.unshift(pio);\n\n\t\tvar bufs = [new_buf(4)];\n\t\tbufs[0].write_shift(4, entries.length);\n\t\tfor(i = 0; i < entries.length; ++i) {\n\t\t\tvar value = entries[i][0];\n\t\t\tpr = new_buf(4 + 4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));\n\t\t\tpr.write_shift(4, i+2);\n\t\t\tpr.write_shift(4, value.length + 1);\n\t\t\tpr.write_shift(0, value, \"dbcs\");\n\t\t\twhile(pr.l != pr.length) pr.write_shift(1, 0);\n\t\t\tbufs.push(pr);\n\t\t}\n\t\tpr = bconcat(bufs);\n\t\tprop.unshift(pr);\n\t\tsz += 8 + pr.length;\n\t}\n\n\tfor(i = 0; i < entries.length; ++i) {\n\t\tif(RE && !RE[entries[i][0]]) continue;\n\t\tif(XLSPSSkip.indexOf(entries[i][0]) > -1 || PseudoPropsPairs.indexOf(entries[i][0]) > -1) continue;\n\t\tif(entries[i][1] == null) continue;\n\n\t\tvar val = entries[i][1], idx = 0;\n\t\tif(RE) {\n\t\t\tidx = +RE[entries[i][0]];\n\t\t\tvar pinfo = (PIDSI/*:: || {}*/)[idx]/*:: || {} */;\n\t\t\tif(pinfo.p == \"version\" && typeof val == \"string\") {\n\t\t\t\t/*:: if(typeof val !== \"string\") throw \"unreachable\"; */\n\t\t\t\tvar arr = val.split(\".\");\n\t\t\t\tval = ((+arr[0])<<16) + ((+arr[1])||0);\n\t\t\t}\n\t\t\tpr = write_TypedPropertyValue(pinfo.t, val);\n\t\t} else {\n\t\t\tvar T = guess_property_type(val);\n\t\t\tif(T == -1) { T = 0x1F; val = String(val); }\n\t\t\tpr = write_TypedPropertyValue(T, val);\n\t\t}\n\t\tprop.push(pr);\n\n\t\tpio = new_buf(8);\n\t\tpio.write_shift(4, !RE ? 2+i : idx);\n\t\tpiao.push(pio);\n\n\t\tsz += 8 + pr.length;\n\t}\n\n\tvar w = 8 * (prop.length + 1);\n\tfor(i = 0; i < prop.length; ++i) { piao[i].write_shift(4, w); w += prop[i].length; }\n\thdr.write_shift(4, sz);\n\thdr.write_shift(4, prop.length);\n\treturn bconcat([hdr].concat(piao).concat(prop));\n}\n\n/* [MS-OLEPS] 2.21 PropertySetStream */\nfunction parse_PropertySetStream(file, PIDSI, clsid) {\n\tvar blob = file.content;\n\tif(!blob) return ({}/*:any*/);\n\tprep_blob(blob, 0);\n\n\tvar NumSets, FMTID0, FMTID1, Offset0, Offset1 = 0;\n\tblob.chk('feff', 'Byte Order: ');\n\n\t/*var vers = */blob.read_shift(2); // TODO: check version\n\tvar SystemIdentifier = blob.read_shift(4);\n\tvar CLSID = blob.read_shift(16);\n\tif(CLSID !== CFB.utils.consts.HEADER_CLSID && CLSID !== clsid) throw new Error(\"Bad PropertySet CLSID \" + CLSID);\n\tNumSets = blob.read_shift(4);\n\tif(NumSets !== 1 && NumSets !== 2) throw new Error(\"Unrecognized #Sets: \" + NumSets);\n\tFMTID0 = blob.read_shift(16); Offset0 = blob.read_shift(4);\n\n\tif(NumSets === 1 && Offset0 !== blob.l) throw new Error(\"Length mismatch: \" + Offset0 + \" !== \" + blob.l);\n\telse if(NumSets === 2) { FMTID1 = blob.read_shift(16); Offset1 = blob.read_shift(4); }\n\tvar PSet0 = parse_PropertySet(blob, PIDSI);\n\n\tvar rval = ({ SystemIdentifier: SystemIdentifier }/*:any*/);\n\tfor(var y in PSet0) rval[y] = PSet0[y];\n\t//rval.blob = blob;\n\trval.FMTID = FMTID0;\n\t//rval.PSet0 = PSet0;\n\tif(NumSets === 1) return rval;\n\tif(Offset1 - blob.l == 2) blob.l += 2;\n\tif(blob.l !== Offset1) throw new Error(\"Length mismatch 2: \" + blob.l + \" !== \" + Offset1);\n\tvar PSet1;\n\ttry { PSet1 = parse_PropertySet(blob, null); } catch(e) {/* empty */}\n\tfor(y in PSet1) rval[y] = PSet1[y];\n\trval.FMTID = [FMTID0, FMTID1]; // TODO: verify FMTID0/1\n\treturn rval;\n}\nfunction write_PropertySetStream(entries, clsid, RE, PIDSI/*:{[key:string|number]:any}*/, entries2/*:?any*/, clsid2/*:?any*/) {\n\tvar hdr = new_buf(entries2 ? 68 : 48);\n\tvar bufs = [hdr];\n\thdr.write_shift(2, 0xFFFE);\n\thdr.write_shift(2, 0x0000); /* TODO: type 1 props */\n\thdr.write_shift(4, 0x32363237);\n\thdr.write_shift(16, CFB.utils.consts.HEADER_CLSID, \"hex\");\n\thdr.write_shift(4, (entries2 ? 2 : 1));\n\thdr.write_shift(16, clsid, \"hex\");\n\thdr.write_shift(4, (entries2 ? 68 : 48));\n\tvar ps0 = write_PropertySet(entries, RE, PIDSI);\n\tbufs.push(ps0);\n\n\tif(entries2) {\n\t\tvar ps1 = write_PropertySet(entries2, null, null);\n\t\thdr.write_shift(16, clsid2, \"hex\");\n\t\thdr.write_shift(4, 68 + ps0.length);\n\t\tbufs.push(ps1);\n\t}\n\treturn bconcat(bufs);\n}\n\nfunction parsenoop2(blob, length) { blob.read_shift(length); return null; }\nfunction writezeroes(n, o) { if(!o) o=new_buf(n); for(var j=0; j= 12 ? 2 : 1);\n\tvar encoding = 'sbcs-cont';\n\tvar cp = current_codepage;\n\tif(opts && opts.biff >= 8) current_codepage = 1200;\n\tif(!opts || opts.biff == 8 ) {\n\t\tvar fHighByte = blob.read_shift(1);\n\t\tif(fHighByte) { encoding = 'dbcs-cont'; }\n\t} else if(opts.biff == 12) {\n\t\tencoding = 'wstr';\n\t}\n\tif(opts.biff >= 2 && opts.biff <= 5) encoding = 'cpstr';\n\tvar o = cch ? blob.read_shift(cch, encoding) : \"\";\n\tcurrent_codepage = cp;\n\treturn o;\n}\n\n/* 2.5.293 XLUnicodeRichExtendedString */\nfunction parse_XLUnicodeRichExtendedString(blob) {\n\tvar cp = current_codepage;\n\tcurrent_codepage = 1200;\n\tvar cch = blob.read_shift(2), flags = blob.read_shift(1);\n\tvar /*fHighByte = flags & 0x1,*/ fExtSt = flags & 0x4, fRichSt = flags & 0x8;\n\tvar width = 1 + (flags & 0x1); // 0x0 -> utf8, 0x1 -> dbcs\n\tvar cRun = 0, cbExtRst;\n\tvar z = {};\n\tif(fRichSt) cRun = blob.read_shift(2);\n\tif(fExtSt) cbExtRst = blob.read_shift(4);\n\tvar encoding = width == 2 ? 'dbcs-cont' : 'sbcs-cont';\n\tvar msg = cch === 0 ? \"\" : blob.read_shift(cch, encoding);\n\tif(fRichSt) blob.l += 4 * cRun; //TODO: parse this\n\tif(fExtSt) blob.l += cbExtRst; //TODO: parse this\n\tz.t = msg;\n\tif(!fRichSt) { z.raw = \"\" + z.t + \"\"; z.r = z.t; }\n\tcurrent_codepage = cp;\n\treturn z;\n}\nfunction write_XLUnicodeRichExtendedString(xlstr/*:: :XLString, opts*/) {\n\tvar str = (xlstr.t||\"\"), nfmts = 1;\n\n\tvar hdr = new_buf(3 + (nfmts > 1 ? 2 : 0));\n\thdr.write_shift(2, str.length);\n\thdr.write_shift(1, (nfmts > 1 ? 0x08 : 0x00) | 0x01);\n\tif(nfmts > 1) hdr.write_shift(2, nfmts);\n\n\tvar otext = new_buf(2 * str.length);\n\totext.write_shift(2 * str.length, str, 'utf16le');\n\n\tvar out = [hdr, otext];\n\n\treturn bconcat(out);\n}\n\n/* 2.5.296 XLUnicodeStringNoCch */\nfunction parse_XLUnicodeStringNoCch(blob, cch, opts) {\n\tvar retval;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return blob.read_shift(cch, 'cpstr');\n\t\tif(opts.biff >= 12) return blob.read_shift(cch, 'dbcs-cont');\n\t}\n\tvar fHighByte = blob.read_shift(1);\n\tif(fHighByte===0) { retval = blob.read_shift(cch, 'sbcs-cont'); }\n\telse { retval = blob.read_shift(cch, 'dbcs-cont'); }\n\treturn retval;\n}\n\n/* 2.5.294 XLUnicodeString */\nfunction parse_XLUnicodeString(blob, length, opts) {\n\tvar cch = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn parse_XLUnicodeStringNoCch(blob, cch, opts);\n}\n/* BIFF5 override */\nfunction parse_XLUnicodeString2(blob, length, opts) {\n\tif(opts.biff > 5) return parse_XLUnicodeString(blob, length, opts);\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, (opts.biff <= 4 || !blob.lens ) ? 'cpstr' : 'sbcs-cont');\n}\n/* TODO: BIFF5 and lower, codepage awareness */\nfunction write_XLUnicodeString(str, opts, o) {\n\tif(!o) o = new_buf(3 + 2 * str.length);\n\to.write_shift(2, str.length);\n\to.write_shift(1, 1);\n\to.write_shift(31, str, 'utf16le');\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.61 ControlInfo */\nfunction parse_ControlInfo(blob/*::, length, opts*/) {\n\tvar flags = blob.read_shift(1);\n\tblob.l++;\n\tvar accel = blob.read_shift(2);\n\tblob.l += 2;\n\treturn [flags, accel];\n}\n\n/* [MS-OSHARED] 2.3.7.6 URLMoniker TODO: flags */\nfunction parse_URLMoniker(blob/*::, length, opts*/) {\n\tvar len = blob.read_shift(4), start = blob.l;\n\tvar extra = false;\n\tif(len > 24) {\n\t\t/* look ahead */\n\t\tblob.l += len - 24;\n\t\tif(blob.read_shift(16) === \"795881f43b1d7f48af2c825dc4852763\") extra = true;\n\t\tblob.l = start;\n\t}\n\tvar url = blob.read_shift((extra?len-24:len)>>1, 'utf16le').replace(chr0,\"\");\n\tif(extra) blob.l += 24;\n\treturn url;\n}\n\n/* [MS-OSHARED] 2.3.7.8 FileMoniker TODO: all fields */\nfunction parse_FileMoniker(blob/*::, length*/) {\n\tvar cAnti = blob.read_shift(2);\n\tvar preamble = \"\"; while(cAnti-- > 0) preamble += \"../\";\n\tvar ansiPath = blob.read_shift(0, 'lpstr-ansi');\n\tblob.l += 2; //var endServer = blob.read_shift(2);\n\tif(blob.read_shift(2) != 0xDEAD) throw new Error(\"Bad FileMoniker\");\n\tvar sz = blob.read_shift(4);\n\tif(sz === 0) return preamble + ansiPath.replace(/\\\\/g,\"/\");\n\tvar bytes = blob.read_shift(4);\n\tif(blob.read_shift(2) != 3) throw new Error(\"Bad FileMoniker\");\n\tvar unicodePath = blob.read_shift(bytes>>1, 'utf16le').replace(chr0,\"\");\n\treturn preamble + unicodePath;\n}\n\n/* [MS-OSHARED] 2.3.7.2 HyperlinkMoniker TODO: all the monikers */\nfunction parse_HyperlinkMoniker(blob, length) {\n\tvar clsid = blob.read_shift(16); length -= 16;\n\tswitch(clsid) {\n\t\tcase \"e0c9ea79f9bace118c8200aa004ba90b\": return parse_URLMoniker(blob, length);\n\t\tcase \"0303000000000000c000000000000046\": return parse_FileMoniker(blob, length);\n\t\tdefault: throw new Error(\"Unsupported Moniker \" + clsid);\n\t}\n}\n\n/* [MS-OSHARED] 2.3.7.9 HyperlinkString */\nfunction parse_HyperlinkString(blob/*::, length*/) {\n\tvar len = blob.read_shift(4);\n\tvar o = len > 0 ? blob.read_shift(len, 'utf16le').replace(chr0, \"\") : \"\";\n\treturn o;\n}\nfunction write_HyperlinkString(str/*:string*/, o) {\n\tif(!o) o = new_buf(6 + str.length * 2);\n\to.write_shift(4, 1 + str.length);\n\tfor(var i = 0; i < str.length; ++i) o.write_shift(2, str.charCodeAt(i));\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-OSHARED] 2.3.7.1 Hyperlink Object */\nfunction parse_Hyperlink(blob, length)/*:Hyperlink*/ {\n\tvar end = blob.l + length;\n\tvar sVer = blob.read_shift(4);\n\tif(sVer !== 2) throw new Error(\"Unrecognized streamVersion: \" + sVer);\n\tvar flags = blob.read_shift(2);\n\tblob.l += 2;\n\tvar displayName, targetFrameName, moniker, oleMoniker, Loc=\"\", guid, fileTime;\n\tif(flags & 0x0010) displayName = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0080) targetFrameName = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0101) moniker = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0001) oleMoniker = parse_HyperlinkMoniker(blob, end - blob.l);\n\tif(flags & 0x0008) Loc = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0020) guid = blob.read_shift(16);\n\tif(flags & 0x0040) fileTime = parse_FILETIME(blob/*, 8*/);\n\tblob.l = end;\n\tvar target = targetFrameName||moniker||oleMoniker||\"\";\n\tif(target && Loc) target+=\"#\"+Loc;\n\tif(!target) target = \"#\" + Loc;\n\tif((flags & 0x0002) && target.charAt(0) == \"/\" && target.charAt(1) != \"/\") target = \"file://\" + target;\n\tvar out = ({Target:target}/*:any*/);\n\tif(guid) out.guid = guid;\n\tif(fileTime) out.time = fileTime;\n\tif(displayName) out.Tooltip = displayName;\n\treturn out;\n}\nfunction write_Hyperlink(hl) {\n\tvar out = new_buf(512), i = 0;\n\tvar Target = hl.Target;\n\tif(Target.slice(0,7) == \"file://\") Target = Target.slice(7);\n\tvar hashidx = Target.indexOf(\"#\");\n\tvar F = hashidx > -1 ? 0x1f : 0x17;\n\tswitch(Target.charAt(0)) { case \"#\": F=0x1c; break; case \".\": F&=~2; break; }\n\tout.write_shift(4,2); out.write_shift(4, F);\n\tvar data = [8,6815827,6619237,4849780,83]; for(i = 0; i < data.length; ++i) out.write_shift(4, data[i]);\n\tif(F == 0x1C) {\n\t\tTarget = Target.slice(1);\n\t\twrite_HyperlinkString(Target, out);\n\t} else if(F & 0x02) {\n\t\tdata = \"e0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \");\n\t\tfor(i = 0; i < data.length; ++i) out.write_shift(1, parseInt(data[i], 16));\n\t\tvar Pretarget = hashidx > -1 ? Target.slice(0, hashidx) : Target;\n\t\tout.write_shift(4, 2*(Pretarget.length + 1));\n\t\tfor(i = 0; i < Pretarget.length; ++i) out.write_shift(2, Pretarget.charCodeAt(i));\n\t\tout.write_shift(2, 0);\n\t\tif(F & 0x08) write_HyperlinkString(hashidx > -1 ? Target.slice(hashidx+1): \"\", out);\n\t} else {\n\t\tdata = \"03 03 00 00 00 00 00 00 c0 00 00 00 00 00 00 46\".split(\" \");\n\t\tfor(i = 0; i < data.length; ++i) out.write_shift(1, parseInt(data[i], 16));\n\t\tvar P = 0;\n\t\twhile(Target.slice(P*3,P*3+3)==\"../\"||Target.slice(P*3,P*3+3)==\"..\\\\\") ++P;\n\t\tout.write_shift(2, P);\n\t\tout.write_shift(4, Target.length - 3 * P + 1);\n\t\tfor(i = 0; i < Target.length - 3 * P; ++i) out.write_shift(1, Target.charCodeAt(i + 3 * P) & 0xFF);\n\t\tout.write_shift(1, 0);\n\t\tout.write_shift(2, 0xFFFF);\n\t\tout.write_shift(2, 0xDEAD);\n\t\tfor(i = 0; i < 6; ++i) out.write_shift(4, 0);\n\t}\n\treturn out.slice(0, out.l);\n}\n\n/* 2.5.178 LongRGBA */\nfunction parse_LongRGBA(blob/*::, length*/) { var r = blob.read_shift(1), g = blob.read_shift(1), b = blob.read_shift(1), a = blob.read_shift(1); return [r,g,b,a]; }\n\n/* 2.5.177 LongRGB */\nfunction parse_LongRGB(blob, length) { var x = parse_LongRGBA(blob, length); x[3] = 0; return x; }\n\n\n/* [MS-XLS] 2.5.19 */\nfunction parse_XLSCell(blob, length, opts)/*:Cell*/ {\n\tvar rw = blob.read_shift(2); // 0-indexed\n\tvar col = blob.read_shift(2);\n\tvar ret = ({r:rw, c:col, ixfe:0}/*:any*/);\n\tif(opts && opts.biff == 2 || length == 7) {\n\t\t/* TODO: pass back flags */\n\t\tvar flags = blob.read_shift(1);\n\t\tret.ixfe = flags & 0x3F;\n\t\tblob.l += 2;\n\t\t/*\n\t\tvar ifntifmt = blob.read_shift(1);\n\t\tvar ifmt = ifntifmt & 0x3f, ifnt = ifntifmt >> 6;\n\t\tvar flags3 = blob.read_shift(1);\n\t\t*/\n\t} else ret.ixfe = blob.read_shift(2);\n\treturn ret;\n}\nfunction write_XLSCell(R/*:number*/, C/*:number*/, ixfe/*:?number*/, o) {\n\tif(!o) o = new_buf(6);\n\to.write_shift(2, R);\n\to.write_shift(2, C);\n\to.write_shift(2, ixfe||0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.134 */\nfunction parse_frtHeader(blob) {\n\tvar rt = blob.read_shift(2);\n\tvar flags = blob.read_shift(2); // TODO: parse these flags\n\tblob.l += 8;\n\treturn {type: rt, flags: flags};\n}\n\n\n\nfunction parse_OptXLUnicodeString(blob, length, opts) { return length === 0 ? \"\" : parse_XLUnicodeString2(blob, length, opts); }\n\n/* [MS-XLS] 2.5.344 */\nfunction parse_XTI(blob, length, opts) {\n\tvar w = opts.biff > 8 ? 4 : 2;\n\tvar iSupBook = blob.read_shift(w), itabFirst = blob.read_shift(w,'i'), itabLast = blob.read_shift(w,'i');\n\treturn [iSupBook, itabFirst, itabLast];\n}\n\n/* [MS-XLS] 2.5.218 */\nfunction parse_RkRec(blob) {\n\tvar ixfe = blob.read_shift(2);\n\tvar RK = parse_RkNumber(blob);\n\treturn [ixfe, RK];\n}\n\n/* [MS-XLS] 2.5.1 */\nfunction parse_AddinUdf(blob, length, opts) {\n\tblob.l += 4; length -= 4;\n\tvar l = blob.l + length;\n\tvar udfName = parse_ShortXLUnicodeString(blob, length, opts);\n\tvar cb = blob.read_shift(2);\n\tl -= blob.l;\n\tif(cb !== l) throw new Error(\"Malformed AddinUdf: padding = \" + l + \" != \" + cb);\n\tblob.l += cb;\n\treturn udfName;\n}\n\n/* [MS-XLS] 2.5.209 TODO: Check sizes */\nfunction parse_Ref8U(blob/*::, length*/) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(2);\n\tvar colLast = blob.read_shift(2);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\nfunction write_Ref8U(r/*:Range*/, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(2, r.s.r);\n\to.write_shift(2, r.e.r);\n\to.write_shift(2, r.s.c);\n\to.write_shift(2, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.211 */\nfunction parse_RefU(blob/*::, length*/) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(1);\n\tvar colLast = blob.read_shift(1);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\n\n/* [MS-XLS] 2.5.207 */\nvar parse_Ref = parse_RefU;\n\n/* [MS-XLS] 2.5.143 */\nfunction parse_FtCmo(blob/*::, length*/) {\n\tblob.l += 4;\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tblob.l+=12;\n\treturn [id, ot, flags];\n}\n\n/* [MS-XLS] 2.5.149 */\nfunction parse_FtNts(blob) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.l += 16; // GUID TODO\n\tout.fSharedNote = blob.read_shift(2);\n\tblob.l += 4;\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.142 */\nfunction parse_FtCf(blob) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.cf = blob.read_shift(2);\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.140 - 2.5.154 and friends */\nfunction parse_FtSkip(blob) { blob.l += 2; blob.l += blob.read_shift(2); }\nvar FtTab = {\n\t/*::[*/0x00/*::]*/: parse_FtSkip, /* FtEnd */\n\t/*::[*/0x04/*::]*/: parse_FtSkip, /* FtMacro */\n\t/*::[*/0x05/*::]*/: parse_FtSkip, /* FtButton */\n\t/*::[*/0x06/*::]*/: parse_FtSkip, /* FtGmo */\n\t/*::[*/0x07/*::]*/: parse_FtCf, /* FtCf */\n\t/*::[*/0x08/*::]*/: parse_FtSkip, /* FtPioGrbit */\n\t/*::[*/0x09/*::]*/: parse_FtSkip, /* FtPictFmla */\n\t/*::[*/0x0A/*::]*/: parse_FtSkip, /* FtCbls */\n\t/*::[*/0x0B/*::]*/: parse_FtSkip, /* FtRbo */\n\t/*::[*/0x0C/*::]*/: parse_FtSkip, /* FtSbs */\n\t/*::[*/0x0D/*::]*/: parse_FtNts, /* FtNts */\n\t/*::[*/0x0E/*::]*/: parse_FtSkip, /* FtSbsFmla */\n\t/*::[*/0x0F/*::]*/: parse_FtSkip, /* FtGboData */\n\t/*::[*/0x10/*::]*/: parse_FtSkip, /* FtEdoData */\n\t/*::[*/0x11/*::]*/: parse_FtSkip, /* FtRboData */\n\t/*::[*/0x12/*::]*/: parse_FtSkip, /* FtCblsData */\n\t/*::[*/0x13/*::]*/: parse_FtSkip, /* FtLbsData */\n\t/*::[*/0x14/*::]*/: parse_FtSkip, /* FtCblsFmla */\n\t/*::[*/0x15/*::]*/: parse_FtCmo\n};\nfunction parse_FtArray(blob, length/*::, ot*/) {\n\tvar tgt = blob.l + length;\n\tvar fts = [];\n\twhile(blob.l < tgt) {\n\t\tvar ft = blob.read_shift(2);\n\t\tblob.l-=2;\n\t\ttry {\n\t\t\tfts[ft] = FtTab[ft](blob, tgt - blob.l);\n\t\t} catch(e) { blob.l = tgt; return fts; }\n\t}\n\tif(blob.l != tgt) blob.l = tgt; //throw new Error(\"bad Object Ft-sequence\");\n\treturn fts;\n}\n\n/* --- 2.4 Records --- */\n\n/* [MS-XLS] 2.4.21 */\nfunction parse_BOF(blob, length) {\n\tvar o = {BIFFVer:0, dt:0};\n\to.BIFFVer = blob.read_shift(2); length -= 2;\n\tif(length >= 2) { o.dt = blob.read_shift(2); blob.l -= 2; }\n\tswitch(o.BIFFVer) {\n\t\tcase 0x0600: /* BIFF8 */\n\t\tcase 0x0500: /* BIFF5 */\n\t\tcase 0x0400: /* BIFF4 */\n\t\tcase 0x0300: /* BIFF3 */\n\t\tcase 0x0200: /* BIFF2 */\n\t\tcase 0x0002: case 0x0007: /* BIFF2 */\n\t\t\tbreak;\n\t\tdefault: if(length > 6) throw new Error(\"Unexpected BIFF Ver \" + o.BIFFVer);\n\t}\n\n\tblob.read_shift(length);\n\treturn o;\n}\nfunction write_BOF(wb/*:Workbook*/, t/*:number*/, o) {\n\tvar h = 0x0600, w = 16;\n\tswitch(o.bookType) {\n\t\tcase 'biff8': break;\n\t\tcase 'biff5': h = 0x0500; w = 8; break;\n\t\tcase 'biff4': h = 0x0004; w = 6; break;\n\t\tcase 'biff3': h = 0x0003; w = 6; break;\n\t\tcase 'biff2': h = 0x0002; w = 4; break;\n\t\tcase 'xla': break;\n\t\tdefault: throw new Error(\"unsupported BIFF version\");\n\t}\n\tvar out = new_buf(w);\n\tout.write_shift(2, h);\n\tout.write_shift(2, t);\n\tif(w > 4) out.write_shift(2, 0x7262);\n\tif(w > 6) out.write_shift(2, 0x07CD);\n\tif(w > 8) {\n\t\tout.write_shift(2, 0xC009);\n\t\tout.write_shift(2, 0x0001);\n\t\tout.write_shift(2, 0x0706);\n\t\tout.write_shift(2, 0x0000);\n\t}\n\treturn out;\n}\n\n\n/* [MS-XLS] 2.4.146 */\nfunction parse_InterfaceHdr(blob, length) {\n\tif(length === 0) return 0x04b0;\n\tif((blob.read_shift(2))!==0x04b0){/* empty */}\n\treturn 0x04b0;\n}\n\n\n/* [MS-XLS] 2.4.349 */\nfunction parse_WriteAccess(blob, length, opts) {\n\tif(opts.enc) { blob.l += length; return \"\"; }\n\tvar l = blob.l;\n\t// TODO: make sure XLUnicodeString doesnt overrun\n\tvar UserName = parse_XLUnicodeString2(blob, 0, opts);\n\tblob.read_shift(length + l - blob.l);\n\treturn UserName;\n}\nfunction write_WriteAccess(s/*:string*/, opts) {\n\tvar b8 = !opts || opts.biff == 8;\n\tvar o = new_buf(b8 ? 112 : 54);\n\to.write_shift(opts.biff == 8 ? 2 : 1, 7);\n\tif(b8) o.write_shift(1, 0);\n\to.write_shift(4, 0x33336853);\n\to.write_shift(4, (0x00534A74 | (b8 ? 0 : 0x20000000)));\n\twhile(o.l < o.length) o.write_shift(1, (b8 ? 0 : 32));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.351 */\nfunction parse_WsBool(blob, length, opts) {\n\tvar flags = opts && opts.biff == 8 || length == 2 ? blob.read_shift(2) : (blob.l += length, 0);\n\treturn { fDialog: flags & 0x10, fBelow: flags & 0x40, fRight: flags & 0x80 };\n}\n\n/* [MS-XLS] 2.4.28 */\nfunction parse_BoundSheet8(blob, length, opts) {\n\tvar name = \"\";\n\tif(opts.biff == 4) {\n\t\tname = parse_ShortXLUnicodeString(blob, 0, opts);\n\t\tif(name.length === 0) name = \"Sheet1\";\n\t\treturn { name:name };\n\t}\n\tvar pos = blob.read_shift(4);\n\tvar hidden = blob.read_shift(1) & 0x03;\n\tvar dt = blob.read_shift(1);\n\tswitch(dt) {\n\t\tcase 0: dt = 'Worksheet'; break;\n\t\tcase 1: dt = 'Macrosheet'; break;\n\t\tcase 2: dt = 'Chartsheet'; break;\n\t\tcase 6: dt = 'VBAModule'; break;\n\t}\n\tname = parse_ShortXLUnicodeString(blob, 0, opts);\n\tif(name.length === 0) name = \"Sheet1\";\n\treturn { pos:pos, hs:hidden, dt:dt, name:name };\n}\nfunction write_BoundSheet8(data, opts) {\n\tvar w = (!opts || opts.biff >= 8 ? 2 : 1);\n\tvar o = new_buf(8 + w * data.name.length);\n\to.write_shift(4, data.pos);\n\to.write_shift(1, data.hs || 0);\n\to.write_shift(1, data.dt);\n\to.write_shift(1, data.name.length);\n\tif(opts.biff >= 8) o.write_shift(1, 1);\n\to.write_shift(w * data.name.length, data.name, opts.biff < 8 ? 'sbcs' : 'utf16le');\n\tvar out = o.slice(0, o.l);\n\tout.l = o.l; return out;\n}\n\n/* [MS-XLS] 2.4.265 TODO */\nfunction parse_SST(blob, length)/*:SST*/ {\n\tvar end = blob.l + length;\n\tvar cnt = blob.read_shift(4);\n\tvar ucnt = blob.read_shift(4);\n\tvar strs/*:SST*/ = ([]/*:any*/);\n\tfor(var i = 0; i != ucnt && blob.l < end; ++i) {\n\t\tstrs.push(parse_XLUnicodeRichExtendedString(blob));\n\t}\n\tstrs.Count = cnt; strs.Unique = ucnt;\n\treturn strs;\n}\nfunction write_SST(sst, opts) {\n\tvar header = new_buf(8);\n\theader.write_shift(4, sst.Count);\n\theader.write_shift(4, sst.Unique);\n\tvar strs = [];\n\tfor(var j = 0; j < sst.length; ++j) strs[j] = write_XLUnicodeRichExtendedString(sst[j], opts);\n\tvar o = bconcat([header].concat(strs));\n\t/*::(*/o/*:: :any)*/.parts = [header.length].concat(strs.map(function(str) { return str.length; }));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.107 */\nfunction parse_ExtSST(blob, length) {\n\tvar extsst = {};\n\textsst.dsst = blob.read_shift(2);\n\tblob.l += length-2;\n\treturn extsst;\n}\n\n\n/* [MS-XLS] 2.4.221 TODO: check BIFF2-4 */\nfunction parse_Row(blob) {\n\tvar z = ({}/*:any*/);\n\tz.r = blob.read_shift(2);\n\tz.c = blob.read_shift(2);\n\tz.cnt = blob.read_shift(2) - z.c;\n\tvar miyRw = blob.read_shift(2);\n\tblob.l += 4; // reserved(2), unused(2)\n\tvar flags = blob.read_shift(1); // various flags\n\tblob.l += 3; // reserved(8), ixfe(12), flags(4)\n\tif(flags & 0x07) z.level = flags & 0x07;\n\t// collapsed: flags & 0x10\n\tif(flags & 0x20) z.hidden = true;\n\tif(flags & 0x40) z.hpt = miyRw / 20;\n\treturn z;\n}\n\n\n/* [MS-XLS] 2.4.125 */\nfunction parse_ForceFullCalculation(blob) {\n\tvar header = parse_frtHeader(blob);\n\tif(header.type != 0x08A3) throw new Error(\"Invalid Future Record \" + header.type);\n\tvar fullcalc = blob.read_shift(4);\n\treturn fullcalc !== 0x0;\n}\n\n\n\n\n\n/* [MS-XLS] 2.4.215 rt */\nfunction parse_RecalcId(blob) {\n\tblob.read_shift(2);\n\treturn blob.read_shift(4);\n}\n\n/* [MS-XLS] 2.4.87 */\nfunction parse_DefaultRowHeight(blob, length, opts) {\n\tvar f = 0;\n\tif(!(opts && opts.biff == 2)) {\n\t\tf = blob.read_shift(2);\n\t}\n\tvar miyRw = blob.read_shift(2);\n\tif((opts && opts.biff == 2)) {\n\t\tf = 1 - (miyRw >> 15); miyRw &= 0x7fff;\n\t}\n\tvar fl = {Unsynced:f&1,DyZero:(f&2)>>1,ExAsc:(f&4)>>2,ExDsc:(f&8)>>3};\n\treturn [fl, miyRw];\n}\n\n/* [MS-XLS] 2.4.345 TODO */\nfunction parse_Window1(blob) {\n\tvar xWn = blob.read_shift(2), yWn = blob.read_shift(2), dxWn = blob.read_shift(2), dyWn = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), iTabCur = blob.read_shift(2), iTabFirst = blob.read_shift(2);\n\tvar ctabSel = blob.read_shift(2), wTabRatio = blob.read_shift(2);\n\treturn { Pos: [xWn, yWn], Dim: [dxWn, dyWn], Flags: flags, CurTab: iTabCur,\n\t\tFirstTab: iTabFirst, Selected: ctabSel, TabRatio: wTabRatio };\n}\nfunction write_Window1(/*::opts*/) {\n\tvar o = new_buf(18);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0x7260);\n\to.write_shift(2, 0x44c0);\n\to.write_shift(2, 0x38);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 1);\n\to.write_shift(2, 0x01f4);\n\treturn o;\n}\n/* [MS-XLS] 2.4.346 TODO */\nfunction parse_Window2(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff < 5) return {};\n\tvar f = blob.read_shift(2);\n\treturn { RTL: f & 0x40 };\n}\nfunction write_Window2(view) {\n\tvar o = new_buf(18), f = 0x6b6;\n\tif(view && view.RTL) f |= 0x40;\n\to.write_shift(2, f);\n\to.write_shift(4, 0);\n\to.write_shift(4, 64);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.189 TODO */\nfunction parse_Pane(/*blob, length, opts*/) {\n}\n\n/* [MS-XLS] 2.4.122 TODO */\nfunction parse_Font(blob, length, opts) {\n\tvar o/*:any*/ = {\n\t\tdyHeight: blob.read_shift(2),\n\t\tfl: blob.read_shift(2)\n\t};\n\tswitch((opts && opts.biff) || 8) {\n\t\tcase 2: break;\n\t\tcase 3: case 4: blob.l += 2; break;\n\t\tdefault: blob.l += 10; break;\n\t}\n\to.name = parse_ShortXLUnicodeString(blob, 0, opts);\n\treturn o;\n}\nfunction write_Font(data, opts) {\n\tvar name = data.name || \"Arial\";\n\tvar b5 = (opts && (opts.biff == 5)), w = (b5 ? (15 + name.length) : (16 + 2 * name.length));\n\tvar o = new_buf(w);\n\to.write_shift(2, (data.sz || 12) * 20);\n\to.write_shift(4, 0);\n\to.write_shift(2, 400);\n\to.write_shift(4, 0);\n\to.write_shift(2, 0);\n\to.write_shift(1, name.length);\n\tif(!b5) o.write_shift(1, 1);\n\to.write_shift((b5 ? 1 : 2) * name.length, name, (b5 ? \"sbcs\" : \"utf16le\"));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.149 */\nfunction parse_LabelSst(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, length, opts);\n\tcell.isst = blob.read_shift(4);\n\treturn cell;\n}\nfunction write_LabelSst(R/*:number*/, C/*:number*/, v/*:number*/, os/*:number*/ /*::, opts*/) {\n\tvar o = new_buf(10);\n\twrite_XLSCell(R, C, os, o);\n\to.write_shift(4, v);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.148 */\nfunction parse_Label(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 2) opts.biff = 5;\n\tvar target = blob.l + length;\n\tvar cell = parse_XLSCell(blob, length, opts);\n\tvar str = parse_XLUnicodeString(blob, target - blob.l, opts);\n\tcell.val = str;\n\treturn cell;\n}\nfunction write_Label(R/*:number*/, C/*:number*/, v/*:string*/, os/*:number*/, opts) {\n\tvar b8 = !opts || opts.biff == 8;\n\tvar o = new_buf(6 + 2 + (+b8) + (1 + b8) * v.length);\n\twrite_XLSCell(R, C, os, o);\n\to.write_shift(2, v.length);\n\tif(b8) o.write_shift(1, 1);\n\to.write_shift((1 + b8) * v.length, v, b8 ? 'utf16le' : 'sbcs');\n\treturn o;\n}\n\n\n/* [MS-XLS] 2.4.126 Number Formats */\nfunction parse_Format(blob, length, opts) {\n\tvar numFmtId = blob.read_shift(2);\n\tvar fmtstr = parse_XLUnicodeString2(blob, 0, opts);\n\treturn [numFmtId, fmtstr];\n}\nfunction write_Format(i/*:number*/, f/*:string*/, opts, o) {\n\tvar b5 = (opts && (opts.biff == 5));\n\tif(!o) o = new_buf(b5 ? (3 + f.length) : (5 + 2 * f.length));\n\to.write_shift(2, i);\n\to.write_shift((b5 ? 1 : 2), f.length);\n\tif(!b5) o.write_shift(1, 1);\n\to.write_shift((b5 ? 1 : 2) * f.length, f, (b5 ? 'sbcs' : 'utf16le'));\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(out.l == null) out.l = out.length;\n\treturn out;\n}\nvar parse_BIFF2Format = parse_XLUnicodeString2;\nfunction write_BIFF2Format(f/*:string*/) {\n\tvar o = new_buf(1 + f.length);\n\to.write_shift(1, f.length);\n\to.write_shift(f.length, f, \"sbcs\");\n\treturn o;\n}\nfunction write_BIFF4Format(f/*:string*/) {\n\tvar o = new_buf(3 + f.length);\n\to.l += 2;\n\to.write_shift(1, f.length);\n\to.write_shift(f.length, f, \"sbcs\");\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.90 */\nfunction parse_Dimensions(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar w = opts.biff == 8 || !opts.biff ? 4 : 2;\n\tvar r = blob.read_shift(w), R = blob.read_shift(w);\n\tvar c = blob.read_shift(2), C = blob.read_shift(2);\n\tblob.l = end;\n\treturn {s: {r:r, c:c}, e: {r:R, c:C}};\n}\nfunction write_Dimensions(range, opts) {\n\tvar w = opts.biff == 8 || !opts.biff ? 4 : 2;\n\tvar o = new_buf(2*w + 6);\n\to.write_shift(w, range.s.r);\n\to.write_shift(w, range.e.r + 1);\n\to.write_shift(2, range.s.c);\n\to.write_shift(2, range.e.c + 1);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.220 */\nfunction parse_RK(blob) {\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrec = parse_RkRec(blob);\n\treturn {r:rw, c:col, ixfe:rkrec[0], rknum:rkrec[1]};\n}\n\n/* [MS-XLS] 2.4.175 */\nfunction parse_MulRk(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrecs = [];\n\twhile(blob.l < target) rkrecs.push(parse_RkRec(blob));\n\tif(blob.l !== target) throw new Error(\"MulRK read error\");\n\tvar lastcol = blob.read_shift(2);\n\tif(rkrecs.length != lastcol - col + 1) throw new Error(\"MulRK length mismatch\");\n\treturn {r:rw, c:col, C:lastcol, rkrec:rkrecs};\n}\n/* [MS-XLS] 2.4.174 */\nfunction parse_MulBlank(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar ixfes = [];\n\twhile(blob.l < target) ixfes.push(blob.read_shift(2));\n\tif(blob.l !== target) throw new Error(\"MulBlank read error\");\n\tvar lastcol = blob.read_shift(2);\n\tif(ixfes.length != lastcol - col + 1) throw new Error(\"MulBlank length mismatch\");\n\treturn {r:rw, c:col, C:lastcol, ixfe:ixfes};\n}\n\n/* [MS-XLS] 2.5.20 2.5.249 TODO: interpret values here */\nfunction parse_CellStyleXF(blob, length, style, opts) {\n\tvar o = {};\n\tvar a = blob.read_shift(4), b = blob.read_shift(4);\n\tvar c = blob.read_shift(4), d = blob.read_shift(2);\n\to.patternType = XLSFillPattern[c >> 26];\n\n\tif(!opts.cellStyles) return o;\n\to.alc = a & 0x07;\n\to.fWrap = (a >> 3) & 0x01;\n\to.alcV = (a >> 4) & 0x07;\n\to.fJustLast = (a >> 7) & 0x01;\n\to.trot = (a >> 8) & 0xFF;\n\to.cIndent = (a >> 16) & 0x0F;\n\to.fShrinkToFit = (a >> 20) & 0x01;\n\to.iReadOrder = (a >> 22) & 0x02;\n\to.fAtrNum = (a >> 26) & 0x01;\n\to.fAtrFnt = (a >> 27) & 0x01;\n\to.fAtrAlc = (a >> 28) & 0x01;\n\to.fAtrBdr = (a >> 29) & 0x01;\n\to.fAtrPat = (a >> 30) & 0x01;\n\to.fAtrProt = (a >> 31) & 0x01;\n\n\to.dgLeft = b & 0x0F;\n\to.dgRight = (b >> 4) & 0x0F;\n\to.dgTop = (b >> 8) & 0x0F;\n\to.dgBottom = (b >> 12) & 0x0F;\n\to.icvLeft = (b >> 16) & 0x7F;\n\to.icvRight = (b >> 23) & 0x7F;\n\to.grbitDiag = (b >> 30) & 0x03;\n\n\to.icvTop = c & 0x7F;\n\to.icvBottom = (c >> 7) & 0x7F;\n\to.icvDiag = (c >> 14) & 0x7F;\n\to.dgDiag = (c >> 21) & 0x0F;\n\n\to.icvFore = d & 0x7F;\n\to.icvBack = (d >> 7) & 0x7F;\n\to.fsxButton = (d >> 14) & 0x01;\n\treturn o;\n}\n//function parse_CellXF(blob, length, opts) {return parse_CellStyleXF(blob,length,0, opts);}\n//function parse_StyleXF(blob, length, opts) {return parse_CellStyleXF(blob,length,1, opts);}\n\n/* [MS-XLS] 2.4.353 TODO: actually do this right */\nfunction parse_XF(blob, length, opts) {\n\tvar o = {};\n\to.ifnt = blob.read_shift(2); o.numFmtId = blob.read_shift(2); o.flags = blob.read_shift(2);\n\to.fStyle = (o.flags >> 2) & 0x01;\n\tlength -= 6;\n\to.data = parse_CellStyleXF(blob, length, o.fStyle, opts);\n\treturn o;\n}\nfunction write_XF(data, ixfeP, opts, o) {\n\tvar b5 = (opts && (opts.biff == 5));\n\tif(!o) o = new_buf(b5 ? 16 : 20);\n\to.write_shift(2, 0);\n\tif(data.style) {\n\t\to.write_shift(2, (data.numFmtId||0));\n\t\to.write_shift(2, 0xFFF4);\n\t} else {\n\t\to.write_shift(2, (data.numFmtId||0));\n\t\to.write_shift(2, (ixfeP<<4));\n\t}\n\tvar f = 0;\n\tif(data.numFmtId > 0 && b5) f |= 0x0400;\n\to.write_shift(4, f);\n\to.write_shift(4, 0);\n\tif(!b5) o.write_shift(4, 0);\n\to.write_shift(2, 0);\n\treturn o;\n}\nfunction parse_BIFF2XF(blob/*::, length, opts*/) {\n\tvar o = {};\n\to.ifnt = blob.read_shift(1); blob.l++; o.flags = blob.read_shift(1);\n\to.numFmtId = o.flags & 0x3F; o.flags>>=6;\n\to.fStyle = 0;\n\to.data = {}; // TODO\n\treturn o;\n}\nfunction write_BIFF2XF(xf) {\n\tvar o = new_buf(4);\n\to.l+=2;\n\to.write_shift(1, xf.numFmtId);\n\to.l++;\n\treturn o;\n}\nfunction write_BIFF3XF(xf) {\n\tvar o = new_buf(12);\n\to.l++;\n\to.write_shift(1, xf.numFmtId);\n\to.l += 10;\n\treturn o;\n}\n/* TODO: check other fields */\nvar write_BIFF4XF = write_BIFF3XF;\nfunction parse_BIFF3XF(blob/*::, length, opts*/) {\n\tvar o = {};\n\to.ifnt = blob.read_shift(1); o.numFmtId = blob.read_shift(1); o.flags = blob.read_shift(2);\n\to.fStyle = (o.flags >> 2) & 0x01;\n\to.data = {}; // TODO\n\treturn o;\n}\nfunction parse_BIFF4XF(blob/*::, length, opts*/) {\n\tvar o = {};\n\to.ifnt = blob.read_shift(1); o.numFmtId = blob.read_shift(1); o.flags = blob.read_shift(2);\n\to.fStyle = (o.flags >> 2) & 0x01;\n\to.data = {}; // TODO\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.134 */\nfunction parse_Guts(blob) {\n\tblob.l += 4;\n\tvar out = [blob.read_shift(2), blob.read_shift(2)];\n\tif(out[0] !== 0) out[0]--;\n\tif(out[1] !== 0) out[1]--;\n\tif(out[0] > 7 || out[1] > 7) throw new Error(\"Bad Gutters: \" + out.join(\"|\"));\n\treturn out;\n}\nfunction write_Guts(guts/*:Array*/) {\n\tvar o = new_buf(8);\n\to.write_shift(4, 0);\n\to.write_shift(2, guts[0] ? guts[0] + 1 : 0);\n\to.write_shift(2, guts[1] ? guts[1] + 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.24 */\nfunction parse_BoolErr(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, 6, opts);\n\tvar val = parse_Bes(blob, 2);\n\tcell.val = val;\n\tcell.t = (val === true || val === false) ? 'b' : 'e';\n\treturn cell;\n}\nfunction write_BoolErr(R/*:number*/, C/*:number*/, v, os/*:number*/, opts, t/*:string*/) {\n\tvar o = new_buf(8);\n\twrite_XLSCell(R, C, os, o);\n\twrite_Bes(v, t, o);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.180 Number */\nfunction parse_Number(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 2) opts.biff = 5;\n\tvar cell = parse_XLSCell(blob, 6, opts);\n\tvar xnum = parse_Xnum(blob, 8);\n\tcell.val = xnum;\n\treturn cell;\n}\nfunction write_Number(R/*:number*/, C/*:number*/, v, os/*:: :number, opts*/) {\n\tvar o = new_buf(14);\n\twrite_XLSCell(R, C, os, o);\n\twrite_Xnum(v, o);\n\treturn o;\n}\n\nvar parse_XLHeaderFooter = parse_OptXLUnicodeString; // TODO: parse 2.4.136\n\n/* [MS-XLS] 2.4.271 */\nfunction parse_SupBook(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar ctab = blob.read_shift(2);\n\tvar cch = blob.read_shift(2);\n\topts.sbcch = cch;\n\tif(cch == 0x0401 || cch == 0x3A01) return [cch, ctab];\n\tif(cch < 0x01 || cch >0xff) throw new Error(\"Unexpected SupBook type: \"+cch);\n\tvar virtPath = parse_XLUnicodeStringNoCch(blob, cch);\n\t/* TODO: 2.5.277 Virtual Path */\n\tvar rgst = [];\n\twhile(end > blob.l) rgst.push(parse_XLUnicodeString(blob));\n\treturn [cch, ctab, virtPath, rgst];\n}\n\n/* [MS-XLS] 2.4.105 TODO */\nfunction parse_ExternName(blob, length, opts) {\n\tvar flags = blob.read_shift(2);\n\tvar body;\n\tvar o = ({\n\t\tfBuiltIn: flags & 0x01,\n\t\tfWantAdvise: (flags >>> 1) & 0x01,\n\t\tfWantPict: (flags >>> 2) & 0x01,\n\t\tfOle: (flags >>> 3) & 0x01,\n\t\tfOleLink: (flags >>> 4) & 0x01,\n\t\tcf: (flags >>> 5) & 0x3FF,\n\t\tfIcon: flags >>> 15 & 0x01\n\t}/*:any*/);\n\tif(opts.sbcch === 0x3A01) body = parse_AddinUdf(blob, length-2, opts);\n\t//else throw new Error(\"unsupported SupBook cch: \" + opts.sbcch);\n\to.body = body || blob.read_shift(length-2);\n\tif(typeof body === \"string\") o.Name = body;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.150 TODO */\nfunction parse_Lbl(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar flags = blob.read_shift(2);\n\tvar chKey = blob.read_shift(1);\n\tvar cch = blob.read_shift(1);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar itab = 0;\n\tif(!opts || opts.biff >= 5) {\n\t\tif(opts.biff != 5) blob.l += 2;\n\t\titab = blob.read_shift(2);\n\t\tif(opts.biff == 5) blob.l += 2;\n\t\tblob.l += 4;\n\t}\n\tvar name = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tif(flags & 0x20) name = XLSLblBuiltIn[name.charCodeAt(0)];\n\tvar npflen = target - blob.l; if(opts && opts.biff == 2) --npflen;\n\t/*jshint -W018 */\n\tvar rgce = (target == blob.l || cce === 0 || !(npflen > 0)) ? [] : parse_NameParsedFormula(blob, npflen, opts, cce);\n\t/*jshint +W018 */\n\treturn {\n\t\tchKey: chKey,\n\t\tName: name,\n\t\titab: itab,\n\t\trgce: rgce\n\t};\n}\n\n/* [MS-XLS] 2.4.106 TODO: legacy record filename encoding */\nfunction parse_ExternSheet(blob, length, opts) {\n\tif(opts.biff < 8) return parse_BIFF5ExternSheet(blob, length, opts);\n\t/* see issue 2907 */\n\tif(!(opts.biff > 8) && (length == blob[blob.l] + (blob[blob.l+1] == 0x03 ? 1 : 0) + 1)) return parse_BIFF5ExternSheet(blob, length, opts);\n\tvar o = [], target = blob.l + length, len = blob.read_shift(opts.biff > 8 ? 4 : 2);\n\twhile(len-- !== 0) o.push(parse_XTI(blob, opts.biff > 8 ? 12 : 6, opts));\n\t\t// [iSupBook, itabFirst, itabLast];\n\tif(blob.l != target) throw new Error(\"Bad ExternSheet: \" + blob.l + \" != \" + target);\n\treturn o;\n}\nfunction parse_BIFF5ExternSheet(blob, length, opts) {\n\tif(blob[blob.l + 1] == 0x03) blob[blob.l]++;\n\tvar o = parse_ShortXLUnicodeString(blob, length, opts);\n\treturn o.charCodeAt(0) == 0x03 ? o.slice(1) : o;\n}\n\n/* [MS-XLS] 2.4.176 TODO: check older biff */\nfunction parse_NameCmt(blob, length, opts) {\n\tif(opts.biff < 8) { blob.l += length; return; }\n\tvar cchName = blob.read_shift(2);\n\tvar cchComment = blob.read_shift(2);\n\tvar name = parse_XLUnicodeStringNoCch(blob, cchName, opts);\n\tvar comment = parse_XLUnicodeStringNoCch(blob, cchComment, opts);\n\treturn [name, comment];\n}\n\n/* [MS-XLS] 2.4.260 */\nfunction parse_ShrFmla(blob, length, opts) {\n\tvar ref = parse_RefU(blob, 6);\n\tblob.l++;\n\tvar cUse = blob.read_shift(1);\n\tlength -= 8;\n\treturn [parse_SharedParsedFormula(blob, length, opts), cUse, ref];\n}\n\n/* [MS-XLS] 2.4.4 TODO */\nfunction parse_Array(blob, length, opts) {\n\tvar ref = parse_Ref(blob, 6);\n\t/* TODO: fAlwaysCalc */\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l ++; length -= 7; break;\n\t\tcase 3: case 4: blob.l += 2; length -= 8; break;\n\t\tdefault: blob.l += 6; length -= 12;\n\t}\n\treturn [ref, parse_ArrayParsedFormula(blob, length, opts, ref)];\n}\n\n/* [MS-XLS] 2.4.173 */\nfunction parse_MTRSettings(blob) {\n\tvar fMTREnabled = blob.read_shift(4) !== 0x00;\n\tvar fUserSetThreadCount = blob.read_shift(4) !== 0x00;\n\tvar cUserThreadCount = blob.read_shift(4);\n\treturn [fMTREnabled, fUserSetThreadCount, cUserThreadCount];\n}\n\n/* [MS-XLS] 2.5.186 */\nfunction parse_NoteSh(blob, length, opts) {\n\tvar row = blob.read_shift(2), col = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), idObj = blob.read_shift(2);\n\tvar stAuthor = parse_XLUnicodeString2(blob, 0, opts);\n\treturn [{r:row,c:col}, stAuthor, idObj, flags];\n}\n\n/* [MS-XLS] 2.4.179 */\nfunction parse_Note(blob, length, opts) {\n\tif(opts && (opts.biff < 8)) {\n\t\tvar row = blob.read_shift(2), col = blob.read_shift(2);\n\t\tif(row == 0xFFFF || row == -1) return; // TODO: test continuation\n\t\tvar cch = blob.read_shift(2);\n\t\tvar cmnt = blob.read_shift(Math.min(cch,2048), 'cpstr');\n\t\treturn [{r:row, c:col}, cmnt];\n\t}\n\t/* TODO: Support revisions */\n\treturn parse_NoteSh(blob, length, opts);\n}\nfunction write_NOTE_BIFF2(text/*:string*/, R/*:number*/, C/*:number*/, len/*?:number*/) {\n\tvar o = new_buf(6 + (len || text.length));\n\to.write_shift(2, R);\n\to.write_shift(2, C);\n\to.write_shift(2, len || text.length);\n\to.write_shift(text.length, text, \"sbcs\");\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.168 */\nfunction parse_MergeCells(blob, length)/*:Array*/ {\n\tvar merges/*:Array*/ = [];\n\tvar cmcs = blob.read_shift(2);\n\twhile (cmcs--) merges.push(parse_Ref8U(blob,length));\n\treturn merges;\n}\nfunction write_MergeCells(merges/*:Array*/) {\n\tvar o = new_buf(2 + merges.length * 8);\n\to.write_shift(2, merges.length);\n\tfor(var i = 0; i < merges.length; ++i) write_Ref8U(merges[i], o);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.181 TODO: parse all the things! */\nfunction parse_Obj(blob, length, opts) {\n\tif(opts && opts.biff < 8) return parse_BIFF5Obj(blob, length, opts);\n\tvar cmo = parse_FtCmo(blob, 22); // id, ot, flags\n\tvar fts = parse_FtArray(blob, length-22, cmo[1]);\n\treturn { cmo: cmo, ft:fts };\n}\n/* from older spec */\nvar parse_BIFF5OT = {\n0x08: function(blob, length) {\n\tvar tgt = blob.l + length;\n\tblob.l += 10; // todo\n\tvar cf = blob.read_shift(2);\n\tblob.l += 4;\n\tblob.l += 2; //var cbPictFmla = blob.read_shift(2);\n\tblob.l += 2;\n\tblob.l += 2; //var grbit = blob.read_shift(2);\n\tblob.l += 4;\n\tvar cchName = blob.read_shift(1);\n\tblob.l += cchName; // TODO: stName\n\tblob.l = tgt; // TODO: fmla\n\treturn { fmt:cf };\n}\n};\n\nfunction parse_BIFF5Obj(blob, length, opts) {\n\tblob.l += 4; //var cnt = blob.read_shift(4);\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar grbit = blob.read_shift(2);\n\tblob.l += 2; //var colL = blob.read_shift(2);\n\tblob.l += 2; //var dxL = blob.read_shift(2);\n\tblob.l += 2; //var rwT = blob.read_shift(2);\n\tblob.l += 2; //var dyT = blob.read_shift(2);\n\tblob.l += 2; //var colR = blob.read_shift(2);\n\tblob.l += 2; //var dxR = blob.read_shift(2);\n\tblob.l += 2; //var rwB = blob.read_shift(2);\n\tblob.l += 2; //var dyB = blob.read_shift(2);\n\tblob.l += 2; //var cbMacro = blob.read_shift(2);\n\tblob.l += 6;\n\tlength -= 36;\n\tvar fts = [];\n\tfts.push((parse_BIFF5OT[ot]||parsenoop)(blob, length, opts));\n\treturn { cmo: [id, ot, grbit], ft:fts };\n}\n\n/* [MS-XLS] 2.4.329 TODO: parse properly */\nfunction parse_TxO(blob, length, opts) {\n\tvar s = blob.l;\n\tvar texts = \"\";\ntry {\n\tblob.l += 4;\n\tvar ot = (opts.lastobj||{cmo:[0,0]}).cmo[1];\n\tvar controlInfo; // eslint-disable-line no-unused-vars\n\tif([0,5,7,11,12,14].indexOf(ot) == -1) blob.l += 6;\n\telse controlInfo = parse_ControlInfo(blob, 6, opts); // eslint-disable-line no-unused-vars\n\tvar cchText = blob.read_shift(2);\n\t/*var cbRuns = */blob.read_shift(2);\n\t/*var ifntEmpty = */parseuint16(blob, 2);\n\tvar len = blob.read_shift(2);\n\tblob.l += len;\n\t//var fmla = parse_ObjFmla(blob, s + length - blob.l);\n\n\tfor(var i = 1; i < blob.lens.length-1; ++i) {\n\t\tif(blob.l-s != blob.lens[i]) throw new Error(\"TxO: bad continue record\");\n\t\tvar hdr = blob[blob.l];\n\t\tvar t = parse_XLUnicodeStringNoCch(blob, blob.lens[i+1]-blob.lens[i]-1);\n\t\ttexts += t;\n\t\tif(texts.length >= (hdr ? cchText : 2*cchText)) break;\n\t}\n\tif(texts.length !== cchText && texts.length !== cchText*2) {\n\t\tthrow new Error(\"cchText: \" + cchText + \" != \" + texts.length);\n\t}\n\n\tblob.l = s + length;\n\t/* [MS-XLS] 2.5.272 TxORuns */\n//\tvar rgTxoRuns = [];\n//\tfor(var j = 0; j != cbRuns/8-1; ++j) blob.l += 8;\n//\tvar cchText2 = blob.read_shift(2);\n//\tif(cchText2 !== cchText) throw new Error(\"TxOLastRun mismatch: \" + cchText2 + \" \" + cchText);\n//\tblob.l += 6;\n//\tif(s + length != blob.l) throw new Error(\"TxO \" + (s + length) + \", at \" + blob.l);\n\treturn { t: texts };\n} catch(e) { blob.l = s + length; return { t: texts }; }\n}\n\n/* [MS-XLS] 2.4.140 */\nfunction parse_HLink(blob, length) {\n\tvar ref = parse_Ref8U(blob, 8);\n\tblob.l += 16; /* CLSID */\n\tvar hlink = parse_Hyperlink(blob, length-24);\n\treturn [ref, hlink];\n}\nfunction write_HLink(hl) {\n\tvar O = new_buf(24);\n\tvar ref = decode_cell(hl[0]);\n\tO.write_shift(2, ref.r); O.write_shift(2, ref.r);\n\tO.write_shift(2, ref.c); O.write_shift(2, ref.c);\n\tvar clsid = \"d0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \");\n\tfor(var i = 0; i < 16; ++i) O.write_shift(1, parseInt(clsid[i], 16));\n\treturn bconcat([O, write_Hyperlink(hl[1])]);\n}\n\n\n/* [MS-XLS] 2.4.141 */\nfunction parse_HLinkTooltip(blob, length) {\n\tblob.read_shift(2);\n\tvar ref = parse_Ref8U(blob, 8);\n\tvar wzTooltip = blob.read_shift((length-10)/2, 'dbcs-cont');\n\twzTooltip = wzTooltip.replace(chr0,\"\");\n\treturn [ref, wzTooltip];\n}\nfunction write_HLinkTooltip(hl) {\n\tvar TT = hl[1].Tooltip;\n\tvar O = new_buf(10 + 2 * (TT.length + 1));\n\tO.write_shift(2, 0x0800);\n\tvar ref = decode_cell(hl[0]);\n\tO.write_shift(2, ref.r); O.write_shift(2, ref.r);\n\tO.write_shift(2, ref.c); O.write_shift(2, ref.c);\n\tfor(var i = 0; i < TT.length; ++i) O.write_shift(2, TT.charCodeAt(i));\n\tO.write_shift(2, 0);\n\treturn O;\n}\n\n/* [MS-XLS] 2.4.63 */\nfunction parse_Country(blob)/*:[string|number, string|number]*/ {\n\tvar o = [0,0], d;\n\td = blob.read_shift(2); o[0] = CountryEnum[d] || d;\n\td = blob.read_shift(2); o[1] = CountryEnum[d] || d;\n\treturn o;\n}\nfunction write_Country(o) {\n\tif(!o) o = new_buf(4);\n\to.write_shift(2, 0x01);\n\to.write_shift(2, 0x01);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.50 ClrtClient */\nfunction parse_ClrtClient(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.188 */\nfunction parse_Palette(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.354 */\nfunction parse_XFCRC(blob) {\n\tblob.l += 2;\n\tvar o = {cxfs:0, crc:0};\n\to.cxfs = blob.read_shift(2);\n\to.crc = blob.read_shift(4);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.53 TODO: parse flags */\n/* [MS-XLSB] 2.4.323 TODO: parse flags */\nfunction parse_ColInfo(blob, length, opts) {\n\tif(!opts.cellStyles) return parsenoop(blob, length);\n\tvar w = opts && opts.biff >= 12 ? 4 : 2;\n\tvar colFirst = blob.read_shift(w);\n\tvar colLast = blob.read_shift(w);\n\tvar coldx = blob.read_shift(w);\n\tvar ixfe = blob.read_shift(w);\n\tvar flags = blob.read_shift(2);\n\tif(w == 2) blob.l += 2;\n\tvar o = ({s:colFirst, e:colLast, w:coldx, ixfe:ixfe, flags:flags}/*:any*/);\n\tif(opts.biff >= 5 || !opts.biff) o.level = (flags >> 8) & 0x7;\n\treturn o;\n}\nfunction write_ColInfo(col, idx) {\n\tvar o = new_buf(12);\n\to.write_shift(2, idx);\n\to.write_shift(2, idx);\n\to.write_shift(2, col.width * 256);\n\to.write_shift(2, 0);\n\tvar f = 0;\n\tif(col.hidden) f |= 1;\n\to.write_shift(1, f);\n\tf = col.level || 0;\n\to.write_shift(1, f);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.257 */\nfunction parse_Setup(blob, length) {\n\tvar o = {};\n\tif(length < 32) return o;\n\tblob.l += 16;\n\to.header = parse_Xnum(blob, 8);\n\to.footer = parse_Xnum(blob, 8);\n\tblob.l += 2;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.261 */\nfunction parse_ShtProps(blob, length, opts) {\n\tvar def = {area:false};\n\tif(opts.biff != 5) { blob.l += length; return def; }\n\tvar d = blob.read_shift(1); blob.l += 3;\n\tif((d & 0x10)) def.area = true;\n\treturn def;\n}\n\n/* [MS-XLS] 2.4.241 */\nfunction write_RRTabId(n/*:number*/) {\n\tvar out = new_buf(2 * n);\n\tfor(var i = 0; i < n; ++i) out.write_shift(2, i+1);\n\treturn out;\n}\n\nvar parse_Blank = parse_XLSCell; /* [MS-XLS] 2.4.20 Just the cell */\nvar parse_Scl = parseuint16a; /* [MS-XLS] 2.4.247 num, den */\nvar parse_String = parse_XLUnicodeString; /* [MS-XLS] 2.4.268 */\n\n/* --- Specific to versions before BIFF8 --- */\nfunction parse_ImData(blob) {\n\tvar cf = blob.read_shift(2);\n\tvar env = blob.read_shift(2);\n\tvar lcb = blob.read_shift(4);\n\tvar o = {fmt:cf, env:env, len:lcb, data:blob.slice(blob.l,blob.l+lcb)};\n\tblob.l += lcb;\n\treturn o;\n}\n\nfunction write_BIFF2Cell(out, r/*:number*/, c/*:number*/, ixfe/*:number*/, ifmt/*:number*/) {\n\tif(!out) out = new_buf(7);\n\tout.write_shift(2, r);\n\tout.write_shift(2, c);\n\tout.write_shift(1, ixfe||0/* & 0x3F */);\n\tout.write_shift(1, ifmt||0/* & 0x3F */);\n\tout.write_shift(1, 0);\n\treturn out;\n}\n\n/* BIFF2_??? where ??? is the name from [XLS] */\nfunction parse_BIFF2STR(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 5) opts.biff = 2;\n\tvar cell = parse_XLSCell(blob, 7, opts);\n\tvar str = parse_XLUnicodeString2(blob, length-7, opts);\n\tcell.t = 'str';\n\tcell.val = str;\n\treturn cell;\n}\n\nfunction parse_BIFF2NUM(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, 7, opts);\n\tvar num = parse_Xnum(blob, 8);\n\tcell.t = 'n';\n\tcell.val = num;\n\treturn cell;\n}\nfunction write_BIFF2NUM(r/*:number*/, c/*:number*/, val/*:number*/, ixfe, ifmt) {\n\tvar out = new_buf(15);\n\twrite_BIFF2Cell(out, r, c, ixfe||0, ifmt||0);\n\tout.write_shift(8, val, 'f');\n\treturn out;\n}\n\nfunction parse_BIFF2INT(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, 7, opts);\n\tvar num = blob.read_shift(2);\n\tcell.t = 'n';\n\tcell.val = num;\n\treturn cell;\n}\nfunction write_BIFF2INT(r/*:number*/, c/*:number*/, val/*:number*/, ixfe/*:number*/, ifmt/*:number*/) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c, ixfe||0, ifmt||0);\n\tout.write_shift(2, val);\n\treturn out;\n}\n\nfunction parse_BIFF2STRING(blob) {\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, 'sbcs-cont');\n}\n\nfunction parse_BIFF2BOOLERR(blob, length, opts) {\n\tvar bestart = blob.l + 7;\n\tvar cell = parse_XLSCell(blob, 6, opts);\n\tblob.l = bestart;\n\tvar val = parse_Bes(blob, 2);\n\tcell.val = val;\n\tcell.t = (val === true || val === false) ? 'b' : 'e';\n\treturn cell;\n}\n\n/* TODO: convert to BIFF8 font struct */\nfunction parse_BIFF2FONTXTRA(blob, length) {\n\tblob.l += 6; // unknown\n\tblob.l += 2; // font weight \"bls\"\n\tblob.l += 1; // charset\n\tblob.l += 3; // unknown\n\tblob.l += 1; // font family\n\tblob.l += length - 13;\n}\n\n/* TODO: parse rich text runs */\nfunction parse_RString(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6, opts);\n\tvar cch = blob.read_shift(2);\n\tvar str = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tblob.l = end;\n\tcell.t = 'str';\n\tcell.val = str;\n\treturn cell;\n}\n\nfunction parse_BIFF4SheetInfo(blob/*::, length, opts*/) {\n\tvar flags = blob.read_shift(4);\n\tvar cch = blob.read_shift(1), name = blob.read_shift(cch, \"sbcs\");\n\tif(name.length === 0) name = \"Sheet1\";\n\treturn { flags: flags, name:name };\n}var DBF_SUPPORTED_VERSIONS = [0x02, 0x03, 0x30, 0x31, 0x83, 0x8B, 0x8C, 0xF5];\nvar DBF = /*#__PURE__*/(function() {\nvar dbf_codepage_map = {\n\t/* Code Pages Supported by Visual FoxPro */\n\t/*::[*/0x01/*::]*/: 437, /*::[*/0x02/*::]*/: 850,\n\t/*::[*/0x03/*::]*/: 1252, /*::[*/0x04/*::]*/: 10000,\n\t/*::[*/0x64/*::]*/: 852, /*::[*/0x65/*::]*/: 866,\n\t/*::[*/0x66/*::]*/: 865, /*::[*/0x67/*::]*/: 861,\n\t/*::[*/0x68/*::]*/: 895, /*::[*/0x69/*::]*/: 620,\n\t/*::[*/0x6A/*::]*/: 737, /*::[*/0x6B/*::]*/: 857,\n\t/*::[*/0x78/*::]*/: 950, /*::[*/0x79/*::]*/: 949,\n\t/*::[*/0x7A/*::]*/: 936, /*::[*/0x7B/*::]*/: 932,\n\t/*::[*/0x7C/*::]*/: 874, /*::[*/0x7D/*::]*/: 1255,\n\t/*::[*/0x7E/*::]*/: 1256, /*::[*/0x96/*::]*/: 10007,\n\t/*::[*/0x97/*::]*/: 10029, /*::[*/0x98/*::]*/: 10006,\n\t/*::[*/0xC8/*::]*/: 1250, /*::[*/0xC9/*::]*/: 1251,\n\t/*::[*/0xCA/*::]*/: 1254, /*::[*/0xCB/*::]*/: 1253,\n\n\t/* shapefile DBF extension */\n\t/*::[*/0x00/*::]*/: 20127, /*::[*/0x08/*::]*/: 865,\n\t/*::[*/0x09/*::]*/: 437, /*::[*/0x0A/*::]*/: 850,\n\t/*::[*/0x0B/*::]*/: 437, /*::[*/0x0D/*::]*/: 437,\n\t/*::[*/0x0E/*::]*/: 850, /*::[*/0x0F/*::]*/: 437,\n\t/*::[*/0x10/*::]*/: 850, /*::[*/0x11/*::]*/: 437,\n\t/*::[*/0x12/*::]*/: 850, /*::[*/0x13/*::]*/: 932,\n\t/*::[*/0x14/*::]*/: 850, /*::[*/0x15/*::]*/: 437,\n\t/*::[*/0x16/*::]*/: 850, /*::[*/0x17/*::]*/: 865,\n\t/*::[*/0x18/*::]*/: 437, /*::[*/0x19/*::]*/: 437,\n\t/*::[*/0x1A/*::]*/: 850, /*::[*/0x1B/*::]*/: 437,\n\t/*::[*/0x1C/*::]*/: 863, /*::[*/0x1D/*::]*/: 850,\n\t/*::[*/0x1F/*::]*/: 852, /*::[*/0x22/*::]*/: 852,\n\t/*::[*/0x23/*::]*/: 852, /*::[*/0x24/*::]*/: 860,\n\t/*::[*/0x25/*::]*/: 850, /*::[*/0x26/*::]*/: 866,\n\t/*::[*/0x37/*::]*/: 850, /*::[*/0x40/*::]*/: 852,\n\t/*::[*/0x4D/*::]*/: 936, /*::[*/0x4E/*::]*/: 949,\n\t/*::[*/0x4F/*::]*/: 950, /*::[*/0x50/*::]*/: 874,\n\t/*::[*/0x57/*::]*/: 1252, /*::[*/0x58/*::]*/: 1252,\n\t/*::[*/0x59/*::]*/: 1252, /*::[*/0x6C/*::]*/: 863,\n\t/*::[*/0x86/*::]*/: 737, /*::[*/0x87/*::]*/: 852,\n\t/*::[*/0x88/*::]*/: 857, /*::[*/0xCC/*::]*/: 1257,\n\n\t/*::[*/0xFF/*::]*/: 16969\n};\nvar dbf_reverse_map = evert({\n\t/*::[*/0x01/*::]*/: 437, /*::[*/0x02/*::]*/: 850,\n\t/*::[*/0x03/*::]*/: 1252, /*::[*/0x04/*::]*/: 10000,\n\t/*::[*/0x64/*::]*/: 852, /*::[*/0x65/*::]*/: 866,\n\t/*::[*/0x66/*::]*/: 865, /*::[*/0x67/*::]*/: 861,\n\t/*::[*/0x68/*::]*/: 895, /*::[*/0x69/*::]*/: 620,\n\t/*::[*/0x6A/*::]*/: 737, /*::[*/0x6B/*::]*/: 857,\n\t/*::[*/0x78/*::]*/: 950, /*::[*/0x79/*::]*/: 949,\n\t/*::[*/0x7A/*::]*/: 936, /*::[*/0x7B/*::]*/: 932,\n\t/*::[*/0x7C/*::]*/: 874, /*::[*/0x7D/*::]*/: 1255,\n\t/*::[*/0x7E/*::]*/: 1256, /*::[*/0x96/*::]*/: 10007,\n\t/*::[*/0x97/*::]*/: 10029, /*::[*/0x98/*::]*/: 10006,\n\t/*::[*/0xC8/*::]*/: 1250, /*::[*/0xC9/*::]*/: 1251,\n\t/*::[*/0xCA/*::]*/: 1254, /*::[*/0xCB/*::]*/: 1253,\n\t/*::[*/0x00/*::]*/: 20127\n});\n/* TODO: find an actual specification */\nfunction dbf_to_aoa(buf, opts)/*:AOA*/ {\n\tvar out/*:AOA*/ = [];\n\tvar d/*:Block*/ = (new_raw_buf(1)/*:any*/);\n\tswitch(opts.type) {\n\t\tcase 'base64': d = s2a(Base64_decode(buf)); break;\n\t\tcase 'binary': d = s2a(buf); break;\n\t\tcase 'buffer':\n\t\tcase 'array': d = buf; break;\n\t}\n\tprep_blob(d, 0);\n\n\t/* header */\n\tvar ft = d.read_shift(1);\n\tvar memo = !!(ft & 0x88);\n\tvar vfp = false, l7 = false;\n\tswitch(ft) {\n\t\tcase 0x02: break; // dBASE II\n\t\tcase 0x03: break; // dBASE III\n\t\tcase 0x30: vfp = true; memo = true; break; // VFP\n\t\tcase 0x31: vfp = true; memo = true; break; // VFP with autoincrement\n\t\t// 0x43 dBASE IV SQL table files\n\t\t// 0x63 dBASE IV SQL system files\n\t\tcase 0x83: break; // dBASE III with memo\n\t\tcase 0x8B: break; // dBASE IV with memo\n\t\tcase 0x8C: l7 = true; break; // dBASE Level 7 with memo\n\t\t// case 0xCB dBASE IV SQL table files with memo\n\t\tcase 0xF5: break; // FoxPro 2.x with memo\n\t\t// case 0xFB FoxBASE\n\t\tdefault: throw new Error(\"DBF Unsupported Version: \" + ft.toString(16));\n\t}\n\n\tvar nrow = 0, fpos = 0x0209;\n\tif(ft == 0x02) nrow = d.read_shift(2);\n\td.l += 3; // dBASE II stores DDMMYY date, others use YYMMDD\n\tif(ft != 0x02) nrow = d.read_shift(4);\n\tif(nrow > 1048576) nrow = 1e6;\n\n\tif(ft != 0x02) fpos = d.read_shift(2); // header length\n\tvar rlen = d.read_shift(2); // record length\n\n\tvar /*flags = 0,*/ current_cp = opts.codepage || 1252;\n\tif(ft != 0x02) { // 20 reserved bytes\n\t\td.l+=16;\n\t\t/*flags = */d.read_shift(1);\n\t\t//if(memo && ((flags & 0x02) === 0)) throw new Error(\"DBF Flags \" + flags.toString(16) + \" ft \" + ft.toString(16));\n\n\t\t/* codepage present in FoxPro and dBASE Level 7 */\n\t\tif(d[d.l] !== 0) current_cp = dbf_codepage_map[d[d.l]];\n\t\td.l+=1;\n\n\t\td.l+=2;\n\t}\n\tif(l7) d.l += 36; // Level 7: 32 byte \"Language driver name\", 4 byte reserved\n\n/*:: type DBFField = { name:string; len:number; type:string; } */\n\tvar fields/*:Array*/ = [], field/*:DBFField*/ = ({}/*:any*/);\n\tvar hend = Math.min(d.length, (ft == 0x02 ? 0x209 : (fpos - 10 - (vfp ? 264 : 0))));\n\tvar ww = l7 ? 32 : 11;\n\twhile(d.l < hend && d[d.l] != 0x0d) {\n\t\tfield = ({}/*:any*/);\n\t\tfield.name = (typeof $cptable !== \"undefined\" ? $cptable.utils.decode(current_cp, d.slice(d.l, d.l+ww)) : a2s(d.slice(d.l, d.l + ww))).replace(/[\\u0000\\r\\n].*$/g,\"\");\n\t\td.l += ww;\n\t\tfield.type = String.fromCharCode(d.read_shift(1));\n\t\tif(ft != 0x02 && !l7) field.offset = d.read_shift(4);\n\t\tfield.len = d.read_shift(1);\n\t\tif(ft == 0x02) field.offset = d.read_shift(2);\n\t\tfield.dec = d.read_shift(1);\n\t\tif(field.name.length) fields.push(field);\n\t\tif(ft != 0x02) d.l += l7 ? 13 : 14;\n\t\tswitch(field.type) {\n\t\t\tcase 'B': // Double (VFP) / Binary (dBASE L7)\n\t\t\t\tif((!vfp || field.len != 8) && opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\n\t\t\t\tbreak;\n\t\t\tcase 'G': // General (FoxPro and dBASE L7)\n\t\t\tcase 'P': // Picture (FoxPro and dBASE L7)\n\t\t\t\tif(opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\n\t\t\t\tbreak;\n\t\t\tcase '+': // Autoincrement (dBASE L7 only)\n\t\t\tcase '0': // _NullFlags (VFP only)\n\t\t\tcase '@': // Timestamp (dBASE L7 only)\n\t\t\tcase 'C': // Character (dBASE II)\n\t\t\tcase 'D': // Date (dBASE III)\n\t\t\tcase 'F': // Float (dBASE IV)\n\t\t\tcase 'I': // Long (VFP and dBASE L7)\n\t\t\tcase 'L': // Logical (dBASE II)\n\t\t\tcase 'M': // Memo (dBASE III)\n\t\t\tcase 'N': // Number (dBASE II)\n\t\t\tcase 'O': // Double (dBASE L7 only)\n\t\t\tcase 'T': // Datetime (VFP only)\n\t\t\tcase 'Y': // Currency (VFP only)\n\t\t\t\tbreak;\n\t\t\tdefault: throw new Error('Unknown Field Type: ' + field.type);\n\t\t}\n\t}\n\n\tif(d[d.l] !== 0x0D) d.l = fpos-1;\n\tif(d.read_shift(1) !== 0x0D) throw new Error(\"DBF Terminator not found \" + d.l + \" \" + d[d.l]);\n\td.l = fpos;\n\n\t/* data */\n\tvar R = 0, C = 0;\n\tout[0] = [];\n\tfor(C = 0; C != fields.length; ++C) out[0][C] = fields[C].name;\n\twhile(nrow-- > 0) {\n\t\tif(d[d.l] === 0x2A) {\n\t\t\t// TODO: record marked as deleted -- create a hidden row?\n\t\t\td.l+=rlen;\n\t\t\tcontinue;\n\t\t}\n\t\t++d.l;\n\t\tout[++R] = []; C = 0;\n\t\tfor(C = 0; C != fields.length; ++C) {\n\t\t\tvar dd = d.slice(d.l, d.l+fields[C].len); d.l+=fields[C].len;\n\t\t\tprep_blob(dd, 0);\n\t\t\tvar s = typeof $cptable !== \"undefined\" ? $cptable.utils.decode(current_cp, dd) : a2s(dd);\n\t\t\tswitch(fields[C].type) {\n\t\t\t\tcase 'C':\n\t\t\t\t\t// NOTE: it is conventional to write ' / / ' for empty dates\n\t\t\t\t\tif(s.trim().length) out[R][C] = s.replace(/\\s+$/,\"\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'D':\n\t\t\t\t\tif(s.length === 8) {\n\t\t\t\t\t\tout[R][C] = new Date(Date.UTC(+s.slice(0,4), +s.slice(4,6)-1, +s.slice(6,8), 0, 0, 0, 0));\n\t\t\t\t\t\tif(!(opts && opts.UTC)) { out[R][C] = utc_to_local(out[R][C]); }\n\t\t\t\t\t}\n\t\t\t\t\telse out[R][C] = s;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'F': out[R][C] = parseFloat(s.trim()); break;\n\t\t\t\tcase '+': case 'I': out[R][C] = l7 ? dd.read_shift(-4, 'i') ^ 0x80000000 : dd.read_shift(4, 'i'); break;\n\t\t\t\tcase 'L': switch(s.trim().toUpperCase()) {\n\t\t\t\t\tcase 'Y': case 'T': out[R][C] = true; break;\n\t\t\t\t\tcase 'N': case 'F': out[R][C] = false; break;\n\t\t\t\t\tcase '': case '?': break;\n\t\t\t\t\tdefault: throw new Error(\"DBF Unrecognized L:|\" + s + \"|\");\n\t\t\t\t\t} break;\n\t\t\t\tcase 'M': /* TODO: handle memo files */\n\t\t\t\t\tif(!memo) throw new Error(\"DBF Unexpected MEMO for type \" + ft.toString(16));\n\t\t\t\t\tout[R][C] = \"##MEMO##\" + (l7 ? parseInt(s.trim(), 10): dd.read_shift(4));\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'N':\n\t\t\t\t\ts = s.replace(/\\u0000/g,\"\").trim();\n\t\t\t\t\t// NOTE: dBASE II interprets \" . \" as 0\n\t\t\t\t\tif(s && s != \".\") out[R][C] = +s || 0; break;\n\t\t\t\tcase '@':\n\t\t\t\t\t// NOTE: dBASE specs appear to be incorrect\n\t\t\t\t\tout[R][C] = new Date(dd.read_shift(-8, 'f') - 0x388317533400);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'T': {\n\t\t\t\t\tvar hi = dd.read_shift(4), lo = dd.read_shift(4);\n\t\t\t\t\tif(hi == 0 && lo == 0) break;\n\t\t\t\t\tout[R][C] = new Date((hi - 0x253D8C) * 0x5265C00 + lo);\n\t\t\t\t\tif(!(opts && opts.UTC)) out[R][C] = utc_to_local(out[R][C]);\n\t\t\t\t} break;\n\t\t\t\tcase 'Y': out[R][C] = dd.read_shift(4,'i')/1e4 + (dd.read_shift(4, 'i')/1e4)*Math.pow(2,32); break;\n\t\t\t\tcase 'O': out[R][C] = -dd.read_shift(-8, 'f'); break;\n\t\t\t\tcase 'B': if(vfp && fields[C].len == 8) { out[R][C] = dd.read_shift(8,'f'); break; }\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 'G': case 'P': dd.l += fields[C].len; break;\n\t\t\t\tcase '0':\n\t\t\t\t\tif(fields[C].name === '_NullFlags') break;\n\t\t\t\t\t/* falls through */\n\t\t\t\tdefault: throw new Error(\"DBF Unsupported data type \" + fields[C].type);\n\t\t\t}\n\t\t}\n\t}\n\tif(ft != 0x02) if(d.l < d.length && d[d.l++] != 0x1A) throw new Error(\"DBF EOF Marker missing \" + (d.l-1) + \" of \" + d.length + \" \" + d[d.l-1].toString(16));\n\tif(opts && opts.sheetRows) out = out.slice(0, opts.sheetRows);\n\topts.DBF = fields;\n\treturn out;\n}\n\nfunction dbf_to_sheet(buf, opts)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tif(!o.dateNF) o.dateNF = \"yyyymmdd\";\n\tvar ws = aoa_to_sheet(dbf_to_aoa(buf, o), o);\n\tws[\"!cols\"] = o.DBF.map(function(field) { return {\n\t\twch: field.len,\n\t\tDBF: field\n\t};});\n\tdelete o.DBF;\n\treturn ws;\n}\n\nfunction dbf_to_workbook(buf, opts)/*:Workbook*/ {\n\ttry {\n\t\tvar o = sheet_to_workbook(dbf_to_sheet(buf, opts), opts);\n\t\to.bookType = \"dbf\";\n\t\treturn o;\n\t} catch(e) { if(opts && opts.WTF) throw e; }\n\treturn ({SheetNames:[],Sheets:{}});\n}\n\nvar _RLEN = { 'B': 8, 'C': 250, 'L': 1, 'D': 8, '?': 0, '': 0 };\nfunction sheet_to_dbf(ws/*:Worksheet*/, opts/*:WriteOpts*/) {\n\tvar o = opts || {};\n\tvar old_cp = current_codepage;\n\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\tif(o.type == \"string\") throw new Error(\"Cannot write DBF to JS string\");\n\tvar ba = buf_array();\n\tvar aoa/*:AOA*/ = sheet_to_json(ws, {header:1, raw:true, cellDates:true});\n\tvar headers = aoa[0], data = aoa.slice(1), cols = ws[\"!cols\"] || [];\n\tvar i = 0, j = 0, hcnt = 0, rlen = 1;\n\tfor(i = 0; i < headers.length; ++i) {\n\t\tif(((cols[i]||{}).DBF||{}).name) { headers[i] = cols[i].DBF.name; ++hcnt; continue; }\n\t\tif(headers[i] == null) continue;\n\t\t++hcnt;\n\t\tif(typeof headers[i] === 'number') headers[i] = headers[i].toString(10);\n\t\tif(typeof headers[i] !== 'string') throw new Error(\"DBF Invalid column name \" + headers[i] + \" |\" + (typeof headers[i]) + \"|\");\n\t\tif(headers.indexOf(headers[i]) !== i) for(j=0; j<1024;++j)\n\t\t\tif(headers.indexOf(headers[i] + \"_\" + j) == -1) { headers[i] += \"_\" + j; break; }\n\t}\n\tvar range = safe_decode_range(ws['!ref']);\n\tvar coltypes/*:Array*/ = [];\n\tvar colwidths/*:Array*/ = [];\n\tvar coldecimals/*:Array*/ = [];\n\tfor(i = 0; i <= range.e.c - range.s.c; ++i) {\n\t\tvar guess = '', _guess = '', maxlen = 0;\n\t\tvar col/*:Array*/ = [];\n\t\tfor(j=0; j < data.length; ++j) {\n\t\t\tif(data[j][i] != null) col.push(data[j][i]);\n\t\t}\n\t\tif(col.length == 0 || headers[i] == null) { coltypes[i] = '?'; continue; }\n\t\tfor(j = 0; j < col.length; ++j) {\n\t\t\tswitch(typeof col[j]) {\n\t\t\t\t/* TODO: check if L2 compat is desired */\n\t\t\t\tcase 'number': _guess = 'B'; break;\n\t\t\t\tcase 'string': _guess = 'C'; break;\n\t\t\t\tcase 'boolean': _guess = 'L'; break;\n\t\t\t\tcase 'object': _guess = col[j] instanceof Date ? 'D' : 'C'; break;\n\t\t\t\tdefault: _guess = 'C';\n\t\t\t}\n\t\t\t/* TODO: cache the values instead of encoding twice */\n\t\t\tmaxlen = Math.max(maxlen, (typeof $cptable !== \"undefined\" && typeof col[j] == \"string\" ? $cptable.utils.encode(current_ansi, col[j]): String(col[j])).length);\n\t\t\tguess = guess && guess != _guess ? 'C' : _guess;\n\t\t\t//if(guess == 'C') break;\n\t\t}\n\t\tif(maxlen > 250) maxlen = 250;\n\t\t_guess = ((cols[i]||{}).DBF||{}).type;\n\t\t/* TODO: more fine grained control over DBF type resolution */\n\t\tif(_guess == 'C') {\n\t\t\tif(cols[i].DBF.len > maxlen) maxlen = cols[i].DBF.len;\n\t\t}\n\t\tif(guess == 'B' && _guess == 'N') {\n\t\t\tguess = 'N';\n\t\t\tcoldecimals[i] = cols[i].DBF.dec;\n\t\t\tmaxlen = cols[i].DBF.len;\n\t\t}\n\t\tcolwidths[i] = guess == 'C' || _guess == 'N' ? maxlen : (_RLEN[guess] || 0);\n\t\trlen += colwidths[i];\n\t\tcoltypes[i] = guess;\n\t}\n\n\tvar h = ba.next(32);\n\th.write_shift(4, 0x13021130);\n\th.write_shift(4, data.length);\n\th.write_shift(2, 296 + 32 * hcnt);\n\th.write_shift(2, rlen);\n\tfor(i=0; i < 4; ++i) h.write_shift(4, 0);\n\tvar cp = +dbf_reverse_map[/*::String(*/current_codepage/*::)*/] || 0x03;\n\th.write_shift(4, 0x00000000 | (cp<<8));\n\tif(dbf_codepage_map[cp] != +o.codepage) {\n\t\tif(o.codepage) console.error(\"DBF Unsupported codepage \" + current_codepage + \", using 1252\");\n\t\tcurrent_codepage = 1252;\n\t}\n\n\tfor(i = 0, j = 0; i < headers.length; ++i) {\n\t\tif(headers[i] == null) continue;\n\t\tvar hf = ba.next(32);\n\t\t/* TODO: test how applications handle non-ASCII field names */\n\t\tvar _f = (headers[i].slice(-10) + \"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\").slice(0, 11);\n\t\thf.write_shift(1, _f, \"sbcs\");\n\t\thf.write_shift(1, coltypes[i] == '?' ? 'C' : coltypes[i], \"sbcs\");\n\t\thf.write_shift(4, j);\n\t\thf.write_shift(1, colwidths[i] || _RLEN[coltypes[i]] || 0);\n\t\thf.write_shift(1, coldecimals[i] || 0);\n\t\thf.write_shift(1, 0x02);\n\t\thf.write_shift(4, 0);\n\t\thf.write_shift(1, 0);\n\t\thf.write_shift(4, 0);\n\t\thf.write_shift(4, 0);\n\t\tj += (colwidths[i] || _RLEN[coltypes[i]] || 0);\n\t}\n\n\tvar hb = ba.next(264);\n\thb.write_shift(4, 0x0000000D);\n\tfor(i=0; i < 65;++i) hb.write_shift(4, 0x00000000);\n\tfor(i=0; i < data.length; ++i) {\n\t\tvar rout = ba.next(rlen);\n\t\trout.write_shift(1, 0);\n\t\tfor(j=0; j colwidths[j]) _n = _n.slice(0, colwidths[j]); // addresses decimal > width\n\t\t\t\t\tfor(hcnt=0; hcnt < colwidths[j]-_n.length; ++hcnt) rout.write_shift(1, 0x20);\n\t\t\t\t\trout.write_shift(1, _n, \"sbcs\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'D':\n\t\t\t\t\tif(!data[i][j]) rout.write_shift(8, \"00000000\", \"sbcs\");\n\t\t\t\t\telse {\n\t\t\t\t\t\trout.write_shift(4, (\"0000\"+data[i][j].getFullYear()).slice(-4), \"sbcs\");\n\t\t\t\t\t\trout.write_shift(2, (\"00\"+(data[i][j].getMonth()+1)).slice(-2), \"sbcs\");\n\t\t\t\t\t\trout.write_shift(2, (\"00\"+data[i][j].getDate()).slice(-2), \"sbcs\");\n\t\t\t\t\t} break;\n\t\t\t\tcase 'C':\n\t\t\t\t\tvar _l = rout.l;\n\t\t\t\t\tvar _s = String(data[i][j] != null ? data[i][j] : \"\").slice(0, colwidths[j]);\n\t\t\t\t\trout.write_shift(1, _s, \"cpstr\");\n\t\t\t\t\t_l += colwidths[j] - rout.l;\n\t\t\t\t\tfor(hcnt=0; hcnt < _l; ++hcnt) rout.write_shift(1, 0x20); break;\n\t\t\t}\n\t\t}\n\t\t// data\n\t}\n\tcurrent_codepage = old_cp;\n\tba.next(1).write_shift(1, 0x1A);\n\treturn ba.end();\n}\n\treturn {\n\t\tto_workbook: dbf_to_workbook,\n\t\tto_sheet: dbf_to_sheet,\n\t\tfrom_sheet: sheet_to_dbf\n\t};\n})();\n\nvar SYLK = /*#__PURE__*/(function() {\n\t/* TODO: stress test sequences */\n\tvar sylk_escapes = ({\n\t\tAA:'À', BA:'Á', CA:'Â', DA:195, HA:'Ä', JA:197,\n\t\tAE:'È', BE:'É', CE:'Ê', HE:'Ë',\n\t\tAI:'Ì', BI:'Í', CI:'Î', HI:'Ï',\n\t\tAO:'Ò', BO:'Ó', CO:'Ô', DO:213, HO:'Ö',\n\t\tAU:'Ù', BU:'Ú', CU:'Û', HU:'Ü',\n\t\tAa:'à', Ba:'á', Ca:'â', Da:227, Ha:'ä', Ja:229,\n\t\tAe:'è', Be:'é', Ce:'ê', He:'ë',\n\t\tAi:'ì', Bi:'í', Ci:'î', Hi:'ï',\n\t\tAo:'ò', Bo:'ó', Co:'ô', Do:245, Ho:'ö',\n\t\tAu:'ù', Bu:'ú', Cu:'û', Hu:'ü',\n\t\tKC:'Ç', Kc:'ç', q:'æ', z:'œ', a:'Æ', j:'Œ',\n\t\tDN:209, Dn:241, Hy:255,\n\t\tS:169, c:170, R:174, \"B \":180,\n\t\t/*::[*/0/*::]*/:176, /*::[*/1/*::]*/:177, /*::[*/2/*::]*/:178,\n\t\t/*::[*/3/*::]*/:179, /*::[*/5/*::]*/:181, /*::[*/6/*::]*/:182,\n\t\t/*::[*/7/*::]*/:183, Q:185, k:186, b:208, i:216, l:222, s:240, y:248,\n\t\t\"!\":161, '\"':162, \"#\":163, \"(\":164, \"%\":165, \"'\":167, \"H \":168,\n\t\t\"+\":171, \";\":187, \"<\":188, \"=\":189, \">\":190, \"?\":191, \"{\":223\n\t}/*:any*/);\n\tvar sylk_char_regex = new RegExp(\"\\u001BN(\" + keys(sylk_escapes).join(\"|\").replace(/\\|\\|\\|/, \"|\\\\||\").replace(/([?()+])/g,\"\\\\$1\") + \"|\\\\|)\", \"gm\");\n\tvar sylk_char_fn = function(_, $1){ var o = sylk_escapes[$1]; return typeof o == \"number\" ? _getansi(o) : o; };\n\tvar decode_sylk_char = function($$, $1, $2) { var newcc = (($1.charCodeAt(0) - 0x20)<<4) | ($2.charCodeAt(0) - 0x30); return newcc == 59 ? $$ : _getansi(newcc); };\n\tsylk_escapes[\"|\"] = 254;\n\t/* TODO: evert the escape map */\n\tvar encode_sylk_str = function($$) { return $$.replace(/\\n/g, \"\\x1b :\").replace(/\\r/g, \"\\x1b =\"); };\n\t/* https://oss.sheetjs.com/notes/sylk/ for more details */\n\tfunction sylk_to_aoa(d/*:RawData*/, opts)/*:[AOA, Worksheet]*/ {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return sylk_to_aoa_str(Base64_decode(d), opts);\n\t\t\tcase 'binary': return sylk_to_aoa_str(d, opts);\n\t\t\tcase 'buffer': return sylk_to_aoa_str(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), opts);\n\t\t\tcase 'array': return sylk_to_aoa_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\tfunction sylk_to_aoa_str(str/*:string*/, opts)/*:[AOA, Worksheet]*/ {\n\t\tvar records = str.split(/[\\n\\r]+/), R = -1, C = -1, ri = 0, rj = 0, arr/*:AOA*/ = [];\n\t\tvar formats/*:Array*/ = [];\n\t\tvar next_cell_format/*:string|null*/ = null;\n\t\tvar sht = {}, rowinfo/*:Array*/ = [], colinfo/*:Array*/ = [], cw/*:Array*/ = [];\n\t\tvar Mval = 0, j;\n\t\tvar wb = { Workbook: { WBProps: {}, Names: [] } };\n\t\tif(+opts.codepage >= 0) set_cp(+opts.codepage);\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tMval = 0;\n\t\t\tvar rstr=records[ri].trim().replace(/\\x1B([\\x20-\\x2F])([\\x30-\\x3F])/g, decode_sylk_char).replace(sylk_char_regex, sylk_char_fn);\n\t\t\tvar record=rstr.replace(/;;/g, \"\\u0000\").split(\";\").map(function(x) { return x.replace(/\\u0000/g, \";\"); });\n\t\t\tvar RT=record[0], val;\n\t\t\tif(rstr.length > 0) switch(RT) {\n\t\t\tcase 'ID': break; /* header */\n\t\t\tcase 'E': break; /* EOF */\n\t\t\tcase 'B': break; /* dimensions */\n\t\t\tcase 'O': /* workbook options */\n\t\t\tfor(rj=1; rj= 5 or < 0\n\t\t\t\t\tif(d1904 >= 1 && d1904 <= 4) wb.Workbook.WBProps.date1904 = true;\n\t\t\t\t} break;\n\t\t\t} break;\n\t\t\tcase 'W': break; /* window */\n\t\t\tcase 'P':\n\t\t\t\tswitch(record[1].charAt(0)){\n\t\t\t\t\tcase 'P': formats.push(rstr.slice(3).replace(/;;/g, \";\")); break;\n\t\t\t\t} break;\n\t\t\tcase 'NN': { /* defined name */\n\t\t\t\tvar nn = {Sheet: 0};\n\t\t\t\tfor(rj=1; rj -1 && arr[_R][_C];\n\t\t\t\tif(!shrbase || !shrbase[1]) throw new Error(\"SYLK shared formula cannot find base\");\n\t\t\t\tformula = shift_formula_str(shrbase[1], {r: R - _R, c: C - _C});\n\t\t\t}\n\t\t\tif(formula) {\n\t\t\t\tif(!arr[R][C]) arr[R][C] = { t: 'n', f: formula };\n\t\t\t\telse arr[R][C].f = formula;\n\t\t\t}\n\t\t\tif(cmnt) {\n\t\t\t\tif(!arr[R][C]) arr[R][C] = { t: 'z' };\n\t\t\t\tarr[R][C].c = [{a:\"SheetJSYLK\", t: cmnt}];\n\t\t\t}\n\t\t\tbreak;\n\t\t\tcase 'F': /* Format */\n\t\t\tvar F_seen = 0;\n\t\t\tfor(rj=1; rj 0) { rowinfo[R].hpt = Mval; rowinfo[R].hpx = pt2px(Mval); }\n\t\t\t\t\telse if(Mval === 0) rowinfo[R].hidden = true;\n\t\t\t\t\tbreak;\n\t\t\t\t// case 'K': // ??\n\t\t\t\t// case 'E': // ??\n\t\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t\tif(F_seen < 1) next_cell_format = null; break;\n\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t}\n\t\tif(rowinfo.length > 0) sht['!rows'] = rowinfo;\n\t\tif(colinfo.length > 0) sht['!cols'] = colinfo;\n\t\tcolinfo.forEach(function(col) { process_col(col); });\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn [arr, sht, wb];\n\t}\n\n\tfunction sylk_to_workbook(d/*:RawData*/, opts)/*:Workbook*/ {\n\t\tvar aoasht = sylk_to_aoa(d, opts);\n\t\tvar aoa = aoasht[0], ws = aoasht[1], wb = aoasht[2];\n\t\tvar _opts = dup(opts); _opts.date1904 = (((wb||{}).Workbook || {}).WBProps || {}).date1904;\n\t\tvar o = aoa_to_sheet(aoa, _opts);\n\t\tkeys(ws).forEach(function(k) { o[k] = ws[k]; });\n\t\tvar outwb = sheet_to_workbook(o, opts);\n\t\tkeys(wb).forEach(function(k) { outwb[k] = wb[k]; });\n\t\toutwb.bookType = \"sylk\";\n\t\treturn outwb;\n\t}\n\n\tfunction write_ws_cell_sylk(cell/*:Cell*/, ws/*:Worksheet*/, R/*:number*/, C/*:number*/, opts, date1904/*:boolean*/)/*:string*/ {\n\t\tvar o = \"C;Y\" + (R+1) + \";X\" + (C+1) + \";K\";\n\t\tswitch(cell.t) {\n\t\t\tcase 'n':\n\t\t\t\to += (cell.v||0);\n\t\t\t\tif(cell.f && !cell.F) o += \";E\" + a1_to_rc(cell.f, {r:R, c:C}); break;\n\t\t\tcase 'b': o += cell.v ? \"TRUE\" : \"FALSE\"; break;\n\t\t\tcase 'e': o += cell.w || cell.v; break;\n\t\t\tcase 'd': o += datenum(parseDate(cell.v, date1904), date1904); break;\n\t\t\tcase 's': o += '\"' + (cell.v == null ? \"\" : String(cell.v)).replace(/\"/g,\"\").replace(/;/g, \";;\") + '\"'; break;\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction write_ws_cmnt_sylk(cmnt/*:Comment*/, R/*:number*/, C/*:number*/)/*:string*/ {\n\t\tvar o = \"C;Y\" + (R+1) + \";X\" + (C+1) + \";A\";\n\t\t/* TODO: max length? */\n\t\to += encode_sylk_str(cmnt.map(function(c) { return c.t; }).join(\"\"));\n\t\treturn o;\n\t}\n\n\tfunction write_ws_cols_sylk(out, cols) {\n\t\tcols.forEach(function(col, i) {\n\t\t\tvar rec = \"F;W\" + (i+1) + \" \" + (i+1) + \" \";\n\t\t\tif(col.hidden) rec += \"0\";\n\t\t\telse {\n\t\t\t\tif(typeof col.width == 'number' && !col.wpx) col.wpx = width2px(col.width);\n\t\t\t\tif(typeof col.wpx == 'number' && !col.wch) col.wch = px2char(col.wpx);\n\t\t\t\tif(typeof col.wch == 'number') rec += Math.round(col.wch);\n\t\t\t}\n\t\t\tif(rec.charAt(rec.length - 1) != \" \") out.push(rec);\n\t\t});\n\t}\n\n\tfunction write_ws_rows_sylk(out/*:Array*/, rows/*:Array*/) {\n\t\trows.forEach(function(row, i) {\n\t\t\tvar rec = \"F;\";\n\t\t\tif(row.hidden) rec += \"M0;\";\n\t\t\telse if(row.hpt) rec += \"M\" + 20 * row.hpt + \";\";\n\t\t\telse if(row.hpx) rec += \"M\" + 20 * px2pt(row.hpx) + \";\";\n\t\t\tif(rec.length > 2) out.push(rec + \"R\" + (i+1));\n\t\t});\n\t}\n\n\tfunction sheet_to_sylk(ws/*:Worksheet*/, opts/*:?any*/, wb/*:?WorkBook*/)/*:string*/ {\n\t\tif(!opts) opts = {}; opts._formats = [\"General\"];\n\t\t/* TODO: codepage */\n\t\tvar preamble/*:Array*/ = [\"ID;PSheetJS;N;E\"], o/*:Array*/ = [];\n\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\tvar dense = ws[\"!data\"] != null;\n\t\tvar RS = \"\\r\\n\";\n\t\tvar d1904 = (((wb||{}).Workbook||{}).WBProps||{}).date1904;\n\n\t\tvar _lastfmt = \"General\";\n\t\tpreamble.push(\"P;PGeneral\");\n\t\t/* Excel has been inconsistent in comment placement */\n\t\tvar R = r.s.r, C = r.s.c, p = [];\n\t\tfor(R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tif(dense && !ws[\"!data\"][R]) continue;\n\t\t\tp = [];\n\t\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tcell = dense ? ws[\"!data\"][R][C] : ws[encode_col(C) + encode_row(R)];\n\t\t\t\tif(!cell || !cell.c) continue;\n\t\t\t\tp.push(write_ws_cmnt_sylk(cell.c, R, C));\n\t\t\t}\n\t\t\tif(p.length) o.push(p.join(RS));\n\t\t}\n\t\tfor(R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tif(dense && !ws[\"!data\"][R]) continue;\n\t\t\tp = [];\n\t\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tcell = dense ? ws[\"!data\"][R][C] : ws[encode_col(C) + encode_row(R)];\n\t\t\t\tif(!cell || (cell.v == null && (!cell.f || cell.F))) continue;\n\t\t\t\tif((cell.z||(cell.t == \"d\" ? table_fmt[14] : \"General\")) != _lastfmt) {\n\t\t\t\t\tvar ifmt = opts._formats.indexOf(cell.z);\n\t\t\t\t\tif(ifmt == -1) { opts._formats.push(cell.z); ifmt = opts._formats.length - 1; preamble.push(\"P;P\" + cell.z.replace(/;/g, \";;\")); }\n\t\t\t\t\tp.push(\"F;P\" + ifmt + \";Y\" + (R+1) + \";X\" + (C+1));\n\t\t\t\t}\n\t\t\t\tp.push(write_ws_cell_sylk(cell, ws, R, C, opts, d1904));\n\t\t\t}\n\t\t\to.push(p.join(RS));\n\t\t}\n\n\t\tpreamble.push(\"F;P0;DG0G8;M255\");\n\t\tif(ws['!cols']) write_ws_cols_sylk(preamble, ws['!cols']);\n\t\tif(ws['!rows']) write_ws_rows_sylk(preamble, ws['!rows']);\n\n\t\tpreamble.push(\"B;Y\" + (r.e.r - r.s.r + 1) + \";X\" + (r.e.c - r.s.c + 1) + \";D\" + [r.s.c,r.s.r,r.e.c,r.e.r].join(\" \"));\n\t\tpreamble.push(\"O;L;D;B\" + (d1904 ? \";V4\" : \"\") + \";K47;G100 0.001\");\n\n\t\tdelete opts._formats;\n\t\treturn preamble.join(RS) + RS + o.join(RS) + RS + \"E\" + RS;\n\t}\n\n\treturn {\n\t\tto_workbook: sylk_to_workbook,\n\t\tfrom_sheet: sheet_to_sylk\n\t};\n})();\n\nvar DIF = /*#__PURE__*/(function() {\n\tfunction dif_to_aoa(d/*:RawData*/, opts)/*:AOA*/ {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return dif_to_aoa_str(Base64_decode(d), opts);\n\t\t\tcase 'binary': return dif_to_aoa_str(d, opts);\n\t\t\tcase 'buffer': return dif_to_aoa_str(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), opts);\n\t\t\tcase 'array': return dif_to_aoa_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\tfunction dif_to_aoa_str(str/*:string*/, opts)/*:AOA*/ {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr/*:AOA*/ = [];\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tif (records[ri].trim() === 'BOT') { arr[++R] = []; C = 0; continue; }\n\t\t\tif (R < 0) continue;\n\t\t\tvar metadata = records[ri].trim().split(\",\");\n\t\t\tvar type = metadata[0], value = metadata[1];\n\t\t\t++ri;\n\t\t\tvar data = records[ri] || \"\";\n\t\t\twhile(((data.match(/[\"]/g)||[]).length & 1) && ri < records.length - 1) data += \"\\n\" + records[++ri];\n\t\t\tdata = data.trim();\n\t\t\tswitch (+type) {\n\t\t\t\tcase -1:\n\t\t\t\t\tif (data === 'BOT') { arr[++R] = []; C = 0; continue; }\n\t\t\t\t\telse if (data !== 'EOD') throw new Error(\"Unrecognized DIF special command \" + data);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0:\n\t\t\t\t\tif(data === 'TRUE') arr[R][C] = true;\n\t\t\t\t\telse if(data === 'FALSE') arr[R][C] = false;\n\t\t\t\t\telse if(!isNaN(fuzzynum(value))) arr[R][C] = fuzzynum(value);\n\t\t\t\t\telse if(!isNaN(fuzzydate(value).getDate())) {\n\t\t\t\t\t\tarr[R][C] = parseDate(value);\n\t\t\t\t\t\tif(!(opts && opts.UTC)) { arr[R][C] = utc_to_local(arr[R][C]); }\n\t\t\t\t\t}\n\t\t\t\t\telse arr[R][C] = value;\n\t\t\t\t\t++C; break;\n\t\t\t\tcase 1:\n\t\t\t\t\tdata = data.slice(1,data.length-1);\n\t\t\t\t\tdata = data.replace(/\"\"/g, '\"');\n\t\t\t\t\tif(DIF_XL && data && data.match(/^=\".*\"$/)) data = data.slice(2, -1);\n\t\t\t\t\tarr[R][C++] = data !== '' ? data : null;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (data === 'EOD') break;\n\t\t}\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn arr;\n\t}\n\n\tfunction dif_to_sheet(str/*:string*/, opts)/*:Worksheet*/ { return aoa_to_sheet(dif_to_aoa(str, opts), opts); }\n\tfunction dif_to_workbook(str/*:string*/, opts)/*:Workbook*/ {\n\t\tvar o = sheet_to_workbook(dif_to_sheet(str, opts), opts);\n\t\to.bookType = \"dif\";\n\t\treturn o;\n\t}\n\n\tfunction make_value(v/*:number*/, s/*:string*/)/*:string*/ { return \"0,\" + String(v) + \"\\r\\n\" + s; }\n\tfunction make_value_str(s/*:string*/)/*:string*/ { return \"1,0\\r\\n\\\"\" + s.replace(/\"/g,'\"\"') + '\"'; }\n\tfunction sheet_to_dif(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\tvar _DIF_XL = DIF_XL;\n\t\tvar r = safe_decode_range(ws['!ref']);\n\t\tvar dense = ws[\"!data\"] != null;\n\t\tvar o/*:Array*/ = [\n\t\t\t\"TABLE\\r\\n0,1\\r\\n\\\"sheetjs\\\"\\r\\n\",\n\t\t\t\"VECTORS\\r\\n0,\" + (r.e.r - r.s.r + 1) + \"\\r\\n\\\"\\\"\\r\\n\",\n\t\t\t\"TUPLES\\r\\n0,\" + (r.e.c - r.s.c + 1) + \"\\r\\n\\\"\\\"\\r\\n\",\n\t\t\t\"DATA\\r\\n0,0\\r\\n\\\"\\\"\\r\\n\"\n\t\t];\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tvar row = dense ? ws[\"!data\"][R] : [];\n\t\t\tvar p = \"-1,0\\r\\nBOT\\r\\n\";\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar cell/*:Cell*/ = dense ? (row && row[C]) : ws[encode_cell({r:R,c:C})];\n\t\t\t\tif(cell == null) { p +=(\"1,0\\r\\n\\\"\\\"\\r\\n\"); continue;}\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\tif(_DIF_XL) {\n\t\t\t\t\t\t\tif(cell.w != null) p +=(\"0,\" + cell.w + \"\\r\\nV\");\n\t\t\t\t\t\t\telse if(cell.v != null) p +=(make_value(cell.v, \"V\")); // TODO: should this call SSF_format?\n\t\t\t\t\t\t\telse if(cell.f != null && !cell.F) p +=(make_value_str(\"=\" + cell.f));\n\t\t\t\t\t\t\telse p +=(\"1,0\\r\\n\\\"\\\"\");\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif(cell.v == null) p +=(\"1,0\\r\\n\\\"\\\"\");\n\t\t\t\t\t\t\telse p +=(make_value(cell.v, \"V\"));\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\tp +=(cell.v ? make_value(1, \"TRUE\") : make_value(0, \"FALSE\"));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 's':\n\t\t\t\t\t\tp +=(make_value_str((!_DIF_XL || isNaN(+cell.v)) ? cell.v : '=\"' + cell.v + '\"'));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\tif(!cell.w) cell.w = SSF_format(cell.z || table_fmt[14], datenum(parseDate(cell.v)));\n\t\t\t\t\t\tif(_DIF_XL) p +=(make_value(cell.w, \"V\"));\n\t\t\t\t\t\telse p +=(make_value_str(cell.w));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault: p +=(\"1,0\\r\\n\\\"\\\"\");\n\t\t\t\t}\n\t\t\t\tp += \"\\r\\n\";\n\t\t\t}\n\t\t\to.push(p);\n\t\t}\n\t\treturn o.join(\"\") + \"-1,0\\r\\nEOD\";\n\t}\n\treturn {\n\t\tto_workbook: dif_to_workbook,\n\t\tto_sheet: dif_to_sheet,\n\t\tfrom_sheet: sheet_to_dif\n\t};\n})();\n\nvar ETH = /*#__PURE__*/(function() {\n\tfunction decode(s/*:string*/)/*:string*/ { return s.replace(/\\\\b/g,\"\\\\\").replace(/\\\\c/g,\":\").replace(/\\\\n/g,\"\\n\"); }\n\tfunction encode(s/*:string*/)/*:string*/ { return s.replace(/\\\\/g, \"\\\\b\").replace(/:/g, \"\\\\c\").replace(/\\n/g,\"\\\\n\"); }\n\n\tfunction eth_to_aoa(str/*:string*/, opts)/*:AOA*/ {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr/*:AOA*/ = [];\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tvar record = records[ri].trim().split(\":\");\n\t\t\tif(record[0] !== 'cell') continue;\n\t\t\tvar addr = decode_cell(record[1]);\n\t\t\tif(arr.length <= addr.r) for(R = arr.length; R <= addr.r; ++R) if(!arr[R]) arr[R] = [];\n\t\t\tR = addr.r; C = addr.c;\n\t\t\tswitch(record[2]) {\n\t\t\t\tcase 't': arr[R][C] = decode(record[3]); break;\n\t\t\t\tcase 'v': arr[R][C] = +record[3]; break;\n\t\t\t\tcase 'vtf': var _f = record[record.length - 1];\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 'vtc':\n\t\t\t\t\tswitch(record[3]) {\n\t\t\t\t\t\tcase 'nl': arr[R][C] = +record[4] ? true : false; break;\n\t\t\t\t\t\tdefault: arr[R][C] = +record[4]; break;\n\t\t\t\t\t}\n\t\t\t\t\tif(record[2] == 'vtf') arr[R][C] = [arr[R][C], _f];\n\t\t\t}\n\t\t}\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn arr;\n\t}\n\n\tfunction eth_to_sheet(d/*:string*/, opts)/*:Worksheet*/ { return aoa_to_sheet(eth_to_aoa(d, opts), opts); }\n\tfunction eth_to_workbook(d/*:string*/, opts)/*:Workbook*/ { return sheet_to_workbook(eth_to_sheet(d, opts), opts); }\n\n\tvar header = [\n\t\t\"socialcalc:version:1.5\",\n\t\t\"MIME-Version: 1.0\",\n\t\t\"Content-Type: multipart/mixed; boundary=SocialCalcSpreadsheetControlSave\"\n\t].join(\"\\n\");\n\n\tvar sep = [\n\t\t\"--SocialCalcSpreadsheetControlSave\",\n\t\t\"Content-type: text/plain; charset=UTF-8\"\n\t].join(\"\\n\") + \"\\n\";\n\n\t/* TODO: the other parts */\n\tvar meta = [\n\t\t\"# SocialCalc Spreadsheet Control Save\",\n\t\t\"part:sheet\"\n\t].join(\"\\n\");\n\n\tvar end = \"--SocialCalcSpreadsheetControlSave--\";\n\n\tfunction sheet_to_eth_data(ws/*:Worksheet*/)/*:string*/ {\n\t\tif(!ws || !ws['!ref']) return \"\";\n\t\tvar o/*:Array*/ = [], oo/*:Array*/ = [], cell, coord = \"\";\n\t\tvar r = decode_range(ws['!ref']);\n\t\tvar dense = ws[\"!data\"] != null;\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tcoord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[\"!data\"][R]||[])[C] : ws[coord];\n\t\t\t\tif(!cell || cell.v == null || cell.t === 'z') continue;\n\t\t\t\too = [\"cell\", coord, 't'];\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 's': case 'str': oo.push(encode(cell.v)); break;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\tif(!cell.f) { oo[2]='v'; oo[3]=cell.v; }\n\t\t\t\t\t\telse { oo[2]='vtf'; oo[3]='n'; oo[4]=cell.v; oo[5]=encode(cell.f); }\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\too[2] = 'vt'+(cell.f?'f':'c'); oo[3]='nl'; oo[4]=cell.v?\"1\":\"0\";\n\t\t\t\t\t\too[5] = encode(cell.f||(cell.v?'TRUE':'FALSE'));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\tvar t = datenum(parseDate(cell.v));\n\t\t\t\t\t\too[2] = 'vtc'; oo[3] = 'nd'; oo[4] = \"\"+t;\n\t\t\t\t\t\too[5] = cell.w || SSF_format(cell.z || table_fmt[14], t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'e': continue;\n\t\t\t\t}\n\t\t\t\to.push(oo.join(\":\"));\n\t\t\t}\n\t\t}\n\t\to.push(\"sheet:c:\" + (r.e.c-r.s.c+1) + \":r:\" + (r.e.r-r.s.r+1) + \":tvf:1\");\n\t\to.push(\"valueformat:1:text-wiki\");\n\t\t//o.push(\"copiedfrom:\" + ws['!ref']); // clipboard only\n\t\treturn o.join(\"\\n\");\n\t}\n\n\tfunction sheet_to_eth(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\treturn [header, sep, meta, sep, sheet_to_eth_data(ws), end].join(\"\\n\");\n\t\t// return [\"version:1.5\", sheet_to_eth_data(ws)].join(\"\\n\"); // clipboard form\n\t}\n\n\treturn {\n\t\tto_workbook: eth_to_workbook,\n\t\tto_sheet: eth_to_sheet,\n\t\tfrom_sheet: sheet_to_eth\n\t};\n})();\n\nvar PRN = /*#__PURE__*/(function() {\n\tfunction set_text_arr(data/*:string*/, arr/*:AOA*/, R/*:number*/, C/*:number*/, o/*:any*/) {\n\t\tif(o.raw) arr[R][C] = data;\n\t\telse if(data === \"\"){/* empty */}\n\t\telse if(data === 'TRUE') arr[R][C] = true;\n\t\telse if(data === 'FALSE') arr[R][C] = false;\n\t\telse if(!isNaN(fuzzynum(data))) arr[R][C] = fuzzynum(data);\n\t\telse if(!isNaN(fuzzydate(data).getDate())) arr[R][C] = parseDate(data);\n\t\telse arr[R][C] = data;\n\t}\n\n\tfunction prn_to_aoa_str(f/*:string*/, opts)/*:AOA*/ {\n\t\tvar o = opts || {};\n\t\tvar arr/*:AOA*/ = ([]/*:any*/);\n\t\tif(!f || f.length === 0) return arr;\n\t\tvar lines = f.split(/[\\r\\n]/);\n\t\tvar L = lines.length - 1;\n\t\twhile(L >= 0 && lines[L].length === 0) --L;\n\t\tvar start = 10, idx = 0;\n\t\tvar R = 0;\n\t\tfor(; R <= L; ++R) {\n\t\t\tidx = lines[R].indexOf(\" \");\n\t\t\tif(idx == -1) idx = lines[R].length; else idx++;\n\t\t\tstart = Math.max(start, idx);\n\t\t}\n\t\tfor(R = 0; R <= L; ++R) {\n\t\t\tarr[R] = [];\n\t\t\t/* TODO: confirm that widths are always 10 */\n\t\t\tvar C = 0;\n\t\t\tset_text_arr(lines[R].slice(0, start).trim(), arr, R, C, o);\n\t\t\tfor(C = 1; C <= (lines[R].length - start)/10 + 1; ++C)\n\t\t\t\tset_text_arr(lines[R].slice(start+(C-1)*10,start+C*10).trim(),arr,R,C,o);\n\t\t}\n\t\tif(o.sheetRows) arr = arr.slice(0, o.sheetRows);\n\t\treturn arr;\n\t}\n\n\t// List of accepted CSV separators\n\tvar guess_seps = {\n\t\t/*::[*/0x2C/*::]*/: ',',\n\t\t/*::[*/0x09/*::]*/: \"\\t\",\n\t\t/*::[*/0x3B/*::]*/: ';',\n\t\t/*::[*/0x7C/*::]*/: '|'\n\t};\n\n\t// CSV separator weights to be used in case of equal numbers\n\tvar guess_sep_weights = {\n\t\t/*::[*/0x2C/*::]*/: 3,\n\t\t/*::[*/0x09/*::]*/: 2,\n\t\t/*::[*/0x3B/*::]*/: 1,\n\t\t/*::[*/0x7C/*::]*/: 0\n\t};\n\n\tfunction guess_sep(str) {\n\t\tvar cnt = {}, instr = false, end = 0, cc = 0;\n\t\tfor(;end < str.length;++end) {\n\t\t\tif((cc=str.charCodeAt(end)) == 0x22) instr = !instr;\n\t\t\telse if(!instr && cc in guess_seps) cnt[cc] = (cnt[cc]||0)+1;\n\t\t}\n\n\t\tcc = [];\n\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\n\t\t\tcc.push([ cnt[end], end ]);\n\t\t}\n\n\t\tif ( !cc.length ) {\n\t\t\tcnt = guess_sep_weights;\n\t\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\n\t\t\t\tcc.push([ cnt[end], end ]);\n\t\t\t}\n\t\t}\n\n\t\tcc.sort(function(a, b) { return a[0] - b[0] || guess_sep_weights[a[1]] - guess_sep_weights[b[1]]; });\n\n\t\treturn guess_seps[cc.pop()[1]] || 0x2C;\n\t}\n\n\tfunction dsv_to_sheet_str(str/*:string*/, opts)/*:Worksheet*/ {\n\t\tvar o = opts || {};\n\t\tvar sep = \"\";\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar ws/*:Worksheet*/ = ({}/*:any*/);\n\t\tif(o.dense) ws[\"!data\"] = [];\n\t\tvar range/*:Range*/ = ({s: {c:0, r:0}, e: {c:0, r:0}}/*:any*/);\n\n\t\tif(str.slice(0,4) == \"sep=\") {\n\t\t\t// If the line ends in \\r\\n\n\t\t\tif(str.charCodeAt(5) == 13 && str.charCodeAt(6) == 10 ) {\n\t\t\t\tsep = str.charAt(4); str = str.slice(7);\n\t\t\t}\n\t\t\t// If line ends in \\r OR \\n\n\t\t\telse if(str.charCodeAt(5) == 13 || str.charCodeAt(5) == 10 ) {\n\t\t\t\tsep = str.charAt(4); str = str.slice(6);\n\t\t\t}\n\t\t\telse sep = guess_sep(str.slice(0,1024));\n\t\t}\n\t\telse if(o && o.FS) sep = o.FS;\n\t\telse sep = guess_sep(str.slice(0,1024));\n\t\tvar R = 0, C = 0, v = 0;\n\t\tvar start = 0, end = 0, sepcc = sep.charCodeAt(0), instr = false, cc=0, startcc=str.charCodeAt(0);\n\t\tvar _re/*:?RegExp*/ = o.dateNF != null ? dateNF_regex(o.dateNF) : null;\n\t\tfunction finish_cell() {\n\t\t\t/* TODO: fuzzy parsers should pass back assumed number format */\n\t\t\tvar s = str.slice(start, end); if(s.slice(-1) == \"\\r\") s = s.slice(0, -1);\n\t\t\tvar cell = ({}/*:any*/);\n\t\t\tif(s.charAt(0) == '\"' && s.charAt(s.length - 1) == '\"') s = s.slice(1,-1).replace(/\"\"/g,'\"');\n\t\t\tif(o.cellText !== false) cell.w = s;\n\t\t\tif(s.length === 0) cell.t = 'z';\n\t\t\telse if(o.raw) { cell.t = 's'; cell.v = s; }\n\t\t\telse if(s.trim().length === 0) { cell.t = 's'; cell.v = s; }\n\t\t\telse if(s.charCodeAt(0) == 0x3D) {\n\t\t\t\tif(s.charCodeAt(1) == 0x22 && s.charCodeAt(s.length - 1) == 0x22) { cell.t = 's'; cell.v = s.slice(2,-1).replace(/\"\"/g,'\"'); }\n\t\t\t\telse if(fuzzyfmla(s)) { cell.t = 'n'; cell.f = s.slice(1); }\n\t\t\t\telse { cell.t = 's'; cell.v = s; } }\n\t\t\telse if(s == \"TRUE\") { cell.t = 'b'; cell.v = true; }\n\t\t\telse if(s == \"FALSE\") { cell.t = 'b'; cell.v = false; }\n\t\t\telse if(!isNaN(v = fuzzynum(s))) { cell.t = 'n'; cell.v = v; }\n\t\t\telse if(!isNaN((v = fuzzydate(s)).getDate()) || _re && s.match(_re)) {\n\t\t\t\tcell.z = o.dateNF || table_fmt[14];\n\t\t\t\tif(_re && s.match(_re)){ var news=dateNF_fix(s, o.dateNF, (s.match(_re)||[])); v = parseDate(news); if(o && o.UTC === false) v = utc_to_local(v); }\n\t\t\t\telse if(o && o.UTC === false) v = utc_to_local(v);\n\t\t\t\telse if(o.cellText !== false && o.dateNF) cell.w = SSF_format(cell.z, v);\n\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.v = v; }\n\t\t\t\telse { cell.t = 'n'; cell.v = datenum(v); }\n\t\t\t\tif(!o.cellNF) delete cell.z;\n\t\t\t} else {\n\t\t\t\tcell.t = 's';\n\t\t\t\tcell.v = s;\n\t\t\t}\n\t\t\tif(cell.t == 'z'){}\n\t\t\telse if(o.dense) { if(!ws[\"!data\"][R]) ws[\"!data\"][R] = []; ws[\"!data\"][R][C] = cell; }\n\t\t\telse ws[encode_cell({c:C,r:R})] = cell;\n\t\t\tstart = end+1; startcc = str.charCodeAt(start);\n\t\t\tif(range.e.c < C) range.e.c = C;\n\t\t\tif(range.e.r < R) range.e.r = R;\n\t\t\tif(cc == sepcc) ++C; else { C = 0; ++R; if(o.sheetRows && o.sheetRows <= R) return true; }\n\t\t}\n\t\touter: for(;end < str.length;++end) switch((cc=str.charCodeAt(end))) {\n\t\t\tcase 0x22: if(startcc === 0x22) instr = !instr; break;\n\t\t\tcase 0x0d:\n\t\t\t\tif(instr) break;\n\t\t\t\tif(str.charCodeAt(end+1) == 0x0a) ++end;\n\t\t\t\t/* falls through */\n\t\t\tcase sepcc: case 0x0a: if(!instr && finish_cell()) break outer; break;\n\t\t\tdefault: break;\n\t\t}\n\t\tif(end - start > 0) finish_cell();\n\n\t\tws['!ref'] = encode_range(range);\n\t\treturn ws;\n\t}\n\n\tfunction prn_to_sheet_str(str/*:string*/, opts)/*:Worksheet*/ {\n\t\tif(!(opts && opts.PRN)) return dsv_to_sheet_str(str, opts);\n\t\tif(opts.FS) return dsv_to_sheet_str(str, opts);\n\t\tif(str.slice(0,4) == \"sep=\") return dsv_to_sheet_str(str, opts);\n\t\tif(str.indexOf(\"\\t\") >= 0 || str.indexOf(\",\") >= 0 || str.indexOf(\";\") >= 0) return dsv_to_sheet_str(str, opts);\n\t\treturn aoa_to_sheet(prn_to_aoa_str(str, opts), opts);\n\t}\n\n\tfunction prn_to_sheet(d/*:RawData*/, opts)/*:Worksheet*/ {\n\t\tvar str = \"\", bytes = opts.type == 'string' ? [0,0,0,0] : firstbyte(d, opts);\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': str = Base64_decode(d); break;\n\t\t\tcase 'binary': str = d; break;\n\t\t\tcase 'buffer':\n\t\t\t\tif(opts.codepage == 65001) str = d.toString('utf8'); // TODO: test if buf\n\t\t\t\telse if(opts.codepage && typeof $cptable !== 'undefined') str = $cptable.utils.decode(opts.codepage, d);\n\t\t\t\telse str = has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d);\n\t\t\t\tbreak;\n\t\t\tcase 'array': str = cc2str(d); break;\n\t\t\tcase 'string': str = d; break;\n\t\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t\t}\n\t\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str.slice(3));\n\t\telse if(opts.type != 'string' && opts.type != 'buffer' && opts.codepage == 65001) str = utf8read(str);\n\t\telse if((opts.type == 'binary') && typeof $cptable !== 'undefined' && opts.codepage) str = $cptable.utils.decode(opts.codepage, $cptable.utils.encode(28591,str));\n\t\tif(str.slice(0,19) == \"socialcalc:version:\") return ETH.to_sheet(opts.type == 'string' ? str : utf8read(str), opts);\n\t\treturn prn_to_sheet_str(str, opts);\n\t}\n\n\tfunction prn_to_workbook(d/*:RawData*/, opts)/*:Workbook*/ { return sheet_to_workbook(prn_to_sheet(d, opts), opts); }\n\n\tfunction sheet_to_prn(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\tvar o/*:Array*/ = [];\n\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\tvar dense = ws[\"!data\"] != null;\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tvar oo/*:Array*/ = [];\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[\"!data\"][R]||[])[C] : ws[coord];\n\t\t\t\tif(!cell || cell.v == null) { oo.push(\" \"); continue; }\n\t\t\t\tvar w = (cell.w || (format_cell(cell), cell.w) || \"\").slice(0,10);\n\t\t\t\twhile(w.length < 10) w += \" \";\n\t\t\t\too.push(w + (C === 0 ? \" \" : \"\"));\n\t\t\t}\n\t\t\to.push(oo.join(\"\"));\n\t\t}\n\t\treturn o.join(\"\\n\");\n\t}\n\n\treturn {\n\t\tto_workbook: prn_to_workbook,\n\t\tto_sheet: prn_to_sheet,\n\t\tfrom_sheet: sheet_to_prn\n\t};\n})();\n\n/* Excel defaults to SYLK but warns if data is not valid */\nfunction read_wb_ID(d, opts) {\n\tvar o = opts || {}, OLD_WTF = !!o.WTF; o.WTF = true;\n\ttry {\n\t\tvar out = SYLK.to_workbook(d, o);\n\t\to.WTF = OLD_WTF;\n\t\treturn out;\n\t} catch(e) {\n\t\to.WTF = OLD_WTF;\n\t\tif(!e.message.match(/SYLK bad record ID/) && OLD_WTF) throw e;\n\t\treturn PRN.to_workbook(d, opts);\n\t}\n}\n\nvar WK_ = /*#__PURE__*/(function() {\n\tfunction lotushopper(data, cb/*:RecordHopperCB*/, opts/*:any*/) {\n\t\tif(!data) return;\n\t\tprep_blob(data, data.l || 0);\n\t\tvar Enum = opts.Enum || WK1Enum;\n\t\twhile(data.l < data.length) {\n\t\t\tvar RT = data.read_shift(2);\n\t\t\tvar R = Enum[RT] || Enum[0xFFFF];\n\t\t\tvar length = data.read_shift(2);\n\t\t\tvar tgt = data.l + length;\n\t\t\tvar d = R.f && R.f(data, length, opts);\n\t\t\tdata.l = tgt;\n\t\t\tif(cb(d, R, RT)) return;\n\t\t}\n\t}\n\n\tfunction lotus_to_workbook(d/*:RawData*/, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return lotus_to_workbook_buf(s2a(Base64_decode(d)), opts);\n\t\t\tcase 'binary': return lotus_to_workbook_buf(s2a(d), opts);\n\t\t\tcase 'buffer':\n\t\t\tcase 'array': return lotus_to_workbook_buf(d, opts);\n\t\t}\n\t\tthrow \"Unsupported type \" + opts.type;\n\t}\n\n\t/* NOTE: this list intentionally starts at 1 */\n\tvar LOTUS_DATE_FMTS = [\n\t\t\"mmmm\",\n\t\t\"dd-mmm-yyyy\",\n\t\t\"dd-mmm\",\n\t\t\"mmm-yyyy\",\n\t\t\"@\", // \"text\"?\n\t\t\"mm/dd\",\n\t\t\"hh:mm:ss AM/PM\", // 7\n\t\t\"hh:mm AM/PM\",\n\t\t\"mm/dd/yyyy\",\n\t\t\"mm/dd\",\n\t\t\"hh:mm:ss\",\n\t\t\"hh:mm\" // 12\n\t];\n\n\tfunction lotus_to_workbook_buf(d, opts)/*:Workbook*/ {\n\t\tif(!d) return d;\n\t\tvar o = opts || {};\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar s/*:Worksheet*/ = ({}/*:any*/), n = \"Sheet1\", next_n = \"\", sidx = 0;\n\t\tvar sheets = {}, snames = [], realnames = [], sdata = [];\n\t\tif(o.dense) sdata = s[\"!data\"] = [];\n\n\t\tvar refguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\tvar sheetRows = o.sheetRows || 0;\n\t\tvar lastcell = {};\n\n\t\tif(d[4] == 0x51 && d[5] == 0x50 && d[6] == 0x57) return qpw_to_workbook_buf(d, opts);\n\t\tif(d[2] == 0x00) {\n\t\t\tif(d[3] == 0x08 || d[3] == 0x09) {\n\t\t\t\tif(d.length >= 16 && d[14] == 0x05 && d[15] === 0x6c) throw new Error(\"Unsupported Works 3 for Mac file\");\n\t\t\t}\n\t\t}\n\n\t\tif(d[2] == 0x02) {\n\t\t\to.Enum = WK1Enum;\n\t\t\tlotushopper(d, function(val, R, RT) { switch(RT) {\n\t\t\t\tcase 0x00: /* BOF */\n\t\t\t\t\to.vers = val;\n\t\t\t\t\tif(val >= 0x1000) o.qpro = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0xFF: /* BOF (works 3+) */\n\t\t\t\t\to.vers = val;\n\t\t\t\t\to.works = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x06: refguess = val; break; /* RANGE */\n\t\t\t\tcase 0xCC: if(val) next_n = val; break; /* SHEETNAMECS */\n\t\t\t\tcase 0xDE: next_n = val; break; /* SHEETNAMELP */\n\t\t\t\tcase 0x0F: /* LABEL */\n\t\t\t\tcase 0x33: /* STRING */\n\t\t\t\t\tif((!o.qpro && !o.works || RT == 0x33) && val[1].v.charCodeAt(0) < 0x30) val[1].v = val[1].v.slice(1);\n\t\t\t\t\tif(o.works || o.works2) val[1].v = val[1].v.replace(/\\r\\n/g, \"\\n\");\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 0x0D: /* INTEGER */\n\t\t\t\tcase 0x0E: /* NUMBER */\n\t\t\t\tcase 0x10: /* FORMULA */\n\t\t\t\t\t/* TODO: actual translation of the format code */\n\t\t\t\t\tif((val[2] & 0x70) == 0x70 && (val[2] & 0x0F) > 1 && (val[2] & 0x0F) < 15) {\n\t\t\t\t\t\tval[1].z = o.dateNF || LOTUS_DATE_FMTS[(val[2] & 0x0F)-1] || table_fmt[14];\n\t\t\t\t\t\tif(o.cellDates) { val[1].v = numdate(val[1].v); val[1].t = typeof val[1].v == \"number\" ? 'n' : 'd'; }\n\t\t\t\t\t}\n\n\t\t\t\t\tif(o.qpro) {\n\t\t\t\t\t\tif(val[3] > sidx) {\n\t\t\t\t\t\t\ts[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t\t\tsheets[n] = s;\n\t\t\t\t\t\t\tsnames.push(n);\n\t\t\t\t\t\t\ts = ({}/*:any*/); if(o.dense) sdata = s[\"!data\"] = [];\n\t\t\t\t\t\t\trefguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\t\t\t\t\t\tsidx = val[3]; n = next_n || \"Sheet\" + (sidx + 1); next_n = \"\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tvar tmpcell = o.dense ? (sdata[val[0].r]||[])[val[0].c] : s[encode_cell(val[0])];\n\t\t\t\t\tif(tmpcell) {\n\t\t\t\t\t\ttmpcell.t = val[1].t; tmpcell.v = val[1].v;\n\t\t\t\t\t\tif(val[1].z != null) tmpcell.z = val[1].z;\n\t\t\t\t\t\tif(val[1].f != null) tmpcell.f = val[1].f;\n\t\t\t\t\t\tlastcell = tmpcell;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(o.dense) {\n\t\t\t\t\t\tif(!sdata[val[0].r]) sdata[val[0].r] = [];\n\t\t\t\t\t\tsdata[val[0].r][val[0].c] = val[1];\n\t\t\t\t\t} else s[encode_cell(val[0])] = val[1];\n\t\t\t\t\tlastcell = val[1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x5405: o.works2 = true; break;\n\t\t\t\tcase 0x5402: {\n\t\t\t\t\t/* TODO: enumerate all extended number formats */\n\t\t\t\t\tif(val == 0x14a1) {\n\t\t\t\t\t\tlastcell.z = \"hh:mm:ss\";\n\t\t\t\t\t\tif(o.cellDates && lastcell.t == \"n\") {\n\t\t\t\t\t\t\tlastcell.v = numdate(lastcell.v); lastcell.t = typeof lastcell.v == \"number\" ? 'n' : 'd';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t}}, o);\n\t\t} else if(d[2] == 0x1A || d[2] == 0x0E) {\n\t\t\to.Enum = WK3Enum;\n\t\t\tif(d[2] == 0x0E) { o.qpro = true; d.l = 0; }\n\t\t\tlotushopper(d, function(val, R, RT) { switch(RT) {\n\t\t\t\tcase 0xCC: n = val; break; /* SHEETNAMECS */\n\t\t\t\tcase 0x16: /* LABEL16 */\n\t\t\t\t\tif(val[1].v.charCodeAt(0) < 0x30) val[1].v = val[1].v.slice(1);\n\t\t\t\t\t// TODO: R9 appears to encode control codes this way -- verify against other versions\n\t\t\t\t\tval[1].v = val[1].v.replace(/\\x0F./g, function($$) { return String.fromCharCode($$.charCodeAt(1) - 0x20); }).replace(/\\r\\n/g, \"\\n\");\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 0x17: /* NUMBER17 */\n\t\t\t\tcase 0x18: /* NUMBER18 */\n\t\t\t\tcase 0x19: /* FORMULA19 */\n\t\t\t\tcase 0x25: /* NUMBER25 */\n\t\t\t\tcase 0x27: /* NUMBER27 */\n\t\t\t\tcase 0x28: /* FORMULA28 */\n\t\t\t\t\tif(val[3] > sidx) {\n\t\t\t\t\t\ts[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t\tsheets[n] = s;\n\t\t\t\t\t\tsnames.push(n);\n\t\t\t\t\t\ts = ({}/*:any*/); if(o.dense) sdata = s[\"!data\"] = [];\n\t\t\t\t\t\trefguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\t\t\t\t\tsidx = val[3]; n = \"Sheet\" + (sidx + 1);\n\t\t\t\t\t}\n\t\t\t\t\tif(sheetRows > 0 && val[0].r >= sheetRows) break;\n\t\t\t\t\tif(o.dense) {\n\t\t\t\t\t\tif(!sdata[val[0].r]) sdata[val[0].r] = [];\n\t\t\t\t\t\tsdata[val[0].r][val[0].c] = val[1];\n\t\t\t\t\t} else s[encode_cell(val[0])] = val[1];\n\t\t\t\t\tif(refguess.e.c < val[0].c) refguess.e.c = val[0].c;\n\t\t\t\t\tif(refguess.e.r < val[0].r) refguess.e.r = val[0].r;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x1B: /* XFORMAT */\n\t\t\t\t\tif(val[0x36b0]) realnames[val[0x36b0][0]] = val[0x36b0][1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0601: /* SHEETINFOQP */\n\t\t\t\t\trealnames[val[0]] = val[1]; if(val[0] == sidx) n = val[1]; break;\n\t\t\t\tdefault: break;\n\t\t\t}}, o);\n\t\t} else throw new Error(\"Unrecognized LOTUS BOF \" + d[2]);\n\t\ts[\"!ref\"] = encode_range(refguess);\n\t\tsheets[next_n || n] = s;\n\t\tsnames.push(next_n || n);\n\t\tif(!realnames.length) return { SheetNames: snames, Sheets: sheets };\n\t\tvar osheets = {}, rnames = [];\n\t\t/* TODO: verify no collisions */\n\t\tfor(var i = 0; i < realnames.length; ++i) if(sheets[snames[i]]) {\n\t\t\trnames.push(realnames[i] || snames[i]);\n\t\t\tosheets[realnames[i]] = sheets[realnames[i]] || sheets[snames[i]];\n\t\t} else {\n\t\t\trnames.push(realnames[i]);\n\t\t\tosheets[realnames[i]] = ({ \"!ref\": \"A1\" });\n\t\t}\n\t\treturn { SheetNames: rnames, Sheets: osheets };\n\t}\n\n\tfunction sheet_to_wk1(ws/*:Worksheet*/, opts/*:WriteOpts*/) {\n\t\tvar o = opts || {};\n\t\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\t\tif(o.type == \"string\") throw new Error(\"Cannot write WK1 to JS string\");\n\t\tvar ba = buf_array();\n\t\tvar range = safe_decode_range(ws[\"!ref\"]);\n\t\tvar dense = ws[\"!data\"] != null;\n\t\tvar cols = [];\n\n\t\twrite_biff_rec(ba, 0x00, write_BOF_WK1(0x0406));\n\t\twrite_biff_rec(ba, 0x06, write_RANGE(range));\n\t\tvar max_R = Math.min(range.e.r, 8191);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);\n\t\tfor(var R = range.s.r; R <= max_R; ++R) {\n\t\t\tvar rr = encode_row(R);\n\t\t\tfor(C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t\tvar cell = dense ? (ws[\"!data\"][R]||[])[C] : ws[cols[C] + rr];\n\t\t\t\tif(!cell || cell.t == \"z\") continue;\n\t\t\t\t/* TODO: formula records */\n\t\t\t\tswitch(cell.t) {\n\t\t\t\tcase \"n\":\n\t\t\t\t\tif((cell.v|0)==cell.v && cell.v >= -32768 && cell.v <= 32767) write_biff_rec(ba, 0x0d, write_INTEGER(R, C, cell));\n\t\t\t\t\telse write_biff_rec(ba, 0x0e, write_NUMBER(R, C, cell));\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"d\":\n\t\t\t\t\tvar dc = datenum(cell.v);\n\t\t\t\t\tif((dc|0)==dc && dc >= -32768 && dc <= 32767) write_biff_rec(ba, 0x0d, write_INTEGER(R, C, {t:\"n\", v:dc, z:cell.z || table_fmt[14]}));\n\t\t\t\t\telse write_biff_rec(ba, 0x0e, write_NUMBER(R, C, {t:\"n\", v:dc, z:cell.z || table_fmt[14]}));\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tvar str = format_cell(cell);\n\t\t\t\t\twrite_biff_rec(ba, 0x0F, write_LABEL(R, C, str.slice(0, 239)));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\twrite_biff_rec(ba, 0x01);\n\t\treturn ba.end();\n\t}\n\n\tfunction book_to_wk3(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\t\tvar o = opts || {};\n\t\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\t\tif(o.type == \"string\") throw new Error(\"Cannot write WK3 to JS string\");\n\t\tvar ba = buf_array();\n\n\t\twrite_biff_rec(ba, 0x00, write_BOF_WK3(wb));\n\n\t\tfor(var i = 0, cnt = 0; i < wb.SheetNames.length; ++i) if((wb.Sheets[wb.SheetNames[i]] || {})[\"!ref\"]) write_biff_rec(ba, 0x1b, write_XFORMAT_SHEETNAME(wb.SheetNames[i], cnt++));\n\n\t\tvar wsidx = 0;\n\t\tfor(i = 0; i < wb.SheetNames.length; ++i) {\n\t\t\tvar ws = wb.Sheets[wb.SheetNames[i]];\n\t\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\t\tvar range = safe_decode_range(ws[\"!ref\"]);\n\t\t\tvar dense = ws[\"!data\"] != null;\n\t\t\tvar cols = [];\n\t\t\tvar max_R = Math.min(range.e.r, 8191);\n\t\t\tfor(var R = range.s.r; R <= max_R; ++R) {\n\t\t\t\tvar rr = encode_row(R);\n\t\t\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\t\t\tvar ref = cols[C] + rr;\n\t\t\t\t\tvar cell = dense ? (ws[\"!data\"][R]||[])[C] : ws[ref];\n\t\t\t\t\tif(!cell || cell.t == \"z\") continue;\n\t\t\t\t\t/* TODO: FORMULA19 NUMBER18 records */\n\t\t\t\t\tif(cell.t == \"n\") {\n\t\t\t\t\t\twrite_biff_rec(ba, 0x17, write_NUMBER_17(R, C, wsidx, cell.v));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar str = format_cell(cell);\n\t\t\t\t\t\t/* TODO: max len? */\n\t\t\t\t\t\twrite_biff_rec(ba, 0x16, write_LABEL_16(R, C, wsidx, str.slice(0, 239)));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t++wsidx;\n\t\t}\n\n\t\twrite_biff_rec(ba, 0x01);\n\t\treturn ba.end();\n\t}\n\n\n\tfunction write_BOF_WK1(v/*:number*/) {\n\t\tvar out = new_buf(2);\n\t\tout.write_shift(2, v);\n\t\treturn out;\n\t}\n\n\tfunction write_BOF_WK3(wb/*:Workbook*/) {\n\t\tvar out = new_buf(26);\n\t\tout.write_shift(2, 0x1000);\n\t\tout.write_shift(2, 0x0004);\n\t\tout.write_shift(4, 0x0000);\n\t\tvar rows = 0, cols = 0, wscnt = 0;\n\t\tfor(var i = 0; i < wb.SheetNames.length; ++i) {\n\t\t\tvar name = wb.SheetNames[i];\n\t\t\tvar ws = wb.Sheets[name];\n\t\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\t\t++wscnt;\n\t\t\tvar range = decode_range(ws[\"!ref\"]);\n\t\t\tif(rows < range.e.r) rows = range.e.r;\n\t\t\tif(cols < range.e.c) cols = range.e.c;\n\t\t}\n\t\tif(rows > 8191) rows = 8191;\n\t\tout.write_shift(2, rows);\n\t\tout.write_shift(1, wscnt);\n\t\tout.write_shift(1, cols);\n\t\tout.write_shift(2, 0x00);\n\t\tout.write_shift(2, 0x00);\n\t\tout.write_shift(1, 0x01);\n\t\tout.write_shift(1, 0x02);\n\t\tout.write_shift(4, 0);\n\t\tout.write_shift(4, 0);\n\t\treturn out;\n\t}\n\n\tfunction parse_RANGE(blob, length, opts) {\n\t\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\t\tif(length == 8 && opts.qpro) {\n\t\t\to.s.c = blob.read_shift(1);\n\t\t\tblob.l++;\n\t\t\to.s.r = blob.read_shift(2);\n\t\t\to.e.c = blob.read_shift(1);\n\t\t\tblob.l++;\n\t\t\to.e.r = blob.read_shift(2);\n\t\t\treturn o;\n\t\t}\n\t\to.s.c = blob.read_shift(2);\n\t\to.s.r = blob.read_shift(2);\n\t\tif(length == 12 && opts.qpro) blob.l += 2;\n\t\to.e.c = blob.read_shift(2);\n\t\to.e.r = blob.read_shift(2);\n\t\tif(length == 12 && opts.qpro) blob.l += 2;\n\t\tif(o.s.c == 0xFFFF) o.s.c = o.e.c = o.s.r = o.e.r = 0;\n\t\treturn o;\n\t}\n\tfunction write_RANGE(range) {\n\t\tvar out = new_buf(8);\n\t\tout.write_shift(2, range.s.c);\n\t\tout.write_shift(2, range.s.r);\n\t\tout.write_shift(2, range.e.c);\n\t\tout.write_shift(2, range.e.r);\n\t\treturn out;\n\t}\n\n\tfunction parse_cell(blob, length, opts) {\n\t\tvar o = [{c:0,r:0}, {t:'n',v:0}, 0, 0];\n\t\tif(opts.qpro && opts.vers != 0x5120) {\n\t\t\to[0].c = blob.read_shift(1);\n\t\t\to[3] = blob.read_shift(1);\n\t\t\to[0].r = blob.read_shift(2);\n\t\t\tblob.l+=2;\n\t\t} else if(opts.works) { // TODO: verify with more complex works3-4 examples\n\t\t\to[0].c = blob.read_shift(2); o[0].r = blob.read_shift(2);\n\t\t\to[2] = blob.read_shift(2);\n\t\t} else {\n\t\t\to[2] = blob.read_shift(1);\n\t\t\to[0].c = blob.read_shift(2); o[0].r = blob.read_shift(2);\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction get_wk1_fmt(cell)/*:number*/ {\n\t\t/* TODO: some fuzzy matching on the number format */\n\t\tif(cell.z && fmt_is_date(cell.z)) {\n\t\t\treturn 0xf0 | (LOTUS_DATE_FMTS.indexOf(cell.z) + 1 || 2);\n\t\t}\n\t\treturn 0xFF;\n\t}\n\tfunction parse_LABEL(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].t = 's';\n\t\tif((opts.vers & 0xFFFE) == 0x5120) { // WQ1 / WQ2\n\t\t\tblob.l++;\n\t\t\tvar len = blob.read_shift(1);\n\t\t\to[1].v = blob.read_shift(len, 'utf8');\n\t\t\treturn o;\n\t\t}\n\t\tif(opts.qpro) blob.l++;\n\t\to[1].v = blob.read_shift(tgt - blob.l, 'cstr');\n\t\treturn o;\n\t}\n\tfunction write_LABEL(R, C, s) {\n\t\t/* TODO: encoding */\n\t\tvar o = new_buf(7 + s.length);\n\t\to.write_shift(1, 0xFF);\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, 0x27); // ??\n\t\tfor(var i = 0; i < o.length; ++i) {\n\t\t\tvar cc = s.charCodeAt(i);\n\t\t\to.write_shift(1, cc >= 0x80 ? 0x5F : cc);\n\t\t}\n\t\to.write_shift(1, 0);\n\t\treturn o;\n\t}\n\tfunction parse_STRING(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].t = 's';\n\t\tif(opts.vers == 0x5120) {\n\t\t\tvar len = blob.read_shift(1);\n\t\t\to[1].v = blob.read_shift(len, 'utf8');\n\t\t\treturn o;\n\t\t}\n\t\to[1].v = blob.read_shift(tgt - blob.l, 'cstr');\n\t\treturn o;\n\t}\n\n\tfunction parse_INTEGER(blob, length, opts) {\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].v = blob.read_shift(2, 'i');\n\t\treturn o;\n\t}\n\tfunction write_INTEGER(R, C, cell) {\n\t\tvar o = new_buf(7);\n\t\to.write_shift(1, get_wk1_fmt(cell));\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(2, cell.v, 'i');\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER(blob, length, opts) {\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].v = blob.read_shift(8, 'f');\n\t\treturn o;\n\t}\n\tfunction write_NUMBER(R, C, cell) {\n\t\tvar o = new_buf(13);\n\t\to.write_shift(1, get_wk1_fmt(cell));\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(8, cell.v, 'f');\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\t/* TODO: formula */\n\t\to[1].v = blob.read_shift(8, 'f');\n\t\tif(opts.qpro) blob.l = tgt;\n\t\telse {\n\t\t\tvar flen = blob.read_shift(2);\n\t\t\twk1_fmla_to_csf(blob.slice(blob.l, blob.l + flen), o);\n\t\t\tblob.l += flen;\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction wk1_parse_rc(B, V, col) {\n\t\tvar rel = V & 0x8000;\n\t\tV &= ~0x8000;\n\t\tV = (rel ? B : 0) + ((V >= 0x2000) ? V - 0x4000 : V);\n\t\treturn (rel ? \"\" : \"$\") + (col ? encode_col(V) : encode_row(V));\n\t}\n\t/* var oprec = [\n\t\t8, 8, 8, 8, 8, 8, 8, 8, 6, 4, 4, 5, 5, 7, 3, 3,\n\t\t3, 3, 3, 3, 1, 1, 2, 6, 8, 8, 8, 8, 8, 8, 8, 8\n\t]; */\n\t/* TODO: flesh out */\n\tvar FuncTab = {\n\t\t0x1F: [\"NA\", 0],\n\t\t// 0x20: [\"ERR\", 0],\n\t\t0x21: [\"ABS\", 1],\n\t\t0x22: [\"TRUNC\", 1],\n\t\t0x23: [\"SQRT\", 1],\n\t\t0x24: [\"LOG\", 1],\n\t\t0x25: [\"LN\", 1],\n\t\t0x26: [\"PI\", 0],\n\t\t0x27: [\"SIN\", 1],\n\t\t0x28: [\"COS\", 1],\n\t\t0x29: [\"TAN\", 1],\n\t\t0x2A: [\"ATAN2\", 2],\n\t\t0x2B: [\"ATAN\", 1],\n\t\t0x2C: [\"ASIN\", 1],\n\t\t0x2D: [\"ACOS\", 1],\n\t\t0x2E: [\"EXP\", 1],\n\t\t0x2F: [\"MOD\", 2],\n\t\t// 0x30\n\t\t0x31: [\"ISNA\", 1],\n\t\t0x32: [\"ISERR\", 1],\n\t\t0x33: [\"FALSE\", 0],\n\t\t0x34: [\"TRUE\", 0],\n\t\t0x35: [\"RAND\", 0],\n\t\t0x36: [\"DATE\", 3],\n\t\t// 0x37 NOW\n\t\t// 0x38 PMT\n\t\t// 0x39 PV\n\t\t// 0x3A FV\n\t\t// 0x3B IF\n\t\t// 0x3C DAY\n\t\t// 0x3D MONTH\n\t\t// 0x3E YEAR\n\t\t0x3F: [\"ROUND\", 2],\n\t\t0x40: [\"TIME\", 3],\n\t\t// 0x41 HOUR\n\t\t// 0x42 MINUTE\n\t\t// 0x43 SECOND\n\t\t0x44: [\"ISNUMBER\", 1],\n\t\t0x45: [\"ISTEXT\", 1],\n\t\t0x46: [\"LEN\", 1],\n\t\t0x47: [\"VALUE\", 1],\n\t\t// 0x48: [\"FIXED\", ?? 1],\n\t\t0x49: [\"MID\", 3],\n\t\t0x4A: [\"CHAR\", 1],\n\t\t// 0x4B\n\t\t// 0x4C FIND\n\t\t// 0x4D DATEVALUE\n\t\t// 0x4E TIMEVALUE\n\t\t// 0x4F CELL\n\t\t0x50: [\"SUM\", 69],\n\t\t0x51: [\"AVERAGEA\", 69],\n\t\t0x52: [\"COUNTA\", 69],\n\t\t0x53: [\"MINA\", 69],\n\t\t0x54: [\"MAXA\", 69],\n\t\t// 0x55 VLOOKUP\n\t\t// 0x56 NPV\n\t\t// 0x57 VAR\n\t\t// 0x58 STD\n\t\t// 0x59 IRR\n\t\t// 0x5A HLOOKUP\n\t\t// 0x5B DSUM\n\t\t// 0x5C DAVERAGE\n\t\t// 0x5D DCOUNTA\n\t\t// 0x5E DMIN\n\t\t// 0x5F DMAX\n\t\t// 0x60 DVARP\n\t\t// 0x61 DSTDEVP\n\t\t// 0x62 INDEX\n\t\t// 0x63 COLS\n\t\t// 0x64 ROWS\n\t\t// 0x65 REPEAT\n\t\t0x66: [\"UPPER\", 1],\n\t\t0x67: [\"LOWER\", 1],\n\t\t// 0x68 LEFT\n\t\t// 0x69 RIGHT\n\t\t// 0x6A REPLACE\n\t\t0x6B: [\"PROPER\", 1],\n\t\t// 0x6C CELL\n\t\t0x6D: [\"TRIM\", 1],\n\t\t// 0x6E CLEAN\n\t\t0x6F: [\"T\", 1]\n\t\t// 0x70 V\n\t};\n\tvar BinOpTab = [\n\t\t \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t \"\", \"+\", \"-\", \"*\", \"/\", \"^\", \"=\", \"<>\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t\"<=\", \">=\", \"<\", \">\", \"\", \"\", \"\", \"\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t \"&\", \"\", \"\", \"\", \"\", \"\", \"\", \"\" // eslint-disable-line no-mixed-spaces-and-tabs\n\t];\n\n\tfunction wk1_fmla_to_csf(blob, o) {\n\t\tprep_blob(blob, 0);\n\t\tvar out = [], argc = 0, R = \"\", C = \"\", argL = \"\", argR = \"\";\n\t\twhile(blob.l < blob.length) {\n\t\t\tvar cc = blob[blob.l++];\n\t\t\tswitch(cc) {\n\t\t\t\tcase 0x00: out.push(blob.read_shift(8, 'f')); break;\n\t\t\t\tcase 0x01: {\n\t\t\t\t\tC = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tR = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tout.push(C + R);\n\t\t\t\t} break;\n\t\t\t\tcase 0x02: {\n\t\t\t\t\tvar c = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tvar r = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tC = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tR = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tout.push(c + r + \":\" + C + R);\n\t\t\t\t} break;\n\t\t\t\tcase 0x03:\n\t\t\t\t\tif(blob.l < blob.length) { console.error(\"WK1 premature formula end\"); return; }\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x04: out.push(\"(\" + out.pop() + \")\"); break;\n\t\t\t\tcase 0x05: out.push(blob.read_shift(2)); break;\n\t\t\t\tcase 0x06: {\n\t\t\t\t\t/* TODO: text encoding */\n\t\t\t\t\tvar Z = \"\"; while((cc = blob[blob.l++])) Z += String.fromCharCode(cc);\n\t\t\t\t\tout.push('\"' + Z.replace(/\"/g, '\"\"') + '\"');\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x08: out.push(\"-\" + out.pop()); break;\n\t\t\t\tcase 0x17: out.push(\"+\" + out.pop()); break;\n\t\t\t\tcase 0x16: out.push(\"NOT(\" + out.pop() + \")\"); break;\n\n\t\t\t\tcase 0x14: case 0x15: {\n\t\t\t\t\targR = out.pop(); argL = out.pop();\n\t\t\t\t\tout.push([\"AND\", \"OR\"][cc - 0x14] + \"(\" + argL + \",\" + argR + \")\");\n\t\t\t\t} break;\n\n\t\t\t\tdefault:\n\t\t\t\t\tif(cc < 0x20 && BinOpTab[cc]) {\n\t\t\t\t\t\targR = out.pop(); argL = out.pop();\n\t\t\t\t\t\tout.push(argL + BinOpTab[cc] + argR);\n\t\t\t\t\t} else if(FuncTab[cc]) {\n\t\t\t\t\t\targc = FuncTab[cc][1];\n\t\t\t\t\t\tif(argc == 69) argc = blob[blob.l++];\n\t\t\t\t\t\tif(argc > out.length) { console.error(\"WK1 bad formula parse 0x\" + cc.toString(16) + \":|\" + out.join(\"|\") + \"|\"); return; }\n\t\t\t\t\t\tvar args = out.slice(-argc);\n\t\t\t\t\t\tout.length -= argc;\n\t\t\t\t\t\tout.push(FuncTab[cc][0] + \"(\" + args.join(\",\") + \")\");\n\t\t\t\t\t}\n\t\t\t\t\telse if(cc <= 0x07) return console.error(\"WK1 invalid opcode \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x18) return console.error(\"WK1 unsupported op \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x1E) return console.error(\"WK1 invalid opcode \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x73) return console.error(\"WK1 unsupported function opcode \" + cc.toString(16));\n\t\t\t\t\t// possible future functions ??\n\t\t\t\t\telse return console.error(\"WK1 unrecognized opcode \" + cc.toString(16));\n\t\t\t}\n\t\t}\n\t\tif(out.length == 1) o[1].f = \"\" + out[0];\n\t\telse console.error(\"WK1 bad formula parse |\" + out.join(\"|\") + \"|\");\n\t}\n\n\n\tfunction parse_cell_3(blob/*::, length*/) {\n\t\tvar o = [{c:0,r:0}, {t:'n',v:0}, 0];\n\t\to[0].r = blob.read_shift(2); o[3] = blob[blob.l++]; o[0].c = blob[blob.l++];\n\t\treturn o;\n\t}\n\n\tfunction parse_LABEL_16(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\to[1].t = 's';\n\t\to[1].v = blob.read_shift(length - 4, 'cstr');\n\t\treturn o;\n\t}\n\tfunction write_LABEL_16(R, C, wsidx, s) {\n\t\t/* TODO: encoding */\n\t\tvar o = new_buf(6 + s.length);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, wsidx);\n\t\to.write_shift(1, C);\n\t\to.write_shift(1, 0x27);\n\t\tfor(var i = 0; i < s.length; ++i) {\n\t\t\tvar cc = s.charCodeAt(i);\n\t\t\to.write_shift(1, cc >= 0x80 ? 0x5F : cc);\n\t\t}\n\t\to.write_shift(1, 0);\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_18(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\to[1].v = blob.read_shift(2);\n\t\tvar v = o[1].v >> 1;\n\t\tif(o[1].v & 0x1) {\n\t\t\tswitch(v & 0x07) {\n\t\t\t\tcase 0: v = (v >> 3) * 5000; break;\n\t\t\t\tcase 1: v = (v >> 3) * 500; break;\n\t\t\t\tcase 2: v = (v >> 3) / 20; break;\n\t\t\t\tcase 3: v = (v >> 3) / 200; break;\n\t\t\t\tcase 4: v = (v >> 3) / 2000; break;\n\t\t\t\tcase 5: v = (v >> 3) / 20000; break;\n\t\t\t\tcase 6: v = (v >> 3) / 16; break;\n\t\t\t\tcase 7: v = (v >> 3) / 64; break;\n\t\t\t}\n\t\t}\n\t\to[1].v = v;\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_17(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(4);\n\t\tvar v2 = blob.read_shift(4);\n\t\tvar e = blob.read_shift(2);\n\t\tif(e == 0xFFFF) {\n\t\t\tif(v1 === 0 && v2 === 0xC0000000) { o[1].t = \"e\"; o[1].v = 0x0F; } // ERR -> #VALUE!\n\t\t\telse if(v1 === 0 && v2 === 0xD0000000) { o[1].t = \"e\"; o[1].v = 0x2A; } // NA -> #N/A\n\t\t\telse o[1].v = 0;\n\t\t\treturn o;\n\t\t}\n\t\tvar s = e & 0x8000; e = (e&0x7FFF) - 16446;\n\t\to[1].v = (1 - s*2) * (v2 * Math.pow(2, e+32) + v1 * Math.pow(2, e));\n\t\treturn o;\n\t}\n\tfunction write_NUMBER_17(R, C, wsidx, v) {\n\t\tvar o = new_buf(14);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, wsidx);\n\t\to.write_shift(1, C);\n\t\tif(v == 0) {\n\t\t\to.write_shift(4, 0);\n\t\t\to.write_shift(4, 0);\n\t\t\to.write_shift(2, 0xFFFF);\n\t\t\treturn o;\n\t\t}\n\t\tvar s = 0, e = 0, v1 = 0, v2 = 0;\n\t\tif(v < 0) { s = 1; v = -v; }\n\t\te = Math.log2(v) | 0;\n\t\tv /= Math.pow(2, e-31);\n\t\tv2 = (v)>>>0;\n\t\tif((v2&0x80000000) == 0) { v/=2; ++e; v2 = v >>> 0; }\n\t\tv -= v2;\n\t\tv2 |= 0x80000000;\n\t\tv2 >>>= 0;\n\t\tv *= Math.pow(2, 32);\n\t\tv1 = v>>>0;\n\t\to.write_shift(4, v1);\n\t\to.write_shift(4, v2);\n\t\te += 0x3FFF + (s ? 0x8000 : 0);\n\t\to.write_shift(2, e);\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA_19(blob, length) {\n\t\tvar o = parse_NUMBER_17(blob, 14);\n\t\tblob.l += length - 14; /* TODO: WK3 formula */\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_25(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(4);\n\t\to[1].v = v1 >> 6;\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_27(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(8,'f');\n\t\to[1].v = v1;\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA_28(blob, length) {\n\t\tvar o = parse_NUMBER_27(blob, 12);\n\t\tblob.l += length - 12; /* TODO: formula */\n\t\treturn o;\n\t}\n\n\tfunction parse_SHEETNAMECS(blob, length) {\n\t\treturn blob[blob.l + length - 1] == 0 ? blob.read_shift(length, 'cstr') : \"\";\n\t}\n\n\tfunction parse_SHEETNAMELP(blob, length) {\n\t\tvar len = blob[blob.l++];\n\t\tif(len > length - 1) len = length - 1;\n\t\tvar o = \"\"; while(o.length < len) o += String.fromCharCode(blob[blob.l++]);\n\t\treturn o;\n\t}\n\n\tfunction parse_SHEETINFOQP(blob, length, opts) {\n\t\tif(!opts.qpro || length < 21) return;\n\t\tvar id = blob.read_shift(1);\n\t\tblob.l += 17;\n\t\tblob.l += 1; //var len = blob.read_shift(1);\n\t\tblob.l += 2;\n\t\tvar nm = blob.read_shift(length - 21, 'cstr');\n\t\treturn [id, nm];\n\t}\n\n\tfunction parse_XFORMAT(blob, length) {\n\t\tvar o = {}, tgt = blob.l + length;\n\t\twhile(blob.l < tgt) {\n\t\t\tvar dt = blob.read_shift(2);\n\t\t\tif(dt == 0x36b0) {\n\t\t\t\to[dt] = [0, \"\"];\n\t\t\t\to[dt][0] = blob.read_shift(2);\n\t\t\t\twhile(blob[blob.l]) { o[dt][1] += String.fromCharCode(blob[blob.l]); blob.l++; } blob.l++;\n\t\t\t}\n\t\t\t// TODO: 0x3a99 ??\n\t\t}\n\t\treturn o;\n\t}\n\tfunction write_XFORMAT_SHEETNAME(name, wsidx) {\n\t\tvar out = new_buf(5 + name.length);\n\t\tout.write_shift(2, 0x36b0);\n\t\tout.write_shift(2, wsidx);\n\t\tfor(var i = 0; i < name.length; ++i) {\n\t\t\tvar cc = name.charCodeAt(i);\n\t\t\tout[out.l++] = cc > 0x7F ? 0x5F : cc;\n\t\t}\n\t\tout[out.l++] = 0;\n\t\treturn out;\n\t}\n\n\tvar WK1Enum = {\n\t\t/*::[*/0x0000/*::]*/: { n:\"BOF\", f:parseuint16 },\n\t\t/*::[*/0x0001/*::]*/: { n:\"EOF\" },\n\t\t/*::[*/0x0002/*::]*/: { n:\"CALCMODE\" },\n\t\t/*::[*/0x0003/*::]*/: { n:\"CALCORDER\" },\n\t\t/*::[*/0x0004/*::]*/: { n:\"SPLIT\" },\n\t\t/*::[*/0x0005/*::]*/: { n:\"SYNC\" },\n\t\t/*::[*/0x0006/*::]*/: { n:\"RANGE\", f:parse_RANGE },\n\t\t/*::[*/0x0007/*::]*/: { n:\"WINDOW1\" },\n\t\t/*::[*/0x0008/*::]*/: { n:\"COLW1\" },\n\t\t/*::[*/0x0009/*::]*/: { n:\"WINTWO\" },\n\t\t/*::[*/0x000A/*::]*/: { n:\"COLW2\" },\n\t\t/*::[*/0x000B/*::]*/: { n:\"NAME\" },\n\t\t/*::[*/0x000C/*::]*/: { n:\"BLANK\" },\n\t\t/*::[*/0x000D/*::]*/: { n:\"INTEGER\", f:parse_INTEGER },\n\t\t/*::[*/0x000E/*::]*/: { n:\"NUMBER\", f:parse_NUMBER },\n\t\t/*::[*/0x000F/*::]*/: { n:\"LABEL\", f:parse_LABEL },\n\t\t/*::[*/0x0010/*::]*/: { n:\"FORMULA\", f:parse_FORMULA },\n\t\t/*::[*/0x0018/*::]*/: { n:\"TABLE\" },\n\t\t/*::[*/0x0019/*::]*/: { n:\"ORANGE\" },\n\t\t/*::[*/0x001A/*::]*/: { n:\"PRANGE\" },\n\t\t/*::[*/0x001B/*::]*/: { n:\"SRANGE\" },\n\t\t/*::[*/0x001C/*::]*/: { n:\"FRANGE\" },\n\t\t/*::[*/0x001D/*::]*/: { n:\"KRANGE1\" },\n\t\t/*::[*/0x0020/*::]*/: { n:\"HRANGE\" },\n\t\t/*::[*/0x0023/*::]*/: { n:\"KRANGE2\" },\n\t\t/*::[*/0x0024/*::]*/: { n:\"PROTEC\" },\n\t\t/*::[*/0x0025/*::]*/: { n:\"FOOTER\" },\n\t\t/*::[*/0x0026/*::]*/: { n:\"HEADER\" },\n\t\t/*::[*/0x0027/*::]*/: { n:\"SETUP\" },\n\t\t/*::[*/0x0028/*::]*/: { n:\"MARGINS\" },\n\t\t/*::[*/0x0029/*::]*/: { n:\"LABELFMT\" },\n\t\t/*::[*/0x002A/*::]*/: { n:\"TITLES\" },\n\t\t/*::[*/0x002B/*::]*/: { n:\"SHEETJS\" },\n\t\t/*::[*/0x002D/*::]*/: { n:\"GRAPH\" },\n\t\t/*::[*/0x002E/*::]*/: { n:\"NGRAPH\" },\n\t\t/*::[*/0x002F/*::]*/: { n:\"CALCCOUNT\" },\n\t\t/*::[*/0x0030/*::]*/: { n:\"UNFORMATTED\" },\n\t\t/*::[*/0x0031/*::]*/: { n:\"CURSORW12\" },\n\t\t/*::[*/0x0032/*::]*/: { n:\"WINDOW\" },\n\t\t/*::[*/0x0033/*::]*/: { n:\"STRING\", f:parse_STRING },\n\t\t/*::[*/0x0037/*::]*/: { n:\"PASSWORD\" },\n\t\t/*::[*/0x0038/*::]*/: { n:\"LOCKED\" },\n\t\t/*::[*/0x003C/*::]*/: { n:\"QUERY\" },\n\t\t/*::[*/0x003D/*::]*/: { n:\"QUERYNAME\" },\n\t\t/*::[*/0x003E/*::]*/: { n:\"PRINT\" },\n\t\t/*::[*/0x003F/*::]*/: { n:\"PRINTNAME\" },\n\t\t/*::[*/0x0040/*::]*/: { n:\"GRAPH2\" },\n\t\t/*::[*/0x0041/*::]*/: { n:\"GRAPHNAME\" },\n\t\t/*::[*/0x0042/*::]*/: { n:\"ZOOM\" },\n\t\t/*::[*/0x0043/*::]*/: { n:\"SYMSPLIT\" },\n\t\t/*::[*/0x0044/*::]*/: { n:\"NSROWS\" },\n\t\t/*::[*/0x0045/*::]*/: { n:\"NSCOLS\" },\n\t\t/*::[*/0x0046/*::]*/: { n:\"RULER\" },\n\t\t/*::[*/0x0047/*::]*/: { n:\"NNAME\" },\n\t\t/*::[*/0x0048/*::]*/: { n:\"ACOMM\" },\n\t\t/*::[*/0x0049/*::]*/: { n:\"AMACRO\" },\n\t\t/*::[*/0x004A/*::]*/: { n:\"PARSE\" },\n\t\t// 0x0064\n\t\t/*::[*/0x0066/*::]*/: { n:\"PRANGES??\" },\n\t\t/*::[*/0x0067/*::]*/: { n:\"RRANGES??\" },\n\t\t/*::[*/0x0068/*::]*/: { n:\"FNAME??\" },\n\t\t/*::[*/0x0069/*::]*/: { n:\"MRANGES??\" },\n\t\t// 0x0096\n\t\t// 0x0099\n\t\t// 0x009A\n\t\t// 0x009B\n\t\t// 0x009C\n\t\t// 0x00C0\n\t\t// 0x00C7\n\t\t// 0x00C9\n\t\t/*::[*/0x00CC/*::]*/: { n:\"SHEETNAMECS\", f:parse_SHEETNAMECS },\n\t\t// 0x00CD\n\t\t/*::[*/0x00DE/*::]*/: { n:\"SHEETNAMELP\", f:parse_SHEETNAMELP },\n\t\t/*::[*/0x00FF/*::]*/: { n:\"BOF\", f:parseuint16 },\n\t\t/*::[*/0x5402/*::]*/: { n:\"WKSNF\", f:parseuint16 },\n\t\t/*::[*/0xFFFF/*::]*/: { n:\"\" }\n\t};\n\n\tvar WK3Enum = {\n\t\t/*::[*/0x0000/*::]*/: { n:\"BOF\" },\n\t\t/*::[*/0x0001/*::]*/: { n:\"EOF\" },\n\t\t/*::[*/0x0002/*::]*/: { n:\"PASSWORD\" },\n\t\t/*::[*/0x0003/*::]*/: { n:\"CALCSET\" },\n\t\t/*::[*/0x0004/*::]*/: { n:\"WINDOWSET\" },\n\t\t/*::[*/0x0005/*::]*/: { n:\"SHEETCELLPTR\" },\n\t\t/*::[*/0x0006/*::]*/: { n:\"SHEETLAYOUT\" },\n\t\t/*::[*/0x0007/*::]*/: { n:\"COLUMNWIDTH\" },\n\t\t/*::[*/0x0008/*::]*/: { n:\"HIDDENCOLUMN\" },\n\t\t/*::[*/0x0009/*::]*/: { n:\"USERRANGE\" },\n\t\t/*::[*/0x000A/*::]*/: { n:\"SYSTEMRANGE\" },\n\t\t/*::[*/0x000B/*::]*/: { n:\"ZEROFORCE\" },\n\t\t/*::[*/0x000C/*::]*/: { n:\"SORTKEYDIR\" },\n\t\t/*::[*/0x000D/*::]*/: { n:\"FILESEAL\" },\n\t\t/*::[*/0x000E/*::]*/: { n:\"DATAFILLNUMS\" },\n\t\t/*::[*/0x000F/*::]*/: { n:\"PRINTMAIN\" },\n\t\t/*::[*/0x0010/*::]*/: { n:\"PRINTSTRING\" },\n\t\t/*::[*/0x0011/*::]*/: { n:\"GRAPHMAIN\" },\n\t\t/*::[*/0x0012/*::]*/: { n:\"GRAPHSTRING\" },\n\t\t/*::[*/0x0013/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0014/*::]*/: { n:\"ERRCELL\" },\n\t\t/*::[*/0x0015/*::]*/: { n:\"NACELL\" },\n\t\t/*::[*/0x0016/*::]*/: { n:\"LABEL16\", f:parse_LABEL_16},\n\t\t/*::[*/0x0017/*::]*/: { n:\"NUMBER17\", f:parse_NUMBER_17 },\n\t\t/*::[*/0x0018/*::]*/: { n:\"NUMBER18\", f:parse_NUMBER_18 },\n\t\t/*::[*/0x0019/*::]*/: { n:\"FORMULA19\", f:parse_FORMULA_19},\n\t\t/*::[*/0x001A/*::]*/: { n:\"FORMULA1A\" },\n\t\t/*::[*/0x001B/*::]*/: { n:\"XFORMAT\", f:parse_XFORMAT },\n\t\t/*::[*/0x001C/*::]*/: { n:\"DTLABELMISC\" },\n\t\t/*::[*/0x001D/*::]*/: { n:\"DTLABELCELL\" },\n\t\t/*::[*/0x001E/*::]*/: { n:\"GRAPHWINDOW\" },\n\t\t/*::[*/0x001F/*::]*/: { n:\"CPA\" },\n\t\t/*::[*/0x0020/*::]*/: { n:\"LPLAUTO\" },\n\t\t/*::[*/0x0021/*::]*/: { n:\"QUERY\" },\n\t\t/*::[*/0x0022/*::]*/: { n:\"HIDDENSHEET\" },\n\t\t/*::[*/0x0023/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0025/*::]*/: { n:\"NUMBER25\", f:parse_NUMBER_25 },\n\t\t/*::[*/0x0026/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0027/*::]*/: { n:\"NUMBER27\", f:parse_NUMBER_27 },\n\t\t/*::[*/0x0028/*::]*/: { n:\"FORMULA28\", f:parse_FORMULA_28 },\n\t\t/*::[*/0x008E/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0093/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0096/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0097/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0098/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0099/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x009A/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x009B/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x009C/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00A3/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00AE/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00AF/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B0/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B1/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B8/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B9/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00BA/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00BB/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00BC/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00C3/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00C9/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00CC/*::]*/: { n:\"SHEETNAMECS\", f:parse_SHEETNAMECS },\n\t\t/*::[*/0x00CD/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00CE/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00CF/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00D0/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0100/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0103/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0104/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0105/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0106/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0107/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0109/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010A/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010B/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010C/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010E/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010F/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0180/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0185/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0186/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0189/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x018C/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0200/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0202/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0201/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0204/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0205/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0280/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0281/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0282/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0283/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0284/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0285/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0286/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0287/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0288/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0292/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0293/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0294/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0295/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0296/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0299/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x029A/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0300/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0304/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0601/*::]*/: { n:\"SHEETINFOQP\", f:parse_SHEETINFOQP },\n\t\t/*::[*/0x0640/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0642/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0701/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0702/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0703/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0704/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0780/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0800/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0801/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0804/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0A80/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x2AF6/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x3231/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x6E49/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x6F44/*::]*/: { n:\"??\" },\n\t\t/*::[*/0xFFFF/*::]*/: { n:\"\" }\n\t};\n\n\t/* TODO: fill out and verify this table across QP versions */\n\tvar QPWNFTable = {\n\t\t/*::[*/0x05/*::*/: \"dd-mmm-yy\",\n\t\t/*::[*/0x06/*::*/: \"dd-mmm\",\n\t\t/*::[*/0x07/*::*/: \"mmm-yy\",\n\t\t/*::[*/0x08/*::*/: \"mm/dd/yy\", // Long Date Intl\n\t\t/*::[*/0x0A/*::*/: \"hh:mm:ss AM/PM\",\n\t\t/*::[*/0x0B/*::*/: \"hh:mm AM/PM\",\n\t\t/*::[*/0x0E/*::*/: \"dd-mmm-yyyy\",\n\t\t/*::[*/0x0F/*::*/: \"mmm-yyyy\",\n\n\t\t/*::[*/0x22/*::*/: \"0.00\",\n\t\t/*::[*/0x32/*::*/: \"0.00;[Red]0.00\",\n\t\t/*::[*/0x42/*::*/: \"0.00;\\(0.00\\)\",\n\t\t/*::[*/0x52/*::*/: \"0.00;[Red]\\(0.00\\)\",\n\n\t\t/*::[*/162/*::*/: '\"$\"#,##0;\\\\(\"$\"#,##0\\\\)' // slightly different from SSF 5\n\t};\n\t/* QPW uses a different set of record types */\n\tfunction qpw_to_workbook_buf(d, opts)/*:Workbook*/ {\n\t\tprep_blob(d, 0);\n\t\tvar o = opts || {};\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar s/*:Worksheet*/ = ({}/*:any*/); if(o.dense) s[\"!data\"] = [];\n\t\tvar SST = [], sname = \"\", formulae = [];\n\t\tvar range = {s:{r:-1,c:-1}, e:{r:-1,c:-1}};\n\t\tvar cnt = 0, type = 0, C = 0, R = 0;\n\t\tvar wb = { SheetNames: [], Sheets: {} };\n\t\tvar FMTS = [];\n\t\touter: while(d.l < d.length) {\n\t\t\tvar RT = d.read_shift(2), length = d.read_shift(2);\n\t\t\tvar p = d.slice(d.l, d.l + length);\n\t\t\tprep_blob(p, 0);\n\t\t\tswitch(RT) {\n\t\t\t\tcase 0x01: /* BOF */\n\t\t\t\t\tif(p.read_shift(4) != 0x39575051) throw \"Bad QPW9 BOF!\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x02: /* EOF */ break outer;\n\n\t\t\t\tcase 0x08: /* NF */ break; // TODO: this is tied to custom number formats\n\n\t\t\t\tcase 0x0A: /* FORMATS */ {\n\t\t\t\t\tvar fcnt = p.read_shift(4);\n\t\t\t\t\tvar step = ((p.length - p.l)/ fcnt)|0;\n\t\t\t\t\tfor(var ifmt = 0; ifmt < fcnt; ++ifmt) {\n\t\t\t\t\t\tvar end = p.l + step;\n\t\t\t\t\t\tvar fmt = {};\n\t\t\t\t\t\tp.l += 2;\n\t\t\t\t\t\tfmt.numFmtId = p.read_shift(2);\n\t\t\t\t\t\tif(QPWNFTable[fmt.numFmtId]) fmt.z = QPWNFTable[fmt.numFmtId];\n\t\t\t\t\t\tp.l = end;\n\t\t\t\t\t\tFMTS.push(fmt);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\n\t\t\t\t/* TODO: The behavior here should be consistent with Numbers: QP Notebook ~ .TN.SheetArchive, QP Sheet ~ .TST.TableModelArchive */\n\t\t\t\tcase 0x0401: /* BON */ break;\n\t\t\t\tcase 0x0402: /* EON */ /* TODO: backfill missing sheets based on BON cnt */ break;\n\n\t\t\t\tcase 0x0407: { /* SST */\n\t\t\t\t\tp.l += 12;\n\t\t\t\t\twhile(p.l < p.length) {\n\t\t\t\t\t\tcnt = p.read_shift(2);\n\t\t\t\t\t\ttype = p.read_shift(1);\n\t\t\t\t\t\tSST.push(p.read_shift(cnt, 'cstr'));\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0408: { /* FORMULAE */\n\t\t\t\t\t//p.l += 12;\n\t\t\t\t\t//while(p.l < p.length) {\n\t\t\t\t\t//\tcnt = p.read_shift(2);\n\t\t\t\t\t//\tformulae.push(p.slice(p.l, p.l + cnt + 1)); p.l += cnt + 1;\n\t\t\t\t\t//}\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x0601: { /* BOS */\n\t\t\t\t\tvar sidx = p.read_shift(2);\n\t\t\t\t\ts = ({}/*:any*/); if(o.dense) s[\"!data\"] = [];\n\t\t\t\t\trange.s.c = p.read_shift(2);\n\t\t\t\t\trange.e.c = p.read_shift(2);\n\t\t\t\t\trange.s.r = p.read_shift(4);\n\t\t\t\t\trange.e.r = p.read_shift(4);\n\t\t\t\t\tp.l += 4;\n\t\t\t\t\tif(p.l + 2 < p.length) {\n\t\t\t\t\t\tcnt = p.read_shift(2);\n\t\t\t\t\t\ttype = p.read_shift(1);\n\t\t\t\t\t\tsname = cnt == 0 ? \"\" : p.read_shift(cnt, 'cstr');\n\t\t\t\t\t}\n\t\t\t\t\tif(!sname) sname = encode_col(sidx);\n\t\t\t\t\t/* TODO: backfill empty sheets */\n\t\t\t\t} break;\n\t\t\t\tcase 0x0602: { /* EOS */\n\t\t\t\t\t/* NOTE: QP valid range A1:IV1000000 */\n\t\t\t\t\tif(range.s.c > 0xFF || range.s.r > 999999) break;\n\t\t\t\t\tif(range.e.c < range.s.c) range.e.c = range.s.c;\n\t\t\t\t\tif(range.e.r < range.s.r) range.e.r = range.s.r;\n\t\t\t\t\ts[\"!ref\"] = encode_range(range);\n\t\t\t\t\tbook_append_sheet(wb, s, sname); // TODO: a barrel roll\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x0A01: { /* COL (like XLS Row, modulo the layout transposition) */\n\t\t\t\t\tC = p.read_shift(2);\n\t\t\t\t\tif(range.e.c < C) range.e.c = C;\n\t\t\t\t\tif(range.s.c > C) range.s.c = C;\n\t\t\t\t\tR = p.read_shift(4);\n\t\t\t\t\tif(range.s.r > R) range.s.r = R;\n\t\t\t\t\tR = p.read_shift(4);\n\t\t\t\t\tif(range.e.r < R) range.e.r = R;\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x0C01: { /* MulCells (like XLS MulRK, but takes advantage of common column data patterns) */\n\t\t\t\t\tR = p.read_shift(4), cnt = p.read_shift(4);\n\t\t\t\t\tif(range.s.r > R) range.s.r = R;\n\t\t\t\t\tif(range.e.r < R + cnt - 1) range.e.r = R + cnt - 1;\n\t\t\t\t\tvar CC = encode_col(C);\n\t\t\t\t\twhile(p.l < p.length) {\n\t\t\t\t\t\tvar cell = { t: \"z\" };\n\t\t\t\t\t\tvar flags = p.read_shift(1), fmtidx = -1;\n\t\t\t\t\t\tif(flags & 0x80) fmtidx = p.read_shift(2);\n\t\t\t\t\t\tvar mul = (flags & 0x40) ? p.read_shift(2) - 1: 0;\n\t\t\t\t\t\tswitch(flags & 0x1F) {\n\t\t\t\t\t\t\tcase 0: break;\n\t\t\t\t\t\t\tcase 1: break;\n\t\t\t\t\t\t\tcase 2: cell = { t: \"n\", v: p.read_shift(2) }; break;\n\t\t\t\t\t\t\tcase 3: cell = { t: \"n\", v: p.read_shift(2, 'i') }; break;\n\t\t\t\t\t\t\tcase 4: cell = { t: \"n\", v: parse_RkNumber(p) }; break;\n\t\t\t\t\t\t\tcase 5: cell = { t: \"n\", v: p.read_shift(8, 'f') }; break;\n\t\t\t\t\t\t\tcase 7: cell = { t: \"s\", v: SST[type = p.read_shift(4) - 1] }; break;\n\t\t\t\t\t\t\tcase 8: cell = { t: \"n\", v: p.read_shift(8, 'f') }; p.l += 2; /* cell.f = formulae[p.read_shift(4)]; */ p.l += 4; break;\n\t\t\t\t\t\t\tdefault: throw \"Unrecognized QPW cell type \" + (flags & 0x1F);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(fmtidx != -1 && (FMTS[fmtidx - 1]||{}).z) cell.z = FMTS[fmtidx-1].z;\n\t\t\t\t\t\tvar delta = 0;\n\t\t\t\t\t\tif(flags & 0x20) switch(flags & 0x1F) {\n\t\t\t\t\t\t\tcase 2: delta = p.read_shift(2); break;\n\t\t\t\t\t\t\tcase 3: delta = p.read_shift(2, 'i'); break;\n\t\t\t\t\t\t\tcase 7: delta = p.read_shift(2); break;\n\t\t\t\t\t\t\tdefault: throw \"Unsupported delta for QPW cell type \" + (flags & 0x1F);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(!(!o.sheetStubs && cell.t == \"z\")) {\n\t\t\t\t\t\t\tvar newcell = dup(cell);\n\t\t\t\t\t\t\tif(cell.t == \"n\" && cell.z && fmt_is_date(cell.z) && o.cellDates) {\n\t\t\t\t\t\t\t\tnewcell.v = numdate(cell.v); newcell.t = typeof newcell.v == \"number\" ? 'n' : 'd';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(s[\"!data\"] != null) {\n\t\t\t\t\t\t\t\tif(!s[\"!data\"][R]) s[\"!data\"][R] = [];\n\t\t\t\t\t\t\t\ts[\"!data\"][R][C] = newcell;\n\t\t\t\t\t\t\t} else s[CC + encode_row(R)] = newcell;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t++R; --cnt;\n\t\t\t\t\t\twhile(mul-- > 0 && cnt >= 0) {\n\t\t\t\t\t\t\tif(flags & 0x20) switch(flags & 0x1F) {\n\t\t\t\t\t\t\t\tcase 2: cell = { t: \"n\", v: (cell.v + delta) & 0xFFFF }; break;\n\t\t\t\t\t\t\t\tcase 3: cell = { t: \"n\", v: (cell.v + delta) & 0xFFFF }; if(cell.v > 0x7FFF) cell.v -= 0x10000; break;\n\t\t\t\t\t\t\t\tcase 7: cell = { t: \"s\", v: SST[type = (type + delta) >>> 0] }; break;\n\t\t\t\t\t\t\t\tdefault: throw \"Cannot apply delta for QPW cell type \" + (flags & 0x1F);\n\t\t\t\t\t\t\t} else switch(flags & 0x1F) {\n\t\t\t\t\t\t\t\tcase 1: cell = { t: \"z\" }; break;\n\t\t\t\t\t\t\t\tcase 2: cell = { t: \"n\", v: p.read_shift(2) }; break;\n\t\t\t\t\t\t\t\tcase 7: cell = { t: \"s\", v: SST[type = p.read_shift(4) - 1] }; break;\n\t\t\t\t\t\t\t\tdefault: throw \"Cannot apply repeat for QPW cell type \" + (flags & 0x1F);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(fmtidx != -1);\n\t\t\t\t\t\t\tif(!(!o.sheetStubs && cell.t == \"z\")) {\n\t\t\t\t\t\t\t\tif(s[\"!data\"] != null) {\n\t\t\t\t\t\t\t\t\tif(!s[\"!data\"][R]) s[\"!data\"][R] = [];\n\t\t\t\t\t\t\t\t\ts[\"!data\"][R][C] = cell;\n\t\t\t\t\t\t\t\t} else s[CC + encode_row(R)] = cell;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t++R; --cnt;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} break;\n\n\t\t\t\tdefault: break;\n\t\t\t}\n\t\t\td.l += length;\n\t\t}\n\t\treturn wb;\n\t}\n\n\treturn {\n\t\tsheet_to_wk1: sheet_to_wk1,\n\t\tbook_to_wk3: book_to_wk3,\n\t\tto_workbook: lotus_to_workbook\n\t};\n})();\n/* 18.4.7 rPr CT_RPrElt */\nfunction parse_rpr(rpr) {\n\tvar font = {}, m = rpr.match(tagregex), i = 0;\n\tvar pass = false;\n\tif(m) for(;i!=m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(y[0].replace(/\\w*:/g,\"\")) {\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\t/* ** not required . */\n\t\t\tcase '':\n\t\t\tcase '': font.shadow = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty TODO */\n\t\t\tcase '':\n\t\t\tcase '': font.outline = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.4.5 rFont CT_FontName */\n\t\t\tcase '':\n\t\t\tcase '': font.strike = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '':\n\t\t\tcase '': font.u = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.2 b */\n\t\t\tcase '':\n\t\t\tcase '': font.b = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.26 i */\n\t\t\tcase '':\n\t\t\tcase '': font.i = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.3.1.15 color CT_Color TODO: tint, theme, auto, indexed */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.8.18 family ST_FontFamily */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty TODO */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme TODO */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault:\n\t\t\t\tif(y[0].charCodeAt(1) !== 47 && !pass) throw new Error('Unrecognized rich format ' + y[0]);\n\t\t}\n\t}\n\treturn font;\n}\n\nvar parse_rs = /*#__PURE__*/(function() {\n\tvar tregex = matchtag(\"t\"), rpregex = matchtag(\"rPr\");\n\t/* 18.4.4 r CT_RElt */\n\tfunction parse_r(r) {\n\t\t/* 18.4.12 t ST_Xstring */\n\t\tvar t = r.match(tregex)/*, cp = 65001*/;\n\t\tif(!t) return {t:\"s\", v:\"\"};\n\n\t\tvar o/*:Cell*/ = ({t:'s', v:unescapexml(t[1])}/*:any*/);\n\t\tvar rpr = r.match(rpregex);\n\t\tif(rpr) o.s = parse_rpr(rpr[1]);\n\t\treturn o;\n\t}\n\tvar rregex = /<(?:\\w+:)?r>/g, rend = /<\\/(?:\\w+:)?r>/;\n\treturn function parse_rs(rs) {\n\t\treturn rs.replace(rregex,\"\").split(rend).map(parse_r).filter(function(r) { return r.v; });\n\t};\n})();\n\n\n/* Parse a list of tags */\nvar rs_to_html = /*#__PURE__*/(function parse_rs_factory() {\n\tvar nlregex = /(\\r\\n|\\n)/g;\n\tfunction parse_rpr2(font, intro, outro) {\n\t\tvar style/*:Array*/ = [];\n\n\t\tif(font.u) style.push(\"text-decoration: underline;\");\n\t\tif(font.uval) style.push(\"text-underline-style:\" + font.uval + \";\");\n\t\tif(font.sz) style.push(\"font-size:\" + font.sz + \"pt;\");\n\t\tif(font.outline) style.push(\"text-effect: outline;\");\n\t\tif(font.shadow) style.push(\"text-shadow: auto;\");\n\t\tintro.push('');\n\n\t\tif(font.b) { intro.push(\"\"); outro.push(\"\"); }\n\t\tif(font.i) { intro.push(\"\"); outro.push(\"\"); }\n\t\tif(font.strike) { intro.push(\"\"); outro.push(\"\"); }\n\n\t\tvar align = font.valign || \"\";\n\t\tif(align == \"superscript\" || align == \"super\") align = \"sup\";\n\t\telse if(align == \"subscript\") align = \"sub\";\n\t\tif(align != \"\") { intro.push(\"<\" + align + \">\"); outro.push(\"\"); }\n\n\t\toutro.push(\"\");\n\t\treturn font;\n\t}\n\n\t/* 18.4.4 r CT_RElt */\n\tfunction r_to_html(r) {\n\t\tvar terms/*:[Array, string, Array]*/ = [[],r.v,[]];\n\t\tif(!r.v) return \"\";\n\n\t\tif(r.s) parse_rpr2(r.s, terms[0], terms[2]);\n\n\t\treturn terms[0].join(\"\") + terms[1].replace(nlregex,'
') + terms[2].join(\"\");\n\t}\n\n\treturn function parse_rs(rs) {\n\t\treturn rs.map(r_to_html).join(\"\");\n\t};\n})();\n\n/* 18.4.8 si CT_Rst */\nvar sitregex = /<(?:\\w+:)?t[^>]*>([^<]*)<\\/(?:\\w+:)?t>/g, sirregex = /<(?:\\w+:)?r\\b[^>]*>/;\nvar sirphregex = /<(?:\\w+:)?rPh.*?>([\\s\\S]*?)<\\/(?:\\w+:)?rPh>/g;\nfunction parse_si(x, opts) {\n\tvar html = opts ? opts.cellHTML : true;\n\tvar z = {};\n\tif(!x) return { t: \"\" };\n\t//var y;\n\t/* 18.4.12 t ST_Xstring (Plaintext String) */\n\t// TODO: is whitespace actually valid here?\n\tif(x.match(/^\\s*<(?:\\w+:)?t[^>]*>/)) {\n\t\tz.t = unescapexml(utf8read(x.slice(x.indexOf(\">\")+1).split(/<\\/(?:\\w+:)?t>/)[0]||\"\"), true);\n\t\tz.r = utf8read(x);\n\t\tif(html) z.h = escapehtml(z.t);\n\t}\n\t/* 18.4.4 r CT_RElt (Rich Text Run) */\n\telse if((/*y = */x.match(sirregex))) {\n\t\tz.r = utf8read(x);\n\t\tz.t = unescapexml(utf8read((x.replace(sirphregex, '').match(sitregex)||[]).join(\"\").replace(tagregex,\"\")), true);\n\t\tif(html) z.h = rs_to_html(parse_rs(z.r));\n\t}\n\t/* 18.4.3 phoneticPr CT_PhoneticPr (TODO: needed for Asian support) */\n\t/* 18.4.6 rPh CT_PhoneticRun (TODO: needed for Asian support) */\n\treturn z;\n}\n\n/* 18.4 Shared String Table */\nvar sstr0 = /<(?:\\w+:)?sst([^>]*)>([\\s\\S]*)<\\/(?:\\w+:)?sst>/;\nvar sstr1 = /<(?:\\w+:)?(?:si|sstItem)>/g;\nvar sstr2 = /<\\/(?:\\w+:)?(?:si|sstItem)>/;\nfunction parse_sst_xml(data/*:string*/, opts)/*:SST*/ {\n\tvar s/*:SST*/ = ([]/*:any*/), ss = \"\";\n\tif(!data) return s;\n\t/* 18.4.9 sst CT_Sst */\n\tvar sst = data.match(sstr0);\n\tif(sst) {\n\t\tss = sst[2].replace(sstr1,\"\").split(sstr2);\n\t\tfor(var i = 0; i != ss.length; ++i) {\n\t\t\tvar o = parse_si(ss[i].trim(), opts);\n\t\t\tif(o != null) s[s.length] = o;\n\t\t}\n\t\tsst = parsexmltag(sst[1]); s.Count = sst.count; s.Unique = sst.uniqueCount;\n\t}\n\treturn s;\n}\n\nvar straywsregex = /^\\s|\\s$|[\\t\\n\\r]/;\nfunction write_sst_xml(sst/*:SST*/, opts)/*:string*/ {\n\tif(!opts.bookSST) return \"\";\n\tvar o = [XML_HEADER];\n\to[o.length] = (writextag('sst', null, {\n\t\txmlns: XMLNS_main[0],\n\t\tcount: sst.Count,\n\t\tuniqueCount: sst.Unique\n\t}));\n\tfor(var i = 0; i != sst.length; ++i) { if(sst[i] == null) continue;\n\t\tvar s/*:XLString*/ = sst[i];\n\t\tvar sitag = \"\";\n\t\tif(s.r) sitag += s.r;\n\t\telse {\n\t\t\tsitag += \"\" + escapexml(s.t) + \"\";\n\t\t}\n\t\tsitag += \"\";\n\t\to[o.length] = (sitag);\n\t}\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.221 BrtBeginSst */\nfunction parse_BrtBeginSst(data) {\n\treturn [data.read_shift(4), data.read_shift(4)];\n}\n\n/* [MS-XLSB] 2.1.7.45 Shared Strings */\nfunction parse_sst_bin(data, opts)/*:SST*/ {\n\tvar s/*:SST*/ = ([]/*:any*/);\n\tvar pass = false;\n\trecordhopper(data, function hopper_sst(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009F: /* BrtBeginSst */\n\t\t\t\ts.Count = val[0]; s.Unique = val[1]; break;\n\t\t\tcase 0x0013: /* BrtSSTItem */\n\t\t\t\ts.push(val); break;\n\t\t\tcase 0x00A0: /* BrtEndSst */\n\t\t\t\treturn true;\n\n\t\t\tcase 0x0023: /* BrtFRTBegin */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* BrtFRTEnd */\n\t\t\t\tpass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){}\n\t\t\t\tif(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn s;\n}\n\nfunction write_BrtBeginSst(sst, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(4, sst.Count);\n\to.write_shift(4, sst.Unique);\n\treturn o;\n}\n\nvar write_BrtSSTItem = write_RichStr;\n\nfunction write_sst_bin(sst/*::, opts*/) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x009F /* BrtBeginSst */, write_BrtBeginSst(sst));\n\tfor(var i = 0; i < sst.length; ++i) write_record(ba, 0x0013 /* BrtSSTItem */, write_BrtSSTItem(sst[i]));\n\t/* FRTSST */\n\twrite_record(ba, 0x00A0 /* BrtEndSst */);\n\treturn ba.end();\n}\nfunction _JS2ANSI(str/*:string*/)/*:Array*/ {\n\tif(typeof $cptable !== 'undefined') return $cptable.utils.encode(current_ansi, str);\n\tvar o/*:Array*/ = [], oo = str.split(\"\");\n\tfor(var i = 0; i < oo.length; ++i) o[i] = oo[i].charCodeAt(0);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.4 Version */\nfunction parse_CRYPTOVersion(blob, length/*:?number*/) {\n\tvar o/*:any*/ = {};\n\to.Major = blob.read_shift(2);\n\to.Minor = blob.read_shift(2);\n\t/*:: if(length == null) return o; */\n\tif(length >= 4) blob.l += length - 4;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.5 DataSpaceVersionInfo */\nfunction parse_DataSpaceVersionInfo(blob) {\n\tvar o = {};\n\to.id = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6.1 DataSpaceMapEntry Structure */\nfunction parse_DataSpaceMapEntry(blob) {\n\tvar len = blob.read_shift(4);\n\tvar end = blob.l + len - 4;\n\tvar o = {};\n\tvar cnt = blob.read_shift(4);\n\tvar comps/*:Array<{t:number, v:string}>*/ = [];\n\t/* [MS-OFFCRYPTO] 2.1.6.2 DataSpaceReferenceComponent Structure */\n\twhile(cnt-- > 0) comps.push({ t: blob.read_shift(4), v: blob.read_shift(0, 'lpp4') });\n\to.name = blob.read_shift(0, 'lpp4');\n\to.comps = comps;\n\tif(blob.l != end) throw new Error(\"Bad DataSpaceMapEntry: \" + blob.l + \" != \" + end);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6 DataSpaceMap */\nfunction parse_DataSpaceMap(blob) {\n\tvar o = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(parse_DataSpaceMapEntry(blob));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.7 DataSpaceDefinition */\nfunction parse_DataSpaceDefinition(blob)/*:Array*/ {\n\tvar o/*:Array*/ = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(blob.read_shift(0, 'lpp4'));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.8 DataSpaceDefinition */\nfunction parse_TransformInfoHeader(blob) {\n\tvar o = {};\n\t/*var len = */blob.read_shift(4);\n\tblob.l += 4; // must be 0x1\n\to.id = blob.read_shift(0, 'lpp4');\n\to.name = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\nfunction parse_Primary(blob) {\n\t/* [MS-OFFCRYPTO] 2.2.6 IRMDSTransformInfo */\n\tvar hdr = parse_TransformInfoHeader(blob);\n\t/* [MS-OFFCRYPTO] 2.1.9 EncryptionTransformInfo */\n\thdr.ename = blob.read_shift(0, '8lpp4');\n\thdr.blksz = blob.read_shift(4);\n\thdr.cmode = blob.read_shift(4);\n\tif(blob.read_shift(4) != 0x04) throw new Error(\"Bad !Primary record\");\n\treturn hdr;\n}\n\n/* [MS-OFFCRYPTO] 2.3.2 Encryption Header */\nfunction parse_EncryptionHeader(blob, length/*:number*/) {\n\tvar tgt = blob.l + length;\n\tvar o = {};\n\to.Flags = (blob.read_shift(4) & 0x3F);\n\tblob.l += 4;\n\to.AlgID = blob.read_shift(4);\n\tvar valid = false;\n\tswitch(o.AlgID) {\n\t\tcase 0x660E: case 0x660F: case 0x6610: valid = (o.Flags == 0x24); break;\n\t\tcase 0x6801: valid = (o.Flags == 0x04); break;\n\t\tcase 0: valid = (o.Flags == 0x10 || o.Flags == 0x04 || o.Flags == 0x24); break;\n\t\tdefault: throw 'Unrecognized encryption algorithm: ' + o.AlgID;\n\t}\n\tif(!valid) throw new Error(\"Encryption Flags/AlgID mismatch\");\n\to.AlgIDHash = blob.read_shift(4);\n\to.KeySize = blob.read_shift(4);\n\to.ProviderType = blob.read_shift(4);\n\tblob.l += 8;\n\to.CSPName = blob.read_shift((tgt-blob.l)>>1, 'utf16le');\n\tblob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.3 Encryption Verifier */\nfunction parse_EncryptionVerifier(blob, length/*:number*/) {\n\tvar o = {}, tgt = blob.l + length;\n\tblob.l += 4; // SaltSize must be 0x10\n\to.Salt = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\to.Verifier = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\t/*var sz = */blob.read_shift(4);\n\to.VerifierHash = blob.slice(blob.l, tgt); blob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.* EncryptionInfo Stream */\nfunction parse_EncryptionInfo(blob) {\n\tvar vers = parse_CRYPTOVersion(blob);\n\tswitch(vers.Minor) {\n\t\tcase 0x02: return [vers.Minor, parse_EncInfoStd(blob, vers)];\n\t\tcase 0x03: return [vers.Minor, parse_EncInfoExt(blob, vers)];\n\t\tcase 0x04: return [vers.Minor, parse_EncInfoAgl(blob, vers)];\n\t}\n\tthrow new Error(\"ECMA-376 Encrypted file unrecognized Version: \" + vers.Minor);\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.5 EncryptionInfo Stream (Standard Encryption) */\nfunction parse_EncInfoStd(blob/*::, vers*/) {\n\tvar flags = blob.read_shift(4);\n\tif((flags & 0x3F) != 0x24) throw new Error(\"EncryptionInfo mismatch\");\n\tvar sz = blob.read_shift(4);\n\t//var tgt = blob.l + sz;\n\tvar hdr = parse_EncryptionHeader(blob, sz);\n\tvar verifier = parse_EncryptionVerifier(blob, blob.length - blob.l);\n\treturn { t:\"Std\", h:hdr, v:verifier };\n}\n/* [MS-OFFCRYPTO] 2.3.4.6 EncryptionInfo Stream (Extensible Encryption) */\nfunction parse_EncInfoExt(/*::blob, vers*/) { throw new Error(\"File is password-protected: ECMA-376 Extensible\"); }\n/* [MS-OFFCRYPTO] 2.3.4.10 EncryptionInfo Stream (Agile Encryption) */\nfunction parse_EncInfoAgl(blob/*::, vers*/) {\n\tvar KeyData = [\"saltSize\",\"blockSize\",\"keyBits\",\"hashSize\",\"cipherAlgorithm\",\"cipherChaining\",\"hashAlgorithm\",\"saltValue\"];\n\tblob.l+=4;\n\tvar xml = blob.read_shift(blob.length - blob.l, 'utf8');\n\tvar o = {};\n\txml.replace(tagregex, function xml_agile(x) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\t\t\tcase '': case '': break;\n\n\t\t\tcase '': break;\n\t\t\tcase ' 4 || vers.Major < 2) throw new Error('unrecognized major version code: ' + vers.Major);\n\to.Flags = blob.read_shift(4); length -= 4;\n\tvar sz = blob.read_shift(4); length -= 4;\n\to.EncryptionHeader = parse_EncryptionHeader(blob, sz); length -= sz;\n\to.EncryptionVerifier = parse_EncryptionVerifier(blob, length);\n\treturn o;\n}\n/* [MS-OFFCRYPTO] 2.3.6.1 RC4 Encryption Header */\nfunction parse_RC4Header(blob/*::, length*/) {\n\tvar o = {};\n\tvar vers = o.EncryptionVersionInfo = parse_CRYPTOVersion(blob, 4);\n\tif(vers.Major != 1 || vers.Minor != 1) throw 'unrecognized version code ' + vers.Major + ' : ' + vers.Minor;\n\to.Salt = blob.read_shift(16);\n\to.EncryptedVerifier = blob.read_shift(16);\n\to.EncryptedVerifierHash = blob.read_shift(16);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.1 Binary Document Password Verifier Derivation */\nfunction crypto_CreatePasswordVerifier_Method1(Password/*:string*/) {\n\tvar Verifier = 0x0000, PasswordArray;\n\tvar PasswordDecoded = _JS2ANSI(Password);\n\tvar len = PasswordDecoded.length + 1, i, PasswordByte;\n\tvar Intermediate1, Intermediate2, Intermediate3;\n\tPasswordArray = new_raw_buf(len);\n\tPasswordArray[0] = PasswordDecoded.length;\n\tfor(i = 1; i != len; ++i) PasswordArray[i] = PasswordDecoded[i-1];\n\tfor(i = len-1; i >= 0; --i) {\n\t\tPasswordByte = PasswordArray[i];\n\t\tIntermediate1 = ((Verifier & 0x4000) === 0x0000) ? 0 : 1;\n\t\tIntermediate2 = (Verifier << 1) & 0x7FFF;\n\t\tIntermediate3 = Intermediate1 | Intermediate2;\n\t\tVerifier = Intermediate3 ^ PasswordByte;\n\t}\n\treturn Verifier ^ 0xCE4B;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.2 Binary Document XOR Array Initialization */\nvar crypto_CreateXorArray_Method1 = /*#__PURE__*/(function() {\n\tvar PadArray = [0xBB, 0xFF, 0xFF, 0xBA, 0xFF, 0xFF, 0xB9, 0x80, 0x00, 0xBE, 0x0F, 0x00, 0xBF, 0x0F, 0x00];\n\tvar InitialCode = [0xE1F0, 0x1D0F, 0xCC9C, 0x84C0, 0x110C, 0x0E10, 0xF1CE, 0x313E, 0x1872, 0xE139, 0xD40F, 0x84F9, 0x280C, 0xA96A, 0x4EC3];\n\tvar XorMatrix = [0xAEFC, 0x4DD9, 0x9BB2, 0x2745, 0x4E8A, 0x9D14, 0x2A09, 0x7B61, 0xF6C2, 0xFDA5, 0xEB6B, 0xC6F7, 0x9DCF, 0x2BBF, 0x4563, 0x8AC6, 0x05AD, 0x0B5A, 0x16B4, 0x2D68, 0x5AD0, 0x0375, 0x06EA, 0x0DD4, 0x1BA8, 0x3750, 0x6EA0, 0xDD40, 0xD849, 0xA0B3, 0x5147, 0xA28E, 0x553D, 0xAA7A, 0x44D5, 0x6F45, 0xDE8A, 0xAD35, 0x4A4B, 0x9496, 0x390D, 0x721A, 0xEB23, 0xC667, 0x9CEF, 0x29FF, 0x53FE, 0xA7FC, 0x5FD9, 0x47D3, 0x8FA6, 0x0F6D, 0x1EDA, 0x3DB4, 0x7B68, 0xF6D0, 0xB861, 0x60E3, 0xC1C6, 0x93AD, 0x377B, 0x6EF6, 0xDDEC, 0x45A0, 0x8B40, 0x06A1, 0x0D42, 0x1A84, 0x3508, 0x6A10, 0xAA51, 0x4483, 0x8906, 0x022D, 0x045A, 0x08B4, 0x1168, 0x76B4, 0xED68, 0xCAF1, 0x85C3, 0x1BA7, 0x374E, 0x6E9C, 0x3730, 0x6E60, 0xDCC0, 0xA9A1, 0x4363, 0x86C6, 0x1DAD, 0x3331, 0x6662, 0xCCC4, 0x89A9, 0x0373, 0x06E6, 0x0DCC, 0x1021, 0x2042, 0x4084, 0x8108, 0x1231, 0x2462, 0x48C4];\n\tvar Ror = function(Byte) { return ((Byte/2) | (Byte*128)) & 0xFF; };\n\tvar XorRor = function(byte1, byte2) { return Ror(byte1 ^ byte2); };\n\tvar CreateXorKey_Method1 = function(Password) {\n\t\tvar XorKey = InitialCode[Password.length - 1];\n\t\tvar CurrentElement = 0x68;\n\t\tfor(var i = Password.length-1; i >= 0; --i) {\n\t\t\tvar Char = Password[i];\n\t\t\tfor(var j = 0; j != 7; ++j) {\n\t\t\t\tif(Char & 0x40) XorKey ^= XorMatrix[CurrentElement];\n\t\t\t\tChar *= 2; --CurrentElement;\n\t\t\t}\n\t\t}\n\t\treturn XorKey;\n\t};\n\treturn function(password/*:string*/) {\n\t\tvar Password = _JS2ANSI(password);\n\t\tvar XorKey = CreateXorKey_Method1(Password);\n\t\tvar Index = Password.length;\n\t\tvar ObfuscationArray = new_raw_buf(16);\n\t\tfor(var i = 0; i != 16; ++i) ObfuscationArray[i] = 0x00;\n\t\tvar Temp, PasswordLastChar, PadIndex;\n\t\tif((Index & 1) === 1) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[0], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tPasswordLastChar = Password[Password.length - 1];\n\t\t\tObfuscationArray[Index] = XorRor(PasswordLastChar, Temp);\n\t\t}\n\t\twhile(Index > 0) {\n\t\t\t--Index;\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t}\n\t\tIndex = 15;\n\t\tPadIndex = 15 - Password.length;\n\t\twhile(PadIndex > 0) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[PadIndex], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t}\n\t\treturn ObfuscationArray;\n\t};\n})();\n\n/* [MS-OFFCRYPTO] 2.3.7.3 Binary Document XOR Data Transformation Method 1 */\nvar crypto_DecryptData_Method1 = function(password/*:string*/, Data, XorArrayIndex, XorArray, O) {\n\t/* If XorArray is set, use it; if O is not set, make changes in-place */\n\tif(!O) O = Data;\n\tif(!XorArray) XorArray = crypto_CreateXorArray_Method1(password);\n\tvar Index, Value;\n\tfor(Index = 0; Index != Data.length; ++Index) {\n\t\tValue = Data[Index];\n\t\tValue ^= XorArray[XorArrayIndex];\n\t\tValue = ((Value>>5) | (Value<<3)) & 0xFF;\n\t\tO[Index] = Value;\n\t\t++XorArrayIndex;\n\t}\n\treturn [O, XorArrayIndex, XorArray];\n};\n\nvar crypto_MakeXorDecryptor = function(password/*:string*/) {\n\tvar XorArrayIndex = 0, XorArray = crypto_CreateXorArray_Method1(password);\n\treturn function(Data) {\n\t\tvar O = crypto_DecryptData_Method1(\"\", Data, XorArrayIndex, XorArray);\n\t\tXorArrayIndex = O[1];\n\t\treturn O[0];\n\t};\n};\n\n/* 2.5.343 */\nfunction parse_XORObfuscation(blob, length, opts, out) {\n\tvar o = ({ key: parseuint16(blob), verificationBytes: parseuint16(blob) }/*:any*/);\n\tif(opts.password) o.verifier = crypto_CreatePasswordVerifier_Method1(opts.password);\n\tout.valid = o.verificationBytes === o.verifier;\n\tif(out.valid) out.insitu = crypto_MakeXorDecryptor(opts.password);\n\treturn o;\n}\n\n/* 2.4.117 */\nfunction parse_FilePassHeader(blob, length/*:number*/, oo) {\n\tvar o = oo || {}; o.Info = blob.read_shift(2); blob.l -= 2;\n\tif(o.Info === 1) o.Data = parse_RC4Header(blob, length);\n\telse o.Data = parse_RC4CryptoHeader(blob, length);\n\treturn o;\n}\nfunction parse_FilePass(blob, length/*:number*/, opts) {\n\tvar o = ({ Type: opts.biff >= 8 ? blob.read_shift(2) : 0 }/*:any*/); /* wEncryptionType */\n\tif(o.Type) parse_FilePassHeader(blob, length-2, o);\n\telse parse_XORObfuscation(blob, opts.biff >= 8 ? length : length - 2, opts, o);\n\treturn o;\n}\n\n\nfunction rtf_to_sheet(d, opts) {\n switch (opts.type) {\n case \"base64\":\n return rtf_to_sheet_str(Base64_decode(d), opts);\n case \"binary\":\n return rtf_to_sheet_str(d, opts);\n case \"buffer\":\n return rtf_to_sheet_str(has_buf && Buffer.isBuffer(d) ? d.toString(\"binary\") : a2s(d), opts);\n case \"array\":\n return rtf_to_sheet_str(cc2str(d), opts);\n }\n throw new Error(\"Unrecognized type \" + opts.type);\n}\nfunction rtf_to_sheet_str(str, opts) {\n var o = opts || {};\n var ws = {};\n var dense = o.dense;\n if (dense)\n ws[\"!data\"] = [];\n var rows = str.match(/\\\\trowd[\\s\\S]*?\\\\row\\b/g);\n if (!rows)\n throw new Error(\"RTF missing table\");\n var range = { s: { c: 0, r: 0 }, e: { c: 0, r: rows.length - 1 } };\n var row = [];\n rows.forEach(function(rowtf, R) {\n if (dense)\n row = ws[\"!data\"][R] = [];\n var rtfre = /\\\\[\\w\\-]+\\b/g;\n var last_index = 0;\n var res;\n var C = -1;\n var payload = [];\n while ((res = rtfre.exec(rowtf)) != null) {\n var data = rowtf.slice(last_index, rtfre.lastIndex - res[0].length);\n if (data.charCodeAt(0) == 32)\n data = data.slice(1);\n if (data.length)\n payload.push(data);\n switch (res[0]) {\n case \"\\\\cell\":\n ++C;\n if (payload.length) {\n var cell = { v: payload.join(\"\"), t: \"s\" };\n if (cell.v == \"TRUE\" || cell.v == \"FALSE\") {\n cell.v = cell.v == \"TRUE\";\n cell.t = \"b\";\n } else if (!isNaN(fuzzynum(cell.v))) {\n cell.t = \"n\";\n if (o.cellText !== false)\n cell.w = cell.v;\n cell.v = fuzzynum(cell.v);\n }\n if (dense)\n row[C] = cell;\n else\n ws[encode_cell({ r: R, c: C })] = cell;\n }\n payload = [];\n break;\n case \"\\\\par\":\n payload.push(\"\\n\");\n break;\n }\n last_index = rtfre.lastIndex;\n }\n if (C > range.e.c)\n range.e.c = C;\n });\n ws[\"!ref\"] = encode_range(range);\n return ws;\n}\nfunction rtf_to_workbook(d, opts) {\n var wb = sheet_to_workbook(rtf_to_sheet(d, opts), opts);\n wb.bookType = \"rtf\";\n return wb;\n}\nfunction sheet_to_rtf(ws, opts) {\n var o = [\"{\\\\rtf1\\\\ansi\"];\n if (!ws[\"!ref\"])\n return o[0] + \"}\";\n var r = safe_decode_range(ws[\"!ref\"]), cell;\n var dense = ws[\"!data\"] != null, row = [];\n for (var R = r.s.r; R <= r.e.r; ++R) {\n o.push(\"\\\\trowd\\\\trautofit1\");\n for (var C = r.s.c; C <= r.e.c; ++C)\n o.push(\"\\\\cellx\" + (C + 1));\n o.push(\"\\\\pard\\\\intbl\");\n if (dense)\n row = ws[\"!data\"][R] || [];\n for (C = r.s.c; C <= r.e.c; ++C) {\n var coord = encode_cell({ r: R, c: C });\n cell = dense ? row[C] : ws[coord];\n if (!cell || cell.v == null && (!cell.f || cell.F)) {\n o.push(\" \\\\cell\");\n continue;\n }\n o.push(\" \" + (cell.w || (format_cell(cell), cell.w) || \"\").replace(/[\\r\\n]/g, \"\\\\par \"));\n o.push(\"\\\\cell\");\n }\n o.push(\"\\\\pard\\\\intbl\\\\row\");\n }\n return o.join(\"\") + \"}\";\n}\nfunction hex2RGB(h) {\n\tvar o = h.slice(h[0]===\"#\"?1:0).slice(0,6);\n\treturn [parseInt(o.slice(0,2),16),parseInt(o.slice(2,4),16),parseInt(o.slice(4,6),16)];\n}\nfunction rgb2Hex(rgb) {\n\tfor(var i=0,o=1; i!=3; ++i) o = o*256 + (rgb[i]>255?255:rgb[i]<0?0:rgb[i]);\n\treturn o.toString(16).toUpperCase().slice(1);\n}\n\nfunction rgb2HSL(rgb) {\n\tvar R = rgb[0]/255, G = rgb[1]/255, B=rgb[2]/255;\n\tvar M = Math.max(R, G, B), m = Math.min(R, G, B), C = M - m;\n\tif(C === 0) return [0, 0, R];\n\n\tvar H6 = 0, S = 0, L2 = (M + m);\n\tS = C / (L2 > 1 ? 2 - L2 : L2);\n\tswitch(M){\n\t\tcase R: H6 = ((G - B) / C + 6)%6; break;\n\t\tcase G: H6 = ((B - R) / C + 2); break;\n\t\tcase B: H6 = ((R - G) / C + 4); break;\n\t}\n\treturn [H6 / 6, S, L2 / 2];\n}\n\nfunction hsl2RGB(hsl){\n\tvar H = hsl[0], S = hsl[1], L = hsl[2];\n\tvar C = S * 2 * (L < 0.5 ? L : 1 - L), m = L - C/2;\n\tvar rgb = [m,m,m], h6 = 6*H;\n\n\tvar X;\n\tif(S !== 0) switch(h6|0) {\n\t\tcase 0: case 6: X = C * h6; rgb[0] += C; rgb[1] += X; break;\n\t\tcase 1: X = C * (2 - h6); rgb[0] += X; rgb[1] += C; break;\n\t\tcase 2: X = C * (h6 - 2); rgb[1] += C; rgb[2] += X; break;\n\t\tcase 3: X = C * (4 - h6); rgb[1] += X; rgb[2] += C; break;\n\t\tcase 4: X = C * (h6 - 4); rgb[2] += C; rgb[0] += X; break;\n\t\tcase 5: X = C * (6 - h6); rgb[2] += X; rgb[0] += C; break;\n\t}\n\tfor(var i = 0; i != 3; ++i) rgb[i] = Math.round(rgb[i]*255);\n\treturn rgb;\n}\n\n/* 18.8.3 bgColor tint algorithm */\nfunction rgb_tint(hex, tint) {\n\tif(tint === 0) return hex;\n\tvar hsl = rgb2HSL(hex2RGB(hex));\n\tif (tint < 0) hsl[2] = hsl[2] * (1 + tint);\n\telse hsl[2] = 1 - (1 - hsl[2]) * (1 - tint);\n\treturn rgb2Hex(hsl2RGB(hsl));\n}\n\n/* 18.3.1.13 width calculations */\n/* [MS-OI29500] 2.1.595 Column Width & Formatting */\nvar DEF_MDW = 6, MAX_MDW = 15, MIN_MDW = 1, MDW = DEF_MDW;\nfunction width2px(width) { return Math.floor(( width + (Math.round(128/MDW))/256 )* MDW ); }\nfunction px2char(px) { return (Math.floor((px - 5)/MDW * 100 + 0.5))/100; }\nfunction char2width(chr) { return (Math.round((chr * MDW + 5)/MDW*256))/256; }\n//function px2char_(px) { return (((px - 5)/MDW * 100 + 0.5))/100; }\n//function char2width_(chr) { return (((chr * MDW + 5)/MDW*256))/256; }\nfunction cycle_width(collw) { return char2width(px2char(width2px(collw))); }\n/* XLSX/XLSB/XLS specify width in units of MDW */\nfunction find_mdw_colw(collw) {\n\tvar delta = Math.abs(collw - cycle_width(collw)), _MDW = MDW;\n\tif(delta > 0.005) for(MDW=MIN_MDW; MDW 0.5) guess--;\n\t\tif(Math.abs(guess) < delta) { delta = Math.abs(guess); _MDW = MDW; }\n\t}\n\tMDW = _MDW;\n}*/\n\nfunction process_col(coll/*:ColInfo*/) {\n\tif(coll.width) {\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.MDW = MDW;\n\t} else if(coll.wpx) {\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.MDW = MDW;\n\t} else if(typeof coll.wch == 'number') {\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.MDW = MDW;\n\t}\n\tif(coll.customWidth) delete coll.customWidth;\n}\n\nvar DEF_PPI = 96, PPI = DEF_PPI;\nfunction px2pt(px) { return px * 96 / PPI; }\nfunction pt2px(pt) { return pt * PPI / 96; }\n\n/* [MS-EXSPXML3] 2.4.54 ST_enmPattern */\nvar XLMLPatternTypeMap = {\n\t\"None\": \"none\",\n\t\"Solid\": \"solid\",\n\t\"Gray50\": \"mediumGray\",\n\t\"Gray75\": \"darkGray\",\n\t\"Gray25\": \"lightGray\",\n\t\"HorzStripe\": \"darkHorizontal\",\n\t\"VertStripe\": \"darkVertical\",\n\t\"ReverseDiagStripe\": \"darkDown\",\n\t\"DiagStripe\": \"darkUp\",\n\t\"DiagCross\": \"darkGrid\",\n\t\"ThickDiagCross\": \"darkTrellis\",\n\t\"ThinHorzStripe\": \"lightHorizontal\",\n\t\"ThinVertStripe\": \"lightVertical\",\n\t\"ThinReverseDiagStripe\": \"lightDown\",\n\t\"ThinHorzCross\": \"lightGrid\"\n};\n\n/* 18.8.5 borders CT_Borders */\nfunction parse_borders(t, styles, themes, opts) {\n\tstyles.Borders = [];\n\tvar border = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.4 border CT_Border */\n\t\t\tcase '': case '':\n\t\t\t\tborder = /*::(*/{}/*:: :any)*/;\n\t\t\t\tif(y.diagonalUp) border.diagonalUp = parsexmlbool(y.diagonalUp);\n\t\t\t\tif(y.diagonalDown) border.diagonalDown = parsexmlbool(y.diagonalDown);\n\t\t\t\tstyles.Borders.push(border);\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.43 top CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.6 bottom CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.13 diagonal CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.25 horizontal CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.44 vertical CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.37 start CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.16 end CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '':\n\t\t\t\tbreak;\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in borders');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.21 fills CT_Fills */\nfunction parse_fills(t, styles, themes, opts) {\n\tstyles.Fills = [];\n\tvar fill = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.20 fill CT_Fill */\n\t\t\tcase '': case '':\n\t\t\t\tfill = {}; styles.Fills.push(fill); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.24 gradientFill CT_GradientFill */\n\t\t\tcase '': break;\n\t\t\tcase '': styles.Fills.push(fill); fill = {}; break;\n\n\t\t\t/* 18.8.32 patternFill CT_PatternFill */\n\t\t\tcase '':\n\t\t\t\tif(y.patternType) fill.patternType = y.patternType;\n\t\t\t\tbreak;\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.3 bgColor CT_Color */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.19 fgColor CT_Color */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.38 stop CT_GradientStop */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fills');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.23 fonts CT_Fonts */\nfunction parse_fonts(t, styles, themes, opts) {\n\tstyles.Fonts = [];\n\tvar font = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.22 font CT_Font */\n\t\t\tcase '': break;\n\t\t\tcase '': case '':\n\t\t\t\tstyles.Fonts.push(font);\n\t\t\t\tfont = {};\n\t\t\t\tbreak;\n\n\t\t\t/* 18.8.29 name CT_FontName */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.2 b CT_BooleanProperty */\n\t\t\tcase '': font.bold = 1; break;\n\n\t\t\t/* 18.8.26 i CT_BooleanProperty */\n\t\t\tcase '': font.italic = 1; break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '': font.underline = 1; break;\n\n\t\t\t/* 18.4.10 strike CT_BooleanProperty */\n\t\t\tcase '': font.strike = 1; break;\n\n\t\t\t/* 18.4.2 outline CT_BooleanProperty */\n\t\t\tcase '': font.outline = 1; break;\n\n\t\t\t/* 18.8.36 shadow CT_BooleanProperty */\n\t\t\tcase '': font.shadow = 1; break;\n\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\tcase '': font.condense = 1; break;\n\n\t\t\t/* 18.8.17 extend CT_BooleanProperty */\n\t\t\tcase '': font.extend = 1; break;\n\n\t\t\t/* 18.4.11 sz CT_FontSize */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.18 family CT_FontFamily */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fonts');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.31 numFmts CT_NumFmts */\nfunction parse_numFmts(t, styles, opts) {\n\tstyles.NumberFmt = [];\n\tvar k/*Array*/ = (keys(table_fmt)/*:any*/);\n\tfor(var i=0; i < k.length; ++i) styles.NumberFmt[k[i]] = table_fmt[k[i]];\n\tvar m = t[0].match(tagregex);\n\tif(!m) return;\n\tfor(i=0; i < m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': case '': break;\n\t\t\tcase '0) {\n\t\t\t\t\tif(j > 0x188) {\n\t\t\t\t\t\tfor(j = 0x188; j > 0x3c; --j) if(styles.NumberFmt[j] == null) break;\n\t\t\t\t\t\tstyles.NumberFmt[j] = f;\n\t\t\t\t\t}\n\t\t\t\t\tSSF__load(f,j);\n\t\t\t\t}\n\t\t\t} break;\n\t\t\tcase '': break;\n\t\t\tdefault: if(opts.WTF) throw new Error('unrecognized ' + y[0] + ' in numFmts');\n\t\t}\n\t}\n}\n\nfunction write_numFmts(NF/*:{[n:number|string]:string}*//*::, opts*/) {\n\tvar o = [\"\"];\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) o[o.length] = (writextag('numFmt',null,{numFmtId:i,formatCode:escapexml(NF[i])}));\n\t});\n\tif(o.length === 1) return \"\";\n\to[o.length] = (\"\");\n\to[0] = writextag('numFmts', null, { count:o.length-2 }).replace(\"/>\", \">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8.10 cellXfs CT_CellXfs */\nvar cellXF_uint = [ \"numFmtId\", \"fillId\", \"fontId\", \"borderId\", \"xfId\" ];\nvar cellXF_bool = [ \"applyAlignment\", \"applyBorder\", \"applyFill\", \"applyFont\", \"applyNumberFormat\", \"applyProtection\", \"pivotButton\", \"quotePrefix\" ];\nfunction parse_cellXfs(t, styles, opts) {\n\tstyles.CellXf = [];\n\tvar xf;\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x), i = 0;\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.8.45 xf CT_Xf */\n\t\t\tcase '':\n\t\t\t\txf = y;\n\t\t\t\tdelete xf[0];\n\t\t\t\tfor(i = 0; i < cellXF_uint.length; ++i) if(xf[cellXF_uint[i]])\n\t\t\t\t\txf[cellXF_uint[i]] = parseInt(xf[cellXF_uint[i]], 10);\n\t\t\t\tfor(i = 0; i < cellXF_bool.length; ++i) if(xf[cellXF_bool[i]])\n\t\t\t\t\txf[cellXF_bool[i]] = parsexmlbool(xf[cellXF_bool[i]]);\n\t\t\t\tif(styles.NumberFmt && xf.numFmtId > 0x188) {\n\t\t\t\t\tfor(i = 0x188; i > 0x3c; --i) if(styles.NumberFmt[xf.numFmtId] == styles.NumberFmt[i]) { xf.numFmtId = i; break; }\n\t\t\t\t}\n\t\t\t\tstyles.CellXf.push(xf); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.1 alignment CT_CellAlignment */\n\t\t\tcase '':\n\t\t\t\tvar alignment = {};\n\t\t\t\tif(y.vertical) alignment.vertical = y.vertical;\n\t\t\t\tif(y.horizontal) alignment.horizontal = y.horizontal;\n\t\t\t\tif(y.textRotation != null) alignment.textRotation = y.textRotation;\n\t\t\t\tif(y.indent) alignment.indent = y.indent;\n\t\t\t\tif(y.wrapText) alignment.wrapText = parsexmlbool(y.wrapText);\n\t\t\t\txf.alignment = alignment;\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.33 protection CT_CellProtection */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in cellXfs');\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction write_cellXfs(cellXfs)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\to[o.length] = (writextag('cellXfs',null));\n\tcellXfs.forEach(function(c) {\n\t\to[o.length] = (writextag('xf', null, c));\n\t});\n\to[o.length] = (\"\");\n\tif(o.length === 2) return \"\";\n\to[0] = writextag('cellXfs',null, {count:o.length-2}).replace(\"/>\",\">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8 Styles CT_Stylesheet*/\nvar parse_sty_xml= /*#__PURE__*/(function make_pstyx() {\nvar numFmtRegex = /<(?:\\w+:)?numFmts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?numFmts>/;\nvar cellXfRegex = /<(?:\\w+:)?cellXfs([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?cellXfs>/;\nvar fillsRegex = /<(?:\\w+:)?fills([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fills>/;\nvar fontsRegex = /<(?:\\w+:)?fonts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fonts>/;\nvar bordersRegex = /<(?:\\w+:)?borders([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?borders>/;\n\nreturn function parse_sty_xml(data, themes, opts) {\n\tvar styles = {};\n\tif(!data) return styles;\n\tdata = data.replace(//mg,\"\").replace(//gm,\"\");\n\t/* 18.8.39 styleSheet CT_Stylesheet */\n\tvar t;\n\n\t/* 18.8.31 numFmts CT_NumFmts ? */\n\tif((t=data.match(numFmtRegex))) parse_numFmts(t, styles, opts);\n\n\t/* 18.8.23 fonts CT_Fonts ? */\n\tif((t=data.match(fontsRegex))) parse_fonts(t, styles, themes, opts);\n\n\t/* 18.8.21 fills CT_Fills ? */\n\tif((t=data.match(fillsRegex))) parse_fills(t, styles, themes, opts);\n\n\t/* 18.8.5 borders CT_Borders ? */\n\tif((t=data.match(bordersRegex))) parse_borders(t, styles, themes, opts);\n\n\t/* 18.8.9 cellStyleXfs CT_CellStyleXfs ? */\n\t/* 18.8.8 cellStyles CT_CellStyles ? */\n\n\t/* 18.8.10 cellXfs CT_CellXfs ? */\n\tif((t=data.match(cellXfRegex))) parse_cellXfs(t, styles, opts);\n\n\t/* 18.8.15 dxfs CT_Dxfs ? */\n\t/* 18.8.42 tableStyles CT_TableStyles ? */\n\t/* 18.8.11 colors CT_Colors ? */\n\t/* 18.2.10 extLst CT_ExtensionList ? */\n\n\treturn styles;\n};\n})();\n\nfunction write_sty_xml(wb/*:Workbook*/, opts)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('styleSheet', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t'xmlns:vt': XMLNS.vt\n\t})], w;\n\tif(wb.SSF && (w = write_numFmts(wb.SSF)) != null) o[o.length] = w;\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\tif((w = write_cellXfs(opts.cellXfs))) o[o.length] = (w);\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.657 BrtFmt */\nfunction parse_BrtFmt(data, length/*:number*/) {\n\tvar numFmtId = data.read_shift(2);\n\tvar stFmtCode = parse_XLWideString(data,length-2);\n\treturn [numFmtId, stFmtCode];\n}\nfunction write_BrtFmt(i/*:number*/, f/*:string*/, o) {\n\tif(!o) o = new_buf(6 + 4 * f.length);\n\to.write_shift(2, i);\n\twrite_XLWideString(f, o);\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(o.l == null) o.l = o.length;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.4.659 BrtFont TODO */\nfunction parse_BrtFont(data, length/*:number*/, opts) {\n\tvar out = ({}/*:any*/);\n\n\tout.sz = data.read_shift(2) / 20;\n\n\tvar grbit = parse_FontFlags(data, 2, opts);\n\tif(grbit.fItalic) out.italic = 1;\n\tif(grbit.fCondense) out.condense = 1;\n\tif(grbit.fExtend) out.extend = 1;\n\tif(grbit.fShadow) out.shadow = 1;\n\tif(grbit.fOutline) out.outline = 1;\n\tif(grbit.fStrikeout) out.strike = 1;\n\n\tvar bls = data.read_shift(2);\n\tif(bls === 0x02BC) out.bold = 1;\n\n\tswitch(data.read_shift(2)) {\n\t\t/* case 0: out.vertAlign = \"baseline\"; break; */\n\t\tcase 1: out.vertAlign = \"superscript\"; break;\n\t\tcase 2: out.vertAlign = \"subscript\"; break;\n\t}\n\n\tvar underline = data.read_shift(1);\n\tif(underline != 0) out.underline = underline;\n\n\tvar family = data.read_shift(1);\n\tif(family > 0) out.family = family;\n\n\tvar bCharSet = data.read_shift(1);\n\tif(bCharSet > 0) out.charset = bCharSet;\n\n\tdata.l++;\n\tout.color = parse_BrtColor(data, 8);\n\n\tswitch(data.read_shift(1)) {\n\t\t/* case 0: out.scheme = \"none\": break; */\n\t\tcase 1: out.scheme = \"major\"; break;\n\t\tcase 2: out.scheme = \"minor\"; break;\n\t}\n\n\tout.name = parse_XLWideString(data, length - 21);\n\n\treturn out;\n}\nfunction write_BrtFont(font/*:any*/, o) {\n\tif(!o) o = new_buf(25+4*32);\n\to.write_shift(2, font.sz * 20);\n\twrite_FontFlags(font, o);\n\to.write_shift(2, font.bold ? 0x02BC : 0x0190);\n\tvar sss = 0;\n\tif(font.vertAlign == \"superscript\") sss = 1;\n\telse if(font.vertAlign == \"subscript\") sss = 2;\n\to.write_shift(2, sss);\n\to.write_shift(1, font.underline || 0);\n\to.write_shift(1, font.family || 0);\n\to.write_shift(1, font.charset || 0);\n\to.write_shift(1, 0);\n\twrite_BrtColor(font.color, o);\n\tvar scheme = 0;\n\tif(font.scheme == \"major\") scheme = 1;\n\tif(font.scheme == \"minor\") scheme = 2;\n\to.write_shift(1, scheme);\n\twrite_XLWideString(font.name, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.650 BrtFill */\nvar XLSBFillPTNames = [\n\t\"none\",\n\t\"solid\",\n\t\"mediumGray\",\n\t\"darkGray\",\n\t\"lightGray\",\n\t\"darkHorizontal\",\n\t\"darkVertical\",\n\t\"darkDown\",\n\t\"darkUp\",\n\t\"darkGrid\",\n\t\"darkTrellis\",\n\t\"lightHorizontal\",\n\t\"lightVertical\",\n\t\"lightDown\",\n\t\"lightUp\",\n\t\"lightGrid\",\n\t\"lightTrellis\",\n\t\"gray125\",\n\t\"gray0625\"\n];\nvar rev_XLSBFillPTNames/*:EvertNumType*/;\n/* TODO: gradient fill representation */\nvar parse_BrtFill = parsenoop;\nfunction write_BrtFill(fill, o) {\n\tif(!o) o = new_buf(4*3 + 8*7 + 16*1);\n\tif(!rev_XLSBFillPTNames) rev_XLSBFillPTNames = (evert(XLSBFillPTNames)/*:any*/);\n\tvar fls/*:number*/ = rev_XLSBFillPTNames[fill.patternType];\n\tif(fls == null) fls = 0x28;\n\to.write_shift(4, fls);\n\tvar j = 0;\n\tif(fls != 0x28) {\n\t\t/* TODO: custom FG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\t\t/* TODO: custom BG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0);\n\t} else {\n\t\tfor(; j < 4; ++j) o.write_shift(4, 0);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0); /* TODO */\n\t\t/* iGradientType */\n\t\t/* xnumDegree */\n\t\t/* xnumFillToLeft */\n\t\t/* xnumFillToRight */\n\t\t/* xnumFillToTop */\n\t\t/* xnumFillToBottom */\n\t\t/* cNumStop */\n\t\t/* xfillGradientStop */\n\t}\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.824 BrtXF */\nfunction parse_BrtXF(data, length/*:number*/) {\n\tvar tgt = data.l + length;\n\tvar ixfeParent = data.read_shift(2);\n\tvar ifmt = data.read_shift(2);\n\tdata.l = tgt;\n\treturn {ixfe:ixfeParent, numFmtId:ifmt };\n}\nfunction write_BrtXF(data, ixfeP, o) {\n\tif(!o) o = new_buf(16);\n\to.write_shift(2, ixfeP||0);\n\to.write_shift(2, data.numFmtId||0);\n\to.write_shift(2, 0); /* iFont */\n\to.write_shift(2, 0); /* iFill */\n\to.write_shift(2, 0); /* ixBorder */\n\to.write_shift(1, 0); /* trot */\n\to.write_shift(1, 0); /* indent */\n\tvar flow = 0;\n\to.write_shift(1, flow); /* flags */\n\to.write_shift(1, 0); /* flags */\n\to.write_shift(1, 0); /* xfGrbitAtr */\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.4 Blxf TODO */\nfunction write_Blxf(data, o) {\n\tif(!o) o = new_buf(10);\n\to.write_shift(1, 0); /* dg */\n\to.write_shift(1, 0);\n\to.write_shift(4, 0); /* color */\n\to.write_shift(4, 0); /* color */\n\treturn o;\n}\n/* [MS-XLSB] 2.4.302 BrtBorder TODO */\nvar parse_BrtBorder = parsenoop;\nfunction write_BrtBorder(border, o) {\n\tif(!o) o = new_buf(51);\n\to.write_shift(1, 0); /* diagonal */\n\twrite_Blxf(null, o); /* top */\n\twrite_Blxf(null, o); /* bottom */\n\twrite_Blxf(null, o); /* left */\n\twrite_Blxf(null, o); /* right */\n\twrite_Blxf(null, o); /* diag */\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.763 BrtStyle TODO */\nfunction write_BrtStyle(style, o) {\n\tif(!o) o = new_buf(12+4*10);\n\to.write_shift(4, style.xfId);\n\to.write_shift(2, 1);\n\to.write_shift(1, +style.builtinId);\n\to.write_shift(1, 0); /* iLevel */\n\twrite_XLNullableWideString(style.name || \"\", o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.272 BrtBeginTableStyles */\nfunction write_BrtBeginTableStyles(cnt, defTableStyle, defPivotStyle) {\n\tvar o = new_buf(4+256*2*4);\n\to.write_shift(4, cnt);\n\twrite_XLNullableWideString(defTableStyle, o);\n\twrite_XLNullableWideString(defPivotStyle, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction parse_sty_bin(data, themes, opts) {\n\tvar styles = {};\n\tstyles.NumberFmt = ([]/*:any*/);\n\tfor(var y in table_fmt) styles.NumberFmt[y] = table_fmt[y];\n\n\tstyles.CellXf = [];\n\tstyles.Fonts = [];\n\tvar state/*:Array*/ = [];\n\tvar pass = false;\n\trecordhopper(data, function hopper_sty(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x002C: /* BrtFmt */\n\t\t\t\tstyles.NumberFmt[val[0]] = val[1]; SSF__load(val[1], val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x002B: /* BrtFont */\n\t\t\t\tstyles.Fonts.push(val);\n\t\t\t\tif(val.color.theme != null && themes && themes.themeElements && themes.themeElements.clrScheme) {\n\t\t\t\t\tval.color.rgb = rgb_tint(themes.themeElements.clrScheme[val.color.theme].rgb, val.color.tint || 0);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0401: /* BrtKnownFonts */ break;\n\t\t\tcase 0x002D: /* BrtFill */\n\t\t\t\tbreak;\n\t\t\tcase 0x002E: /* BrtBorder */\n\t\t\t\tbreak;\n\t\t\tcase 0x002F: /* BrtXF */\n\t\t\t\tif(state[state.length - 1] == 0x0269 /* BrtBeginCellXFs */) {\n\t\t\t\t\tstyles.CellXf.push(val);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0030: /* BrtStyle */\n\t\t\tcase 0x01FB: /* BrtDXF */\n\t\t\tcase 0x023C: /* BrtMRUColor */\n\t\t\tcase 0x01DB: /* BrtIndexedColor */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0493: /* BrtDXF14 */\n\t\t\tcase 0x0836: /* BrtDXF15 */\n\t\t\tcase 0x046A: /* BrtSlicerStyleElement */\n\t\t\tcase 0x0200: /* BrtTableStyleElement */\n\t\t\tcase 0x082F: /* BrtTimelineStyleElement */\n\t\t\tcase 0x0C00: /* BrtUid */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* BrtFRTBegin */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* BrtFRTEnd */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* BrtACBegin */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0026: /* BrtACEnd */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T > 0) state.push(RT);\n\t\t\t\telse if(R.T < 0) state.pop();\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != 0x0025 /* BrtACBegin */)) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn styles;\n}\n\nfunction write_FMTS_bin(ba, NF/*:?SSFTable*/) {\n\tif(!NF) return;\n\tvar cnt = 0;\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\t/*:: if(!NF) return; */\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) ++cnt;\n\t});\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0267 /* BrtBeginFmts */, write_UInt32LE(cnt));\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\t/*:: if(!NF) return; */\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) write_record(ba, 0x002C /* BrtFmt */, write_BrtFmt(i, NF[i]));\n\t});\n\twrite_record(ba, 0x0268 /* BrtEndFmts */);\n}\n\nfunction write_FONTS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0263 /* BrtBeginFonts */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002B /* BrtFont */, write_BrtFont({\n\t\tsz:12,\n\t\tcolor: {theme:1},\n\t\tname: \"Calibri\",\n\t\tfamily: 2,\n\t\tscheme: \"minor\"\n\t}));\n\t/* 1*65491BrtFont [ACFONTS] */\n\twrite_record(ba, 0x0264 /* BrtEndFonts */);\n}\n\nfunction write_FILLS_bin(ba/*::, data*/) {\n\tvar cnt = 2;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x025B /* BrtBeginFills */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002D /* BrtFill */, write_BrtFill({patternType:\"none\"}));\n\twrite_record(ba, 0x002D /* BrtFill */, write_BrtFill({patternType:\"gray125\"}));\n\t/* 1*65431BrtFill */\n\twrite_record(ba, 0x025C /* BrtEndFills */);\n}\n\nfunction write_BORDERS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0265 /* BrtBeginBorders */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002E /* BrtBorder */, write_BrtBorder({}));\n\t/* 1*65430BrtBorder */\n\twrite_record(ba, 0x0266 /* BrtEndBorders */);\n}\n\nfunction write_CELLSTYLEXFS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\twrite_record(ba, 0x0272 /* BrtBeginCellStyleXFs */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002F /* BrtXF */, write_BrtXF({\n\t\tnumFmtId: 0,\n\t\tfontId: 0,\n\t\tfillId: 0,\n\t\tborderId: 0\n\t}, 0xFFFF));\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, 0x0273 /* BrtEndCellStyleXFs */);\n}\n\nfunction write_CELLXFS_bin(ba, data) {\n\twrite_record(ba, 0x0269 /* BrtBeginCellXFs */, write_UInt32LE(data.length));\n\tdata.forEach(function(c) { write_record(ba, 0x002F /* BrtXF */, write_BrtXF(c,0)); });\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, 0x026A /* BrtEndCellXFs */);\n}\n\nfunction write_STYLES_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\twrite_record(ba, 0x026B /* BrtBeginStyles */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x0030 /* BrtStyle */, write_BrtStyle({\n\t\txfId:0,\n\t\tbuiltinId:0,\n\t\tname:\"Normal\"\n\t}));\n\t/* 1*65430(BrtStyle *FRT) */\n\twrite_record(ba, 0x026C /* BrtEndStyles */);\n}\n\nfunction write_DXFS_bin(ba/*::, data*/) {\n\tvar cnt = 0;\n\n\twrite_record(ba, 0x01F9 /* BrtBeginDXFs */, write_UInt32LE(cnt));\n\t/* *2147483647(BrtDXF *FRT) */\n\twrite_record(ba, 0x01FA /* BrtEndDXFs */);\n}\n\nfunction write_TABLESTYLES_bin(ba/*::, data*/) {\n\tvar cnt = 0;\n\n\twrite_record(ba, 0x01FC /* BrtBeginTableStyles */, write_BrtBeginTableStyles(cnt, \"TableStyleMedium9\", \"PivotStyleMedium4\"));\n\t/* *TABLESTYLE */\n\twrite_record(ba, 0x01FD /* BrtEndTableStyles */);\n}\n\nfunction write_COLORPALETTE_bin(/*::ba, data*/) {\n\treturn;\n\t/* BrtBeginColorPalette [INDEXEDCOLORS] [MRUCOLORS] BrtEndColorPalette */\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction write_sty_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x0116 /* BrtBeginStyleSheet */);\n\twrite_FMTS_bin(ba, wb.SSF);\n\twrite_FONTS_bin(ba, wb);\n\twrite_FILLS_bin(ba, wb);\n\twrite_BORDERS_bin(ba, wb);\n\twrite_CELLSTYLEXFS_bin(ba, wb);\n\twrite_CELLXFS_bin(ba, opts.cellXfs);\n\twrite_STYLES_bin(ba, wb);\n\twrite_DXFS_bin(ba, wb);\n\twrite_TABLESTYLES_bin(ba, wb);\n\twrite_COLORPALETTE_bin(ba, wb);\n\t/* FRTSTYLESHEET*/\n\twrite_record(ba, 0x0117 /* BrtEndStyleSheet */);\n\treturn ba.end();\n}\n/* Even though theme layout is dk1 lt1 dk2 lt2, true order is lt1 dk1 lt2 dk2 */\nvar XLSXThemeClrScheme = [\n\t'', '', '', '',\n\t'', '', '',\n\t'', '', '',\n\t'', ''\n];\n/* 20.1.6.2 clrScheme CT_ColorScheme */\nfunction parse_clrScheme(t, themes, opts) {\n\tthemes.themeElements.clrScheme = [];\n\tvar color = {};\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\t/* 20.1.6.2 clrScheme (Color Scheme) CT_ColorScheme */\n\t\t\tcase '': break;\n\n\t\t\t/* 20.1.2.3.32 srgbClr CT_SRgbColor */\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\t\tif (y[0].charAt(1) === '/') {\n\t\t\t\t\tthemes.themeElements.clrScheme[XLSXThemeClrScheme.indexOf(y[0])] = color;\n\t\t\t\t\tcolor = {};\n\t\t\t\t} else {\n\t\t\t\t\tcolor.name = y[0].slice(3, y[0].length - 1);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tdefault: if(opts && opts.WTF) throw new Error('Unrecognized ' + y[0] + ' in clrScheme');\n\t\t}\n\t});\n}\n\n/* 20.1.4.1.18 fontScheme CT_FontScheme */\nfunction parse_fontScheme(/*::t, themes, opts*/) { }\n\n/* 20.1.4.1.15 fmtScheme CT_StyleMatrix */\nfunction parse_fmtScheme(/*::t, themes, opts*/) { }\n\nvar clrsregex = /]*)>[\\s\\S]*<\\/a:clrScheme>/;\nvar fntsregex = /]*)>[\\s\\S]*<\\/a:fontScheme>/;\nvar fmtsregex = /]*)>[\\s\\S]*<\\/a:fmtScheme>/;\n\n/* 20.1.6.10 themeElements CT_BaseStyles */\nfunction parse_themeElements(data, themes, opts) {\n\tthemes.themeElements = {};\n\n\tvar t;\n\n\t[\n\t\t/* clrScheme CT_ColorScheme */\n\t\t['clrScheme', clrsregex, parse_clrScheme],\n\t\t/* fontScheme CT_FontScheme */\n\t\t['fontScheme', fntsregex, parse_fontScheme],\n\t\t/* fmtScheme CT_StyleMatrix */\n\t\t['fmtScheme', fmtsregex, parse_fmtScheme]\n\t].forEach(function(m) {\n\t\tif(!(t=data.match(m[1]))) throw new Error(m[0] + ' not found in themeElements');\n\t\tm[2](t, themes, opts);\n\t});\n}\n\nvar themeltregex = /]*)>[\\s\\S]*<\\/a:themeElements>/;\n\n/* 14.2.7 Theme Part */\nfunction parse_theme_xml(data/*:string*/, opts) {\n\t/* 20.1.6.9 theme CT_OfficeStyleSheet */\n\tif(!data || data.length === 0) data = write_theme();\n\n\tvar t;\n\tvar themes = {};\n\n\t/* themeElements CT_BaseStyles */\n\tif(!(t=data.match(themeltregex))) throw new Error('themeElements not found in theme');\n\tparse_themeElements(t[0], themes, opts);\n\tthemes.raw = data;\n\treturn themes;\n}\n\nfunction write_theme(Themes, opts)/*:string*/ {\n\tif(opts && opts.themeXLSX) return opts.themeXLSX;\n\tif(Themes && typeof Themes.raw == \"string\") return Themes.raw;\n\tvar o = [XML_HEADER];\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\treturn o.join(\"\");\n}\n/* [MS-XLS] 2.4.326 TODO: payload is a zip file */\nfunction parse_Theme(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar dwThemeVersion = blob.read_shift(4);\n\tif(dwThemeVersion === 124226) return;\n\tif(!opts.cellStyles) { blob.l = end; return; }\n\tvar data = blob.slice(blob.l);\n\tblob.l = end;\n\tvar zip; try { zip = zip_read(data, {type: \"array\"}); } catch(e) { return; }\n\tvar themeXML = getzipstr(zip, \"theme/theme/theme1.xml\", true);\n\tif(!themeXML) return;\n\treturn parse_theme_xml(themeXML, opts);\n}\n\n/* 2.5.49 */\nfunction parse_ColorTheme(blob/*::, length*/) { return blob.read_shift(4); }\n\n/* 2.5.155 */\nfunction parse_FullColorExt(blob/*::, length*/) {\n\tvar o = {};\n\to.xclrType = blob.read_shift(2);\n\to.nTintShade = blob.read_shift(2);\n\tswitch(o.xclrType) {\n\t\tcase 0: blob.l += 4; break;\n\t\tcase 1: o.xclrValue = parse_IcvXF(blob, 4); break;\n\t\tcase 2: o.xclrValue = parse_LongRGBA(blob, 4); break;\n\t\tcase 3: o.xclrValue = parse_ColorTheme(blob, 4); break;\n\t\tcase 4: blob.l += 4; break;\n\t}\n\tblob.l += 8;\n\treturn o;\n}\n\n/* 2.5.164 TODO: read 7 bits*/\nfunction parse_IcvXF(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* 2.5.280 */\nfunction parse_XFExtGradient(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* [MS-XLS] 2.5.108 */\nfunction parse_ExtProp(blob/*::, length*/)/*:Array*/ {\n\tvar extType = blob.read_shift(2);\n\tvar cb = blob.read_shift(2) - 4;\n\tvar o = [extType];\n\tswitch(extType) {\n\t\tcase 0x04: case 0x05: case 0x07: case 0x08:\n\t\tcase 0x09: case 0x0A: case 0x0B: case 0x0D:\n\t\t\to[1] = parse_FullColorExt(blob, cb); break;\n\t\tcase 0x06: o[1] = parse_XFExtGradient(blob, cb); break;\n\t\tcase 0x0E: case 0x0F: o[1] = blob.read_shift(cb === 1 ? 1 : 2); break;\n\t\tdefault: throw new Error(\"Unrecognized ExtProp type: \" + extType + \" \" + cb);\n\t}\n\treturn o;\n}\n\n/* 2.4.355 */\nfunction parse_XFExt(blob, length) {\n\tvar end = blob.l + length;\n\tblob.l += 2;\n\tvar ixfe = blob.read_shift(2);\n\tblob.l += 2;\n\tvar cexts = blob.read_shift(2);\n\tvar ext/*:AOA*/ = [];\n\twhile(cexts-- > 0) ext.push(parse_ExtProp(blob, end-blob.l));\n\treturn {ixfe:ixfe, ext:ext};\n}\n\n/* xf is an XF, see parse_XFExt for xfext */\nfunction update_xfext(xf, xfext) {\n\txfext.forEach(function(xfe) {\n\t\tswitch(xfe[0]) { /* 2.5.108 extPropData */\n\t\t\tcase 0x04: break; /* foreground color */\n\t\t\tcase 0x05: break; /* background color */\n\t\t\tcase 0x06: break; /* gradient fill */\n\t\t\tcase 0x07: break; /* top cell border color */\n\t\t\tcase 0x08: break; /* bottom cell border color */\n\t\t\tcase 0x09: break; /* left cell border color */\n\t\t\tcase 0x0a: break; /* right cell border color */\n\t\t\tcase 0x0b: break; /* diagonal cell border color */\n\t\t\tcase 0x0d: /* text color */\n\t\t\t\tbreak;\n\t\t\tcase 0x0e: break; /* font scheme */\n\t\t\tcase 0x0f: break; /* indentation level */\n\t\t}\n\t});\n}\n\nfunction parse_BrtMdtinfo(data, length) {\n return {\n flags: data.read_shift(4),\n version: data.read_shift(4),\n name: parse_XLWideString(data, length - 8)\n };\n}\nfunction write_BrtMdtinfo(data) {\n var o = new_buf(12 + 2 * data.name.length);\n o.write_shift(4, data.flags);\n o.write_shift(4, data.version);\n write_XLWideString(data.name, o);\n return o.slice(0, o.l);\n}\nfunction parse_BrtMdb(data) {\n var out = [];\n var cnt = data.read_shift(4);\n while (cnt-- > 0)\n out.push([data.read_shift(4), data.read_shift(4)]);\n return out;\n}\nfunction write_BrtMdb(mdb) {\n var o = new_buf(4 + 8 * mdb.length);\n o.write_shift(4, mdb.length);\n for (var i = 0; i < mdb.length; ++i) {\n o.write_shift(4, mdb[i][0]);\n o.write_shift(4, mdb[i][1]);\n }\n return o;\n}\nfunction write_BrtBeginEsfmd(cnt, name) {\n var o = new_buf(8 + 2 * name.length);\n o.write_shift(4, cnt);\n write_XLWideString(name, o);\n return o.slice(0, o.l);\n}\nfunction parse_BrtBeginEsmdb(data) {\n data.l += 4;\n return data.read_shift(4) != 0;\n}\nfunction write_BrtBeginEsmdb(cnt, cm) {\n var o = new_buf(8);\n o.write_shift(4, cnt);\n o.write_shift(4, cm ? 1 : 0);\n return o;\n}\nfunction parse_xlmeta_bin(data, name, _opts) {\n var out = { Types: [], Cell: [], Value: [] };\n var opts = _opts || {};\n var state = [];\n var pass = false;\n var metatype = 2;\n recordhopper(data, function(val, R, RT) {\n switch (RT) {\n case 335:\n out.Types.push({ name: val.name });\n break;\n case 51:\n val.forEach(function(r) {\n if (metatype == 1)\n out.Cell.push({ type: out.Types[r[0] - 1].name, index: r[1] });\n else if (metatype == 0)\n out.Value.push({ type: out.Types[r[0] - 1].name, index: r[1] });\n });\n break;\n case 337:\n metatype = val ? 1 : 0;\n break;\n case 338:\n metatype = 2;\n break;\n case 35:\n state.push(RT);\n pass = true;\n break;\n case 36:\n state.pop();\n pass = false;\n break;\n default:\n if (R.T) {\n } else if (!pass || opts.WTF && state[state.length - 1] != 35)\n throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n }\n });\n return out;\n}\nfunction write_xlmeta_bin() {\n var ba = buf_array();\n write_record(ba, 332);\n write_record(ba, 334, write_UInt32LE(1));\n write_record(ba, 335, write_BrtMdtinfo({\n name: \"XLDAPR\",\n version: 12e4,\n flags: 3496657072\n }));\n write_record(ba, 336);\n write_record(ba, 339, write_BrtBeginEsfmd(1, \"XLDAPR\"));\n write_record(ba, 52);\n write_record(ba, 35, write_UInt32LE(514));\n write_record(ba, 4096, write_UInt32LE(0));\n write_record(ba, 4097, writeuint16(1));\n write_record(ba, 36);\n write_record(ba, 53);\n write_record(ba, 340);\n write_record(ba, 337, write_BrtBeginEsmdb(1, true));\n write_record(ba, 51, write_BrtMdb([[1, 0]]));\n write_record(ba, 338);\n write_record(ba, 333);\n return ba.end();\n}\nfunction parse_xlmeta_xml(data, name, opts) {\n var out = { Types: [], Cell: [], Value: [] };\n if (!data)\n return out;\n var pass = false;\n var metatype = 2;\n var lastmeta;\n data.replace(tagregex, function(x) {\n var y = parsexmltag(x);\n switch (strip_ns(y[0])) {\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n metatype = 2;\n break;\n case \"\":\n metatype = 2;\n break;\n case \"\":\n case \"\":\n case \"\":\n break;\n case \"\":\n pass = false;\n break;\n case \"\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n');\n return o.join(\"\");\n}\n/* 18.6 Calculation Chain */\nfunction parse_cc_xml(data/*::, name, opts*/)/*:Array*/ {\n\tvar d = [];\n\tif(!data) return d;\n\tvar i = 1;\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.6.1 c CT_CalcCell 1 */\n\t\t\tcase ']*r:id=\"([^\"]*)\"/)||[\"\",\"\"])[1];\n\n\treturn rels['!id'][id].Target;\n}\n\n/* L.5.5.2 SpreadsheetML Comments + VML Schema */\nvar shapevmlregex = /<(?:\\w+:)?shape(?:[^\\w][^>]*)?>([\\s\\S]*?)<\\/(?:\\w+:)?shape>/g;\nfunction parse_vml(data/*:string*/, sheet, comments) {\n\tvar cidx = 0;\n\t(data.match(shapevmlregex)||[]).forEach(function(m) {\n\t\tvar type = \"\";\n\t\tvar hidden = true;\n\t\tvar aidx = -1;\n\t\tvar R = -1, C = -1;\n\t\tm.replace(tagregex, function(x/*:string*/, idx/*:number*/) {\n\t\t\tvar y = parsexmltag(x);\n\t\t\tswitch(strip_ns(y[0])) {\n\t\t\t\tcase '': hidden = false; break;\n\n\t\t\t\tcase '': aidx = idx + x.length; break;\n\t\t\t\tcase '': R = +m.slice(aidx, idx).trim(); break;\n\n\t\t\t\tcase '': aidx = idx + x.length; break;\n\t\t\t\tcase '': C = +m.slice(aidx, idx).trim(); break;\n\t\t\t}\n\t\t\treturn \"\";\n\t\t});\n\t\tswitch(type) {\n\t\tcase 'Note':\n\t\t\tvar cell = ws_get_cell_stub(sheet, ((R>=0 && C>=0) ? encode_cell({r:R,c:C}) : comments[cidx].ref));\n\t\t\tif(cell.c) {\n\t\t\t\tcell.c.hidden = hidden;\n\t\t\t}\n\t\t\t++cidx;\n\t\t\tbreak;\n\t\t}\n\n\t});\n}\n\n\n/* comment boxes */\nfunction write_vml(rId/*:number*/, comments, ws) {\n\tvar csize = [21600, 21600];\n\t/* L.5.2.1.2 Path Attribute */\n\tvar bbox = [\"m0,0l0\",csize[1],csize[0],csize[1],csize[0],\"0xe\"].join(\",\");\n\tvar o = [\n\t\twritextag(\"xml\", null, { 'xmlns:v': XLMLNS.v, 'xmlns:o': XLMLNS.o, 'xmlns:x': XLMLNS.x, 'xmlns:mv': XLMLNS.mv }).replace(/\\/>/,\">\"),\n\t\twritextag(\"o:shapelayout\", writextag(\"o:idmap\", null, {'v:ext':\"edit\", 'data':rId}), {'v:ext':\"edit\"})\n\t];\n\n\tvar _shapeid = 65536 * rId;\n\n\tvar _comments = comments || [];\n\tif(_comments.length > 0) o.push(writextag(\"v:shapetype\", [\n\t\twritextag(\"v:stroke\", null, {joinstyle:\"miter\"}),\n\t\twritextag(\"v:path\", null, {gradientshapeok:\"t\", 'o:connecttype':\"rect\"})\n\t].join(\"\"), {id:\"_x0000_t202\", coordsize:csize.join(\",\"), 'o:spt':202, path:bbox}));\n\n\t_comments.forEach(function(x) { ++_shapeid; o.push(write_vml_comment(x, _shapeid)); });\n\to.push('');\n\treturn o.join(\"\");\n}\n\nfunction write_vml_comment(x, _shapeid, ws)/*:string*/ {\n\tvar c = decode_cell(x[0]);\n\tvar fillopts = /*::(*/{'color2':\"#BEFF82\", 'type':\"gradient\"}/*:: :any)*/;\n\tif(fillopts.type == \"gradient\") fillopts.angle = \"-180\";\n\tvar fillparm = fillopts.type == \"gradient\" ? writextag(\"o:fill\", null, {type:\"gradientUnscaled\", 'v:ext':\"view\"}) : null;\n\tvar fillxml = writextag('v:fill', fillparm, fillopts);\n\n\tvar shadata = ({on:\"t\", 'obscured':\"t\"}/*:any*/);\n\n\treturn [\n\t'',\n\t\tfillxml,\n\t\twritextag(\"v:shadow\", null, shadata),\n\t\twritextag(\"v:path\", null, {'o:connecttype':\"none\"}),\n\t\t'
',\n\t\t'',\n\t\t\t'',\n\t\t\t'',\n\t\t\t/* Part 4 19.4.2.3 Anchor (Anchor) */\n\t\t\twritetag('x:Anchor', [c.c+1, 0, c.r+1, 0, c.c+3, 20, c.r+5, 20].join(\",\")),\n\t\t\twritetag('x:AutoFill', \"False\"),\n\t\t\twritetag('x:Row', String(c.r)),\n\t\t\twritetag('x:Column', String(c.c)),\n\t\t\tx[1].hidden ? '' : '',\n\t\t'',\n\t''\n\t].join(\"\");\n}\nfunction sheet_insert_comments(sheet/*:WorkSheet*/, comments/*:Array*/, threaded/*:boolean*/, people/*:?Array*/) {\n\tvar dense = sheet[\"!data\"] != null;\n\tvar cell/*:Cell*/;\n\tcomments.forEach(function(comment) {\n\t\tvar r = decode_cell(comment.ref);\n\t\tif(r.r < 0 || r.c < 0) return;\n\t\tif(dense) {\n\t\t\tif(!sheet[\"!data\"][r.r]) sheet[\"!data\"][r.r] = [];\n\t\t\tcell = sheet[\"!data\"][r.r][r.c];\n\t\t} else cell = sheet[comment.ref];\n\t\tif (!cell) {\n\t\t\tcell = ({t:\"z\"}/*:any*/);\n\t\t\tif(dense) sheet[\"!data\"][r.r][r.c] = cell;\n\t\t\telse sheet[comment.ref] = cell;\n\t\t\tvar range = safe_decode_range(sheet[\"!ref\"]||\"BDWGO1000001:A1\");\n\t\t\tif(range.s.r > r.r) range.s.r = r.r;\n\t\t\tif(range.e.r < r.r) range.e.r = r.r;\n\t\t\tif(range.s.c > r.c) range.s.c = r.c;\n\t\t\tif(range.e.c < r.c) range.e.c = r.c;\n\t\t\tvar encoded = encode_range(range);\n\t\t\tsheet[\"!ref\"] = encoded;\n\t\t}\n\n\t\tif (!cell.c) cell.c = [];\n\t\tvar o/*:Comment*/ = ({a: comment.author, t: comment.t, r: comment.r, T: threaded});\n\t\tif(comment.h) o.h = comment.h;\n\n\t\t/* threaded comments always override */\n\t\tfor(var i = cell.c.length - 1; i >= 0; --i) {\n\t\t\tif(!threaded && cell.c[i].T) return;\n\t\t\tif(threaded && !cell.c[i].T) cell.c.splice(i, 1);\n\t\t}\n\t\tif(threaded && people) for(i = 0; i < people.length; ++i) {\n\t\t\tif(o.a == people[i].id) { o.a = people[i].name || o.a; break; }\n\t\t}\n\t\tcell.c.push(o);\n\t});\n}\n/* 18.7 Comments */\nfunction parse_comments_xml(data/*:string*/, opts)/*:Array*/ {\n\t/* 18.7.6 CT_Comments */\n\tif(data.match(/<(?:\\w+:)?comments *\\/>/)) return [];\n\tvar authors/*:Array*/ = [];\n\tvar commentList/*:Array*/ = [];\n\tvar authtag = data.match(/<(?:\\w+:)?authors>([\\s\\S]*)<\\/(?:\\w+:)?authors>/);\n\tif(authtag && authtag[1]) authtag[1].split(/<\\/\\w*:?author>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar a = x.match(/<(?:\\w+:)?author[^>]*>(.*)/);\n\t\tif(a) authors.push(a[1]);\n\t});\n\tvar cmnttag = data.match(/<(?:\\w+:)?commentList>([\\s\\S]*)<\\/(?:\\w+:)?commentList>/);\n\tif(cmnttag && cmnttag[1]) cmnttag[1].split(/<\\/\\w*:?comment>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar cm = x.match(/<(?:\\w+:)?comment[^>]*>/);\n\t\tif(!cm) return;\n\t\tvar y = parsexmltag(cm[0]);\n\t\tvar comment/*:RawComment*/ = ({ author: y.authorId && authors[y.authorId] || \"sheetjsghost\", ref: y.ref, guid: y.guid }/*:any*/);\n\t\tvar cell = decode_cell(y.ref);\n\t\tif(opts.sheetRows && opts.sheetRows <= cell.r) return;\n\t\tvar textMatch = x.match(/<(?:\\w+:)?text>([\\s\\S]*)<\\/(?:\\w+:)?text>/);\n\t\tvar rt = !!textMatch && !!textMatch[1] && parse_si(textMatch[1]) || {r:\"\",t:\"\",h:\"\"};\n\t\tcomment.r = rt.r;\n\t\tif(rt.r == \"\") rt.t = rt.h = \"\";\n\t\tcomment.t = (rt.t||\"\").replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\t\tif(opts.cellHTML) comment.h = rt.h;\n\t\tcommentList.push(comment);\n\t});\n\treturn commentList;\n}\n\nfunction write_comments_xml(data/*::, opts*/) {\n\tvar o = [XML_HEADER, writextag('comments', null, { 'xmlns': XMLNS_main[0] })];\n\n\tvar iauthor/*:Array*/ = [];\n\to.push(\"\");\n\tdata.forEach(function(x) { x[1].forEach(function(w) { var a = escapexml(w.a);\n\t\tif(iauthor.indexOf(a) == -1) {\n\t\t\tiauthor.push(a);\n\t\t\to.push(\"\" + a + \"\");\n\t\t}\n\t\tif(w.T && w.ID && iauthor.indexOf(\"tc=\" + w.ID) == -1) {\n\t\t\tiauthor.push(\"tc=\" + w.ID);\n\t\t\to.push(\"\" + \"tc=\" + w.ID + \"\");\n\t\t}\n\t}); });\n\tif(iauthor.length == 0) { iauthor.push(\"SheetJ5\"); o.push(\"SheetJ5\"); }\n\to.push(\"\");\n\to.push(\"\");\n\tdata.forEach(function(d) {\n\t\t/* 18.7.3 CT_Comment */\n\t\tvar lastauthor = 0, ts = [], tcnt = 0;\n\t\tif(d[1][0] && d[1][0].T && d[1][0].ID) lastauthor = iauthor.indexOf(\"tc=\" + d[1][0].ID);\n\t\td[1].forEach(function(c) {\n\t\t\tif(c.a) lastauthor = iauthor.indexOf(escapexml(c.a));\n\t\t\tif(c.T) ++tcnt;\n\t\t\tts.push(c.t == null ? \"\" : escapexml(c.t));\n\t\t});\n\t\tif(tcnt === 0) {\n\t\t\td[1].forEach(function(c) {\n\t\t\t\to.push('');\n\t\t\t\to.push(writetag(\"t\", c.t == null ? \"\" : escapexml(c.t)));\n\t\t\t\to.push('');\n\t\t\t});\n\t\t} else {\n\t\t\tif(d[1][0] && d[1][0].T && d[1][0].ID) lastauthor = iauthor.indexOf(\"tc=\" + d[1][0].ID);\n\t\t\t/* based on Threaded Comments -> Comments projection */\n\t\t\to.push('');\n\t\t\tvar t = \"Comment:\\n \" + (ts[0]) + \"\\n\";\n\t\t\tfor(var i = 1; i < ts.length; ++i) t += \"Reply:\\n \" + ts[i] + \"\\n\";\n\t\t\to.push(writetag(\"t\", escapexml(t)));\n\t\t\to.push('');\n\t\t}\n\t});\n\to.push(\"\");\n\tif(o.length>2) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSX] 2.1.17 */\nfunction parse_tcmnt_xml(data/*:string*/, opts)/*:Array*/ {\n\tvar out = [];\n\tvar pass = false, comment = {}, tidx = 0;\n\tdata.replace(tagregex, function xml_tcmnt(x, idx) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\n\t\t\t/* 2.6.205 threadedComment CT_ThreadedComment */\n\t\t\tcase '': if(comment.t != null) out.push(comment); break;\n\n\t\t\tcase '': case '': comment.t = data.slice(tidx, idx).replace(/\\r\\n/g, \"\\n\").replace(/\\r/g, \"\\n\"); break;\n\n\t\t\t/* 2.6.206 mentions CT_ThreadedCommentMentions TODO */\n\t\t\tcase '': pass = true; break;\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 2.6.202 mention CT_Mention TODO */\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '
': case '': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '': pass=false; break;\n\n\t\t\tdefault: if(!pass && opts.WTF) throw new Error('unrecognized ' + y[0] + ' in threaded comments');\n\t\t}\n\t\treturn x;\n\t});\n\treturn out;\n}\n\nfunction write_tcmnt_xml(comments, people, opts) {\n\tvar o = [XML_HEADER, writextag('ThreadedComments', null, { 'xmlns': XMLNS.TCMNT }).replace(/[\\/]>/, \">\")];\n\tcomments.forEach(function(carr) {\n\t\tvar rootid = \"\";\n\t\t(carr[1] || []).forEach(function(c, idx) {\n\t\t\tif(!c.T) { delete c.ID; return; }\n\t\t\tif(c.a && people.indexOf(c.a) == -1) people.push(c.a);\n\t\t\tvar tcopts = {\n\t\t\t\tref: carr[0],\n\t\t\t\tid: \"{54EE7951-7262-4200-6969-\" + (\"000000000000\" + opts.tcid++).slice(-12) + \"}\"\n\t\t\t};\n\t\t\tif(idx == 0) rootid = tcopts.id;\n\t\t\telse tcopts.parentId = rootid;\n\t\t\tc.ID = tcopts.id;\n\t\t\tif(c.a) tcopts.personId = \"{54EE7950-7262-4200-6969-\" + (\"000000000000\" + people.indexOf(c.a)).slice(-12) + \"}\";\n\t\t\to.push(writextag('threadedComment', writetag('text', c.t||\"\"), tcopts));\n\t\t});\n\t});\n\to.push('');\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSX] 2.1.18 */\nfunction parse_people_xml(data/*:string*/, opts) {\n\tvar out = [];\n\tvar pass = false;\n\tdata.replace(tagregex, function xml_tcmnt(x) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\n\t\t\t/* 2.6.203 person CT_Person TODO: providers */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': case '': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '': pass=false; break;\n\n\t\t\tdefault: if(!pass && opts.WTF) throw new Error('unrecognized ' + y[0] + ' in threaded comments');\n\t\t}\n\t\treturn x;\n\t});\n\treturn out;\n}\nfunction write_people_xml(people/*, opts*/) {\n\tvar o = [XML_HEADER, writextag('personList', null, {\n\t\t'xmlns': XMLNS.TCMNT,\n\t\t'xmlns:x': XMLNS_main[0]\n\t}).replace(/[\\/]>/, \">\")];\n\tpeople.forEach(function(person, idx) {\n\t\to.push(writextag('person', null, {\n\t\t\tdisplayName: person,\n\t\t\tid: \"{54EE7950-7262-4200-6969-\" + (\"000000000000\" + idx).slice(-12) + \"}\",\n\t\t\tuserId: person,\n\t\t\tproviderId: \"None\"\n\t\t}));\n\t});\n\to.push(\"\");\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.28 BrtBeginComment */\nfunction parse_BrtBeginComment(data) {\n\tvar out = {};\n\tout.iauthor = data.read_shift(4);\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tout.rfx = rfx.s;\n\tout.ref = encode_cell(rfx.s);\n\tdata.l += 16; /*var guid = parse_GUID(data); */\n\treturn out;\n}\nfunction write_BrtBeginComment(data, o) {\n\tif(o == null) o = new_buf(36);\n\to.write_shift(4, data[1].iauthor);\n\twrite_UncheckedRfX((data[0]/*:any*/), o);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.327 BrtCommentAuthor */\nvar parse_BrtCommentAuthor = parse_XLWideString;\nfunction write_BrtCommentAuthor(data) { return write_XLWideString(data.slice(0, 54)); }\n\n/* [MS-XLSB] 2.1.7.8 Comments */\nfunction parse_comments_bin(data, opts)/*:Array*/ {\n\tvar out/*:Array*/ = [];\n\tvar authors/*:Array*/ = [];\n\tvar c = {};\n\tvar pass = false;\n\trecordhopper(data, function hopper_cmnt(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x0278: /* 'BrtCommentAuthor' */\n\t\t\t\tauthors.push(val); break;\n\t\t\tcase 0x027B: /* 'BrtBeginComment' */\n\t\t\t\tc = val; break;\n\t\t\tcase 0x027D: /* 'BrtCommentText' */\n\t\t\t\tc.t = val.t; c.h = val.h; c.r = val.r; break;\n\t\t\tcase 0x027C: /* 'BrtEndComment' */\n\t\t\t\tc.author = authors[c.iauthor];\n\t\t\t\tdelete (c/*:any*/).iauthor;\n\t\t\t\tif(opts.sheetRows && c.rfx && opts.sheetRows <= c.rfx.r) break;\n\t\t\t\tif(!c.t) c.t = \"\";\n\t\t\t\tdelete c.rfx; out.push(c); break;\n\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */ break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */ break;\n\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn out;\n}\n\nfunction write_comments_bin(data/*::, opts*/) {\n\tvar ba = buf_array();\n\tvar iauthor/*:Array*/ = [];\n\twrite_record(ba, 0x0274 /* BrtBeginComments */);\n\n\twrite_record(ba, 0x0276 /* BrtBeginCommentAuthors */);\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tif(iauthor.indexOf(c.a) > -1) return;\n\t\t\tiauthor.push(c.a.slice(0,54));\n\t\t\twrite_record(ba, 0x0278 /* BrtCommentAuthor */, write_BrtCommentAuthor(c.a));\n\t\t\tif(c.T && c.ID && iauthor.indexOf(\"tc=\" + c.ID) == -1) {\n\t\t\t\tiauthor.push(\"tc=\" + c.ID);\n\t\t\t\twrite_record(ba, 0x0278 /* BrtCommentAuthor */, write_BrtCommentAuthor(\"tc=\" + c.ID));\n\t\t\t}\n\t\t});\n\t});\n\twrite_record(ba, 0x0277 /* BrtEndCommentAuthors */);\n\n\twrite_record(ba, 0x0279 /* BrtBeginCommentList */);\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tvar _ia = -1;\n\t\t\tif(c.ID) _ia = iauthor.indexOf(\"tc=\" + c.ID);\n\t\t\tif(_ia == -1 && comment[1][0].T && comment[1][0].ID) _ia = iauthor.indexOf(\"tc=\" + comment[1][0].ID);\n\t\t\tif(_ia == -1) _ia = iauthor.indexOf(c.a);\n\t\t\tc.iauthor = _ia;\n\t\t\tvar range = {s:decode_cell(comment[0]),e:decode_cell(comment[0])};\n\t\t\twrite_record(ba, 0x027B /* BrtBeginComment */, write_BrtBeginComment([range, c]));\n\t\t\tif(c.t && c.t.length > 0) write_record(ba, 0x027D /* BrtCommentText */, write_BrtCommentText(c));\n\t\t\twrite_record(ba, 0x027C /* BrtEndComment */);\n\t\t\tdelete c.iauthor;\n\t\t});\n\t});\n\twrite_record(ba, 0x027A /* BrtEndCommentList */);\n\n\twrite_record(ba, 0x0275 /* BrtEndComments */);\n\treturn ba.end();\n}\nvar CT_VBA = \"application/vnd.ms-office.vbaProject\";\nfunction make_vba_xls(cfb) {\n var newcfb = CFB.utils.cfb_new({ root: \"R\" });\n cfb.FullPaths.forEach(function(p, i) {\n if (p.slice(-1) === \"/\" || !p.match(/_VBA_PROJECT_CUR/))\n return;\n var newpath = p.replace(/^[^\\/]*/, \"R\").replace(/\\/_VBA_PROJECT_CUR\\u0000*/, \"\");\n CFB.utils.cfb_add(newcfb, newpath, cfb.FileIndex[i].content);\n });\n return CFB.write(newcfb);\n}\nfunction fill_vba_xls(cfb, vba) {\n vba.FullPaths.forEach(function(p, i) {\n if (i == 0)\n return;\n var newpath = p.replace(/[^\\/]*[\\/]/, \"/_VBA_PROJECT_CUR/\");\n if (newpath.slice(-1) !== \"/\")\n CFB.utils.cfb_add(cfb, newpath, vba.FileIndex[i].content);\n });\n}\nvar VBAFMTS = [\"xlsb\", \"xlsm\", \"xlam\", \"biff8\", \"xla\"];\n/* macro and dialog sheet stubs */\nfunction parse_ds_bin(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'dialog'}; }\nfunction parse_ds_xml(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'dialog'}; }\nfunction parse_ms_bin(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'macro'}; }\nfunction parse_ms_xml(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'macro'}; }\n/* TODO: it will be useful to parse the function str */\nvar rc_to_a1 = /*#__PURE__*/(function(){\n\tvar rcregex = /(^|[^A-Za-z_])R(\\[?-?\\d+\\]|[1-9]\\d*|)C(\\[?-?\\d+\\]|[1-9]\\d*|)(?![A-Za-z0-9_])/g;\n\tvar rcbase/*:Cell*/ = ({r:0,c:0}/*:any*/);\n\tfunction rcfunc($$,$1,$2,$3) {\n\t\tvar cRel = false, rRel = false;\n\n\t\tif($2.length == 0) rRel = true;\n\t\telse if($2.charAt(0) == \"[\") { rRel = true; $2 = $2.slice(1, -1); }\n\n\t\tif($3.length == 0) cRel = true;\n\t\telse if($3.charAt(0) == \"[\") { cRel = true; $3 = $3.slice(1, -1); }\n\n\t\tvar R = $2.length>0?parseInt($2,10)|0:0, C = $3.length>0?parseInt($3,10)|0:0;\n\n\t\tif(cRel) C += rcbase.c; else --C;\n\t\tif(rRel) R += rcbase.r; else --R;\n\t\treturn $1 + (cRel ? \"\" : \"$\") + encode_col(C) + (rRel ? \"\" : \"$\") + encode_row(R);\n\t}\n\treturn function rc_to_a1(fstr/*:string*/, base/*:Cell*/)/*:string*/ {\n\t\trcbase = base;\n\t\treturn fstr.replace(rcregex, rcfunc);\n\t};\n})();\n\nvar crefregex = /(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)(10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})(?![_.\\(A-Za-z0-9])/g;\nvar a1_to_rc = /*#__PURE__*/(function(){\n\treturn function a1_to_rc(fstr/*:string*/, base/*:CellAddress*/) {\n\t\treturn fstr.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\t\tvar c = decode_col($3) - ($2 ? 0 : base.c);\n\t\t\tvar r = decode_row($5) - ($4 ? 0 : base.r);\n\t\t\tvar R = $4 == \"$\" ? (r+1) : (r == 0 ? \"\" : \"[\" + r + \"]\");\n\t\t\tvar C = $2 == \"$\" ? (c+1) : (c == 0 ? \"\" : \"[\" + c + \"]\");\n\t\t\treturn $1 + \"R\" + R + \"C\" + C;\n\t\t});\n\t};\n})();\n\n/* no defined name can collide with a valid cell address A1:XFD1048576 ... except LOG10! */\nfunction shift_formula_str(f/*:string*/, delta/*:Cell*/)/*:string*/ {\n\treturn f.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\treturn $1+($2==\"$\" ? $2+$3 : encode_col(decode_col($3)+delta.c))+($4==\"$\" ? $4+$5 : encode_row(decode_row($5) + delta.r));\n\t});\n}\n\nfunction shift_formula_xlsx(f/*:string*/, range/*:string*/, cell/*:string*/)/*:string*/ {\n\tvar r = decode_range(range), s = r.s, c = decode_cell(cell);\n\tvar delta = {r:c.r - s.r, c:c.c - s.c};\n\treturn shift_formula_str(f, delta);\n}\n\n/* TODO: parse formula */\nfunction fuzzyfmla(f/*:string*/)/*:boolean*/ {\n\tif(f.length == 1) return false;\n\treturn true;\n}\n\nfunction _xlfn(f/*:string*/)/*:string*/ {\n\treturn f.replace(/_xlfn\\./g,\"\");\n}\nfunction parseread1(blob) { blob.l+=1; return; }\n\n/* [MS-XLS] 2.5.51 */\nfunction parse_ColRelU(blob, length) {\n\tvar c = blob.read_shift(length == 1 ? 1 : 2);\n\treturn [c & 0x3FFF, (c >> 14) & 1, (c >> 15) & 1];\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.89 */\nfunction parse_RgceArea(blob, length, opts) {\n\tvar w = 2;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return parse_RgceArea_BIFF2(blob, length, opts);\n\t\telse if(opts.biff == 12) w = 4;\n\t}\n\tvar r=blob.read_shift(w), R=blob.read_shift(w);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n/* BIFF 2-5 encodes flags in the row field */\nfunction parse_RgceArea_BIFF2(blob/*::, length, opts*/) {\n\tvar r=parse_ColRelU(blob, 2), R=parse_ColRelU(blob, 2);\n\tvar c=blob.read_shift(1);\n\tvar C=blob.read_shift(1);\n\treturn { s:{r:r[0], c:c, cRel:r[1], rRel:r[2]}, e:{r:R[0], c:C, cRel:R[1], rRel:R[2]} };\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.90 */\nfunction parse_RgceAreaRel(blob, length, opts) {\n\tif(opts.biff < 8) return parse_RgceArea_BIFF2(blob, length, opts);\n\tvar r=blob.read_shift(opts.biff == 12 ? 4 : 2), R=blob.read_shift(opts.biff == 12 ? 4 : 2);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n\n/* [MS-XLS] 2.5.198.109 ; [MS-XLSB] 2.5.97.91 */\nfunction parse_RgceLoc(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff <= 5) return parse_RgceLoc_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(opts && opts.biff == 12 ? 4 : 2);\n\tvar c = parse_ColRelU(blob, 2);\n\treturn {r:r, c:c[0], cRel:c[1], rRel:c[2]};\n}\nfunction parse_RgceLoc_BIFF2(blob/*::, length, opts*/) {\n\tvar r = parse_ColRelU(blob, 2);\n\tvar c = blob.read_shift(1);\n\treturn {r:r[0], c:c, cRel:r[1], rRel:r[2]};\n}\n\n/* [MS-XLS] 2.5.198.107, 2.5.47 */\nfunction parse_RgceElfLoc(blob/*::, length, opts*/) {\n\tvar r = blob.read_shift(2);\n\tvar c = blob.read_shift(2);\n\treturn {r:r, c:c & 0xFF, fQuoted:!!(c & 0x4000), cRel:c>>15, rRel:c>>15 };\n}\n\n/* [MS-XLS] 2.5.198.111 ; [MS-XLSB] 2.5.97.92 TODO */\nfunction parse_RgceLocRel(blob, length, opts) {\n\tvar biff = opts && opts.biff ? opts.biff : 8;\n\tif(biff >= 2 && biff <= 5) return parse_RgceLocRel_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(biff >= 12 ? 4 : 2);\n\tvar cl = blob.read_shift(2);\n\tvar cRel = (cl & 0x4000) >> 14, rRel = (cl & 0x8000) >> 15;\n\tcl &= 0x3FFF;\n\tif(rRel == 1) while(r > 0x7FFFF) r -= 0x100000;\n\tif(cRel == 1) while(cl > 0x1FFF) cl = cl - 0x4000;\n\treturn {r:r,c:cl,cRel:cRel,rRel:rRel};\n}\nfunction parse_RgceLocRel_BIFF2(blob/*::, length:number, opts*/) {\n\tvar rl = blob.read_shift(2);\n\tvar c = blob.read_shift(1);\n\tvar rRel = (rl & 0x8000) >> 15, cRel = (rl & 0x4000) >> 14;\n\trl &= 0x3FFF;\n\tif(rRel == 1 && rl >= 0x2000) rl = rl - 0x4000;\n\tif(cRel == 1 && c >= 0x80) c = c - 0x100;\n\treturn {r:rl,c:c,cRel:cRel,rRel:rRel};\n}\n\n/* [MS-XLS] 2.5.198.27 ; [MS-XLSB] 2.5.97.18 */\nfunction parse_PtgArea(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceArea(blob, opts.biff >= 2 && opts.biff <= 5 ? 6 : 8, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.28 ; [MS-XLSB] 2.5.97.19 */\nfunction parse_PtgArea3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2, 'i');\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tvar area = parse_RgceArea(blob, w, opts);\n\treturn [type, ixti, area];\n}\n\n/* [MS-XLS] 2.5.198.29 ; [MS-XLSB] 2.5.97.20 */\nfunction parse_PtgAreaErr(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts && (opts.biff > 8) ? 12 : (opts.biff < 8 ? 6 : 8);\n\treturn [type];\n}\n/* [MS-XLS] 2.5.198.30 ; [MS-XLSB] 2.5.97.21 */\nfunction parse_PtgAreaErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.31 ; [MS-XLSB] 2.5.97.22 */\nfunction parse_PtgAreaN(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceAreaRel(blob, length - 1, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.32 ; [MS-XLSB] 2.5.97.23 */\nfunction parse_PtgArray(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts.biff == 2 ? 6 : opts.biff == 12 ? 14 : 7;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.33 ; [MS-XLSB] 2.5.97.24 */\nfunction parse_PtgAttrBaxcel(blob) {\n\tvar bitSemi = blob[blob.l+1] & 0x01; /* 1 = volatile */\n\tvar bitBaxcel = 1;\n\tblob.l += 4;\n\treturn [bitSemi, bitBaxcel];\n}\n\n/* [MS-XLS] 2.5.198.34 ; [MS-XLSB] 2.5.97.25 */\nfunction parse_PtgAttrChoose(blob, length, opts)/*:Array*/ {\n\tblob.l +=2;\n\tvar offset = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar o/*:Array*/ = [];\n\t/* offset is 1 less than the number of elements */\n\tfor(var i = 0; i <= offset; ++i) o.push(blob.read_shift(opts && opts.biff == 2 ? 1 : 2));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.35 ; [MS-XLSB] 2.5.97.26 */\nfunction parse_PtgAttrGoto(blob, length, opts) {\n\tvar bitGoto = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitGoto, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLS] 2.5.198.36 ; [MS-XLSB] 2.5.97.27 */\nfunction parse_PtgAttrIf(blob, length, opts) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLSB] 2.5.97.28 */\nfunction parse_PtgAttrIfError(blob) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(2)];\n}\n\n/* [MS-XLS] 2.5.198.37 ; [MS-XLSB] 2.5.97.29 */\nfunction parse_PtgAttrSemi(blob, length, opts) {\n\tvar bitSemi = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += opts && opts.biff == 2 ? 3 : 4;\n\treturn [bitSemi];\n}\n\n/* [MS-XLS] 2.5.198.40 ; [MS-XLSB] 2.5.97.32 */\nfunction parse_PtgAttrSpaceType(blob/*::, length*/) {\n\tvar type = blob.read_shift(1), cch = blob.read_shift(1);\n\treturn [type, cch];\n}\n\n/* [MS-XLS] 2.5.198.38 ; [MS-XLSB] 2.5.97.30 */\nfunction parse_PtgAttrSpace(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.39 ; [MS-XLSB] 2.5.97.31 */\nfunction parse_PtgAttrSpaceSemi(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.84 ; [MS-XLSB] 2.5.97.68 TODO */\nfunction parse_PtgRef(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLoc(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.88 ; [MS-XLSB] 2.5.97.72 TODO */\nfunction parse_PtgRefN(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLocRel(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.85 ; [MS-XLSB] 2.5.97.69 TODO */\nfunction parse_PtgRef3d(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tif(opts && opts.biff == 5) blob.l += 12;\n\tvar loc = parse_RgceLoc(blob, 0, opts); // TODO: or RgceLocRel\n\treturn [type, ixti, loc];\n}\n\n\n/* [MS-XLS] 2.5.198.62 ; [MS-XLSB] 2.5.97.45 TODO */\nfunction parse_PtgFunc(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar iftab = blob.read_shift(opts && opts.biff <= 3 ? 1 : 2);\n\treturn [FtabArgc[iftab], Ftab[iftab], type];\n}\n/* [MS-XLS] 2.5.198.63 ; [MS-XLSB] 2.5.97.46 TODO */\nfunction parse_PtgFuncVar(blob, length, opts) {\n\tvar type = blob[blob.l++];\n\tvar cparams = blob.read_shift(1), tab = opts && opts.biff <= 3 ? [(type == 0x58 ? -1 : 0), blob.read_shift(1)]: parsetab(blob);\n\treturn [cparams, (tab[0] === 0 ? Ftab : Cetab)[tab[1]]];\n}\n\nfunction parsetab(blob) {\n\treturn [blob[blob.l+1]>>7, blob.read_shift(2) & 0x7FFF];\n}\n\n/* [MS-XLS] 2.5.198.41 ; [MS-XLSB] 2.5.97.33 */\nfunction parse_PtgAttrSum(blob, length, opts) {\n\tblob.l += opts && opts.biff == 2 ? 3 : 4; return;\n}\n\n/* [MS-XLS] 2.5.198.58 ; [MS-XLSB] 2.5.97.40 */\nfunction parse_PtgExp(blob, length, opts) {\n\tblob.l++;\n\tif(opts && opts.biff == 12) return [blob.read_shift(4, 'i'), 0];\n\tvar row = blob.read_shift(2);\n\tvar col = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [row, col];\n}\n\n/* [MS-XLS] 2.5.198.57 ; [MS-XLSB] 2.5.97.39 */\nfunction parse_PtgErr(blob) { blob.l++; return BErr[blob.read_shift(1)]; }\n\n/* [MS-XLS] 2.5.198.66 ; [MS-XLSB] 2.5.97.49 */\nfunction parse_PtgInt(blob) { blob.l++; return blob.read_shift(2); }\n\n/* [MS-XLS] 2.5.198.42 ; [MS-XLSB] 2.5.97.34 */\nfunction parse_PtgBool(blob) { blob.l++; return blob.read_shift(1)!==0;}\n\n/* [MS-XLS] 2.5.198.79 ; [MS-XLSB] 2.5.97.63 */\nfunction parse_PtgNum(blob) { blob.l++; return parse_Xnum(blob, 8); }\n\n/* [MS-XLS] 2.5.198.89 ; [MS-XLSB] 2.5.97.74 */\nfunction parse_PtgStr(blob, length, opts) { blob.l++; return parse_ShortXLUnicodeString(blob, length-1, opts); }\n\n/* [MS-XLS] 2.5.192.112 + 2.5.192.11{3,4,5,6,7} */\n/* [MS-XLSB] 2.5.97.93 + 2.5.97.9{4,5,6,7} */\nfunction parse_SerAr(blob, biff/*:number*/) {\n\tvar val = [blob.read_shift(1)];\n\tif(biff == 12) switch(val[0]) {\n\t\tcase 0x02: val[0] = 0x04; break; /* SerBool */\n\t\tcase 0x04: val[0] = 0x10; break; /* SerErr */\n\t\tcase 0x00: val[0] = 0x01; break; /* SerNum */\n\t\tcase 0x01: val[0] = 0x02; break; /* SerStr */\n\t}\n\tswitch(val[0]) {\n\t\tcase 0x04: /* SerBool -- boolean */\n\t\t\tval[1] = parsebool(blob, 1) ? 'TRUE' : 'FALSE';\n\t\t\tif(biff != 12) blob.l += 7; break;\n\t\tcase 0x25: /* appears to be an alias */\n\t\tcase 0x10: /* SerErr -- error */\n\t\t\tval[1] = BErr[blob[blob.l]];\n\t\t\tblob.l += ((biff == 12) ? 4 : 8); break;\n\t\tcase 0x00: /* SerNil -- honestly, I'm not sure how to reproduce this */\n\t\t\tblob.l += 8; break;\n\t\tcase 0x01: /* SerNum -- Xnum */\n\t\t\tval[1] = parse_Xnum(blob, 8); break;\n\t\tcase 0x02: /* SerStr -- XLUnicodeString (<256 chars) */\n\t\t\tval[1] = parse_XLUnicodeString2(blob, 0, {biff:biff > 0 && biff < 8 ? 2 : biff}); break;\n\t\tdefault: throw new Error(\"Bad SerAr: \" + val[0]); /* Unreachable */\n\t}\n\treturn val;\n}\n\n/* [MS-XLS] 2.5.198.61 ; [MS-XLSB] 2.5.97.44 */\nfunction parse_PtgExtraMem(blob, cce, opts) {\n\tvar count = blob.read_shift((opts.biff == 12) ? 4 : 2);\n\tvar out/*:Array*/ = [];\n\tfor(var i = 0; i != count; ++i) out.push(((opts.biff == 12) ? parse_UncheckedRfX : parse_Ref8U)(blob, 8));\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.198.59 ; [MS-XLSB] 2.5.97.41 */\nfunction parse_PtgExtraArray(blob, length, opts) {\n\tvar rows = 0, cols = 0;\n\tif(opts.biff == 12) {\n\t\trows = blob.read_shift(4); // DRw\n\t\tcols = blob.read_shift(4); // DCol\n\t} else {\n\t\tcols = 1 + blob.read_shift(1); //DColByteU\n\t\trows = 1 + blob.read_shift(2); //DRw\n\t}\n\tif(opts.biff >= 2 && opts.biff < 8) { --rows; if(--cols == 0) cols = 0x100; }\n\t// $FlowIgnore\n\tfor(var i = 0, o/*:Array>*/ = []; i != rows && (o[i] = []); ++i)\n\t\tfor(var j = 0; j != cols; ++j) o[i][j] = parse_SerAr(blob, opts.biff);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 */\nfunction parse_PtgName(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar w = (!opts || (opts.biff >= 8)) ? 4 : 2;\n\tvar nameindex = blob.read_shift(w);\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l += 5; break;\n\t\tcase 3: case 4: blob.l += 8; break;\n\t\tcase 5: blob.l += 12; break;\n\t}\n\treturn [type, 0, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 */\nfunction parse_PtgNameX(blob, length, opts) {\n\tif(opts.biff == 5) return parse_PtgNameX_BIFF5(blob, length, opts);\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tvar nameindex = blob.read_shift(4);\n\treturn [type, ixti, nameindex];\n}\nfunction parse_PtgNameX_BIFF5(blob/*::, length, opts*/) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2, 'i'); // XtiIndex\n\tblob.l += 8;\n\tvar nameindex = blob.read_shift(2);\n\tblob.l += 12;\n\treturn [type, ixti, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.70 ; [MS-XLSB] 2.5.97.54 */\nfunction parse_PtgMemArea(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += (opts && opts.biff == 2 ? 3 : 4);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n/* [MS-XLS] 2.5.198.72 ; [MS-XLSB] 2.5.97.56 */\nfunction parse_PtgMemFunc(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n\n/* [MS-XLS] 2.5.198.86 ; [MS-XLSB] 2.5.97.69 */\nfunction parse_PtgRefErr(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += 4;\n\tif(opts.biff < 8) blob.l--;\n\tif(opts.biff == 12) blob.l += 2;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.87 ; [MS-XLSB] 2.5.97.71 */\nfunction parse_PtgRefErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 4;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: w = 15; break;\n\t\tcase 12: w = 6; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.71 ; [MS-XLSB] 2.5.97.55 */\nvar parse_PtgMemErr = parsenoop;\n/* [MS-XLS] 2.5.198.73 ; [MS-XLSB] 2.5.97.57 */\nvar parse_PtgMemNoMem = parsenoop;\n/* [MS-XLS] 2.5.198.92 */\nvar parse_PtgTbl = parsenoop;\n\nfunction parse_PtgElfLoc(blob, length, opts) {\n\tblob.l += 2;\n\treturn [parse_RgceElfLoc(blob, 4, opts)];\n}\nfunction parse_PtgElfNoop(blob/*::, length, opts*/) {\n\tblob.l += 6;\n\treturn [];\n}\n/* [MS-XLS] 2.5.198.46 */\nvar parse_PtgElfCol = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.47 */\nvar parse_PtgElfColS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.48 */\nvar parse_PtgElfColSV = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.49 */\nvar parse_PtgElfColV = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.50 */\nfunction parse_PtgElfLel(blob/*::, length, opts*/) {\n\tblob.l += 2;\n\treturn [parseuint16(blob), blob.read_shift(2) & 0x01];\n}\n/* [MS-XLS] 2.5.198.51 */\nvar parse_PtgElfRadical = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.52 */\nvar parse_PtgElfRadicalLel = parse_PtgElfLel;\n/* [MS-XLS] 2.5.198.53 */\nvar parse_PtgElfRadicalS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.54 */\nvar parse_PtgElfRw = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.55 */\nvar parse_PtgElfRwV = parse_PtgElfLoc;\n\n/* [MS-XLSB] 2.5.97.52 TODO */\nvar PtgListRT = [\n\t\"Data\",\n\t\"All\",\n\t\"Headers\",\n\t\"??\",\n\t\"?Data2\",\n\t\"??\",\n\t\"?DataHeaders\",\n\t\"??\",\n\t\"Totals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?DataTotals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?Current\"\n];\nfunction parse_PtgList(blob/*::, length, opts*/) {\n\tblob.l += 2;\n\tvar ixti = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tvar idx = blob.read_shift(4);\n\tvar c = blob.read_shift(2);\n\tvar C = blob.read_shift(2);\n\tvar rt = PtgListRT[(flags >> 2) & 0x1F];\n\treturn {ixti: ixti, coltype:(flags&0x3), rt:rt, idx:idx, c:c, C:C};\n}\n/* [MS-XLS] 2.5.198.91 ; [MS-XLSB] 2.5.97.76 */\nfunction parse_PtgSxName(blob/*::, length, opts*/) {\n\tblob.l += 2;\n\treturn [blob.read_shift(4)];\n}\n\n/* [XLS] old spec */\nfunction parse_PtgSheet(blob, length, opts) {\n\tblob.l += 5;\n\tblob.l += 2;\n\tblob.l += (opts.biff == 2 ? 1 : 4);\n\treturn [\"PTGSHEET\"];\n}\nfunction parse_PtgEndSheet(blob, length, opts) {\n\tblob.l += (opts.biff == 2 ? 4 : 5);\n\treturn [\"PTGENDSHEET\"];\n}\nfunction parse_PtgMemAreaN(blob/*::, length, opts*/) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgMemNoMemN(blob/*::, length, opts*/) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgAttrNoop(blob/*::, length, opts*/) {\n\tblob.l += 4;\n\treturn [0, 0];\n}\n\n/* [MS-XLS] 2.5.198.25 ; [MS-XLSB] 2.5.97.16 */\nvar PtgTypes = {\n\t/*::[*/0x01/*::]*/: { n:'PtgExp', f:parse_PtgExp },\n\t/*::[*/0x02/*::]*/: { n:'PtgTbl', f:parse_PtgTbl },\n\t/*::[*/0x03/*::]*/: { n:'PtgAdd', f:parseread1 },\n\t/*::[*/0x04/*::]*/: { n:'PtgSub', f:parseread1 },\n\t/*::[*/0x05/*::]*/: { n:'PtgMul', f:parseread1 },\n\t/*::[*/0x06/*::]*/: { n:'PtgDiv', f:parseread1 },\n\t/*::[*/0x07/*::]*/: { n:'PtgPower', f:parseread1 },\n\t/*::[*/0x08/*::]*/: { n:'PtgConcat', f:parseread1 },\n\t/*::[*/0x09/*::]*/: { n:'PtgLt', f:parseread1 },\n\t/*::[*/0x0A/*::]*/: { n:'PtgLe', f:parseread1 },\n\t/*::[*/0x0B/*::]*/: { n:'PtgEq', f:parseread1 },\n\t/*::[*/0x0C/*::]*/: { n:'PtgGe', f:parseread1 },\n\t/*::[*/0x0D/*::]*/: { n:'PtgGt', f:parseread1 },\n\t/*::[*/0x0E/*::]*/: { n:'PtgNe', f:parseread1 },\n\t/*::[*/0x0F/*::]*/: { n:'PtgIsect', f:parseread1 },\n\t/*::[*/0x10/*::]*/: { n:'PtgUnion', f:parseread1 },\n\t/*::[*/0x11/*::]*/: { n:'PtgRange', f:parseread1 },\n\t/*::[*/0x12/*::]*/: { n:'PtgUplus', f:parseread1 },\n\t/*::[*/0x13/*::]*/: { n:'PtgUminus', f:parseread1 },\n\t/*::[*/0x14/*::]*/: { n:'PtgPercent', f:parseread1 },\n\t/*::[*/0x15/*::]*/: { n:'PtgParen', f:parseread1 },\n\t/*::[*/0x16/*::]*/: { n:'PtgMissArg', f:parseread1 },\n\t/*::[*/0x17/*::]*/: { n:'PtgStr', f:parse_PtgStr },\n\t/*::[*/0x1A/*::]*/: { n:'PtgSheet', f:parse_PtgSheet },\n\t/*::[*/0x1B/*::]*/: { n:'PtgEndSheet', f:parse_PtgEndSheet },\n\t/*::[*/0x1C/*::]*/: { n:'PtgErr', f:parse_PtgErr },\n\t/*::[*/0x1D/*::]*/: { n:'PtgBool', f:parse_PtgBool },\n\t/*::[*/0x1E/*::]*/: { n:'PtgInt', f:parse_PtgInt },\n\t/*::[*/0x1F/*::]*/: { n:'PtgNum', f:parse_PtgNum },\n\t/*::[*/0x20/*::]*/: { n:'PtgArray', f:parse_PtgArray },\n\t/*::[*/0x21/*::]*/: { n:'PtgFunc', f:parse_PtgFunc },\n\t/*::[*/0x22/*::]*/: { n:'PtgFuncVar', f:parse_PtgFuncVar },\n\t/*::[*/0x23/*::]*/: { n:'PtgName', f:parse_PtgName },\n\t/*::[*/0x24/*::]*/: { n:'PtgRef', f:parse_PtgRef },\n\t/*::[*/0x25/*::]*/: { n:'PtgArea', f:parse_PtgArea },\n\t/*::[*/0x26/*::]*/: { n:'PtgMemArea', f:parse_PtgMemArea },\n\t/*::[*/0x27/*::]*/: { n:'PtgMemErr', f:parse_PtgMemErr },\n\t/*::[*/0x28/*::]*/: { n:'PtgMemNoMem', f:parse_PtgMemNoMem },\n\t/*::[*/0x29/*::]*/: { n:'PtgMemFunc', f:parse_PtgMemFunc },\n\t/*::[*/0x2A/*::]*/: { n:'PtgRefErr', f:parse_PtgRefErr },\n\t/*::[*/0x2B/*::]*/: { n:'PtgAreaErr', f:parse_PtgAreaErr },\n\t/*::[*/0x2C/*::]*/: { n:'PtgRefN', f:parse_PtgRefN },\n\t/*::[*/0x2D/*::]*/: { n:'PtgAreaN', f:parse_PtgAreaN },\n\t/*::[*/0x2E/*::]*/: { n:'PtgMemAreaN', f:parse_PtgMemAreaN },\n\t/*::[*/0x2F/*::]*/: { n:'PtgMemNoMemN', f:parse_PtgMemNoMemN },\n\t/*::[*/0x39/*::]*/: { n:'PtgNameX', f:parse_PtgNameX },\n\t/*::[*/0x3A/*::]*/: { n:'PtgRef3d', f:parse_PtgRef3d },\n\t/*::[*/0x3B/*::]*/: { n:'PtgArea3d', f:parse_PtgArea3d },\n\t/*::[*/0x3C/*::]*/: { n:'PtgRefErr3d', f:parse_PtgRefErr3d },\n\t/*::[*/0x3D/*::]*/: { n:'PtgAreaErr3d', f:parse_PtgAreaErr3d },\n\t/*::[*/0xFF/*::]*/: {}\n};\n/* These are duplicated in the PtgTypes table */\nvar PtgDupes = {\n\t/*::[*/0x40/*::]*/: 0x20, /*::[*/0x60/*::]*/: 0x20,\n\t/*::[*/0x41/*::]*/: 0x21, /*::[*/0x61/*::]*/: 0x21,\n\t/*::[*/0x42/*::]*/: 0x22, /*::[*/0x62/*::]*/: 0x22,\n\t/*::[*/0x43/*::]*/: 0x23, /*::[*/0x63/*::]*/: 0x23,\n\t/*::[*/0x44/*::]*/: 0x24, /*::[*/0x64/*::]*/: 0x24,\n\t/*::[*/0x45/*::]*/: 0x25, /*::[*/0x65/*::]*/: 0x25,\n\t/*::[*/0x46/*::]*/: 0x26, /*::[*/0x66/*::]*/: 0x26,\n\t/*::[*/0x47/*::]*/: 0x27, /*::[*/0x67/*::]*/: 0x27,\n\t/*::[*/0x48/*::]*/: 0x28, /*::[*/0x68/*::]*/: 0x28,\n\t/*::[*/0x49/*::]*/: 0x29, /*::[*/0x69/*::]*/: 0x29,\n\t/*::[*/0x4A/*::]*/: 0x2A, /*::[*/0x6A/*::]*/: 0x2A,\n\t/*::[*/0x4B/*::]*/: 0x2B, /*::[*/0x6B/*::]*/: 0x2B,\n\t/*::[*/0x4C/*::]*/: 0x2C, /*::[*/0x6C/*::]*/: 0x2C,\n\t/*::[*/0x4D/*::]*/: 0x2D, /*::[*/0x6D/*::]*/: 0x2D,\n\t/*::[*/0x4E/*::]*/: 0x2E, /*::[*/0x6E/*::]*/: 0x2E,\n\t/*::[*/0x4F/*::]*/: 0x2F, /*::[*/0x6F/*::]*/: 0x2F,\n\t/*::[*/0x58/*::]*/: 0x22, /*::[*/0x78/*::]*/: 0x22,\n\t/*::[*/0x59/*::]*/: 0x39, /*::[*/0x79/*::]*/: 0x39,\n\t/*::[*/0x5A/*::]*/: 0x3A, /*::[*/0x7A/*::]*/: 0x3A,\n\t/*::[*/0x5B/*::]*/: 0x3B, /*::[*/0x7B/*::]*/: 0x3B,\n\t/*::[*/0x5C/*::]*/: 0x3C, /*::[*/0x7C/*::]*/: 0x3C,\n\t/*::[*/0x5D/*::]*/: 0x3D, /*::[*/0x7D/*::]*/: 0x3D\n};\n\nvar Ptg18 = {\n\t/*::[*/0x01/*::]*/: { n:'PtgElfLel', f:parse_PtgElfLel },\n\t/*::[*/0x02/*::]*/: { n:'PtgElfRw', f:parse_PtgElfRw },\n\t/*::[*/0x03/*::]*/: { n:'PtgElfCol', f:parse_PtgElfCol },\n\t/*::[*/0x06/*::]*/: { n:'PtgElfRwV', f:parse_PtgElfRwV },\n\t/*::[*/0x07/*::]*/: { n:'PtgElfColV', f:parse_PtgElfColV },\n\t/*::[*/0x0A/*::]*/: { n:'PtgElfRadical', f:parse_PtgElfRadical },\n\t/*::[*/0x0B/*::]*/: { n:'PtgElfRadicalS', f:parse_PtgElfRadicalS },\n\t/*::[*/0x0D/*::]*/: { n:'PtgElfColS', f:parse_PtgElfColS },\n\t/*::[*/0x0F/*::]*/: { n:'PtgElfColSV', f:parse_PtgElfColSV },\n\t/*::[*/0x10/*::]*/: { n:'PtgElfRadicalLel', f:parse_PtgElfRadicalLel },\n\t/*::[*/0x19/*::]*/: { n:'PtgList', f:parse_PtgList },\n\t/*::[*/0x1D/*::]*/: { n:'PtgSxName', f:parse_PtgSxName },\n\t/*::[*/0xFF/*::]*/: {}\n};\nvar Ptg19 = {\n\t/*::[*/0x00/*::]*/: { n:'PtgAttrNoop', f:parse_PtgAttrNoop },\n\t/*::[*/0x01/*::]*/: { n:'PtgAttrSemi', f:parse_PtgAttrSemi },\n\t/*::[*/0x02/*::]*/: { n:'PtgAttrIf', f:parse_PtgAttrIf },\n\t/*::[*/0x04/*::]*/: { n:'PtgAttrChoose', f:parse_PtgAttrChoose },\n\t/*::[*/0x08/*::]*/: { n:'PtgAttrGoto', f:parse_PtgAttrGoto },\n\t/*::[*/0x10/*::]*/: { n:'PtgAttrSum', f:parse_PtgAttrSum },\n\t/*::[*/0x20/*::]*/: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel },\n\t/*::[*/0x21/*::]*/: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel },\n\t/*::[*/0x40/*::]*/: { n:'PtgAttrSpace', f:parse_PtgAttrSpace },\n\t/*::[*/0x41/*::]*/: { n:'PtgAttrSpaceSemi', f:parse_PtgAttrSpaceSemi },\n\t/*::[*/0x80/*::]*/: { n:'PtgAttrIfError', f:parse_PtgAttrIfError },\n\t/*::[*/0xFF/*::]*/: {}\n};\n\n/* [MS-XLS] 2.5.198.103 ; [MS-XLSB] 2.5.97.87 */\nfunction parse_RgbExtra(blob, length, rgce, opts) {\n\tif(opts.biff < 8) return parsenoop(blob, length);\n\tvar target = blob.l + length;\n\tvar o = [];\n\tfor(var i = 0; i !== rgce.length; ++i) {\n\t\tswitch(rgce[i][0]) {\n\t\t\tcase 'PtgArray': /* PtgArray -> PtgExtraArray */\n\t\t\t\trgce[i][1] = parse_PtgExtraArray(blob, 0, opts);\n\t\t\t\to.push(rgce[i][1]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemArea': /* PtgMemArea -> PtgExtraMem */\n\t\t\t\trgce[i][2] = parse_PtgExtraMem(blob, rgce[i][1], opts);\n\t\t\t\to.push(rgce[i][2]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgExp': /* PtgExp -> PtgExtraCol */\n\t\t\t\tif(opts && opts.biff == 12) {\n\t\t\t\t\trgce[i][1][1] = blob.read_shift(4);\n\t\t\t\t\to.push(rgce[i][1]);\n\t\t\t\t} break;\n\t\t\tcase 'PtgList': /* TODO: PtgList -> PtgExtraList */\n\t\t\tcase 'PtgElfRadicalS': /* TODO: PtgElfRadicalS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColS': /* TODO: PtgElfColS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColSV': /* TODO: PtgElfColSV -> PtgExtraElf */\n\t\t\t\tthrow \"Unsupported \" + rgce[i][0];\n\t\t\tdefault: break;\n\t\t}\n\t}\n\tlength = target - blob.l;\n\t/* note: this is technically an error but Excel disregards */\n\t//if(target !== blob.l && blob.l !== target - length) throw new Error(target + \" != \" + blob.l);\n\tif(length !== 0) o.push(parsenoop(blob, length));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.104 ; [MS-XLSB] 2.5.97.88 */\nfunction parse_Rgce(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar R, id, ptgs = [];\n\twhile(target != blob.l) {\n\t\tlength = target - blob.l;\n\t\tid = blob[blob.l];\n\t\tR = PtgTypes[id] || PtgTypes[PtgDupes[id]];\n\t\tif(id === 0x18 || id === 0x19) R = (id === 0x18 ? Ptg18 : Ptg19)[blob[blob.l + 1]];\n\t\tif(!R || !R.f) { /*ptgs.push*/(parsenoop(blob, length)); }\n\t\telse { ptgs.push([R.n, R.f(blob, length, opts)]); }\n\t}\n\treturn ptgs;\n}\n\nfunction stringify_array(f/*:Array>*/)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\tfor(var i = 0; i < f.length; ++i) {\n\t\tvar x = f[i], r/*:Array*/ = [];\n\t\tfor(var j = 0; j < x.length; ++j) {\n\t\t\tvar y = x[j];\n\t\t\tif(y) switch(y[0]) {\n\t\t\t\t// TODO: handle embedded quotes\n\t\t\t\tcase 0x02:\n\t\t\t\t\t/*:: if(typeof y[1] != 'string') throw \"unreachable\"; */\n\t\t\t\t\tr.push('\"' + y[1].replace(/\"/g,'\"\"') + '\"'); break;\n\t\t\t\tdefault: r.push(y[1]);\n\t\t\t} else r.push(\"\");\n\t\t}\n\t\to.push(r.join(\",\"));\n\t}\n\treturn o.join(\";\");\n}\n\n/* [MS-XLS] 2.2.2 ; [MS-XLSB] 2.2.2 TODO */\nvar PtgBinOp = {\n\tPtgAdd: \"+\",\n\tPtgConcat: \"&\",\n\tPtgDiv: \"/\",\n\tPtgEq: \"=\",\n\tPtgGe: \">=\",\n\tPtgGt: \">\",\n\tPtgLe: \"<=\",\n\tPtgLt: \"<\",\n\tPtgMul: \"*\",\n\tPtgNe: \"<>\",\n\tPtgPower: \"^\",\n\tPtgSub: \"-\"\n};\n\n// TODO: explore space\nfunction make_3d_range(start, end) {\n\tvar s = start.lastIndexOf(\"!\"), e = end.lastIndexOf(\"!\");\n\tif(s == -1 && e == -1) return start + \":\" + end;\n\tif(s > 0 && e > 0 && start.slice(0, s).toLowerCase() == end.slice(0, e).toLowerCase()) return start + \":\" + end.slice(e+1);\n\tconsole.error(\"Cannot hydrate range\", start, end);\n\treturn start + \":\" + end;\n}\n\nfunction get_ixti_raw(supbooks, ixti/*:number*/, opts)/*:string*/ {\n\tif(!supbooks) return \"SH33TJSERR0\";\n\tif(opts.biff > 8 && (!supbooks.XTI || !supbooks.XTI[ixti])) return supbooks.SheetNames[ixti];\n\tif(!supbooks.XTI) return \"SH33TJSERR6\";\n\tvar XTI = supbooks.XTI[ixti];\n\tif(opts.biff < 8) {\n\t\tif(ixti > 10000) ixti-= 65536;\n\t\tif(ixti < 0) ixti = -ixti;\n\t\treturn ixti == 0 ? \"\" : supbooks.XTI[ixti - 1];\n\t}\n\tif(!XTI) return \"SH33TJSERR1\";\n\tvar o = \"\";\n\tif(opts.biff > 8) switch(supbooks[XTI[0]][0]) {\n\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\to = XTI[1] == -1 ? \"#REF\" : supbooks.SheetNames[XTI[1]];\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tif(opts.SID != null) return supbooks.SheetNames[opts.SID];\n\t\t\treturn \"SH33TJSSAME\" + supbooks[XTI[0]][0];\n\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\t/* falls through */\n\t\tdefault: return \"SH33TJSSRC\" + supbooks[XTI[0]][0];\n\t}\n\tswitch(supbooks[XTI[0]][0][0]) {\n\t\tcase 0x0401:\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks.SheetNames[XTI[1]] || \"SH33TJSERR3\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x3A01: return supbooks[XTI[0]].slice(1).map(function(name) { return name.Name; }).join(\";;\"); //return \"SH33TJSERR8\";\n\t\tdefault:\n\t\t\tif(!supbooks[XTI[0]][0][3]) return \"SH33TJSERR2\";\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks[XTI[0]][0][3][XTI[1]] || \"SH33TJSERR4\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks[XTI[0]][0][3][XTI[2]];\n\t}\n}\nfunction get_ixti(supbooks, ixti/*:number*/, opts)/*:string*/ {\n\tvar ixtiraw = get_ixti_raw(supbooks, ixti, opts);\n\treturn ixtiraw == \"#REF\" ? ixtiraw : formula_quote_sheet_name(ixtiraw, opts);\n}\nfunction stringify_formula(formula/*Array*/, range, cell/*:any*/, supbooks, opts)/*:string*/ {\n\tvar biff = (opts && opts.biff) || 8;\n\tvar _range = /*range != null ? range :*/ {s:{c:0, r:0},e:{c:0, r:0}};\n\tvar stack/*:Array*/ = [], e1, e2, /*::type,*/ c/*:CellAddress*/, ixti=0, nameidx=0, r, sname=\"\";\n\tif(!formula[0] || !formula[0][0]) return \"\";\n\tvar last_sp = -1, sp = \"\";\n\tfor(var ff = 0, fflen = formula[0].length; ff < fflen; ++ff) {\n\t\tvar f = formula[0][ff];\n\t\tswitch(f[0]) {\n\t\t\tcase 'PtgUminus': /* [MS-XLS] 2.5.198.93 */\n\t\t\t\tstack.push(\"-\" + stack.pop()); break;\n\t\t\tcase 'PtgUplus': /* [MS-XLS] 2.5.198.95 */\n\t\t\t\tstack.push(\"+\" + stack.pop()); break;\n\t\t\tcase 'PtgPercent': /* [MS-XLS] 2.5.198.81 */\n\t\t\t\tstack.push(stack.pop() + \"%\"); break;\n\n\t\t\tcase 'PtgAdd': /* [MS-XLS] 2.5.198.26 */\n\t\t\tcase 'PtgConcat': /* [MS-XLS] 2.5.198.43 */\n\t\t\tcase 'PtgDiv': /* [MS-XLS] 2.5.198.45 */\n\t\t\tcase 'PtgEq': /* [MS-XLS] 2.5.198.56 */\n\t\t\tcase 'PtgGe': /* [MS-XLS] 2.5.198.64 */\n\t\t\tcase 'PtgGt': /* [MS-XLS] 2.5.198.65 */\n\t\t\tcase 'PtgLe': /* [MS-XLS] 2.5.198.68 */\n\t\t\tcase 'PtgLt': /* [MS-XLS] 2.5.198.69 */\n\t\t\tcase 'PtgMul': /* [MS-XLS] 2.5.198.75 */\n\t\t\tcase 'PtgNe': /* [MS-XLS] 2.5.198.78 */\n\t\t\tcase 'PtgPower': /* [MS-XLS] 2.5.198.82 */\n\t\t\tcase 'PtgSub': /* [MS-XLS] 2.5.198.90 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\tcase 0:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\" \", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\"\\r\", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tsp = \"\";\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\te2 = e2 + sp;\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(e2+PtgBinOp[f[0]]+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgIsect': /* [MS-XLS] 2.5.198.67 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\" \"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgUnion': /* [MS-XLS] 2.5.198.94 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\",\"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRange': /* [MS-XLS] 2.5.198.83 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(make_3d_range(e2,e1));\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrChoose': /* [MS-XLS] 2.5.198.34 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrGoto': /* [MS-XLS] 2.5.198.35 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIf': /* [MS-XLS] 2.5.198.36 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIfError': /* [MS-XLSB] 2.5.97.28 */\n\t\t\t\tbreak;\n\n\n\t\t\tcase 'PtgRef': /* [MS-XLS] 2.5.198.84 */\n\t\t\t\t/*::type = f[1][0]; */c = shift_cell_xls((f[1][1]/*:any*/), _range, opts);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRefN': /* [MS-XLS] 2.5.198.88 */\n\t\t\t\t/*::type = f[1][0]; */c = cell ? shift_cell_xls((f[1][1]/*:any*/), cell, opts) : (f[1][1]/*:any*/);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRef3d': /* [MS-XLS] 2.5.198.85 */\n\t\t\t\t/*::type = f[1][0]; */ixti = /*::Number(*/f[1][1]/*::)*/; c = shift_cell_xls((f[1][2]/*:any*/), _range, opts);\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tvar w = sname; /* IE9 fails on defined names */ // eslint-disable-line no-unused-vars\n\t\t\t\tstack.push(sname + \"!\" + encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgFunc': /* [MS-XLS] 2.5.198.62 */\n\t\t\tcase 'PtgFuncVar': /* [MS-XLS] 2.5.198.63 */\n\t\t\t\t/* f[1] = [argc, func, type] */\n\t\t\t\tvar argc/*:number*/ = (f[1][0]/*:any*/), func/*:string*/ = (f[1][1]/*:any*/);\n\t\t\t\tif(!argc) argc = 0;\n\t\t\t\targc &= 0x7F;\n\t\t\t\tvar args = argc == 0 ? [] : stack.slice(-argc);\n\t\t\t\tstack.length -= argc;\n\t\t\t\tif(func === 'User') func = args.shift();\n\t\t\t\tstack.push(func + \"(\" + args.join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgBool': /* [MS-XLS] 2.5.198.42 */\n\t\t\t\tstack.push(f[1] ? \"TRUE\" : \"FALSE\"); break;\n\t\t\tcase 'PtgInt': /* [MS-XLS] 2.5.198.66 */\n\t\t\t\tstack.push(/*::String(*/f[1]/*::)*/); break;\n\t\t\tcase 'PtgNum': /* [MS-XLS] 2.5.198.79 TODO: precision? */\n\t\t\t\tstack.push(String(f[1])); break;\n\t\t\tcase 'PtgStr': /* [MS-XLS] 2.5.198.89 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push('\"' + f[1].replace(/\"/g, '\"\"') + '\"'); break;\n\t\t\tcase 'PtgErr': /* [MS-XLS] 2.5.198.57 */\n\t\t\t\tstack.push(/*::String(*/f[1]/*::)*/); break;\n\t\t\tcase 'PtgAreaN': /* [MS-XLS] 2.5.198.31 TODO */\n\t\t\t\t/*::type = f[1][0]; */r = shift_range_xls(f[1][1], cell ? {s:cell} : _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea': /* [MS-XLS] 2.5.198.27 TODO: fixed points */\n\t\t\t\t/*::type = f[1][0]; */r = shift_range_xls(f[1][1], _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea3d': /* [MS-XLS] 2.5.198.28 TODO */\n\t\t\t\t/*::type = f[1][0]; */ixti = /*::Number(*/f[1][1]/*::)*/; r = f[1][2];\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tstack.push(sname + \"!\" + encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrSum': /* [MS-XLS] 2.5.198.41 */\n\t\t\t\tstack.push(\"SUM(\" + stack.pop() + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrBaxcel': /* [MS-XLS] 2.5.198.33 */\n\t\t\tcase 'PtgAttrSemi': /* [MS-XLS] 2.5.198.37 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgName': /* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 TODO: revisions */\n\t\t\t\t/* f[1] = type, 0, nameindex */\n\t\t\t\tnameidx = (f[1][2]/*:any*/);\n\t\t\t\tvar lbl = (supbooks.names||[])[nameidx-1] || (supbooks[0]||[])[nameidx];\n\t\t\t\tvar name = lbl ? lbl.Name : \"SH33TJSNAME\" + String(nameidx);\n\t\t\t\t/* [MS-XLSB] 2.5.97.10 Ftab -- last verified 20220204 */\n\t\t\t\tif(name && name.slice(0,6) == \"_xlfn.\" && !opts.xlfn) name = name.slice(6);\n\t\t\t\tstack.push(name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgNameX': /* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 TODO: revisions */\n\t\t\t\t/* f[1] = type, ixti, nameindex */\n\t\t\t\tvar bookidx/*:number*/ = (f[1][1]/*:any*/); nameidx = (f[1][2]/*:any*/); var externbook;\n\t\t\t\t/* TODO: Properly handle missing values -- this should be using get_ixti_raw primarily */\n\t\t\t\tif(opts.biff <= 5) {\n\t\t\t\t\tif(bookidx < 0) bookidx = -bookidx;\n\t\t\t\t\tif(supbooks[bookidx]) externbook = supbooks[bookidx][nameidx];\n\t\t\t\t} else {\n\t\t\t\t\tvar o = \"\";\n\t\t\t\t\tif(((supbooks[bookidx]||[])[0]||[])[0] == 0x3A01){/* empty */}\n\t\t\t\t\telse if(((supbooks[bookidx]||[])[0]||[])[0] == 0x0401){\n\t\t\t\t\t\tif(supbooks[bookidx][nameidx] && supbooks[bookidx][nameidx].itab > 0) {\n\t\t\t\t\t\t\to = supbooks.SheetNames[supbooks[bookidx][nameidx].itab-1] + \"!\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse o = supbooks.SheetNames[nameidx-1]+ \"!\";\n\t\t\t\t\tif(supbooks[bookidx] && supbooks[bookidx][nameidx]) o += supbooks[bookidx][nameidx].Name;\n\t\t\t\t\telse if(supbooks[0] && supbooks[0][nameidx]) o += supbooks[0][nameidx].Name;\n\t\t\t\t\telse {\n\t\t\t\t\t\tvar ixtidata = (get_ixti_raw(supbooks, bookidx, opts)||\"\").split(\";;\");\n\t\t\t\t\t\tif(ixtidata[nameidx - 1]) o = ixtidata[nameidx - 1]; // TODO: confirm this is correct\n\t\t\t\t\t\telse o += \"SH33TJSERRX\";\n\t\t\t\t\t}\n\t\t\t\t\tstack.push(o);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(!externbook) externbook = {Name: \"SH33TJSERRY\"};\n\t\t\t\tstack.push(externbook.Name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgParen': /* [MS-XLS] 2.5.198.80 */\n\t\t\t\tvar lp = '(', rp = ')';\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 2: lp = fill(\" \", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 3: lp = fill(\"\\r\", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 4: rp = fill(\" \", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 5: rp = fill(\"\\r\", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(lp + stack.pop() + rp); break;\n\n\t\t\tcase 'PtgRefErr': /* [MS-XLS] 2.5.198.86 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgRefErr3d': /* [MS-XLS] 2.5.198.87 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgExp': /* [MS-XLS] 2.5.198.58 TODO */\n\t\t\t\tc = {c:(f[1][1]/*:any*/),r:(f[1][0]/*:any*/)};\n\t\t\t\tvar q = ({c: cell.c, r:cell.r}/*:any*/);\n\t\t\t\tif(supbooks.sharedf[encode_cell(c)]) {\n\t\t\t\t\tvar parsedf = (supbooks.sharedf[encode_cell(c)]);\n\t\t\t\t\tstack.push(stringify_formula(parsedf, _range, q, supbooks, opts));\n\t\t\t\t} else {\n\t\t\t\t\tvar fnd = false;\n\t\t\t\t\tfor(e1=0;e1!=supbooks.arrayf.length; ++e1) {\n\t\t\t\t\t\t/* TODO: should be something like range_has */\n\t\t\t\t\t\te2 = supbooks.arrayf[e1];\n\t\t\t\t\t\tif(c.c < e2[0].s.c || c.c > e2[0].e.c) continue;\n\t\t\t\t\t\tif(c.r < e2[0].s.r || c.r > e2[0].e.r) continue;\n\t\t\t\t\t\tstack.push(stringify_formula(e2[1], _range, q, supbooks, opts));\n\t\t\t\t\t\tfnd = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(!fnd) stack.push(/*::String(*/f[1]/*::)*/);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgArray': /* [MS-XLS] 2.5.198.32 TODO */\n\t\t\t\tstack.push(\"{\" + stringify_array(/*::(*/f[1]/*:: :any)*/) + \"}\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemArea': /* [MS-XLS] 2.5.198.70 TODO: confirm this is a non-display */\n\t\t\t\t//stack.push(\"(\" + f[2].map(encode_range).join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrSpace': /* [MS-XLS] 2.5.198.38 */\n\t\t\tcase 'PtgAttrSpaceSemi': /* [MS-XLS] 2.5.198.39 */\n\t\t\t\tlast_sp = ff;\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgTbl': /* [MS-XLS] 2.5.198.92 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemErr': /* [MS-XLS] 2.5.198.71 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMissArg': /* [MS-XLS] 2.5.198.74 */\n\t\t\t\tstack.push(\"\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAreaErr': /* [MS-XLS] 2.5.198.29 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgAreaErr3d': /* [MS-XLS] 2.5.198.30 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgList': /* [MS-XLSB] 2.5.97.52 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push(\"Table\" + f[1].idx + \"[#\" + f[1].rt + \"]\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemAreaN':\n\t\t\tcase 'PtgMemNoMemN':\n\t\t\tcase 'PtgAttrNoop':\n\t\t\tcase 'PtgSheet':\n\t\t\tcase 'PtgEndSheet':\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemFunc': /* [MS-XLS] 2.5.198.72 TODO */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemNoMem': /* [MS-XLS] 2.5.198.73 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgElfCol': /* [MS-XLS] 2.5.198.46 */\n\t\t\tcase 'PtgElfColS': /* [MS-XLS] 2.5.198.47 */\n\t\t\tcase 'PtgElfColSV': /* [MS-XLS] 2.5.198.48 */\n\t\t\tcase 'PtgElfColV': /* [MS-XLS] 2.5.198.49 */\n\t\t\tcase 'PtgElfLel': /* [MS-XLS] 2.5.198.50 */\n\t\t\tcase 'PtgElfRadical': /* [MS-XLS] 2.5.198.51 */\n\t\t\tcase 'PtgElfRadicalLel': /* [MS-XLS] 2.5.198.52 */\n\t\t\tcase 'PtgElfRadicalS': /* [MS-XLS] 2.5.198.53 */\n\t\t\tcase 'PtgElfRw': /* [MS-XLS] 2.5.198.54 */\n\t\t\tcase 'PtgElfRwV': /* [MS-XLS] 2.5.198.55 */\n\t\t\t\tthrow new Error(\"Unsupported ELFs\");\n\n\t\t\tcase 'PtgSxName': /* [MS-XLS] 2.5.198.91 TODO -- find a test case */\n\t\t\t\tthrow new Error('Unrecognized Formula Token: ' + String(f));\n\t\t\tdefault: throw new Error('Unrecognized Formula Token: ' + String(f));\n\t\t}\n\t\tvar PtgNonDisp = ['PtgAttrSpace', 'PtgAttrSpaceSemi', 'PtgAttrGoto'];\n\t\tif(opts.biff != 3) if(last_sp >= 0 && PtgNonDisp.indexOf(formula[0][ff][0]) == -1) {\n\t\t\tf = formula[0][last_sp];\n\t\t\tvar _left = true;\n\t\t\tswitch(f[1][0]) {\n\t\t\t\t/* note: some bad XLSB files omit the PtgParen */\n\t\t\t\tcase 4: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 0:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\" \", f[1][1]); break;\n\t\t\t\tcase 5: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 1:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\"\\r\", f[1][1]); break;\n\t\t\t\tdefault:\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + f[1][0]);\n\t\t\t}\n\t\t\tstack.push((_left ? sp : \"\") + stack.pop() + (_left ? \"\" : sp));\n\t\t\tlast_sp = -1;\n\t\t}\n\t}\n\tif(stack.length > 1 && opts.WTF) throw new Error(\"bad formula stack\");\n\tif(stack[0] == \"TRUE\") return true; if(stack[0] == \"FALSE\") return false;\n\treturn stack[0];\n}\n\n/* [MS-XLS] 2.5.198.1 TODO */\nfunction parse_ArrayParsedFormula(blob, length, opts/*::, ref*/) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.3 TODO */\nfunction parse_XLSCellParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.21 */\nfunction parse_NameParsedFormula(blob, length, opts, cce) {\n\tvar target = blob.l + length;\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tvar rgcb;\n\tif(target !== blob.l) rgcb = parse_RgbExtra(blob, target - blob.l, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.118 TODO */\nfunction parse_SharedParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar rgcb, cce = blob.read_shift(2); // length of rgce\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tif(length !== cce + 2) rgcb = parse_RgbExtra(blob, target - cce - 2, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.133 TODO: how to emit empty strings? */\nfunction parse_FormulaValue(blob/*::, length*/) {\n\tvar b;\n\tif(__readUInt16LE(blob,blob.l + 6) !== 0xFFFF) return [parse_Xnum(blob),'n'];\n\tswitch(blob[blob.l]) {\n\t\tcase 0x00: blob.l += 8; return [\"String\", 's'];\n\t\tcase 0x01: b = blob[blob.l+2] === 0x1; blob.l += 8; return [b,'b'];\n\t\tcase 0x02: b = blob[blob.l+2]; blob.l += 8; return [b,'e'];\n\t\tcase 0x03: blob.l += 8; return [\"\",'s'];\n\t}\n\treturn [];\n}\nfunction write_FormulaValue(value) {\n\tif(value == null) {\n\t\t// Blank String Value\n\t\tvar o = new_buf(8);\n\t\to.write_shift(1, 0x03);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0xFFFF);\n\t\treturn o;\n\t} else if(typeof value == \"number\") return write_Xnum(value);\n\treturn write_Xnum(0);\n}\n\n/* [MS-XLS] 2.4.127 TODO */\nfunction parse_Formula(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6, opts);\n\tvar val = parse_FormulaValue(blob,8);\n\tvar flags = blob.read_shift(1);\n\tif(opts.biff != 2) {\n\t\tblob.read_shift(1);\n\t\tif(opts.biff >= 5) {\n\t\t\t/*var chn = */blob.read_shift(4);\n\t\t}\n\t}\n\tvar cbf = parse_XLSCellParsedFormula(blob, end - blob.l, opts);\n\treturn {cell:cell, val:val[0], formula:cbf, shared: (flags >> 3) & 1, tt:val[1]};\n}\nfunction write_Formula(cell/*:Cell*/, R/*:number*/, C/*:number*/, opts, os/*:number*/) {\n\t// Cell\n\tvar o1 = write_XLSCell(R, C, os);\n\n\t// FormulaValue\n\tvar o2 = write_FormulaValue(cell.v);\n\n\t// flags + cache\n\tvar o3 = new_buf(6);\n\tvar flags = 0x01 | 0x20;\n\to3.write_shift(2, flags);\n\to3.write_shift(4, 0);\n\n\t// CellParsedFormula\n\tvar bf = new_buf(cell.bf.length);\n\tfor(var i = 0; i < cell.bf.length; ++i) bf[i] = cell.bf[i];\n\n\tvar out = bconcat([o1, o2, o3, bf]);\n\treturn out;\n}\n\n\n/* XLSB Parsed Formula records have the same shape */\nfunction parse_XLSBParsedFormula(data, length, opts) {\n\tvar cce = data.read_shift(4);\n\tvar rgce = parse_Rgce(data, cce, opts);\n\tvar cb = data.read_shift(4);\n\tvar rgcb = cb > 0 ? parse_RgbExtra(data, cb, rgce, opts) : null;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLSB] 2.5.97.1 ArrayParsedFormula */\nvar parse_XLSBArrayParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.4 CellParsedFormula */\nvar parse_XLSBCellParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.8 DVParsedFormula */\n//var parse_XLSBDVParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.9 FRTParsedFormula */\n//var parse_XLSBFRTParsedFormula = parse_XLSBParsedFormula2;\n/* [MS-XLSB] 2.5.97.12 NameParsedFormula */\nvar parse_XLSBNameParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.98 SharedParsedFormula */\nvar parse_XLSBSharedParsedFormula = parse_XLSBParsedFormula;\n\n/* Writes a PtgNum or PtgInt */\nfunction write_XLSBFormulaNum(val/*:number*/) {\n\tif((val | 0) == val && val < Math.pow(2,16) && val >= 0) {\n\t\tvar oint = new_buf(11);\n\t\toint.write_shift(4, 3);\n\t\toint.write_shift(1, 0x1e);\n\t\toint.write_shift(2, val);\n\t\toint.write_shift(4, 0);\n\t\treturn oint;\n\t}\n\n\tvar num = new_buf(17);\n\tnum.write_shift(4, 11);\n\tnum.write_shift(1, 0x1f);\n\tnum.write_shift(8, val);\n\tnum.write_shift(4, 0);\n\treturn num;\n}\n/* Writes a PtgErr */\nfunction write_XLSBFormulaErr(val/*:number*/) {\n\tvar oint = new_buf(10);\n\toint.write_shift(4, 2);\n\toint.write_shift(1, 0x1C);\n\toint.write_shift(1, val);\n\toint.write_shift(4, 0);\n\treturn oint;\n}\n/* Writes a PtgBool */\nfunction write_XLSBFormulaBool(val/*:boolean*/) {\n\tvar oint = new_buf(10);\n\toint.write_shift(4, 2);\n\toint.write_shift(1, 0x1D);\n\toint.write_shift(1, val?1:0);\n\toint.write_shift(4, 0);\n\treturn oint;\n}\n\n/* Writes a PtgStr */\nfunction write_XLSBFormulaStr(val/*:string*/) {\n\tvar preamble = new_buf(7);\n\tpreamble.write_shift(4, 3 + 2 * val.length);\n\tpreamble.write_shift(1, 0x17);\n\tpreamble.write_shift(2, val.length);\n\n\tvar body = new_buf(2 * val.length);\n\tbody.write_shift(2 * val.length, val, \"utf16le\");\n\n\tvar postamble = new_buf(4);\n\tpostamble.write_shift(4, 0);\n\n\treturn bconcat([preamble, body, postamble]);\n}\n\n/* Writes a PtgRef */\nfunction write_XLSBFormulaRef(str) {\n\tvar cell = decode_cell(str);\n\tvar out = new_buf(15);\n\tout.write_shift(4, 7);\n\tout.write_shift(1, 0x04 | ((1)<<5));\n\tout.write_shift(4, cell.r);\n\tout.write_shift(2, cell.c | ((str.charAt(0) == \"$\" ? 0 : 1)<<14) | ((str.match(/\\$\\d/) ? 0 : 1)<<15)); // <== ColRelShort\n\tout.write_shift(4, 0);\n\n\treturn out;\n}\n\n/* Writes a PtgRef3d */\nfunction write_XLSBFormulaRef3D(str, wb) {\n\tvar lastbang = str.lastIndexOf(\"!\");\n\tvar sname = str.slice(0, lastbang);\n\tstr = str.slice(lastbang+1);\n\tvar cell = decode_cell(str);\n\tif(sname.charAt(0) == \"'\") sname = sname.slice(1, -1).replace(/''/g, \"'\");\n\n\tvar out = new_buf(17);\n\tout.write_shift(4, 9);\n\tout.write_shift(1, 0x1A | ((1)<<5));\n\tout.write_shift(2, 2 + wb.SheetNames.map(function(n) { return n.toLowerCase(); }).indexOf(sname.toLowerCase()));\n\tout.write_shift(4, cell.r);\n\tout.write_shift(2, cell.c | ((str.charAt(0) == \"$\" ? 0 : 1)<<14) | ((str.match(/\\$\\d/) ? 0 : 1)<<15)); // <== ColRelShort\n\tout.write_shift(4, 0);\n\n\treturn out;\n}\n\n/* Writes a PtgRefErr3d */\nfunction write_XLSBFormulaRefErr3D(str, wb) {\n\tvar lastbang = str.lastIndexOf(\"!\");\n\tvar sname = str.slice(0, lastbang);\n\tstr = str.slice(lastbang+1);\n\tif(sname.charAt(0) == \"'\") sname = sname.slice(1, -1).replace(/''/g, \"'\");\n\n\tvar out = new_buf(17);\n\tout.write_shift(4, 9);\n\tout.write_shift(1, 0x1C | ((1)<<5));\n\tout.write_shift(2, 2 + wb.SheetNames.map(function(n) { return n.toLowerCase(); }).indexOf(sname.toLowerCase()));\n\tout.write_shift(4, 0);\n\tout.write_shift(2, 0); // <== ColRelShort\n\tout.write_shift(4, 0);\n\n\treturn out;\n}\n\n/* Writes a single sheet range [PtgRef PtgRef PtgRange] */\nfunction write_XLSBFormulaRange(_str) {\n\tvar parts = _str.split(\":\"), str = parts[0];\n\n\tvar out = new_buf(23);\n\tout.write_shift(4, 15);\n\n\t/* start cell */\n\tstr = parts[0]; var cell = decode_cell(str);\n\tout.write_shift(1, 0x04 | ((1)<<5));\n\tout.write_shift(4, cell.r);\n\tout.write_shift(2, cell.c | ((str.charAt(0) == \"$\" ? 0 : 1)<<14) | ((str.match(/\\$\\d/) ? 0 : 1)<<15)); // <== ColRelShort\n\tout.write_shift(4, 0);\n\n\t/* end cell */\n\tstr = parts[1]; cell = decode_cell(str);\n\tout.write_shift(1, 0x04 | ((1)<<5));\n\tout.write_shift(4, cell.r);\n\tout.write_shift(2, cell.c | ((str.charAt(0) == \"$\" ? 0 : 1)<<14) | ((str.match(/\\$\\d/) ? 0 : 1)<<15)); // <== ColRelShort\n\tout.write_shift(4, 0);\n\n\t/* PtgRange */\n\tout.write_shift(1, 0x11);\n\n\tout.write_shift(4, 0);\n\n\treturn out;\n}\n\n/* Writes a range with explicit sheet name [PtgRef3D PtgRef3D PtgRange] */\nfunction write_XLSBFormulaRangeWS(_str, wb) {\n\tvar lastbang = _str.lastIndexOf(\"!\");\n\tvar sname = _str.slice(0, lastbang);\n\t_str = _str.slice(lastbang+1);\n\tif(sname.charAt(0) == \"'\") sname = sname.slice(1, -1).replace(/''/g, \"'\");\n\tvar parts = _str.split(\":\");\n\n\tvar out = new_buf(27);\n\tout.write_shift(4, 19);\n\n\t/* start cell */\n\tvar str = parts[0], cell = decode_cell(str);\n\tout.write_shift(1, 0x1A | ((1)<<5));\n\tout.write_shift(2, 2 + wb.SheetNames.map(function(n) { return n.toLowerCase(); }).indexOf(sname.toLowerCase()));\n\tout.write_shift(4, cell.r);\n\tout.write_shift(2, cell.c | ((str.charAt(0) == \"$\" ? 0 : 1)<<14) | ((str.match(/\\$\\d/) ? 0 : 1)<<15)); // <== ColRelShort\n\n\t/* end cell */\n\tstr = parts[1]; cell = decode_cell(str);\n\tout.write_shift(1, 0x1A | ((1)<<5));\n\tout.write_shift(2, 2 + wb.SheetNames.map(function(n) { return n.toLowerCase(); }).indexOf(sname.toLowerCase()));\n\tout.write_shift(4, cell.r);\n\tout.write_shift(2, cell.c | ((str.charAt(0) == \"$\" ? 0 : 1)<<14) | ((str.match(/\\$\\d/) ? 0 : 1)<<15)); // <== ColRelShort\n\n\t/* PtgRange */\n\tout.write_shift(1, 0x11);\n\n\tout.write_shift(4, 0);\n\n\treturn out;\n}\n\n/* Writes a range with explicit sheet name [PtgArea3d] */\nfunction write_XLSBFormulaArea3D(_str, wb) {\n\tvar lastbang = _str.lastIndexOf(\"!\");\n\tvar sname = _str.slice(0, lastbang);\n\t_str = _str.slice(lastbang+1);\n\tif(sname.charAt(0) == \"'\") sname = sname.slice(1, -1).replace(/''/g, \"'\");\n\tvar range = decode_range(_str);\n\n\tvar out = new_buf(23);\n\tout.write_shift(4, 15);\n\n\tout.write_shift(1, 0x1B | ((1)<<5));\n\tout.write_shift(2, 2 + wb.SheetNames.map(function(n) { return n.toLowerCase(); }).indexOf(sname.toLowerCase()));\n\tout.write_shift(4, range.s.r);\n\tout.write_shift(4, range.e.r);\n\tout.write_shift(2, range.s.c);\n\tout.write_shift(2, range.e.c);\n\n\tout.write_shift(4, 0);\n\n\treturn out;\n}\n\n\n/* General Formula */\nfunction write_XLSBFormula(val/*:string|number*/, wb) {\n\tif(typeof val == \"number\") return write_XLSBFormulaNum(val);\n\tif(typeof val == \"boolean\") return write_XLSBFormulaBool(val);\n\tif(/^#(DIV\\/0!|GETTING_DATA|N\\/A|NAME\\?|NULL!|NUM!|REF!|VALUE!)$/.test(val)) return write_XLSBFormulaErr(+RBErr[val]);\n\tif(val.match(/^\\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\\$?(?:10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})$/)) return write_XLSBFormulaRef(val);\n\tif(val.match(/^\\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\\$?(?:10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5}):\\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\\$?(?:10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})$/)) return write_XLSBFormulaRange(val);\n\tif(val.match(/^#REF!\\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\\$?(?:10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5}):\\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\\$?(?:10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})$/)) return write_XLSBFormulaArea3D(val, wb);\n\tif(val.match(/^(?:'[^\\\\\\/?*\\[\\]:]*'|[^'][^\\\\\\/?*\\[\\]:'`~!@#$%^()\\-=+{}|;,<.>]*)!\\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\\$?(?:10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})$/)) return write_XLSBFormulaRef3D(val, wb);\n\tif(val.match(/^(?:'[^\\\\\\/?*\\[\\]:]*'|[^'][^\\\\\\/?*\\[\\]:'`~!@#$%^()\\-=+{}|;,<.>]*)!\\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\\$?(?:10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5}):\\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\\$?(?:10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})$/)) return write_XLSBFormulaRangeWS(val, wb);\n\tif(/^(?:'[^\\\\\\/?*\\[\\]:]*'|[^'][^\\\\\\/?*\\[\\]:'`~!@#$%^()\\-=+{}|;,<.>]*)!#REF!$/.test(val)) return write_XLSBFormulaRefErr3D(val, wb);\n\tif(/^\".*\"$/.test(val)) return write_XLSBFormulaStr(val);\n\tif(/^[+-]\\d+$/.test(val)) return write_XLSBFormulaNum(parseInt(val, 10));\n\tthrow \"Formula |\" + val + \"| not supported for XLSB\";\n}\nvar write_XLSBNameParsedFormula = write_XLSBFormula;\nvar Cetab = {\n 0: \"BEEP\",\n 1: \"OPEN\",\n 2: \"OPEN.LINKS\",\n 3: \"CLOSE.ALL\",\n 4: \"SAVE\",\n 5: \"SAVE.AS\",\n 6: \"FILE.DELETE\",\n 7: \"PAGE.SETUP\",\n 8: \"PRINT\",\n 9: \"PRINTER.SETUP\",\n 10: \"QUIT\",\n 11: \"NEW.WINDOW\",\n 12: \"ARRANGE.ALL\",\n 13: \"WINDOW.SIZE\",\n 14: \"WINDOW.MOVE\",\n 15: \"FULL\",\n 16: \"CLOSE\",\n 17: \"RUN\",\n 22: \"SET.PRINT.AREA\",\n 23: \"SET.PRINT.TITLES\",\n 24: \"SET.PAGE.BREAK\",\n 25: \"REMOVE.PAGE.BREAK\",\n 26: \"FONT\",\n 27: \"DISPLAY\",\n 28: \"PROTECT.DOCUMENT\",\n 29: \"PRECISION\",\n 30: \"A1.R1C1\",\n 31: \"CALCULATE.NOW\",\n 32: \"CALCULATION\",\n 34: \"DATA.FIND\",\n 35: \"EXTRACT\",\n 36: \"DATA.DELETE\",\n 37: \"SET.DATABASE\",\n 38: \"SET.CRITERIA\",\n 39: \"SORT\",\n 40: \"DATA.SERIES\",\n 41: \"TABLE\",\n 42: \"FORMAT.NUMBER\",\n 43: \"ALIGNMENT\",\n 44: \"STYLE\",\n 45: \"BORDER\",\n 46: \"CELL.PROTECTION\",\n 47: \"COLUMN.WIDTH\",\n 48: \"UNDO\",\n 49: \"CUT\",\n 50: \"COPY\",\n 51: \"PASTE\",\n 52: \"CLEAR\",\n 53: \"PASTE.SPECIAL\",\n 54: \"EDIT.DELETE\",\n 55: \"INSERT\",\n 56: \"FILL.RIGHT\",\n 57: \"FILL.DOWN\",\n 61: \"DEFINE.NAME\",\n 62: \"CREATE.NAMES\",\n 63: \"FORMULA.GOTO\",\n 64: \"FORMULA.FIND\",\n 65: \"SELECT.LAST.CELL\",\n 66: \"SHOW.ACTIVE.CELL\",\n 67: \"GALLERY.AREA\",\n 68: \"GALLERY.BAR\",\n 69: \"GALLERY.COLUMN\",\n 70: \"GALLERY.LINE\",\n 71: \"GALLERY.PIE\",\n 72: \"GALLERY.SCATTER\",\n 73: \"COMBINATION\",\n 74: \"PREFERRED\",\n 75: \"ADD.OVERLAY\",\n 76: \"GRIDLINES\",\n 77: \"SET.PREFERRED\",\n 78: \"AXES\",\n 79: \"LEGEND\",\n 80: \"ATTACH.TEXT\",\n 81: \"ADD.ARROW\",\n 82: \"SELECT.CHART\",\n 83: \"SELECT.PLOT.AREA\",\n 84: \"PATTERNS\",\n 85: \"MAIN.CHART\",\n 86: \"OVERLAY\",\n 87: \"SCALE\",\n 88: \"FORMAT.LEGEND\",\n 89: \"FORMAT.TEXT\",\n 90: \"EDIT.REPEAT\",\n 91: \"PARSE\",\n 92: \"JUSTIFY\",\n 93: \"HIDE\",\n 94: \"UNHIDE\",\n 95: \"WORKSPACE\",\n 96: \"FORMULA\",\n 97: \"FORMULA.FILL\",\n 98: \"FORMULA.ARRAY\",\n 99: \"DATA.FIND.NEXT\",\n 100: \"DATA.FIND.PREV\",\n 101: \"FORMULA.FIND.NEXT\",\n 102: \"FORMULA.FIND.PREV\",\n 103: \"ACTIVATE\",\n 104: \"ACTIVATE.NEXT\",\n 105: \"ACTIVATE.PREV\",\n 106: \"UNLOCKED.NEXT\",\n 107: \"UNLOCKED.PREV\",\n 108: \"COPY.PICTURE\",\n 109: \"SELECT\",\n 110: \"DELETE.NAME\",\n 111: \"DELETE.FORMAT\",\n 112: \"VLINE\",\n 113: \"HLINE\",\n 114: \"VPAGE\",\n 115: \"HPAGE\",\n 116: \"VSCROLL\",\n 117: \"HSCROLL\",\n 118: \"ALERT\",\n 119: \"NEW\",\n 120: \"CANCEL.COPY\",\n 121: \"SHOW.CLIPBOARD\",\n 122: \"MESSAGE\",\n 124: \"PASTE.LINK\",\n 125: \"APP.ACTIVATE\",\n 126: \"DELETE.ARROW\",\n 127: \"ROW.HEIGHT\",\n 128: \"FORMAT.MOVE\",\n 129: \"FORMAT.SIZE\",\n 130: \"FORMULA.REPLACE\",\n 131: \"SEND.KEYS\",\n 132: \"SELECT.SPECIAL\",\n 133: \"APPLY.NAMES\",\n 134: \"REPLACE.FONT\",\n 135: \"FREEZE.PANES\",\n 136: \"SHOW.INFO\",\n 137: \"SPLIT\",\n 138: \"ON.WINDOW\",\n 139: \"ON.DATA\",\n 140: \"DISABLE.INPUT\",\n 142: \"OUTLINE\",\n 143: \"LIST.NAMES\",\n 144: \"FILE.CLOSE\",\n 145: \"SAVE.WORKBOOK\",\n 146: \"DATA.FORM\",\n 147: \"COPY.CHART\",\n 148: \"ON.TIME\",\n 149: \"WAIT\",\n 150: \"FORMAT.FONT\",\n 151: \"FILL.UP\",\n 152: \"FILL.LEFT\",\n 153: \"DELETE.OVERLAY\",\n 155: \"SHORT.MENUS\",\n 159: \"SET.UPDATE.STATUS\",\n 161: \"COLOR.PALETTE\",\n 162: \"DELETE.STYLE\",\n 163: \"WINDOW.RESTORE\",\n 164: \"WINDOW.MAXIMIZE\",\n 166: \"CHANGE.LINK\",\n 167: \"CALCULATE.DOCUMENT\",\n 168: \"ON.KEY\",\n 169: \"APP.RESTORE\",\n 170: \"APP.MOVE\",\n 171: \"APP.SIZE\",\n 172: \"APP.MINIMIZE\",\n 173: \"APP.MAXIMIZE\",\n 174: \"BRING.TO.FRONT\",\n 175: \"SEND.TO.BACK\",\n 185: \"MAIN.CHART.TYPE\",\n 186: \"OVERLAY.CHART.TYPE\",\n 187: \"SELECT.END\",\n 188: \"OPEN.MAIL\",\n 189: \"SEND.MAIL\",\n 190: \"STANDARD.FONT\",\n 191: \"CONSOLIDATE\",\n 192: \"SORT.SPECIAL\",\n 193: \"GALLERY.3D.AREA\",\n 194: \"GALLERY.3D.COLUMN\",\n 195: \"GALLERY.3D.LINE\",\n 196: \"GALLERY.3D.PIE\",\n 197: \"VIEW.3D\",\n 198: \"GOAL.SEEK\",\n 199: \"WORKGROUP\",\n 200: \"FILL.GROUP\",\n 201: \"UPDATE.LINK\",\n 202: \"PROMOTE\",\n 203: \"DEMOTE\",\n 204: \"SHOW.DETAIL\",\n 206: \"UNGROUP\",\n 207: \"OBJECT.PROPERTIES\",\n 208: \"SAVE.NEW.OBJECT\",\n 209: \"SHARE\",\n 210: \"SHARE.NAME\",\n 211: \"DUPLICATE\",\n 212: \"APPLY.STYLE\",\n 213: \"ASSIGN.TO.OBJECT\",\n 214: \"OBJECT.PROTECTION\",\n 215: \"HIDE.OBJECT\",\n 216: \"SET.EXTRACT\",\n 217: \"CREATE.PUBLISHER\",\n 218: \"SUBSCRIBE.TO\",\n 219: \"ATTRIBUTES\",\n 220: \"SHOW.TOOLBAR\",\n 222: \"PRINT.PREVIEW\",\n 223: \"EDIT.COLOR\",\n 224: \"SHOW.LEVELS\",\n 225: \"FORMAT.MAIN\",\n 226: \"FORMAT.OVERLAY\",\n 227: \"ON.RECALC\",\n 228: \"EDIT.SERIES\",\n 229: \"DEFINE.STYLE\",\n 240: \"LINE.PRINT\",\n 243: \"ENTER.DATA\",\n 249: \"GALLERY.RADAR\",\n 250: \"MERGE.STYLES\",\n 251: \"EDITION.OPTIONS\",\n 252: \"PASTE.PICTURE\",\n 253: \"PASTE.PICTURE.LINK\",\n 254: \"SPELLING\",\n 256: \"ZOOM\",\n 259: \"INSERT.OBJECT\",\n 260: \"WINDOW.MINIMIZE\",\n 265: \"SOUND.NOTE\",\n 266: \"SOUND.PLAY\",\n 267: \"FORMAT.SHAPE\",\n 268: \"EXTEND.POLYGON\",\n 269: \"FORMAT.AUTO\",\n 272: \"GALLERY.3D.BAR\",\n 273: \"GALLERY.3D.SURFACE\",\n 274: \"FILL.AUTO\",\n 276: \"CUSTOMIZE.TOOLBAR\",\n 277: \"ADD.TOOL\",\n 278: \"EDIT.OBJECT\",\n 279: \"ON.DOUBLECLICK\",\n 280: \"ON.ENTRY\",\n 281: \"WORKBOOK.ADD\",\n 282: \"WORKBOOK.MOVE\",\n 283: \"WORKBOOK.COPY\",\n 284: \"WORKBOOK.OPTIONS\",\n 285: \"SAVE.WORKSPACE\",\n 288: \"CHART.WIZARD\",\n 289: \"DELETE.TOOL\",\n 290: \"MOVE.TOOL\",\n 291: \"WORKBOOK.SELECT\",\n 292: \"WORKBOOK.ACTIVATE\",\n 293: \"ASSIGN.TO.TOOL\",\n 295: \"COPY.TOOL\",\n 296: \"RESET.TOOL\",\n 297: \"CONSTRAIN.NUMERIC\",\n 298: \"PASTE.TOOL\",\n 302: \"WORKBOOK.NEW\",\n 305: \"SCENARIO.CELLS\",\n 306: \"SCENARIO.DELETE\",\n 307: \"SCENARIO.ADD\",\n 308: \"SCENARIO.EDIT\",\n 309: \"SCENARIO.SHOW\",\n 310: \"SCENARIO.SHOW.NEXT\",\n 311: \"SCENARIO.SUMMARY\",\n 312: \"PIVOT.TABLE.WIZARD\",\n 313: \"PIVOT.FIELD.PROPERTIES\",\n 314: \"PIVOT.FIELD\",\n 315: \"PIVOT.ITEM\",\n 316: \"PIVOT.ADD.FIELDS\",\n 318: \"OPTIONS.CALCULATION\",\n 319: \"OPTIONS.EDIT\",\n 320: \"OPTIONS.VIEW\",\n 321: \"ADDIN.MANAGER\",\n 322: \"MENU.EDITOR\",\n 323: \"ATTACH.TOOLBARS\",\n 324: \"VBAActivate\",\n 325: \"OPTIONS.CHART\",\n 328: \"VBA.INSERT.FILE\",\n 330: \"VBA.PROCEDURE.DEFINITION\",\n 336: \"ROUTING.SLIP\",\n 338: \"ROUTE.DOCUMENT\",\n 339: \"MAIL.LOGON\",\n 342: \"INSERT.PICTURE\",\n 343: \"EDIT.TOOL\",\n 344: \"GALLERY.DOUGHNUT\",\n 350: \"CHART.TREND\",\n 352: \"PIVOT.ITEM.PROPERTIES\",\n 354: \"WORKBOOK.INSERT\",\n 355: \"OPTIONS.TRANSITION\",\n 356: \"OPTIONS.GENERAL\",\n 370: \"FILTER.ADVANCED\",\n 373: \"MAIL.ADD.MAILER\",\n 374: \"MAIL.DELETE.MAILER\",\n 375: \"MAIL.REPLY\",\n 376: \"MAIL.REPLY.ALL\",\n 377: \"MAIL.FORWARD\",\n 378: \"MAIL.NEXT.LETTER\",\n 379: \"DATA.LABEL\",\n 380: \"INSERT.TITLE\",\n 381: \"FONT.PROPERTIES\",\n 382: \"MACRO.OPTIONS\",\n 383: \"WORKBOOK.HIDE\",\n 384: \"WORKBOOK.UNHIDE\",\n 385: \"WORKBOOK.DELETE\",\n 386: \"WORKBOOK.NAME\",\n 388: \"GALLERY.CUSTOM\",\n 390: \"ADD.CHART.AUTOFORMAT\",\n 391: \"DELETE.CHART.AUTOFORMAT\",\n 392: \"CHART.ADD.DATA\",\n 393: \"AUTO.OUTLINE\",\n 394: \"TAB.ORDER\",\n 395: \"SHOW.DIALOG\",\n 396: \"SELECT.ALL\",\n 397: \"UNGROUP.SHEETS\",\n 398: \"SUBTOTAL.CREATE\",\n 399: \"SUBTOTAL.REMOVE\",\n 400: \"RENAME.OBJECT\",\n 412: \"WORKBOOK.SCROLL\",\n 413: \"WORKBOOK.NEXT\",\n 414: \"WORKBOOK.PREV\",\n 415: \"WORKBOOK.TAB.SPLIT\",\n 416: \"FULL.SCREEN\",\n 417: \"WORKBOOK.PROTECT\",\n 420: \"SCROLLBAR.PROPERTIES\",\n 421: \"PIVOT.SHOW.PAGES\",\n 422: \"TEXT.TO.COLUMNS\",\n 423: \"FORMAT.CHARTTYPE\",\n 424: \"LINK.FORMAT\",\n 425: \"TRACER.DISPLAY\",\n 430: \"TRACER.NAVIGATE\",\n 431: \"TRACER.CLEAR\",\n 432: \"TRACER.ERROR\",\n 433: \"PIVOT.FIELD.GROUP\",\n 434: \"PIVOT.FIELD.UNGROUP\",\n 435: \"CHECKBOX.PROPERTIES\",\n 436: \"LABEL.PROPERTIES\",\n 437: \"LISTBOX.PROPERTIES\",\n 438: \"EDITBOX.PROPERTIES\",\n 439: \"PIVOT.REFRESH\",\n 440: \"LINK.COMBO\",\n 441: \"OPEN.TEXT\",\n 442: \"HIDE.DIALOG\",\n 443: \"SET.DIALOG.FOCUS\",\n 444: \"ENABLE.OBJECT\",\n 445: \"PUSHBUTTON.PROPERTIES\",\n 446: \"SET.DIALOG.DEFAULT\",\n 447: \"FILTER\",\n 448: \"FILTER.SHOW.ALL\",\n 449: \"CLEAR.OUTLINE\",\n 450: \"FUNCTION.WIZARD\",\n 451: \"ADD.LIST.ITEM\",\n 452: \"SET.LIST.ITEM\",\n 453: \"REMOVE.LIST.ITEM\",\n 454: \"SELECT.LIST.ITEM\",\n 455: \"SET.CONTROL.VALUE\",\n 456: \"SAVE.COPY.AS\",\n 458: \"OPTIONS.LISTS.ADD\",\n 459: \"OPTIONS.LISTS.DELETE\",\n 460: \"SERIES.AXES\",\n 461: \"SERIES.X\",\n 462: \"SERIES.Y\",\n 463: \"ERRORBAR.X\",\n 464: \"ERRORBAR.Y\",\n 465: \"FORMAT.CHART\",\n 466: \"SERIES.ORDER\",\n 467: \"MAIL.LOGOFF\",\n 468: \"CLEAR.ROUTING.SLIP\",\n 469: \"APP.ACTIVATE.MICROSOFT\",\n 470: \"MAIL.EDIT.MAILER\",\n 471: \"ON.SHEET\",\n 472: \"STANDARD.WIDTH\",\n 473: \"SCENARIO.MERGE\",\n 474: \"SUMMARY.INFO\",\n 475: \"FIND.FILE\",\n 476: \"ACTIVE.CELL.FONT\",\n 477: \"ENABLE.TIPWIZARD\",\n 478: \"VBA.MAKE.ADDIN\",\n 480: \"INSERTDATATABLE\",\n 481: \"WORKGROUP.OPTIONS\",\n 482: \"MAIL.SEND.MAILER\",\n 485: \"AUTOCORRECT\",\n 489: \"POST.DOCUMENT\",\n 491: \"PICKLIST\",\n 493: \"VIEW.SHOW\",\n 494: \"VIEW.DEFINE\",\n 495: \"VIEW.DELETE\",\n 509: \"SHEET.BACKGROUND\",\n 510: \"INSERT.MAP.OBJECT\",\n 511: \"OPTIONS.MENONO\",\n 517: \"MSOCHECKS\",\n 518: \"NORMAL\",\n 519: \"LAYOUT\",\n 520: \"RM.PRINT.AREA\",\n 521: \"CLEAR.PRINT.AREA\",\n 522: \"ADD.PRINT.AREA\",\n 523: \"MOVE.BRK\",\n 545: \"HIDECURR.NOTE\",\n 546: \"HIDEALL.NOTES\",\n 547: \"DELETE.NOTE\",\n 548: \"TRAVERSE.NOTES\",\n 549: \"ACTIVATE.NOTES\",\n 620: \"PROTECT.REVISIONS\",\n 621: \"UNPROTECT.REVISIONS\",\n 647: \"OPTIONS.ME\",\n 653: \"WEB.PUBLISH\",\n 667: \"NEWWEBQUERY\",\n 673: \"PIVOT.TABLE.CHART\",\n 753: \"OPTIONS.SAVE\",\n 755: \"OPTIONS.SPELL\",\n 808: \"HIDEALL.INKANNOTS\"\n};\nvar Ftab = {\n 0: \"COUNT\",\n 1: \"IF\",\n 2: \"ISNA\",\n 3: \"ISERROR\",\n 4: \"SUM\",\n 5: \"AVERAGE\",\n 6: \"MIN\",\n 7: \"MAX\",\n 8: \"ROW\",\n 9: \"COLUMN\",\n 10: \"NA\",\n 11: \"NPV\",\n 12: \"STDEV\",\n 13: \"DOLLAR\",\n 14: \"FIXED\",\n 15: \"SIN\",\n 16: \"COS\",\n 17: \"TAN\",\n 18: \"ATAN\",\n 19: \"PI\",\n 20: \"SQRT\",\n 21: \"EXP\",\n 22: \"LN\",\n 23: \"LOG10\",\n 24: \"ABS\",\n 25: \"INT\",\n 26: \"SIGN\",\n 27: \"ROUND\",\n 28: \"LOOKUP\",\n 29: \"INDEX\",\n 30: \"REPT\",\n 31: \"MID\",\n 32: \"LEN\",\n 33: \"VALUE\",\n 34: \"TRUE\",\n 35: \"FALSE\",\n 36: \"AND\",\n 37: \"OR\",\n 38: \"NOT\",\n 39: \"MOD\",\n 40: \"DCOUNT\",\n 41: \"DSUM\",\n 42: \"DAVERAGE\",\n 43: \"DMIN\",\n 44: \"DMAX\",\n 45: \"DSTDEV\",\n 46: \"VAR\",\n 47: \"DVAR\",\n 48: \"TEXT\",\n 49: \"LINEST\",\n 50: \"TREND\",\n 51: \"LOGEST\",\n 52: \"GROWTH\",\n 53: \"GOTO\",\n 54: \"HALT\",\n 55: \"RETURN\",\n 56: \"PV\",\n 57: \"FV\",\n 58: \"NPER\",\n 59: \"PMT\",\n 60: \"RATE\",\n 61: \"MIRR\",\n 62: \"IRR\",\n 63: \"RAND\",\n 64: \"MATCH\",\n 65: \"DATE\",\n 66: \"TIME\",\n 67: \"DAY\",\n 68: \"MONTH\",\n 69: \"YEAR\",\n 70: \"WEEKDAY\",\n 71: \"HOUR\",\n 72: \"MINUTE\",\n 73: \"SECOND\",\n 74: \"NOW\",\n 75: \"AREAS\",\n 76: \"ROWS\",\n 77: \"COLUMNS\",\n 78: \"OFFSET\",\n 79: \"ABSREF\",\n 80: \"RELREF\",\n 81: \"ARGUMENT\",\n 82: \"SEARCH\",\n 83: \"TRANSPOSE\",\n 84: \"ERROR\",\n 85: \"STEP\",\n 86: \"TYPE\",\n 87: \"ECHO\",\n 88: \"SET.NAME\",\n 89: \"CALLER\",\n 90: \"DEREF\",\n 91: \"WINDOWS\",\n 92: \"SERIES\",\n 93: \"DOCUMENTS\",\n 94: \"ACTIVE.CELL\",\n 95: \"SELECTION\",\n 96: \"RESULT\",\n 97: \"ATAN2\",\n 98: \"ASIN\",\n 99: \"ACOS\",\n 100: \"CHOOSE\",\n 101: \"HLOOKUP\",\n 102: \"VLOOKUP\",\n 103: \"LINKS\",\n 104: \"INPUT\",\n 105: \"ISREF\",\n 106: \"GET.FORMULA\",\n 107: \"GET.NAME\",\n 108: \"SET.VALUE\",\n 109: \"LOG\",\n 110: \"EXEC\",\n 111: \"CHAR\",\n 112: \"LOWER\",\n 113: \"UPPER\",\n 114: \"PROPER\",\n 115: \"LEFT\",\n 116: \"RIGHT\",\n 117: \"EXACT\",\n 118: \"TRIM\",\n 119: \"REPLACE\",\n 120: \"SUBSTITUTE\",\n 121: \"CODE\",\n 122: \"NAMES\",\n 123: \"DIRECTORY\",\n 124: \"FIND\",\n 125: \"CELL\",\n 126: \"ISERR\",\n 127: \"ISTEXT\",\n 128: \"ISNUMBER\",\n 129: \"ISBLANK\",\n 130: \"T\",\n 131: \"N\",\n 132: \"FOPEN\",\n 133: \"FCLOSE\",\n 134: \"FSIZE\",\n 135: \"FREADLN\",\n 136: \"FREAD\",\n 137: \"FWRITELN\",\n 138: \"FWRITE\",\n 139: \"FPOS\",\n 140: \"DATEVALUE\",\n 141: \"TIMEVALUE\",\n 142: \"SLN\",\n 143: \"SYD\",\n 144: \"DDB\",\n 145: \"GET.DEF\",\n 146: \"REFTEXT\",\n 147: \"TEXTREF\",\n 148: \"INDIRECT\",\n 149: \"REGISTER\",\n 150: \"CALL\",\n 151: \"ADD.BAR\",\n 152: \"ADD.MENU\",\n 153: \"ADD.COMMAND\",\n 154: \"ENABLE.COMMAND\",\n 155: \"CHECK.COMMAND\",\n 156: \"RENAME.COMMAND\",\n 157: \"SHOW.BAR\",\n 158: \"DELETE.MENU\",\n 159: \"DELETE.COMMAND\",\n 160: \"GET.CHART.ITEM\",\n 161: \"DIALOG.BOX\",\n 162: \"CLEAN\",\n 163: \"MDETERM\",\n 164: \"MINVERSE\",\n 165: \"MMULT\",\n 166: \"FILES\",\n 167: \"IPMT\",\n 168: \"PPMT\",\n 169: \"COUNTA\",\n 170: \"CANCEL.KEY\",\n 171: \"FOR\",\n 172: \"WHILE\",\n 173: \"BREAK\",\n 174: \"NEXT\",\n 175: \"INITIATE\",\n 176: \"REQUEST\",\n 177: \"POKE\",\n 178: \"EXECUTE\",\n 179: \"TERMINATE\",\n 180: \"RESTART\",\n 181: \"HELP\",\n 182: \"GET.BAR\",\n 183: \"PRODUCT\",\n 184: \"FACT\",\n 185: \"GET.CELL\",\n 186: \"GET.WORKSPACE\",\n 187: \"GET.WINDOW\",\n 188: \"GET.DOCUMENT\",\n 189: \"DPRODUCT\",\n 190: \"ISNONTEXT\",\n 191: \"GET.NOTE\",\n 192: \"NOTE\",\n 193: \"STDEVP\",\n 194: \"VARP\",\n 195: \"DSTDEVP\",\n 196: \"DVARP\",\n 197: \"TRUNC\",\n 198: \"ISLOGICAL\",\n 199: \"DCOUNTA\",\n 200: \"DELETE.BAR\",\n 201: \"UNREGISTER\",\n 204: \"USDOLLAR\",\n 205: \"FINDB\",\n 206: \"SEARCHB\",\n 207: \"REPLACEB\",\n 208: \"LEFTB\",\n 209: \"RIGHTB\",\n 210: \"MIDB\",\n 211: \"LENB\",\n 212: \"ROUNDUP\",\n 213: \"ROUNDDOWN\",\n 214: \"ASC\",\n 215: \"DBCS\",\n 216: \"RANK\",\n 219: \"ADDRESS\",\n 220: \"DAYS360\",\n 221: \"TODAY\",\n 222: \"VDB\",\n 223: \"ELSE\",\n 224: \"ELSE.IF\",\n 225: \"END.IF\",\n 226: \"FOR.CELL\",\n 227: \"MEDIAN\",\n 228: \"SUMPRODUCT\",\n 229: \"SINH\",\n 230: \"COSH\",\n 231: \"TANH\",\n 232: \"ASINH\",\n 233: \"ACOSH\",\n 234: \"ATANH\",\n 235: \"DGET\",\n 236: \"CREATE.OBJECT\",\n 237: \"VOLATILE\",\n 238: \"LAST.ERROR\",\n 239: \"CUSTOM.UNDO\",\n 240: \"CUSTOM.REPEAT\",\n 241: \"FORMULA.CONVERT\",\n 242: \"GET.LINK.INFO\",\n 243: \"TEXT.BOX\",\n 244: \"INFO\",\n 245: \"GROUP\",\n 246: \"GET.OBJECT\",\n 247: \"DB\",\n 248: \"PAUSE\",\n 251: \"RESUME\",\n 252: \"FREQUENCY\",\n 253: \"ADD.TOOLBAR\",\n 254: \"DELETE.TOOLBAR\",\n 255: \"User\",\n 256: \"RESET.TOOLBAR\",\n 257: \"EVALUATE\",\n 258: \"GET.TOOLBAR\",\n 259: \"GET.TOOL\",\n 260: \"SPELLING.CHECK\",\n 261: \"ERROR.TYPE\",\n 262: \"APP.TITLE\",\n 263: \"WINDOW.TITLE\",\n 264: \"SAVE.TOOLBAR\",\n 265: \"ENABLE.TOOL\",\n 266: \"PRESS.TOOL\",\n 267: \"REGISTER.ID\",\n 268: \"GET.WORKBOOK\",\n 269: \"AVEDEV\",\n 270: \"BETADIST\",\n 271: \"GAMMALN\",\n 272: \"BETAINV\",\n 273: \"BINOMDIST\",\n 274: \"CHIDIST\",\n 275: \"CHIINV\",\n 276: \"COMBIN\",\n 277: \"CONFIDENCE\",\n 278: \"CRITBINOM\",\n 279: \"EVEN\",\n 280: \"EXPONDIST\",\n 281: \"FDIST\",\n 282: \"FINV\",\n 283: \"FISHER\",\n 284: \"FISHERINV\",\n 285: \"FLOOR\",\n 286: \"GAMMADIST\",\n 287: \"GAMMAINV\",\n 288: \"CEILING\",\n 289: \"HYPGEOMDIST\",\n 290: \"LOGNORMDIST\",\n 291: \"LOGINV\",\n 292: \"NEGBINOMDIST\",\n 293: \"NORMDIST\",\n 294: \"NORMSDIST\",\n 295: \"NORMINV\",\n 296: \"NORMSINV\",\n 297: \"STANDARDIZE\",\n 298: \"ODD\",\n 299: \"PERMUT\",\n 300: \"POISSON\",\n 301: \"TDIST\",\n 302: \"WEIBULL\",\n 303: \"SUMXMY2\",\n 304: \"SUMX2MY2\",\n 305: \"SUMX2PY2\",\n 306: \"CHITEST\",\n 307: \"CORREL\",\n 308: \"COVAR\",\n 309: \"FORECAST\",\n 310: \"FTEST\",\n 311: \"INTERCEPT\",\n 312: \"PEARSON\",\n 313: \"RSQ\",\n 314: \"STEYX\",\n 315: \"SLOPE\",\n 316: \"TTEST\",\n 317: \"PROB\",\n 318: \"DEVSQ\",\n 319: \"GEOMEAN\",\n 320: \"HARMEAN\",\n 321: \"SUMSQ\",\n 322: \"KURT\",\n 323: \"SKEW\",\n 324: \"ZTEST\",\n 325: \"LARGE\",\n 326: \"SMALL\",\n 327: \"QUARTILE\",\n 328: \"PERCENTILE\",\n 329: \"PERCENTRANK\",\n 330: \"MODE\",\n 331: \"TRIMMEAN\",\n 332: \"TINV\",\n 334: \"MOVIE.COMMAND\",\n 335: \"GET.MOVIE\",\n 336: \"CONCATENATE\",\n 337: \"POWER\",\n 338: \"PIVOT.ADD.DATA\",\n 339: \"GET.PIVOT.TABLE\",\n 340: \"GET.PIVOT.FIELD\",\n 341: \"GET.PIVOT.ITEM\",\n 342: \"RADIANS\",\n 343: \"DEGREES\",\n 344: \"SUBTOTAL\",\n 345: \"SUMIF\",\n 346: \"COUNTIF\",\n 347: \"COUNTBLANK\",\n 348: \"SCENARIO.GET\",\n 349: \"OPTIONS.LISTS.GET\",\n 350: \"ISPMT\",\n 351: \"DATEDIF\",\n 352: \"DATESTRING\",\n 353: \"NUMBERSTRING\",\n 354: \"ROMAN\",\n 355: \"OPEN.DIALOG\",\n 356: \"SAVE.DIALOG\",\n 357: \"VIEW.GET\",\n 358: \"GETPIVOTDATA\",\n 359: \"HYPERLINK\",\n 360: \"PHONETIC\",\n 361: \"AVERAGEA\",\n 362: \"MAXA\",\n 363: \"MINA\",\n 364: \"STDEVPA\",\n 365: \"VARPA\",\n 366: \"STDEVA\",\n 367: \"VARA\",\n 368: \"BAHTTEXT\",\n 369: \"THAIDAYOFWEEK\",\n 370: \"THAIDIGIT\",\n 371: \"THAIMONTHOFYEAR\",\n 372: \"THAINUMSOUND\",\n 373: \"THAINUMSTRING\",\n 374: \"THAISTRINGLENGTH\",\n 375: \"ISTHAIDIGIT\",\n 376: \"ROUNDBAHTDOWN\",\n 377: \"ROUNDBAHTUP\",\n 378: \"THAIYEAR\",\n 379: \"RTD\",\n 380: \"CUBEVALUE\",\n 381: \"CUBEMEMBER\",\n 382: \"CUBEMEMBERPROPERTY\",\n 383: \"CUBERANKEDMEMBER\",\n 384: \"HEX2BIN\",\n 385: \"HEX2DEC\",\n 386: \"HEX2OCT\",\n 387: \"DEC2BIN\",\n 388: \"DEC2HEX\",\n 389: \"DEC2OCT\",\n 390: \"OCT2BIN\",\n 391: \"OCT2HEX\",\n 392: \"OCT2DEC\",\n 393: \"BIN2DEC\",\n 394: \"BIN2OCT\",\n 395: \"BIN2HEX\",\n 396: \"IMSUB\",\n 397: \"IMDIV\",\n 398: \"IMPOWER\",\n 399: \"IMABS\",\n 400: \"IMSQRT\",\n 401: \"IMLN\",\n 402: \"IMLOG2\",\n 403: \"IMLOG10\",\n 404: \"IMSIN\",\n 405: \"IMCOS\",\n 406: \"IMEXP\",\n 407: \"IMARGUMENT\",\n 408: \"IMCONJUGATE\",\n 409: \"IMAGINARY\",\n 410: \"IMREAL\",\n 411: \"COMPLEX\",\n 412: \"IMSUM\",\n 413: \"IMPRODUCT\",\n 414: \"SERIESSUM\",\n 415: \"FACTDOUBLE\",\n 416: \"SQRTPI\",\n 417: \"QUOTIENT\",\n 418: \"DELTA\",\n 419: \"GESTEP\",\n 420: \"ISEVEN\",\n 421: \"ISODD\",\n 422: \"MROUND\",\n 423: \"ERF\",\n 424: \"ERFC\",\n 425: \"BESSELJ\",\n 426: \"BESSELK\",\n 427: \"BESSELY\",\n 428: \"BESSELI\",\n 429: \"XIRR\",\n 430: \"XNPV\",\n 431: \"PRICEMAT\",\n 432: \"YIELDMAT\",\n 433: \"INTRATE\",\n 434: \"RECEIVED\",\n 435: \"DISC\",\n 436: \"PRICEDISC\",\n 437: \"YIELDDISC\",\n 438: \"TBILLEQ\",\n 439: \"TBILLPRICE\",\n 440: \"TBILLYIELD\",\n 441: \"PRICE\",\n 442: \"YIELD\",\n 443: \"DOLLARDE\",\n 444: \"DOLLARFR\",\n 445: \"NOMINAL\",\n 446: \"EFFECT\",\n 447: \"CUMPRINC\",\n 448: \"CUMIPMT\",\n 449: \"EDATE\",\n 450: \"EOMONTH\",\n 451: \"YEARFRAC\",\n 452: \"COUPDAYBS\",\n 453: \"COUPDAYS\",\n 454: \"COUPDAYSNC\",\n 455: \"COUPNCD\",\n 456: \"COUPNUM\",\n 457: \"COUPPCD\",\n 458: \"DURATION\",\n 459: \"MDURATION\",\n 460: \"ODDLPRICE\",\n 461: \"ODDLYIELD\",\n 462: \"ODDFPRICE\",\n 463: \"ODDFYIELD\",\n 464: \"RANDBETWEEN\",\n 465: \"WEEKNUM\",\n 466: \"AMORDEGRC\",\n 467: \"AMORLINC\",\n 468: \"CONVERT\",\n 724: \"SHEETJS\",\n 469: \"ACCRINT\",\n 470: \"ACCRINTM\",\n 471: \"WORKDAY\",\n 472: \"NETWORKDAYS\",\n 473: \"GCD\",\n 474: \"MULTINOMIAL\",\n 475: \"LCM\",\n 476: \"FVSCHEDULE\",\n 477: \"CUBEKPIMEMBER\",\n 478: \"CUBESET\",\n 479: \"CUBESETCOUNT\",\n 480: \"IFERROR\",\n 481: \"COUNTIFS\",\n 482: \"SUMIFS\",\n 483: \"AVERAGEIF\",\n 484: \"AVERAGEIFS\"\n};\nvar FtabArgc = {\n 2: 1,\n 3: 1,\n 10: 0,\n 15: 1,\n 16: 1,\n 17: 1,\n 18: 1,\n 19: 0,\n 20: 1,\n 21: 1,\n 22: 1,\n 23: 1,\n 24: 1,\n 25: 1,\n 26: 1,\n 27: 2,\n 30: 2,\n 31: 3,\n 32: 1,\n 33: 1,\n 34: 0,\n 35: 0,\n 38: 1,\n 39: 2,\n 40: 3,\n 41: 3,\n 42: 3,\n 43: 3,\n 44: 3,\n 45: 3,\n 47: 3,\n 48: 2,\n 53: 1,\n 61: 3,\n 63: 0,\n 65: 3,\n 66: 3,\n 67: 1,\n 68: 1,\n 69: 1,\n 70: 1,\n 71: 1,\n 72: 1,\n 73: 1,\n 74: 0,\n 75: 1,\n 76: 1,\n 77: 1,\n 79: 2,\n 80: 2,\n 83: 1,\n 85: 0,\n 86: 1,\n 89: 0,\n 90: 1,\n 94: 0,\n 95: 0,\n 97: 2,\n 98: 1,\n 99: 1,\n 101: 3,\n 102: 3,\n 105: 1,\n 106: 1,\n 108: 2,\n 111: 1,\n 112: 1,\n 113: 1,\n 114: 1,\n 117: 2,\n 118: 1,\n 119: 4,\n 121: 1,\n 126: 1,\n 127: 1,\n 128: 1,\n 129: 1,\n 130: 1,\n 131: 1,\n 133: 1,\n 134: 1,\n 135: 1,\n 136: 2,\n 137: 2,\n 138: 2,\n 140: 1,\n 141: 1,\n 142: 3,\n 143: 4,\n 144: 4,\n 161: 1,\n 162: 1,\n 163: 1,\n 164: 1,\n 165: 2,\n 172: 1,\n 175: 2,\n 176: 2,\n 177: 3,\n 178: 2,\n 179: 1,\n 184: 1,\n 186: 1,\n 189: 3,\n 190: 1,\n 195: 3,\n 196: 3,\n 197: 1,\n 198: 1,\n 199: 3,\n 201: 1,\n 207: 4,\n 210: 3,\n 211: 1,\n 212: 2,\n 213: 2,\n 214: 1,\n 215: 1,\n 225: 0,\n 229: 1,\n 230: 1,\n 231: 1,\n 232: 1,\n 233: 1,\n 234: 1,\n 235: 3,\n 244: 1,\n 247: 4,\n 252: 2,\n 257: 1,\n 261: 1,\n 271: 1,\n 273: 4,\n 274: 2,\n 275: 2,\n 276: 2,\n 277: 3,\n 278: 3,\n 279: 1,\n 280: 3,\n 281: 3,\n 282: 3,\n 283: 1,\n 284: 1,\n 285: 2,\n 286: 4,\n 287: 3,\n 288: 2,\n 289: 4,\n 290: 3,\n 291: 3,\n 292: 3,\n 293: 4,\n 294: 1,\n 295: 3,\n 296: 1,\n 297: 3,\n 298: 1,\n 299: 2,\n 300: 3,\n 301: 3,\n 302: 4,\n 303: 2,\n 304: 2,\n 305: 2,\n 306: 2,\n 307: 2,\n 308: 2,\n 309: 3,\n 310: 2,\n 311: 2,\n 312: 2,\n 313: 2,\n 314: 2,\n 315: 2,\n 316: 4,\n 325: 2,\n 326: 2,\n 327: 2,\n 328: 2,\n 331: 2,\n 332: 2,\n 337: 2,\n 342: 1,\n 343: 1,\n 346: 2,\n 347: 1,\n 350: 4,\n 351: 3,\n 352: 1,\n 353: 2,\n 360: 1,\n 368: 1,\n 369: 1,\n 370: 1,\n 371: 1,\n 372: 1,\n 373: 1,\n 374: 1,\n 375: 1,\n 376: 1,\n 377: 1,\n 378: 1,\n 382: 3,\n 385: 1,\n 392: 1,\n 393: 1,\n 396: 2,\n 397: 2,\n 398: 2,\n 399: 1,\n 400: 1,\n 401: 1,\n 402: 1,\n 403: 1,\n 404: 1,\n 405: 1,\n 406: 1,\n 407: 1,\n 408: 1,\n 409: 1,\n 410: 1,\n 414: 4,\n 415: 1,\n 416: 1,\n 417: 2,\n 420: 1,\n 421: 1,\n 422: 2,\n 424: 1,\n 425: 2,\n 426: 2,\n 427: 2,\n 428: 2,\n 430: 3,\n 438: 3,\n 439: 3,\n 440: 3,\n 443: 2,\n 444: 2,\n 445: 2,\n 446: 2,\n 447: 6,\n 448: 6,\n 449: 2,\n 450: 2,\n 464: 2,\n 468: 3,\n 476: 2,\n 479: 1,\n 480: 2,\n 65535: 0\n};\n/* Part 3 TODO: actually parse formulae */\nfunction ods_to_csf_formula(f/*:string*/)/*:string*/ {\n\tif(f.slice(0,3) == \"of:\") f = f.slice(3);\n\t/* 5.2 Basic Expressions */\n\tif(f.charCodeAt(0) == 61) {\n\t\tf = f.slice(1);\n\t\tif(f.charCodeAt(0) == 61) f = f.slice(1);\n\t}\n\tf = f.replace(/COM\\.MICROSOFT\\./g, \"\");\n\t/* Part 3 Section 5.8 References */\n\tf = f.replace(/\\[((?:\\.[A-Z]+[0-9]+)(?::\\.[A-Z]+[0-9]+)?)\\]/g, function($$, $1) { return $1.replace(/\\./g,\"\"); });\n\tf = f.replace(/\\$'([^']|'')+'/g, function($$) { return $$.slice(1); });\n\tf = f.replace(/\\$([^\\]\\. #$]+)/g, function($$, $1) { return ($1).match(/^([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])?(10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})?$/) ? $$ : $1; });\n\t/* TODO: something other than this */\n\tf = f.replace(/\\[.(#[A-Z]*[?!])\\]/g, \"$1\");\n\treturn f.replace(/[;~]/g,\",\").replace(/\\|/g,\";\");\n}\n\nfunction csf_to_ods_formula(f/*:string*/)/*:string*/ {\n\tvar o = \"of:=\" + f.replace(crefregex, \"$1[.$2$3$4$5]\").replace(/\\]:\\[/g,\":\");\n\t/* TODO: something other than this */\n\treturn o.replace(/;/g, \"|\").replace(/,/g,\";\");\n}\n\nfunction ods_to_csf_3D(r/*:string*/)/*:[string, string]*/ {\n\tr = r.replace(/\\$'([^']|'')+'/g, function($$) { return $$.slice(1); });\n\tr = r.replace(/\\$([^\\]\\. #$]+)/g, function($$, $1) { return ($1).match(/^([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])?(10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})?$/) ? $$ : $1; });\n\tvar a = r.split(\":\");\n\tvar s = a[0].split(\".\")[0];\n\treturn [s, a[0].split(\".\")[1] + (a.length > 1 ? (\":\" + (a[1].split(\".\")[1] || a[1].split(\".\")[0])) : \"\")];\n}\n\nfunction csf_to_ods_3D(r/*:string*/)/*:string*/ {\n\treturn r.replace(/!/,\".\").replace(/:/, \":.\");\n}\n\nvar strs = {}; // shared strings\nvar _ssfopts = {}; // spreadsheet formatting options\n\n\n/*global Map */\nvar browser_has_Map = typeof Map !== 'undefined';\n\nfunction get_sst_id(sst/*:SST*/, str/*:string*/, rev)/*:number*/ {\n\tvar i = 0, len = sst.length;\n\tif(rev) {\n\t\tif(browser_has_Map ? rev.has(str) : Object.prototype.hasOwnProperty.call(rev, str)) {\n\t\t\tvar revarr = browser_has_Map ? rev.get(str) : rev[str];\n\t\t\tfor(; i < revarr.length; ++i) {\n\t\t\t\tif(sst[revarr[i]].t === str) { sst.Count ++; return revarr[i]; }\n\t\t\t}\n\t\t}\n\t} else for(; i < len; ++i) {\n\t\tif(sst[i].t === str) { sst.Count ++; return i; }\n\t}\n\tsst[len] = ({t:str}/*:any*/); sst.Count ++; sst.Unique ++;\n\tif(rev) {\n\t\tif(browser_has_Map) {\n\t\t\tif(!rev.has(str)) rev.set(str, []);\n\t\t\trev.get(str).push(len);\n\t\t} else {\n\t\t\tif(!Object.prototype.hasOwnProperty.call(rev, str)) rev[str] = [];\n\t\t\trev[str].push(len);\n\t\t}\n\t}\n\treturn len;\n}\n\nfunction col_obj_w(C/*:number*/, col) {\n\tvar p = ({min:C+1,max:C+1}/*:any*/);\n\t/* wch (chars), wpx (pixels) */\n\tvar wch = -1;\n\tif(col.MDW) MDW = col.MDW;\n\tif(col.width != null) p.customWidth = 1;\n\telse if(col.wpx != null) wch = px2char(col.wpx);\n\telse if(col.wch != null) wch = col.wch;\n\tif(wch > -1) { p.width = char2width(wch); p.customWidth = 1; }\n\telse if(col.width != null) p.width = col.width;\n\tif(col.hidden) p.hidden = true;\n\tif(col.level != null) { p.outlineLevel = p.level = col.level; }\n\treturn p;\n}\n\nfunction default_margins(margins/*:Margins*/, mode/*:?string*/) {\n\tif(!margins) return;\n\tvar defs = [0.7, 0.7, 0.75, 0.75, 0.3, 0.3];\n\tif(mode == 'xlml') defs = [1, 1, 1, 1, 0.5, 0.5];\n\tif(margins.left == null) margins.left = defs[0];\n\tif(margins.right == null) margins.right = defs[1];\n\tif(margins.top == null) margins.top = defs[2];\n\tif(margins.bottom == null) margins.bottom = defs[3];\n\tif(margins.header == null) margins.header = defs[4];\n\tif(margins.footer == null) margins.footer = defs[5];\n}\n\nfunction get_cell_style(styles/*:Array*/, cell/*:Cell*/, opts) {\n\tvar z = opts.revssf[cell.z != null ? cell.z : \"General\"];\n\tvar i = 0x3c, len = styles.length;\n\tif(z == null && opts.ssf) {\n\t\tfor(; i < 0x188; ++i) if(opts.ssf[i] == null) {\n\t\t\tSSF__load(cell.z, i);\n\t\t\t// $FlowIgnore\n\t\t\topts.ssf[i] = cell.z;\n\t\t\topts.revssf[cell.z] = z = i;\n\t\t\tbreak;\n\t\t}\n\t}\n\tfor(i = 0; i != len; ++i) if(styles[i].numFmtId === z) return i;\n\tstyles[len] = {\n\t\tnumFmtId:z,\n\t\tfontId:0,\n\t\tfillId:0,\n\t\tborderId:0,\n\t\txfId:0,\n\t\tapplyNumberFormat:1\n\t};\n\treturn len;\n}\n\nfunction safe_format(p/*:Cell*/, fmtid/*:number*/, fillid/*:?number*/, opts, themes, styles, date1904) {\n\ttry {\n\t\tif(opts.cellNF) p.z = table_fmt[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(p.t === 'z' && !opts.cellStyles) return;\n\tif(p.t === 'd' && typeof p.v === 'string') p.v = parseDate(p.v);\n\tif((!opts || opts.cellText !== false) && p.t !== 'z') try {\n\t\tif(table_fmt[fmtid] == null) SSF__load(SSFImplicit[fmtid] || \"General\", fmtid);\n\t\tif(p.t === 'e') p.w = p.w || BErr[p.v];\n\t\telse if(fmtid === 0) {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = p.v.toString(10);\n\t\t\t\telse p.w = SSF_general_num(p.v);\n\t\t\t}\n\t\t\telse if(p.t === 'd') {\n\t\t\t\tvar dd = datenum(p.v, !!date1904);\n\t\t\t\tif((dd|0) === dd) p.w = dd.toString(10);\n\t\t\t\telse p.w = SSF_general_num(dd);\n\t\t\t}\n\t\t\telse if(p.v === undefined) return \"\";\n\t\t\telse p.w = SSF_general(p.v,_ssfopts);\n\t\t}\n\t\telse if(p.t === 'd') p.w = SSF_format(fmtid,datenum(p.v, !!date1904),_ssfopts);\n\t\telse p.w = SSF_format(fmtid,p.v,_ssfopts);\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts.cellStyles) return;\n\tif(fillid != null) try {\n\t\tp.s = styles.Fills[fillid];\n\t\tif (p.s.fgColor && p.s.fgColor.theme && !p.s.fgColor.rgb) {\n\t\t\tp.s.fgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.fgColor.theme].rgb, p.s.fgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.fgColor.raw_rgb = themes.themeElements.clrScheme[p.s.fgColor.theme].rgb;\n\t\t}\n\t\tif (p.s.bgColor && p.s.bgColor.theme) {\n\t\t\tp.s.bgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.bgColor.theme].rgb, p.s.bgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.bgColor.raw_rgb = themes.themeElements.clrScheme[p.s.bgColor.theme].rgb;\n\t\t}\n\t} catch(e) { if(opts.WTF && styles.Fills) throw e; }\n}\n\nfunction check_ws(ws/*:Worksheet*/, sname/*:string*/, i/*:number*/) {\n\tif(ws && ws['!ref']) {\n\t\tvar range = safe_decode_range(ws['!ref']);\n\t\tif(range.e.c < range.s.c || range.e.r < range.s.r) throw new Error(\"Bad range (\" + i + \"): \" + ws['!ref']);\n\t}\n}\nfunction parse_ws_xml_dim(ws/*:Worksheet*/, s/*:string*/) {\n\tvar d = safe_decode_range(s);\n\tif(d.s.r<=d.e.r && d.s.c<=d.e.c && d.s.r>=0 && d.s.c>=0) ws[\"!ref\"] = encode_range(d);\n}\nvar mergecregex = /<(?:\\w:)?mergeCell ref=\"[A-Z0-9:]+\"\\s*[\\/]?>/g;\nvar sheetdataregex = /<(?:\\w+:)?sheetData[^>]*>([\\s\\S]*)<\\/(?:\\w+:)?sheetData>/;\nvar hlinkregex = /<(?:\\w:)?hyperlink [^>]*>/mg;\nvar dimregex = /\"(\\w*:\\w*)\"/;\nvar colregex = /<(?:\\w:)?col\\b[^>]*[\\/]?>/g;\nvar afregex = /<(?:\\w:)?autoFilter[^>]*([\\/]|>([\\s\\S]*)<\\/(?:\\w:)?autoFilter)>/g;\nvar marginregex= /<(?:\\w:)?pageMargins[^>]*\\/>/g;\nvar sheetprregex = /<(?:\\w:)?sheetPr\\b(?:[^>a-z][^>]*)?\\/>/;\nvar sheetprregex2= /<(?:\\w:)?sheetPr[^>]*(?:[\\/]|>([\\s\\S]*)<\\/(?:\\w:)?sheetPr)>/;\nvar svsregex = /<(?:\\w:)?sheetViews[^>]*(?:[\\/]|>([\\s\\S]*)<\\/(?:\\w:)?sheetViews)>/;\n\n/* 18.3 Worksheets */\nfunction parse_ws_xml(data/*:?string*/, opts, idx/*:number*/, rels, wb/*:WBWBProps*/, themes, styles)/*:Worksheet*/ {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\n\t/* 18.3.1.99 worksheet CT_Worksheet */\n\tvar s = ({}/*:any*/); if(opts.dense) s[\"!data\"] = [];\n\tvar refguess/*:Range*/ = ({s: {r:2000000, c:2000000}, e: {r:0, c:0} }/*:any*/);\n\n\tvar data1 = \"\", data2 = \"\";\n\tvar mtch/*:?any*/ = data.match(sheetdataregex);\n\tif(mtch) {\n\t\tdata1 = data.slice(0, mtch.index);\n\t\tdata2 = data.slice(mtch.index + mtch[0].length);\n\t} else data1 = data2 = data;\n\n\t/* 18.3.1.82 sheetPr CT_SheetPr */\n\tvar sheetPr = data1.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\telse if((sheetPr = data1.match(sheetprregex2))) parse_ws_xml_sheetpr2(sheetPr[0], sheetPr[1]||\"\", s, wb, idx, styles, themes);\n\n\t/* 18.3.1.35 dimension CT_SheetDimension */\n\tvar ridx = (data1.match(/<(?:\\w*:)?dimension/)||{index:-1}).index;\n\tif(ridx > 0) {\n\t\tvar ref = data1.slice(ridx,ridx+50).match(dimregex);\n\t\tif(ref && !(opts && opts.nodim)) parse_ws_xml_dim(s, ref[1]);\n\t}\n\n\t/* 18.3.1.88 sheetViews CT_SheetViews */\n\tvar svs = data1.match(svsregex);\n\tif(svs && svs[1]) parse_ws_xml_sheetviews(svs[1], wb);\n\n\t/* 18.3.1.17 cols CT_Cols */\n\tvar columns/*:Array*/ = [];\n\tif(opts.cellStyles) {\n\t\t/* 18.3.1.13 col CT_Col */\n\t\tvar cols = data1.match(colregex);\n\t\tif(cols) parse_ws_xml_cols(columns, cols);\n\t}\n\n\t/* 18.3.1.80 sheetData CT_SheetData ? */\n\tif(mtch) parse_ws_xml_data(mtch[1], s, opts, refguess, themes, styles, wb);\n\n\t/* 18.3.1.2 autoFilter CT_AutoFilter */\n\tvar afilter = data2.match(afregex);\n\tif(afilter) s['!autofilter'] = parse_ws_xml_autofilter(afilter[0]);\n\n\t/* 18.3.1.55 mergeCells CT_MergeCells */\n\tvar merges/*:Array*/ = [];\n\tvar _merge = data2.match(mergecregex);\n\tif(_merge) for(ridx = 0; ridx != _merge.length; ++ridx)\n\t\tmerges[ridx] = safe_decode_range(_merge[ridx].slice(_merge[ridx].indexOf(\"\\\"\")+1));\n\n\t/* 18.3.1.48 hyperlinks CT_Hyperlinks */\n\tvar hlink = data2.match(hlinkregex);\n\tif(hlink) parse_ws_xml_hlinks(s, hlink, rels);\n\n\t/* 18.3.1.62 pageMargins CT_PageMargins */\n\tvar margins = data2.match(marginregex);\n\tif(margins) s['!margins'] = parse_ws_xml_margins(parsexmltag(margins[0]));\n\n\t/* legacyDrawing */\n\tvar m;\n\tif((m = data2.match(/legacyDrawing r:id=\"(.*?)\"/))) s['!legrel'] = m[1];\n\n\tif(opts && opts.nodim) refguess.s.c = refguess.s.r = 0;\n\tif(!s[\"!ref\"] && refguess.e.c >= refguess.s.c && refguess.e.r >= refguess.s.r) s[\"!ref\"] = encode_range(refguess);\n\tif(opts.sheetRows > 0 && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(columns.length > 0) s[\"!cols\"] = columns;\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\tif(rels['!id'][s['!legrel']]) s['!legdrawel'] = rels['!id'][s['!legrel']];\n\treturn s;\n}\n\nfunction write_ws_xml_merges(merges/*:Array*/)/*:string*/ {\n\tif(merges.length === 0) return \"\";\n\tvar o = '';\n\tfor(var i = 0; i != merges.length; ++i) o += '';\n\treturn o + '';\n}\n\n/* 18.3.1.82-3 sheetPr CT_ChartsheetPr / CT_SheetPr */\nfunction parse_ws_xml_sheetpr(sheetPr/*:string*/, s, wb/*:WBWBProps*/, idx/*:number*/) {\n\tvar data = parsexmltag(sheetPr);\n\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\tif(data.codeName) wb.Sheets[idx].CodeName = unescapexml(utf8read(data.codeName));\n}\nfunction parse_ws_xml_sheetpr2(sheetPr/*:string*/, body/*:string*/, s, wb/*:WBWBProps*/, idx/*:number*/) {\n\tparse_ws_xml_sheetpr(sheetPr.slice(0, sheetPr.indexOf(\">\")), s, wb, idx);\n}\nfunction write_ws_xml_sheetpr(ws, wb, idx, opts, o) {\n\tvar needed = false;\n\tvar props = {}, payload = null;\n\tif(opts.bookType !== 'xlsx' && wb.vbaraw) {\n\t\tvar cname = wb.SheetNames[idx];\n\t\ttry { if(wb.Workbook) cname = wb.Workbook.Sheets[idx].CodeName || cname; } catch(e) {}\n\t\tneeded = true;\n\t\tprops.codeName = utf8write(escapexml(cname));\n\t}\n\n\tif(ws && ws[\"!outline\"]) {\n\t\tvar outlineprops = {summaryBelow:1, summaryRight:1};\n\t\tif(ws[\"!outline\"].above) outlineprops.summaryBelow = 0;\n\t\tif(ws[\"!outline\"].left) outlineprops.summaryRight = 0;\n\t\tpayload = (payload||\"\") + writextag('outlinePr', null, outlineprops);\n\t}\n\n\tif(!needed && !payload) return;\n\to[o.length] = (writextag('sheetPr', payload, props));\n}\n\n/* 18.3.1.85 sheetProtection CT_SheetProtection */\nvar sheetprot_deffalse = [\"objects\", \"scenarios\", \"selectLockedCells\", \"selectUnlockedCells\"];\nvar sheetprot_deftrue = [\n\t\"formatColumns\", \"formatRows\", \"formatCells\",\n\t\"insertColumns\", \"insertRows\", \"insertHyperlinks\",\n\t\"deleteColumns\", \"deleteRows\",\n\t\"sort\", \"autoFilter\", \"pivotTables\"\n];\nfunction write_ws_xml_protection(sp)/*:string*/ {\n\t// algorithmName, hashValue, saltValue, spinCount\n\tvar o = ({sheet:1}/*:any*/);\n\tsheetprot_deffalse.forEach(function(n) { if(sp[n] != null && sp[n]) o[n] = \"1\"; });\n\tsheetprot_deftrue.forEach(function(n) { if(sp[n] != null && !sp[n]) o[n] = \"0\"; });\n\t/* TODO: algorithm */\n\tif(sp.password) o.password = crypto_CreatePasswordVerifier_Method1(sp.password).toString(16).toUpperCase();\n\treturn writextag('sheetProtection', null, o);\n}\n\nfunction parse_ws_xml_hlinks(s, data/*:Array*/, rels) {\n\tvar dense = s[\"!data\"] != null;\n\tfor(var i = 0; i != data.length; ++i) {\n\t\tvar val = parsexmltag(utf8read(data[i]), true);\n\t\tif(!val.ref) return;\n\t\tvar rel = ((rels || {})['!id']||[])[val.id];\n\t\tif(rel) {\n\t\t\tval.Target = rel.Target;\n\t\t\tif(val.location) val.Target += \"#\"+unescapexml(val.location);\n\t\t} else {\n\t\t\tval.Target = \"#\" + unescapexml(val.location);\n\t\t\trel = {Target: val.Target, TargetMode: 'Internal'};\n\t\t}\n\t\tval.Rel = rel;\n\t\tif(val.tooltip) { val.Tooltip = val.tooltip; delete val.tooltip; }\n\t\tvar rng = safe_decode_range(val.ref);\n\t\tfor(var R=rng.s.r;R<=rng.e.r;++R) for(var C=rng.s.c;C<=rng.e.c;++C) {\n\t\t\tvar addr = encode_col(C) + encode_row(R);\n\t\t\tif(dense) {\n\t\t\t\tif(!s[\"!data\"][R]) s[\"!data\"][R] = [];\n\t\t\t\tif(!s[\"!data\"][R][C]) s[\"!data\"][R][C] = {t:\"z\",v:undefined};\n\t\t\t\ts[\"!data\"][R][C].l = val;\n\t\t\t} else {\n\t\t\t\tif(!s[addr]) s[addr] = {t:\"z\",v:undefined};\n\t\t\t\ts[addr].l = val;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction parse_ws_xml_margins(margin) {\n\tvar o = {};\n\t[\"left\", \"right\", \"top\", \"bottom\", \"header\", \"footer\"].forEach(function(k) {\n\t\tif(margin[k]) o[k] = parseFloat(margin[k]);\n\t});\n\treturn o;\n}\nfunction write_ws_xml_margins(margin)/*:string*/ {\n\tdefault_margins(margin);\n\treturn writextag('pageMargins', null, margin);\n}\n\nfunction parse_ws_xml_cols(columns, cols) {\n\tvar seencol = false;\n\tfor(var coli = 0; coli != cols.length; ++coli) {\n\t\tvar coll = parsexmltag(cols[coli], true);\n\t\tif(coll.hidden) coll.hidden = parsexmlbool(coll.hidden);\n\t\tvar colm=parseInt(coll.min, 10)-1, colM=parseInt(coll.max,10)-1;\n\t\tif(coll.outlineLevel) coll.level = (+coll.outlineLevel || 0);\n\t\tdelete coll.min; delete coll.max; coll.width = +coll.width;\n\t\tif(!seencol && coll.width) { seencol = true; find_mdw_colw(coll.width); }\n\t\tprocess_col(coll);\n\t\twhile(colm <= colM) columns[colm++] = dup(coll);\n\t}\n}\nfunction write_ws_xml_cols(ws, cols)/*:string*/ {\n\tvar o = [\"\"], col;\n\tfor(var i = 0; i != cols.length; ++i) {\n\t\tif(!(col = cols[i])) continue;\n\t\to[o.length] = (writextag('col', null, col_obj_w(i, col)));\n\t}\n\to[o.length] = \"\";\n\treturn o.join(\"\");\n}\n\nfunction parse_ws_xml_autofilter(data/*:string*/) {\n\tvar o = { ref: (data.match(/ref=\"([^\"]*)\"/)||[])[1]};\n\treturn o;\n}\nfunction write_ws_xml_autofilter(data, ws, wb, idx)/*:string*/ {\n\tvar ref = typeof data.ref == \"string\" ? data.ref : encode_range(data.ref);\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]}/*:any*/);\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names/*: Array */ = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = formula_quote_sheet_name(wb.SheetNames[idx]) + \"!\" + fix_range(ref); break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\treturn writextag(\"autoFilter\", null, {ref:ref});\n}\n\n/* 18.3.1.88 sheetViews CT_SheetViews */\n/* 18.3.1.87 sheetView CT_SheetView */\nvar sviewregex = /<(?:\\w:)?sheetView(?:[^>a-z][^>]*)?\\/?>/g;\nfunction parse_ws_xml_sheetviews(data, wb/*:WBWBProps*/) {\n\tif(!wb.Views) wb.Views = [{}];\n\t(data.match(sviewregex)||[]).forEach(function(r/*:string*/, i/*:number*/) {\n\t\tvar tag = parsexmltag(r);\n\t\t// $FlowIgnore\n\t\tif(!wb.Views[i]) wb.Views[i] = {};\n\t\t// $FlowIgnore\n\t\tif(+tag.zoomScale) wb.Views[i].zoom = +tag.zoomScale;\n\t\t// $FlowIgnore\n\t\tif(tag.rightToLeft && parsexmlbool(tag.rightToLeft)) wb.Views[i].RTL = true;\n\t});\n}\nfunction write_ws_xml_sheetviews(ws, opts, idx, wb)/*:string*/ {\n\tvar sview = ({workbookViewId:\"0\"}/*:any*/);\n\t// $FlowIgnore\n\tif((((wb||{}).Workbook||{}).Views||[])[0]) sview.rightToLeft = wb.Workbook.Views[0].RTL ? \"1\" : \"0\";\n\treturn writextag(\"sheetViews\", writextag(\"sheetView\", null, sview), {});\n}\n\nfunction write_ws_xml_cell(cell/*:Cell*/, ref, ws, opts, idx, wb, date1904)/*:string*/ {\n\tif(cell.c) ws['!comments'].push([ref, cell.c]);\n\tif((cell.v === undefined || cell.t === \"z\" && !(opts||{}).sheetStubs) && typeof cell.f !== \"string\" && typeof cell.z == \"undefined\") return \"\";\n\tvar vv = \"\";\n\tvar oldt = cell.t, oldv = cell.v;\n\tif(cell.t !== \"z\") switch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'n':\n\t\t\tif(isNaN(cell.v)) { cell.t = \"e\"; vv = BErr[cell.v = 0x24]; } // #NUM!\n\t\t\telse if(!isFinite(cell.v)) { cell.t = \"e\"; vv = BErr[cell.v = 0x07]; } // #DIV/0!\n\t\t\telse vv = ''+cell.v; break;\n\t\tcase 'e': vv = BErr[cell.v]; break;\n\t\tcase 'd':\n\t\t\tif(opts && opts.cellDates) {\n\t\t\t\tvar _vv = parseDate(cell.v, date1904);\n\t\t\t\tvv = _vv.toISOString();\n\t\t\t\tif(_vv.getUTCFullYear() < 1900) vv = vv.slice(vv.indexOf(\"T\") + 1).replace(\"Z\",\"\");\n\t\t\t} else {\n\t\t\t\tcell = dup(cell);\n\t\t\t\tcell.t = 'n';\n\t\t\t\tvv = ''+(cell.v = datenum(parseDate(cell.v, date1904), date1904));\n\t\t\t}\n\t\t\tif(typeof cell.z === 'undefined') cell.z = table_fmt[14];\n\t\t\tbreak;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar v = (cell.t == \"z\" || cell.v == null)? \"\" : writetag('v', escapexml(vv)), o = ({r:ref}/*:any*/);\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tif(os !== 0) o.s = os;\n\tswitch(cell.t) {\n\t\tcase 'n': break;\n\t\tcase 'd': o.t = \"d\"; break;\n\t\tcase 'b': o.t = \"b\"; break;\n\t\tcase 'e': o.t = \"e\"; break;\n\t\tcase 'z': break;\n\t\tdefault: if(cell.v == null) { delete cell.t; break; }\n\t\t\tif(cell.v.length > 32767) throw new Error(\"Text length must not exceed 32767 characters\");\n\t\t\tif(opts && opts.bookSST) {\n\t\t\t\tv = writetag('v', ''+get_sst_id(opts.Strings, cell.v, opts.revStrings));\n\t\t\t\to.t = \"s\"; break;\n\t\t\t}\n\t\t\telse o.t = \"str\"; break;\n\t}\n\tif(cell.t != oldt) { cell.t = oldt; cell.v = oldv; }\n\tif(typeof cell.f == \"string\" && cell.f) {\n\t\tvar ff = cell.F && cell.F.slice(0, ref.length) == ref ? {t:\"array\", ref:cell.F} : null;\n\t\tv = writextag('f', escapexml(cell.f), ff) + (cell.v != null ? v : \"\");\n\t}\n\tif(cell.l) {\n\t\tcell.l.display = escapexml(vv);\n\t\tws['!links'].push([ref, cell.l]);\n\t}\n\tif(cell.D) o.cm = 1;\n\treturn writextag('c', v, o);\n}\n\nvar parse_ws_xml_data = /*#__PURE__*/(function() {\n\tvar cellregex = /<(?:\\w+:)?c[ \\/>]/, rowregex = /<\\/(?:\\w+:)?row>/;\n\tvar rregex = /r=[\"']([^\"']*)[\"']/, isregex = /<(?:\\w+:)?is>([\\S\\s]*?)<\\/(?:\\w+:)?is>/;\n\tvar refregex = /ref=[\"']([^\"']*)[\"']/;\n\tvar match_v = matchtag(\"v\"), match_f = matchtag(\"f\");\n\nreturn function parse_ws_xml_data(sdata/*:string*/, s, opts, guess/*:Range*/, themes, styles, wb) {\n\tvar ri = 0, x = \"\", cells/*:Array*/ = [], cref/*:?Array*/ = [], idx=0, i=0, cc=0, d=\"\", p/*:any*/;\n\tvar tag, tagr = 0, tagc = 0;\n\tvar sstr, ftag;\n\tvar fmtid = 0, fillid = 0;\n\tvar do_format = Array.isArray(styles.CellXf), cf;\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar sharedf = [];\n\tvar dense = s[\"!data\"] != null;\n\tvar rows/*:Array*/ = [], rowobj = {}, rowrite = false;\n\tvar sheetStubs = !!opts.sheetStubs;\n\tvar date1904 = !!((wb||{}).WBProps||{}).date1904;\n\tfor(var marr = sdata.split(rowregex), mt = 0, marrlen = marr.length; mt != marrlen; ++mt) {\n\t\tx = marr[mt].trim();\n\t\tvar xlen = x.length;\n\t\tif(xlen === 0) continue;\n\n\t\t/* 18.3.1.73 row CT_Row */\n\t\tvar rstarti = 0;\n\t\touta: for(ri = 0; ri < xlen; ++ri) switch(/*x.charCodeAt(ri)*/x[ri]) {\n\t\t\tcase \">\" /*62*/:\n\t\t\t\tif(/*x.charCodeAt(ri-1) != 47*/x[ri-1] != \"/\") { ++ri; break outa; }\n\t\t\t\tif(opts && opts.cellStyles) {\n\t\t\t\t\t// TODO: avoid duplication\n\t\t\t\t\ttag = parsexmltag(x.slice(rstarti,ri), true);\n\t\t\t\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\t\t\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\t\t\t\trowobj = {}; rowrite = false;\n\t\t\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\n\t\t\t\t\tif(tag.hidden && parsexmlbool(tag.hidden)) { rowrite = true; rowobj.hidden = true; }\n\t\t\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\n\t\t\t\t\tif(rowrite) rows[tagr-1] = rowobj;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"<\" /*60*/: rstarti = ri; break;\n\t\t}\n\t\tif(rstarti >= ri) break;\n\t\ttag = parsexmltag(x.slice(rstarti,ri), true);\n\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\tif(!opts.nodim) {\n\t\t\tif(guess.s.r > tagr - 1) guess.s.r = tagr - 1;\n\t\t\tif(guess.e.r < tagr - 1) guess.e.r = tagr - 1;\n\t\t}\n\n\t\tif(opts && opts.cellStyles) {\n\t\t\trowobj = {}; rowrite = false;\n\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\n\t\t\tif(tag.hidden && parsexmlbool(tag.hidden)) { rowrite = true; rowobj.hidden = true; }\n\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\n\t\t\tif(rowrite) rows[tagr-1] = rowobj;\n\t\t}\n\n\t\t/* 18.3.1.4 c CT_Cell */\n\t\tcells = x.slice(ri).split(cellregex);\n\t\tfor(var rslice = 0; rslice != cells.length; ++rslice) if(cells[rslice].trim().charAt(0) != \"<\") break;\n\t\tcells = cells.slice(rslice);\n\t\tfor(ri = 0; ri != cells.length; ++ri) {\n\t\t\tx = cells[ri].trim();\n\t\t\tif(x.length === 0) continue;\n\t\t\tcref = x.match(rregex); idx = ri; i=0; cc=0;\n\t\t\tx = \"\":\"\") + x;\n\t\t\tif(cref != null && cref.length === 2) {\n\t\t\t\tidx = 0; d=cref[1];\n\t\t\t\tfor(i=0; i != d.length; ++i) {\n\t\t\t\t\tif((cc=d.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\t\t\t\tidx = 26*idx + cc;\n\t\t\t\t}\n\t\t\t\t--idx;\n\t\t\t\ttagc = idx;\n\t\t\t} else ++tagc;\n\t\t\tfor(i = 0; i != x.length; ++i) if(x.charCodeAt(i) === 62) break; ++i;\n\t\t\ttag = parsexmltag(x.slice(0,i), true);\n\t\t\tif(!tag.r) tag.r = encode_cell({r:tagr-1, c:tagc});\n\t\t\td = x.slice(i);\n\t\t\tp = ({t:\"\"}/*:any*/);\n\n\t\t\tif((cref=d.match(match_v))!= null && /*::cref != null && */cref[1] !== '') p.v=unescapexml(cref[1]);\n\t\t\tif(opts.cellFormula) {\n\t\t\t\tif((cref=d.match(match_f))!= null /*:: && cref != null*/) {\n\t\t\t\t\tif(cref[1] == \"\") {\n\t\t\t\t\t\tif(/*::cref != null && cref[0] != null && */cref[0].indexOf('t=\"shared\"') > -1) {\n\t\t\t\t\t\t\t// TODO: parse formula\n\t\t\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\t\t\tif(sharedf[ftag.si]) p.f = shift_formula_xlsx(sharedf[ftag.si][1], sharedf[ftag.si][2]/*[0].ref*/, tag.r);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t/* TODO: match against XLSXFutureFunctions */\n\t\t\t\t\t\tp.f=unescapexml(utf8read(cref[1]), true);\n\t\t\t\t\t\tif(!opts.xlfn) p.f = _xlfn(p.f);\n\t\t\t\t\t\tif(/*::cref != null && cref[0] != null && */cref[0].indexOf('t=\"array\"') > -1) {\n\t\t\t\t\t\t\tp.F = (d.match(refregex)||[])[1];\n\t\t\t\t\t\t\tif(p.F.indexOf(\":\") > -1) arrayf.push([safe_decode_range(p.F), p.F]);\n\t\t\t\t\t\t} else if(/*::cref != null && cref[0] != null && */cref[0].indexOf('t=\"shared\"') > -1) {\n\t\t\t\t\t\t\t// TODO: parse formula\n\t\t\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\t\t\tvar ___f = unescapexml(utf8read(cref[1]));\n\t\t\t\t\t\t\tif(!opts.xlfn) ___f = _xlfn(___f);\n\t\t\t\t\t\t\tsharedf[parseInt(ftag.si, 10)] = [ftag, ___f, tag.r];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if((cref=d.match(/]*\\/>/))) {\n\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\tif(sharedf[ftag.si]) p.f = shift_formula_xlsx(sharedf[ftag.si][1], sharedf[ftag.si][2]/*[0].ref*/, tag.r);\n\t\t\t\t}\n\t\t\t\t/* TODO: factor out contains logic */\n\t\t\t\tvar _tag = decode_cell(tag.r);\n\t\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\tif(_tag.r >= arrayf[i][0].s.r && _tag.r <= arrayf[i][0].e.r)\n\t\t\t\t\t\tif(_tag.c >= arrayf[i][0].s.c && _tag.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\tp.F = arrayf[i][1];\n\t\t\t}\n\n\t\t\tif(tag.t == null && p.v === undefined) {\n\t\t\t\tif(p.f || p.F) {\n\t\t\t\t\tp.v = 0; p.t = \"n\";\n\t\t\t\t} else if(!sheetStubs) continue;\n\t\t\t\telse p.t = \"z\";\n\t\t\t}\n\t\t\telse p.t = tag.t || \"n\";\n\t\t\tif(guess.s.c > tagc) guess.s.c = tagc;\n\t\t\tif(guess.e.c < tagc) guess.e.c = tagc;\n\t\t\t/* 18.18.11 t ST_CellType */\n\t\t\tswitch(p.t) {\n\t\t\t\tcase 'n':\n\t\t\t\t\tif(p.v == \"\" || p.v == null) {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else p.v = parseFloat(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 's':\n\t\t\t\t\tif(typeof p.v == 'undefined') {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsstr = strs[parseInt(p.v, 10)];\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tp.r = sstr.r;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'str':\n\t\t\t\t\tp.t = \"s\";\n\t\t\t\t\tp.v = (p.v!=null) ? unescapexml(utf8read(p.v), true) : '';\n\t\t\t\t\tif(opts.cellHTML) p.h = escapehtml(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'inlineStr':\n\t\t\t\t\tcref = d.match(isregex);\n\t\t\t\t\tp.t = 's';\n\t\t\t\t\tif(cref != null && (sstr = parse_si(cref[1]))) {\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t} else p.v = \"\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'b': p.v = parsexmlbool(p.v); break;\n\t\t\t\tcase 'd':\n\t\t\t\t\tif(opts.cellDates) p.v = parseDate(p.v, date1904);\n\t\t\t\t\telse { p.v = datenum(parseDate(p.v, date1904), date1904); p.t = 'n'; }\n\t\t\t\t\tbreak;\n\t\t\t\t/* error string in .w, number in .v */\n\t\t\t\tcase 'e':\n\t\t\t\t\tif(!opts || opts.cellText !== false) p.w = p.v;\n\t\t\t\t\tp.v = RBErr[p.v]; break;\n\t\t\t}\n\t\t\t/* formatting */\n\t\t\tfmtid = fillid = 0;\n\t\t\tcf = null;\n\t\t\tif(do_format && tag.s !== undefined) {\n\t\t\t\tcf = styles.CellXf[tag.s];\n\t\t\t\tif(cf != null) {\n\t\t\t\t\tif(cf.numFmtId != null) fmtid = cf.numFmtId;\n\t\t\t\t\tif(opts.cellStyles) {\n\t\t\t\t\t\tif(cf.fillId != null) fillid = cf.fillId;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tsafe_format(p, fmtid, fillid, opts, themes, styles, date1904);\n\t\t\tif(opts.cellDates && do_format && p.t == 'n' && fmt_is_date(table_fmt[fmtid])) { p.v = numdate(p.v + (date1904 ? 1462 : 0)); p.t = typeof p.v == \"number\" ? 'n' : 'd'; }\n\t\t\tif(tag.cm && opts.xlmeta) {\n\t\t\t\tvar cm = (opts.xlmeta.Cell||[])[+tag.cm-1];\n\t\t\t\tif(cm && cm.type == 'XLDAPR') p.D = true;\n\t\t\t}\n\t\t\tvar _r;\n\t\t\tif(opts.nodim) {\n\t\t\t\t_r = decode_cell(tag.r);\n\t\t\t\tif(guess.s.r > _r.r) guess.s.r = _r.r;\n\t\t\t\tif(guess.e.r < _r.r) guess.e.r = _r.r;\n\t\t\t}\n\t\t\tif(dense) {\n\t\t\t\t_r = decode_cell(tag.r);\n\t\t\t\tif(!s[\"!data\"][_r.r]) s[\"!data\"][_r.r] = [];\n\t\t\t\ts[\"!data\"][_r.r][_r.c] = p;\n\t\t\t} else s[tag.r] = p;\n\t\t}\n\t}\n\tif(rows.length > 0) s['!rows'] = rows;\n}; })();\n\nfunction write_ws_xml_data(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*//*::, rels*/)/*:string*/ {\n\tvar o/*:Array*/ = [], r/*:Array*/ = [], range = safe_decode_range(ws['!ref']), cell=\"\", ref, rr = \"\", cols/*:Array*/ = [], R=0, C=0, rows = ws['!rows'];\n\tvar dense = ws[\"!data\"] != null;\n\tvar params = ({r:rr}/*:any*/), row/*:RowInfo*/, height = -1;\n\tvar date1904 = (((wb||{}).Workbook||{}).WBProps||{}).date1904;\n\tfor(C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);\n\tfor(R = range.s.r; R <= range.e.r; ++R) {\n\t\tr = [];\n\t\trr = encode_row(R);\n\t\tfor(C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tref = cols[C] + rr;\n\t\t\tvar _cell = dense ? (ws[\"!data\"][R]||[])[C]: ws[ref];\n\t\t\tif(_cell === undefined) continue;\n\t\t\tif((cell = write_ws_xml_cell(_cell, ref, ws, opts, idx, wb, date1904)) != null) r.push(cell);\n\t\t}\n\t\tif(r.length > 0 || (rows && rows[R])) {\n\t\t\tparams = ({r:rr}/*:any*/);\n\t\t\tif(rows && rows[R]) {\n\t\t\t\trow = rows[R];\n\t\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\t\theight = -1;\n\t\t\t\tif(row.hpx) height = px2pt(row.hpx);\n\t\t\t\telse if(row.hpt) height = row.hpt;\n\t\t\t\tif(height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\t\tif(row.level) { params.outlineLevel = row.level; }\n\t\t\t}\n\t\t\to[o.length] = (writextag('row', r.join(\"\"), params));\n\t\t}\n\t}\n\tif(rows) for(; R < rows.length; ++R) {\n\t\tif(rows && rows[R]) {\n\t\t\tparams = ({r:R+1}/*:any*/);\n\t\t\trow = rows[R];\n\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\theight = -1;\n\t\t\tif (row.hpx) height = px2pt(row.hpx);\n\t\t\telse if (row.hpt) height = row.hpt;\n\t\t\tif (height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\tif (row.level) { params.outlineLevel = row.level; }\n\t\t\to[o.length] = (writextag('row', \"\", params));\n\t\t}\n\t}\n\treturn o.join(\"\");\n}\n\nfunction write_ws_xml(idx/*:number*/, opts, wb/*:Workbook*/, rels)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('worksheet', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t'xmlns:r': XMLNS.r\n\t})];\n\tvar s = wb.SheetNames[idx], sidx = 0, rdata = \"\";\n\tvar ws = wb.Sheets[s];\n\tif(ws == null) ws = {};\n\tvar ref = ws['!ref'] || 'A1';\n\tvar range = safe_decode_range(ref);\n\tif(range.e.c > 0x3FFF || range.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + ref + \" exceeds format limit A1:XFD1048576\");\n\t\trange.e.c = Math.min(range.e.c, 0x3FFF);\n\t\trange.e.r = Math.min(range.e.c, 0xFFFFF);\n\t\tref = encode_range(range);\n\t}\n\tif(!rels) rels = {};\n\tws['!comments'] = [];\n\tvar _drawing = [];\n\n\twrite_ws_xml_sheetpr(ws, wb, idx, opts, o);\n\n\to[o.length] = (writextag('dimension', null, {'ref': ref}));\n\n\to[o.length] = write_ws_xml_sheetviews(ws, opts, idx, wb);\n\n\t/* TODO: store in WB, process styles */\n\tif(opts.sheetFormat) o[o.length] = (writextag('sheetFormatPr', null, {\n\t\tdefaultRowHeight:opts.sheetFormat.defaultRowHeight||'16',\n\t\tbaseColWidth:opts.sheetFormat.baseColWidth||'10',\n\t\toutlineLevelRow:opts.sheetFormat.outlineLevelRow||'7'\n\t}));\n\n\tif(ws['!cols'] != null && ws['!cols'].length > 0) o[o.length] = (write_ws_xml_cols(ws, ws['!cols']));\n\n\to[sidx = o.length] = '';\n\tws['!links'] = [];\n\tif(ws['!ref'] != null) {\n\t\trdata = write_ws_xml_data(ws, opts, idx, wb, rels);\n\t\tif(rdata.length > 0) o[o.length] = (rdata);\n\t}\n\tif(o.length>sidx+1) { o[o.length] = (''); o[sidx]=o[sidx].replace(\"/>\",\">\"); }\n\n\t/* sheetCalcPr */\n\n\tif(ws['!protect']) o[o.length] = write_ws_xml_protection(ws['!protect']);\n\n\t/* protectedRanges */\n\t/* scenarios */\n\n\tif(ws['!autofilter'] != null) o[o.length] = write_ws_xml_autofilter(ws['!autofilter'], ws, wb, idx);\n\n\t/* sortState */\n\t/* dataConsolidate */\n\t/* customSheetViews */\n\n\tif(ws['!merges'] != null && ws['!merges'].length > 0) o[o.length] = (write_ws_xml_merges(ws['!merges']));\n\n\t/* phoneticPr */\n\t/* conditionalFormatting */\n\t/* dataValidations */\n\n\tvar relc = -1, rel, rId = -1;\n\tif(/*::(*/ws['!links']/*::||[])*/.length > 0) {\n\t\to[o.length] = \"\";\n\t\t/*::(*/ws['!links']/*::||[])*/.forEach(function(l) {\n\t\t\tif(!l[1].Target) return;\n\t\t\trel = ({\"ref\":l[0]}/*:any*/);\n\t\t\tif(l[1].Target.charAt(0) != \"#\") {\n\t\t\t\trId = add_rels(rels, -1, escapexml(l[1].Target).replace(/#.*$/, \"\"), RELS.HLINK);\n\t\t\t\trel[\"r:id\"] = \"rId\"+rId;\n\t\t\t}\n\t\t\tif((relc = l[1].Target.indexOf(\"#\")) > -1) rel.location = escapexml(l[1].Target.slice(relc+1));\n\t\t\tif(l[1].Tooltip) rel.tooltip = escapexml(l[1].Tooltip);\n\t\t\trel.display = l[1].display;\n\t\t\to[o.length] = writextag(\"hyperlink\",null,rel);\n\t\t});\n\t\to[o.length] = \"\";\n\t}\n\tdelete ws['!links'];\n\n\t/* printOptions */\n\n\tif(ws['!margins'] != null) o[o.length] = write_ws_xml_margins(ws['!margins']);\n\n\t/* pageSetup */\n\t/* headerFooter */\n\t/* rowBreaks */\n\t/* colBreaks */\n\t/* customProperties */\n\t/* cellWatches */\n\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) o[o.length] = writetag(\"ignoredErrors\", writextag(\"ignoredError\", null, {numberStoredAsText:1, sqref:ref}));\n\n\t/* smartTags */\n\n\tif(_drawing.length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\t\to[o.length] = writextag(\"drawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!drawing'] = _drawing;\n\t}\n\n\tif(ws['!comments'].length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\to[o.length] = writextag(\"legacyDrawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!legacy'] = rId;\n\t}\n\n\t/* legacyDrawingHF */\n\t/* picture */\n\t/* oleObjects */\n\t/* controls */\n\t/* webPublishItems */\n\t/* tableParts */\n\t/* extLst */\n\n\tif(o.length>1) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.726 BrtRowHdr */\nfunction parse_BrtRowHdr(data, length) {\n\tvar z = ({}/*:any*/);\n\tvar tgt = data.l + length;\n\tz.r = data.read_shift(4);\n\tdata.l += 4; // TODO: ixfe\n\tvar miyRw = data.read_shift(2);\n\tdata.l += 1; // TODO: top/bot padding\n\tvar flags = data.read_shift(1);\n\tdata.l = tgt;\n\tif(flags & 0x07) z.level = flags & 0x07;\n\tif(flags & 0x10) z.hidden = true;\n\tif(flags & 0x20) z.hpt = miyRw / 20;\n\treturn z;\n}\nfunction write_BrtRowHdr(R/*:number*/, range, ws) {\n\tvar o = new_buf(17+8*16);\n\tvar row = (ws['!rows']||[])[R]||{};\n\to.write_shift(4, R);\n\n\to.write_shift(4, 0); /* TODO: ixfe */\n\n\tvar miyRw = 0x0140;\n\tif(row.hpx) miyRw = px2pt(row.hpx) * 20;\n\telse if(row.hpt) miyRw = row.hpt * 20;\n\to.write_shift(2, miyRw);\n\n\to.write_shift(1, 0); /* top/bot padding */\n\n\tvar flags = 0x0;\n\tif(row.level) flags |= row.level;\n\tif(row.hidden) flags |= 0x10;\n\tif(row.hpx || row.hpt) flags |= 0x20;\n\to.write_shift(1, flags);\n\n\to.write_shift(1, 0); /* phonetic guide */\n\n\t/* [MS-XLSB] 2.5.8 BrtColSpan explains the mechanism */\n\tvar ncolspan = 0, lcs = o.l;\n\to.l += 4;\n\n\tvar caddr = {r:R, c:0};\n\tvar dense = ws[\"!data\"] != null;\n\tfor(var i = 0; i < 16; ++i) {\n\t\tif((range.s.c > ((i+1) << 10)) || (range.e.c < (i << 10))) continue;\n\t\tvar first = -1, last = -1;\n\t\tfor(var j = (i<<10); j < ((i+1)<<10); ++j) {\n\t\t\tcaddr.c = j;\n\t\t\tvar cell = dense ? (ws[\"!data\"][caddr.r]||[])[caddr.c] : ws[encode_cell(caddr)];\n\t\t\tif(cell) { if(first < 0) first = j; last = j; }\n\t\t}\n\t\tif(first < 0) continue;\n\t\t++ncolspan;\n\t\to.write_shift(4, first);\n\t\to.write_shift(4, last);\n\t}\n\n\tvar l = o.l;\n\to.l = lcs;\n\to.write_shift(4, ncolspan);\n\to.l = l;\n\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\nfunction write_row_header(ba, ws, range, R) {\n\tvar o = write_BrtRowHdr(R, range, ws);\n\tif((o.length > 17) || (ws['!rows']||[])[R]) write_record(ba, 0x0000 /* BrtRowHdr */, o);\n}\n\n/* [MS-XLSB] 2.4.820 BrtWsDim */\nvar parse_BrtWsDim = parse_UncheckedRfX;\nvar write_BrtWsDim = write_UncheckedRfX;\n\n/* [MS-XLSB] 2.4.821 BrtWsFmtInfo */\nfunction parse_BrtWsFmtInfo(/*::data, length*/) {\n}\n//function write_BrtWsFmtInfo(ws, o) { }\n\n/* [MS-XLSB] 2.4.823 BrtWsProp */\nfunction parse_BrtWsProp(data, length) {\n\tvar z = {};\n\tvar f = data[data.l]; ++data.l;\n\tz.above = !(f & 0x40);\n\tz.left = !(f & 0x80);\n\t/* TODO: pull flags */\n\tdata.l += 18;\n\tz.name = parse_XLSBCodeName(data, length - 19);\n\treturn z;\n}\nfunction write_BrtWsProp(str, outl, o) {\n\tif(o == null) o = new_buf(84+4*str.length);\n\tvar f = 0xC0;\n\tif(outl) {\n\t\tif(outl.above) f &= ~0x40;\n\t\tif(outl.left) f &= ~0x80;\n\t}\n\to.write_shift(1, f);\n\tfor(var i = 1; i < 3; ++i) o.write_shift(1,0);\n\twrite_BrtColor({auto:1}, o);\n\to.write_shift(-4,-1);\n\to.write_shift(-4,-1);\n\twrite_XLSBCodeName(str, o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.306 BrtCellBlank */\nfunction parse_BrtCellBlank(data) {\n\tvar cell = parse_XLSBCell(data);\n\treturn [cell];\n}\nfunction write_BrtCellBlank(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\treturn write_XLSBCell(ncell, o);\n}\nfunction parse_BrtShortBlank(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\treturn [cell];\n}\nfunction write_BrtShortBlank(cell, ncell, o) {\n\tif(o == null) o = new_buf(4);\n\treturn write_XLSBShortCell(ncell, o);\n}\n\n/* [MS-XLSB] 2.4.307 BrtCellBool */\nfunction parse_BrtCellBool(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'b'];\n}\nfunction write_BrtCellBool(cell, ncell, o) {\n\tif(o == null) o = new_buf(9);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(1, cell.v ? 1 : 0);\n\treturn o;\n}\nfunction parse_BrtShortBool(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'b'];\n}\nfunction write_BrtShortBool(cell, ncell, o) {\n\tif(o == null) o = new_buf(5);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(1, cell.v ? 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.308 BrtCellError */\nfunction parse_BrtCellError(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar bError = data.read_shift(1);\n\treturn [cell, bError, 'e'];\n}\nfunction write_BrtCellError(cell, ncell, o) {\n\tif(o == null) o = new_buf(9);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(1, cell.v);\n\treturn o;\n}\nfunction parse_BrtShortError(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar bError = data.read_shift(1);\n\treturn [cell, bError, 'e'];\n}\nfunction write_BrtShortError(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(1, cell.v);\n\to.write_shift(2, 0);\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n\n/* [MS-XLSB] 2.4.311 BrtCellIsst */\nfunction parse_BrtCellIsst(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar isst = data.read_shift(4);\n\treturn [cell, isst, 's'];\n}\nfunction write_BrtCellIsst(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(4, ncell.v);\n\treturn o;\n}\nfunction parse_BrtShortIsst(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar isst = data.read_shift(4);\n\treturn [cell, isst, 's'];\n}\nfunction write_BrtShortIsst(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(4, ncell.v);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.313 BrtCellReal */\nfunction parse_BrtCellReal(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_Xnum(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellReal(cell, ncell, o) {\n\tif(o == null) o = new_buf(16);\n\twrite_XLSBCell(ncell, o);\n\twrite_Xnum(cell.v, o);\n\treturn o;\n}\nfunction parse_BrtShortReal(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_Xnum(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtShortReal(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_Xnum(cell.v, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.314 BrtCellRk */\nfunction parse_BrtCellRk(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_RkNumber(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellRk(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\twrite_RkNumber(cell.v, o);\n\treturn o;\n}\nfunction parse_BrtShortRk(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_RkNumber(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtShortRk(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_RkNumber(cell.v, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.323 BrtCellRString */\nfunction parse_BrtCellRString(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_RichStr(data);\n\treturn [cell, value, 'is'];\n}\n\n/* [MS-XLSB] 2.4.317 BrtCellSt */\nfunction parse_BrtCellSt(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_XLWideString(data);\n\treturn [cell, value, 'str'];\n}\nfunction write_BrtCellSt(cell, ncell, o) {\n\tvar data = cell.v == null ? \"\" : String(cell.v);\n\tif(o == null) o = new_buf(12 + 4 * cell.v.length);\n\twrite_XLSBCell(ncell, o);\n\twrite_XLWideString(data, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\nfunction parse_BrtShortSt(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_XLWideString(data);\n\treturn [cell, value, 'str'];\n}\nfunction write_BrtShortSt(cell, ncell, o) {\n\tvar data = cell.v == null ? \"\" : String(cell.v);\n\tif(o == null) o = new_buf(8 + 4 * data.length);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_XLWideString(data, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.653 BrtFmlaBool */\nfunction parse_BrtFmlaBool(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'b'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.654 BrtFmlaError */\nfunction parse_BrtFmlaError(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'e'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.655 BrtFmlaNum */\nfunction parse_BrtFmlaNum(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_Xnum(data);\n\tvar o = [cell, value, 'n'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.656 BrtFmlaString */\nfunction parse_BrtFmlaString(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_XLWideString(data);\n\tvar o = [cell, value, 'str'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.682 BrtMergeCell */\nvar parse_BrtMergeCell = parse_UncheckedRfX;\nvar write_BrtMergeCell = write_UncheckedRfX;\n/* [MS-XLSB] 2.4.107 BrtBeginMergeCells */\nfunction write_BrtBeginMergeCells(cnt, o) {\n\tif(o == null) o = new_buf(4);\n\to.write_shift(4, cnt);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.662 BrtHLink */\nfunction parse_BrtHLink(data, length/*::, opts*/) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar relId = parse_XLNullableWideString(data);\n\tvar loc = parse_XLWideString(data);\n\tvar tooltip = parse_XLWideString(data);\n\tvar display = parse_XLWideString(data);\n\tdata.l = end;\n\tvar o = ({rfx:rfx, relId:relId, loc:loc, display:display}/*:any*/);\n\tif(tooltip) o.Tooltip = tooltip;\n\treturn o;\n}\nfunction write_BrtHLink(l, rId) {\n\tvar o = new_buf(50+4*(l[1].Target.length + (l[1].Tooltip || \"\").length));\n\twrite_UncheckedRfX({s:decode_cell(l[0]), e:decode_cell(l[0])}, o);\n\twrite_RelID(\"rId\" + rId, o);\n\tvar locidx = l[1].Target.indexOf(\"#\");\n\tvar loc = locidx == -1 ? \"\" : l[1].Target.slice(locidx+1);\n\twrite_XLWideString(loc || \"\", o);\n\twrite_XLWideString(l[1].Tooltip || \"\", o);\n\twrite_XLWideString(\"\", o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.692 BrtPane */\nfunction parse_BrtPane(/*data, length, opts*/) {\n}\n\n/* [MS-XLSB] 2.4.6 BrtArrFmla */\nfunction parse_BrtArrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_RfX(data, 16);\n\tvar fAlwaysCalc = data.read_shift(1);\n\tvar o = [rfx]; o[2] = fAlwaysCalc;\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBArrayParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.750 BrtShrFmla */\nfunction parse_BrtShrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar o = [rfx];\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBSharedParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t\tdata.l = end;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.323 BrtColInfo */\n/* TODO: once XLS ColInfo is set, combine the functions */\nfunction write_BrtColInfo(C/*:number*/, col, o) {\n\tif(o == null) o = new_buf(18);\n\tvar p = col_obj_w(C, col);\n\to.write_shift(-4, C);\n\to.write_shift(-4, C);\n\to.write_shift(4, (p.width || 10) * 256);\n\to.write_shift(4, 0/*ixfe*/); // style\n\tvar flags = 0;\n\tif(col.hidden) flags |= 0x01;\n\tif(typeof p.width == 'number') flags |= 0x02;\n\tif(col.level) flags |= (col.level << 8);\n\to.write_shift(2, flags); // bit flag\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.678 BrtMargins */\nvar BrtMarginKeys = [\"left\",\"right\",\"top\",\"bottom\",\"header\",\"footer\"];\nfunction parse_BrtMargins(data/*::, length, opts*/)/*:Margins*/ {\n\tvar margins = ({}/*:any*/);\n\tBrtMarginKeys.forEach(function(k) { margins[k] = parse_Xnum(data, 8); });\n\treturn margins;\n}\nfunction write_BrtMargins(margins/*:Margins*/, o) {\n\tif(o == null) o = new_buf(6*8);\n\tdefault_margins(margins);\n\tBrtMarginKeys.forEach(function(k) { write_Xnum((margins/*:any*/)[k], o); });\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.299 BrtBeginWsView */\nfunction parse_BrtBeginWsView(data/*::, length, opts*/) {\n\tvar f = data.read_shift(2);\n\tdata.l += 28;\n\treturn { RTL: f & 0x20 };\n}\nfunction write_BrtBeginWsView(ws, Workbook, o) {\n\tif(o == null) o = new_buf(30);\n\tvar f = 0x39c;\n\tif((((Workbook||{}).Views||[])[0]||{}).RTL) f |= 0x20;\n\to.write_shift(2, f); // bit flag\n\to.write_shift(4, 0);\n\to.write_shift(4, 0); // view first row\n\to.write_shift(4, 0); // view first col\n\to.write_shift(1, 0); // gridline color ICV\n\to.write_shift(1, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 100); // zoom scale\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(4, 0); // workbook view id\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.309 BrtCellIgnoreEC */\nfunction write_BrtCellIgnoreEC(ref) {\n\tvar o = new_buf(24);\n\to.write_shift(4, 4);\n\to.write_shift(4, 1);\n\twrite_UncheckedRfX(ref, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.748 BrtSheetProtection */\nfunction write_BrtSheetProtection(sp, o) {\n\tif(o == null) o = new_buf(16*4+2);\n\to.write_shift(2, sp.password ? crypto_CreatePasswordVerifier_Method1(sp.password) : 0);\n\to.write_shift(4, 1); // this record should not be written if no protection\n\t[\n\t\t[\"objects\", false], // fObjects\n\t\t[\"scenarios\", false], // fScenarios\n\t\t[\"formatCells\", true], // fFormatCells\n\t\t[\"formatColumns\", true], // fFormatColumns\n\t\t[\"formatRows\", true], // fFormatRows\n\t\t[\"insertColumns\", true], // fInsertColumns\n\t\t[\"insertRows\", true], // fInsertRows\n\t\t[\"insertHyperlinks\", true], // fInsertHyperlinks\n\t\t[\"deleteColumns\", true], // fDeleteColumns\n\t\t[\"deleteRows\", true], // fDeleteRows\n\t\t[\"selectLockedCells\", false], // fSelLockedCells\n\t\t[\"sort\", true], // fSort\n\t\t[\"autoFilter\", true], // fAutoFilter\n\t\t[\"pivotTables\", true], // fPivotTables\n\t\t[\"selectUnlockedCells\", false] // fSelUnlockedCells\n\t].forEach(function(n) {\n\t\t/*:: if(o == null) throw \"unreachable\"; */\n\t\tif(n[1]) o.write_shift(4, sp[n[0]] != null && !sp[n[0]] ? 1 : 0);\n\t\telse o.write_shift(4, sp[n[0]] != null && sp[n[0]] ? 0 : 1);\n\t});\n\treturn o;\n}\n\nfunction parse_BrtDVal(/*data, length, opts*/) {\n}\nfunction parse_BrtDVal14(/*data, length, opts*/) {\n}\n/* [MS-XLSB] 2.1.7.61 Worksheet */\nfunction parse_ws_bin(data, _opts, idx, rels, wb/*:WBWBProps*/, themes, styles)/*:Worksheet*/ {\n\tif(!data) return data;\n\tvar opts = _opts || {};\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar s/*:Worksheet*/ = ({}); if(opts.dense) s[\"!data\"] = [];\n\n\tvar ref;\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\tvar state/*:Array*/ = [];\n\tvar pass = false, end = false;\n\tvar row, p, cf, R, C, addr, sstr, rr, cell/*:Cell*/;\n\tvar merges/*:Array*/ = [];\n\topts.biff = 12;\n\topts['!row'] = 0;\n\n\tvar ai = 0, af = false;\n\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar sharedf = {};\n\tvar supbooks = opts.supbooks || /*::(*/wb/*:: :any)*/.supbooks || ([[]]/*:any*/);\n\tsupbooks.sharedf = sharedf;\n\tsupbooks.arrayf = arrayf;\n\tsupbooks.SheetNames = wb.SheetNames || wb.Sheets.map(function(x) { return x.name; });\n\tif(!opts.supbooks) {\n\t\topts.supbooks = supbooks;\n\t\tif(wb.Names) for(var i = 0; i < wb.Names.length; ++i) supbooks[0][i+1] = wb.Names[i];\n\t}\n\n\tvar colinfo/*:Array*/ = [], rowinfo/*:Array*/ = [];\n\tvar seencol = false;\n\n\tXLSBRecordEnum[0x0010] = { n:\"BrtShortReal\", f:parse_BrtShortReal };\n\n\tvar cm, vm;\n\tvar date1904 = 1462 * +!!((wb||{}).WBProps||{}).date1904;\n\n\trecordhopper(data, function ws_parse(val, RR, RT) {\n\t\tif(end) return;\n\t\tswitch(RT) {\n\t\t\tcase 0x0094: /* 'BrtWsDim' */\n\t\t\t\tref = val; break;\n\t\t\tcase 0x0000: /* 'BrtRowHdr' */\n\t\t\t\trow = val;\n\t\t\t\tif(opts.sheetRows && opts.sheetRows <= row.r) end=true;\n\t\t\t\trr = encode_row(R = row.r);\n\t\t\t\topts['!row'] = row.r;\n\t\t\t\tif(val.hidden || val.hpt || val.level != null) {\n\t\t\t\t\tif(val.hpt) val.hpx = pt2px(val.hpt);\n\t\t\t\t\trowinfo[val.r] = val;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0002: /* 'BrtCellRk' */\n\t\t\tcase 0x0003: /* 'BrtCellError' */\n\t\t\tcase 0x0004: /* 'BrtCellBool' */\n\t\t\tcase 0x0005: /* 'BrtCellReal' */\n\t\t\tcase 0x0006: /* 'BrtCellSt' */\n\t\t\tcase 0x0007: /* 'BrtCellIsst' */\n\t\t\tcase 0x0008: /* 'BrtFmlaString' */\n\t\t\tcase 0x0009: /* 'BrtFmlaNum' */\n\t\t\tcase 0x000A: /* 'BrtFmlaBool' */\n\t\t\tcase 0x000B: /* 'BrtFmlaError' */\n\t\t\tcase 0x000D: /* 'BrtShortRk' */\n\t\t\tcase 0x000E: /* 'BrtShortError' */\n\t\t\tcase 0x000F: /* 'BrtShortBool' */\n\t\t\tcase 0x0010: /* 'BrtShortReal' */\n\t\t\tcase 0x0011: /* 'BrtShortSt' */\n\t\t\tcase 0x0012: /* 'BrtShortIsst' */\n\t\t\tcase 0x003E: /* 'BrtCellRString' */\n\t\t\t\tp = ({t:val[2]}/*:any*/);\n\t\t\t\tswitch(val[2]) {\n\t\t\t\t\tcase 'n': p.v = val[1]; break;\n\t\t\t\t\tcase 's': sstr = strs[val[1]]; p.v = sstr.t; p.r = sstr.r; break;\n\t\t\t\t\tcase 'b': p.v = val[1] ? true : false; break;\n\t\t\t\t\tcase 'e': p.v = val[1]; if(opts.cellText !== false) p.w = BErr[p.v]; break;\n\t\t\t\t\tcase 'str': p.t = 's'; p.v = val[1]; break;\n\t\t\t\t\tcase 'is': p.t = 's'; p.v = val[1].t; break;\n\t\t\t\t}\n\t\t\t\tif((cf = styles.CellXf[val[0].iStyleRef])) safe_format(p,cf.numFmtId,null,opts, themes, styles, date1904>0);\n\t\t\t\tC = val[0].c == -1 ? C + 1 : val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[\"!data\"][R]) s[\"!data\"][R] = []; s[\"!data\"][R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\taf = false;\n\t\t\t\t\tfor(ai = 0; ai < arrayf.length; ++ai) {\n\t\t\t\t\t\tvar aii = arrayf[ai];\n\t\t\t\t\t\tif(row.r >= aii[0].s.r && row.r <= aii[0].e.r)\n\t\t\t\t\t\t\tif(C >= aii[0].s.c && C <= aii[0].e.c) {\n\t\t\t\t\t\t\t\tp.F = encode_range(aii[0]); af = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(!af && val.length > 3) p.f = val[3];\n\t\t\t\t}\n\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tif(opts.cellDates && cf && p.t == 'n' && fmt_is_date(table_fmt[cf.numFmtId])) {\n\t\t\t\t\tvar _d = SSF_parse_date_code(p.v + date1904); if(_d) { p.t = 'd'; p.v = new Date(Date.UTC(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u)); }\n\t\t\t\t}\n\t\t\t\tif(cm) {\n\t\t\t\t\tif(cm.type == 'XLDAPR') p.D = true;\n\t\t\t\t\tcm = void 0;\n\t\t\t\t}\n\t\t\t\tif(vm) vm = void 0;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0001: /* 'BrtCellBlank' */\n\t\t\tcase 0x000C: /* 'BrtShortBlank' */\n\t\t\t\tif(!opts.sheetStubs || pass) break;\n\t\t\t\tp = ({t:'z',v:void 0}/*:any*/);\n\t\t\t\tC = val[0].c == -1 ? C + 1 : val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[\"!data\"][R]) s[\"!data\"][R] = []; s[\"!data\"][R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tif(cm) {\n\t\t\t\t\tif(cm.type == 'XLDAPR') p.D = true;\n\t\t\t\t\tcm = void 0;\n\t\t\t\t}\n\t\t\t\tif(vm) vm = void 0;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00B0: /* 'BrtMergeCell' */\n\t\t\t\tmerges.push(val); break;\n\n\t\t\tcase 0x0031: { /* 'BrtCellMeta' */\n\t\t\t\tcm = ((opts.xlmeta||{}).Cell||[])[val-1];\n\t\t\t} break;\n\n\t\t\tcase 0x01EE: /* 'BrtHLink' */\n\t\t\t\tvar rel = rels['!id'][val.relId];\n\t\t\t\tif(rel) {\n\t\t\t\t\tval.Target = rel.Target;\n\t\t\t\t\tif(val.loc) val.Target += \"#\"+val.loc;\n\t\t\t\t\tval.Rel = rel;\n\t\t\t\t} else if(val.relId == '') {\n\t\t\t\t\tval.Target = \"#\" + val.loc;\n\t\t\t\t}\n\t\t\t\tfor(R=val.rfx.s.r;R<=val.rfx.e.r;++R) for(C=val.rfx.s.c;C<=val.rfx.e.c;++C) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!s[\"!data\"][R]) s[\"!data\"][R] = [];\n\t\t\t\t\t\tif(!s[\"!data\"][R][C]) s[\"!data\"][R][C] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[\"!data\"][R][C].l = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\taddr = encode_col(C) + encode_row(R);\n\t\t\t\t\t\tif(!s[addr]) s[addr] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[addr].l = val;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01AA: /* 'BrtArrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tarrayf.push(val);\n\t\t\t\tcell = ((opts.dense ? s[\"!data\"][R][C] : s[encode_col(C) + rr])/*:any*/);\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tcell.F = encode_range(val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x01AB: /* 'BrtShrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tsharedf[encode_cell(val[0].s)] = val[1];\n\t\t\t\tcell = (opts.dense ? s[\"!data\"][R][C] : s[encode_col(C) + rr]);\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tbreak;\n\n\t\t\t/* identical to 'ColInfo' in XLS */\n\t\t\tcase 0x003C: /* 'BrtColInfo' */\n\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256, hidden: !!(val.flags & 0x01), level: val.level };\n\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\t\tif(val) s[\"!legrel\"] = val;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00A1: /* 'BrtBeginAFilter' */\n\t\t\t\ts['!autofilter'] = { ref:encode_range(val) };\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\t\ts['!margins'] = val;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0093: /* 'BrtWsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tif(val.above || val.left) s['!outline'] = { above: val.above, left: val.left };\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0089: /* 'BrtBeginWsView' */\n\t\t\t\tif(!wb.Views) wb.Views = [{}];\n\t\t\t\tif(!wb.Views[0]) wb.Views[0] = {};\n\t\t\t\tif(val.RTL) wb.Views[0].RTL = true;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01E5: /* 'BrtWsFmtInfo' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0040: /* 'BrtDVal' */\n\t\t\tcase 0x041D: /* 'BrtDVal14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0097: /* 'BrtPane' */\n\t\t\t\tbreak;\n\t\t\tcase 0x0098: /* 'BrtSel' */\n\t\t\tcase 0x00AF: /* 'BrtAFilterDateGroupItem' */\n\t\t\tcase 0x0284: /* 'BrtActiveX' */\n\t\t\tcase 0x0271: /* 'BrtBigName' */\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x018C: /* 'BrtBrk' */\n\t\t\tcase 0x0458: /* 'BrtCFIcon' */\n\t\t\tcase 0x047A: /* 'BrtCFRuleExt' */\n\t\t\tcase 0x01D7: /* 'BrtCFVO' */\n\t\t\tcase 0x041A: /* 'BrtCFVO14' */\n\t\t\tcase 0x0289: /* 'BrtCellIgnoreEC' */\n\t\t\tcase 0x0451: /* 'BrtCellIgnoreEC14' */\n\t\t\tcase 0x024D: /* 'BrtCellSmartTagProperty' */\n\t\t\tcase 0x025F: /* 'BrtCellWatch' */\n\t\t\tcase 0x0234: /* 'BrtColor' */\n\t\t\tcase 0x041F: /* 'BrtColor14' */\n\t\t\tcase 0x00A8: /* 'BrtColorFilter' */\n\t\t\tcase 0x00AE: /* 'BrtCustomFilter' */\n\t\t\tcase 0x049C: /* 'BrtCustomFilter14' */\n\t\t\tcase 0x01F3: /* 'BrtDRef' */\n\t\t\tcase 0x01FB: /* 'BrtDXF' */\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\tcase 0x00AB: /* 'BrtDynamicFilter' */\n\t\t\tcase 0x00A7: /* 'BrtFilter' */\n\t\t\tcase 0x0499: /* 'BrtFilter14' */\n\t\t\tcase 0x00A9: /* 'BrtIconFilter' */\n\t\t\tcase 0x049D: /* 'BrtIconFilter14' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x0295: /* 'BrtListPart' */\n\t\t\tcase 0x027F: /* 'BrtOleObject' */\n\t\t\tcase 0x01DE: /* 'BrtPageSetup' */\n\t\t\tcase 0x0219: /* 'BrtPhoneticInfo' */\n\t\t\tcase 0x01DD: /* 'BrtPrintOptions' */\n\t\t\tcase 0x0218: /* 'BrtRangeProtection' */\n\t\t\tcase 0x044F: /* 'BrtRangeProtection14' */\n\t\t\tcase 0x02A8: /* 'BrtRangeProtectionIso' */\n\t\t\tcase 0x0450: /* 'BrtRangeProtectionIso14' */\n\t\t\tcase 0x0400: /* 'BrtRwDescent' */\n\t\t\tcase 0x0297: /* 'BrtSheetCalcProp' */\n\t\t\tcase 0x0217: /* 'BrtSheetProtection' */\n\t\t\tcase 0x02A6: /* 'BrtSheetProtectionIso' */\n\t\t\tcase 0x01F8: /* 'BrtSlc' */\n\t\t\tcase 0x0413: /* 'BrtSparkline' */\n\t\t\tcase 0x01AC: /* 'BrtTable' */\n\t\t\tcase 0x00AA: /* 'BrtTop10Filter' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0032: /* 'BrtValueMeta' */\n\t\t\tcase 0x0816: /* 'BrtWebExtension' */\n\t\t\tcase 0x0415: /* 'BrtWsFmtInfoEx14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(RR.T){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tdelete opts.supbooks;\n\tdelete opts['!row'];\n\n\tif(!s[\"!ref\"] && (refguess.s.r < 2000000 || ref && (ref.e.r > 0 || ref.e.c > 0 || ref.s.r > 0 || ref.s.c > 0))) s[\"!ref\"] = encode_range(ref || refguess);\n\tif(opts.sheetRows && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\tif(colinfo.length > 0) s[\"!cols\"] = colinfo;\n\tif(rowinfo.length > 0) s[\"!rows\"] = rowinfo;\n\tif(rels['!id'][s['!legrel']]) s['!legdrawel'] = rels['!id'][s['!legrel']];\n\treturn s;\n}\n\n/* TODO: something useful -- this is a stub */\nfunction write_ws_bin_cell(ba/*:BufArray*/, cell/*:Cell*/, R/*:number*/, C/*:number*/, opts, ws/*:Worksheet*/, last_seen/*:boolean*/, date1904/*:boolean*/)/*:boolean*/ {\n\tvar o/*:any*/ = ({r:R, c:C}/*:any*/);\n\tif(cell.c) ws['!comments'].push([encode_cell(o), cell.c]);\n\tif(cell.v === undefined) return false;\n\tvar vv = \"\";\n\tswitch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'd': // no BrtCellDate :(\n\t\t\tcell = dup(cell);\n\t\t\tcell.z = cell.z || table_fmt[14];\n\t\t\tcell.v = datenum(parseDate(cell.v, date1904), date1904); cell.t = 'n';\n\t\t\tbreak;\n\t\t/* falls through */\n\t\tcase 'n': case 'e': vv = ''+cell.v; break;\n\t\tdefault: vv = cell.v; break;\n\t}\n\t/* TODO: cell style */\n\to.s = get_cell_style(opts.cellXfs, cell, opts);\n\tif(cell.l) ws['!links'].push([encode_cell(o), cell.l]);\n\tswitch(cell.t) {\n\t\tcase 's': case 'str':\n\t\t\tif(opts.bookSST) {\n\t\t\t\tvv = get_sst_id(opts.Strings, (cell.v == null ? \"\" : String(cell.v)/*:any*/), opts.revStrings);\n\t\t\t\to.t = \"s\"; o.v = vv;\n\t\t\t\tif(last_seen) write_record(ba, 0x0012 /* BrtShortIsst */, write_BrtShortIsst(cell, o));\n\t\t\t\telse write_record(ba, 0x0007 /* BrtCellIsst */, write_BrtCellIsst(cell, o));\n\t\t\t} else {\n\t\t\t\to.t = \"str\";\n\t\t\t\tif(last_seen) write_record(ba, 0x0011 /* BrtShortSt */, write_BrtShortSt(cell, o));\n\t\t\t\telse write_record(ba, 0x0006 /* BrtCellSt */, write_BrtCellSt(cell, o));\n\t\t\t}\n\t\t\treturn true;\n\t\tcase 'n':\n\t\t\t/* TODO: determine threshold for Real vs RK */\n\t\t\tif(cell.v == (cell.v | 0) && cell.v > -1000 && cell.v < 1000) {\n\t\t\t\tif(last_seen) write_record(ba, 0x000D /* BrtShortRk */, write_BrtShortRk(cell, o));\n\t\t\t\telse write_record(ba, 0x0002 /* BrtCellRk */, write_BrtCellRk(cell, o));\n\t\t\t} else if(isNaN(cell.v)) {\n\t\t\t\tif(last_seen) write_record(ba, 0x000E /* BrtShortError */, write_BrtShortError({t:\"e\", v: 0x24}, o)); // #NUM!\n\t\t\t\telse write_record(ba, 0x0003 /* BrtCellError */, write_BrtCellError({t:\"e\", v: 0x24}, o)); // #NUM!\n\t\t\t} else if(!isFinite(cell.v)) {\n\t\t\t\tif(last_seen) write_record(ba, 0x000E /* BrtShortError */, write_BrtShortError({t:\"e\", v: 0x07}, o)); // #DIV/0!\n\t\t\t\telse write_record(ba, 0x0003 /* BrtCellError */, write_BrtCellError({t:\"e\", v: 0x07}, o)); // #DIV/0!\n\t\t\t} else {\n\t\t\t\tif(last_seen) write_record(ba, 0x0010 /* BrtShortReal */, write_BrtShortReal(cell, o));\n\t\t\t\telse write_record(ba, 0x0005 /* BrtCellReal */, write_BrtCellReal(cell, o));\n\t\t\t} return true;\n\t\tcase 'b':\n\t\t\to.t = \"b\";\n\t\t\tif(last_seen) write_record(ba, 0x000F /* BrtShortBool */, write_BrtShortBool(cell, o));\n\t\t\telse write_record(ba, 0x0004 /* BrtCellBool */, write_BrtCellBool(cell, o));\n\t\t\treturn true;\n\t\tcase 'e':\n\t\t\to.t = \"e\";\n\t\t\tif(last_seen) write_record(ba, 0x000E /* BrtShortError */, write_BrtShortError(cell, o));\n\t\t\telse write_record(ba, 0x0003 /* BrtCellError */, write_BrtCellError(cell, o));\n\t\t\treturn true;\n\t}\n\tif(last_seen) write_record(ba, 0x000C /* BrtShortBlank */, write_BrtShortBlank(cell, o));\n\telse write_record(ba, 0x0001 /* BrtCellBlank */, write_BrtCellBlank(cell, o));\n\treturn true;\n}\n\nfunction write_CELLTABLE(ba, ws/*:Worksheet*/, idx/*:number*/, opts, wb/*:Workbook*/) {\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref, rr = \"\", cols/*:Array*/ = [];\n\tvar date1904 = (((wb||{}).Workbook||{}).WBProps||{}).date1904;\n\twrite_record(ba, 0x0091 /* BrtBeginSheetData */);\n\tvar dense = ws[\"!data\"] != null;\n\tvar cap = range.e.r;\n\tif(ws['!rows']) cap = Math.max(range.e.r, ws['!rows'].length - 1);\n\tfor(var R = range.s.r; R <= cap; ++R) {\n\t\trr = encode_row(R);\n\t\t/* [ACCELLTABLE] */\n\t\t/* BrtRowHdr */\n\t\twrite_row_header(ba, ws, range, R);\n\t\tvar last_seen = false;\n\t\tif(R <= range.e.r) for(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t/* *16384CELL */\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[\"!data\"][R]||[])[C] : ws[ref];\n\t\t\tif(!cell) { last_seen = false; continue; }\n\t\t\t/* write cell */\n\t\t\tlast_seen = write_ws_bin_cell(ba, cell, R, C, opts, ws, last_seen, date1904);\n\t\t}\n\t}\n\twrite_record(ba, 0x0092 /* BrtEndSheetData */);\n}\n\nfunction write_MERGECELLS(ba, ws/*:Worksheet*/) {\n\tif(!ws || !ws['!merges']) return;\n\twrite_record(ba, 0x00B1 /* BrtBeginMergeCells */, write_BrtBeginMergeCells(ws['!merges'].length));\n\tws['!merges'].forEach(function(m) { write_record(ba, 0x00B0 /* BrtMergeCell */, write_BrtMergeCell(m)); });\n\twrite_record(ba, 0x00B2 /* BrtEndMergeCells */);\n}\n\nfunction write_COLINFOS(ba, ws/*:Worksheet*//*::, idx:number, opts, wb:Workbook*/) {\n\tif(!ws || !ws['!cols']) return;\n\twrite_record(ba, 0x0186 /* BrtBeginColInfos */);\n\tws['!cols'].forEach(function(m, i) { if(m) write_record(ba, 0x003C /* 'BrtColInfo' */, write_BrtColInfo(i, m)); });\n\twrite_record(ba, 0x0187 /* BrtEndColInfos */);\n}\n\nfunction write_IGNOREECS(ba, ws/*:Worksheet*/) {\n\tif(!ws || !ws['!ref']) return;\n\twrite_record(ba, 0x0288 /* BrtBeginCellIgnoreECs */);\n\twrite_record(ba, 0x0289 /* BrtCellIgnoreEC */, write_BrtCellIgnoreEC(safe_decode_range(ws['!ref'])));\n\twrite_record(ba, 0x028A /* BrtEndCellIgnoreECs */);\n}\n\nfunction write_HLINKS(ba, ws/*:Worksheet*/, rels) {\n\t/* *BrtHLink */\n\tws['!links'].forEach(function(l) {\n\t\tif(!l[1].Target) return;\n\t\tvar rId = add_rels(rels, -1, l[1].Target.replace(/#.*$/, \"\"), RELS.HLINK);\n\t\twrite_record(ba, 0x01EE /* BrtHLink */, write_BrtHLink(l, rId));\n\t});\n\tdelete ws['!links'];\n}\nfunction write_LEGACYDRAWING(ba, ws/*:Worksheet*/, idx/*:number*/, rels) {\n\t/* [BrtLegacyDrawing] */\n\tif(ws['!comments'].length > 0) {\n\t\tvar rId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\twrite_record(ba, 0x0227 /* BrtLegacyDrawing */, write_RelID(\"rId\" + rId));\n\t\tws['!legacy'] = rId;\n\t}\n}\n\nfunction write_AUTOFILTER(ba, ws, wb, idx) {\n\tif(!ws['!autofilter']) return;\n\tvar data = ws['!autofilter'];\n\tvar ref = typeof data.ref === \"string\" ? data.ref : encode_range(data.ref);\n\n\t/* Update FilterDatabase defined name for the worksheet */\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]}/*:any*/);\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names/*: Array */ = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = formula_quote_sheet_name(wb.SheetNames[idx]) + \"!\" + fix_range(ref); break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: formula_quote_sheet_name(wb.SheetNames[idx]) + \"!\" + fix_range(ref) });\n\n\twrite_record(ba, 0x00A1 /* BrtBeginAFilter */, write_UncheckedRfX(safe_decode_range(ref)));\n\t/* *FILTERCOLUMN */\n\t/* [SORTSTATE] */\n\t/* BrtEndAFilter */\n\twrite_record(ba, 0x00A2 /* BrtEndAFilter */);\n}\n\nfunction write_WSVIEWS2(ba, ws, Workbook) {\n\twrite_record(ba, 0x0085 /* BrtBeginWsViews */);\n\t{ /* 1*WSVIEW2 */\n\t\t/* [ACUID] */\n\t\twrite_record(ba, 0x0089 /* BrtBeginWsView */, write_BrtBeginWsView(ws, Workbook));\n\t\t/* [BrtPane] */\n\t\t/* *4BrtSel */\n\t\t/* *4SXSELECT */\n\t\t/* *FRT */\n\t\twrite_record(ba, 0x008A /* BrtEndWsView */);\n\t}\n\t/* *FRT */\n\twrite_record(ba, 0x0086 /* BrtEndWsViews */);\n}\n\nfunction write_WSFMTINFO(/*::ba, ws*/) {\n\t/* [ACWSFMTINFO] */\n\t// write_record(ba, 0x01E5 /* BrtWsFmtInfo */, write_BrtWsFmtInfo(ws));\n}\n\nfunction write_SHEETPROTECT(ba, ws) {\n\tif(!ws['!protect']) return;\n\t/* [BrtSheetProtectionIso] */\n\twrite_record(ba, 0x0217 /* BrtSheetProtection */, write_BrtSheetProtection(ws['!protect']));\n}\n\nfunction write_ws_bin(idx/*:number*/, opts, wb/*:Workbook*/, rels) {\n\tvar ba = buf_array();\n\tvar s = wb.SheetNames[idx], ws = wb.Sheets[s] || {};\n\tvar c/*:string*/ = s; try { if(wb && wb.Workbook) c = wb.Workbook.Sheets[idx].CodeName || c; } catch(e) {}\n\tvar r = safe_decode_range(ws['!ref'] || \"A1\");\n\tif(r.e.c > 0x3FFF || r.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:XFD1048576\");\n\t\tr.e.c = Math.min(r.e.c, 0x3FFF);\n\t\tr.e.r = Math.min(r.e.c, 0xFFFFF);\n\t}\n\tws['!links'] = [];\n\t/* passed back to write_zip and removed there */\n\tws['!comments'] = [];\n\twrite_record(ba, 0x0081 /* BrtBeginSheet */);\n\tif(wb.vbaraw || ws['!outline']) write_record(ba, 0x0093 /* BrtWsProp */, write_BrtWsProp(c, ws['!outline']));\n\twrite_record(ba, 0x0094 /* BrtWsDim */, write_BrtWsDim(r));\n\twrite_WSVIEWS2(ba, ws, wb.Workbook);\n\twrite_WSFMTINFO(ba, ws);\n\twrite_COLINFOS(ba, ws, idx, opts, wb);\n\twrite_CELLTABLE(ba, ws, idx, opts, wb);\n\t/* [BrtSheetCalcProp] */\n\twrite_SHEETPROTECT(ba, ws);\n\t/* *([BrtRangeProtectionIso] BrtRangeProtection) */\n\t/* [SCENMAN] */\n\twrite_AUTOFILTER(ba, ws, wb, idx);\n\t/* [SORTSTATE] */\n\t/* [DCON] */\n\t/* [USERSHVIEWS] */\n\twrite_MERGECELLS(ba, ws);\n\t/* [BrtPhoneticInfo] */\n\t/* *CONDITIONALFORMATTING */\n\t/* [DVALS] */\n\twrite_HLINKS(ba, ws, rels);\n\t/* [BrtPrintOptions] */\n\tif(ws['!margins']) write_record(ba, 0x01DC /* BrtMargins */, write_BrtMargins(ws['!margins']));\n\t/* [BrtPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* [RWBRK] */\n\t/* [COLBRK] */\n\t/* *BrtBigName */\n\t/* [CELLWATCHES] */\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) write_IGNOREECS(ba, ws);\n\t/* [SMARTTAGS] */\n\t/* [BrtDrawing] */\n\twrite_LEGACYDRAWING(ba, ws, idx, rels);\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [OLEOBJECTS] */\n\t/* [ACTIVEXCONTROLS] */\n\t/* [WEBPUBITEMS] */\n\t/* [LISTPARTS] */\n\t/* FRTWORKSHEET */\n\twrite_record(ba, 0x0082 /* BrtEndSheet */);\n\treturn ba.end();\n}\nfunction parse_Cache(data/*:string*/)/*:[Array, string, ?string]*/ {\n\tvar col/*:Array*/ = [];\n\tvar num = data.match(/^/);\n\tvar f;\n\n\t/* 21.2.2.150 pt CT_NumVal */\n\t(data.match(/(.*?)<\\/c:pt>/mg)||[]).forEach(function(pt) {\n\t\tvar q = pt.match(/(.*)<\\/c:v><\\/c:pt>/);\n\t\tif(!q) return;\n\t\tcol[+q[1]] = num ? +q[2] : q[2];\n\t});\n\n\t/* 21.2.2.71 formatCode CT_Xstring */\n\tvar nf = unescapexml((data.match(/([\\s\\S]*?)<\\/c:formatCode>/) || [\"\",\"General\"])[1]);\n\n\t(data.match(/(.*?)<\\/c:f>/mg)||[]).forEach(function(F) { f = F.replace(/<.*?>/g,\"\"); });\n\n\treturn [col, nf, f];\n}\n\n/* 21.2 DrawingML - Charts */\nfunction parse_chart(data/*:?string*/, name/*:string*/, opts, rels, wb, csheet) {\n\tvar cs/*:Worksheet*/ = ((csheet || {\"!type\":\"chart\"})/*:any*/);\n\tif(!data) return csheet;\n\t/* 21.2.2.27 chart CT_Chart */\n\n\tvar C = 0, R = 0, col = \"A\";\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\t/* 21.2.2.120 numCache CT_NumData */\n\t(data.match(/[\\s\\S]*?<\\/c:numCache>/gm)||[]).forEach(function(nc) {\n\t\tvar cache = parse_Cache(nc);\n\t\trefguess.s.r = refguess.s.c = 0;\n\t\trefguess.e.c = C;\n\t\tcol = encode_col(C);\n\t\tcache[0].forEach(function(n,i) {\n\t\t\tif(cs[\"!data\"]) {\n\t\t\t\tif(!cs[\"!data\"][i]) cs[\"!data\"][i] = [];\n\t\t\t\tcs[\"!data\"][i][C] = {t:'n', v:n, z:cache[1] };\n\t\t\t} else cs[col + encode_row(i)] = {t:'n', v:n, z:cache[1] };\n\t\t\tR = i;\n\t\t});\n\t\tif(refguess.e.r < R) refguess.e.r = R;\n\t\t++C;\n\t});\n\tif(C > 0) cs[\"!ref\"] = encode_range(refguess);\n\treturn cs;\n}\n/* 18.3 Worksheets also covers Chartsheets */\nfunction parse_cs_xml(data/*:?string*/, opts, idx/*:number*/, rels, wb/*::, themes, styles*/)/*:Worksheet*/ {\n\tif(!data) return data;\n\t/* 18.3.1.12 chartsheet CT_ChartSheet */\n\tif(!rels) rels = {'!id':{}};\n\tvar s = ({'!type':\"chart\", '!drawel':null, '!rel':\"\"}/*:any*/);\n\tvar m;\n\n\t/* 18.3.1.83 sheetPr CT_ChartsheetPr */\n\tvar sheetPr = data.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\n\t/* 18.3.1.36 drawing CT_Drawing */\n\tif((m = data.match(/drawing r:id=\"(.*?)\"/))) s['!rel'] = m[1];\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\n//function write_cs_xml(idx/*:number*/, opts, wb/*:Workbook*/, rels)/*:string*/ {\n//\tvar o = [XML_HEADER, writextag('chartsheet', null, {\n//\t\t'xmlns': XMLNS_main[0],\n//\t\t'xmlns:r': XMLNS.r\n//\t})];\n//\to[o.length] = writextag(\"drawing\", null, {\"r:id\": \"rId1\"});\n//\tadd_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n//\tif(o.length>2) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n//\treturn o.join(\"\");\n//}\n\n/* [MS-XLSB] 2.4.331 BrtCsProp */\nfunction parse_BrtCsProp(data, length/*:number*/) {\n\tdata.l += 10;\n\tvar name = parse_XLWideString(data, length - 10);\n\treturn { name: name };\n}\n\n/* [MS-XLSB] 2.1.7.7 Chart Sheet */\nfunction parse_cs_bin(data, opts, idx/*:number*/, rels, wb/*::, themes, styles*/)/*:Worksheet*/ {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tvar s = {'!type':\"chart\", '!drawel':null, '!rel':\"\"};\n\tvar state/*:Array*/ = [];\n\tvar pass = false;\n\trecordhopper(data, function cs_parse(val, R, RT) {\n\t\tswitch(RT) {\n\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\t\ts['!rel'] = val; break;\n\n\t\t\tcase 0x028B: /* 'BrtCsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x028C: /* 'BrtCsPageSetup' */\n\t\t\tcase 0x029D: /* 'BrtCsProtection' */\n\t\t\tcase 0x02A7: /* 'BrtCsProtectionIso' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(RT); break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T > 0) state.push(RT);\n\t\t\t\telse if(R.T < 0) state.pop();\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\n//function write_cs_bin(/*::idx:number, opts, wb:Workbook, rels*/) {\n//\tvar ba = buf_array();\n//\twrite_record(ba, 0x0081 /* BrtBeginSheet */);\n//\t/* [BrtCsProp] */\n//\t/* CSVIEWS */\n//\t/* [[BrtCsProtectionIso] BrtCsProtection] */\n//\t/* [USERCSVIEWS] */\n//\t/* [BrtMargins] */\n//\t/* [BrtCsPageSetup] */\n//\t/* [HEADERFOOTER] */\n//\t/* BrtDrawing */\n//\t/* [BrtLegacyDrawing] */\n//\t/* [BrtLegacyDrawingHF] */\n//\t/* [BrtBkHim] */\n//\t/* [WEBPUBITEMS] */\n//\t/* FRTCHARTSHEET */\n//\twrite_record(ba, 0x0082 /* BrtEndSheet */);\n//\treturn ba.end();\n//}\n/* 18.2.28 (CT_WorkbookProtection) Defaults */\nvar WBPropsDef = [\n\t['allowRefreshQuery', false, \"bool\"],\n\t['autoCompressPictures', true, \"bool\"],\n\t['backupFile', false, \"bool\"],\n\t['checkCompatibility', false, \"bool\"],\n\t['CodeName', ''],\n\t['date1904', false, \"bool\"],\n\t['defaultThemeVersion', 0, \"int\"],\n\t['filterPrivacy', false, \"bool\"],\n\t['hidePivotFieldList', false, \"bool\"],\n\t['promptedSolutions', false, \"bool\"],\n\t['publishItems', false, \"bool\"],\n\t['refreshAllConnections', false, \"bool\"],\n\t['saveExternalLinkValues', true, \"bool\"],\n\t['showBorderUnselectedTables', true, \"bool\"],\n\t['showInkAnnotation', true, \"bool\"],\n\t['showObjects', 'all'],\n\t['showPivotChartFilter', false, \"bool\"],\n\t['updateLinks', 'userSet']\n];\n\n/* 18.2.30 (CT_BookView) Defaults */\nvar WBViewDef = [\n\t['activeTab', 0, \"int\"],\n\t['autoFilterDateGrouping', true, \"bool\"],\n\t['firstSheet', 0, \"int\"],\n\t['minimized', false, \"bool\"],\n\t['showHorizontalScroll', true, \"bool\"],\n\t['showSheetTabs', true, \"bool\"],\n\t['showVerticalScroll', true, \"bool\"],\n\t['tabRatio', 600, \"int\"],\n\t['visibility', 'visible']\n\t//window{Height,Width}, {x,y}Window\n];\n\n/* 18.2.19 (CT_Sheet) Defaults */\nvar SheetDef = [\n\t//['state', 'visible']\n];\n\n/* 18.2.2 (CT_CalcPr) Defaults */\nvar CalcPrDef = [\n\t['calcCompleted', 'true'],\n\t['calcMode', 'auto'],\n\t['calcOnSave', 'true'],\n\t['concurrentCalc', 'true'],\n\t['fullCalcOnLoad', 'false'],\n\t['fullPrecision', 'true'],\n\t['iterate', 'false'],\n\t['iterateCount', '100'],\n\t['iterateDelta', '0.001'],\n\t['refMode', 'A1']\n];\n\n/* 18.2.3 (CT_CustomWorkbookView) Defaults */\n/*var CustomWBViewDef = [\n\t['autoUpdate', 'false'],\n\t['changesSavedWin', 'false'],\n\t['includeHiddenRowCol', 'true'],\n\t['includePrintSettings', 'true'],\n\t['maximized', 'false'],\n\t['minimized', 'false'],\n\t['onlySync', 'false'],\n\t['personalView', 'false'],\n\t['showComments', 'commIndicator'],\n\t['showFormulaBar', 'true'],\n\t['showHorizontalScroll', 'true'],\n\t['showObjects', 'all'],\n\t['showSheetTabs', 'true'],\n\t['showStatusbar', 'true'],\n\t['showVerticalScroll', 'true'],\n\t['tabRatio', '600'],\n\t['xWindow', '0'],\n\t['yWindow', '0']\n];*/\n\nfunction push_defaults_array(target, defaults) {\n\tfor(var j = 0; j != target.length; ++j) { var w = target[j];\n\t\tfor(var i=0; i != defaults.length; ++i) { var z = defaults[i];\n\t\t\tif(w[z[0]] == null) w[z[0]] = z[1];\n\t\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof w[z[0]] == \"string\") w[z[0]] = parsexmlbool(w[z[0]]); break;\n\t\t\tcase \"int\": if(typeof w[z[0]] == \"string\") w[z[0]] = parseInt(w[z[0]], 10); break;\n\t\t\t}\n\t\t}\n\t}\n}\nfunction push_defaults(target, defaults) {\n\tfor(var i = 0; i != defaults.length; ++i) { var z = defaults[i];\n\t\tif(target[z[0]] == null) target[z[0]] = z[1];\n\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof target[z[0]] == \"string\") target[z[0]] = parsexmlbool(target[z[0]]); break;\n\t\t\tcase \"int\": if(typeof target[z[0]] == \"string\") target[z[0]] = parseInt(target[z[0]], 10); break;\n\t\t}\n\t}\n}\n\nfunction parse_wb_defaults(wb) {\n\tpush_defaults(wb.WBProps, WBPropsDef);\n\tpush_defaults(wb.CalcPr, CalcPrDef);\n\n\tpush_defaults_array(wb.WBView, WBViewDef);\n\tpush_defaults_array(wb.Sheets, SheetDef);\n\n\t_ssfopts.date1904 = parsexmlbool(wb.WBProps.date1904);\n}\n\nfunction safe1904(wb/*:Workbook*/)/*:string*/ {\n\t/* TODO: store date1904 somewhere else */\n\tif(!wb.Workbook) return \"false\";\n\tif(!wb.Workbook.WBProps) return \"false\";\n\treturn parsexmlbool(wb.Workbook.WBProps.date1904) ? \"true\" : \"false\";\n}\n\nvar badchars = /*#__PURE__*/\":][*?\\/\\\\\".split(\"\");\nfunction check_ws_name(n/*:string*/, safe/*:?boolean*/)/*:boolean*/ {\n\ttry {\n\t\tif(n == \"\") throw new Error(\"Sheet name cannot be blank\");\n\t\tif(n.length > 31) throw new Error(\"Sheet name cannot exceed 31 chars\");\n\t\tif(n.charCodeAt(0) == 0x27 || n.charCodeAt(n.length - 1) == 0x27) throw new Error(\"Sheet name cannot start or end with apostrophe (')\");\n\t\tif(n.toLowerCase() == \"history\") throw new Error(\"Sheet name cannot be 'History'\");\n\t\tbadchars.forEach(function(c) {\n\t\t\tif(n.indexOf(c) == -1) return;\n\t\t\tthrow new Error(\"Sheet name cannot contain : \\\\ / ? * [ ]\");\n\t\t});\n\t} catch(e) { if(safe) return false; throw e; }\n\treturn true;\n}\nfunction check_wb_names(N, S, codes) {\n\tN.forEach(function(n,i) {\n\t\tcheck_ws_name(n);\n\t\tfor(var j = 0; j < i; ++j) if(n == N[j]) throw new Error(\"Duplicate Sheet Name: \" + n);\n\t\tif(codes) {\n\t\t\tvar cn = (S && S[i] && S[i].CodeName) || n;\n\t\t\tif(cn.charCodeAt(0) == 95 && cn.length > 22) throw new Error(\"Bad Code Name: Worksheet\" + cn);\n\t\t}\n\t});\n}\nfunction check_wb(wb) {\n\tif(!wb || !wb.SheetNames || !wb.Sheets) throw new Error(\"Invalid Workbook\");\n\tif(!wb.SheetNames.length) throw new Error(\"Workbook is empty\");\n\tvar Sheets = (wb.Workbook && wb.Workbook.Sheets) || [];\n\tcheck_wb_names(wb.SheetNames, Sheets, !!wb.vbaraw);\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) check_ws(wb.Sheets[wb.SheetNames[i]], wb.SheetNames[i], i);\n\twb.SheetNames.forEach(function(n, i) {\n\t\tvar ws = wb.Sheets[n];\n\t\tif(!ws || !ws[\"!autofilter\"]) return;\n\t\tvar DN;\n\t\tif(!wb.Workbook) wb.Workbook = {};\n\t\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\t\twb.Workbook.Names.forEach(function(dn) { if(dn.Name == \"_xlnm._FilterDatabase\" && dn.Sheet == i) DN = dn; });\n\t\tvar nn = formula_quote_sheet_name(n) + \"!\" + fix_range(ws[\"!autofilter\"].ref);\n\t\tif(DN) DN.Ref = nn;\n\t\telse wb.Workbook.Names.push({Name: \"_xlnm._FilterDatabase\", Sheet: i, Ref: nn});\n\t});\n\t/* TODO: validate workbook */\n}\n/* 18.2 Workbook */\nvar wbnsregex = /<\\w+:workbook/;\nfunction parse_wb_xml(data, opts)/*:WorkbookFile*/ {\n\tif(!data) throw new Error(\"Could not find file\");\n\tvar wb = /*::(*/{ AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, Names:[], xmlns: \"\" }/*::)*/;\n\tvar pass = false, xmlns = \"xmlns\";\n\tvar dname = {}, dnstart = 0;\n\tdata.replace(tagregex, function xml_wb(x, idx) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.13 fileVersion CT_FileVersion ? */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.2.12 fileSharing CT_FileSharing ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.28 workbookPr CT_WorkbookPr ? */\n\t\t\tcase '':\n\t\t\t\tWBPropsDef.forEach(function(w) {\n\t\t\t\t\tif(y[w[0]] == null) return;\n\t\t\t\t\tswitch(w[2]) {\n\t\t\t\t\t\tcase \"bool\": wb.WBProps[w[0]] = parsexmlbool(y[w[0]]); break;\n\t\t\t\t\t\tcase \"int\": wb.WBProps[w[0]] = parseInt(y[w[0]], 10); break;\n\t\t\t\t\t\tdefault: wb.WBProps[w[0]] = y[w[0]];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(y.codeName) wb.WBProps.CodeName = utf8read(y.codeName);\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.29 workbookProtection CT_WorkbookProtection ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.1 bookViews CT_BookViews ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.30 workbookView CT_BookView + */\n\t\t\tcase '': delete y[0]; wb.WBView.push(y); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.20 sheets CT_Sheets 1 */\n\t\t\tcase '': case '': break; // aggregate sheet\n\t\t\t/* 18.2.19 sheet CT_Sheet + */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.15 functionGroups CT_FunctionGroups ? */\n\t\t\tcase '': break;\n\t\t\t/* 18.2.14 functionGroup CT_FunctionGroup + */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.8 externalReference CT_ExternalReference + */\n\t\t\tcase '': break;\n\t\t\tcase '': case '': pass=false; break;\n\t\t\t/* 18.2.5 definedName CT_DefinedName + */\n\t\t\tcase '': {\n\t\t\t\tdname.Ref = unescapexml(utf8read(data.slice(dnstart, idx)));\n\t\t\t\twb.Names.push(dname);\n\t\t\t} break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.2 calcPr CT_CalcPr ? */\n\t\t\tcase '': delete y[0]; wb.CalcPr = y; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.16 oleSize CT_OleSize ? (ref required) */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.18 pivotCaches CT_PivotCaches ? */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.23 smartTagTypes CT_SmartTagTypes ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.22 smartTagType CT_SmartTagType ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.11 fileRecoveryPr CT_FileRecoveryPr ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.26 webPublishObjects CT_WebPublishObjects ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.25 webPublishObject CT_WebPublishObject ? */\n\t\t\tcase '': case '': case '': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '': pass=false; break;\n\n\t\t\t/* Others */\n\t\t\tcase '': pass=true; break;\n\t\t\tcase '': pass=false; break;\n\n\t\t\t/* TODO */\n\t\t\tcase ' 0);\n\n\t/* fileVersion */\n\t/* fileSharing */\n\n\tvar workbookPr/*:any*/ = ({codeName:\"ThisWorkbook\"}/*:any*/);\n\tif(wb.Workbook && wb.Workbook.WBProps) {\n\t\tWBPropsDef.forEach(function(x) {\n\t\t\t/*:: if(!wb.Workbook || !wb.Workbook.WBProps) throw \"unreachable\"; */\n\t\t\tif((wb.Workbook.WBProps[x[0]]/*:any*/) == null) return;\n\t\t\tif((wb.Workbook.WBProps[x[0]]/*:any*/) == x[1]) return;\n\t\t\tworkbookPr[x[0]] = (wb.Workbook.WBProps[x[0]]/*:any*/);\n\t\t});\n\t\t/*:: if(!wb.Workbook || !wb.Workbook.WBProps) throw \"unreachable\"; */\n\t\tif(wb.Workbook.WBProps.CodeName) { workbookPr.codeName = wb.Workbook.WBProps.CodeName; delete workbookPr.CodeName; }\n\t}\n\to[o.length] = (writextag('workbookPr', null, workbookPr));\n\n\t/* workbookProtection */\n\n\tvar sheets = wb.Workbook && wb.Workbook.Sheets || [];\n\tvar i = 0;\n\n\t/* bookViews only written if first worksheet is hidden */\n\tif(sheets && sheets[0] && !!sheets[0].Hidden) {\n\t\to[o.length] = \"\";\n\t\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\t\tif(!sheets[i]) break;\n\t\t\tif(!sheets[i].Hidden) break;\n\t\t}\n\t\tif(i == wb.SheetNames.length) i = 0;\n\t\to[o.length] = '';\n\t\to[o.length] = \"\";\n\t}\n\n\to[o.length] = \"\";\n\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\tvar sht = ({name:escapexml(wb.SheetNames[i].slice(0,31))}/*:any*/);\n\t\tsht.sheetId = \"\"+(i+1);\n\t\tsht[\"r:id\"] = \"rId\"+(i+1);\n\t\tif(sheets[i]) switch(sheets[i].Hidden) {\n\t\t\tcase 1: sht.state = \"hidden\"; break;\n\t\t\tcase 2: sht.state = \"veryHidden\"; break;\n\t\t}\n\t\to[o.length] = (writextag('sheet',null,sht));\n\t}\n\to[o.length] = \"\";\n\n\t/* functionGroups */\n\t/* externalReferences */\n\n\tif(write_names) {\n\t\to[o.length] = \"\";\n\t\tif(wb.Workbook && wb.Workbook.Names) wb.Workbook.Names.forEach(function(n) {\n\t\t\tvar d/*:any*/ = {name:n.Name};\n\t\t\tif(n.Comment) d.comment = n.Comment;\n\t\t\tif(n.Sheet != null) d.localSheetId = \"\"+n.Sheet;\n\t\t\tif(n.Hidden) d.hidden = \"1\";\n\t\t\tif(!n.Ref) return;\n\t\t\to[o.length] = writextag('definedName', escapexml(n.Ref), d);\n\t\t});\n\t\to[o.length] = \"\";\n\t}\n\n\t/* calcPr */\n\t/* oleSize */\n\t/* customWorkbookViews */\n\t/* pivotCaches */\n\t/* smartTagPr */\n\t/* smartTagTypes */\n\t/* webPublishing */\n\t/* fileRecoveryPr */\n\t/* webPublishObjects */\n\t/* extLst */\n\n\tif(o.length>2){ o[o.length] = ''; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.304 BrtBundleSh */\nfunction parse_BrtBundleSh(data, length/*:number*/) {\n\tvar z = {};\n\tz.Hidden = data.read_shift(4); //hsState ST_SheetState\n\tz.iTabID = data.read_shift(4);\n\tz.strRelID = parse_RelID(data,length-8);\n\tz.name = parse_XLWideString(data);\n\treturn z;\n}\nfunction write_BrtBundleSh(data, o) {\n\tif(!o) o = new_buf(127);\n\to.write_shift(4, data.Hidden);\n\to.write_shift(4, data.iTabID);\n\twrite_RelID(data.strRelID, o);\n\twrite_XLWideString(data.name.slice(0,31), o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.815 BrtWbProp */\nfunction parse_BrtWbProp(data, length)/*:WBProps*/ {\n\tvar o/*:WBProps*/ = ({}/*:any*/);\n\tvar flags = data.read_shift(4);\n\to.defaultThemeVersion = data.read_shift(4);\n\tvar strName = (length > 8) ? parse_XLWideString(data) : \"\";\n\tif(strName.length > 0) o.CodeName = strName;\n\to.autoCompressPictures = !!(flags & 0x10000);\n\to.backupFile = !!(flags & 0x40);\n\to.checkCompatibility = !!(flags & 0x1000);\n\to.date1904 = !!(flags & 0x01);\n\to.filterPrivacy = !!(flags & 0x08);\n\to.hidePivotFieldList = !!(flags & 0x400);\n\to.promptedSolutions = !!(flags & 0x10);\n\to.publishItems = !!(flags & 0x800);\n\to.refreshAllConnections = !!(flags & 0x40000);\n\to.saveExternalLinkValues = !!(flags & 0x80);\n\to.showBorderUnselectedTables = !!(flags & 0x04);\n\to.showInkAnnotation = !!(flags & 0x20);\n\to.showObjects = [\"all\", \"placeholders\", \"none\"][(flags >> 13) & 0x03];\n\to.showPivotChartFilter = !!(flags & 0x8000);\n\to.updateLinks = [\"userSet\", \"never\", \"always\"][(flags >> 8) & 0x03];\n\treturn o;\n}\nfunction write_BrtWbProp(data/*:?WBProps*/, o) {\n\tif(!o) o = new_buf(72);\n\tvar flags = 0;\n\tif(data) {\n\t\t/* TODO: mirror parse_BrtWbProp fields */\n\t\tif(data.date1904) flags |= 0x01;\n\t\tif(data.filterPrivacy) flags |= 0x08;\n\t}\n\to.write_shift(4, flags);\n\to.write_shift(4, 0);\n\twrite_XLSBCodeName(data && data.CodeName || \"ThisWorkbook\", o);\n\treturn o.slice(0, o.l);\n}\n\nfunction parse_BrtFRTArchID$(data, length) {\n\tvar o = {};\n\tdata.read_shift(4);\n\to.ArchID = data.read_shift(4);\n\tdata.l += length - 8;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.687 BrtName */\nfunction parse_BrtName(data, length, opts) {\n\tvar end = data.l + length;\n\tvar flags = data.read_shift(4);\n\tdata.l += 1; //var chKey = data.read_shift(1);\n\tvar itab = data.read_shift(4);\n\tvar name = parse_XLNameWideString(data);\n\tvar formula = parse_XLSBNameParsedFormula(data, 0, opts);\n\tvar comment = parse_XLNullableWideString(data);\n\tif(flags & 0x20) name = \"_xlnm.\" + name;\n\t//if(0 /* fProc */) {\n\t\t// unusedstring1: XLNullableWideString\n\t\t// description: XLNullableWideString\n\t\t// helpTopic: XLNullableWideString\n\t\t// unusedstring2: XLNullableWideString\n\t//}\n\tdata.l = end;\n\tvar out = ({Name:name, Ptg:formula, Flags: flags}/*:any*/);\n\tif(itab < 0xFFFFFFF) out.Sheet = itab;\n\tif(comment) out.Comment = comment;\n\treturn out;\n}\nfunction write_BrtName(name, wb) {\n\tvar o = new_buf(9);\n\tvar flags = 0;\n\tvar dname = name.Name;\n\tif(XLSLblBuiltIn.indexOf(dname) > -1) { flags |= 0x20; dname = dname.slice(6); }\n\to.write_shift(4, flags); // flags\n\to.write_shift(1, 0); // chKey\n\to.write_shift(4, name.Sheet == null ? 0xFFFFFFFF : name.Sheet);\n\n\tvar arr = [\n\t\to,\n\t\twrite_XLWideString(dname),\n\t\twrite_XLSBNameParsedFormula(name.Ref, wb)\n\t];\n\tif(name.Comment) arr.push(write_XLNullableWideString(name.Comment));\n\telse {\n\t\tvar x = new_buf(4);\n\t\tx.write_shift(4, 0xFFFFFFFF);\n\t\tarr.push(x);\n\t}\n\n\t// if macro (flags & 0x0F):\n\t// write_shift(4, 0xFFFFFFFF);\n\t// write_XLNullableWideString(description)\n\t// write_XLNullableWideString(helpTopic)\n\t// write_shift(4, 0xFFFFFFFF);\n\n\treturn bconcat(arr);\n}\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction parse_wb_bin(data, opts)/*:WorkbookFile*/ {\n\tvar wb = { AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, xmlns: \"\" };\n\tvar state/*:Array*/ = [];\n\tvar pass = false;\n\n\tif(!opts) opts = {};\n\topts.biff = 12;\n\n\tvar Names = [];\n\tvar supbooks = ([[]]/*:any*/);\n\tsupbooks.SheetNames = [];\n\tsupbooks.XTI = [];\n\n\tXLSBRecordEnum[0x0010] = { n:\"BrtFRTArchID$\", f:parse_BrtFRTArchID$ };\n\n\trecordhopper(data, function hopper_wb(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009C: /* 'BrtBundleSh' */\n\t\t\t\tsupbooks.SheetNames.push(val.name);\n\t\t\t\twb.Sheets.push(val); break;\n\n\t\t\tcase 0x0099: /* 'BrtWbProp' */\n\t\t\t\twb.WBProps = val; break;\n\n\t\t\tcase 0x0027: /* 'BrtName' */\n\t\t\t\tif(val.Sheet != null) opts.SID = val.Sheet;\n\t\t\t\tval.Ref = stringify_formula(val.Ptg, null, null, supbooks, opts);\n\t\t\t\tdelete opts.SID;\n\t\t\t\tdelete val.Ptg;\n\t\t\t\tNames.push(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x040C: /* 'BrtNameExt' */ break;\n\n\t\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\tcase 0x029B: /* 'BrtSupAddin' */\n\t\t\t\tif(!supbooks[0].length) supbooks[0] = [RT, val];\n\t\t\t\telse supbooks.push([RT, val]);\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = [];\n\t\t\t\tbreak;\n\t\t\tcase 0x016A: /* 'BrtExternSheet' */\n\t\t\t\tif(supbooks.length === 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val);\n\t\t\t\tsupbooks.XTI = supbooks.XTI.concat(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x0169: /* 'BrtPlaceholderName' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0817: /* 'BrtAbsPath15' */\n\t\t\tcase 0x009E: /* 'BrtBookView' */\n\t\t\tcase 0x008F: /* 'BrtBeginBundleShs' */\n\t\t\tcase 0x0298: /* 'BrtBeginFnGroup' */\n\t\t\tcase 0x0161: /* 'BrtBeginExternals' */\n\t\t\t\tbreak;\n\n\t\t\t/* case 'BrtModelTimeGroupingCalcCol' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0C01: /* 'BrtRevisionPtr' */\n\t\t\tcase 0x0216: /* 'BrtBookProtection' */\n\t\t\tcase 0x02A5: /* 'BrtBookProtectionIso' */\n\t\t\tcase 0x009D: /* 'BrtCalcProp' */\n\t\t\tcase 0x0262: /* 'BrtCrashRecErr' */\n\t\t\tcase 0x0802: /* 'BrtDecoupledPivotCacheID' */\n\t\t\tcase 0x009B: /* 'BrtFileRecover' */\n\t\t\tcase 0x0224: /* 'BrtFileSharing' */\n\t\t\tcase 0x02A4: /* 'BrtFileSharingIso' */\n\t\t\tcase 0x0080: /* 'BrtFileVersion' */\n\t\t\tcase 0x0299: /* 'BrtFnGroup' */\n\t\t\tcase 0x0850: /* 'BrtModelRelationship' */\n\t\t\tcase 0x084D: /* 'BrtModelTable' */\n\t\t\tcase 0x0225: /* 'BrtOleSize' */\n\t\t\tcase 0x0805: /* 'BrtPivotTableRef' */\n\t\t\tcase 0x0254: /* 'BrtSmartTagType' */\n\t\t\tcase 0x081C: /* 'BrtTableSlicerCacheID' */\n\t\t\tcase 0x081B: /* 'BrtTableSlicerCacheIDs' */\n\t\t\tcase 0x0822: /* 'BrtTimelineCachePivotCacheID' */\n\t\t\tcase 0x018D: /* 'BrtUserBookView' */\n\t\t\tcase 0x009A: /* 'BrtWbFactoid' */\n\t\t\tcase 0x045D: /* 'BrtWbProp14' */\n\t\t\tcase 0x0229: /* 'BrtWebOpt' */\n\t\t\tcase 0x082B: /* 'BrtWorkBookPr15' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tcase 0x0010: /* 'BrtFRTArchID$' */ break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){/* empty */}\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != 0x0025 /* BrtACBegin */ && state[state.length-1] != 0x0023 /* BrtFRTBegin */)) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tparse_wb_defaults(wb);\n\n\t// $FlowIgnore\n\twb.Names = Names;\n\n\t(wb/*:any*/).supbooks = supbooks;\n\treturn wb;\n}\n\nfunction write_BUNDLESHS(ba, wb/*::, opts*/) {\n\twrite_record(ba, 0x008F /* BrtBeginBundleShs */);\n\tfor(var idx = 0; idx != wb.SheetNames.length; ++idx) {\n\t\tvar viz = wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx] && wb.Workbook.Sheets[idx].Hidden || 0;\n\t\tvar d = { Hidden: viz, iTabID: idx+1, strRelID: 'rId' + (idx+1), name: wb.SheetNames[idx] };\n\t\twrite_record(ba, 0x009C /* BrtBundleSh */, write_BrtBundleSh(d));\n\t}\n\twrite_record(ba, 0x0090 /* BrtEndBundleShs */);\n}\n\n/* [MS-XLSB] 2.4.649 BrtFileVersion */\nfunction write_BrtFileVersion(data, o) {\n\tif(!o) o = new_buf(127);\n\tfor(var i = 0; i != 4; ++i) o.write_shift(4, 0);\n\twrite_XLWideString(\"SheetJS\", o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(\"7262\", o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.301 BrtBookView */\nfunction write_BrtBookView(idx, o) {\n\tif(!o) o = new_buf(29);\n\to.write_shift(-4, 0);\n\to.write_shift(-4, 460);\n\to.write_shift(4, 28800);\n\to.write_shift(4, 17600);\n\to.write_shift(4, 500);\n\to.write_shift(4, idx);\n\to.write_shift(4, idx);\n\tvar flags = 0x78;\n\to.write_shift(1, flags);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\nfunction write_BOOKVIEWS(ba, wb/*::, opts*/) {\n\t/* required if hidden tab appears before visible tab */\n\tif(!wb.Workbook || !wb.Workbook.Sheets) return;\n\tvar sheets = wb.Workbook.Sheets;\n\tvar i = 0, vistab = -1, hidden = -1;\n\tfor(; i < sheets.length; ++i) {\n\t\tif(!sheets[i] || !sheets[i].Hidden && vistab == -1) vistab = i;\n\t\telse if(sheets[i].Hidden == 1 && hidden == -1) hidden = i;\n\t}\n\tif(hidden > vistab) return;\n\twrite_record(ba, 0x0087 /* BrtBeginBookViews */);\n\twrite_record(ba, 0x009E /* BrtBookView */, write_BrtBookView(vistab));\n\t/* 1*(BrtBookView *FRT) */\n\twrite_record(ba, 0x0088 /* BrtEndBookViews */);\n}\n\nfunction write_BRTNAMES(ba, wb) {\n\tif(!wb.Workbook || !wb.Workbook.Names) return;\n\twb.Workbook.Names.forEach(function(name) { try {\n\t\tif(name.Flags & 0x0e) return; // TODO: macro name write\n\t\twrite_record(ba, 0x0027 /* BrtName */, write_BrtName(name, wb));\n\t} catch(e) {\n\t\tconsole.error(\"Could not serialize defined name \" + JSON.stringify(name));\n\t} });\n}\n\nfunction write_SELF_EXTERNS_xlsb(wb) {\n\tvar L = wb.SheetNames.length;\n\tvar o = new_buf(12 * L + 28);\n\to.write_shift(4, L + 2);\n\to.write_shift(4, 0); o.write_shift(4, -2); o.write_shift(4, -2); // workbook-level reference\n\to.write_shift(4, 0); o.write_shift(4, -1); o.write_shift(4, -1); // #REF!...\n\tfor(var i = 0; i < L; ++i) {\n\t\to.write_shift(4, 0); o.write_shift(4, i); o.write_shift(4, i);\n\t}\n\treturn o;\n}\nfunction write_EXTERNALS_xlsb(ba, wb) {\n\twrite_record(ba, 0x0161 /* BrtBeginExternals */);\n\twrite_record(ba, 0x0165 /* BrtSupSelf */);\n\twrite_record(ba, 0x016A /* BrtExternSheet */, write_SELF_EXTERNS_xlsb(wb, 0));\n\twrite_record(ba, 0x0162 /* BrtEndExternals */);\n}\n\n/* [MS-XLSB] 2.4.305 BrtCalcProp */\n/*function write_BrtCalcProp(data, o) {\n\tif(!o) o = new_buf(26);\n\to.write_shift(4,0); // force recalc\n\to.write_shift(4,1);\n\to.write_shift(4,0);\n\twrite_Xnum(0, o);\n\to.write_shift(-4, 1023);\n\to.write_shift(1, 0x33);\n\to.write_shift(1, 0x00);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.4.646 BrtFileRecover */\n/*function write_BrtFileRecover(data, o) {\n\tif(!o) o = new_buf(1);\n\to.write_shift(1,0);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction write_wb_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x0083 /* BrtBeginBook */);\n\twrite_record(ba, 0x0080 /* BrtFileVersion */, write_BrtFileVersion());\n\t/* [[BrtFileSharingIso] BrtFileSharing] */\n\twrite_record(ba, 0x0099 /* BrtWbProp */, write_BrtWbProp(wb.Workbook && wb.Workbook.WBProps || null));\n\t/* [ACABSPATH] */\n\t/* [[BrtBookProtectionIso] BrtBookProtection] */\n\twrite_BOOKVIEWS(ba, wb, opts);\n\twrite_BUNDLESHS(ba, wb, opts);\n\t/* [FNGROUP] */\n\twrite_EXTERNALS_xlsb(ba, wb);\n\tif((wb.Workbook||{}).Names) write_BRTNAMES(ba, wb);\n\t/* write_record(ba, 0x009D BrtCalcProp, write_BrtCalcProp()); */\n\t/* [BrtOleSize] */\n\t/* *(BrtUserBookView *FRT) */\n\t/* [PIVOTCACHEIDS] */\n\t/* [BrtWbFactoid] */\n\t/* [SMARTTAGTYPES] */\n\t/* [BrtWebOpt] */\n\t/* write_record(ba, 0x009B BrtFileRecover, write_BrtFileRecover()); */\n\t/* [WEBPUBITEMS] */\n\t/* [CRERRS] */\n\t/* FRTWORKBOOK */\n\twrite_record(ba, 0x0084 /* BrtEndBook */);\n\n\treturn ba.end();\n}\nfunction parse_wb(data, name/*:string*/, opts)/*:WorkbookFile*/ {\n\tif(name.slice(-4)===\".bin\") return parse_wb_bin((data/*:any*/), opts);\n\treturn parse_wb_xml((data/*:any*/), opts);\n}\n\nfunction parse_ws(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ws_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ws_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_cs(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_cs_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_cs_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ms(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ms_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ms_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ds(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ds_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ds_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_sty(data, name/*:string*/, themes, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_sty_bin((data/*:any*/), themes, opts);\n\treturn parse_sty_xml((data/*:any*/), themes, opts);\n}\n\nfunction parse_sst(data, name/*:string*/, opts)/*:SST*/ {\n\tif(name.slice(-4)===\".bin\") return parse_sst_bin((data/*:any*/), opts);\n\treturn parse_sst_xml((data/*:any*/), opts);\n}\n\nfunction parse_cmnt(data, name/*:string*/, opts)/*:Array*/ {\n\tif(name.slice(-4)===\".bin\") return parse_comments_bin((data/*:any*/), opts);\n\treturn parse_comments_xml((data/*:any*/), opts);\n}\n\nfunction parse_cc(data, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_cc_bin((data/*:any*/), name, opts);\n\treturn parse_cc_xml((data/*:any*/), name, opts);\n}\n\nfunction parse_xlink(data, rel, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_xlink_bin((data/*:any*/), rel, name, opts);\n\treturn parse_xlink_xml((data/*:any*/), rel, name, opts);\n}\n\nfunction parse_xlmeta(data, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_xlmeta_bin((data/*:any*/), name, opts);\n\treturn parse_xlmeta_xml((data/*:any*/), name, opts);\n}\nvar attregexg2=/([\\w:]+)=((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:'))/g;\nvar attregex2=/([\\w:]+)=((?:\")(?:[^\"]*)(?:\")|(?:')(?:[^']*)(?:'))/;\nfunction xlml_parsexmltag(tag/*:string*/, skip_root/*:?boolean*/) {\n\tvar words = tag.split(/\\s+/);\n\tvar z/*:any*/ = ([]/*:any*/); if(!skip_root) z[0] = words[0];\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\n/*:: if(!y || !y[2]) continue; */\n\t\tif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\nfunction xlml_parsexmltagobj(tag/*:string*/) {\n\tvar words = tag.split(/\\s+/);\n\tvar z = {};\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\n/*:: if(!y || !y[2]) continue; */\n\t\tif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\n\n// ----\n\n/* map from xlml named formats to SSF TODO: localize */\nvar XLMLFormatMap/*: {[string]:string}*/;\n\nfunction xlml_format(format, value, date1904)/*:string*/ {\n\tvar fmt = XLMLFormatMap[format] || unescapexml(format);\n\tif(fmt === \"General\") return SSF_general(value);\n\treturn SSF_format(fmt, value, {date1904: !!date1904});\n}\n\nfunction xlml_set_custprop(Custprops, key, cp, val/*:string*/) {\n\tvar oval/*:any*/ = val;\n\tswitch((cp[0].match(/dt:dt=\"([\\w.]+)\"/)||[\"\",\"\"])[1]) {\n\t\tcase \"boolean\": oval = parsexmlbool(val); break;\n\t\tcase \"i2\": case \"int\": oval = parseInt(val, 10); break;\n\t\tcase \"r4\": case \"float\": oval = parseFloat(val); break;\n\t\tcase \"date\": case \"dateTime.tz\": oval = parseDate(val); break;\n\t\tcase \"i8\": case \"string\": case \"fixed\": case \"uuid\": case \"bin.base64\": break;\n\t\tdefault: throw new Error(\"bad custprop:\" + cp[0]);\n\t}\n\tCustprops[unescapexml(key)] = oval;\n}\n\nfunction safe_format_xlml(cell/*:Cell*/, nf, o, date1904) {\n\tif(cell.t === 'z') return;\n\tif(!o || o.cellText !== false) try {\n\t\tif(cell.t === 'e') { cell.w = cell.w || BErr[cell.v]; }\n\t\telse if(nf === \"General\") {\n\t\t\tif(cell.t === 'n') {\n\t\t\t\tif((cell.v|0) === cell.v) cell.w = cell.v.toString(10);\n\t\t\t\telse cell.w = SSF_general_num(cell.v);\n\t\t\t}\n\t\t\telse cell.w = SSF_general(cell.v);\n\t\t}\n\t\telse cell.w = xlml_format(nf||\"General\", cell.v, date1904);\n\t} catch(e) { if(o.WTF) throw e; }\n\ttry {\n\t\tvar z = XLMLFormatMap[nf]||nf||\"General\";\n\t\tif(o.cellNF) cell.z = z;\n\t\tif(o.cellDates && cell.t == 'n' && fmt_is_date(z)) {\n\t\t\tvar _d = SSF_parse_date_code(cell.v + (date1904 ? 1462 : 0)); if(_d) { cell.t = 'd'; cell.v = new Date(Date.UTC(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u)); }\n\t\t}\n\t} catch(e) { if(o.WTF) throw e; }\n}\n\nfunction process_style_xlml(styles, stag, opts) {\n\tif(opts.cellStyles) {\n\t\tif(stag.Interior) {\n\t\t\tvar I = stag.Interior;\n\t\t\tif(I.Pattern) I.patternType = XLMLPatternTypeMap[I.Pattern] || I.Pattern;\n\t\t}\n\t}\n\tstyles[stag.ID] = stag;\n}\n\n/* TODO: there must exist some form of OSP-blessed spec */\nfunction parse_xlml_data(xml, ss, data, cell/*:any*/, base, styles, csty, row, arrayf, o, date1904) {\n\tvar nf = \"General\", sid = cell.StyleID, S = {}; o = o || {};\n\tvar interiors = [];\n\tvar i = 0;\n\tif(sid === undefined && row) sid = row.StyleID;\n\tif(sid === undefined && csty) sid = csty.StyleID;\n\twhile(styles[sid] !== undefined) {\n\t\tif(styles[sid].nf) nf = styles[sid].nf;\n\t\tif(styles[sid].Interior) interiors.push(styles[sid].Interior);\n\t\tif(!styles[sid].Parent) break;\n\t\tsid = styles[sid].Parent;\n\t}\n\tswitch(data.Type) {\n\t\tcase 'Boolean':\n\t\t\tcell.t = 'b';\n\t\t\tcell.v = parsexmlbool(xml);\n\t\t\tbreak;\n\t\tcase 'String':\n\t\t\tcell.t = 's'; cell.r = xlml_fixstr(unescapexml(xml));\n\t\t\tcell.v = (xml.indexOf(\"<\") > -1 ? unescapexml(ss||xml).replace(/<.*?>/g, \"\") : cell.r); // todo: BR etc\n\t\t\tbreak;\n\t\tcase 'DateTime':\n\t\t\tif(xml.slice(-1) != \"Z\") xml += \"Z\";\n\t\t\tcell.v = datenum(parseDate(xml, date1904), date1904);\n\t\t\tif(cell.v !== cell.v) cell.v = unescapexml(xml);\n\t\t\tif(!nf || nf == \"General\") nf = \"yyyy-mm-dd\";\n\t\t\t/* falls through */\n\t\tcase 'Number':\n\t\t\tif(cell.v === undefined) cell.v=+xml;\n\t\t\tif(!cell.t) cell.t = 'n';\n\t\t\tbreak;\n\t\tcase 'Error': cell.t = 'e'; cell.v = RBErr[xml]; if(o.cellText !== false) cell.w = xml; break;\n\t\tdefault:\n\t\t\tif(xml == \"\" && ss == \"\") { cell.t = 'z'; }\n\t\t\telse { cell.t = 's'; cell.v = xlml_fixstr(ss||xml); }\n\t\t\tbreak;\n\t}\n\tsafe_format_xlml(cell, nf, o, date1904);\n\tif(o.cellFormula !== false) {\n\t\tif(cell.Formula) {\n\t\t\tvar fstr = unescapexml(cell.Formula);\n\t\t\t/* strictly speaking, the leading = is required but some writers omit */\n\t\t\tif(fstr.charCodeAt(0) == 61 /* = */) fstr = fstr.slice(1);\n\t\t\tcell.f = rc_to_a1(fstr, base);\n\t\t\tdelete cell.Formula;\n\t\t\tif(cell.ArrayRange == \"RC\") cell.F = rc_to_a1(\"RC:RC\", base);\n\t\t\telse if(cell.ArrayRange) {\n\t\t\t\tcell.F = rc_to_a1(cell.ArrayRange, base);\n\t\t\t\tarrayf.push([safe_decode_range(cell.F), cell.F]);\n\t\t\t}\n\t\t} else {\n\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\tif(base.r >= arrayf[i][0].s.r && base.r <= arrayf[i][0].e.r)\n\t\t\t\t\tif(base.c >= arrayf[i][0].s.c && base.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\tcell.F = arrayf[i][1];\n\t\t}\n\t}\n\tif(o.cellStyles) {\n\t\tinteriors.forEach(function(x) {\n\t\t\tif(!S.patternType && x.patternType) S.patternType = x.patternType;\n\t\t});\n\t\tcell.s = S;\n\t}\n\tif(cell.StyleID !== undefined) cell.ixfe = cell.StyleID;\n}\n\nfunction xlml_prefix_dname(dname) {\n\treturn XLSLblBuiltIn.indexOf(\"_xlnm.\" + dname) > -1 ? \"_xlnm.\" + dname : dname;\n}\n\nfunction xlml_clean_comment(comment/*:any*/) {\n\tcomment.t = comment.v || \"\";\n\tcomment.t = comment.t.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\tcomment.v = comment.w = comment.ixfe = undefined;\n}\n\n/* TODO: Everything */\nfunction parse_xlml_xml(d, _opts)/*:Workbook*/ {\n\tvar opts = _opts || {};\n\tmake_ssf();\n\tvar str = debom(xlml_normalize(d));\n\tif(opts.type == 'binary' || opts.type == 'array' || opts.type == 'base64') {\n\t\tif(typeof $cptable !== 'undefined') str = $cptable.utils.decode(65001, char_codes(str));\n\t\telse str = utf8read(str);\n\t}\n\tvar opening = str.slice(0, 1024).toLowerCase(), ishtml = false;\n\topening = opening.replace(/\".*?\"/g, \"\");\n\tif((opening.indexOf(\">\") & 1023) > Math.min((opening.indexOf(\",\") & 1023), (opening.indexOf(\";\")&1023))) { var _o = dup(opts); _o.type = \"string\"; return PRN.to_workbook(str, _o); }\n\tif(opening.indexOf(\"= 0) ishtml = true; });\n\tif(ishtml) return html_to_workbook(str, opts);\n\n\tXLMLFormatMap = ({\n\t\t\"General Number\": \"General\",\n\t\t\"General Date\": table_fmt[22],\n\t\t\"Long Date\": \"dddd, mmmm dd, yyyy\",\n\t\t\"Medium Date\": table_fmt[15],\n\t\t\"Short Date\": table_fmt[14],\n\t\t\"Long Time\": table_fmt[19],\n\t\t\"Medium Time\": table_fmt[18],\n\t\t\"Short Time\": table_fmt[20],\n\t\t\"Currency\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\t\"Fixed\": table_fmt[2],\n\t\t\"Standard\": table_fmt[4],\n\t\t\"Percent\": table_fmt[10],\n\t\t\"Scientific\": table_fmt[11],\n\t\t\"Yes/No\": '\"Yes\";\"Yes\";\"No\";@',\n\t\t\"True/False\": '\"True\";\"True\";\"False\";@',\n\t\t\"On/Off\": '\"Yes\";\"Yes\";\"No\";@'\n\t}/*:any*/);\n\n\n\tvar Rn;\n\tvar state = [], tmp;\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar sheets = {}, sheetnames/*:Array*/ = [], cursheet/*:Worksheet*/ = ({}), sheetname = \"\"; if(opts.dense) cursheet[\"!data\"] = [];\n\tvar cell = ({}/*:any*/), row = {};// eslint-disable-line no-unused-vars\n\tvar dtag = xlml_parsexmltag(''), didx = 0;\n\tvar c = 0, r = 0;\n\tvar refguess/*:Range*/ = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\tvar styles = {}, stag = {};\n\tvar ss = \"\", fidx = 0;\n\tvar merges/*:Array*/ = [];\n\tvar Props = {}, Custprops = {}, pidx = 0, cp = [];\n\tvar comments/*:Array*/ = [], comment/*:Comment*/ = ({}/*:any*/);\n\tvar cstys = [], csty, seencol = false;\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar rowinfo/*:Array*/ = [], rowobj = {}, cc = 0, rr = 0;\n\tvar Workbook/*:WBWBProps*/ = ({ Sheets:[], WBProps:{date1904:false} }/*:any*/), wsprops = {};\n\txlmlregex.lastIndex = 0;\n\tstr = str.replace(//mg,\"\");\n\tvar raw_Rn3 = \"\";\n\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3] = (raw_Rn3 = Rn[3]).toLowerCase())) {\n\t\tcase 'data' /*case 'Data'*/:\n\t\t\tif(raw_Rn3 == \"data\") {\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(state[state.length-1][1]) break;\n\t\t\tif(Rn[1]==='/') parse_xlml_data(str.slice(didx, Rn.index), ss, dtag, state[state.length-1][0]==/*\"Comment\"*/\"comment\"?comment:cell, {c:c,r:r}, styles, cstys[c], row, arrayf, opts, Workbook.WBProps.date1904);\n\t\t\telse { ss = \"\"; dtag = xlml_parsexmltag(Rn[0]); didx = Rn.index + Rn[0].length; }\n\t\t\tbreak;\n\t\tcase 'cell' /*case 'Cell'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif(comments.length > 0) cell.c = comments;\n\t\t\t\tif((!opts.sheetRows || opts.sheetRows > r) && cell.v !== void 0) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!cursheet[\"!data\"][r]) cursheet[\"!data\"][r] = [];\n\t\t\t\t\t\tcursheet[\"!data\"][r][c] = cell;\n\t\t\t\t\t} else cursheet[encode_col(c) + encode_row(r)] = cell;\n\t\t\t\t}\n\t\t\t\tif(cell.HRef) {\n\t\t\t\t\tcell.l = ({Target:unescapexml(cell.HRef)}/*:any*/);\n\t\t\t\t\tif(cell.HRefScreenTip) cell.l.Tooltip = cell.HRefScreenTip;\n\t\t\t\t\tdelete cell.HRef; delete cell.HRefScreenTip;\n\t\t\t\t}\n\t\t\t\tif(cell.MergeAcross || cell.MergeDown) {\n\t\t\t\t\tcc = c + (parseInt(cell.MergeAcross,10)|0);\n\t\t\t\t\trr = r + (parseInt(cell.MergeDown,10)|0);\n\t\t\t\t\tif(cc > c || rr > r) merges.push({s:{c:c,r:r},e:{c:cc,r:rr}});\n\t\t\t\t}\n\t\t\t\tif(!opts.sheetStubs) { if(cell.MergeAcross) c = cc + 1; else ++c; }\n\t\t\t\telse if(cell.MergeAcross || cell.MergeDown) {\n\t\t\t\t\t/*:: if(!cc) cc = 0; if(!rr) rr = 0; */\n\t\t\t\t\tfor(var cma = c; cma <= cc; ++cma) {\n\t\t\t\t\t\tfor(var cmd = r; cmd <= rr; ++cmd) {\n\t\t\t\t\t\t\tif(cma > c || cmd > r) {\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!cursheet[\"!data\"][cmd]) cursheet[\"!data\"][cmd] = [];\n\t\t\t\t\t\t\t\t\tcursheet[\"!data\"][cmd][cma] = {t:'z'};\n\t\t\t\t\t\t\t\t} else cursheet[encode_col(cma) + encode_row(cmd)] = {t:'z'};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tc = cc + 1;\n\t\t\t\t}\n\t\t\t\telse ++c;\n\t\t\t} else {\n\t\t\t\tcell = xlml_parsexmltagobj(Rn[0]);\n\t\t\t\tif(cell.Index) c = +cell.Index - 1;\n\t\t\t\tif(c < refguess.s.c) refguess.s.c = c;\n\t\t\t\tif(c > refguess.e.c) refguess.e.c = c;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") ++c;\n\t\t\t\tcomments = [];\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'row' /*case 'Row'*/:\n\t\t\tif(Rn[1]==='/' || Rn[0].slice(-2) === \"/>\") {\n\t\t\t\tif(r < refguess.s.r) refguess.s.r = r;\n\t\t\t\tif(r > refguess.e.r) refguess.e.r = r;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") {\n\t\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\t}\n\t\t\t\tc = 0; ++r;\n\t\t\t} else {\n\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\trowobj = {};\n\t\t\t\tif(row.AutoFitHeight == \"0\" || row.Height) {\n\t\t\t\t\trowobj.hpx = parseInt(row.Height, 10); rowobj.hpt = px2pt(rowobj.hpx);\n\t\t\t\t\trowinfo[r] = rowobj;\n\t\t\t\t}\n\t\t\t\tif(row.Hidden == \"1\") { rowobj.hidden = true; rowinfo[r] = rowobj; }\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'worksheet' /*case 'Worksheet'*/: /* TODO: read range from FullRows/FullColumns */\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\tsheetnames.push(sheetname);\n\t\t\t\tif(refguess.s.r <= refguess.e.r && refguess.s.c <= refguess.e.c) {\n\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\tif(opts.sheetRows && opts.sheetRows <= refguess.e.r) {\n\t\t\t\t\t\tcursheet[\"!fullref\"] = cursheet[\"!ref\"];\n\t\t\t\t\t\trefguess.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(merges.length) cursheet[\"!merges\"] = merges;\n\t\t\t\tif(cstys.length > 0) cursheet[\"!cols\"] = cstys;\n\t\t\t\tif(rowinfo.length > 0) cursheet[\"!rows\"] = rowinfo;\n\t\t\t\tsheets[sheetname] = cursheet;\n\t\t\t} else {\n\t\t\t\trefguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\t\t\t\tr = c = 0;\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tsheetname = unescapexml(tmp.Name);\n\t\t\t\tcursheet = ({}); if(opts.dense) cursheet[\"!data\"] = [];\n\t\t\t\tmerges = [];\n\t\t\t\tarrayf = [];\n\t\t\t\trowinfo = [];\n\t\t\t\twsprops = {name:sheetname, Hidden:0};\n\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'table' /*case 'Table'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].slice(-2) == \"/>\") break;\n\t\t\telse {\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\tcstys = []; seencol = false;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'style' /*case 'Style'*/:\n\t\t\tif(Rn[1]==='/') process_style_xlml(styles, stag, opts);\n\t\t\telse stag = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\n\t\tcase 'numberformat' /*case 'NumberFormat'*/:\n\t\t\tstag.nf = unescapexml(xlml_parsexmltag(Rn[0]).Format || \"General\");\n\t\t\tif(XLMLFormatMap[stag.nf]) stag.nf = XLMLFormatMap[stag.nf];\n\t\t\tfor(var ssfidx = 0; ssfidx != 0x188; ++ssfidx) if(table_fmt[ssfidx] == stag.nf) break;\n\t\t\tif(ssfidx == 0x188) for(ssfidx = 0x39; ssfidx != 0x188; ++ssfidx) if(table_fmt[ssfidx] == null) { SSF__load(stag.nf, ssfidx); break; }\n\t\t\tbreak;\n\n\t\tcase 'column' /*case 'Column'*/:\n\t\t\tif(state[state.length-1][0] !== /*'Table'*/'table') break;\n\t\t\tif(Rn[1]==='/') break;\n\t\t\tcsty = xlml_parsexmltag(Rn[0]);\n\t\t\tif(csty.Hidden) { csty.hidden = true; delete csty.Hidden; }\n\t\t\tif(csty.Width) csty.wpx = parseInt(csty.Width, 10);\n\t\t\tif(!seencol && csty.wpx > 10) {\n\t\t\t\tseencol = true; MDW = DEF_MDW; //find_mdw_wpx(csty.wpx);\n\t\t\t\tfor(var _col = 0; _col < cstys.length; ++_col) if(cstys[_col]) process_col(cstys[_col]);\n\t\t\t}\n\t\t\tif(seencol) process_col(csty);\n\t\t\tcstys[(csty.Index-1||cstys.length)] = csty;\n\t\t\tfor(var i = 0; i < +csty.Span; ++i) cstys[cstys.length] = dup(csty);\n\t\t\tbreak;\n\n\t\tcase 'namedrange' /*case 'NamedRange'*/:\n\t\t\tif(Rn[1]==='/') break;\n\t\t\tif(!Workbook.Names) Workbook.Names = [];\n\t\t\tvar _NamedRange = parsexmltag(Rn[0]);\n\t\t\tvar _DefinedName/*:DefinedName*/ = ({\n\t\t\t\tName: xlml_prefix_dname(_NamedRange.Name),\n\t\t\t\tRef: rc_to_a1(_NamedRange.RefersTo.slice(1), {r:0, c:0})\n\t\t\t}/*:any*/);\n\t\t\tif(Workbook.Sheets.length>0) _DefinedName.Sheet=Workbook.Sheets.length-1;\n\t\t\t/*:: if(Workbook.Names) */Workbook.Names.push(_DefinedName);\n\t\t\tbreak;\n\n\t\tcase 'namedcell' /*case 'NamedCell'*/: break;\n\t\tcase 'b' /*case 'B'*/: break;\n\t\tcase 'i' /*case 'I'*/: break;\n\t\tcase 'u' /*case 'U'*/: break;\n\t\tcase 's' /*case 'S'*/: break;\n\t\tcase 'em' /*case 'EM'*/: break;\n\t\tcase 'h2' /*case 'H2'*/: break;\n\t\tcase 'h3' /*case 'H3'*/: break;\n\t\tcase 'sub' /*case 'Sub'*/: break;\n\t\tcase 'sup' /*case 'Sup'*/: break;\n\t\tcase 'span' /*case 'Span'*/: break;\n\t\tcase 'alignment' /*case 'Alignment'*/:\n\t\t\tbreak;\n\t\tcase 'borders' /*case 'Borders'*/: break;\n\t\tcase 'border' /*case 'Border'*/: break;\n\t\tcase 'font' /*case 'Font'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") ss += str.slice(fidx, Rn.index);\n\t\t\telse fidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'interior' /*case 'Interior'*/:\n\t\t\tif(!opts.cellStyles) break;\n\t\t\tstag.Interior = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\t\tcase 'protection' /*case 'Protection'*/: break;\n\n\t\tcase 'author' /*case 'Author'*/:\n\t\tcase 'title' /*case 'Title'*/:\n\t\tcase 'description' /*case 'Description'*/:\n\t\tcase 'created' /*case 'Created'*/:\n\t\tcase 'keywords' /*case 'Keywords'*/:\n\t\tcase 'subject' /*case 'Subject'*/:\n\t\tcase 'category' /*case 'Category'*/:\n\t\tcase 'company' /*case 'Company'*/:\n\t\tcase 'lastauthor' /*case 'LastAuthor'*/:\n\t\tcase 'lastsaved' /*case 'LastSaved'*/:\n\t\tcase 'lastprinted' /*case 'LastPrinted'*/:\n\t\tcase 'version' /*case 'Version'*/:\n\t\tcase 'revision' /*case 'Revision'*/:\n\t\tcase 'totaltime' /*case 'TotalTime'*/:\n\t\tcase 'hyperlinkbase' /*case 'HyperlinkBase'*/:\n\t\tcase 'manager' /*case 'Manager'*/:\n\t\tcase 'contentstatus' /*case 'ContentStatus'*/:\n\t\tcase 'identifier' /*case 'Identifier'*/:\n\t\tcase 'language' /*case 'Language'*/:\n\t\tcase 'appname' /*case 'AppName'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") xlml_set_prop(Props, raw_Rn3, str.slice(pidx, Rn.index));\n\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'paragraphs' /*case 'Paragraphs'*/: break;\n\n\t\tcase 'styles' /*case 'Styles'*/:\n\t\tcase 'workbook' /*case 'Workbook'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse state.push([Rn[3], false]);\n\t\t\tbreak;\n\n\t\tcase 'comment' /*case 'Comment'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\txlml_clean_comment(comment);\n\t\t\t\tcomments.push(comment);\n\t\t\t} else {\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tif(!parsexmlbool(tmp[\"ShowAlways\"]||\"0\")) comments.hidden = true;\n\t\t\t\tcomment = ({a:tmp.Author}/*:any*/);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'autofilter' /*case 'AutoFilter'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\tvar AutoFilter = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcursheet['!autofilter'] = { ref:rc_to_a1(AutoFilter.Range).replace(/\\$/g,\"\") };\n\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'name' /*case 'Name'*/: break;\n\n\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t} else {\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'pixelsperinch' /*case 'PixelsPerInch'*/:\n\t\t\tbreak;\n\t\tcase 'componentoptions' /*case 'ComponentOptions'*/:\n\t\tcase 'documentproperties' /*case 'DocumentProperties'*/:\n\t\tcase 'customdocumentproperties' /*case 'CustomDocumentProperties'*/:\n\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/:\n\t\tcase 'pivottable' /*case 'PivotTable'*/:\n\t\tcase 'pivotcache' /*case 'PivotCache'*/:\n\t\tcase 'names' /*case 'Names'*/:\n\t\tcase 'mapinfo' /*case 'MapInfo'*/:\n\t\tcase 'pagebreaks' /*case 'PageBreaks'*/:\n\t\tcase 'querytable' /*case 'QueryTable'*/:\n\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\tcase 'schema' /*case 'Schema'*/: //case 'data' /*case 'data'*/:\n\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\tcase 'smarttagtype' /*case 'SmartTagType'*/:\n\t\tcase 'smarttags' /*case 'SmartTags'*/:\n\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/:\n\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/:\n\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\tbreak;\n\n\t\tcase 'null' /*case 'Null'*/: break;\n\n\t\tdefault:\n\t\t\t/* FODS file root is */\n\t\t\tif(state.length == 0 && Rn[3] == \"document\") return parse_fods(str, opts);\n\t\t\t/* UOS file root is */\n\t\t\tif(state.length == 0 && Rn[3] == \"uof\"/*\"UOF\"*/) return parse_fods(str, opts);\n\n\t\t\tvar seen = true;\n\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t/* OfficeDocumentSettings */\n\t\t\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'allowpng' /*case 'AllowPNG'*/: break;\n\t\t\t\t\tcase 'removepersonalinformation' /*case 'RemovePersonalInformation'*/: break;\n\t\t\t\t\tcase 'downloadcomponents' /*case 'DownloadComponents'*/: break;\n\t\t\t\t\tcase 'locationofcomponents' /*case 'LocationOfComponents'*/: break;\n\t\t\t\t\tcase 'colors' /*case 'Colors'*/: break;\n\t\t\t\t\tcase 'color' /*case 'Color'*/: break;\n\t\t\t\t\tcase 'index' /*case 'Index'*/: break;\n\t\t\t\t\tcase 'rgb' /*case 'RGB'*/: break;\n\t\t\t\t\tcase 'targetscreensize' /*case 'TargetScreenSize'*/: break;\n\t\t\t\t\tcase 'readonlyrecommended' /*case 'ReadOnlyRecommended'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ComponentOptions */\n\t\t\t\tcase 'componentoptions' /*case 'ComponentOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'toolbar' /*case 'Toolbar'*/: break;\n\t\t\t\t\tcase 'hideofficelogo' /*case 'HideOfficeLogo'*/: break;\n\t\t\t\t\tcase 'spreadsheetautofit' /*case 'SpreadsheetAutoFit'*/: break;\n\t\t\t\t\tcase 'label' /*case 'Label'*/: break;\n\t\t\t\t\tcase 'caption' /*case 'Caption'*/: break;\n\t\t\t\t\tcase 'maxheight' /*case 'MaxHeight'*/: break;\n\t\t\t\t\tcase 'maxwidth' /*case 'MaxWidth'*/: break;\n\t\t\t\t\tcase 'nextsheetnumber' /*case 'NextSheetNumber'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ExcelWorkbook */\n\t\t\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'date1904' /*case 'Date1904'*/:\n\t\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\t\tWorkbook.WBProps.date1904 = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'hidehorizontalscrollbar' /*case 'HideHorizontalScrollBar'*/: break;\n\t\t\t\t\tcase 'hideverticalscrollbar' /*case 'HideVerticalScrollBar'*/: break;\n\t\t\t\t\tcase 'hideworkbooktabs' /*case 'HideWorkbookTabs'*/: break;\n\t\t\t\t\tcase 'windowheight' /*case 'WindowHeight'*/: break;\n\t\t\t\t\tcase 'windowwidth' /*case 'WindowWidth'*/: break;\n\t\t\t\t\tcase 'windowtopx' /*case 'WindowTopX'*/: break;\n\t\t\t\t\tcase 'windowtopy' /*case 'WindowTopY'*/: break;\n\t\t\t\t\tcase 'tabratio' /*case 'TabRatio'*/: break;\n\t\t\t\t\tcase 'protectstructure' /*case 'ProtectStructure'*/: break;\n\t\t\t\t\tcase 'protectwindow' /*case 'ProtectWindow'*/: break;\n\t\t\t\t\tcase 'protectwindows' /*case 'ProtectWindows'*/: break;\n\t\t\t\t\tcase 'activesheet' /*case 'ActiveSheet'*/: break;\n\t\t\t\t\tcase 'displayinknotes' /*case 'DisplayInkNotes'*/: break;\n\t\t\t\t\tcase 'firstvisiblesheet' /*case 'FirstVisibleSheet'*/: break;\n\t\t\t\t\tcase 'supbook' /*case 'SupBook'*/: break;\n\t\t\t\t\tcase 'sheetname' /*case 'SheetName'*/: break;\n\t\t\t\t\tcase 'sheetindex' /*case 'SheetIndex'*/: break;\n\t\t\t\t\tcase 'sheetindexfirst' /*case 'SheetIndexFirst'*/: break;\n\t\t\t\t\tcase 'sheetindexlast' /*case 'SheetIndexLast'*/: break;\n\t\t\t\t\tcase 'dll' /*case 'Dll'*/: break;\n\t\t\t\t\tcase 'acceptlabelsinformulas' /*case 'AcceptLabelsInFormulas'*/: break;\n\t\t\t\t\tcase 'donotsavelinkvalues' /*case 'DoNotSaveLinkValues'*/: break;\n\t\t\t\t\tcase 'iteration' /*case 'Iteration'*/: break;\n\t\t\t\t\tcase 'maxiterations' /*case 'MaxIterations'*/: break;\n\t\t\t\t\tcase 'maxchange' /*case 'MaxChange'*/: break;\n\t\t\t\t\tcase 'path' /*case 'Path'*/: break;\n\t\t\t\t\tcase 'xct' /*case 'Xct'*/: break;\n\t\t\t\t\tcase 'count' /*case 'Count'*/: break;\n\t\t\t\t\tcase 'selectedsheets' /*case 'SelectedSheets'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tcase 'uncalced' /*case 'Uncalced'*/: break;\n\t\t\t\t\tcase 'startupprompt' /*case 'StartupPrompt'*/: break;\n\t\t\t\t\tcase 'crn' /*case 'Crn'*/: break;\n\t\t\t\t\tcase 'externname' /*case 'ExternName'*/: break;\n\t\t\t\t\tcase 'formula' /*case 'Formula'*/: break;\n\t\t\t\t\tcase 'colfirst' /*case 'ColFirst'*/: break;\n\t\t\t\t\tcase 'collast' /*case 'ColLast'*/: break;\n\t\t\t\t\tcase 'wantadvise' /*case 'WantAdvise'*/: break;\n\t\t\t\t\tcase 'boolean' /*case 'Boolean'*/: break;\n\t\t\t\t\tcase 'error' /*case 'Error'*/: break;\n\t\t\t\t\tcase 'text' /*case 'Text'*/: break;\n\t\t\t\t\tcase 'ole' /*case 'OLE'*/: break;\n\t\t\t\t\tcase 'noautorecover' /*case 'NoAutoRecover'*/: break;\n\t\t\t\t\tcase 'publishobjects' /*case 'PublishObjects'*/: break;\n\t\t\t\t\tcase 'donotcalculatebeforesave' /*case 'DoNotCalculateBeforeSave'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'refmoder1c1' /*case 'RefModeR1C1'*/: break;\n\t\t\t\t\tcase 'embedsavesmarttags' /*case 'EmbedSaveSmartTags'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorkbookOptions */\n\t\t\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'owcversion' /*case 'OWCVersion'*/: break;\n\t\t\t\t\tcase 'height' /*case 'Height'*/: break;\n\t\t\t\t\tcase 'width' /*case 'Width'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorksheetOptions */\n\t\t\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'visible' /*case 'Visible'*/:\n\t\t\t\t\t\tif(Rn[0].slice(-2) === \"/>\"){/* empty */}\n\t\t\t\t\t\telse if(Rn[1]===\"/\") switch(str.slice(pidx, Rn.index)) {\n\t\t\t\t\t\t\tcase \"SheetHidden\": wsprops.Hidden = 1; break;\n\t\t\t\t\t\t\tcase \"SheetVeryHidden\": wsprops.Hidden = 2; break;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'header' /*case 'Header'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tif(!isNaN(+parsexmltag(Rn[0]).Margin)) cursheet['!margins'].header = +parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'footer' /*case 'Footer'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tif(!isNaN(+parsexmltag(Rn[0]).Margin)) cursheet['!margins'].footer = +parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'pagemargins' /*case 'PageMargins'*/:\n\t\t\t\t\t\tvar pagemargins = parsexmltag(Rn[0]);\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={},'xlml');\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Top)) cursheet['!margins'].top = +pagemargins.Top;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Left)) cursheet['!margins'].left = +pagemargins.Left;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Right)) cursheet['!margins'].right = +pagemargins.Right;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Bottom)) cursheet['!margins'].bottom = +pagemargins.Bottom;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'displayrighttoleft' /*case 'DisplayRightToLeft'*/:\n\t\t\t\t\t\tif(!Workbook.Views) Workbook.Views = [];\n\t\t\t\t\t\tif(!Workbook.Views[0]) Workbook.Views[0] = {};\n\t\t\t\t\t\tWorkbook.Views[0].RTL = true;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'freezepanes' /*case 'FreezePanes'*/: break;\n\t\t\t\t\tcase 'frozennosplit' /*case 'FrozenNoSplit'*/: break;\n\n\t\t\t\t\tcase 'splithorizontal' /*case 'SplitHorizontal'*/:\n\t\t\t\t\tcase 'splitvertical' /*case 'SplitVertical'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'donotdisplaygridlines' /*case 'DoNotDisplayGridlines'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'activerow' /*case 'ActiveRow'*/: break;\n\t\t\t\t\tcase 'activecol' /*case 'ActiveCol'*/: break;\n\t\t\t\t\tcase 'toprowbottompane' /*case 'TopRowBottomPane'*/: break;\n\t\t\t\t\tcase 'leftcolumnrightpane' /*case 'LeftColumnRightPane'*/: break;\n\n\t\t\t\t\tcase 'unsynced' /*case 'Unsynced'*/: break;\n\t\t\t\t\tcase 'print' /*case 'Print'*/: break;\n\t\t\t\t\tcase 'printerrors' /*case 'PrintErrors'*/: break;\n\t\t\t\t\tcase 'panes' /*case 'Panes'*/: break;\n\t\t\t\t\tcase 'scale' /*case 'Scale'*/: break;\n\t\t\t\t\tcase 'pane' /*case 'Pane'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'layout' /*case 'Layout'*/: break;\n\t\t\t\t\tcase 'pagesetup' /*case 'PageSetup'*/: break;\n\t\t\t\t\tcase 'selected' /*case 'Selected'*/: break;\n\t\t\t\t\tcase 'protectobjects' /*case 'ProtectObjects'*/: break;\n\t\t\t\t\tcase 'enableselection' /*case 'EnableSelection'*/: break;\n\t\t\t\t\tcase 'protectscenarios' /*case 'ProtectScenarios'*/: break;\n\t\t\t\t\tcase 'validprinterinfo' /*case 'ValidPrinterInfo'*/: break;\n\t\t\t\t\tcase 'horizontalresolution' /*case 'HorizontalResolution'*/: break;\n\t\t\t\t\tcase 'verticalresolution' /*case 'VerticalResolution'*/: break;\n\t\t\t\t\tcase 'numberofcopies' /*case 'NumberofCopies'*/: break;\n\t\t\t\t\tcase 'activepane' /*case 'ActivePane'*/: break;\n\t\t\t\t\tcase 'toprowvisible' /*case 'TopRowVisible'*/: break;\n\t\t\t\t\tcase 'leftcolumnvisible' /*case 'LeftColumnVisible'*/: break;\n\t\t\t\t\tcase 'fittopage' /*case 'FitToPage'*/: break;\n\t\t\t\t\tcase 'rangeselection' /*case 'RangeSelection'*/: break;\n\t\t\t\t\tcase 'papersizeindex' /*case 'PaperSizeIndex'*/: break;\n\t\t\t\t\tcase 'pagelayoutzoom' /*case 'PageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'pagebreakzoom' /*case 'PageBreakZoom'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'fitwidth' /*case 'FitWidth'*/: break;\n\t\t\t\t\tcase 'fitheight' /*case 'FitHeight'*/: break;\n\t\t\t\t\tcase 'commentslayout' /*case 'CommentsLayout'*/: break;\n\t\t\t\t\tcase 'zoom' /*case 'Zoom'*/: break;\n\t\t\t\t\tcase 'lefttoright' /*case 'LeftToRight'*/: break;\n\t\t\t\t\tcase 'gridlines' /*case 'Gridlines'*/: break;\n\t\t\t\t\tcase 'allowsort' /*case 'AllowSort'*/: break;\n\t\t\t\t\tcase 'allowfilter' /*case 'AllowFilter'*/: break;\n\t\t\t\t\tcase 'allowinsertrows' /*case 'AllowInsertRows'*/: break;\n\t\t\t\t\tcase 'allowdeleterows' /*case 'AllowDeleteRows'*/: break;\n\t\t\t\t\tcase 'allowinsertcols' /*case 'AllowInsertCols'*/: break;\n\t\t\t\t\tcase 'allowdeletecols' /*case 'AllowDeleteCols'*/: break;\n\t\t\t\t\tcase 'allowinserthyperlinks' /*case 'AllowInsertHyperlinks'*/: break;\n\t\t\t\t\tcase 'allowformatcells' /*case 'AllowFormatCells'*/: break;\n\t\t\t\t\tcase 'allowsizecols' /*case 'AllowSizeCols'*/: break;\n\t\t\t\t\tcase 'allowsizerows' /*case 'AllowSizeRows'*/: break;\n\t\t\t\t\tcase 'nosummaryrowsbelowdetail' /*case 'NoSummaryRowsBelowDetail'*/:\n\t\t\t\t\t\tif(!cursheet[\"!outline\"]) cursheet[\"!outline\"] = {};\n\t\t\t\t\t\tcursheet[\"!outline\"].above = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'tabcolorindex' /*case 'TabColorIndex'*/: break;\n\t\t\t\t\tcase 'donotdisplayheadings' /*case 'DoNotDisplayHeadings'*/: break;\n\t\t\t\t\tcase 'showpagelayoutzoom' /*case 'ShowPageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'nosummarycolumnsrightdetail' /*case 'NoSummaryColumnsRightDetail'*/:\n\t\t\t\t\t\tif(!cursheet[\"!outline\"]) cursheet[\"!outline\"] = {};\n\t\t\t\t\t\tcursheet[\"!outline\"].left = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'blackandwhite' /*case 'BlackAndWhite'*/: break;\n\t\t\t\t\tcase 'donotdisplayzeros' /*case 'DoNotDisplayZeros'*/: break;\n\t\t\t\t\tcase 'displaypagebreak' /*case 'DisplayPageBreak'*/: break;\n\t\t\t\t\tcase 'rowcolheadings' /*case 'RowColHeadings'*/: break;\n\t\t\t\t\tcase 'donotdisplayoutline' /*case 'DoNotDisplayOutline'*/: break;\n\t\t\t\t\tcase 'noorientation' /*case 'NoOrientation'*/: break;\n\t\t\t\t\tcase 'allowusepivottables' /*case 'AllowUsePivotTables'*/: break;\n\t\t\t\t\tcase 'zeroheight' /*case 'ZeroHeight'*/: break;\n\t\t\t\t\tcase 'viewablerange' /*case 'ViewableRange'*/: break;\n\t\t\t\t\tcase 'selection' /*case 'Selection'*/: break;\n\t\t\t\t\tcase 'protectcontents' /*case 'ProtectContents'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PivotTable */\n\t\t\t\tcase 'pivottable' /*case 'PivotTable'*/: case 'pivotcache' /*case 'PivotCache'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'immediateitemsondrop' /*case 'ImmediateItemsOnDrop'*/: break;\n\t\t\t\t\tcase 'showpagemultipleitemlabel' /*case 'ShowPageMultipleItemLabel'*/: break;\n\t\t\t\t\tcase 'compactrowindent' /*case 'CompactRowIndent'*/: break;\n\t\t\t\t\tcase 'location' /*case 'Location'*/: break;\n\t\t\t\t\tcase 'pivotfield' /*case 'PivotField'*/: break;\n\t\t\t\t\tcase 'orientation' /*case 'Orientation'*/: break;\n\t\t\t\t\tcase 'layoutform' /*case 'LayoutForm'*/: break;\n\t\t\t\t\tcase 'layoutsubtotallocation' /*case 'LayoutSubtotalLocation'*/: break;\n\t\t\t\t\tcase 'layoutcompactrow' /*case 'LayoutCompactRow'*/: break;\n\t\t\t\t\tcase 'position' /*case 'Position'*/: break;\n\t\t\t\t\tcase 'pivotitem' /*case 'PivotItem'*/: break;\n\t\t\t\t\tcase 'datatype' /*case 'DataType'*/: break;\n\t\t\t\t\tcase 'datafield' /*case 'DataField'*/: break;\n\t\t\t\t\tcase 'sourcename' /*case 'SourceName'*/: break;\n\t\t\t\t\tcase 'parentfield' /*case 'ParentField'*/: break;\n\t\t\t\t\tcase 'ptlineitems' /*case 'PTLineItems'*/: break;\n\t\t\t\t\tcase 'ptlineitem' /*case 'PTLineItem'*/: break;\n\t\t\t\t\tcase 'countofsameitems' /*case 'CountOfSameItems'*/: break;\n\t\t\t\t\tcase 'item' /*case 'Item'*/: break;\n\t\t\t\t\tcase 'itemtype' /*case 'ItemType'*/: break;\n\t\t\t\t\tcase 'ptsource' /*case 'PTSource'*/: break;\n\t\t\t\t\tcase 'cacheindex' /*case 'CacheIndex'*/: break;\n\t\t\t\t\tcase 'consolidationreference' /*case 'ConsolidationReference'*/: break;\n\t\t\t\t\tcase 'filename' /*case 'FileName'*/: break;\n\t\t\t\t\tcase 'reference' /*case 'Reference'*/: break;\n\t\t\t\t\tcase 'nocolumngrand' /*case 'NoColumnGrand'*/: break;\n\t\t\t\t\tcase 'norowgrand' /*case 'NoRowGrand'*/: break;\n\t\t\t\t\tcase 'blanklineafteritems' /*case 'BlankLineAfterItems'*/: break;\n\t\t\t\t\tcase 'hidden' /*case 'Hidden'*/: break;\n\t\t\t\t\tcase 'subtotal' /*case 'Subtotal'*/: break;\n\t\t\t\t\tcase 'basefield' /*case 'BaseField'*/: break;\n\t\t\t\t\tcase 'mapchilditems' /*case 'MapChildItems'*/: break;\n\t\t\t\t\tcase 'function' /*case 'Function'*/: break;\n\t\t\t\t\tcase 'refreshonfileopen' /*case 'RefreshOnFileOpen'*/: break;\n\t\t\t\t\tcase 'printsettitles' /*case 'PrintSetTitles'*/: break;\n\t\t\t\t\tcase 'mergelabels' /*case 'MergeLabels'*/: break;\n\t\t\t\t\tcase 'defaultversion' /*case 'DefaultVersion'*/: break;\n\t\t\t\t\tcase 'refreshname' /*case 'RefreshName'*/: break;\n\t\t\t\t\tcase 'refreshdate' /*case 'RefreshDate'*/: break;\n\t\t\t\t\tcase 'refreshdatecopy' /*case 'RefreshDateCopy'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tcase 'versionlastupdate' /*case 'VersionLastUpdate'*/: break;\n\t\t\t\t\tcase 'versionupdateablemin' /*case 'VersionUpdateableMin'*/: break;\n\t\t\t\t\tcase 'versionrefreshablemin' /*case 'VersionRefreshableMin'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PageBreaks */\n\t\t\t\tcase 'pagebreaks' /*case 'PageBreaks'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'colbreaks' /*case 'ColBreaks'*/: break;\n\t\t\t\t\tcase 'colbreak' /*case 'ColBreak'*/: break;\n\t\t\t\t\tcase 'rowbreaks' /*case 'RowBreaks'*/: break;\n\t\t\t\t\tcase 'rowbreak' /*case 'RowBreak'*/: break;\n\t\t\t\t\tcase 'colstart' /*case 'ColStart'*/: break;\n\t\t\t\t\tcase 'colend' /*case 'ColEnd'*/: break;\n\t\t\t\t\tcase 'rowend' /*case 'RowEnd'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* AutoFilter */\n\t\t\t\tcase 'autofilter' /*case 'AutoFilter'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'autofiltercolumn' /*case 'AutoFilterColumn'*/: break;\n\t\t\t\t\tcase 'autofiltercondition' /*case 'AutoFilterCondition'*/: break;\n\t\t\t\t\tcase 'autofilterand' /*case 'AutoFilterAnd'*/: break;\n\t\t\t\t\tcase 'autofilteror' /*case 'AutoFilterOr'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* QueryTable */\n\t\t\t\tcase 'querytable' /*case 'QueryTable'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'id' /*case 'Id'*/: break;\n\t\t\t\t\tcase 'autoformatfont' /*case 'AutoFormatFont'*/: break;\n\t\t\t\t\tcase 'autoformatpattern' /*case 'AutoFormatPattern'*/: break;\n\t\t\t\t\tcase 'querysource' /*case 'QuerySource'*/: break;\n\t\t\t\t\tcase 'querytype' /*case 'QueryType'*/: break;\n\t\t\t\t\tcase 'enableredirections' /*case 'EnableRedirections'*/: break;\n\t\t\t\t\tcase 'refreshedinxl9' /*case 'RefreshedInXl9'*/: break;\n\t\t\t\t\tcase 'urlstring' /*case 'URLString'*/: break;\n\t\t\t\t\tcase 'htmltables' /*case 'HTMLTables'*/: break;\n\t\t\t\t\tcase 'connection' /*case 'Connection'*/: break;\n\t\t\t\t\tcase 'commandtext' /*case 'CommandText'*/: break;\n\t\t\t\t\tcase 'refreshinfo' /*case 'RefreshInfo'*/: break;\n\t\t\t\t\tcase 'notitles' /*case 'NoTitles'*/: break;\n\t\t\t\t\tcase 'nextid' /*case 'NextId'*/: break;\n\t\t\t\t\tcase 'columninfo' /*case 'ColumnInfo'*/: break;\n\t\t\t\t\tcase 'overwritecells' /*case 'OverwriteCells'*/: break;\n\t\t\t\t\tcase 'donotpromptforfile' /*case 'DoNotPromptForFile'*/: break;\n\t\t\t\t\tcase 'textwizardsettings' /*case 'TextWizardSettings'*/: break;\n\t\t\t\t\tcase 'source' /*case 'Source'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'decimal' /*case 'Decimal'*/: break;\n\t\t\t\t\tcase 'thousandseparator' /*case 'ThousandSeparator'*/: break;\n\t\t\t\t\tcase 'trailingminusnumbers' /*case 'TrailingMinusNumbers'*/: break;\n\t\t\t\t\tcase 'formatsettings' /*case 'FormatSettings'*/: break;\n\t\t\t\t\tcase 'fieldtype' /*case 'FieldType'*/: break;\n\t\t\t\t\tcase 'delimiters' /*case 'Delimiters'*/: break;\n\t\t\t\t\tcase 'tab' /*case 'Tab'*/: break;\n\t\t\t\t\tcase 'comma' /*case 'Comma'*/: break;\n\t\t\t\t\tcase 'autoformatname' /*case 'AutoFormatName'*/: break;\n\t\t\t\t\tcase 'versionlastedit' /*case 'VersionLastEdit'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\t\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* MapInfo (schema) */\n\t\t\t\tcase 'mapinfo' /*case 'MapInfo'*/: case 'schema' /*case 'Schema'*/: case 'data' /*case 'data'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'map' /*case 'Map'*/: break;\n\t\t\t\t\tcase 'entry' /*case 'Entry'*/: break;\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'xpath' /*case 'XPath'*/: break;\n\t\t\t\t\tcase 'field' /*case 'Field'*/: break;\n\t\t\t\t\tcase 'xsdtype' /*case 'XSDType'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'aggregate' /*case 'Aggregate'*/: break;\n\t\t\t\t\tcase 'elementtype' /*case 'ElementType'*/: break;\n\t\t\t\t\tcase 'attributetype' /*case 'AttributeType'*/: break;\n\t\t\t\t/* These are from xsd (XML Schema Definition) */\n\t\t\t\t\tcase 'schema' /*case 'schema'*/:\n\t\t\t\t\tcase 'element' /*case 'element'*/:\n\t\t\t\t\tcase 'complextype' /*case 'complexType'*/:\n\t\t\t\t\tcase 'datatype' /*case 'datatype'*/:\n\t\t\t\t\tcase 'all' /*case 'all'*/:\n\t\t\t\t\tcase 'attribute' /*case 'attribute'*/:\n\t\t\t\t\tcase 'extends' /*case 'extends'*/: break;\n\n\t\t\t\t\tcase 'row' /*case 'row'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* SmartTags (can be anything) */\n\t\t\t\tcase 'smarttags' /*case 'SmartTags'*/: break;\n\n\t\t\t\tdefault: seen = false; break;\n\t\t\t}\n\t\t\tif(seen) break;\n\t\t\t/* CustomDocumentProperties */\n\t\t\tif(Rn[3].match(/!\\[CDATA/)) break;\n\t\t\tif(!state[state.length-1][1]) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t\t\tif(state[state.length-1][0]===/*'CustomDocumentProperties'*/'customdocumentproperties') {\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") xlml_set_custprop(Custprops, raw_Rn3, cp, str.slice(pidx, Rn.index));\n\t\t\t\telse { cp = Rn; pidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(opts.WTF) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t}\n\tvar out = ({}/*:any*/);\n\tif(!opts.bookSheets && !opts.bookProps) out.Sheets = sheets;\n\tout.SheetNames = sheetnames;\n\tout.Workbook = Workbook;\n\tout.SSF = dup(table_fmt);\n\tout.Props = Props;\n\tout.Custprops = Custprops;\n\tout.bookType = \"xlml\";\n\treturn out;\n}\n\nfunction parse_xlml(data/*:RawBytes|string*/, opts)/*:Workbook*/ {\n\tfix_read_opts(opts=opts||{});\n\tswitch(opts.type||\"base64\") {\n\t\tcase \"base64\": return parse_xlml_xml(Base64_decode(data), opts);\n\t\tcase \"binary\": case \"buffer\": case \"file\": return parse_xlml_xml(data, opts);\n\t\tcase \"array\": return parse_xlml_xml(a2s(data), opts);\n\t}\n\t/*:: throw new Error(\"unsupported type \" + opts.type); */\n}\n\n/* TODO */\nfunction write_props_xlml(wb/*:Workbook*/, opts)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\t/* DocumentProperties */\n\tif(wb.Props) o.push(xlml_write_docprops(wb.Props, opts));\n\t/* CustomDocumentProperties */\n\tif(wb.Custprops) o.push(xlml_write_custprops(wb.Props, wb.Custprops, opts));\n\treturn o.join(\"\");\n}\n/* TODO */\nfunction write_wb_xlml(wb/*::, opts*/)/*:string*/ {\n\t/* OfficeDocumentSettings */\n\t/* ExcelWorkbook */\n\tif((((wb||{}).Workbook||{}).WBProps||{}).date1904) return '';\n\treturn \"\";\n}\n/* TODO */\nfunction write_sty_xlml(wb, opts)/*:string*/ {\n\t/* Styles */\n\tvar styles/*:Array*/ = [''];\n\topts.cellXfs.forEach(function(xf, id) {\n\t\tvar payload/*:Array*/ = [];\n\t\tpayload.push(writextag('NumberFormat', null, {\"ss:Format\": escapexml(table_fmt[xf.numFmtId])}));\n\n\t\tvar o = /*::(*/{\"ss:ID\": \"s\" + (21+id)}/*:: :any)*/;\n\t\tstyles.push(writextag('Style', payload.join(\"\"), o));\n\t});\n\treturn writextag(\"Styles\", styles.join(\"\"));\n}\nfunction write_name_xlml(n) { return writextag(\"NamedRange\", null, {\"ss:Name\": n.Name.slice(0,6) == \"_xlnm.\" ? n.Name.slice(6) : n.Name, \"ss:RefersTo\":\"=\" + a1_to_rc(n.Ref, {r:0,c:0})}); }\nfunction write_names_xlml(wb/*::, opts*/)/*:string*/ {\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\n\t/*:: if(!wb || !wb.Workbook || !wb.Workbook.Names) throw new Error(\"unreachable\"); */\n\tvar names/*:Array*/ = wb.Workbook.Names;\n\tvar out/*:Array*/ = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != null) continue;\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn writextag(\"Names\", out.join(\"\"));\n}\nfunction write_ws_xlml_names(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws) return \"\";\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\n\t/*:: if(!wb || !wb.Workbook || !wb.Workbook.Names) throw new Error(\"unreachable\"); */\n\tvar names/*:Array*/ = wb.Workbook.Names;\n\tvar out/*:Array*/ = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != idx) continue;\n\t\t/*switch(n.Name) {\n\t\t\tcase \"_\": continue;\n\t\t}*/\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn out.join(\"\");\n}\n/* WorksheetOptions */\nfunction write_ws_xlml_wsopts(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws) return \"\";\n\tvar o/*:Array*/ = [];\n\t/* NOTE: spec technically allows any order, but stick with implied order */\n\n\t/* FitToPage */\n\t/* DoNotDisplayColHeaders */\n\t/* DoNotDisplayRowHeaders */\n\t/* ViewableRange */\n\t/* Selection */\n\t/* GridlineColor */\n\t/* Name */\n\t/* ExcelWorksheetType */\n\t/* IntlMacro */\n\t/* Unsynced */\n\t/* Selected */\n\t/* CodeName */\n\n\tif(ws['!margins']) {\n\t\to.push(\"\");\n\t\tif(ws['!margins'].header) o.push(writextag(\"Header\", null, {'x:Margin':ws['!margins'].header}));\n\t\tif(ws['!margins'].footer) o.push(writextag(\"Footer\", null, {'x:Margin':ws['!margins'].footer}));\n\t\to.push(writextag(\"PageMargins\", null, {\n\t\t\t'x:Bottom': ws['!margins'].bottom || \"0.75\",\n\t\t\t'x:Left': ws['!margins'].left || \"0.7\",\n\t\t\t'x:Right': ws['!margins'].right || \"0.7\",\n\t\t\t'x:Top': ws['!margins'].top || \"0.75\"\n\t\t}));\n\t\to.push(\"\");\n\t}\n\n\t/* PageSetup */\n\t/* DisplayPageBreak */\n\t/* TransitionExpressionEvaluation */\n\t/* TransitionFormulaEntry */\n\t/* Print */\n\t/* Zoom */\n\t/* PageLayoutZoom */\n\t/* PageBreakZoom */\n\t/* ShowPageBreakZoom */\n\t/* DefaultRowHeight */\n\t/* DefaultColumnWidth */\n\t/* StandardWidth */\n\n\tif(wb && wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx]) {\n\t\t/* Visible */\n\t\tif(wb.Workbook.Sheets[idx].Hidden) o.push(writextag(\"Visible\", (wb.Workbook.Sheets[idx].Hidden == 1 ? \"SheetHidden\" : \"SheetVeryHidden\"), {}));\n\t\telse {\n\t\t\t/* Selected */\n\t\t\tfor(var i = 0; i < idx; ++i) if(wb.Workbook.Sheets[i] && !wb.Workbook.Sheets[i].Hidden) break;\n\t\t\tif(i == idx) o.push(\"\");\n\t\t}\n\t}\n\n\t/* LeftColumnVisible */\n\n\tif(((((wb||{}).Workbook||{}).Views||[])[0]||{}).RTL) o.push(\"\");\n\n\t/* GridlineColorIndex */\n\t/* DisplayFormulas */\n\t/* DoNotDisplayGridlines */\n\t/* DoNotDisplayHeadings */\n\t/* DoNotDisplayOutline */\n\t/* ApplyAutomaticOutlineStyles */\n\t/* NoSummaryRowsBelowDetail */\n\t/* NoSummaryColumnsRightDetail */\n\t/* DoNotDisplayZeros */\n\t/* ActiveRow */\n\t/* ActiveColumn */\n\t/* FilterOn */\n\t/* RangeSelection */\n\t/* TopRowVisible */\n\t/* TopRowBottomPane */\n\t/* LeftColumnRightPane */\n\t/* ActivePane */\n\t/* SplitHorizontal */\n\t/* SplitVertical */\n\t/* FreezePanes */\n\t/* FrozenNoSplit */\n\t/* TabColorIndex */\n\t/* Panes */\n\n\t/* NOTE: Password not supported in XLML Format */\n\tif(ws['!protect']) {\n\t\to.push(writetag(\"ProtectContents\", \"True\"));\n\t\tif(ws['!protect'].objects) o.push(writetag(\"ProtectObjects\", \"True\"));\n\t\tif(ws['!protect'].scenarios) o.push(writetag(\"ProtectScenarios\", \"True\"));\n\t\tif(ws['!protect'].selectLockedCells != null && !ws['!protect'].selectLockedCells) o.push(writetag(\"EnableSelection\", \"NoSelection\"));\n\t\telse if(ws['!protect'].selectUnlockedCells != null && !ws['!protect'].selectUnlockedCells) o.push(writetag(\"EnableSelection\", \"UnlockedCells\"));\n\t[\n\t\t[ \"formatCells\", \"AllowFormatCells\" ],\n\t\t[ \"formatColumns\", \"AllowSizeCols\" ],\n\t\t[ \"formatRows\", \"AllowSizeRows\" ],\n\t\t[ \"insertColumns\", \"AllowInsertCols\" ],\n\t\t[ \"insertRows\", \"AllowInsertRows\" ],\n\t\t[ \"insertHyperlinks\", \"AllowInsertHyperlinks\" ],\n\t\t[ \"deleteColumns\", \"AllowDeleteCols\" ],\n\t\t[ \"deleteRows\", \"AllowDeleteRows\" ],\n\t\t[ \"sort\", \"AllowSort\" ],\n\t\t[ \"autoFilter\", \"AllowFilter\" ],\n\t\t[ \"pivotTables\", \"AllowUsePivotTables\" ]\n\t].forEach(function(x) { if(ws['!protect'][x[0]]) o.push(\"<\"+x[1]+\"/>\"); });\n\t}\n\n\tif(o.length == 0) return \"\";\n\treturn writextag(\"WorksheetOptions\", o.join(\"\"), {xmlns:XLMLNS.x});\n}\nfunction write_ws_xlml_comment(comments/*:Array*/)/*:string*/ {\n\t/* TODO: test multiple comments */\n\treturn comments.map(function(c) {\n\t\t// TODO: formatted text\n\t\tvar t = xlml_unfixstr(c.t||\"\");\n\t\tvar d =writextag(\"ss:Data\", t, {\"xmlns\":\"http://www.w3.org/TR/REC-html40\"});\n\t\tvar p = {};\n\t\tif(c.a) p[\"ss:Author\"] = c.a;\n\t\tif(!comments.hidden) p[\"ss:ShowAlways\"] = \"1\";\n\t\treturn writextag(\"Comment\", d, p);\n\t}).join(\"\");\n}\nfunction write_ws_xlml_cell(cell, ref/*:string*/, ws, opts, idx/*:number*/, wb, addr)/*:string*/{\n\tif(!cell || (cell.v == undefined && cell.f == undefined)) return \"\";\n\n\tvar attr = {};\n\tif(cell.f) attr[\"ss:Formula\"] = \"=\" + escapexml(a1_to_rc(cell.f, addr));\n\tif(cell.F && cell.F.slice(0, ref.length) == ref) {\n\t\tvar end = decode_cell(cell.F.slice(ref.length + 1));\n\t\tattr[\"ss:ArrayRange\"] = \"RC:R\" + (end.r == addr.r ? \"\" : \"[\" + (end.r - addr.r) + \"]\") + \"C\" + (end.c == addr.c ? \"\" : \"[\" + (end.c - addr.c) + \"]\");\n\t}\n\n\tif(cell.l && cell.l.Target) {\n\t\tattr[\"ss:HRef\"] = escapexml(cell.l.Target);\n\t\tif(cell.l.Tooltip) attr[\"x:HRefScreenTip\"] = escapexml(cell.l.Tooltip);\n\t}\n\n\tif(ws['!merges']) {\n\t\tvar marr = ws['!merges'];\n\t\tfor(var mi = 0; mi != marr.length; ++mi) {\n\t\t\tif(marr[mi].s.c != addr.c || marr[mi].s.r != addr.r) continue;\n\t\t\tif(marr[mi].e.c > marr[mi].s.c) attr['ss:MergeAcross'] = marr[mi].e.c - marr[mi].s.c;\n\t\t\tif(marr[mi].e.r > marr[mi].s.r) attr['ss:MergeDown'] = marr[mi].e.r - marr[mi].s.r;\n\t\t}\n\t}\n\n\tvar t = \"\", p = \"\";\n\tswitch(cell.t) {\n\t\tcase 'z': if(!opts.sheetStubs) return \"\"; break;\n\t\tcase 'n': t = 'Number'; p = String(cell.v); break;\n\t\tcase 'b': t = 'Boolean'; p = (cell.v ? \"1\" : \"0\"); break;\n\t\tcase 'e': t = 'Error'; p = BErr[cell.v]; break;\n\t\tcase 'd': t = 'DateTime'; p = new Date(cell.v).toISOString(); if(cell.z == null) cell.z = cell.z || table_fmt[14]; break;\n\t\tcase 's': t = 'String'; p = escapexlml(cell.v||\"\"); break;\n\t}\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tattr[\"ss:StyleID\"] = \"s\" + (21+os);\n\tattr[\"ss:Index\"] = addr.c + 1;\n\tvar _v = (cell.v != null ? p : \"\");\n\tvar m = cell.t == 'z' ? \"\" : ('' + _v + '');\n\n\tif((cell.c||[]).length > 0) m += write_ws_xlml_comment(cell.c);\n\n\treturn writextag(\"Cell\", m, attr);\n}\nfunction write_ws_xlml_row(R/*:number*/, row)/*:string*/ {\n\tvar o = '';\n}\n/* TODO */\nfunction write_ws_xlml_table(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws['!ref']) return \"\";\n\tvar range/*:Range*/ = safe_decode_range(ws['!ref']);\n\tvar marr/*:Array*/ = ws['!merges'] || [], mi = 0;\n\tvar o/*:Array*/ = [];\n\tif(ws['!cols']) ws['!cols'].forEach(function(n, i) {\n\t\tprocess_col(n);\n\t\tvar w = !!n.width;\n\t\tvar p = col_obj_w(i, n);\n\t\tvar k/*:any*/ = {\"ss:Index\":i+1};\n\t\tif(w) k['ss:Width'] = width2px(p.width);\n\t\tif(n.hidden) k['ss:Hidden']=\"1\";\n\t\to.push(writextag(\"Column\",null,k));\n\t});\n\tvar dense = ws[\"!data\"] != null;\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\tvar row = [write_ws_xlml_row(R, (ws['!rows']||[])[R])];\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tvar skip = false;\n\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(skip) continue;\n\t\t\tvar addr = {r:R,c:C};\n\t\t\tvar ref = encode_col(C) + encode_row(R), cell = dense ? (ws[\"!data\"][R]||[])[C] : ws[ref];\n\t\t\trow.push(write_ws_xlml_cell(cell, ref, ws, opts, idx, wb, addr));\n\t\t}\n\t\trow.push(\"\");\n\t\tif(row.length > 2) o.push(row.join(\"\"));\n\t}\n\treturn o.join(\"\");\n}\nfunction write_ws_xlml(idx/*:number*/, opts, wb/*:Workbook*/)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\tvar s = wb.SheetNames[idx];\n\tvar ws = wb.Sheets[s];\n\n\tvar t/*:string*/ = ws ? write_ws_xlml_names(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"\" + t + \"\");\n\n\t/* Table */\n\tt = ws ? write_ws_xlml_table(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"
\" + t + \"
\");\n\n\t/* WorksheetOptions */\n\to.push(write_ws_xlml_wsopts(ws, opts, idx, wb));\n\n\tif(ws[\"!autofilter\"]) o.push('');\n\n\treturn o.join(\"\");\n}\nfunction write_xlml(wb, opts)/*:string*/ {\n\tif(!opts) opts = {};\n\tif(!wb.SSF) wb.SSF = dup(table_fmt);\n\tif(wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t\topts.cellXfs = [];\n\t\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\t}\n\tvar d/*:Array*/ = [];\n\td.push(write_props_xlml(wb, opts));\n\td.push(write_wb_xlml(wb, opts));\n\td.push(\"\");\n\td.push(\"\");\n\tfor(var i = 0; i < wb.SheetNames.length; ++i)\n\t\td.push(writextag(\"Worksheet\", write_ws_xlml(i, opts, wb), {\"ss:Name\":escapexml(wb.SheetNames[i])}));\n\td[2] = write_sty_xlml(wb, opts);\n\td[3] = write_names_xlml(wb, opts);\n\treturn XML_HEADER + writextag(\"Workbook\", d.join(\"\"), {\n\t\t'xmlns': XLMLNS.ss,\n\t\t'xmlns:o': XLMLNS.o,\n\t\t'xmlns:x': XLMLNS.x,\n\t\t'xmlns:ss': XLMLNS.ss,\n\t\t'xmlns:dt': XLMLNS.dt,\n\t\t'xmlns:html': XLMLNS.html\n\t});\n}\n/* [MS-OLEDS] 2.3.8 CompObjStream */\nfunction parse_compobj(obj/*:CFBEntry*/) {\n\tvar v = {};\n\tvar o = obj.content;\n\t/*:: if(o == null) return; */\n\n\t/* [MS-OLEDS] 2.3.7 CompObjHeader -- All fields MUST be ignored */\n\to.l = 28;\n\n\tv.AnsiUserType = o.read_shift(0, \"lpstr-ansi\");\n\tv.AnsiClipboardFormat = parse_ClipboardFormatOrAnsiString(o);\n\n\tif(o.length - o.l <= 4) return v;\n\n\tvar m/*:number*/ = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved1 = o.read_shift(0, \"lpstr-ansi\");\n\n\tif(o.length - o.l <= 4) return v;\n\tm = o.read_shift(4);\n\tif(m !== 0x71b239f4) return v;\n\tv.UnicodeClipboardFormat = parse_ClipboardFormatOrUnicodeString(o);\n\n\tm = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved2 = o.read_shift(0, \"lpwstr\");\n}\n\n/*\n\tContinue logic for:\n\t- 2.4.58 Continue 0x003c\n\t- 2.4.59 ContinueBigName 0x043c\n\t- 2.4.60 ContinueFrt 0x0812\n\t- 2.4.61 ContinueFrt11 0x0875\n\t- 2.4.62 ContinueFrt12 0x087f\n*/\nvar CONTINUE_RT = [ 0x003c, 0x043c, 0x0812, 0x0875, 0x087f ];\nfunction slurp(RecordType, R, blob, length/*:number*/, opts)/*:any*/ {\n\tvar l = length;\n\tvar bufs = [];\n\tvar d = blob.slice(blob.l,blob.l+l);\n\tif(opts && opts.enc && opts.enc.insitu && d.length > 0) switch(RecordType) {\n\tcase 0x0009: case 0x0209: case 0x0409: case 0x0809/* BOF */: case 0x002F /* FilePass */: case 0x0195 /* FileLock */: case 0x00E1 /* InterfaceHdr */: case 0x0196 /* RRDInfo */: case 0x0138 /* RRDHead */: case 0x0194 /* UsrExcl */: case 0x000a /* EOF */:\n\t\tbreak;\n\tcase 0x0085 /* BoundSheet8 */:\n\t\tbreak;\n\tdefault:\n\t\topts.enc.insitu(d);\n\t}\n\tbufs.push(d);\n\tblob.l += l;\n\tvar nextrt = __readUInt16LE(blob,blob.l), next = XLSRecordEnum[nextrt];\n\tvar start = 0;\n\twhile(next != null && CONTINUE_RT.indexOf(nextrt) > -1) {\n\t\tl = __readUInt16LE(blob,blob.l+2);\n\t\tstart = blob.l + 4;\n\t\tif(nextrt == 0x0812 /* ContinueFrt */) start += 4;\n\t\telse if(nextrt == 0x0875 || nextrt == 0x087f) {\n\t\t\tstart += 12;\n\t\t}\n\t\td = blob.slice(start,blob.l+4+l);\n\t\tbufs.push(d);\n\t\tblob.l += 4+l;\n\t\tnext = (XLSRecordEnum[nextrt = __readUInt16LE(blob, blob.l)]);\n\t}\n\tvar b = (bconcat(bufs)/*:any*/);\n\tprep_blob(b, 0);\n\tvar ll = 0; b.lens = [];\n\tfor(var j = 0; j < bufs.length; ++j) { b.lens.push(ll); ll += bufs[j].length; }\n\tif(b.length < length) throw \"XLS Record 0x\" + RecordType.toString(16) + \" Truncated: \" + b.length + \" < \" + length;\n\treturn R.f(b, b.length, opts);\n}\n\nfunction safe_format_xf(p/*:any*/, opts/*:ParseOpts*/, date1904/*:?boolean*/) {\n\tif(p.t === 'z') return;\n\tif(!p.XF) return;\n\tvar fmtid = 0;\n\ttry {\n\t\tfmtid = p.z || p.XF.numFmtId || 0;\n\t\tif(opts.cellNF && p.z == null) p.z = table_fmt[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts || opts.cellText !== false) try {\n\t\tif(p.t === 'e') { p.w = p.w || BErr[p.v]; }\n\t\telse if(fmtid === 0 || fmtid == \"General\") {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = p.v.toString(10);\n\t\t\t\telse p.w = SSF_general_num(p.v);\n\t\t\t}\n\t\t\telse p.w = SSF_general(p.v);\n\t\t}\n\t\telse p.w = SSF_format(fmtid,p.v, {date1904:!!date1904, dateNF: opts && opts.dateNF});\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(opts.cellDates && fmtid && p.t == 'n' && fmt_is_date(table_fmt[fmtid] || String(fmtid))) {\n\t\tvar _d = SSF_parse_date_code(p.v + (date1904 ? 1462 : 0)); if(_d) { p.t = 'd'; p.v = new Date(Date.UTC(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u)); }\n\t}\n}\n\nfunction make_cell(val, ixfe, t)/*:Cell*/ {\n\treturn ({v:val, ixfe:ixfe, t:t}/*:any*/);\n}\n\n// 2.3.2\nfunction parse_workbook(blob, options/*:ParseOpts*/)/*:Workbook*/ {\n\tvar wb = ({opts:{}}/*:any*/);\n\tvar Sheets = {};\n\tif(DENSE != null && options.dense == null) options.dense = DENSE;\n\tvar out/*:Worksheet*/ = ({}/*:any*/); if(options.dense) out[\"!data\"] = [];\n\tvar Directory = {};\n\tvar range/*:Range*/ = ({}/*:any*/);\n\tvar last_formula = null;\n\tvar sst/*:SST*/ = ([]/*:any*/);\n\tvar cur_sheet = \"\";\n\tvar Preamble = {};\n\tvar lastcell, last_cell = \"\", cc/*:Cell*/, cmnt, rngC, rngR;\n\tvar sharedf = {};\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar temp_val/*:Cell*/;\n\tvar country;\n\tvar XFs = []; /* XF records */\n\tvar palette/*:Array<[number, number, number]>*/ = [];\n\tvar Workbook/*:WBWBProps*/ = ({ Sheets:[], WBProps:{date1904:false}, Views:[{}] }/*:any*/), wsprops = {};\n\tvar biff4w = false;\n\tvar get_rgb = function getrgb(icv/*:number*/)/*:[number, number, number]*/ {\n\t\tif(icv < 8) return XLSIcv[icv];\n\t\tif(icv < 64) return palette[icv-8] || XLSIcv[icv];\n\t\treturn XLSIcv[icv];\n\t};\n\tvar process_cell_style = function pcs(cell, line/*:any*/, options) {\n\t\tvar xfd = line.XF.data;\n\t\tif(!xfd || !xfd.patternType || !options || !options.cellStyles) return;\n\t\tline.s = ({}/*:any*/);\n\t\tline.s.patternType = xfd.patternType;\n\t\tvar t;\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvFore)))) { line.s.fgColor = {rgb:t}; }\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvBack)))) { line.s.bgColor = {rgb:t}; }\n\t};\n\tvar addcell = function addcell(cell/*:any*/, line/*:any*/, options/*:any*/) {\n\t\tif(!biff4w && file_depth > 1) return;\n\t\tif(options.sheetRows && cell.r >= options.sheetRows) return;\n\t\tif(options.cellStyles && line.XF && line.XF.data) process_cell_style(cell, line, options);\n\t\tdelete line.ixfe; delete line.XF;\n\t\tlastcell = cell;\n\t\tlast_cell = encode_cell(cell);\n\t\tif(!range || !range.s || !range.e) range = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\tif(cell.r < range.s.r) range.s.r = cell.r;\n\t\tif(cell.c < range.s.c) range.s.c = cell.c;\n\t\tif(cell.r + 1 > range.e.r) range.e.r = cell.r + 1;\n\t\tif(cell.c + 1 > range.e.c) range.e.c = cell.c + 1;\n\t\tif(options.cellFormula && line.f) {\n\t\t\tfor(var afi = 0; afi < arrayf.length; ++afi) {\n\t\t\t\tif(arrayf[afi][0].s.c > cell.c || arrayf[afi][0].s.r > cell.r) continue;\n\t\t\t\tif(arrayf[afi][0].e.c < cell.c || arrayf[afi][0].e.r < cell.r) continue;\n\t\t\t\tline.F = encode_range(arrayf[afi][0]);\n\t\t\t\tif(arrayf[afi][0].s.c != cell.c || arrayf[afi][0].s.r != cell.r) delete line.f;\n\t\t\t\tif(line.f) line.f = \"\" + stringify_formula(arrayf[afi][1], range, cell, supbooks, opts);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\tif(options.dense) {\n\t\t\t\tif(!out[\"!data\"][cell.r]) out[\"!data\"][cell.r] = [];\n\t\t\t\tout[\"!data\"][cell.r][cell.c] = line;\n\t\t\t} else out[last_cell] = line;\n\t\t}\n\t};\n\tvar opts = ({\n\t\tenc: false, // encrypted\n\t\tsbcch: 0, // cch in the preceding SupBook\n\t\tsnames: [], // sheetnames\n\t\tsharedf: sharedf, // shared formulae by address\n\t\tarrayf: arrayf, // array formulae array\n\t\trrtabid: [], // RRTabId\n\t\tlastuser: \"\", // Last User from WriteAccess\n\t\tbiff: 8, // BIFF version\n\t\tcodepage: 0, // CP from CodePage record\n\t\twinlocked: 0, // fLockWn from WinProtect\n\t\tcellStyles: !!options && !!options.cellStyles,\n\t\tWTF: !!options && !!options.wtf\n\t}/*:any*/);\n\tif(options.password) opts.password = options.password;\n\tvar themes;\n\tvar merges/*:Array*/ = [];\n\tvar objects = [];\n\tvar colinfo/*:Array*/ = [], rowinfo/*:Array*/ = [];\n\tvar seencol = false;\n\tvar supbooks = ([]/*:any*/); // 1-indexed, will hold extern names\n\tsupbooks.SheetNames = opts.snames;\n\tsupbooks.sharedf = opts.sharedf;\n\tsupbooks.arrayf = opts.arrayf;\n\tsupbooks.names = [];\n\tsupbooks.XTI = [];\n\tvar last_RT = 0;\n\tvar file_depth = 0; /* TODO: make a real stack */\n\tvar BIFF2Fmt = 0, BIFF2FmtTable/*:Array*/ = [];\n\tvar FilterDatabases = []; /* TODO: sort out supbooks and process elsewhere */\n\tvar last_lbl/*:?DefinedName*/;\n\n\t/* explicit override for some broken writers */\n\topts.codepage = 1200;\n\tset_cp(1200);\n\tvar seen_codepage = false;\n\twhile(blob.l < blob.length - 1) {\n\t\tvar s = blob.l;\n\t\tvar RecordType = blob.read_shift(2);\n\t\tif(RecordType === 0 && last_RT === 0x000a /* EOF */) break;\n\t\tvar length = (blob.l === blob.length ? 0 : blob.read_shift(2));\n\t\tvar R = XLSRecordEnum[RecordType];\n\t\tif(file_depth == 0 && [0x0009, 0x0209, 0x0409, 0x0809].indexOf(RecordType) == -1 /* BOF */) break;\n\t\t//console.log(RecordType.toString(16), RecordType, R, blob.l, length, blob.length);\n\t\t//if(!R) console.log(blob.slice(blob.l, blob.l + length));\n\t\tif(R && R.f) {\n\t\t\tif(options.bookSheets) {\n\t\t\t\tif(last_RT === 0x0085 /* BoundSheet8 */ && RecordType !== 0x0085 /* R.n !== 'BoundSheet8' */) break;\n\t\t\t}\n\t\t\tlast_RT = RecordType;\n\t\t\tif(R.r === 2 || R.r == 12) {\n\t\t\t\tvar rt = blob.read_shift(2); length -= 2;\n\t\t\t\tif(!opts.enc && rt !== RecordType && (((rt&0xFF)<<8)|(rt>>8)) !== RecordType) throw new Error(\"rt mismatch: \" + rt + \"!=\" + RecordType);\n\t\t\t\tif(R.r == 12){\n\t\t\t\t\tblob.l += 10; length -= 10;\n\t\t\t\t} // skip FRT\n\t\t\t}\n\t\t\t//console.error(R,blob.l,length,blob.length);\n\t\t\tvar val/*:any*/ = ({}/*:any*/);\n\t\t\tif(RecordType === 0x000a /* EOF */) val = /*::(*/R.f(blob, length, opts)/*:: :any)*/;\n\t\t\telse val = /*::(*/slurp(RecordType, R, blob, length, opts)/*:: :any)*/;\n\t\t\t/*:: val = (val:any); */\n\t\t\tif(file_depth == 0 && [0x0009, 0x0209, 0x0409, 0x0809].indexOf(last_RT) === -1 /* BOF */) continue;\n\t\t\tswitch(RecordType) {\n\t\t\t\tcase 0x0022 /* Date1904 */:\n\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\twb.opts.Date1904 = Workbook.WBProps.date1904 = val; break;\n\t\t\t\tcase 0x0086 /* WriteProtect */: wb.opts.WriteProtect = true; break;\n\t\t\t\tcase 0x002f /* FilePass */:\n\t\t\t\t\tif(!opts.enc) blob.l = 0;\n\t\t\t\t\topts.enc = val;\n\t\t\t\t\tif(!options.password) throw new Error(\"File is password-protected\");\n\t\t\t\t\tif(val.valid == null) throw new Error(\"Encryption scheme unsupported\");\n\t\t\t\t\tif(!val.valid) throw new Error(\"Password is incorrect\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x005c /* WriteAccess */: opts.lastuser = val; break;\n\t\t\t\tcase 0x0042 /* CodePage */:\n\t\t\t\t\tvar cpval = Number(val);\n\t\t\t\t\t/* overrides based on test cases */\n\t\t\t\t\tswitch(cpval) {\n\t\t\t\t\t\tcase 0x5212: cpval = 1200; break;\n\t\t\t\t\t\tcase 0x8000: cpval = 10000; break;\n\t\t\t\t\t\tcase 0x8001: cpval = 1252; break;\n\t\t\t\t\t}\n\t\t\t\t\tset_cp(opts.codepage = cpval);\n\t\t\t\t\tseen_codepage = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x013d /* RRTabId */: opts.rrtabid = val; break;\n\t\t\t\tcase 0x0019 /* WinProtect */: opts.winlocked = val; break;\n\t\t\t\tcase 0x01b7 /* RefreshAll */: wb.opts[\"RefreshAll\"] = val; break;\n\t\t\t\tcase 0x000c /* CalcCount */: wb.opts[\"CalcCount\"] = val; break;\n\t\t\t\tcase 0x0010 /* CalcDelta */: wb.opts[\"CalcDelta\"] = val; break;\n\t\t\t\tcase 0x0011 /* CalcIter */: wb.opts[\"CalcIter\"] = val; break;\n\t\t\t\tcase 0x000d /* CalcMode */: wb.opts[\"CalcMode\"] = val; break;\n\t\t\t\tcase 0x000e /* CalcPrecision */: wb.opts[\"CalcPrecision\"] = val; break;\n\t\t\t\tcase 0x005f /* CalcSaveRecalc */: wb.opts[\"CalcSaveRecalc\"] = val; break;\n\t\t\t\tcase 0x000f /* CalcRefMode */: opts.CalcRefMode = val; break; // TODO: implement R1C1\n\t\t\t\tcase 0x08a3 /* ForceFullCalculation */: wb.opts.FullCalc = val; break;\n\t\t\t\tcase 0x0081 /* WsBool */:\n\t\t\t\t\tif(val.fDialog) out[\"!type\"] = \"dialog\";\n\t\t\t\t\tif(!val.fBelow) (out[\"!outline\"] || (out[\"!outline\"] = {})).above = true;\n\t\t\t\t\tif(!val.fRight) (out[\"!outline\"] || (out[\"!outline\"] = {})).left = true;\n\t\t\t\t\tbreak; // TODO\n\t\t\t\tcase 0x0043: /* BIFF2XF */ case 0x0243: /* BIFF3XF */ case 0x0443: /* BIFF4XF */\n\t\t\t\tcase 0x00e0 /* XF */:\n\t\t\t\t\tXFs.push(val); break;\n\t\t\t\tcase 0x01ae /* SupBook */:\n\t\t\t\t\tsupbooks.push([val]);\n\t\t\t\t\tsupbooks[supbooks.length-1].XTI = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0023: case 0x0223 /* ExternName */:\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0018: case 0x0218 /* Lbl */:\n\t\t\t\t\tlast_lbl = ({\n\t\t\t\t\t\tName: val.Name,\n\t\t\t\t\t\tRef: stringify_formula(val.rgce,range,null,supbooks,opts)\n\t\t\t\t\t}/*:DefinedName*/);\n\t\t\t\t\tif(val.itab > 0) last_lbl.Sheet = val.itab - 1;\n\t\t\t\t\tsupbooks.names.push(last_lbl);\n\t\t\t\t\tif(!supbooks[0]) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tif(val.Name == \"_xlnm._FilterDatabase\" && val.itab > 0)\n\t\t\t\t\t\tif(val.rgce && val.rgce[0] && val.rgce[0][0] && val.rgce[0][0][0] == 'PtgArea3d')\n\t\t\t\t\t\t\tFilterDatabases[val.itab - 1] = { ref: encode_range(val.rgce[0][0][1][2]) };\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0016 /* ExternCount */: opts.ExternCount = val; break;\n\t\t\t\tcase 0x0017 /* ExternSheet */:\n\t\t\t\t\tif(supbooks.length == 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val); supbooks.XTI = supbooks.XTI.concat(val); break;\n\t\t\t\tcase 0x0894 /* NameCmt */:\n\t\t\t\t\t/* TODO: search for correct name */\n\t\t\t\t\tif(opts.biff < 8) break;\n\t\t\t\t\tif(last_lbl != null) last_lbl.Comment = val[1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0012 /* Protect */: out[\"!protect\"] = val; break; /* for sheet or book */\n\t\t\t\tcase 0x0013 /* Password */: if(val !== 0 && opts.WTF) console.error(\"Password verifier: \" + val); break;\n\t\t\t\tcase 0x0085 /* BoundSheet8 */: {\n\t\t\t\t\tDirectory[opts.biff == 4 ? opts.snames.length : val.pos] = val;\n\t\t\t\t\topts.snames.push(val.name);\n\t\t\t\t} break;\n\t\t\t\tcase 0x000a /* EOF */: {\n\t\t\t\t\tif(--file_depth ? !biff4w : biff4w) break;\n\t\t\t\t\tif(range.e) {\n\t\t\t\t\t\tif(range.e.r > 0 && range.e.c > 0) {\n\t\t\t\t\t\t\trange.e.r--; range.e.c--;\n\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\tif(options.sheetRows && options.sheetRows <= range.e.r) {\n\t\t\t\t\t\t\t\tvar tmpri = range.e.r;\n\t\t\t\t\t\t\t\trange.e.r = options.sheetRows - 1;\n\t\t\t\t\t\t\t\tout[\"!fullref\"] = out[\"!ref\"];\n\t\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\t\trange.e.r = tmpri;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trange.e.r++; range.e.c++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(merges.length > 0) out[\"!merges\"] = merges;\n\t\t\t\t\t\tif(objects.length > 0) out[\"!objects\"] = objects;\n\t\t\t\t\t\tif(colinfo.length > 0) out[\"!cols\"] = colinfo;\n\t\t\t\t\t\tif(rowinfo.length > 0) out[\"!rows\"] = rowinfo;\n\t\t\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t\t\t}\n\t\t\t\t\tif(cur_sheet === \"\") Preamble = out; else Sheets[cur_sheet] = out;\n\t\t\t\t\tout = ({}/*:any*/); if(options.dense) out[\"!data\"] = [];\n\t\t\t\t} break;\n\t\t\t\tcase 0x0009: case 0x0209: case 0x0409: case 0x0809 /* BOF */: {\n\t\t\t\t\tif(opts.biff === 8) opts.biff = {\n\t\t\t\t\t\t/*::[*/0x0009/*::]*/:2,\n\t\t\t\t\t\t/*::[*/0x0209/*::]*/:3,\n\t\t\t\t\t\t/*::[*/0x0409/*::]*/:4\n\t\t\t\t\t}[RecordType] || {\n\t\t\t\t\t\t/*::[*/0x0200/*::]*/:2,\n\t\t\t\t\t\t/*::[*/0x0300/*::]*/:3,\n\t\t\t\t\t\t/*::[*/0x0400/*::]*/:4,\n\t\t\t\t\t\t/*::[*/0x0500/*::]*/:5,\n\t\t\t\t\t\t/*::[*/0x0600/*::]*/:8,\n\t\t\t\t\t\t/*::[*/0x0002/*::]*/:2,\n\t\t\t\t\t\t/*::[*/0x0007/*::]*/:2\n\t\t\t\t\t}[val.BIFFVer] || 8;\n\t\t\t\t\topts.biffguess = val.BIFFVer == 0;\n\t\t\t\t\tif(val.BIFFVer == 0 && val.dt == 0x1000) { opts.biff = 5; seen_codepage = true; set_cp(opts.codepage = 28591); }\n\t\t\t\t\tif(opts.biff == 4 && val.dt & 0x100) biff4w = true;\n\t\t\t\t\tif(opts.biff == 8 && val.BIFFVer == 0 && val.dt == 16) opts.biff = 2;\n\t\t\t\t\tif(file_depth++ && !biff4w) break;\n\t\t\t\t\tout = ({}/*:any*/); if(options.dense) out[\"!data\"] = [];\n\n\t\t\t\t\tif(opts.biff < 8 && !seen_codepage) { seen_codepage = true; set_cp(opts.codepage = options.codepage || 1252); }\n\t\t\t\t\tif(opts.biff == 4 && biff4w) {\n\t\t\t\t\t\tcur_sheet = (Directory[opts.snames.indexOf(cur_sheet)+1] || {name:\"\"}).name;\n\t\t\t\t\t} else if(opts.biff < 5 || val.BIFFVer == 0 && val.dt == 0x1000) {\n\t\t\t\t\t\tif(cur_sheet === \"\") cur_sheet = \"Sheet1\";\n\t\t\t\t\t\trange = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\t\t\t\t\t/* fake BoundSheet8 */\n\t\t\t\t\t\tvar fakebs8 = {pos: blob.l - length, name:cur_sheet};\n\t\t\t\t\t\tDirectory[fakebs8.pos] = fakebs8;\n\t\t\t\t\t\topts.snames.push(cur_sheet);\n\t\t\t\t\t}\n\t\t\t\t\telse cur_sheet = (Directory[s] || {name:\"\"}).name;\n\t\t\t\t\tif(val.dt == 0x20) out[\"!type\"] = \"chart\";\n\t\t\t\t\tif(val.dt == 0x40) out[\"!type\"] = \"macro\";\n\t\t\t\t\tmerges = [];\n\t\t\t\t\tobjects = [];\n\t\t\t\t\topts.arrayf = arrayf = [];\n\t\t\t\t\tcolinfo = []; rowinfo = [];\n\t\t\t\t\tseencol = false;\n\t\t\t\t\twsprops = {Hidden:(Directory[s]||{hs:0}).hs, name:cur_sheet };\n\t\t\t\t} break;\n\t\t\t\tcase 0x0203 /* Number */: case 0x0003 /* BIFF2NUM */: case 0x0002 /* BIFF2INT */: {\n\t\t\t\t\tif(out[\"!type\"] == \"chart\") if(options.dense ? (out[\"!data\"][val.r]||[])[val.c]: out[encode_col(val.c) + encode_row(val.r)]) ++val.c;\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe]||{}, v:val.val, t:'n'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = (temp_val.XF && temp_val.XF.numFmtId) && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x0005: case 0x0205 /* BoolErr */: {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.val, t:val.t}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = (temp_val.XF && temp_val.XF.numFmtId) && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x027e /* RK */: {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.rknum, t:'n'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = (temp_val.XF && temp_val.XF.numFmtId) && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x00bd /* MulRk */: {\n\t\t\t\t\tfor(var j = val.c; j <= val.C; ++j) {\n\t\t\t\t\t\tvar ixfe = val.rkrec[j-val.c][0];\n\t\t\t\t\t\ttemp_val= ({ixfe:ixfe, XF:XFs[ixfe], v:val.rkrec[j-val.c][1], t:'n'}/*:any*/);\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = (temp_val.XF && temp_val.XF.numFmtId) && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0006: case 0x0206: case 0x0406 /* Formula */: {\n\t\t\t\t\tif(val.val == 'String') { last_formula = val; break; }\n\t\t\t\t\ttemp_val = make_cell(val.val, val.cell.ixfe, val.tt);\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\tvar _f = val.formula;\n\t\t\t\t\t\tif(_f && _f[0] && _f[0][0] && _f[0][0][0] == 'PtgExp') {\n\t\t\t\t\t\t\tvar _fr = _f[0][0][1][0], _fc = _f[0][0][1][1];\n\t\t\t\t\t\t\tvar _fe = encode_cell({r:_fr, c:_fc});\n\t\t\t\t\t\t\tif(sharedf[_fe]) temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t\t\telse temp_val.F = ((options.dense ? (out[\"!data\"][_fr]||[])[_fc]: out[_fe]) || {}).F;\n\t\t\t\t\t\t} else temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = (temp_val.XF && temp_val.XF.numFmtId) && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell(val.cell, temp_val, options);\n\t\t\t\t\tlast_formula = val;\n\t\t\t\t} break;\n\t\t\t\tcase 0x0007: case 0x0207 /* String */: {\n\t\t\t\t\tif(last_formula) { /* technically always true */\n\t\t\t\t\t\tlast_formula.val = val;\n\t\t\t\t\t\ttemp_val = make_cell(val, last_formula.cell.ixfe, 's');\n\t\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\t\ttemp_val.f = \"\"+stringify_formula(last_formula.formula, range, last_formula.cell, supbooks, opts);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = (temp_val.XF && temp_val.XF.numFmtId) && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell(last_formula.cell, temp_val, options);\n\t\t\t\t\t\tlast_formula = null;\n\t\t\t\t\t} else throw new Error(\"String record expects Formula\");\n\t\t\t\t} break;\n\t\t\t\tcase 0x0021: case 0x0221 /* Array */: {\n\t\t\t\t\tarrayf.push(val);\n\t\t\t\t\tvar _arraystart = encode_cell(val[0].s);\n\t\t\t\t\tcc = options.dense ? (out[\"!data\"][val[0].s.r]||[])[val[0].s.c] : out[_arraystart];\n\t\t\t\t\tif(options.cellFormula && cc) {\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tif(!_arraystart || !cc) break;\n\t\t\t\t\t\tcc.f = \"\"+stringify_formula(val[1], range, val[0], supbooks, opts);\n\t\t\t\t\t\tcc.F = encode_range(val[0]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x04bc /* ShrFmla */: {\n\t\t\t\t\tif(!options.cellFormula) break;\n\t\t\t\t\tif(last_cell) {\n\t\t\t\t\t\t/* TODO: capture range */\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tsharedf[encode_cell(last_formula.cell)]= val[0];\n\t\t\t\t\t\tcc = options.dense ? (out[\"!data\"][last_formula.cell.r]||[])[last_formula.cell.c] : out[encode_cell(last_formula.cell)];\n\t\t\t\t\t\t(cc||{}).f = \"\"+stringify_formula(val[0], range, lastcell, supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x00fd /* LabelSst */:\n\t\t\t\t\ttemp_val=make_cell(sst[val.isst].t, val.ixfe, 's');\n\t\t\t\t\tif(sst[val.isst].h) temp_val.h = sst[val.isst].h;\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = (temp_val.XF && temp_val.XF.numFmtId) && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0201 /* Blank */: if(options.sheetStubs) {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], t:'z'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = (temp_val.XF && temp_val.XF.numFmtId) && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x00be /* MulBlank */: if(options.sheetStubs) {\n\t\t\t\t\tfor(var _j = val.c; _j <= val.C; ++_j) {\n\t\t\t\t\t\tvar _ixfe = val.ixfe[_j-val.c];\n\t\t\t\t\t\ttemp_val= ({ixfe:_ixfe, XF:XFs[_ixfe], t:'z'}/*:any*/);\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = (temp_val.XF && temp_val.XF.numFmtId) && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:_j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x00d6 /* RString */:\n\t\t\t\tcase 0x0204 /* Label */: case 0x0004 /* BIFF2STR */:\n\t\t\t\t\ttemp_val=make_cell(val.val, val.ixfe, 's');\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = (temp_val.XF && temp_val.XF.numFmtId) && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 0x0000: case 0x0200 /* Dimensions */: {\n\t\t\t\t\tif(file_depth === 1) range = val; /* TODO: stack */\n\t\t\t\t} break;\n\t\t\t\tcase 0x00fc /* SST */: {\n\t\t\t\t\tsst = val;\n\t\t\t\t} break;\n\t\t\t\tcase 0x041e /* Format */: { /* val = [id, fmt] */\n\t\t\t\t\tif(opts.biff >= 3 && opts.biff <= 4) {\n\t\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val[1];\n\t\t\t\t\t\tfor(var b4idx = 0; b4idx < BIFF2Fmt + 163; ++b4idx) if(table_fmt[b4idx] == val[1]) break;\n\t\t\t\t\t\tif(b4idx >= 163) SSF__load(val[1], BIFF2Fmt + 163);\n\t\t\t\t\t}\n\t\t\t\t\telse SSF__load(val[1], val[0]);\n\t\t\t\t} break;\n\t\t\t\tcase 0x001e /* BIFF2FORMAT */: {\n\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val;\n\t\t\t\t\tfor(var b2idx = 0; b2idx < BIFF2Fmt + 163; ++b2idx) if(table_fmt[b2idx] == val) break;\n\t\t\t\t\tif(b2idx >= 163) SSF__load(val, BIFF2Fmt + 163);\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x00e5 /* MergeCells */: merges = merges.concat(val); break;\n\n\t\t\t\tcase 0x005d /* Obj */: objects[val.cmo[0]] = opts.lastobj = val; break;\n\t\t\t\tcase 0x01b6 /* TxO */: opts.lastobj.TxO = val; break;\n\t\t\t\tcase 0x007f /* ImData */: opts.lastobj.ImData = val; break;\n\n\t\t\t\tcase 0x01b8 /* HLink */: {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[\"!data\"][rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc) cc.l = val[1];\n\t\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0800 /* HLinkTooltip */: {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[\"!data\"][rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc && cc.l) cc.l.Tooltip = val[1];\n\t\t\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x001c /* Note */: {\n\t\t\t\t\t/* TODO: comment continuation (row == -1 / 0xFFFF) */\n\t\t\t\t\tcc = options.dense ? (out[\"!data\"][val[0].r]||[])[val[0].c] : out[encode_cell(val[0])];\n\t\t\t\t\tif(!cc) {\n\t\t\t\t\t\tif(options.dense) {\n\t\t\t\t\t\t\tif(!out[\"!data\"][val[0].r]) out[\"!data\"][val[0].r] = [];\n\t\t\t\t\t\t\tcc = out[\"!data\"][val[0].r][val[0].c] = ({t:\"z\"}/*:any*/);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcc = out[encode_cell(val[0])] = ({t:\"z\"}/*:any*/);\n\t\t\t\t\t\t}\n\t\t\t\t\t\trange.e.r = Math.max(range.e.r, val[0].r);\n\t\t\t\t\t\trange.s.r = Math.min(range.s.r, val[0].r);\n\t\t\t\t\t\trange.e.c = Math.max(range.e.c, val[0].c);\n\t\t\t\t\t\trange.s.c = Math.min(range.s.c, val[0].c);\n\t\t\t\t\t}\n\t\t\t\t\tif(!cc.c) cc.c = [];\n\t\t\t\t\tif(opts.biff <= 5 && opts.biff >= 2) cmnt = {a:\"SheetJ5\", t:val[1]};\n\t\t\t\t\telse {\n\t\t\t\t\t\tvar noteobj = objects[val[2]];\n\t\t\t\t\t\tcmnt = {a:val[1],t:noteobj.TxO.t};\n\t\t\t\t\t\tif(val[3] != null && !(val[3] & 0x02)) cc.c.hidden = true;\n\t\t\t\t\t}\n\t\t\t\t\tcc.c.push(cmnt);\n\t\t\t\t} break;\n\t\t\t\tcase 0x087d /* XFExt */: update_xfext(XFs[val.ixfe], val.ext); break;\n\t\t\t\tcase 0x007d /* ColInfo */: {\n\t\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256, level: (val.level || 0), hidden: !!(val.flags & 1) };\n\t\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0208 /* Row */: {\n\t\t\t\t\tvar rowobj = {};\n\t\t\t\t\tif(val.level != null) { rowinfo[val.r] = rowobj; rowobj.level = val.level; }\n\t\t\t\t\tif(val.hidden) { rowinfo[val.r] = rowobj; rowobj.hidden = true; }\n\t\t\t\t\tif(val.hpt) {\n\t\t\t\t\t\trowinfo[val.r] = rowobj;\n\t\t\t\t\t\trowobj.hpt = val.hpt; rowobj.hpx = pt2px(val.hpt);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0026 /* LeftMargin */:\n\t\t\t\tcase 0x0027 /* RightMargin */:\n\t\t\t\tcase 0x0028 /* TopMargin */:\n\t\t\t\tcase 0x0029 /* BottomMargin */:\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'][({0x26: \"left\", 0x27:\"right\", 0x28:\"top\", 0x29:\"bottom\"})[RecordType]] = val;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x00a1 /* Setup */: // TODO\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'].header = val.header;\n\t\t\t\t\tout['!margins'].footer = val.footer;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x023e /* Window2 */: // TODO\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(val.RTL) Workbook.Views[0].RTL = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0092 /* Palette */: palette = val; break;\n\t\t\t\tcase 0x0896 /* Theme */: themes = val; break;\n\t\t\t\tcase 0x008c /* Country */: country = val; break;\n\t\t\t\tcase 0x01ba /* CodeName */: {\n\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\tif(!cur_sheet) Workbook.WBProps.CodeName = val || \"ThisWorkbook\";\n\t\t\t\t\telse wsprops.CodeName = val || wsprops.name;\n\t\t\t\t} break;\n\t\t\t}\n\t\t} else {\n\t\t\tif(!R) console.error(\"Missing Info for XLS Record 0x\" + RecordType.toString(16));\n\t\t\tblob.l += length;\n\t\t}\n\t}\n\twb.SheetNames=keys(Directory).sort(function(a,b) { return Number(a) - Number(b); }).map(function(x){return Directory[x].name;});\n\tif(!options.bookSheets) wb.Sheets=Sheets;\n\tif(!wb.SheetNames.length && Preamble[\"!ref\"]) {\n\t\twb.SheetNames.push(\"Sheet1\");\n\t\t/*jshint -W069 */\n\t\tif(wb.Sheets) wb.Sheets[\"Sheet1\"] = Preamble;\n\t\t/*jshint +W069 */\n\t} else wb.Preamble=Preamble;\n\tif(wb.Sheets) FilterDatabases.forEach(function(r,i) { wb.Sheets[wb.SheetNames[i]]['!autofilter'] = r; });\n\twb.Strings = sst;\n\twb.SSF = dup(table_fmt);\n\tif(opts.enc) wb.Encryption = opts.enc;\n\tif(themes) wb.Themes = themes;\n\twb.Metadata = {};\n\tif(country !== undefined) wb.Metadata.Country = country;\n\tif(supbooks.names.length > 0) Workbook.Names = supbooks.names;\n\twb.Workbook = Workbook;\n\treturn wb;\n}\n\n/* TODO: split props*/\nvar PSCLSID = {\n\tSI: \"e0859ff2f94f6810ab9108002b27b3d9\",\n\tDSI: \"02d5cdd59c2e1b10939708002b2cf9ae\",\n\tUDI: \"05d5cdd59c2e1b10939708002b2cf9ae\"\n};\nfunction parse_xls_props(cfb/*:CFBContainer*/, props, o) {\n\t/* [MS-OSHARED] 2.3.3.2.2 Document Summary Information Property Set */\n\tvar DSI = CFB.find(cfb, '/!DocumentSummaryInformation');\n\tif(DSI && DSI.size > 0) try {\n\t\tvar DocSummary = parse_PropertySetStream(DSI, DocSummaryPIDDSI, PSCLSID.DSI);\n\t\tfor(var d in DocSummary) props[d] = DocSummary[d];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\t/* [MS-OSHARED] 2.3.3.2.1 Summary Information Property Set*/\n\tvar SI = CFB.find(cfb, '/!SummaryInformation');\n\tif(SI && SI.size > 0) try {\n\t\tvar Summary = parse_PropertySetStream(SI, SummaryPIDSI, PSCLSID.SI);\n\t\tfor(var s in Summary) if(props[s] == null) props[s] = Summary[s];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\tif(props.HeadingPairs && props.TitlesOfParts) {\n\t\tload_props_pairs(props.HeadingPairs, props.TitlesOfParts, props, o);\n\t\tdelete props.HeadingPairs; delete props.TitlesOfParts;\n\t}\n}\nfunction write_xls_props(wb/*:Workbook*/, cfb/*:CFBContainer*/) {\n\tvar DSEntries = [], SEntries = [], CEntries = [];\n\tvar i = 0, Keys;\n\tvar DocSummaryRE/*:{[key:string]:string}*/ = evert_key(DocSummaryPIDDSI, \"n\");\n\tvar SummaryRE/*:{[key:string]:string}*/ = evert_key(SummaryPIDSI, \"n\");\n\tif(wb.Props) {\n\t\tKeys = keys(wb.Props);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Props[Keys[i]]]);\n\t}\n\tif(wb.Custprops) {\n\t\tKeys = keys(wb.Custprops);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) if(!Object.prototype.hasOwnProperty.call((wb.Props||{}), Keys[i])) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Custprops[Keys[i]]]);\n\t}\n\tvar CEntries2 = [];\n\tfor(i = 0; i < CEntries.length; ++i) {\n\t\tif(XLSPSSkip.indexOf(CEntries[i][0]) > -1 || PseudoPropsPairs.indexOf(CEntries[i][0]) > -1) continue;\n\t\tif(CEntries[i][1] == null) continue;\n\t\tCEntries2.push(CEntries[i]);\n\t}\n\tif(SEntries.length) CFB.utils.cfb_add(cfb, \"/\\u0005SummaryInformation\", write_PropertySetStream(SEntries, PSCLSID.SI, SummaryRE, SummaryPIDSI));\n\tif(DSEntries.length || CEntries2.length) CFB.utils.cfb_add(cfb, \"/\\u0005DocumentSummaryInformation\", write_PropertySetStream(DSEntries, PSCLSID.DSI, DocSummaryRE, DocSummaryPIDDSI, CEntries2.length ? CEntries2 : null, PSCLSID.UDI));\n}\n\nfunction parse_xlscfb(cfb/*:any*/, options/*:?ParseOpts*/)/*:Workbook*/ {\nif(!options) options = {};\nfix_read_opts(options);\nreset_cp();\nif(options.codepage) set_ansi(options.codepage);\nvar CompObj/*:?CFBEntry*/, WB/*:?any*/;\nif(cfb.FullPaths) {\n\tif(CFB.find(cfb, '/encryption')) throw new Error(\"File is password-protected\");\n\tCompObj = CFB.find(cfb, '!CompObj');\n\tWB = CFB.find(cfb, '/Workbook') || CFB.find(cfb, '/Book');\n} else {\n\tswitch(options.type) {\n\t\tcase 'base64': cfb = s2a(Base64_decode(cfb)); break;\n\t\tcase 'binary': cfb = s2a(cfb); break;\n\t\tcase 'buffer': break;\n\t\tcase 'array': if(!Array.isArray(cfb)) cfb = Array.prototype.slice.call(cfb); break;\n\t}\n\tprep_blob(cfb, 0);\n\tWB = ({content: cfb}/*:any*/);\n}\nvar /*::CompObjP, */WorkbookP/*:: :Workbook = XLSX.utils.book_new(); */;\n\nvar _data/*:?any*/;\nif(CompObj) /*::CompObjP = */parse_compobj(CompObj);\nif(options.bookProps && !options.bookSheets) WorkbookP = ({}/*:any*/);\nelse/*:: if(cfb instanceof CFBContainer) */ {\n\tvar T = has_buf ? 'buffer' : 'array';\n\tif(WB && WB.content) WorkbookP = parse_workbook(WB.content, options);\n\t/* Quattro Pro 7-8 */\n\telse if((_data=CFB.find(cfb, 'PerfectOffice_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\t/* Quattro Pro 9 */\n\telse if((_data=CFB.find(cfb, 'NativeContent_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\t/* Works 4 for Mac */\n\telse if((_data=CFB.find(cfb, 'MN0')) && _data.content) throw new Error(\"Unsupported Works 4 for Mac file\");\n\telse throw new Error(\"Cannot find Workbook stream\");\n\tif(options.bookVBA && cfb.FullPaths && CFB.find(cfb, '/_VBA_PROJECT_CUR/VBA/dir')) WorkbookP.vbaraw = make_vba_xls(cfb);\n}\n\nvar props = {};\nif(cfb.FullPaths) parse_xls_props(/*::((*/cfb/*:: :any):CFBContainer)*/, props, options);\n\nWorkbookP.Props = WorkbookP.Custprops = props; /* TODO: split up properties */\nif(options.bookFiles) WorkbookP.cfb = cfb;\n/*WorkbookP.CompObjP = CompObjP; // TODO: storage? */\nreturn WorkbookP;\n}\n\n\nfunction write_xlscfb(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:CFBContainer*/ {\n\tvar o = opts || {};\n\tvar cfb = CFB.utils.cfb_new({root:\"R\"});\n\tvar wbpath = \"/Workbook\";\n\tswitch(o.bookType || \"xls\") {\n\t\tcase \"xls\": o.bookType = \"biff8\";\n\t\t/* falls through */\n\t\tcase \"xla\": if(!o.bookType) o.bookType = \"xla\";\n\t\t/* falls through */\n\t\tcase \"biff8\": wbpath = \"/Workbook\"; o.biff = 8; break;\n\t\tcase \"biff5\": wbpath = \"/Book\"; o.biff = 5; break;\n\t\tdefault: throw new Error(\"invalid type \" + o.bookType + \" for XLS CFB\");\n\t}\n\tCFB.utils.cfb_add(cfb, wbpath, write_biff_buf(wb, o));\n\tif(o.biff == 8 && (wb.Props || wb.Custprops)) write_xls_props(wb, cfb);\n\t// TODO: SI, DSI, CO\n\tif(o.biff == 8 && wb.vbaraw) fill_vba_xls(cfb, CFB.read(wb.vbaraw, {type: typeof wb.vbaraw == \"string\" ? \"binary\" : \"buffer\"}));\n\treturn cfb;\n}\n/* [MS-XLSB] 2.3 Record Enumeration */\nvar XLSBRecordEnum = {\n\t/*::[*/0x0000/*::]*/: { /* n:\"BrtRowHdr\", */ f:parse_BrtRowHdr },\n\t/*::[*/0x0001/*::]*/: { /* n:\"BrtCellBlank\", */ f:parse_BrtCellBlank },\n\t/*::[*/0x0002/*::]*/: { /* n:\"BrtCellRk\", */ f:parse_BrtCellRk },\n\t/*::[*/0x0003/*::]*/: { /* n:\"BrtCellError\", */ f:parse_BrtCellError },\n\t/*::[*/0x0004/*::]*/: { /* n:\"BrtCellBool\", */ f:parse_BrtCellBool },\n\t/*::[*/0x0005/*::]*/: { /* n:\"BrtCellReal\", */ f:parse_BrtCellReal },\n\t/*::[*/0x0006/*::]*/: { /* n:\"BrtCellSt\", */ f:parse_BrtCellSt },\n\t/*::[*/0x0007/*::]*/: { /* n:\"BrtCellIsst\", */ f:parse_BrtCellIsst },\n\t/*::[*/0x0008/*::]*/: { /* n:\"BrtFmlaString\", */ f:parse_BrtFmlaString },\n\t/*::[*/0x0009/*::]*/: { /* n:\"BrtFmlaNum\", */ f:parse_BrtFmlaNum },\n\t/*::[*/0x000A/*::]*/: { /* n:\"BrtFmlaBool\", */ f:parse_BrtFmlaBool },\n\t/*::[*/0x000B/*::]*/: { /* n:\"BrtFmlaError\", */ f:parse_BrtFmlaError },\n\t/*::[*/0x000C/*::]*/: { /* n:\"BrtShortBlank\", */ f:parse_BrtShortBlank },\n\t/*::[*/0x000D/*::]*/: { /* n:\"BrtShortRk\", */ f:parse_BrtShortRk },\n\t/*::[*/0x000E/*::]*/: { /* n:\"BrtShortError\", */ f:parse_BrtShortError },\n\t/*::[*/0x000F/*::]*/: { /* n:\"BrtShortBool\", */ f:parse_BrtShortBool },\n\t/*::[*/0x0010/*::]*/: { /* n:\"BrtShortReal\", */ f:parse_BrtShortReal },\n\t/*::[*/0x0011/*::]*/: { /* n:\"BrtShortSt\", */ f:parse_BrtShortSt },\n\t/*::[*/0x0012/*::]*/: { /* n:\"BrtShortIsst\", */ f:parse_BrtShortIsst },\n\t/*::[*/0x0013/*::]*/: { /* n:\"BrtSSTItem\", */ f:parse_RichStr },\n\t/*::[*/0x0014/*::]*/: { /* n:\"BrtPCDIMissing\" */ },\n\t/*::[*/0x0015/*::]*/: { /* n:\"BrtPCDINumber\" */ },\n\t/*::[*/0x0016/*::]*/: { /* n:\"BrtPCDIBoolean\" */ },\n\t/*::[*/0x0017/*::]*/: { /* n:\"BrtPCDIError\" */ },\n\t/*::[*/0x0018/*::]*/: { /* n:\"BrtPCDIString\" */ },\n\t/*::[*/0x0019/*::]*/: { /* n:\"BrtPCDIDatetime\" */ },\n\t/*::[*/0x001A/*::]*/: { /* n:\"BrtPCDIIndex\" */ },\n\t/*::[*/0x001B/*::]*/: { /* n:\"BrtPCDIAMissing\" */ },\n\t/*::[*/0x001C/*::]*/: { /* n:\"BrtPCDIANumber\" */ },\n\t/*::[*/0x001D/*::]*/: { /* n:\"BrtPCDIABoolean\" */ },\n\t/*::[*/0x001E/*::]*/: { /* n:\"BrtPCDIAError\" */ },\n\t/*::[*/0x001F/*::]*/: { /* n:\"BrtPCDIAString\" */ },\n\t/*::[*/0x0020/*::]*/: { /* n:\"BrtPCDIADatetime\" */ },\n\t/*::[*/0x0021/*::]*/: { /* n:\"BrtPCRRecord\" */ },\n\t/*::[*/0x0022/*::]*/: { /* n:\"BrtPCRRecordDt\" */ },\n\t/*::[*/0x0023/*::]*/: { /* n:\"BrtFRTBegin\", */ T:1 },\n\t/*::[*/0x0024/*::]*/: { /* n:\"BrtFRTEnd\", */ T:-1 },\n\t/*::[*/0x0025/*::]*/: { /* n:\"BrtACBegin\", */ T:1 },\n\t/*::[*/0x0026/*::]*/: { /* n:\"BrtACEnd\", */ T:-1 },\n\t/*::[*/0x0027/*::]*/: { /* n:\"BrtName\", */ f:parse_BrtName },\n\t/*::[*/0x0028/*::]*/: { /* n:\"BrtIndexRowBlock\" */ },\n\t/*::[*/0x002A/*::]*/: { /* n:\"BrtIndexBlock\" */ },\n\t/*::[*/0x002B/*::]*/: { /* n:\"BrtFont\", */ f:parse_BrtFont },\n\t/*::[*/0x002C/*::]*/: { /* n:\"BrtFmt\", */ f:parse_BrtFmt },\n\t/*::[*/0x002D/*::]*/: { /* n:\"BrtFill\", */ f:parse_BrtFill },\n\t/*::[*/0x002E/*::]*/: { /* n:\"BrtBorder\", */ f:parse_BrtBorder },\n\t/*::[*/0x002F/*::]*/: { /* n:\"BrtXF\", */ f:parse_BrtXF },\n\t/*::[*/0x0030/*::]*/: { /* n:\"BrtStyle\" */ },\n\t/*::[*/0x0031/*::]*/: { /* n:\"BrtCellMeta\", */ f:parse_Int32LE },\n\t/*::[*/0x0032/*::]*/: { /* n:\"BrtValueMeta\" */ },\n\t/*::[*/0x0033/*::]*/: { /* n:\"BrtMdb\" */ f:parse_BrtMdb },\n\t/*::[*/0x0034/*::]*/: { /* n:\"BrtBeginFmd\", */ T:1 },\n\t/*::[*/0x0035/*::]*/: { /* n:\"BrtEndFmd\", */ T:-1 },\n\t/*::[*/0x0036/*::]*/: { /* n:\"BrtBeginMdx\", */ T:1 },\n\t/*::[*/0x0037/*::]*/: { /* n:\"BrtEndMdx\", */ T:-1 },\n\t/*::[*/0x0038/*::]*/: { /* n:\"BrtBeginMdxTuple\", */ T:1 },\n\t/*::[*/0x0039/*::]*/: { /* n:\"BrtEndMdxTuple\", */ T:-1 },\n\t/*::[*/0x003A/*::]*/: { /* n:\"BrtMdxMbrIstr\" */ },\n\t/*::[*/0x003B/*::]*/: { /* n:\"BrtStr\" */ },\n\t/*::[*/0x003C/*::]*/: { /* n:\"BrtColInfo\", */ f:parse_ColInfo },\n\t/*::[*/0x003E/*::]*/: { /* n:\"BrtCellRString\", */ f:parse_BrtCellRString },\n\t/*::[*/0x003F/*::]*/: { /* n:\"BrtCalcChainItem$\", */ f:parse_BrtCalcChainItem$ },\n\t/*::[*/0x0040/*::]*/: { /* n:\"BrtDVal\", */ f:parse_BrtDVal },\n\t/*::[*/0x0041/*::]*/: { /* n:\"BrtSxvcellNum\" */ },\n\t/*::[*/0x0042/*::]*/: { /* n:\"BrtSxvcellStr\" */ },\n\t/*::[*/0x0043/*::]*/: { /* n:\"BrtSxvcellBool\" */ },\n\t/*::[*/0x0044/*::]*/: { /* n:\"BrtSxvcellErr\" */ },\n\t/*::[*/0x0045/*::]*/: { /* n:\"BrtSxvcellDate\" */ },\n\t/*::[*/0x0046/*::]*/: { /* n:\"BrtSxvcellNil\" */ },\n\t/*::[*/0x0080/*::]*/: { /* n:\"BrtFileVersion\" */ },\n\t/*::[*/0x0081/*::]*/: { /* n:\"BrtBeginSheet\", */ T:1 },\n\t/*::[*/0x0082/*::]*/: { /* n:\"BrtEndSheet\", */ T:-1 },\n\t/*::[*/0x0083/*::]*/: { /* n:\"BrtBeginBook\", */ T:1, f:parsenoop, p:0 },\n\t/*::[*/0x0084/*::]*/: { /* n:\"BrtEndBook\", */ T:-1 },\n\t/*::[*/0x0085/*::]*/: { /* n:\"BrtBeginWsViews\", */ T:1 },\n\t/*::[*/0x0086/*::]*/: { /* n:\"BrtEndWsViews\", */ T:-1 },\n\t/*::[*/0x0087/*::]*/: { /* n:\"BrtBeginBookViews\", */ T:1 },\n\t/*::[*/0x0088/*::]*/: { /* n:\"BrtEndBookViews\", */ T:-1 },\n\t/*::[*/0x0089/*::]*/: { /* n:\"BrtBeginWsView\", */ T:1, f:parse_BrtBeginWsView },\n\t/*::[*/0x008A/*::]*/: { /* n:\"BrtEndWsView\", */ T:-1 },\n\t/*::[*/0x008B/*::]*/: { /* n:\"BrtBeginCsViews\", */ T:1 },\n\t/*::[*/0x008C/*::]*/: { /* n:\"BrtEndCsViews\", */ T:-1 },\n\t/*::[*/0x008D/*::]*/: { /* n:\"BrtBeginCsView\", */ T:1 },\n\t/*::[*/0x008E/*::]*/: { /* n:\"BrtEndCsView\", */ T:-1 },\n\t/*::[*/0x008F/*::]*/: { /* n:\"BrtBeginBundleShs\", */ T:1 },\n\t/*::[*/0x0090/*::]*/: { /* n:\"BrtEndBundleShs\", */ T:-1 },\n\t/*::[*/0x0091/*::]*/: { /* n:\"BrtBeginSheetData\", */ T:1 },\n\t/*::[*/0x0092/*::]*/: { /* n:\"BrtEndSheetData\", */ T:-1 },\n\t/*::[*/0x0093/*::]*/: { /* n:\"BrtWsProp\", */ f:parse_BrtWsProp },\n\t/*::[*/0x0094/*::]*/: { /* n:\"BrtWsDim\", */ f:parse_BrtWsDim, p:16 },\n\t/*::[*/0x0097/*::]*/: { /* n:\"BrtPane\", */ f:parse_BrtPane },\n\t/*::[*/0x0098/*::]*/: { /* n:\"BrtSel\" */ },\n\t/*::[*/0x0099/*::]*/: { /* n:\"BrtWbProp\", */ f:parse_BrtWbProp },\n\t/*::[*/0x009A/*::]*/: { /* n:\"BrtWbFactoid\" */ },\n\t/*::[*/0x009B/*::]*/: { /* n:\"BrtFileRecover\" */ },\n\t/*::[*/0x009C/*::]*/: { /* n:\"BrtBundleSh\", */ f:parse_BrtBundleSh },\n\t/*::[*/0x009D/*::]*/: { /* n:\"BrtCalcProp\" */ },\n\t/*::[*/0x009E/*::]*/: { /* n:\"BrtBookView\" */ },\n\t/*::[*/0x009F/*::]*/: { /* n:\"BrtBeginSst\", */ T:1, f:parse_BrtBeginSst },\n\t/*::[*/0x00A0/*::]*/: { /* n:\"BrtEndSst\", */ T:-1 },\n\t/*::[*/0x00A1/*::]*/: { /* n:\"BrtBeginAFilter\", */ T:1, f:parse_UncheckedRfX },\n\t/*::[*/0x00A2/*::]*/: { /* n:\"BrtEndAFilter\", */ T:-1 },\n\t/*::[*/0x00A3/*::]*/: { /* n:\"BrtBeginFilterColumn\", */ T:1 },\n\t/*::[*/0x00A4/*::]*/: { /* n:\"BrtEndFilterColumn\", */ T:-1 },\n\t/*::[*/0x00A5/*::]*/: { /* n:\"BrtBeginFilters\", */ T:1 },\n\t/*::[*/0x00A6/*::]*/: { /* n:\"BrtEndFilters\", */ T:-1 },\n\t/*::[*/0x00A7/*::]*/: { /* n:\"BrtFilter\" */ },\n\t/*::[*/0x00A8/*::]*/: { /* n:\"BrtColorFilter\" */ },\n\t/*::[*/0x00A9/*::]*/: { /* n:\"BrtIconFilter\" */ },\n\t/*::[*/0x00AA/*::]*/: { /* n:\"BrtTop10Filter\" */ },\n\t/*::[*/0x00AB/*::]*/: { /* n:\"BrtDynamicFilter\" */ },\n\t/*::[*/0x00AC/*::]*/: { /* n:\"BrtBeginCustomFilters\", */ T:1 },\n\t/*::[*/0x00AD/*::]*/: { /* n:\"BrtEndCustomFilters\", */ T:-1 },\n\t/*::[*/0x00AE/*::]*/: { /* n:\"BrtCustomFilter\" */ },\n\t/*::[*/0x00AF/*::]*/: { /* n:\"BrtAFilterDateGroupItem\" */ },\n\t/*::[*/0x00B0/*::]*/: { /* n:\"BrtMergeCell\", */ f:parse_BrtMergeCell },\n\t/*::[*/0x00B1/*::]*/: { /* n:\"BrtBeginMergeCells\", */ T:1 },\n\t/*::[*/0x00B2/*::]*/: { /* n:\"BrtEndMergeCells\", */ T:-1 },\n\t/*::[*/0x00B3/*::]*/: { /* n:\"BrtBeginPivotCacheDef\", */ T:1 },\n\t/*::[*/0x00B4/*::]*/: { /* n:\"BrtEndPivotCacheDef\", */ T:-1 },\n\t/*::[*/0x00B5/*::]*/: { /* n:\"BrtBeginPCDFields\", */ T:1 },\n\t/*::[*/0x00B6/*::]*/: { /* n:\"BrtEndPCDFields\", */ T:-1 },\n\t/*::[*/0x00B7/*::]*/: { /* n:\"BrtBeginPCDField\", */ T:1 },\n\t/*::[*/0x00B8/*::]*/: { /* n:\"BrtEndPCDField\", */ T:-1 },\n\t/*::[*/0x00B9/*::]*/: { /* n:\"BrtBeginPCDSource\", */ T:1 },\n\t/*::[*/0x00BA/*::]*/: { /* n:\"BrtEndPCDSource\", */ T:-1 },\n\t/*::[*/0x00BB/*::]*/: { /* n:\"BrtBeginPCDSRange\", */ T:1 },\n\t/*::[*/0x00BC/*::]*/: { /* n:\"BrtEndPCDSRange\", */ T:-1 },\n\t/*::[*/0x00BD/*::]*/: { /* n:\"BrtBeginPCDFAtbl\", */ T:1 },\n\t/*::[*/0x00BE/*::]*/: { /* n:\"BrtEndPCDFAtbl\", */ T:-1 },\n\t/*::[*/0x00BF/*::]*/: { /* n:\"BrtBeginPCDIRun\", */ T:1 },\n\t/*::[*/0x00C0/*::]*/: { /* n:\"BrtEndPCDIRun\", */ T:-1 },\n\t/*::[*/0x00C1/*::]*/: { /* n:\"BrtBeginPivotCacheRecords\", */ T:1 },\n\t/*::[*/0x00C2/*::]*/: { /* n:\"BrtEndPivotCacheRecords\", */ T:-1 },\n\t/*::[*/0x00C3/*::]*/: { /* n:\"BrtBeginPCDHierarchies\", */ T:1 },\n\t/*::[*/0x00C4/*::]*/: { /* n:\"BrtEndPCDHierarchies\", */ T:-1 },\n\t/*::[*/0x00C5/*::]*/: { /* n:\"BrtBeginPCDHierarchy\", */ T:1 },\n\t/*::[*/0x00C6/*::]*/: { /* n:\"BrtEndPCDHierarchy\", */ T:-1 },\n\t/*::[*/0x00C7/*::]*/: { /* n:\"BrtBeginPCDHFieldsUsage\", */ T:1 },\n\t/*::[*/0x00C8/*::]*/: { /* n:\"BrtEndPCDHFieldsUsage\", */ T:-1 },\n\t/*::[*/0x00C9/*::]*/: { /* n:\"BrtBeginExtConnection\", */ T:1 },\n\t/*::[*/0x00CA/*::]*/: { /* n:\"BrtEndExtConnection\", */ T:-1 },\n\t/*::[*/0x00CB/*::]*/: { /* n:\"BrtBeginECDbProps\", */ T:1 },\n\t/*::[*/0x00CC/*::]*/: { /* n:\"BrtEndECDbProps\", */ T:-1 },\n\t/*::[*/0x00CD/*::]*/: { /* n:\"BrtBeginECOlapProps\", */ T:1 },\n\t/*::[*/0x00CE/*::]*/: { /* n:\"BrtEndECOlapProps\", */ T:-1 },\n\t/*::[*/0x00CF/*::]*/: { /* n:\"BrtBeginPCDSConsol\", */ T:1 },\n\t/*::[*/0x00D0/*::]*/: { /* n:\"BrtEndPCDSConsol\", */ T:-1 },\n\t/*::[*/0x00D1/*::]*/: { /* n:\"BrtBeginPCDSCPages\", */ T:1 },\n\t/*::[*/0x00D2/*::]*/: { /* n:\"BrtEndPCDSCPages\", */ T:-1 },\n\t/*::[*/0x00D3/*::]*/: { /* n:\"BrtBeginPCDSCPage\", */ T:1 },\n\t/*::[*/0x00D4/*::]*/: { /* n:\"BrtEndPCDSCPage\", */ T:-1 },\n\t/*::[*/0x00D5/*::]*/: { /* n:\"BrtBeginPCDSCPItem\", */ T:1 },\n\t/*::[*/0x00D6/*::]*/: { /* n:\"BrtEndPCDSCPItem\", */ T:-1 },\n\t/*::[*/0x00D7/*::]*/: { /* n:\"BrtBeginPCDSCSets\", */ T:1 },\n\t/*::[*/0x00D8/*::]*/: { /* n:\"BrtEndPCDSCSets\", */ T:-1 },\n\t/*::[*/0x00D9/*::]*/: { /* n:\"BrtBeginPCDSCSet\", */ T:1 },\n\t/*::[*/0x00DA/*::]*/: { /* n:\"BrtEndPCDSCSet\", */ T:-1 },\n\t/*::[*/0x00DB/*::]*/: { /* n:\"BrtBeginPCDFGroup\", */ T:1 },\n\t/*::[*/0x00DC/*::]*/: { /* n:\"BrtEndPCDFGroup\", */ T:-1 },\n\t/*::[*/0x00DD/*::]*/: { /* n:\"BrtBeginPCDFGItems\", */ T:1 },\n\t/*::[*/0x00DE/*::]*/: { /* n:\"BrtEndPCDFGItems\", */ T:-1 },\n\t/*::[*/0x00DF/*::]*/: { /* n:\"BrtBeginPCDFGRange\", */ T:1 },\n\t/*::[*/0x00E0/*::]*/: { /* n:\"BrtEndPCDFGRange\", */ T:-1 },\n\t/*::[*/0x00E1/*::]*/: { /* n:\"BrtBeginPCDFGDiscrete\", */ T:1 },\n\t/*::[*/0x00E2/*::]*/: { /* n:\"BrtEndPCDFGDiscrete\", */ T:-1 },\n\t/*::[*/0x00E3/*::]*/: { /* n:\"BrtBeginPCDSDTupleCache\", */ T:1 },\n\t/*::[*/0x00E4/*::]*/: { /* n:\"BrtEndPCDSDTupleCache\", */ T:-1 },\n\t/*::[*/0x00E5/*::]*/: { /* n:\"BrtBeginPCDSDTCEntries\", */ T:1 },\n\t/*::[*/0x00E6/*::]*/: { /* n:\"BrtEndPCDSDTCEntries\", */ T:-1 },\n\t/*::[*/0x00E7/*::]*/: { /* n:\"BrtBeginPCDSDTCEMembers\", */ T:1 },\n\t/*::[*/0x00E8/*::]*/: { /* n:\"BrtEndPCDSDTCEMembers\", */ T:-1 },\n\t/*::[*/0x00E9/*::]*/: { /* n:\"BrtBeginPCDSDTCEMember\", */ T:1 },\n\t/*::[*/0x00EA/*::]*/: { /* n:\"BrtEndPCDSDTCEMember\", */ T:-1 },\n\t/*::[*/0x00EB/*::]*/: { /* n:\"BrtBeginPCDSDTCQueries\", */ T:1 },\n\t/*::[*/0x00EC/*::]*/: { /* n:\"BrtEndPCDSDTCQueries\", */ T:-1 },\n\t/*::[*/0x00ED/*::]*/: { /* n:\"BrtBeginPCDSDTCQuery\", */ T:1 },\n\t/*::[*/0x00EE/*::]*/: { /* n:\"BrtEndPCDSDTCQuery\", */ T:-1 },\n\t/*::[*/0x00EF/*::]*/: { /* n:\"BrtBeginPCDSDTCSets\", */ T:1 },\n\t/*::[*/0x00F0/*::]*/: { /* n:\"BrtEndPCDSDTCSets\", */ T:-1 },\n\t/*::[*/0x00F1/*::]*/: { /* n:\"BrtBeginPCDSDTCSet\", */ T:1 },\n\t/*::[*/0x00F2/*::]*/: { /* n:\"BrtEndPCDSDTCSet\", */ T:-1 },\n\t/*::[*/0x00F3/*::]*/: { /* n:\"BrtBeginPCDCalcItems\", */ T:1 },\n\t/*::[*/0x00F4/*::]*/: { /* n:\"BrtEndPCDCalcItems\", */ T:-1 },\n\t/*::[*/0x00F5/*::]*/: { /* n:\"BrtBeginPCDCalcItem\", */ T:1 },\n\t/*::[*/0x00F6/*::]*/: { /* n:\"BrtEndPCDCalcItem\", */ T:-1 },\n\t/*::[*/0x00F7/*::]*/: { /* n:\"BrtBeginPRule\", */ T:1 },\n\t/*::[*/0x00F8/*::]*/: { /* n:\"BrtEndPRule\", */ T:-1 },\n\t/*::[*/0x00F9/*::]*/: { /* n:\"BrtBeginPRFilters\", */ T:1 },\n\t/*::[*/0x00FA/*::]*/: { /* n:\"BrtEndPRFilters\", */ T:-1 },\n\t/*::[*/0x00FB/*::]*/: { /* n:\"BrtBeginPRFilter\", */ T:1 },\n\t/*::[*/0x00FC/*::]*/: { /* n:\"BrtEndPRFilter\", */ T:-1 },\n\t/*::[*/0x00FD/*::]*/: { /* n:\"BrtBeginPNames\", */ T:1 },\n\t/*::[*/0x00FE/*::]*/: { /* n:\"BrtEndPNames\", */ T:-1 },\n\t/*::[*/0x00FF/*::]*/: { /* n:\"BrtBeginPName\", */ T:1 },\n\t/*::[*/0x0100/*::]*/: { /* n:\"BrtEndPName\", */ T:-1 },\n\t/*::[*/0x0101/*::]*/: { /* n:\"BrtBeginPNPairs\", */ T:1 },\n\t/*::[*/0x0102/*::]*/: { /* n:\"BrtEndPNPairs\", */ T:-1 },\n\t/*::[*/0x0103/*::]*/: { /* n:\"BrtBeginPNPair\", */ T:1 },\n\t/*::[*/0x0104/*::]*/: { /* n:\"BrtEndPNPair\", */ T:-1 },\n\t/*::[*/0x0105/*::]*/: { /* n:\"BrtBeginECWebProps\", */ T:1 },\n\t/*::[*/0x0106/*::]*/: { /* n:\"BrtEndECWebProps\", */ T:-1 },\n\t/*::[*/0x0107/*::]*/: { /* n:\"BrtBeginEcWpTables\", */ T:1 },\n\t/*::[*/0x0108/*::]*/: { /* n:\"BrtEndECWPTables\", */ T:-1 },\n\t/*::[*/0x0109/*::]*/: { /* n:\"BrtBeginECParams\", */ T:1 },\n\t/*::[*/0x010A/*::]*/: { /* n:\"BrtEndECParams\", */ T:-1 },\n\t/*::[*/0x010B/*::]*/: { /* n:\"BrtBeginECParam\", */ T:1 },\n\t/*::[*/0x010C/*::]*/: { /* n:\"BrtEndECParam\", */ T:-1 },\n\t/*::[*/0x010D/*::]*/: { /* n:\"BrtBeginPCDKPIs\", */ T:1 },\n\t/*::[*/0x010E/*::]*/: { /* n:\"BrtEndPCDKPIs\", */ T:-1 },\n\t/*::[*/0x010F/*::]*/: { /* n:\"BrtBeginPCDKPI\", */ T:1 },\n\t/*::[*/0x0110/*::]*/: { /* n:\"BrtEndPCDKPI\", */ T:-1 },\n\t/*::[*/0x0111/*::]*/: { /* n:\"BrtBeginDims\", */ T:1 },\n\t/*::[*/0x0112/*::]*/: { /* n:\"BrtEndDims\", */ T:-1 },\n\t/*::[*/0x0113/*::]*/: { /* n:\"BrtBeginDim\", */ T:1 },\n\t/*::[*/0x0114/*::]*/: { /* n:\"BrtEndDim\", */ T:-1 },\n\t/*::[*/0x0115/*::]*/: { /* n:\"BrtIndexPartEnd\" */ },\n\t/*::[*/0x0116/*::]*/: { /* n:\"BrtBeginStyleSheet\", */ T:1 },\n\t/*::[*/0x0117/*::]*/: { /* n:\"BrtEndStyleSheet\", */ T:-1 },\n\t/*::[*/0x0118/*::]*/: { /* n:\"BrtBeginSXView\", */ T:1 },\n\t/*::[*/0x0119/*::]*/: { /* n:\"BrtEndSXVI\", */ T:-1 },\n\t/*::[*/0x011A/*::]*/: { /* n:\"BrtBeginSXVI\", */ T:1 },\n\t/*::[*/0x011B/*::]*/: { /* n:\"BrtBeginSXVIs\", */ T:1 },\n\t/*::[*/0x011C/*::]*/: { /* n:\"BrtEndSXVIs\", */ T:-1 },\n\t/*::[*/0x011D/*::]*/: { /* n:\"BrtBeginSXVD\", */ T:1 },\n\t/*::[*/0x011E/*::]*/: { /* n:\"BrtEndSXVD\", */ T:-1 },\n\t/*::[*/0x011F/*::]*/: { /* n:\"BrtBeginSXVDs\", */ T:1 },\n\t/*::[*/0x0120/*::]*/: { /* n:\"BrtEndSXVDs\", */ T:-1 },\n\t/*::[*/0x0121/*::]*/: { /* n:\"BrtBeginSXPI\", */ T:1 },\n\t/*::[*/0x0122/*::]*/: { /* n:\"BrtEndSXPI\", */ T:-1 },\n\t/*::[*/0x0123/*::]*/: { /* n:\"BrtBeginSXPIs\", */ T:1 },\n\t/*::[*/0x0124/*::]*/: { /* n:\"BrtEndSXPIs\", */ T:-1 },\n\t/*::[*/0x0125/*::]*/: { /* n:\"BrtBeginSXDI\", */ T:1 },\n\t/*::[*/0x0126/*::]*/: { /* n:\"BrtEndSXDI\", */ T:-1 },\n\t/*::[*/0x0127/*::]*/: { /* n:\"BrtBeginSXDIs\", */ T:1 },\n\t/*::[*/0x0128/*::]*/: { /* n:\"BrtEndSXDIs\", */ T:-1 },\n\t/*::[*/0x0129/*::]*/: { /* n:\"BrtBeginSXLI\", */ T:1 },\n\t/*::[*/0x012A/*::]*/: { /* n:\"BrtEndSXLI\", */ T:-1 },\n\t/*::[*/0x012B/*::]*/: { /* n:\"BrtBeginSXLIRws\", */ T:1 },\n\t/*::[*/0x012C/*::]*/: { /* n:\"BrtEndSXLIRws\", */ T:-1 },\n\t/*::[*/0x012D/*::]*/: { /* n:\"BrtBeginSXLICols\", */ T:1 },\n\t/*::[*/0x012E/*::]*/: { /* n:\"BrtEndSXLICols\", */ T:-1 },\n\t/*::[*/0x012F/*::]*/: { /* n:\"BrtBeginSXFormat\", */ T:1 },\n\t/*::[*/0x0130/*::]*/: { /* n:\"BrtEndSXFormat\", */ T:-1 },\n\t/*::[*/0x0131/*::]*/: { /* n:\"BrtBeginSXFormats\", */ T:1 },\n\t/*::[*/0x0132/*::]*/: { /* n:\"BrtEndSxFormats\", */ T:-1 },\n\t/*::[*/0x0133/*::]*/: { /* n:\"BrtBeginSxSelect\", */ T:1 },\n\t/*::[*/0x0134/*::]*/: { /* n:\"BrtEndSxSelect\", */ T:-1 },\n\t/*::[*/0x0135/*::]*/: { /* n:\"BrtBeginISXVDRws\", */ T:1 },\n\t/*::[*/0x0136/*::]*/: { /* n:\"BrtEndISXVDRws\", */ T:-1 },\n\t/*::[*/0x0137/*::]*/: { /* n:\"BrtBeginISXVDCols\", */ T:1 },\n\t/*::[*/0x0138/*::]*/: { /* n:\"BrtEndISXVDCols\", */ T:-1 },\n\t/*::[*/0x0139/*::]*/: { /* n:\"BrtEndSXLocation\", */ T:-1 },\n\t/*::[*/0x013A/*::]*/: { /* n:\"BrtBeginSXLocation\", */ T:1 },\n\t/*::[*/0x013B/*::]*/: { /* n:\"BrtEndSXView\", */ T:-1 },\n\t/*::[*/0x013C/*::]*/: { /* n:\"BrtBeginSXTHs\", */ T:1 },\n\t/*::[*/0x013D/*::]*/: { /* n:\"BrtEndSXTHs\", */ T:-1 },\n\t/*::[*/0x013E/*::]*/: { /* n:\"BrtBeginSXTH\", */ T:1 },\n\t/*::[*/0x013F/*::]*/: { /* n:\"BrtEndSXTH\", */ T:-1 },\n\t/*::[*/0x0140/*::]*/: { /* n:\"BrtBeginISXTHRws\", */ T:1 },\n\t/*::[*/0x0141/*::]*/: { /* n:\"BrtEndISXTHRws\", */ T:-1 },\n\t/*::[*/0x0142/*::]*/: { /* n:\"BrtBeginISXTHCols\", */ T:1 },\n\t/*::[*/0x0143/*::]*/: { /* n:\"BrtEndISXTHCols\", */ T:-1 },\n\t/*::[*/0x0144/*::]*/: { /* n:\"BrtBeginSXTDMPS\", */ T:1 },\n\t/*::[*/0x0145/*::]*/: { /* n:\"BrtEndSXTDMPs\", */ T:-1 },\n\t/*::[*/0x0146/*::]*/: { /* n:\"BrtBeginSXTDMP\", */ T:1 },\n\t/*::[*/0x0147/*::]*/: { /* n:\"BrtEndSXTDMP\", */ T:-1 },\n\t/*::[*/0x0148/*::]*/: { /* n:\"BrtBeginSXTHItems\", */ T:1 },\n\t/*::[*/0x0149/*::]*/: { /* n:\"BrtEndSXTHItems\", */ T:-1 },\n\t/*::[*/0x014A/*::]*/: { /* n:\"BrtBeginSXTHItem\", */ T:1 },\n\t/*::[*/0x014B/*::]*/: { /* n:\"BrtEndSXTHItem\", */ T:-1 },\n\t/*::[*/0x014C/*::]*/: { /* n:\"BrtBeginMetadata\", */ T:1 },\n\t/*::[*/0x014D/*::]*/: { /* n:\"BrtEndMetadata\", */ T:-1 },\n\t/*::[*/0x014E/*::]*/: { /* n:\"BrtBeginEsmdtinfo\", */ T:1 },\n\t/*::[*/0x014F/*::]*/: { /* n:\"BrtMdtinfo\", */ f:parse_BrtMdtinfo },\n\t/*::[*/0x0150/*::]*/: { /* n:\"BrtEndEsmdtinfo\", */ T:-1 },\n\t/*::[*/0x0151/*::]*/: { /* n:\"BrtBeginEsmdb\", */ f:parse_BrtBeginEsmdb, T:1 },\n\t/*::[*/0x0152/*::]*/: { /* n:\"BrtEndEsmdb\", */ T:-1 },\n\t/*::[*/0x0153/*::]*/: { /* n:\"BrtBeginEsfmd\", */ T:1 },\n\t/*::[*/0x0154/*::]*/: { /* n:\"BrtEndEsfmd\", */ T:-1 },\n\t/*::[*/0x0155/*::]*/: { /* n:\"BrtBeginSingleCells\", */ T:1 },\n\t/*::[*/0x0156/*::]*/: { /* n:\"BrtEndSingleCells\", */ T:-1 },\n\t/*::[*/0x0157/*::]*/: { /* n:\"BrtBeginList\", */ T:1 },\n\t/*::[*/0x0158/*::]*/: { /* n:\"BrtEndList\", */ T:-1 },\n\t/*::[*/0x0159/*::]*/: { /* n:\"BrtBeginListCols\", */ T:1 },\n\t/*::[*/0x015A/*::]*/: { /* n:\"BrtEndListCols\", */ T:-1 },\n\t/*::[*/0x015B/*::]*/: { /* n:\"BrtBeginListCol\", */ T:1 },\n\t/*::[*/0x015C/*::]*/: { /* n:\"BrtEndListCol\", */ T:-1 },\n\t/*::[*/0x015D/*::]*/: { /* n:\"BrtBeginListXmlCPr\", */ T:1 },\n\t/*::[*/0x015E/*::]*/: { /* n:\"BrtEndListXmlCPr\", */ T:-1 },\n\t/*::[*/0x015F/*::]*/: { /* n:\"BrtListCCFmla\" */ },\n\t/*::[*/0x0160/*::]*/: { /* n:\"BrtListTrFmla\" */ },\n\t/*::[*/0x0161/*::]*/: { /* n:\"BrtBeginExternals\", */ T:1 },\n\t/*::[*/0x0162/*::]*/: { /* n:\"BrtEndExternals\", */ T:-1 },\n\t/*::[*/0x0163/*::]*/: { /* n:\"BrtSupBookSrc\", */ f:parse_RelID},\n\t/*::[*/0x0165/*::]*/: { /* n:\"BrtSupSelf\" */ },\n\t/*::[*/0x0166/*::]*/: { /* n:\"BrtSupSame\" */ },\n\t/*::[*/0x0167/*::]*/: { /* n:\"BrtSupTabs\" */ },\n\t/*::[*/0x0168/*::]*/: { /* n:\"BrtBeginSupBook\", */ T:1 },\n\t/*::[*/0x0169/*::]*/: { /* n:\"BrtPlaceholderName\" */ },\n\t/*::[*/0x016A/*::]*/: { /* n:\"BrtExternSheet\", */ f:parse_ExternSheet },\n\t/*::[*/0x016B/*::]*/: { /* n:\"BrtExternTableStart\" */ },\n\t/*::[*/0x016C/*::]*/: { /* n:\"BrtExternTableEnd\" */ },\n\t/*::[*/0x016E/*::]*/: { /* n:\"BrtExternRowHdr\" */ },\n\t/*::[*/0x016F/*::]*/: { /* n:\"BrtExternCellBlank\" */ },\n\t/*::[*/0x0170/*::]*/: { /* n:\"BrtExternCellReal\" */ },\n\t/*::[*/0x0171/*::]*/: { /* n:\"BrtExternCellBool\" */ },\n\t/*::[*/0x0172/*::]*/: { /* n:\"BrtExternCellError\" */ },\n\t/*::[*/0x0173/*::]*/: { /* n:\"BrtExternCellString\" */ },\n\t/*::[*/0x0174/*::]*/: { /* n:\"BrtBeginEsmdx\", */ T:1 },\n\t/*::[*/0x0175/*::]*/: { /* n:\"BrtEndEsmdx\", */ T:-1 },\n\t/*::[*/0x0176/*::]*/: { /* n:\"BrtBeginMdxSet\", */ T:1 },\n\t/*::[*/0x0177/*::]*/: { /* n:\"BrtEndMdxSet\", */ T:-1 },\n\t/*::[*/0x0178/*::]*/: { /* n:\"BrtBeginMdxMbrProp\", */ T:1 },\n\t/*::[*/0x0179/*::]*/: { /* n:\"BrtEndMdxMbrProp\", */ T:-1 },\n\t/*::[*/0x017A/*::]*/: { /* n:\"BrtBeginMdxKPI\", */ T:1 },\n\t/*::[*/0x017B/*::]*/: { /* n:\"BrtEndMdxKPI\", */ T:-1 },\n\t/*::[*/0x017C/*::]*/: { /* n:\"BrtBeginEsstr\", */ T:1 },\n\t/*::[*/0x017D/*::]*/: { /* n:\"BrtEndEsstr\", */ T:-1 },\n\t/*::[*/0x017E/*::]*/: { /* n:\"BrtBeginPRFItem\", */ T:1 },\n\t/*::[*/0x017F/*::]*/: { /* n:\"BrtEndPRFItem\", */ T:-1 },\n\t/*::[*/0x0180/*::]*/: { /* n:\"BrtBeginPivotCacheIDs\", */ T:1 },\n\t/*::[*/0x0181/*::]*/: { /* n:\"BrtEndPivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x0182/*::]*/: { /* n:\"BrtBeginPivotCacheID\", */ T:1 },\n\t/*::[*/0x0183/*::]*/: { /* n:\"BrtEndPivotCacheID\", */ T:-1 },\n\t/*::[*/0x0184/*::]*/: { /* n:\"BrtBeginISXVIs\", */ T:1 },\n\t/*::[*/0x0185/*::]*/: { /* n:\"BrtEndISXVIs\", */ T:-1 },\n\t/*::[*/0x0186/*::]*/: { /* n:\"BrtBeginColInfos\", */ T:1 },\n\t/*::[*/0x0187/*::]*/: { /* n:\"BrtEndColInfos\", */ T:-1 },\n\t/*::[*/0x0188/*::]*/: { /* n:\"BrtBeginRwBrk\", */ T:1 },\n\t/*::[*/0x0189/*::]*/: { /* n:\"BrtEndRwBrk\", */ T:-1 },\n\t/*::[*/0x018A/*::]*/: { /* n:\"BrtBeginColBrk\", */ T:1 },\n\t/*::[*/0x018B/*::]*/: { /* n:\"BrtEndColBrk\", */ T:-1 },\n\t/*::[*/0x018C/*::]*/: { /* n:\"BrtBrk\" */ },\n\t/*::[*/0x018D/*::]*/: { /* n:\"BrtUserBookView\" */ },\n\t/*::[*/0x018E/*::]*/: { /* n:\"BrtInfo\" */ },\n\t/*::[*/0x018F/*::]*/: { /* n:\"BrtCUsr\" */ },\n\t/*::[*/0x0190/*::]*/: { /* n:\"BrtUsr\" */ },\n\t/*::[*/0x0191/*::]*/: { /* n:\"BrtBeginUsers\", */ T:1 },\n\t/*::[*/0x0193/*::]*/: { /* n:\"BrtEOF\" */ },\n\t/*::[*/0x0194/*::]*/: { /* n:\"BrtUCR\" */ },\n\t/*::[*/0x0195/*::]*/: { /* n:\"BrtRRInsDel\" */ },\n\t/*::[*/0x0196/*::]*/: { /* n:\"BrtRREndInsDel\" */ },\n\t/*::[*/0x0197/*::]*/: { /* n:\"BrtRRMove\" */ },\n\t/*::[*/0x0198/*::]*/: { /* n:\"BrtRREndMove\" */ },\n\t/*::[*/0x0199/*::]*/: { /* n:\"BrtRRChgCell\" */ },\n\t/*::[*/0x019A/*::]*/: { /* n:\"BrtRREndChgCell\" */ },\n\t/*::[*/0x019B/*::]*/: { /* n:\"BrtRRHeader\" */ },\n\t/*::[*/0x019C/*::]*/: { /* n:\"BrtRRUserView\" */ },\n\t/*::[*/0x019D/*::]*/: { /* n:\"BrtRRRenSheet\" */ },\n\t/*::[*/0x019E/*::]*/: { /* n:\"BrtRRInsertSh\" */ },\n\t/*::[*/0x019F/*::]*/: { /* n:\"BrtRRDefName\" */ },\n\t/*::[*/0x01A0/*::]*/: { /* n:\"BrtRRNote\" */ },\n\t/*::[*/0x01A1/*::]*/: { /* n:\"BrtRRConflict\" */ },\n\t/*::[*/0x01A2/*::]*/: { /* n:\"BrtRRTQSIF\" */ },\n\t/*::[*/0x01A3/*::]*/: { /* n:\"BrtRRFormat\" */ },\n\t/*::[*/0x01A4/*::]*/: { /* n:\"BrtRREndFormat\" */ },\n\t/*::[*/0x01A5/*::]*/: { /* n:\"BrtRRAutoFmt\" */ },\n\t/*::[*/0x01A6/*::]*/: { /* n:\"BrtBeginUserShViews\", */ T:1 },\n\t/*::[*/0x01A7/*::]*/: { /* n:\"BrtBeginUserShView\", */ T:1 },\n\t/*::[*/0x01A8/*::]*/: { /* n:\"BrtEndUserShView\", */ T:-1 },\n\t/*::[*/0x01A9/*::]*/: { /* n:\"BrtEndUserShViews\", */ T:-1 },\n\t/*::[*/0x01AA/*::]*/: { /* n:\"BrtArrFmla\", */ f:parse_BrtArrFmla },\n\t/*::[*/0x01AB/*::]*/: { /* n:\"BrtShrFmla\", */ f:parse_BrtShrFmla },\n\t/*::[*/0x01AC/*::]*/: { /* n:\"BrtTable\" */ },\n\t/*::[*/0x01AD/*::]*/: { /* n:\"BrtBeginExtConnections\", */ T:1 },\n\t/*::[*/0x01AE/*::]*/: { /* n:\"BrtEndExtConnections\", */ T:-1 },\n\t/*::[*/0x01AF/*::]*/: { /* n:\"BrtBeginPCDCalcMems\", */ T:1 },\n\t/*::[*/0x01B0/*::]*/: { /* n:\"BrtEndPCDCalcMems\", */ T:-1 },\n\t/*::[*/0x01B1/*::]*/: { /* n:\"BrtBeginPCDCalcMem\", */ T:1 },\n\t/*::[*/0x01B2/*::]*/: { /* n:\"BrtEndPCDCalcMem\", */ T:-1 },\n\t/*::[*/0x01B3/*::]*/: { /* n:\"BrtBeginPCDHGLevels\", */ T:1 },\n\t/*::[*/0x01B4/*::]*/: { /* n:\"BrtEndPCDHGLevels\", */ T:-1 },\n\t/*::[*/0x01B5/*::]*/: { /* n:\"BrtBeginPCDHGLevel\", */ T:1 },\n\t/*::[*/0x01B6/*::]*/: { /* n:\"BrtEndPCDHGLevel\", */ T:-1 },\n\t/*::[*/0x01B7/*::]*/: { /* n:\"BrtBeginPCDHGLGroups\", */ T:1 },\n\t/*::[*/0x01B8/*::]*/: { /* n:\"BrtEndPCDHGLGroups\", */ T:-1 },\n\t/*::[*/0x01B9/*::]*/: { /* n:\"BrtBeginPCDHGLGroup\", */ T:1 },\n\t/*::[*/0x01BA/*::]*/: { /* n:\"BrtEndPCDHGLGroup\", */ T:-1 },\n\t/*::[*/0x01BB/*::]*/: { /* n:\"BrtBeginPCDHGLGMembers\", */ T:1 },\n\t/*::[*/0x01BC/*::]*/: { /* n:\"BrtEndPCDHGLGMembers\", */ T:-1 },\n\t/*::[*/0x01BD/*::]*/: { /* n:\"BrtBeginPCDHGLGMember\", */ T:1 },\n\t/*::[*/0x01BE/*::]*/: { /* n:\"BrtEndPCDHGLGMember\", */ T:-1 },\n\t/*::[*/0x01BF/*::]*/: { /* n:\"BrtBeginQSI\", */ T:1 },\n\t/*::[*/0x01C0/*::]*/: { /* n:\"BrtEndQSI\", */ T:-1 },\n\t/*::[*/0x01C1/*::]*/: { /* n:\"BrtBeginQSIR\", */ T:1 },\n\t/*::[*/0x01C2/*::]*/: { /* n:\"BrtEndQSIR\", */ T:-1 },\n\t/*::[*/0x01C3/*::]*/: { /* n:\"BrtBeginDeletedNames\", */ T:1 },\n\t/*::[*/0x01C4/*::]*/: { /* n:\"BrtEndDeletedNames\", */ T:-1 },\n\t/*::[*/0x01C5/*::]*/: { /* n:\"BrtBeginDeletedName\", */ T:1 },\n\t/*::[*/0x01C6/*::]*/: { /* n:\"BrtEndDeletedName\", */ T:-1 },\n\t/*::[*/0x01C7/*::]*/: { /* n:\"BrtBeginQSIFs\", */ T:1 },\n\t/*::[*/0x01C8/*::]*/: { /* n:\"BrtEndQSIFs\", */ T:-1 },\n\t/*::[*/0x01C9/*::]*/: { /* n:\"BrtBeginQSIF\", */ T:1 },\n\t/*::[*/0x01CA/*::]*/: { /* n:\"BrtEndQSIF\", */ T:-1 },\n\t/*::[*/0x01CB/*::]*/: { /* n:\"BrtBeginAutoSortScope\", */ T:1 },\n\t/*::[*/0x01CC/*::]*/: { /* n:\"BrtEndAutoSortScope\", */ T:-1 },\n\t/*::[*/0x01CD/*::]*/: { /* n:\"BrtBeginConditionalFormatting\", */ T:1 },\n\t/*::[*/0x01CE/*::]*/: { /* n:\"BrtEndConditionalFormatting\", */ T:-1 },\n\t/*::[*/0x01CF/*::]*/: { /* n:\"BrtBeginCFRule\", */ T:1 },\n\t/*::[*/0x01D0/*::]*/: { /* n:\"BrtEndCFRule\", */ T:-1 },\n\t/*::[*/0x01D1/*::]*/: { /* n:\"BrtBeginIconSet\", */ T:1 },\n\t/*::[*/0x01D2/*::]*/: { /* n:\"BrtEndIconSet\", */ T:-1 },\n\t/*::[*/0x01D3/*::]*/: { /* n:\"BrtBeginDatabar\", */ T:1 },\n\t/*::[*/0x01D4/*::]*/: { /* n:\"BrtEndDatabar\", */ T:-1 },\n\t/*::[*/0x01D5/*::]*/: { /* n:\"BrtBeginColorScale\", */ T:1 },\n\t/*::[*/0x01D6/*::]*/: { /* n:\"BrtEndColorScale\", */ T:-1 },\n\t/*::[*/0x01D7/*::]*/: { /* n:\"BrtCFVO\" */ },\n\t/*::[*/0x01D8/*::]*/: { /* n:\"BrtExternValueMeta\" */ },\n\t/*::[*/0x01D9/*::]*/: { /* n:\"BrtBeginColorPalette\", */ T:1 },\n\t/*::[*/0x01DA/*::]*/: { /* n:\"BrtEndColorPalette\", */ T:-1 },\n\t/*::[*/0x01DB/*::]*/: { /* n:\"BrtIndexedColor\" */ },\n\t/*::[*/0x01DC/*::]*/: { /* n:\"BrtMargins\", */ f:parse_BrtMargins },\n\t/*::[*/0x01DD/*::]*/: { /* n:\"BrtPrintOptions\" */ },\n\t/*::[*/0x01DE/*::]*/: { /* n:\"BrtPageSetup\" */ },\n\t/*::[*/0x01DF/*::]*/: { /* n:\"BrtBeginHeaderFooter\", */ T:1 },\n\t/*::[*/0x01E0/*::]*/: { /* n:\"BrtEndHeaderFooter\", */ T:-1 },\n\t/*::[*/0x01E1/*::]*/: { /* n:\"BrtBeginSXCrtFormat\", */ T:1 },\n\t/*::[*/0x01E2/*::]*/: { /* n:\"BrtEndSXCrtFormat\", */ T:-1 },\n\t/*::[*/0x01E3/*::]*/: { /* n:\"BrtBeginSXCrtFormats\", */ T:1 },\n\t/*::[*/0x01E4/*::]*/: { /* n:\"BrtEndSXCrtFormats\", */ T:-1 },\n\t/*::[*/0x01E5/*::]*/: { /* n:\"BrtWsFmtInfo\", */ f:parse_BrtWsFmtInfo },\n\t/*::[*/0x01E6/*::]*/: { /* n:\"BrtBeginMgs\", */ T:1 },\n\t/*::[*/0x01E7/*::]*/: { /* n:\"BrtEndMGs\", */ T:-1 },\n\t/*::[*/0x01E8/*::]*/: { /* n:\"BrtBeginMGMaps\", */ T:1 },\n\t/*::[*/0x01E9/*::]*/: { /* n:\"BrtEndMGMaps\", */ T:-1 },\n\t/*::[*/0x01EA/*::]*/: { /* n:\"BrtBeginMG\", */ T:1 },\n\t/*::[*/0x01EB/*::]*/: { /* n:\"BrtEndMG\", */ T:-1 },\n\t/*::[*/0x01EC/*::]*/: { /* n:\"BrtBeginMap\", */ T:1 },\n\t/*::[*/0x01ED/*::]*/: { /* n:\"BrtEndMap\", */ T:-1 },\n\t/*::[*/0x01EE/*::]*/: { /* n:\"BrtHLink\", */ f:parse_BrtHLink },\n\t/*::[*/0x01EF/*::]*/: { /* n:\"BrtBeginDCon\", */ T:1 },\n\t/*::[*/0x01F0/*::]*/: { /* n:\"BrtEndDCon\", */ T:-1 },\n\t/*::[*/0x01F1/*::]*/: { /* n:\"BrtBeginDRefs\", */ T:1 },\n\t/*::[*/0x01F2/*::]*/: { /* n:\"BrtEndDRefs\", */ T:-1 },\n\t/*::[*/0x01F3/*::]*/: { /* n:\"BrtDRef\" */ },\n\t/*::[*/0x01F4/*::]*/: { /* n:\"BrtBeginScenMan\", */ T:1 },\n\t/*::[*/0x01F5/*::]*/: { /* n:\"BrtEndScenMan\", */ T:-1 },\n\t/*::[*/0x01F6/*::]*/: { /* n:\"BrtBeginSct\", */ T:1 },\n\t/*::[*/0x01F7/*::]*/: { /* n:\"BrtEndSct\", */ T:-1 },\n\t/*::[*/0x01F8/*::]*/: { /* n:\"BrtSlc\" */ },\n\t/*::[*/0x01F9/*::]*/: { /* n:\"BrtBeginDXFs\", */ T:1 },\n\t/*::[*/0x01FA/*::]*/: { /* n:\"BrtEndDXFs\", */ T:-1 },\n\t/*::[*/0x01FB/*::]*/: { /* n:\"BrtDXF\" */ },\n\t/*::[*/0x01FC/*::]*/: { /* n:\"BrtBeginTableStyles\", */ T:1 },\n\t/*::[*/0x01FD/*::]*/: { /* n:\"BrtEndTableStyles\", */ T:-1 },\n\t/*::[*/0x01FE/*::]*/: { /* n:\"BrtBeginTableStyle\", */ T:1 },\n\t/*::[*/0x01FF/*::]*/: { /* n:\"BrtEndTableStyle\", */ T:-1 },\n\t/*::[*/0x0200/*::]*/: { /* n:\"BrtTableStyleElement\" */ },\n\t/*::[*/0x0201/*::]*/: { /* n:\"BrtTableStyleClient\" */ },\n\t/*::[*/0x0202/*::]*/: { /* n:\"BrtBeginVolDeps\", */ T:1 },\n\t/*::[*/0x0203/*::]*/: { /* n:\"BrtEndVolDeps\", */ T:-1 },\n\t/*::[*/0x0204/*::]*/: { /* n:\"BrtBeginVolType\", */ T:1 },\n\t/*::[*/0x0205/*::]*/: { /* n:\"BrtEndVolType\", */ T:-1 },\n\t/*::[*/0x0206/*::]*/: { /* n:\"BrtBeginVolMain\", */ T:1 },\n\t/*::[*/0x0207/*::]*/: { /* n:\"BrtEndVolMain\", */ T:-1 },\n\t/*::[*/0x0208/*::]*/: { /* n:\"BrtBeginVolTopic\", */ T:1 },\n\t/*::[*/0x0209/*::]*/: { /* n:\"BrtEndVolTopic\", */ T:-1 },\n\t/*::[*/0x020A/*::]*/: { /* n:\"BrtVolSubtopic\" */ },\n\t/*::[*/0x020B/*::]*/: { /* n:\"BrtVolRef\" */ },\n\t/*::[*/0x020C/*::]*/: { /* n:\"BrtVolNum\" */ },\n\t/*::[*/0x020D/*::]*/: { /* n:\"BrtVolErr\" */ },\n\t/*::[*/0x020E/*::]*/: { /* n:\"BrtVolStr\" */ },\n\t/*::[*/0x020F/*::]*/: { /* n:\"BrtVolBool\" */ },\n\t/*::[*/0x0210/*::]*/: { /* n:\"BrtBeginCalcChain$\", */ T:1 },\n\t/*::[*/0x0211/*::]*/: { /* n:\"BrtEndCalcChain$\", */ T:-1 },\n\t/*::[*/0x0212/*::]*/: { /* n:\"BrtBeginSortState\", */ T:1 },\n\t/*::[*/0x0213/*::]*/: { /* n:\"BrtEndSortState\", */ T:-1 },\n\t/*::[*/0x0214/*::]*/: { /* n:\"BrtBeginSortCond\", */ T:1 },\n\t/*::[*/0x0215/*::]*/: { /* n:\"BrtEndSortCond\", */ T:-1 },\n\t/*::[*/0x0216/*::]*/: { /* n:\"BrtBookProtection\" */ },\n\t/*::[*/0x0217/*::]*/: { /* n:\"BrtSheetProtection\" */ },\n\t/*::[*/0x0218/*::]*/: { /* n:\"BrtRangeProtection\" */ },\n\t/*::[*/0x0219/*::]*/: { /* n:\"BrtPhoneticInfo\" */ },\n\t/*::[*/0x021A/*::]*/: { /* n:\"BrtBeginECTxtWiz\", */ T:1 },\n\t/*::[*/0x021B/*::]*/: { /* n:\"BrtEndECTxtWiz\", */ T:-1 },\n\t/*::[*/0x021C/*::]*/: { /* n:\"BrtBeginECTWFldInfoLst\", */ T:1 },\n\t/*::[*/0x021D/*::]*/: { /* n:\"BrtEndECTWFldInfoLst\", */ T:-1 },\n\t/*::[*/0x021E/*::]*/: { /* n:\"BrtBeginECTwFldInfo\", */ T:1 },\n\t/*::[*/0x0224/*::]*/: { /* n:\"BrtFileSharing\" */ },\n\t/*::[*/0x0225/*::]*/: { /* n:\"BrtOleSize\" */ },\n\t/*::[*/0x0226/*::]*/: { /* n:\"BrtDrawing\", */ f:parse_RelID },\n\t/*::[*/0x0227/*::]*/: { /* n:\"BrtLegacyDrawing\", */ f:parse_XLNullableWideString },\n\t/*::[*/0x0228/*::]*/: { /* n:\"BrtLegacyDrawingHF\" */ },\n\t/*::[*/0x0229/*::]*/: { /* n:\"BrtWebOpt\" */ },\n\t/*::[*/0x022A/*::]*/: { /* n:\"BrtBeginWebPubItems\", */ T:1 },\n\t/*::[*/0x022B/*::]*/: { /* n:\"BrtEndWebPubItems\", */ T:-1 },\n\t/*::[*/0x022C/*::]*/: { /* n:\"BrtBeginWebPubItem\", */ T:1 },\n\t/*::[*/0x022D/*::]*/: { /* n:\"BrtEndWebPubItem\", */ T:-1 },\n\t/*::[*/0x022E/*::]*/: { /* n:\"BrtBeginSXCondFmt\", */ T:1 },\n\t/*::[*/0x022F/*::]*/: { /* n:\"BrtEndSXCondFmt\", */ T:-1 },\n\t/*::[*/0x0230/*::]*/: { /* n:\"BrtBeginSXCondFmts\", */ T:1 },\n\t/*::[*/0x0231/*::]*/: { /* n:\"BrtEndSXCondFmts\", */ T:-1 },\n\t/*::[*/0x0232/*::]*/: { /* n:\"BrtBkHim\" */ },\n\t/*::[*/0x0234/*::]*/: { /* n:\"BrtColor\" */ },\n\t/*::[*/0x0235/*::]*/: { /* n:\"BrtBeginIndexedColors\", */ T:1 },\n\t/*::[*/0x0236/*::]*/: { /* n:\"BrtEndIndexedColors\", */ T:-1 },\n\t/*::[*/0x0239/*::]*/: { /* n:\"BrtBeginMRUColors\", */ T:1 },\n\t/*::[*/0x023A/*::]*/: { /* n:\"BrtEndMRUColors\", */ T:-1 },\n\t/*::[*/0x023C/*::]*/: { /* n:\"BrtMRUColor\" */ },\n\t/*::[*/0x023D/*::]*/: { /* n:\"BrtBeginDVals\", */ T:1 },\n\t/*::[*/0x023E/*::]*/: { /* n:\"BrtEndDVals\", */ T:-1 },\n\t/*::[*/0x0241/*::]*/: { /* n:\"BrtSupNameStart\" */ },\n\t/*::[*/0x0242/*::]*/: { /* n:\"BrtSupNameValueStart\" */ },\n\t/*::[*/0x0243/*::]*/: { /* n:\"BrtSupNameValueEnd\" */ },\n\t/*::[*/0x0244/*::]*/: { /* n:\"BrtSupNameNum\" */ },\n\t/*::[*/0x0245/*::]*/: { /* n:\"BrtSupNameErr\" */ },\n\t/*::[*/0x0246/*::]*/: { /* n:\"BrtSupNameSt\" */ },\n\t/*::[*/0x0247/*::]*/: { /* n:\"BrtSupNameNil\" */ },\n\t/*::[*/0x0248/*::]*/: { /* n:\"BrtSupNameBool\" */ },\n\t/*::[*/0x0249/*::]*/: { /* n:\"BrtSupNameFmla\" */ },\n\t/*::[*/0x024A/*::]*/: { /* n:\"BrtSupNameBits\" */ },\n\t/*::[*/0x024B/*::]*/: { /* n:\"BrtSupNameEnd\" */ },\n\t/*::[*/0x024C/*::]*/: { /* n:\"BrtEndSupBook\", */ T:-1 },\n\t/*::[*/0x024D/*::]*/: { /* n:\"BrtCellSmartTagProperty\" */ },\n\t/*::[*/0x024E/*::]*/: { /* n:\"BrtBeginCellSmartTag\", */ T:1 },\n\t/*::[*/0x024F/*::]*/: { /* n:\"BrtEndCellSmartTag\", */ T:-1 },\n\t/*::[*/0x0250/*::]*/: { /* n:\"BrtBeginCellSmartTags\", */ T:1 },\n\t/*::[*/0x0251/*::]*/: { /* n:\"BrtEndCellSmartTags\", */ T:-1 },\n\t/*::[*/0x0252/*::]*/: { /* n:\"BrtBeginSmartTags\", */ T:1 },\n\t/*::[*/0x0253/*::]*/: { /* n:\"BrtEndSmartTags\", */ T:-1 },\n\t/*::[*/0x0254/*::]*/: { /* n:\"BrtSmartTagType\" */ },\n\t/*::[*/0x0255/*::]*/: { /* n:\"BrtBeginSmartTagTypes\", */ T:1 },\n\t/*::[*/0x0256/*::]*/: { /* n:\"BrtEndSmartTagTypes\", */ T:-1 },\n\t/*::[*/0x0257/*::]*/: { /* n:\"BrtBeginSXFilters\", */ T:1 },\n\t/*::[*/0x0258/*::]*/: { /* n:\"BrtEndSXFilters\", */ T:-1 },\n\t/*::[*/0x0259/*::]*/: { /* n:\"BrtBeginSXFILTER\", */ T:1 },\n\t/*::[*/0x025A/*::]*/: { /* n:\"BrtEndSXFilter\", */ T:-1 },\n\t/*::[*/0x025B/*::]*/: { /* n:\"BrtBeginFills\", */ T:1 },\n\t/*::[*/0x025C/*::]*/: { /* n:\"BrtEndFills\", */ T:-1 },\n\t/*::[*/0x025D/*::]*/: { /* n:\"BrtBeginCellWatches\", */ T:1 },\n\t/*::[*/0x025E/*::]*/: { /* n:\"BrtEndCellWatches\", */ T:-1 },\n\t/*::[*/0x025F/*::]*/: { /* n:\"BrtCellWatch\" */ },\n\t/*::[*/0x0260/*::]*/: { /* n:\"BrtBeginCRErrs\", */ T:1 },\n\t/*::[*/0x0261/*::]*/: { /* n:\"BrtEndCRErrs\", */ T:-1 },\n\t/*::[*/0x0262/*::]*/: { /* n:\"BrtCrashRecErr\" */ },\n\t/*::[*/0x0263/*::]*/: { /* n:\"BrtBeginFonts\", */ T:1 },\n\t/*::[*/0x0264/*::]*/: { /* n:\"BrtEndFonts\", */ T:-1 },\n\t/*::[*/0x0265/*::]*/: { /* n:\"BrtBeginBorders\", */ T:1 },\n\t/*::[*/0x0266/*::]*/: { /* n:\"BrtEndBorders\", */ T:-1 },\n\t/*::[*/0x0267/*::]*/: { /* n:\"BrtBeginFmts\", */ T:1 },\n\t/*::[*/0x0268/*::]*/: { /* n:\"BrtEndFmts\", */ T:-1 },\n\t/*::[*/0x0269/*::]*/: { /* n:\"BrtBeginCellXFs\", */ T:1 },\n\t/*::[*/0x026A/*::]*/: { /* n:\"BrtEndCellXFs\", */ T:-1 },\n\t/*::[*/0x026B/*::]*/: { /* n:\"BrtBeginStyles\", */ T:1 },\n\t/*::[*/0x026C/*::]*/: { /* n:\"BrtEndStyles\", */ T:-1 },\n\t/*::[*/0x0271/*::]*/: { /* n:\"BrtBigName\" */ },\n\t/*::[*/0x0272/*::]*/: { /* n:\"BrtBeginCellStyleXFs\", */ T:1 },\n\t/*::[*/0x0273/*::]*/: { /* n:\"BrtEndCellStyleXFs\", */ T:-1 },\n\t/*::[*/0x0274/*::]*/: { /* n:\"BrtBeginComments\", */ T:1 },\n\t/*::[*/0x0275/*::]*/: { /* n:\"BrtEndComments\", */ T:-1 },\n\t/*::[*/0x0276/*::]*/: { /* n:\"BrtBeginCommentAuthors\", */ T:1 },\n\t/*::[*/0x0277/*::]*/: { /* n:\"BrtEndCommentAuthors\", */ T:-1 },\n\t/*::[*/0x0278/*::]*/: { /* n:\"BrtCommentAuthor\", */ f:parse_BrtCommentAuthor },\n\t/*::[*/0x0279/*::]*/: { /* n:\"BrtBeginCommentList\", */ T:1 },\n\t/*::[*/0x027A/*::]*/: { /* n:\"BrtEndCommentList\", */ T:-1 },\n\t/*::[*/0x027B/*::]*/: { /* n:\"BrtBeginComment\", */ T:1, f:parse_BrtBeginComment},\n\t/*::[*/0x027C/*::]*/: { /* n:\"BrtEndComment\", */ T:-1 },\n\t/*::[*/0x027D/*::]*/: { /* n:\"BrtCommentText\", */ f:parse_BrtCommentText },\n\t/*::[*/0x027E/*::]*/: { /* n:\"BrtBeginOleObjects\", */ T:1 },\n\t/*::[*/0x027F/*::]*/: { /* n:\"BrtOleObject\" */ },\n\t/*::[*/0x0280/*::]*/: { /* n:\"BrtEndOleObjects\", */ T:-1 },\n\t/*::[*/0x0281/*::]*/: { /* n:\"BrtBeginSxrules\", */ T:1 },\n\t/*::[*/0x0282/*::]*/: { /* n:\"BrtEndSxRules\", */ T:-1 },\n\t/*::[*/0x0283/*::]*/: { /* n:\"BrtBeginActiveXControls\", */ T:1 },\n\t/*::[*/0x0284/*::]*/: { /* n:\"BrtActiveX\" */ },\n\t/*::[*/0x0285/*::]*/: { /* n:\"BrtEndActiveXControls\", */ T:-1 },\n\t/*::[*/0x0286/*::]*/: { /* n:\"BrtBeginPCDSDTCEMembersSortBy\", */ T:1 },\n\t/*::[*/0x0288/*::]*/: { /* n:\"BrtBeginCellIgnoreECs\", */ T:1 },\n\t/*::[*/0x0289/*::]*/: { /* n:\"BrtCellIgnoreEC\" */ },\n\t/*::[*/0x028A/*::]*/: { /* n:\"BrtEndCellIgnoreECs\", */ T:-1 },\n\t/*::[*/0x028B/*::]*/: { /* n:\"BrtCsProp\", */ f:parse_BrtCsProp },\n\t/*::[*/0x028C/*::]*/: { /* n:\"BrtCsPageSetup\" */ },\n\t/*::[*/0x028D/*::]*/: { /* n:\"BrtBeginUserCsViews\", */ T:1 },\n\t/*::[*/0x028E/*::]*/: { /* n:\"BrtEndUserCsViews\", */ T:-1 },\n\t/*::[*/0x028F/*::]*/: { /* n:\"BrtBeginUserCsView\", */ T:1 },\n\t/*::[*/0x0290/*::]*/: { /* n:\"BrtEndUserCsView\", */ T:-1 },\n\t/*::[*/0x0291/*::]*/: { /* n:\"BrtBeginPcdSFCIEntries\", */ T:1 },\n\t/*::[*/0x0292/*::]*/: { /* n:\"BrtEndPCDSFCIEntries\", */ T:-1 },\n\t/*::[*/0x0293/*::]*/: { /* n:\"BrtPCDSFCIEntry\" */ },\n\t/*::[*/0x0294/*::]*/: { /* n:\"BrtBeginListParts\", */ T:1 },\n\t/*::[*/0x0295/*::]*/: { /* n:\"BrtListPart\" */ },\n\t/*::[*/0x0296/*::]*/: { /* n:\"BrtEndListParts\", */ T:-1 },\n\t/*::[*/0x0297/*::]*/: { /* n:\"BrtSheetCalcProp\" */ },\n\t/*::[*/0x0298/*::]*/: { /* n:\"BrtBeginFnGroup\", */ T:1 },\n\t/*::[*/0x0299/*::]*/: { /* n:\"BrtFnGroup\" */ },\n\t/*::[*/0x029A/*::]*/: { /* n:\"BrtEndFnGroup\", */ T:-1 },\n\t/*::[*/0x029B/*::]*/: { /* n:\"BrtSupAddin\" */ },\n\t/*::[*/0x029C/*::]*/: { /* n:\"BrtSXTDMPOrder\" */ },\n\t/*::[*/0x029D/*::]*/: { /* n:\"BrtCsProtection\" */ },\n\t/*::[*/0x029F/*::]*/: { /* n:\"BrtBeginWsSortMap\", */ T:1 },\n\t/*::[*/0x02A0/*::]*/: { /* n:\"BrtEndWsSortMap\", */ T:-1 },\n\t/*::[*/0x02A1/*::]*/: { /* n:\"BrtBeginRRSort\", */ T:1 },\n\t/*::[*/0x02A2/*::]*/: { /* n:\"BrtEndRRSort\", */ T:-1 },\n\t/*::[*/0x02A3/*::]*/: { /* n:\"BrtRRSortItem\" */ },\n\t/*::[*/0x02A4/*::]*/: { /* n:\"BrtFileSharingIso\" */ },\n\t/*::[*/0x02A5/*::]*/: { /* n:\"BrtBookProtectionIso\" */ },\n\t/*::[*/0x02A6/*::]*/: { /* n:\"BrtSheetProtectionIso\" */ },\n\t/*::[*/0x02A7/*::]*/: { /* n:\"BrtCsProtectionIso\" */ },\n\t/*::[*/0x02A8/*::]*/: { /* n:\"BrtRangeProtectionIso\" */ },\n\t/*::[*/0x02A9/*::]*/: { /* n:\"BrtDValList\" */ },\n\t/*::[*/0x0400/*::]*/: { /* n:\"BrtRwDescent\" */ },\n\t/*::[*/0x0401/*::]*/: { /* n:\"BrtKnownFonts\" */ },\n\t/*::[*/0x0402/*::]*/: { /* n:\"BrtBeginSXTupleSet\", */ T:1 },\n\t/*::[*/0x0403/*::]*/: { /* n:\"BrtEndSXTupleSet\", */ T:-1 },\n\t/*::[*/0x0404/*::]*/: { /* n:\"BrtBeginSXTupleSetHeader\", */ T:1 },\n\t/*::[*/0x0405/*::]*/: { /* n:\"BrtEndSXTupleSetHeader\", */ T:-1 },\n\t/*::[*/0x0406/*::]*/: { /* n:\"BrtSXTupleSetHeaderItem\" */ },\n\t/*::[*/0x0407/*::]*/: { /* n:\"BrtBeginSXTupleSetData\", */ T:1 },\n\t/*::[*/0x0408/*::]*/: { /* n:\"BrtEndSXTupleSetData\", */ T:-1 },\n\t/*::[*/0x0409/*::]*/: { /* n:\"BrtBeginSXTupleSetRow\", */ T:1 },\n\t/*::[*/0x040A/*::]*/: { /* n:\"BrtEndSXTupleSetRow\", */ T:-1 },\n\t/*::[*/0x040B/*::]*/: { /* n:\"BrtSXTupleSetRowItem\" */ },\n\t/*::[*/0x040C/*::]*/: { /* n:\"BrtNameExt\" */ },\n\t/*::[*/0x040D/*::]*/: { /* n:\"BrtPCDH14\" */ },\n\t/*::[*/0x040E/*::]*/: { /* n:\"BrtBeginPCDCalcMem14\", */ T:1 },\n\t/*::[*/0x040F/*::]*/: { /* n:\"BrtEndPCDCalcMem14\", */ T:-1 },\n\t/*::[*/0x0410/*::]*/: { /* n:\"BrtSXTH14\" */ },\n\t/*::[*/0x0411/*::]*/: { /* n:\"BrtBeginSparklineGroup\", */ T:1 },\n\t/*::[*/0x0412/*::]*/: { /* n:\"BrtEndSparklineGroup\", */ T:-1 },\n\t/*::[*/0x0413/*::]*/: { /* n:\"BrtSparkline\" */ },\n\t/*::[*/0x0414/*::]*/: { /* n:\"BrtSXDI14\" */ },\n\t/*::[*/0x0415/*::]*/: { /* n:\"BrtWsFmtInfoEx14\" */ },\n\t/*::[*/0x0416/*::]*/: { /* n:\"BrtBeginConditionalFormatting14\", */ T:1 },\n\t/*::[*/0x0417/*::]*/: { /* n:\"BrtEndConditionalFormatting14\", */ T:-1 },\n\t/*::[*/0x0418/*::]*/: { /* n:\"BrtBeginCFRule14\", */ T:1 },\n\t/*::[*/0x0419/*::]*/: { /* n:\"BrtEndCFRule14\", */ T:-1 },\n\t/*::[*/0x041A/*::]*/: { /* n:\"BrtCFVO14\" */ },\n\t/*::[*/0x041B/*::]*/: { /* n:\"BrtBeginDatabar14\", */ T:1 },\n\t/*::[*/0x041C/*::]*/: { /* n:\"BrtBeginIconSet14\", */ T:1 },\n\t/*::[*/0x041D/*::]*/: { /* n:\"BrtDVal14\", */ f: parse_BrtDVal14 },\n\t/*::[*/0x041E/*::]*/: { /* n:\"BrtBeginDVals14\", */ T:1 },\n\t/*::[*/0x041F/*::]*/: { /* n:\"BrtColor14\" */ },\n\t/*::[*/0x0420/*::]*/: { /* n:\"BrtBeginSparklines\", */ T:1 },\n\t/*::[*/0x0421/*::]*/: { /* n:\"BrtEndSparklines\", */ T:-1 },\n\t/*::[*/0x0422/*::]*/: { /* n:\"BrtBeginSparklineGroups\", */ T:1 },\n\t/*::[*/0x0423/*::]*/: { /* n:\"BrtEndSparklineGroups\", */ T:-1 },\n\t/*::[*/0x0425/*::]*/: { /* n:\"BrtSXVD14\" */ },\n\t/*::[*/0x0426/*::]*/: { /* n:\"BrtBeginSXView14\", */ T:1 },\n\t/*::[*/0x0427/*::]*/: { /* n:\"BrtEndSXView14\", */ T:-1 },\n\t/*::[*/0x0428/*::]*/: { /* n:\"BrtBeginSXView16\", */ T:1 },\n\t/*::[*/0x0429/*::]*/: { /* n:\"BrtEndSXView16\", */ T:-1 },\n\t/*::[*/0x042A/*::]*/: { /* n:\"BrtBeginPCD14\", */ T:1 },\n\t/*::[*/0x042B/*::]*/: { /* n:\"BrtEndPCD14\", */ T:-1 },\n\t/*::[*/0x042C/*::]*/: { /* n:\"BrtBeginExtConn14\", */ T:1 },\n\t/*::[*/0x042D/*::]*/: { /* n:\"BrtEndExtConn14\", */ T:-1 },\n\t/*::[*/0x042E/*::]*/: { /* n:\"BrtBeginSlicerCacheIDs\", */ T:1 },\n\t/*::[*/0x042F/*::]*/: { /* n:\"BrtEndSlicerCacheIDs\", */ T:-1 },\n\t/*::[*/0x0430/*::]*/: { /* n:\"BrtBeginSlicerCacheID\", */ T:1 },\n\t/*::[*/0x0431/*::]*/: { /* n:\"BrtEndSlicerCacheID\", */ T:-1 },\n\t/*::[*/0x0433/*::]*/: { /* n:\"BrtBeginSlicerCache\", */ T:1 },\n\t/*::[*/0x0434/*::]*/: { /* n:\"BrtEndSlicerCache\", */ T:-1 },\n\t/*::[*/0x0435/*::]*/: { /* n:\"BrtBeginSlicerCacheDef\", */ T:1 },\n\t/*::[*/0x0436/*::]*/: { /* n:\"BrtEndSlicerCacheDef\", */ T:-1 },\n\t/*::[*/0x0437/*::]*/: { /* n:\"BrtBeginSlicersEx\", */ T:1 },\n\t/*::[*/0x0438/*::]*/: { /* n:\"BrtEndSlicersEx\", */ T:-1 },\n\t/*::[*/0x0439/*::]*/: { /* n:\"BrtBeginSlicerEx\", */ T:1 },\n\t/*::[*/0x043A/*::]*/: { /* n:\"BrtEndSlicerEx\", */ T:-1 },\n\t/*::[*/0x043B/*::]*/: { /* n:\"BrtBeginSlicer\", */ T:1 },\n\t/*::[*/0x043C/*::]*/: { /* n:\"BrtEndSlicer\", */ T:-1 },\n\t/*::[*/0x043D/*::]*/: { /* n:\"BrtSlicerCachePivotTables\" */ },\n\t/*::[*/0x043E/*::]*/: { /* n:\"BrtBeginSlicerCacheOlapImpl\", */ T:1 },\n\t/*::[*/0x043F/*::]*/: { /* n:\"BrtEndSlicerCacheOlapImpl\", */ T:-1 },\n\t/*::[*/0x0440/*::]*/: { /* n:\"BrtBeginSlicerCacheLevelsData\", */ T:1 },\n\t/*::[*/0x0441/*::]*/: { /* n:\"BrtEndSlicerCacheLevelsData\", */ T:-1 },\n\t/*::[*/0x0442/*::]*/: { /* n:\"BrtBeginSlicerCacheLevelData\", */ T:1 },\n\t/*::[*/0x0443/*::]*/: { /* n:\"BrtEndSlicerCacheLevelData\", */ T:-1 },\n\t/*::[*/0x0444/*::]*/: { /* n:\"BrtBeginSlicerCacheSiRanges\", */ T:1 },\n\t/*::[*/0x0445/*::]*/: { /* n:\"BrtEndSlicerCacheSiRanges\", */ T:-1 },\n\t/*::[*/0x0446/*::]*/: { /* n:\"BrtBeginSlicerCacheSiRange\", */ T:1 },\n\t/*::[*/0x0447/*::]*/: { /* n:\"BrtEndSlicerCacheSiRange\", */ T:-1 },\n\t/*::[*/0x0448/*::]*/: { /* n:\"BrtSlicerCacheOlapItem\" */ },\n\t/*::[*/0x0449/*::]*/: { /* n:\"BrtBeginSlicerCacheSelections\", */ T:1 },\n\t/*::[*/0x044A/*::]*/: { /* n:\"BrtSlicerCacheSelection\" */ },\n\t/*::[*/0x044B/*::]*/: { /* n:\"BrtEndSlicerCacheSelections\", */ T:-1 },\n\t/*::[*/0x044C/*::]*/: { /* n:\"BrtBeginSlicerCacheNative\", */ T:1 },\n\t/*::[*/0x044D/*::]*/: { /* n:\"BrtEndSlicerCacheNative\", */ T:-1 },\n\t/*::[*/0x044E/*::]*/: { /* n:\"BrtSlicerCacheNativeItem\" */ },\n\t/*::[*/0x044F/*::]*/: { /* n:\"BrtRangeProtection14\" */ },\n\t/*::[*/0x0450/*::]*/: { /* n:\"BrtRangeProtectionIso14\" */ },\n\t/*::[*/0x0451/*::]*/: { /* n:\"BrtCellIgnoreEC14\" */ },\n\t/*::[*/0x0457/*::]*/: { /* n:\"BrtList14\" */ },\n\t/*::[*/0x0458/*::]*/: { /* n:\"BrtCFIcon\" */ },\n\t/*::[*/0x0459/*::]*/: { /* n:\"BrtBeginSlicerCachesPivotCacheIDs\", */ T:1 },\n\t/*::[*/0x045A/*::]*/: { /* n:\"BrtEndSlicerCachesPivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x045B/*::]*/: { /* n:\"BrtBeginSlicers\", */ T:1 },\n\t/*::[*/0x045C/*::]*/: { /* n:\"BrtEndSlicers\", */ T:-1 },\n\t/*::[*/0x045D/*::]*/: { /* n:\"BrtWbProp14\" */ },\n\t/*::[*/0x045E/*::]*/: { /* n:\"BrtBeginSXEdit\", */ T:1 },\n\t/*::[*/0x045F/*::]*/: { /* n:\"BrtEndSXEdit\", */ T:-1 },\n\t/*::[*/0x0460/*::]*/: { /* n:\"BrtBeginSXEdits\", */ T:1 },\n\t/*::[*/0x0461/*::]*/: { /* n:\"BrtEndSXEdits\", */ T:-1 },\n\t/*::[*/0x0462/*::]*/: { /* n:\"BrtBeginSXChange\", */ T:1 },\n\t/*::[*/0x0463/*::]*/: { /* n:\"BrtEndSXChange\", */ T:-1 },\n\t/*::[*/0x0464/*::]*/: { /* n:\"BrtBeginSXChanges\", */ T:1 },\n\t/*::[*/0x0465/*::]*/: { /* n:\"BrtEndSXChanges\", */ T:-1 },\n\t/*::[*/0x0466/*::]*/: { /* n:\"BrtSXTupleItems\" */ },\n\t/*::[*/0x0468/*::]*/: { /* n:\"BrtBeginSlicerStyle\", */ T:1 },\n\t/*::[*/0x0469/*::]*/: { /* n:\"BrtEndSlicerStyle\", */ T:-1 },\n\t/*::[*/0x046A/*::]*/: { /* n:\"BrtSlicerStyleElement\" */ },\n\t/*::[*/0x046B/*::]*/: { /* n:\"BrtBeginStyleSheetExt14\", */ T:1 },\n\t/*::[*/0x046C/*::]*/: { /* n:\"BrtEndStyleSheetExt14\", */ T:-1 },\n\t/*::[*/0x046D/*::]*/: { /* n:\"BrtBeginSlicerCachesPivotCacheID\", */ T:1 },\n\t/*::[*/0x046E/*::]*/: { /* n:\"BrtEndSlicerCachesPivotCacheID\", */ T:-1 },\n\t/*::[*/0x046F/*::]*/: { /* n:\"BrtBeginConditionalFormattings\", */ T:1 },\n\t/*::[*/0x0470/*::]*/: { /* n:\"BrtEndConditionalFormattings\", */ T:-1 },\n\t/*::[*/0x0471/*::]*/: { /* n:\"BrtBeginPCDCalcMemExt\", */ T:1 },\n\t/*::[*/0x0472/*::]*/: { /* n:\"BrtEndPCDCalcMemExt\", */ T:-1 },\n\t/*::[*/0x0473/*::]*/: { /* n:\"BrtBeginPCDCalcMemsExt\", */ T:1 },\n\t/*::[*/0x0474/*::]*/: { /* n:\"BrtEndPCDCalcMemsExt\", */ T:-1 },\n\t/*::[*/0x0475/*::]*/: { /* n:\"BrtPCDField14\" */ },\n\t/*::[*/0x0476/*::]*/: { /* n:\"BrtBeginSlicerStyles\", */ T:1 },\n\t/*::[*/0x0477/*::]*/: { /* n:\"BrtEndSlicerStyles\", */ T:-1 },\n\t/*::[*/0x0478/*::]*/: { /* n:\"BrtBeginSlicerStyleElements\", */ T:1 },\n\t/*::[*/0x0479/*::]*/: { /* n:\"BrtEndSlicerStyleElements\", */ T:-1 },\n\t/*::[*/0x047A/*::]*/: { /* n:\"BrtCFRuleExt\" */ },\n\t/*::[*/0x047B/*::]*/: { /* n:\"BrtBeginSXCondFmt14\", */ T:1 },\n\t/*::[*/0x047C/*::]*/: { /* n:\"BrtEndSXCondFmt14\", */ T:-1 },\n\t/*::[*/0x047D/*::]*/: { /* n:\"BrtBeginSXCondFmts14\", */ T:1 },\n\t/*::[*/0x047E/*::]*/: { /* n:\"BrtEndSXCondFmts14\", */ T:-1 },\n\t/*::[*/0x0480/*::]*/: { /* n:\"BrtBeginSortCond14\", */ T:1 },\n\t/*::[*/0x0481/*::]*/: { /* n:\"BrtEndSortCond14\", */ T:-1 },\n\t/*::[*/0x0482/*::]*/: { /* n:\"BrtEndDVals14\", */ T:-1 },\n\t/*::[*/0x0483/*::]*/: { /* n:\"BrtEndIconSet14\", */ T:-1 },\n\t/*::[*/0x0484/*::]*/: { /* n:\"BrtEndDatabar14\", */ T:-1 },\n\t/*::[*/0x0485/*::]*/: { /* n:\"BrtBeginColorScale14\", */ T:1 },\n\t/*::[*/0x0486/*::]*/: { /* n:\"BrtEndColorScale14\", */ T:-1 },\n\t/*::[*/0x0487/*::]*/: { /* n:\"BrtBeginSxrules14\", */ T:1 },\n\t/*::[*/0x0488/*::]*/: { /* n:\"BrtEndSxrules14\", */ T:-1 },\n\t/*::[*/0x0489/*::]*/: { /* n:\"BrtBeginPRule14\", */ T:1 },\n\t/*::[*/0x048A/*::]*/: { /* n:\"BrtEndPRule14\", */ T:-1 },\n\t/*::[*/0x048B/*::]*/: { /* n:\"BrtBeginPRFilters14\", */ T:1 },\n\t/*::[*/0x048C/*::]*/: { /* n:\"BrtEndPRFilters14\", */ T:-1 },\n\t/*::[*/0x048D/*::]*/: { /* n:\"BrtBeginPRFilter14\", */ T:1 },\n\t/*::[*/0x048E/*::]*/: { /* n:\"BrtEndPRFilter14\", */ T:-1 },\n\t/*::[*/0x048F/*::]*/: { /* n:\"BrtBeginPRFItem14\", */ T:1 },\n\t/*::[*/0x0490/*::]*/: { /* n:\"BrtEndPRFItem14\", */ T:-1 },\n\t/*::[*/0x0491/*::]*/: { /* n:\"BrtBeginCellIgnoreECs14\", */ T:1 },\n\t/*::[*/0x0492/*::]*/: { /* n:\"BrtEndCellIgnoreECs14\", */ T:-1 },\n\t/*::[*/0x0493/*::]*/: { /* n:\"BrtDxf14\" */ },\n\t/*::[*/0x0494/*::]*/: { /* n:\"BrtBeginDxF14s\", */ T:1 },\n\t/*::[*/0x0495/*::]*/: { /* n:\"BrtEndDxf14s\", */ T:-1 },\n\t/*::[*/0x0499/*::]*/: { /* n:\"BrtFilter14\" */ },\n\t/*::[*/0x049A/*::]*/: { /* n:\"BrtBeginCustomFilters14\", */ T:1 },\n\t/*::[*/0x049C/*::]*/: { /* n:\"BrtCustomFilter14\" */ },\n\t/*::[*/0x049D/*::]*/: { /* n:\"BrtIconFilter14\" */ },\n\t/*::[*/0x049E/*::]*/: { /* n:\"BrtPivotCacheConnectionName\" */ },\n\t/*::[*/0x0800/*::]*/: { /* n:\"BrtBeginDecoupledPivotCacheIDs\", */ T:1 },\n\t/*::[*/0x0801/*::]*/: { /* n:\"BrtEndDecoupledPivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x0802/*::]*/: { /* n:\"BrtDecoupledPivotCacheID\" */ },\n\t/*::[*/0x0803/*::]*/: { /* n:\"BrtBeginPivotTableRefs\", */ T:1 },\n\t/*::[*/0x0804/*::]*/: { /* n:\"BrtEndPivotTableRefs\", */ T:-1 },\n\t/*::[*/0x0805/*::]*/: { /* n:\"BrtPivotTableRef\" */ },\n\t/*::[*/0x0806/*::]*/: { /* n:\"BrtSlicerCacheBookPivotTables\" */ },\n\t/*::[*/0x0807/*::]*/: { /* n:\"BrtBeginSxvcells\", */ T:1 },\n\t/*::[*/0x0808/*::]*/: { /* n:\"BrtEndSxvcells\", */ T:-1 },\n\t/*::[*/0x0809/*::]*/: { /* n:\"BrtBeginSxRow\", */ T:1 },\n\t/*::[*/0x080A/*::]*/: { /* n:\"BrtEndSxRow\", */ T:-1 },\n\t/*::[*/0x080C/*::]*/: { /* n:\"BrtPcdCalcMem15\" */ },\n\t/*::[*/0x0813/*::]*/: { /* n:\"BrtQsi15\" */ },\n\t/*::[*/0x0814/*::]*/: { /* n:\"BrtBeginWebExtensions\", */ T:1 },\n\t/*::[*/0x0815/*::]*/: { /* n:\"BrtEndWebExtensions\", */ T:-1 },\n\t/*::[*/0x0816/*::]*/: { /* n:\"BrtWebExtension\" */ },\n\t/*::[*/0x0817/*::]*/: { /* n:\"BrtAbsPath15\" */ },\n\t/*::[*/0x0818/*::]*/: { /* n:\"BrtBeginPivotTableUISettings\", */ T:1 },\n\t/*::[*/0x0819/*::]*/: { /* n:\"BrtEndPivotTableUISettings\", */ T:-1 },\n\t/*::[*/0x081B/*::]*/: { /* n:\"BrtTableSlicerCacheIDs\" */ },\n\t/*::[*/0x081C/*::]*/: { /* n:\"BrtTableSlicerCacheID\" */ },\n\t/*::[*/0x081D/*::]*/: { /* n:\"BrtBeginTableSlicerCache\", */ T:1 },\n\t/*::[*/0x081E/*::]*/: { /* n:\"BrtEndTableSlicerCache\", */ T:-1 },\n\t/*::[*/0x081F/*::]*/: { /* n:\"BrtSxFilter15\" */ },\n\t/*::[*/0x0820/*::]*/: { /* n:\"BrtBeginTimelineCachePivotCacheIDs\", */ T:1 },\n\t/*::[*/0x0821/*::]*/: { /* n:\"BrtEndTimelineCachePivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x0822/*::]*/: { /* n:\"BrtTimelineCachePivotCacheID\" */ },\n\t/*::[*/0x0823/*::]*/: { /* n:\"BrtBeginTimelineCacheIDs\", */ T:1 },\n\t/*::[*/0x0824/*::]*/: { /* n:\"BrtEndTimelineCacheIDs\", */ T:-1 },\n\t/*::[*/0x0825/*::]*/: { /* n:\"BrtBeginTimelineCacheID\", */ T:1 },\n\t/*::[*/0x0826/*::]*/: { /* n:\"BrtEndTimelineCacheID\", */ T:-1 },\n\t/*::[*/0x0827/*::]*/: { /* n:\"BrtBeginTimelinesEx\", */ T:1 },\n\t/*::[*/0x0828/*::]*/: { /* n:\"BrtEndTimelinesEx\", */ T:-1 },\n\t/*::[*/0x0829/*::]*/: { /* n:\"BrtBeginTimelineEx\", */ T:1 },\n\t/*::[*/0x082A/*::]*/: { /* n:\"BrtEndTimelineEx\", */ T:-1 },\n\t/*::[*/0x082B/*::]*/: { /* n:\"BrtWorkBookPr15\" */ },\n\t/*::[*/0x082C/*::]*/: { /* n:\"BrtPCDH15\" */ },\n\t/*::[*/0x082D/*::]*/: { /* n:\"BrtBeginTimelineStyle\", */ T:1 },\n\t/*::[*/0x082E/*::]*/: { /* n:\"BrtEndTimelineStyle\", */ T:-1 },\n\t/*::[*/0x082F/*::]*/: { /* n:\"BrtTimelineStyleElement\" */ },\n\t/*::[*/0x0830/*::]*/: { /* n:\"BrtBeginTimelineStylesheetExt15\", */ T:1 },\n\t/*::[*/0x0831/*::]*/: { /* n:\"BrtEndTimelineStylesheetExt15\", */ T:-1 },\n\t/*::[*/0x0832/*::]*/: { /* n:\"BrtBeginTimelineStyles\", */ T:1 },\n\t/*::[*/0x0833/*::]*/: { /* n:\"BrtEndTimelineStyles\", */ T:-1 },\n\t/*::[*/0x0834/*::]*/: { /* n:\"BrtBeginTimelineStyleElements\", */ T:1 },\n\t/*::[*/0x0835/*::]*/: { /* n:\"BrtEndTimelineStyleElements\", */ T:-1 },\n\t/*::[*/0x0836/*::]*/: { /* n:\"BrtDxf15\" */ },\n\t/*::[*/0x0837/*::]*/: { /* n:\"BrtBeginDxfs15\", */ T:1 },\n\t/*::[*/0x0838/*::]*/: { /* n:\"BrtEndDxfs15\", */ T:-1 },\n\t/*::[*/0x0839/*::]*/: { /* n:\"BrtSlicerCacheHideItemsWithNoData\" */ },\n\t/*::[*/0x083A/*::]*/: { /* n:\"BrtBeginItemUniqueNames\", */ T:1 },\n\t/*::[*/0x083B/*::]*/: { /* n:\"BrtEndItemUniqueNames\", */ T:-1 },\n\t/*::[*/0x083C/*::]*/: { /* n:\"BrtItemUniqueName\" */ },\n\t/*::[*/0x083D/*::]*/: { /* n:\"BrtBeginExtConn15\", */ T:1 },\n\t/*::[*/0x083E/*::]*/: { /* n:\"BrtEndExtConn15\", */ T:-1 },\n\t/*::[*/0x083F/*::]*/: { /* n:\"BrtBeginOledbPr15\", */ T:1 },\n\t/*::[*/0x0840/*::]*/: { /* n:\"BrtEndOledbPr15\", */ T:-1 },\n\t/*::[*/0x0841/*::]*/: { /* n:\"BrtBeginDataFeedPr15\", */ T:1 },\n\t/*::[*/0x0842/*::]*/: { /* n:\"BrtEndDataFeedPr15\", */ T:-1 },\n\t/*::[*/0x0843/*::]*/: { /* n:\"BrtTextPr15\" */ },\n\t/*::[*/0x0844/*::]*/: { /* n:\"BrtRangePr15\" */ },\n\t/*::[*/0x0845/*::]*/: { /* n:\"BrtDbCommand15\" */ },\n\t/*::[*/0x0846/*::]*/: { /* n:\"BrtBeginDbTables15\", */ T:1 },\n\t/*::[*/0x0847/*::]*/: { /* n:\"BrtEndDbTables15\", */ T:-1 },\n\t/*::[*/0x0848/*::]*/: { /* n:\"BrtDbTable15\" */ },\n\t/*::[*/0x0849/*::]*/: { /* n:\"BrtBeginDataModel\", */ T:1 },\n\t/*::[*/0x084A/*::]*/: { /* n:\"BrtEndDataModel\", */ T:-1 },\n\t/*::[*/0x084B/*::]*/: { /* n:\"BrtBeginModelTables\", */ T:1 },\n\t/*::[*/0x084C/*::]*/: { /* n:\"BrtEndModelTables\", */ T:-1 },\n\t/*::[*/0x084D/*::]*/: { /* n:\"BrtModelTable\" */ },\n\t/*::[*/0x084E/*::]*/: { /* n:\"BrtBeginModelRelationships\", */ T:1 },\n\t/*::[*/0x084F/*::]*/: { /* n:\"BrtEndModelRelationships\", */ T:-1 },\n\t/*::[*/0x0850/*::]*/: { /* n:\"BrtModelRelationship\" */ },\n\t/*::[*/0x0851/*::]*/: { /* n:\"BrtBeginECTxtWiz15\", */ T:1 },\n\t/*::[*/0x0852/*::]*/: { /* n:\"BrtEndECTxtWiz15\", */ T:-1 },\n\t/*::[*/0x0853/*::]*/: { /* n:\"BrtBeginECTWFldInfoLst15\", */ T:1 },\n\t/*::[*/0x0854/*::]*/: { /* n:\"BrtEndECTWFldInfoLst15\", */ T:-1 },\n\t/*::[*/0x0855/*::]*/: { /* n:\"BrtBeginECTWFldInfo15\", */ T:1 },\n\t/*::[*/0x0856/*::]*/: { /* n:\"BrtFieldListActiveItem\" */ },\n\t/*::[*/0x0857/*::]*/: { /* n:\"BrtPivotCacheIdVersion\" */ },\n\t/*::[*/0x0858/*::]*/: { /* n:\"BrtSXDI15\" */ },\n\t/*::[*/0x0859/*::]*/: { /* n:\"BrtBeginModelTimeGroupings\", */ T:1 },\n\t/*::[*/0x085A/*::]*/: { /* n:\"BrtEndModelTimeGroupings\", */ T:-1 },\n\t/*::[*/0x085B/*::]*/: { /* n:\"BrtBeginModelTimeGrouping\", */ T:1 },\n\t/*::[*/0x085C/*::]*/: { /* n:\"BrtEndModelTimeGrouping\", */ T:-1 },\n\t/*::[*/0x085D/*::]*/: { /* n:\"BrtModelTimeGroupingCalcCol\" */ },\n\t/*::[*/0x0C00/*::]*/: { /* n:\"BrtUid\" */ },\n\t/*::[*/0x0C01/*::]*/: { /* n:\"BrtRevisionPtr\" */ },\n\t/*::[*/0x1000/*::]*/: { /* n:\"BrtBeginDynamicArrayPr\", */ T:1 },\n\t/*::[*/0x1001/*::]*/: { /* n:\"BrtEndDynamicArrayPr\", */ T:-1 },\n\t/*::[*/0x138A/*::]*/: { /* n:\"BrtBeginRichValueBlock\", */ T:1 },\n\t/*::[*/0x138B/*::]*/: { /* n:\"BrtEndRichValueBlock\", */ T:-1 },\n\t/*::[*/0x13D9/*::]*/: { /* n:\"BrtBeginRichFilters\", */ T:1 },\n\t/*::[*/0x13DA/*::]*/: { /* n:\"BrtEndRichFilters\", */ T:-1 },\n\t/*::[*/0x13DB/*::]*/: { /* n:\"BrtRichFilter\" */ },\n\t/*::[*/0x13DC/*::]*/: { /* n:\"BrtBeginRichFilterColumn\", */ T:1 },\n\t/*::[*/0x13DD/*::]*/: { /* n:\"BrtEndRichFilterColumn\", */ T:-1 },\n\t/*::[*/0x13DE/*::]*/: { /* n:\"BrtBeginCustomRichFilters\", */ T:1 },\n\t/*::[*/0x13DF/*::]*/: { /* n:\"BrtEndCustomRichFilters\", */ T:-1 },\n\t/*::[*/0x13E0/*::]*/: { /* n:\"BrtCustomRichFilter\" */ },\n\t/*::[*/0x13E1/*::]*/: { /* n:\"BrtTop10RichFilter\" */ },\n\t/*::[*/0x13E2/*::]*/: { /* n:\"BrtDynamicRichFilter\" */ },\n\t/*::[*/0x13E4/*::]*/: { /* n:\"BrtBeginRichSortCondition\", */ T:1 },\n\t/*::[*/0x13E5/*::]*/: { /* n:\"BrtEndRichSortCondition\", */ T:-1 },\n\t/*::[*/0x13E6/*::]*/: { /* n:\"BrtRichFilterDateGroupItem\" */ },\n\t/*::[*/0x13E7/*::]*/: { /* n:\"BrtBeginCalcFeatures\", */ T:1 },\n\t/*::[*/0x13E8/*::]*/: { /* n:\"BrtEndCalcFeatures\", */ T:-1 },\n\t/*::[*/0x13E9/*::]*/: { /* n:\"BrtCalcFeature\" */ },\n\t/*::[*/0x13EB/*::]*/: { /* n:\"BrtExternalLinksPr\" */ },\n\t/*::[*/0xFFFF/*::]*/: { n:\"\" }\n};\n\n/* [MS-XLS] 2.3 Record Enumeration (and other sources) */\nvar XLSRecordEnum = {\n\t/* [MS-XLS] 2.3 Record Enumeration 2021-08-17 */\n\t/*::[*/0x0006/*::]*/: { /* n:\"Formula\", */ f:parse_Formula },\n\t/*::[*/0x000a/*::]*/: { /* n:\"EOF\", */ f:parsenoop2 },\n\t/*::[*/0x000c/*::]*/: { /* n:\"CalcCount\", */ f:parseuint16 }, //\n\t/*::[*/0x000d/*::]*/: { /* n:\"CalcMode\", */ f:parseuint16 }, //\n\t/*::[*/0x000e/*::]*/: { /* n:\"CalcPrecision\", */ f:parsebool }, //\n\t/*::[*/0x000f/*::]*/: { /* n:\"CalcRefMode\", */ f:parsebool }, //\n\t/*::[*/0x0010/*::]*/: { /* n:\"CalcDelta\", */ f:parse_Xnum }, //\n\t/*::[*/0x0011/*::]*/: { /* n:\"CalcIter\", */ f:parsebool }, //\n\t/*::[*/0x0012/*::]*/: { /* n:\"Protect\", */ f:parsebool },\n\t/*::[*/0x0013/*::]*/: { /* n:\"Password\", */ f:parseuint16 },\n\t/*::[*/0x0014/*::]*/: { /* n:\"Header\", */ f:parse_XLHeaderFooter },\n\t/*::[*/0x0015/*::]*/: { /* n:\"Footer\", */ f:parse_XLHeaderFooter },\n\t/*::[*/0x0017/*::]*/: { /* n:\"ExternSheet\", */ f:parse_ExternSheet },\n\t/*::[*/0x0018/*::]*/: { /* n:\"Lbl\", */ f:parse_Lbl },\n\t/*::[*/0x0019/*::]*/: { /* n:\"WinProtect\", */ f:parsebool },\n\t/*::[*/0x001a/*::]*/: { /* n:\"VerticalPageBreaks\", */ },\n\t/*::[*/0x001b/*::]*/: { /* n:\"HorizontalPageBreaks\", */ },\n\t/*::[*/0x001c/*::]*/: { /* n:\"Note\", */ f:parse_Note },\n\t/*::[*/0x001d/*::]*/: { /* n:\"Selection\", */ },\n\t/*::[*/0x0022/*::]*/: { /* n:\"Date1904\", */ f:parsebool },\n\t/*::[*/0x0023/*::]*/: { /* n:\"ExternName\", */ f:parse_ExternName },\n\t/*::[*/0x0026/*::]*/: { /* n:\"LeftMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x0027/*::]*/: { /* n:\"RightMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x0028/*::]*/: { /* n:\"TopMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x0029/*::]*/: { /* n:\"BottomMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x002a/*::]*/: { /* n:\"PrintRowCol\", */ f:parsebool },\n\t/*::[*/0x002b/*::]*/: { /* n:\"PrintGrid\", */ f:parsebool },\n\t/*::[*/0x002f/*::]*/: { /* n:\"FilePass\", */ f:parse_FilePass },\n\t/*::[*/0x0031/*::]*/: { /* n:\"Font\", */ f:parse_Font },\n\t/*::[*/0x0033/*::]*/: { /* n:\"PrintSize\", */ f:parseuint16 },\n\t/*::[*/0x003c/*::]*/: { /* n:\"Continue\", */ },\n\t/*::[*/0x003d/*::]*/: { /* n:\"Window1\", */ f:parse_Window1 },\n\t/*::[*/0x0040/*::]*/: { /* n:\"Backup\", */ f:parsebool },\n\t/*::[*/0x0041/*::]*/: { /* n:\"Pane\", */ f:parse_Pane },\n\t/*::[*/0x0042/*::]*/: { /* n:\"CodePage\", */ f:parseuint16 },\n\t/*::[*/0x004d/*::]*/: { /* n:\"Pls\", */ },\n\t/*::[*/0x0050/*::]*/: { /* n:\"DCon\", */ },\n\t/*::[*/0x0051/*::]*/: { /* n:\"DConRef\", */ },\n\t/*::[*/0x0052/*::]*/: { /* n:\"DConName\", */ },\n\t/*::[*/0x0055/*::]*/: { /* n:\"DefColWidth\", */ f:parseuint16 },\n\t/*::[*/0x0059/*::]*/: { /* n:\"XCT\", */ },\n\t/*::[*/0x005a/*::]*/: { /* n:\"CRN\", */ },\n\t/*::[*/0x005b/*::]*/: { /* n:\"FileSharing\", */ },\n\t/*::[*/0x005c/*::]*/: { /* n:\"WriteAccess\", */ f:parse_WriteAccess },\n\t/*::[*/0x005d/*::]*/: { /* n:\"Obj\", */ f:parse_Obj },\n\t/*::[*/0x005e/*::]*/: { /* n:\"Uncalced\", */ },\n\t/*::[*/0x005f/*::]*/: { /* n:\"CalcSaveRecalc\", */ f:parsebool }, //\n\t/*::[*/0x0060/*::]*/: { /* n:\"Template\", */ },\n\t/*::[*/0x0061/*::]*/: { /* n:\"Intl\", */ },\n\t/*::[*/0x0063/*::]*/: { /* n:\"ObjProtect\", */ f:parsebool },\n\t/*::[*/0x007d/*::]*/: { /* n:\"ColInfo\", */ f:parse_ColInfo },\n\t/*::[*/0x0080/*::]*/: { /* n:\"Guts\", */ f:parse_Guts },\n\t/*::[*/0x0081/*::]*/: { /* n:\"WsBool\", */ f:parse_WsBool },\n\t/*::[*/0x0082/*::]*/: { /* n:\"GridSet\", */ f:parseuint16 },\n\t/*::[*/0x0083/*::]*/: { /* n:\"HCenter\", */ f:parsebool },\n\t/*::[*/0x0084/*::]*/: { /* n:\"VCenter\", */ f:parsebool },\n\t/*::[*/0x0085/*::]*/: { /* n:\"BoundSheet8\", */ f:parse_BoundSheet8 },\n\t/*::[*/0x0086/*::]*/: { /* n:\"WriteProtect\", */ },\n\t/*::[*/0x008c/*::]*/: { /* n:\"Country\", */ f:parse_Country },\n\t/*::[*/0x008d/*::]*/: { /* n:\"HideObj\", */ f:parseuint16 },\n\t/*::[*/0x0090/*::]*/: { /* n:\"Sort\", */ },\n\t/*::[*/0x0092/*::]*/: { /* n:\"Palette\", */ f:parse_Palette },\n\t/*::[*/0x0097/*::]*/: { /* n:\"Sync\", */ },\n\t/*::[*/0x0098/*::]*/: { /* n:\"LPr\", */ },\n\t/*::[*/0x0099/*::]*/: { /* n:\"DxGCol\", */ },\n\t/*::[*/0x009a/*::]*/: { /* n:\"FnGroupName\", */ },\n\t/*::[*/0x009b/*::]*/: { /* n:\"FilterMode\", */ },\n\t/*::[*/0x009c/*::]*/: { /* n:\"BuiltInFnGroupCount\", */ f:parseuint16 },\n\t/*::[*/0x009d/*::]*/: { /* n:\"AutoFilterInfo\", */ },\n\t/*::[*/0x009e/*::]*/: { /* n:\"AutoFilter\", */ },\n\t/*::[*/0x00a0/*::]*/: { /* n:\"Scl\", */ f:parse_Scl },\n\t/*::[*/0x00a1/*::]*/: { /* n:\"Setup\", */ f:parse_Setup },\n\t/*::[*/0x00ae/*::]*/: { /* n:\"ScenMan\", */ },\n\t/*::[*/0x00af/*::]*/: { /* n:\"SCENARIO\", */ },\n\t/*::[*/0x00b0/*::]*/: { /* n:\"SxView\", */ },\n\t/*::[*/0x00b1/*::]*/: { /* n:\"Sxvd\", */ },\n\t/*::[*/0x00b2/*::]*/: { /* n:\"SXVI\", */ },\n\t/*::[*/0x00b4/*::]*/: { /* n:\"SxIvd\", */ },\n\t/*::[*/0x00b5/*::]*/: { /* n:\"SXLI\", */ },\n\t/*::[*/0x00b6/*::]*/: { /* n:\"SXPI\", */ },\n\t/*::[*/0x00b8/*::]*/: { /* n:\"DocRoute\", */ },\n\t/*::[*/0x00b9/*::]*/: { /* n:\"RecipName\", */ },\n\t/*::[*/0x00bd/*::]*/: { /* n:\"MulRk\", */ f:parse_MulRk },\n\t/*::[*/0x00be/*::]*/: { /* n:\"MulBlank\", */ f:parse_MulBlank },\n\t/*::[*/0x00c1/*::]*/: { /* n:\"Mms\", */ f:parsenoop2 },\n\t/*::[*/0x00c5/*::]*/: { /* n:\"SXDI\", */ },\n\t/*::[*/0x00c6/*::]*/: { /* n:\"SXDB\", */ },\n\t/*::[*/0x00c7/*::]*/: { /* n:\"SXFDB\", */ },\n\t/*::[*/0x00c8/*::]*/: { /* n:\"SXDBB\", */ },\n\t/*::[*/0x00c9/*::]*/: { /* n:\"SXNum\", */ },\n\t/*::[*/0x00ca/*::]*/: { /* n:\"SxBool\", */ f:parsebool },\n\t/*::[*/0x00cb/*::]*/: { /* n:\"SxErr\", */ },\n\t/*::[*/0x00cc/*::]*/: { /* n:\"SXInt\", */ },\n\t/*::[*/0x00cd/*::]*/: { /* n:\"SXString\", */ },\n\t/*::[*/0x00ce/*::]*/: { /* n:\"SXDtr\", */ },\n\t/*::[*/0x00cf/*::]*/: { /* n:\"SxNil\", */ },\n\t/*::[*/0x00d0/*::]*/: { /* n:\"SXTbl\", */ },\n\t/*::[*/0x00d1/*::]*/: { /* n:\"SXTBRGIITM\", */ },\n\t/*::[*/0x00d2/*::]*/: { /* n:\"SxTbpg\", */ },\n\t/*::[*/0x00d3/*::]*/: { /* n:\"ObProj\", */ },\n\t/*::[*/0x00d5/*::]*/: { /* n:\"SXStreamID\", */ },\n\t/*::[*/0x00d7/*::]*/: { /* n:\"DBCell\", */ },\n\t/*::[*/0x00d8/*::]*/: { /* n:\"SXRng\", */ },\n\t/*::[*/0x00d9/*::]*/: { /* n:\"SxIsxoper\", */ },\n\t/*::[*/0x00da/*::]*/: { /* n:\"BookBool\", */ f:parseuint16 },\n\t/*::[*/0x00dc/*::]*/: { /* n:\"DbOrParamQry\", */ },\n\t/*::[*/0x00dd/*::]*/: { /* n:\"ScenarioProtect\", */ f:parsebool },\n\t/*::[*/0x00de/*::]*/: { /* n:\"OleObjectSize\", */ },\n\t/*::[*/0x00e0/*::]*/: { /* n:\"XF\", */ f:parse_XF },\n\t/*::[*/0x00e1/*::]*/: { /* n:\"InterfaceHdr\", */ f:parse_InterfaceHdr },\n\t/*::[*/0x00e2/*::]*/: { /* n:\"InterfaceEnd\", */ f:parsenoop2 },\n\t/*::[*/0x00e3/*::]*/: { /* n:\"SXVS\", */ },\n\t/*::[*/0x00e5/*::]*/: { /* n:\"MergeCells\", */ f:parse_MergeCells },\n\t/*::[*/0x00e9/*::]*/: { /* n:\"BkHim\", */ },\n\t/*::[*/0x00eb/*::]*/: { /* n:\"MsoDrawingGroup\", */ },\n\t/*::[*/0x00ec/*::]*/: { /* n:\"MsoDrawing\", */ },\n\t/*::[*/0x00ed/*::]*/: { /* n:\"MsoDrawingSelection\", */ },\n\t/*::[*/0x00ef/*::]*/: { /* n:\"PhoneticInfo\", */ },\n\t/*::[*/0x00f0/*::]*/: { /* n:\"SxRule\", */ },\n\t/*::[*/0x00f1/*::]*/: { /* n:\"SXEx\", */ },\n\t/*::[*/0x00f2/*::]*/: { /* n:\"SxFilt\", */ },\n\t/*::[*/0x00f4/*::]*/: { /* n:\"SxDXF\", */ },\n\t/*::[*/0x00f5/*::]*/: { /* n:\"SxItm\", */ },\n\t/*::[*/0x00f6/*::]*/: { /* n:\"SxName\", */ },\n\t/*::[*/0x00f7/*::]*/: { /* n:\"SxSelect\", */ },\n\t/*::[*/0x00f8/*::]*/: { /* n:\"SXPair\", */ },\n\t/*::[*/0x00f9/*::]*/: { /* n:\"SxFmla\", */ },\n\t/*::[*/0x00fb/*::]*/: { /* n:\"SxFormat\", */ },\n\t/*::[*/0x00fc/*::]*/: { /* n:\"SST\", */ f:parse_SST },\n\t/*::[*/0x00fd/*::]*/: { /* n:\"LabelSst\", */ f:parse_LabelSst },\n\t/*::[*/0x00ff/*::]*/: { /* n:\"ExtSST\", */ f:parse_ExtSST },\n\t/*::[*/0x0100/*::]*/: { /* n:\"SXVDEx\", */ },\n\t/*::[*/0x0103/*::]*/: { /* n:\"SXFormula\", */ },\n\t/*::[*/0x0122/*::]*/: { /* n:\"SXDBEx\", */ },\n\t/*::[*/0x0137/*::]*/: { /* n:\"RRDInsDel\", */ },\n\t/*::[*/0x0138/*::]*/: { /* n:\"RRDHead\", */ },\n\t/*::[*/0x013b/*::]*/: { /* n:\"RRDChgCell\", */ },\n\t/*::[*/0x013d/*::]*/: { /* n:\"RRTabId\", */ f:parseuint16a },\n\t/*::[*/0x013e/*::]*/: { /* n:\"RRDRenSheet\", */ },\n\t/*::[*/0x013f/*::]*/: { /* n:\"RRSort\", */ },\n\t/*::[*/0x0140/*::]*/: { /* n:\"RRDMove\", */ },\n\t/*::[*/0x014a/*::]*/: { /* n:\"RRFormat\", */ },\n\t/*::[*/0x014b/*::]*/: { /* n:\"RRAutoFmt\", */ },\n\t/*::[*/0x014d/*::]*/: { /* n:\"RRInsertSh\", */ },\n\t/*::[*/0x014e/*::]*/: { /* n:\"RRDMoveBegin\", */ },\n\t/*::[*/0x014f/*::]*/: { /* n:\"RRDMoveEnd\", */ },\n\t/*::[*/0x0150/*::]*/: { /* n:\"RRDInsDelBegin\", */ },\n\t/*::[*/0x0151/*::]*/: { /* n:\"RRDInsDelEnd\", */ },\n\t/*::[*/0x0152/*::]*/: { /* n:\"RRDConflict\", */ },\n\t/*::[*/0x0153/*::]*/: { /* n:\"RRDDefName\", */ },\n\t/*::[*/0x0154/*::]*/: { /* n:\"RRDRstEtxp\", */ },\n\t/*::[*/0x015f/*::]*/: { /* n:\"LRng\", */ },\n\t/*::[*/0x0160/*::]*/: { /* n:\"UsesELFs\", */ f:parsebool },\n\t/*::[*/0x0161/*::]*/: { /* n:\"DSF\", */ f:parsenoop2 },\n\t/*::[*/0x0191/*::]*/: { /* n:\"CUsr\", */ },\n\t/*::[*/0x0192/*::]*/: { /* n:\"CbUsr\", */ },\n\t/*::[*/0x0193/*::]*/: { /* n:\"UsrInfo\", */ },\n\t/*::[*/0x0194/*::]*/: { /* n:\"UsrExcl\", */ },\n\t/*::[*/0x0195/*::]*/: { /* n:\"FileLock\", */ },\n\t/*::[*/0x0196/*::]*/: { /* n:\"RRDInfo\", */ },\n\t/*::[*/0x0197/*::]*/: { /* n:\"BCUsrs\", */ },\n\t/*::[*/0x0198/*::]*/: { /* n:\"UsrChk\", */ },\n\t/*::[*/0x01a9/*::]*/: { /* n:\"UserBView\", */ },\n\t/*::[*/0x01aa/*::]*/: { /* n:\"UserSViewBegin\", */ },\n\t/*::[*/0x01ab/*::]*/: { /* n:\"UserSViewEnd\", */ },\n\t/*::[*/0x01ac/*::]*/: { /* n:\"RRDUserView\", */ },\n\t/*::[*/0x01ad/*::]*/: { /* n:\"Qsi\", */ },\n\t/*::[*/0x01ae/*::]*/: { /* n:\"SupBook\", */ f:parse_SupBook },\n\t/*::[*/0x01af/*::]*/: { /* n:\"Prot4Rev\", */ f:parsebool },\n\t/*::[*/0x01b0/*::]*/: { /* n:\"CondFmt\", */ },\n\t/*::[*/0x01b1/*::]*/: { /* n:\"CF\", */ },\n\t/*::[*/0x01b2/*::]*/: { /* n:\"DVal\", */ },\n\t/*::[*/0x01b5/*::]*/: { /* n:\"DConBin\", */ },\n\t/*::[*/0x01b6/*::]*/: { /* n:\"TxO\", */ f:parse_TxO },\n\t/*::[*/0x01b7/*::]*/: { /* n:\"RefreshAll\", */ f:parsebool }, //\n\t/*::[*/0x01b8/*::]*/: { /* n:\"HLink\", */ f:parse_HLink },\n\t/*::[*/0x01b9/*::]*/: { /* n:\"Lel\", */ },\n\t/*::[*/0x01ba/*::]*/: { /* n:\"CodeName\", */ f:parse_XLUnicodeString },\n\t/*::[*/0x01bb/*::]*/: { /* n:\"SXFDBType\", */ },\n\t/*::[*/0x01bc/*::]*/: { /* n:\"Prot4RevPass\", */ f:parseuint16 },\n\t/*::[*/0x01bd/*::]*/: { /* n:\"ObNoMacros\", */ },\n\t/*::[*/0x01be/*::]*/: { /* n:\"Dv\", */ },\n\t/*::[*/0x01c0/*::]*/: { /* n:\"Excel9File\", */ f:parsenoop2 },\n\t/*::[*/0x01c1/*::]*/: { /* n:\"RecalcId\", */ f:parse_RecalcId, r:2},\n\t/*::[*/0x01c2/*::]*/: { /* n:\"EntExU2\", */ f:parsenoop2 },\n\t/*::[*/0x0200/*::]*/: { /* n:\"Dimensions\", */ f:parse_Dimensions },\n\t/*::[*/0x0201/*::]*/: { /* n:\"Blank\", */ f:parse_Blank },\n\t/*::[*/0x0203/*::]*/: { /* n:\"Number\", */ f:parse_Number },\n\t/*::[*/0x0204/*::]*/: { /* n:\"Label\", */ f:parse_Label },\n\t/*::[*/0x0205/*::]*/: { /* n:\"BoolErr\", */ f:parse_BoolErr },\n\t/*::[*/0x0207/*::]*/: { /* n:\"String\", */ f:parse_String },\n\t/*::[*/0x0208/*::]*/: { /* n:\"Row\", */ f:parse_Row },\n\t/*::[*/0x020b/*::]*/: { /* n:\"Index\", */ },\n\t/*::[*/0x0221/*::]*/: { /* n:\"Array\", */ f:parse_Array },\n\t/*::[*/0x0225/*::]*/: { /* n:\"DefaultRowHeight\", */ f:parse_DefaultRowHeight },\n\t/*::[*/0x0236/*::]*/: { /* n:\"Table\", */ },\n\t/*::[*/0x023e/*::]*/: { /* n:\"Window2\", */ f:parse_Window2 },\n\t/*::[*/0x027e/*::]*/: { /* n:\"RK\", */ f:parse_RK },\n\t/*::[*/0x0293/*::]*/: { /* n:\"Style\", */ },\n\t/*::[*/0x0418/*::]*/: { /* n:\"BigName\", */ },\n\t/*::[*/0x041e/*::]*/: { /* n:\"Format\", */ f:parse_Format },\n\t/*::[*/0x043c/*::]*/: { /* n:\"ContinueBigName\", */ },\n\t/*::[*/0x04bc/*::]*/: { /* n:\"ShrFmla\", */ f:parse_ShrFmla },\n\t/*::[*/0x0800/*::]*/: { /* n:\"HLinkTooltip\", */ f:parse_HLinkTooltip },\n\t/*::[*/0x0801/*::]*/: { /* n:\"WebPub\", */ },\n\t/*::[*/0x0802/*::]*/: { /* n:\"QsiSXTag\", */ },\n\t/*::[*/0x0803/*::]*/: { /* n:\"DBQueryExt\", */ },\n\t/*::[*/0x0804/*::]*/: { /* n:\"ExtString\", */ },\n\t/*::[*/0x0805/*::]*/: { /* n:\"TxtQry\", */ },\n\t/*::[*/0x0806/*::]*/: { /* n:\"Qsir\", */ },\n\t/*::[*/0x0807/*::]*/: { /* n:\"Qsif\", */ },\n\t/*::[*/0x0808/*::]*/: { /* n:\"RRDTQSIF\", */ },\n\t/*::[*/0x0809/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x080a/*::]*/: { /* n:\"OleDbConn\", */ },\n\t/*::[*/0x080b/*::]*/: { /* n:\"WOpt\", */ },\n\t/*::[*/0x080c/*::]*/: { /* n:\"SXViewEx\", */ },\n\t/*::[*/0x080d/*::]*/: { /* n:\"SXTH\", */ },\n\t/*::[*/0x080e/*::]*/: { /* n:\"SXPIEx\", */ },\n\t/*::[*/0x080f/*::]*/: { /* n:\"SXVDTEx\", */ },\n\t/*::[*/0x0810/*::]*/: { /* n:\"SXViewEx9\", */ },\n\t/*::[*/0x0812/*::]*/: { /* n:\"ContinueFrt\", */ },\n\t/*::[*/0x0813/*::]*/: { /* n:\"RealTimeData\", */ },\n\t/*::[*/0x0850/*::]*/: { /* n:\"ChartFrtInfo\", */ },\n\t/*::[*/0x0851/*::]*/: { /* n:\"FrtWrapper\", */ },\n\t/*::[*/0x0852/*::]*/: { /* n:\"StartBlock\", */ },\n\t/*::[*/0x0853/*::]*/: { /* n:\"EndBlock\", */ },\n\t/*::[*/0x0854/*::]*/: { /* n:\"StartObject\", */ },\n\t/*::[*/0x0855/*::]*/: { /* n:\"EndObject\", */ },\n\t/*::[*/0x0856/*::]*/: { /* n:\"CatLab\", */ },\n\t/*::[*/0x0857/*::]*/: { /* n:\"YMult\", */ },\n\t/*::[*/0x0858/*::]*/: { /* n:\"SXViewLink\", */ },\n\t/*::[*/0x0859/*::]*/: { /* n:\"PivotChartBits\", */ },\n\t/*::[*/0x085a/*::]*/: { /* n:\"FrtFontList\", */ },\n\t/*::[*/0x0862/*::]*/: { /* n:\"SheetExt\", */ },\n\t/*::[*/0x0863/*::]*/: { /* n:\"BookExt\", */ r:12},\n\t/*::[*/0x0864/*::]*/: { /* n:\"SXAddl\", */ },\n\t/*::[*/0x0865/*::]*/: { /* n:\"CrErr\", */ },\n\t/*::[*/0x0866/*::]*/: { /* n:\"HFPicture\", */ },\n\t/*::[*/0x0867/*::]*/: { /* n:\"FeatHdr\", */ f:parsenoop2 },\n\t/*::[*/0x0868/*::]*/: { /* n:\"Feat\", */ },\n\t/*::[*/0x086a/*::]*/: { /* n:\"DataLabExt\", */ },\n\t/*::[*/0x086b/*::]*/: { /* n:\"DataLabExtContents\", */ },\n\t/*::[*/0x086c/*::]*/: { /* n:\"CellWatch\", */ },\n\t/*::[*/0x0871/*::]*/: { /* n:\"FeatHdr11\", */ },\n\t/*::[*/0x0872/*::]*/: { /* n:\"Feature11\", */ },\n\t/*::[*/0x0874/*::]*/: { /* n:\"DropDownObjIds\", */ },\n\t/*::[*/0x0875/*::]*/: { /* n:\"ContinueFrt11\", */ },\n\t/*::[*/0x0876/*::]*/: { /* n:\"DConn\", */ },\n\t/*::[*/0x0877/*::]*/: { /* n:\"List12\", */ },\n\t/*::[*/0x0878/*::]*/: { /* n:\"Feature12\", */ },\n\t/*::[*/0x0879/*::]*/: { /* n:\"CondFmt12\", */ },\n\t/*::[*/0x087a/*::]*/: { /* n:\"CF12\", */ },\n\t/*::[*/0x087b/*::]*/: { /* n:\"CFEx\", */ },\n\t/*::[*/0x087c/*::]*/: { /* n:\"XFCRC\", */ f:parse_XFCRC, r:12 },\n\t/*::[*/0x087d/*::]*/: { /* n:\"XFExt\", */ f:parse_XFExt, r:12 },\n\t/*::[*/0x087e/*::]*/: { /* n:\"AutoFilter12\", */ },\n\t/*::[*/0x087f/*::]*/: { /* n:\"ContinueFrt12\", */ },\n\t/*::[*/0x0884/*::]*/: { /* n:\"MDTInfo\", */ },\n\t/*::[*/0x0885/*::]*/: { /* n:\"MDXStr\", */ },\n\t/*::[*/0x0886/*::]*/: { /* n:\"MDXTuple\", */ },\n\t/*::[*/0x0887/*::]*/: { /* n:\"MDXSet\", */ },\n\t/*::[*/0x0888/*::]*/: { /* n:\"MDXProp\", */ },\n\t/*::[*/0x0889/*::]*/: { /* n:\"MDXKPI\", */ },\n\t/*::[*/0x088a/*::]*/: { /* n:\"MDB\", */ },\n\t/*::[*/0x088b/*::]*/: { /* n:\"PLV\", */ },\n\t/*::[*/0x088c/*::]*/: { /* n:\"Compat12\", */ f:parsebool, r:12 },\n\t/*::[*/0x088d/*::]*/: { /* n:\"DXF\", */ },\n\t/*::[*/0x088e/*::]*/: { /* n:\"TableStyles\", */ r:12 },\n\t/*::[*/0x088f/*::]*/: { /* n:\"TableStyle\", */ },\n\t/*::[*/0x0890/*::]*/: { /* n:\"TableStyleElement\", */ },\n\t/*::[*/0x0892/*::]*/: { /* n:\"StyleExt\", */ },\n\t/*::[*/0x0893/*::]*/: { /* n:\"NamePublish\", */ },\n\t/*::[*/0x0894/*::]*/: { /* n:\"NameCmt\", */ f:parse_NameCmt, r:12 },\n\t/*::[*/0x0895/*::]*/: { /* n:\"SortData\", */ },\n\t/*::[*/0x0896/*::]*/: { /* n:\"Theme\", */ f:parse_Theme, r:12 },\n\t/*::[*/0x0897/*::]*/: { /* n:\"GUIDTypeLib\", */ },\n\t/*::[*/0x0898/*::]*/: { /* n:\"FnGrp12\", */ },\n\t/*::[*/0x0899/*::]*/: { /* n:\"NameFnGrp12\", */ },\n\t/*::[*/0x089a/*::]*/: { /* n:\"MTRSettings\", */ f:parse_MTRSettings, r:12 },\n\t/*::[*/0x089b/*::]*/: { /* n:\"CompressPictures\", */ f:parsenoop2 },\n\t/*::[*/0x089c/*::]*/: { /* n:\"HeaderFooter\", */ },\n\t/*::[*/0x089d/*::]*/: { /* n:\"CrtLayout12\", */ },\n\t/*::[*/0x089e/*::]*/: { /* n:\"CrtMlFrt\", */ },\n\t/*::[*/0x089f/*::]*/: { /* n:\"CrtMlFrtContinue\", */ },\n\t/*::[*/0x08a3/*::]*/: { /* n:\"ForceFullCalculation\", */ f:parse_ForceFullCalculation },\n\t/*::[*/0x08a4/*::]*/: { /* n:\"ShapePropsStream\", */ },\n\t/*::[*/0x08a5/*::]*/: { /* n:\"TextPropsStream\", */ },\n\t/*::[*/0x08a6/*::]*/: { /* n:\"RichTextStream\", */ },\n\t/*::[*/0x08a7/*::]*/: { /* n:\"CrtLayout12A\", */ },\n\t/*::[*/0x1001/*::]*/: { /* n:\"Units\", */ },\n\t/*::[*/0x1002/*::]*/: { /* n:\"Chart\", */ },\n\t/*::[*/0x1003/*::]*/: { /* n:\"Series\", */ },\n\t/*::[*/0x1006/*::]*/: { /* n:\"DataFormat\", */ },\n\t/*::[*/0x1007/*::]*/: { /* n:\"LineFormat\", */ },\n\t/*::[*/0x1009/*::]*/: { /* n:\"MarkerFormat\", */ },\n\t/*::[*/0x100a/*::]*/: { /* n:\"AreaFormat\", */ },\n\t/*::[*/0x100b/*::]*/: { /* n:\"PieFormat\", */ },\n\t/*::[*/0x100c/*::]*/: { /* n:\"AttachedLabel\", */ },\n\t/*::[*/0x100d/*::]*/: { /* n:\"SeriesText\", */ },\n\t/*::[*/0x1014/*::]*/: { /* n:\"ChartFormat\", */ },\n\t/*::[*/0x1015/*::]*/: { /* n:\"Legend\", */ },\n\t/*::[*/0x1016/*::]*/: { /* n:\"SeriesList\", */ },\n\t/*::[*/0x1017/*::]*/: { /* n:\"Bar\", */ },\n\t/*::[*/0x1018/*::]*/: { /* n:\"Line\", */ },\n\t/*::[*/0x1019/*::]*/: { /* n:\"Pie\", */ },\n\t/*::[*/0x101a/*::]*/: { /* n:\"Area\", */ },\n\t/*::[*/0x101b/*::]*/: { /* n:\"Scatter\", */ },\n\t/*::[*/0x101c/*::]*/: { /* n:\"CrtLine\", */ },\n\t/*::[*/0x101d/*::]*/: { /* n:\"Axis\", */ },\n\t/*::[*/0x101e/*::]*/: { /* n:\"Tick\", */ },\n\t/*::[*/0x101f/*::]*/: { /* n:\"ValueRange\", */ },\n\t/*::[*/0x1020/*::]*/: { /* n:\"CatSerRange\", */ },\n\t/*::[*/0x1021/*::]*/: { /* n:\"AxisLine\", */ },\n\t/*::[*/0x1022/*::]*/: { /* n:\"CrtLink\", */ },\n\t/*::[*/0x1024/*::]*/: { /* n:\"DefaultText\", */ },\n\t/*::[*/0x1025/*::]*/: { /* n:\"Text\", */ },\n\t/*::[*/0x1026/*::]*/: { /* n:\"FontX\", */ f:parseuint16 },\n\t/*::[*/0x1027/*::]*/: { /* n:\"ObjectLink\", */ },\n\t/*::[*/0x1032/*::]*/: { /* n:\"Frame\", */ },\n\t/*::[*/0x1033/*::]*/: { /* n:\"Begin\", */ },\n\t/*::[*/0x1034/*::]*/: { /* n:\"End\", */ },\n\t/*::[*/0x1035/*::]*/: { /* n:\"PlotArea\", */ },\n\t/*::[*/0x103a/*::]*/: { /* n:\"Chart3d\", */ },\n\t/*::[*/0x103c/*::]*/: { /* n:\"PicF\", */ },\n\t/*::[*/0x103d/*::]*/: { /* n:\"DropBar\", */ },\n\t/*::[*/0x103e/*::]*/: { /* n:\"Radar\", */ },\n\t/*::[*/0x103f/*::]*/: { /* n:\"Surf\", */ },\n\t/*::[*/0x1040/*::]*/: { /* n:\"RadarArea\", */ },\n\t/*::[*/0x1041/*::]*/: { /* n:\"AxisParent\", */ },\n\t/*::[*/0x1043/*::]*/: { /* n:\"LegendException\", */ },\n\t/*::[*/0x1044/*::]*/: { /* n:\"ShtProps\", */ f:parse_ShtProps },\n\t/*::[*/0x1045/*::]*/: { /* n:\"SerToCrt\", */ },\n\t/*::[*/0x1046/*::]*/: { /* n:\"AxesUsed\", */ },\n\t/*::[*/0x1048/*::]*/: { /* n:\"SBaseRef\", */ },\n\t/*::[*/0x104a/*::]*/: { /* n:\"SerParent\", */ },\n\t/*::[*/0x104b/*::]*/: { /* n:\"SerAuxTrend\", */ },\n\t/*::[*/0x104e/*::]*/: { /* n:\"IFmtRecord\", */ },\n\t/*::[*/0x104f/*::]*/: { /* n:\"Pos\", */ },\n\t/*::[*/0x1050/*::]*/: { /* n:\"AlRuns\", */ },\n\t/*::[*/0x1051/*::]*/: { /* n:\"BRAI\", */ },\n\t/*::[*/0x105b/*::]*/: { /* n:\"SerAuxErrBar\", */ },\n\t/*::[*/0x105c/*::]*/: { /* n:\"ClrtClient\", */ f:parse_ClrtClient },\n\t/*::[*/0x105d/*::]*/: { /* n:\"SerFmt\", */ },\n\t/*::[*/0x105f/*::]*/: { /* n:\"Chart3DBarShape\", */ },\n\t/*::[*/0x1060/*::]*/: { /* n:\"Fbi\", */ },\n\t/*::[*/0x1061/*::]*/: { /* n:\"BopPop\", */ },\n\t/*::[*/0x1062/*::]*/: { /* n:\"AxcExt\", */ },\n\t/*::[*/0x1063/*::]*/: { /* n:\"Dat\", */ },\n\t/*::[*/0x1064/*::]*/: { /* n:\"PlotGrowth\", */ },\n\t/*::[*/0x1065/*::]*/: { /* n:\"SIIndex\", */ },\n\t/*::[*/0x1066/*::]*/: { /* n:\"GelFrame\", */ },\n\t/*::[*/0x1067/*::]*/: { /* n:\"BopPopCustom\", */ },\n\t/*::[*/0x1068/*::]*/: { /* n:\"Fbi2\", */ },\n\n\t/*::[*/0x0000/*::]*/: { /* n:\"Dimensions\", */ f:parse_Dimensions },\n\t/*::[*/0x0001/*::]*/: { /* n:\"BIFF2BLANK\", */ },\n\t/*::[*/0x0002/*::]*/: { /* n:\"BIFF2INT\", */ f:parse_BIFF2INT },\n\t/*::[*/0x0003/*::]*/: { /* n:\"BIFF2NUM\", */ f:parse_BIFF2NUM },\n\t/*::[*/0x0004/*::]*/: { /* n:\"BIFF2STR\", */ f:parse_BIFF2STR },\n\t/*::[*/0x0005/*::]*/: { /* n:\"BIFF2BOOLERR\", */ f:parse_BIFF2BOOLERR },\n\t/*::[*/0x0007/*::]*/: { /* n:\"String\", */ f:parse_BIFF2STRING },\n\t/*::[*/0x0008/*::]*/: { /* n:\"BIFF2ROW\", */ },\n\t/*::[*/0x0009/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x000b/*::]*/: { /* n:\"Index\", */ },\n\t/*::[*/0x0016/*::]*/: { /* n:\"ExternCount\", */ f:parseuint16 },\n\t/*::[*/0x001e/*::]*/: { /* n:\"BIFF2FORMAT\", */ f:parse_BIFF2Format },\n\t/*::[*/0x001f/*::]*/: { /* n:\"BIFF2FMTCNT\", */ }, /* 16-bit cnt of BIFF2FORMAT records */\n\t/*::[*/0x0020/*::]*/: { /* n:\"BIFF2COLINFO\", */ },\n\t/*::[*/0x0021/*::]*/: { /* n:\"Array\", */ f:parse_Array },\n\t/*::[*/0x0024/*::]*/: { /* n:\"COLWIDTH\", */ },\n\t/*::[*/0x0025/*::]*/: { /* n:\"DefaultRowHeight\", */ f:parse_DefaultRowHeight },\n\t// 0x002c ??\n\t// 0x002d ??\n\t// 0x002e ??\n\t// 0x0030 FONTCOUNT: number of fonts\n\t/*::[*/0x0032/*::]*/: { /* n:\"BIFF2FONTXTRA\", */ f:parse_BIFF2FONTXTRA },\n\t// 0x0035: INFOOPTS\n\t// 0x0036: TABLE (BIFF2 only)\n\t// 0x0037: TABLE2 (BIFF2 only)\n\t// 0x0038: WNDESK\n\t// 0x0039 ??\n\t// 0x003a: BEGINPREF\n\t// 0x003b: ENDPREF\n\t/*::[*/0x003e/*::]*/: { /* n:\"BIFF2WINDOW2\", */ },\n\t// 0x003f ??\n\t// 0x0046: SHOWSCROLL\n\t// 0x0047: SHOWFORMULA\n\t// 0x0048: STATUSBAR\n\t// 0x0049: SHORTMENUS\n\t// 0x004A:\n\t// 0x004B:\n\t// 0x004C:\n\t// 0x004E:\n\t// 0x004F:\n\t// 0x0058: TOOLBAR (BIFF3)\n\n\t/* - - - */\n\t/*::[*/0x0034/*::]*/: { /* n:\"DDEObjName\", */ },\n\t/*::[*/0x0043/*::]*/: { /* n:\"BIFF2XF\", */ f:parse_BIFF2XF },\n\t/*::[*/0x0044/*::]*/: { /* n:\"BIFF2XFINDEX\", */ f:parseuint16 },\n\t/*::[*/0x0045/*::]*/: { /* n:\"BIFF2FONTCLR\", */ },\n\t/*::[*/0x0056/*::]*/: { /* n:\"BIFF4FMTCNT\", */ }, /* 16-bit cnt, similar to BIFF2 */\n\t/*::[*/0x007e/*::]*/: { /* n:\"RK\", */ }, /* Not necessarily same as 0x027e */\n\t/*::[*/0x007f/*::]*/: { /* n:\"ImData\", */ f:parse_ImData },\n\t/*::[*/0x0087/*::]*/: { /* n:\"Addin\", */ },\n\t/*::[*/0x0088/*::]*/: { /* n:\"Edg\", */ },\n\t/*::[*/0x0089/*::]*/: { /* n:\"Pub\", */ },\n\t// 0x8A\n\t// 0x8B LH: alternate menu key flag (BIFF3/4)\n\t// 0x8E\n\t/*::[*/0x008F/*::]*/: { /* n:\"BIFF4SheetInfo\", */ f:parse_BIFF4SheetInfo },\n\t/*::[*/0x0091/*::]*/: { /* n:\"Sub\", */ },\n\t// 0x93 STYLE\n\t/*::[*/0x0094/*::]*/: { /* n:\"LHRecord\", */ },\n\t/*::[*/0x0095/*::]*/: { /* n:\"LHNGraph\", */ },\n\t/*::[*/0x0096/*::]*/: { /* n:\"Sound\", */ },\n\t// 0xA2 FNPROTO: function prototypes (BIFF4)\n\t// 0xA3\n\t// 0xA8\n\t/*::[*/0x00a9/*::]*/: { /* n:\"CoordList\", */ },\n\t/*::[*/0x00ab/*::]*/: { /* n:\"GCW\", */ },\n\t/*::[*/0x00bc/*::]*/: { /* n:\"ShrFmla\", */ }, /* Not necessarily same as 0x04bc */\n\t/*::[*/0x00bf/*::]*/: { /* n:\"ToolbarHdr\", */ },\n\t/*::[*/0x00c0/*::]*/: { /* n:\"ToolbarEnd\", */ },\n\t/*::[*/0x00c2/*::]*/: { /* n:\"AddMenu\", */ },\n\t/*::[*/0x00c3/*::]*/: { /* n:\"DelMenu\", */ },\n\t/*::[*/0x00d6/*::]*/: { /* n:\"RString\", */ f:parse_RString },\n\t/*::[*/0x00df/*::]*/: { /* n:\"UDDesc\", */ },\n\t/*::[*/0x00ea/*::]*/: { /* n:\"TabIdConf\", */ },\n\t/*::[*/0x0162/*::]*/: { /* n:\"XL5Modify\", */ },\n\t/*::[*/0x01a5/*::]*/: { /* n:\"FileSharing2\", */ },\n\t/*::[*/0x0206/*::]*/: { /* n:\"Formula\", */ f:parse_Formula },\n\t/*::[*/0x0209/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x0218/*::]*/: { /* n:\"Lbl\", */ f:parse_Lbl },\n\t/*::[*/0x0223/*::]*/: { /* n:\"ExternName\", */ f:parse_ExternName },\n\t/*::[*/0x0231/*::]*/: { /* n:\"Font\", */ },\n\t/*::[*/0x0243/*::]*/: { /* n:\"BIFF3XF\", */ f:parse_BIFF3XF },\n\t/*::[*/0x0406/*::]*/: { /* n:\"Formula\", */ f:parse_Formula },\n\t/*::[*/0x0409/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x0443/*::]*/: { /* n:\"BIFF4XF\", */ f:parse_BIFF4XF },\n\t/*::[*/0x086d/*::]*/: { /* n:\"FeatInfo\", */ },\n\t/*::[*/0x0873/*::]*/: { /* n:\"FeatInfo11\", */ },\n\t/*::[*/0x0881/*::]*/: { /* n:\"SXAddl12\", */ },\n\t/*::[*/0x08c0/*::]*/: { /* n:\"AutoWebPub\", */ },\n\t/*::[*/0x08c1/*::]*/: { /* n:\"ListObj\", */ },\n\t/*::[*/0x08c2/*::]*/: { /* n:\"ListField\", */ },\n\t/*::[*/0x08c3/*::]*/: { /* n:\"ListDV\", */ },\n\t/*::[*/0x08c4/*::]*/: { /* n:\"ListCondFmt\", */ },\n\t/*::[*/0x08c5/*::]*/: { /* n:\"ListCF\", */ },\n\t/*::[*/0x08c6/*::]*/: { /* n:\"FMQry\", */ },\n\t/*::[*/0x08c7/*::]*/: { /* n:\"FMSQry\", */ },\n\t/*::[*/0x08c8/*::]*/: { /* n:\"PLV\", */ },\n\t/*::[*/0x08c9/*::]*/: { /* n:\"LnExt\", */ },\n\t/*::[*/0x08ca/*::]*/: { /* n:\"MkrExt\", */ },\n\t/*::[*/0x08cb/*::]*/: { /* n:\"CrtCoopt\", */ },\n\t/*::[*/0x08d6/*::]*/: { /* n:\"FRTArchId$\", */ r:12 },\n\n\t/* --- multiplan 4 records --- */\n\t/*::[*/0x0065/*::]*/: { /* n:\"\", */ }, // one per window\n\t/*::[*/0x0066/*::]*/: { /* n:\"\", */ }, // calc settings\n\t/*::[*/0x0069/*::]*/: { /* n:\"\", */ }, // print header\n\t/*::[*/0x006a/*::]*/: { /* n:\"\", */ }, // print footer\n\t/*::[*/0x006b/*::]*/: { /* n:\"\", */ }, // print settings\n\t/*::[*/0x006d/*::]*/: { /* n:\"\", */ }, // one per window\n\t/*::[*/0x0070/*::]*/: { /* n:\"\", */ }, // includes default col width\n\t/*::[*/0x0072/*::]*/: { /* n:\"\", */ }, // includes selected cell\n\n\t/*::[*/0x7262/*::]*/: {}\n};\n\nfunction write_biff_rec(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/)/*:void*/ {\n\tvar t/*:number*/ = type;\n\tif(isNaN(t)) return;\n\tvar len = length || (payload||[]).length || 0;\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, len);\n\tif(/*:: len != null &&*/len > 0 && is_buf(payload)) ba.push(payload);\n}\n\nfunction write_biff_continue(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/)/*:void*/ {\n\tvar len = length || (payload||[]).length || 0;\n\tif(len <= 8224) return write_biff_rec(ba, type, payload, len);\n\tvar t = type;\n\tif(isNaN(t)) return;\n\tvar parts = payload.parts || [], sidx = 0;\n\tvar i = 0, w = 0;\n\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, w);\n\tba.push(payload.slice(i, i + w));\n\ti += w;\n\twhile(i < len) {\n\t\to = ba.next(4);\n\t\to.write_shift(2, 0x3c); // TODO: figure out correct continue type\n\t\tw = 0;\n\t\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\t\to.write_shift(2, w);\n\t\tba.push(payload.slice(i, i+w)); i+= w;\n\t}\n}\n\nfunction write_BIFF2BERR(r/*:number*/, c/*:number*/, val, t/*:string*/) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\twrite_Bes(val, t || 'b', out);\n\treturn out;\n}\n\n/* TODO: codepage, large strings */\nfunction write_BIFF2LABEL(r/*:number*/, c/*:number*/, val) {\n\tvar out = new_buf(8 + 2*val.length);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(1, val.length);\n\tout.write_shift(val.length, val, 'sbcs');\n\treturn out.l < out.length ? out.slice(0, out.l) : out;\n}\n\nfunction write_comments_biff2(ba/*:BufArray*/, comments/*:Array<[Comment[], number, number]>*/) {\n\tcomments.forEach(function(data) {\n\t\tvar text = data[0].map(function(cc) { return cc.t; }).join(\"\");\n\t\t// TODO: should '\\n' be translated to '\\r' to correct for Excel 5.0 bug when exporting to BIFF2/3 ?\n\t\tif(text.length <= 2048) return write_biff_rec(ba, 0x001C, write_NOTE_BIFF2(text, data[1], data[2]));\n\t\twrite_biff_rec(ba, 0x001C, write_NOTE_BIFF2(text.slice(0, 2048), data[1], data[2], text.length));\n\t\tfor(var i = 2048; i < text.length; i += 2048)\n\t\t\twrite_biff_rec(ba, 0x001C, write_NOTE_BIFF2(text.slice(i, Math.min(i+2048, text.length)), -1, -1, Math.min(2048, text.length - i)));\n\t});\n}\n\n/* TODO: BIFF3/4 use different records -- see comments*/\nfunction write_ws_biff2_cell(ba/*:BufArray*/, cell/*:Cell*/, R/*:number*/, C/*:number*/, opts, date1904/*:boolean*/) {\n\tvar ifmt = 0;\n\tif(cell.z != null) {\n\t\tifmt = opts._BIFF2FmtTable.indexOf(cell.z);\n\t\tif(ifmt == -1) { opts._BIFF2FmtTable.push(cell.z); ifmt = opts._BIFF2FmtTable.length - 1; }\n\t}\n\tvar ixfe = 0;\n\tif(cell.z != null) {\n\t\tfor(; ixfe < opts.cellXfs.length; ++ixfe) if(opts.cellXfs[ixfe].numFmtId == ifmt) break;\n\t\tif(ixfe == opts.cellXfs.length) opts.cellXfs.push({numFmtId: ifmt});\n\t}\n\tif(cell.v != null) switch(cell.t) {\n\t\tcase 'd': case 'n':\n\t\t\tvar v = cell.t == 'd' ? datenum(parseDate(cell.v, date1904), date1904) : cell.v;\n\t\t\tif(opts.biff == 2 && (v == (v|0)) && (v >= 0) && (v < 65536))\n\t\t\t\t// 0x027E (RK) in BIFF3/4\n\t\t\t\twrite_biff_rec(ba, 0x0002, write_BIFF2INT(R, C, v, ixfe, ifmt));\n\t\t\telse if(isNaN(v))\n\t\t\t\t// 0x0205 in BIFF3/4\n\t\t\t\twrite_biff_rec(ba, 0x0005, write_BIFF2BERR(R, C, 0x24, \"e\")); // #NUM!\n\t\t\telse if(!isFinite(v))\n\t\t\t\t// 0x0205 in BIFF3/4\n\t\t\t\twrite_biff_rec(ba, 0x0005, write_BIFF2BERR(R, C, 0x07, \"e\")); // #DIV/0!\n\t\t\telse\n\t\t\t\t// 0x0203 in BIFF3/4\n\t\t\t\twrite_biff_rec(ba, 0x0003, write_BIFF2NUM(R,C, v, ixfe, ifmt));\n\t\t\treturn;\n\t\tcase 'b': case 'e':\n\t\t\t// 0x0205 in BIFF3/4\n\t\t\twrite_biff_rec(ba, 0x0005, write_BIFF2BERR(R, C, cell.v, cell.t)); return;\n\t\t/* TODO: codepage, sst */\n\t\tcase 's': case 'str':\n\t\t\t// 0x0204 in BIFF3/4\n\t\t\twrite_biff_rec(ba, 0x0004, write_BIFF2LABEL(R, C, cell.v == null ? \"\" : String(cell.v).slice(0,255)));\n\t\t\treturn;\n\t}\n\t// 0x0201 in BIFF3/4\n\twrite_biff_rec(ba, 0x0001, write_BIFF2Cell(null, R, C));\n}\n\nfunction write_ws_biff2(ba/*:BufArray*/, ws/*:Worksheet*/, idx/*:number*/, opts, wb/*:Workbook*/) {\n\tvar dense = ws[\"!data\"] != null;\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref/*:string*/, rr = \"\", cols/*:Array*/ = [];\n\tif(range.e.c > 0xFF || range.e.r > 0x3FFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, 0x3FFF);\n\t}\n\tvar date1904 = (((wb||{}).Workbook||{}).WBProps||{}).date1904;\n\tvar row = [], comments = [];\n\t/* TODO: 0x0000 / 0x0200 dimensions? */\n\tfor(var C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\tif(dense) row = ws[\"!data\"][R] || [];\n\t\trr = encode_row(R);\n\t\tfor(C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tvar cell = dense ? row[C] : ws[cols[C] + rr];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff2_cell(ba, cell, R, C, opts, date1904);\n\t\t\tif(cell.c) comments.push([cell.c, R, C]);\n\t\t}\n\t}\n\n\t/* ... 0x12 0x19 0x13 (Password) */\n\twrite_comments_biff2(ba, comments);\n\t/* 0x3d (Window1) ... */\n}\n\n/* Based on test files */\nfunction write_biff2_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tvar o = opts || {};\n\n\tvar ba = buf_array();\n\tvar idx = 0;\n\tfor(var i=0;i*/ = [\"General\"]; o._Fonts = [];\n\tvar body = buf_array();\n\twrite_ws_biff2(body, wb.Sheets[wb.SheetNames[idx]], idx, o, wb);\n\n\to._BIFF2FmtTable.forEach(function(f) {\n\t\tif(o.biff <= 3) write_biff_rec(ba, 0x001E, write_BIFF2Format(f));\n\t\telse write_biff_rec(ba, 0x041E, write_BIFF4Format(f));\n\t});\n\to.cellXfs.forEach(function(xf) {\n\t\tswitch(o.biff) {\n\t\t\tcase 2: write_biff_rec(ba, 0x0043, write_BIFF2XF(xf)); break;\n\t\t\tcase 3: write_biff_rec(ba, 0x0243, write_BIFF3XF(xf)); break;\n\t\t\tcase 4: write_biff_rec(ba, 0x0443, write_BIFF4XF(xf)); break;\n\t\t}\n\t});\n\tdelete o._BIFF2FmtTable; delete o.cellXfs; delete o._Fonts;\n\n\tba.push(body.end());\n\twrite_biff_rec(ba, 0x000A);\n\treturn ba.end();\n}\n\nvar b8oid = 1, b8ocnts/*:Array<[number, number, number]>*/ = [];\nfunction write_MsoDrawingGroup() {\n\tvar buf = new_buf(82 + 8 * b8ocnts.length);\n\t/* [MS-ODRAW] 2.2.12 OfficeArtDggContainer */\n\tbuf.write_shift(2, 0x0F);\n\tbuf.write_shift(2, 0xF000);\n\tbuf.write_shift(4, 74 + 8 * b8ocnts.length);\n\t/* 2.2.48 OfficeArtFDGGBlock */\n\t{\n\t\tbuf.write_shift(2, 0);\n\t\tbuf.write_shift(2, 0xF006);\n\t\tbuf.write_shift(4, 16 + 8 * b8ocnts.length);\n\t\t/* 2.2.47 OfficeArtFDGG */\n\t\t{\n\t\t\tbuf.write_shift(4, b8oid);\n\t\t\tbuf.write_shift(4, b8ocnts.length+1);\n\t\t\tvar acc = 0; for(var i = 0; i < b8ocnts.length; ++i) acc += (b8ocnts[i] && b8ocnts[i][1] || 0); buf.write_shift(4, acc);\n\t\t\tbuf.write_shift(4, b8ocnts.length);\n\t\t}\n\t\t/* 2.2.46 OfficeArtIDCL + */\n\t\tb8ocnts.forEach(function(b8) {\n\t\t\tbuf.write_shift(4, b8[0]);\n\t\t\tbuf.write_shift(4, b8[2]);\n\t\t});\n\t}\n\t/* 2.2.9 OfficeArtFOPT */\n\t{\n\t\tbuf.write_shift(2, 0x33); // 0x03 | (3 << 4)\n\t\tbuf.write_shift(2, 0xF00B);\n\t\tbuf.write_shift(4, 0x12); // 3 * 6\n\t\t/* 2.3.21.15 Text Boolean Properties */\n\t\tbuf.write_shift(2, 0xBF); buf.write_shift(4, 0x00080008);\n\t\t/* 2.3.7.2 fillColor */\n\t\tbuf.write_shift(2, 0x0181); buf.write_shift(4, 0x08000041);\n\t\t/* 2.3.8.1 lineColor */\n\t\tbuf.write_shift(2, 0x01C0); buf.write_shift(4, 0x08000040);\n\t}\n\t/* 2.2.45 OfficeArtSplitMenuColorContainer */\n\t{\n\t\tbuf.write_shift(2, 0x40);\n\t\tbuf.write_shift(2, 0xF11E);\n\t\tbuf.write_shift(4, 16);\n\t\tbuf.write_shift(4, 0x0800000D);\n\t\tbuf.write_shift(4, 0x0800000C);\n\t\tbuf.write_shift(4, 0x08000017);\n\t\tbuf.write_shift(4, 0x100000F7);\n\t}\n\treturn buf;\n}\nfunction write_comments_biff8(ba/*:BufArray*/, comments/*:Array<[Comment[], number, number]>*/) {\n\tvar notes/*:Array*/ = [], sz = 0, pl = buf_array(), baseid = b8oid;\n\tvar _oasc;\n\tcomments.forEach(function(c, ci) {\n\t\tvar author = \"\";\n\t\tvar text = c[0].map(function(t) { if(t.a && !author) author = t.a; return t.t; }).join(\"\");\n\t\t++b8oid;\n\n\t\t/* 2.2.14 OfficeArtSpContainer */\n\t\t{\n\t\t\tvar oasc = new_buf(0x96);\n\t\t\toasc.write_shift(2, 0x0F);\n\t\t\toasc.write_shift(2, 0xF004);\n\t\t\toasc.write_shift(4, 0x96);\n\t\t\t/* 2.2.40 OfficeArtFSP */\n\t\t\t{\n\t\t\t\toasc.write_shift(2, 0xca2); // 0x02 | (0xca << 4)\n\t\t\t\toasc.write_shift(2, 0xF00A);\n\t\t\t\toasc.write_shift(4, 8);\n\t\t\t\toasc.write_shift(4, b8oid);\n\t\t\t\toasc.write_shift(4, 0xA00);\n\t\t\t}\n\t\t\t/* 2.2.9 OfficeArtFOPT */\n\t\t\t{\n\t\t\t\toasc.write_shift(2, 0xE3); // 0x03 | (14 << 4)\n\t\t\t\toasc.write_shift(2, 0xF00B);\n\t\t\t\toasc.write_shift(4, 0x54); // 14 * 6\n\t\t\t\t/* 2.3.21.1 ITxid */\n\t\t\t\toasc.write_shift(2, 0x80); oasc.write_shift(4, 0);\n\t\t\t\t/* 2.3.21.12 txdir */\n\t\t\t\toasc.write_shift(2, 0x8B); oasc.write_shift(4, 0x02);\n\t\t\t\t/* 2.3.21.15 Text Boolean Properties */\n\t\t\t\toasc.write_shift(2, 0xBF); oasc.write_shift(4, 0x00080008);\n\t\t\t\t/* 2.3.6.30 cxk */\n\t\t\t\toasc.write_shift(2, 0x0158); oasc.l += 4;\n\t\t\t\t/* 2.3.7.2 fillColor */\n\t\t\t\toasc.write_shift(2, 0x0181); oasc.write_shift(4, 0x08000050);\n\t\t\t\t/* 2.3.7.4 fillBackColor */\n\t\t\t\toasc.write_shift(2, 0x0183); oasc.write_shift(4, 0x08000050);\n\t\t\t\t/* 2.3.7.6 fillCrMod */\n\t\t\t\toasc.write_shift(2, 0x0185); oasc.write_shift(4, 0x100000F4);\n\t\t\t\t/* 2.3.7.43 Fill Style Boolean Properties */\n\t\t\t\toasc.write_shift(2, 0x01BF); oasc.write_shift(4, 0x00100010);\n\t\t\t\t/* 2.3.8.1 lineColor */\n\t\t\t\toasc.write_shift(2, 0x01C0); oasc.write_shift(4, 0x08000051);\n\t\t\t\t/* 2.3.8.4 lineCrMod */\n\t\t\t\toasc.write_shift(2, 0x01C3); oasc.write_shift(4, 0x100000F4);\n\t\t\t\t/* 2.3.13.2 shadowColor */\n\t\t\t\toasc.write_shift(2, 0x0201); oasc.write_shift(4, 0x08000051);\n\t\t\t\t/* 2.3.13.4 shadowCrMod */\n\t\t\t\toasc.write_shift(2, 0x0203); oasc.write_shift(4, 0x100000F4);\n\t\t\t\t/* 2.3.13.23 Shadow Style Boolean Properties */\n\t\t\t\toasc.write_shift(2, 0x023F); oasc.write_shift(4, 0x00030001);\n\t\t\t\t/* 2.3.4.44 Group Shape Boolean Properties */\n\t\t\t\toasc.write_shift(2, 0x03BF); oasc.write_shift(4, 0x00020000 | (c[0].hidden ? 2 : 0));\n\t\t\t}\n\t\t\t/* [MS-XLS] 2.5.193 OfficeArtClientAnchorSheet */\n\t\t\t{\n\t\t\t\toasc.l += 2;\n\t\t\t\toasc.write_shift(2, 0xF010);\n\t\t\t\toasc.write_shift(4, 0x12);\n\t\t\t\toasc.write_shift(2, 0x3); // do not move or size with cells\n\t\t\t\toasc.write_shift(2, c[2] + 2); oasc.l += 2;\n\t\t\t\toasc.write_shift(2, c[1] + 1); oasc.l += 2;\n\t\t\t\toasc.write_shift(2, c[2] + 4); oasc.l += 2;\n\t\t\t\toasc.write_shift(2, c[1] + 5); oasc.l += 2;\n\t\t\t}\n\t\t\t/* [MS-XLS] 2.5.194 OfficeArtClientData */\n\t\t\t{\n\t\t\t\toasc.l += 2;\n\t\t\t\toasc.write_shift(2, 0xF011);\n\t\t\t\toasc.l += 4;\n\t\t\t}\n\t\t\toasc.l = 0x96;\n\t\t\tif(ci == 0) /* write_biff_rec(pl, 0x003C, oasc); */ _oasc = oasc;\n\t\t\telse write_biff_rec(pl, 0x00EC, oasc);\n\t\t}\n\t\tsz += 0x96;\n\n\t\t/* [MS-XLS] 2.4.181 Obj */\n\t\t{\n\t\t\tvar obj = new_buf(52); // 22 + 26 + 4\n\t\t\t/* [MS-XLS] 2.5.143 FtCmo */\n\t\t\tobj.write_shift(2, 0x15);\n\t\t\tobj.write_shift(2, 0x12);\n\t\t\tobj.write_shift(2, 0x19);\n\t\t\tobj.write_shift(2, b8oid);\n\t\t\tobj.write_shift(2, 0);\n\t\t\tobj.l = 22;\n\t\t\t/* [MS-XLS] 2.5.149 FtNts */\n\t\t\tobj.write_shift(2, 0x0D);\n\t\t\tobj.write_shift(2, 0x16);\n\t\t\tobj.write_shift(4, 0x62726272);\n\t\t\tobj.write_shift(4, 0x95374305);\n\t\t\tobj.write_shift(4, 0x80301328);\n\t\t\tobj.write_shift(4, 0x69696904 + b8oid*256);\n\t\t\tobj.write_shift(2,0);\n\t\t\tobj.write_shift(4,0);\n\t\t\t// reserved\n\t\t\tobj.l += 4;\n\t\t\twrite_biff_rec(pl, 0x005D, obj);\n\t\t}\n\n\t\t/* [MS-XLS] 2.5.195 OfficeArtClientTextbox */\n\t\t{\n\t\t\tvar oact = new_buf(8);\n\t\t\toact.l += 2;\n\t\t\toact.write_shift(2, 0xF00D);\n\t\t\toact.l += 4;\n\t\t\twrite_biff_rec(pl, 0x00EC, oact);\n\t\t}\n\t\tsz += 8;\n\n\t\t/* [MS-XLS] 2.4.329 TxO */\n\t\t{\n\t\t\tvar txo = new_buf(18);\n\t\t\ttxo.write_shift(2, 0x12);\n\t\t\ttxo.l += 8;\n\t\t\ttxo.write_shift(2, text.length);\n\t\t\ttxo.write_shift(2, 0x10);\n\t\t\ttxo.l += 4;\n\t\t\twrite_biff_rec(pl, 0x01b6, txo);\n\t\t\t/* text continue record TODO: switch to wide strings */\n\t\t\t{\n\t\t\t\tvar cont = new_buf(1 + text.length);\n\t\t\t\tcont.write_shift(1, 0);\n\t\t\t\tcont.write_shift(text.length, text, \"sbcs\");\n\t\t\t\twrite_biff_rec(pl, 0x003C, cont);\n\t\t\t}\n\t\t\t/* formatting continue records */\n\t\t\t{\n\t\t\t\tvar conf = new_buf(0x10);\n\t\t\t\tconf.l += 8;\n\t\t\t\tconf.write_shift(2, text.length);\n\t\t\t\tconf.l += 6;\n\t\t\t\twrite_biff_rec(pl, 0x003C, conf);\n\t\t\t}\n\t\t}\n\n\t\t/* 2.4.179 Note */\n\t\t{\n\t\t\tvar notesh = new_buf(12 + author.length);\n\t\t\tnotesh.write_shift(2, c[1]);\n\t\t\tnotesh.write_shift(2, c[2]);\n\t\t\tnotesh.write_shift(2, 0 | (c[0].hidden ? 0 : 2));\n\t\t\tnotesh.write_shift(2, b8oid);\n\t\t\tnotesh.write_shift(2, author.length);\n\t\t\tnotesh.write_shift(1, 0);\n\t\t\tnotesh.write_shift(author.length, author, \"sbcs\");\n\t\t\tnotesh.l ++;\n\t\t\tnotes.push(notesh);\n\t\t}\n\t});\n\t/* [MS-ODRAW] 2.2.13 OfficeArtDgContainer */\n\t{\n\t\tvar hdr = new_buf(80);\n\t\thdr.write_shift(2, 0x0F);\n\t\thdr.write_shift(2, 0xF002);\n\t\thdr.write_shift(4, sz + hdr.length - 8);\n\t\t/* [MS-ODRAW] 2.2.49 OfficeArtFDG */\n\t\t{\n\t\t\thdr.write_shift(2, 0x10);\n\t\t\thdr.write_shift(2, 0xF008);\n\t\t\thdr.write_shift(4, 0x08);\n\t\t\thdr.write_shift(4, comments.length + 1);\n\t\t\thdr.write_shift(4, b8oid);\n\t\t}\n\t\t/* [MS-ODRAW] 2.2.16 OfficeArtSpgrContainer */\n\t\t{\n\t\t\thdr.write_shift(2, 0x0f);\n\t\t\thdr.write_shift(2, 0xF003);\n\t\t\thdr.write_shift(4, sz + 0x30);\n\t\t\t/* [MS-ODRAW] 2.2.14 OfficeArtSpContainer */\n\t\t\t{\n\t\t\t\thdr.write_shift(2, 0x0f);\n\t\t\t\thdr.write_shift(2, 0xF004);\n\t\t\t\thdr.write_shift(4, 0x28);\n\t\t\t\t/* [MS-ODRAW] 2.2.38 OfficeArtFSPGR */\n\t\t\t\t{\n\t\t\t\t\thdr.write_shift(2, 0x01);\n\t\t\t\t\thdr.write_shift(2, 0xF009);\n\t\t\t\t\thdr.write_shift(4, 0x10);\n\t\t\t\t\thdr.l += 16;\n\t\t\t\t}\n\t\t\t\t/* [MS-ODRAW] 2.2.40 OfficeArtFSP */\n\t\t\t\t{\n\t\t\t\t\thdr.write_shift(2, 0x02);\n\t\t\t\t\thdr.write_shift(2, 0xF00A);\n\t\t\t\t\thdr.write_shift(4, 0x08);\n\t\t\t\t\thdr.write_shift(4, baseid);\n\t\t\t\t\thdr.write_shift(4, 0x05);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\twrite_biff_rec(ba, 0x00EC, /* hdr */ _oasc ? bconcat([hdr, _oasc]) : hdr);\n\t}\n\tba.push(pl.end());\n\tnotes.forEach(function(n) { write_biff_rec(ba, 0x001C, n); });\n\tb8ocnts.push([baseid, comments.length + 1, b8oid]);\n\t++b8oid;\n}\n\nfunction write_FONTS_biff8(ba, data, opts) {\n\twrite_biff_rec(ba, 0x0031 /* Font */, write_Font({\n\t\tsz:12,\n\t\tcolor: {theme:1},\n\t\tname: \"Arial\",\n\t\tfamily: 2,\n\t\tscheme: \"minor\"\n\t}, opts));\n}\n\n\nfunction write_FMTS_biff8(ba, NF/*:?SSFTable*/, opts) {\n\tif(!NF) return;\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\t/*:: if(!NF) return; */\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) write_biff_rec(ba, 0x041E /* Format */, write_Format(i, NF[i], opts));\n\t});\n}\n\nfunction write_FEAT(ba, ws) {\n\t/* [MS-XLS] 2.4.112 */\n\tvar o = new_buf(19);\n\to.write_shift(4, 0x867); o.write_shift(4, 0); o.write_shift(4, 0);\n\to.write_shift(2, 3); o.write_shift(1, 1); o.write_shift(4, 0);\n\twrite_biff_rec(ba, 0x0867 /* FeatHdr */, o);\n\t/* [MS-XLS] 2.4.111 */\n\to = new_buf(39);\n\to.write_shift(4, 0x868); o.write_shift(4, 0); o.write_shift(4, 0);\n\to.write_shift(2, 3); o.write_shift(1, 0); o.write_shift(4, 0);\n\to.write_shift(2, 1); o.write_shift(4, 4); o.write_shift(2, 0);\n\twrite_Ref8U(safe_decode_range(ws['!ref']||\"A1\"), o);\n\to.write_shift(4, 4);\n\twrite_biff_rec(ba, 0x0868 /* Feat */, o);\n}\n\nfunction write_CELLXFS_biff8(ba, opts) {\n\tfor(var i = 0; i < 16; ++i) write_biff_rec(ba, 0x00e0 /* XF */, write_XF({numFmtId:0, style:true}, 0, opts));\n\topts.cellXfs.forEach(function(c) {\n\t\twrite_biff_rec(ba, 0x00e0 /* XF */, write_XF(c, 0, opts));\n\t});\n}\n\nfunction write_ws_biff8_hlinks(ba/*:BufArray*/, ws) {\n\tfor(var R=0; R*/ = [];\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\");\n\tvar MAX_ROWS = b8 ? 65536 : 16384;\n\tif(range.e.c > 0xFF || range.e.r >= MAX_ROWS) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, MAX_ROWS-1);\n\t}\n\n\twrite_biff_rec(ba, 0x0809, write_BOF(wb, 0x10, opts));\n\t/* [Uncalced] Index */\n\twrite_biff_rec(ba, 0x000d /* CalcMode */, writeuint16(1));\n\twrite_biff_rec(ba, 0x000c /* CalcCount */, writeuint16(100));\n\twrite_biff_rec(ba, 0x000f /* CalcRefMode */, writebool(true));\n\twrite_biff_rec(ba, 0x0011 /* CalcIter */, writebool(false));\n\twrite_biff_rec(ba, 0x0010 /* CalcDelta */, write_Xnum(0.001));\n\twrite_biff_rec(ba, 0x005f /* CalcSaveRecalc */, writebool(true));\n\twrite_biff_rec(ba, 0x002a /* PrintRowCol */, writebool(false));\n\twrite_biff_rec(ba, 0x002b /* PrintGrid */, writebool(false));\n\twrite_biff_rec(ba, 0x0082 /* GridSet */, writeuint16(1));\n\twrite_biff_rec(ba, 0x0080 /* Guts */, write_Guts([0,0]));\n\t/* DefaultRowHeight WsBool [Sync] [LPr] [HorizontalPageBreaks] [VerticalPageBreaks] */\n\t/* Header (string) */\n\t/* Footer (string) */\n\twrite_biff_rec(ba, 0x0083 /* HCenter */, writebool(false));\n\twrite_biff_rec(ba, 0x0084 /* VCenter */, writebool(false));\n\t/* ... */\n\tif(b8) write_ws_cols_biff8(ba, ws[\"!cols\"]);\n\t/* ... */\n\twrite_biff_rec(ba, 0x0200 /* Dimensions */, write_Dimensions(range, opts));\n\t/* ... */\n\n\tvar date1904 = (((wb||{}).Workbook||{}).WBProps||{}).date1904;\n\tif(b8) ws['!links'] = [];\n\tvar comments = [];\n\tvar row = [];\n\tfor(var C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\tif(dense) row = ws[\"!data\"][R] || [];\n\t\trr = encode_row(R);\n\t\tfor(C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? row[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff8_cell(ba, cell, R, C, opts, date1904);\n\t\t\tif(b8 && cell.l) ws['!links'].push([ref, cell.l]);\n\t\t\tif(cell.c) comments.push([cell.c, R, C]);\n\t\t}\n\t}\n\tvar cname/*:string*/ = _sheet.CodeName || _sheet.name || s;\n\t/* ... */\n\tif(b8) write_comments_biff8(ba, comments); else write_comments_biff2(ba, comments);\n\t/* ... */\n\tif(b8) write_biff_rec(ba, 0x023e /* Window2 */, write_Window2((_WB.Views||[])[0]));\n\t/* ... */\n\tif(b8 && (ws['!merges']||[]).length) write_biff_rec(ba, 0x00e5 /* MergeCells */, write_MergeCells(ws['!merges']));\n\t/* [LRng] *QUERYTABLE [PHONETICINFO] CONDFMTS */\n\tif(b8) write_ws_biff8_hlinks(ba, ws);\n\t/* [DVAL] */\n\twrite_biff_rec(ba, 0x01ba /* CodeName */, write_XLUnicodeString(cname, opts));\n\t/* *WebPub *CellWatch [SheetExt] */\n\tif(b8) write_FEAT(ba, ws);\n\t/* *FEAT11 *RECORD12 */\n\twrite_biff_rec(ba, 0x000a /* EOF */);\n\treturn ba.end();\n}\n\n/* [MS-XLS] 2.1.7.20.3 */\nfunction write_biff8_global(wb/*:Workbook*/, bufs, opts/*:WriteOpts*/) {\n\tvar A = buf_array();\n\tvar _WB/*:WBWBProps*/ = ((wb||{}).Workbook||{}/*:any*/);\n\tvar _sheets/*:Array*/ = (_WB.Sheets||[]);\n\tvar _wb/*:WBProps*/ = /*::((*/_WB.WBProps||{/*::CodeName:\"ThisWorkbook\"*/}/*:: ):any)*/;\n\tvar b8 = opts.biff == 8, b5 = opts.biff == 5;\n\twrite_biff_rec(A, 0x0809, write_BOF(wb, 0x05, opts));\n\tif(opts.bookType == \"xla\") write_biff_rec(A, 0x0087 /* Addin */);\n\twrite_biff_rec(A, 0x00e1 /* InterfaceHdr */, b8 ? writeuint16(0x04b0) : null);\n\twrite_biff_rec(A, 0x00c1 /* Mms */, writezeroes(2));\n\tif(b5) write_biff_rec(A, 0x00bf /* ToolbarHdr */);\n\tif(b5) write_biff_rec(A, 0x00c0 /* ToolbarEnd */);\n\twrite_biff_rec(A, 0x00e2 /* InterfaceEnd */);\n\twrite_biff_rec(A, 0x005c /* WriteAccess */, write_WriteAccess(\"SheetJS\", opts));\n\t/* [FileSharing] */\n\twrite_biff_rec(A, 0x0042 /* CodePage */, writeuint16(b8 ? 0x04b0 : 0x04E4));\n\t/* *2047 Lel */\n\tif(b8) write_biff_rec(A, 0x0161 /* DSF */, writeuint16(0));\n\tif(b8) write_biff_rec(A, 0x01c0 /* Excel9File */);\n\twrite_biff_rec(A, 0x013d /* RRTabId */, write_RRTabId(wb.SheetNames.length));\n\tif(b8 && wb.vbaraw) write_biff_rec(A, 0x00d3 /* ObProj */);\n\t/* [ObNoMacros] */\n\tif(b8 && wb.vbaraw) {\n\t\tvar cname/*:string*/ = _wb.CodeName || \"ThisWorkbook\";\n\t\twrite_biff_rec(A, 0x01ba /* CodeName */, write_XLUnicodeString(cname, opts));\n\t}\n\twrite_biff_rec(A, 0x009c /* BuiltInFnGroupCount */, writeuint16(0x11));\n\t/* *FnGroupName *FnGrp12 */\n\t/* *Lbl */\n\t/* [OleObjectSize] */\n\twrite_biff_rec(A, 0x0019 /* WinProtect */, writebool(false));\n\twrite_biff_rec(A, 0x0012 /* Protect */, writebool(false));\n\twrite_biff_rec(A, 0x0013 /* Password */, writeuint16(0));\n\tif(b8) write_biff_rec(A, 0x01af /* Prot4Rev */, writebool(false));\n\tif(b8) write_biff_rec(A, 0x01bc /* Prot4RevPass */, writeuint16(0));\n\twrite_biff_rec(A, 0x003d /* Window1 */, write_Window1(opts));\n\twrite_biff_rec(A, 0x0040 /* Backup */, writebool(false));\n\twrite_biff_rec(A, 0x008d /* HideObj */, writeuint16(0));\n\twrite_biff_rec(A, 0x0022 /* Date1904 */, writebool(safe1904(wb)==\"true\"));\n\twrite_biff_rec(A, 0x000e /* CalcPrecision */, writebool(true));\n\tif(b8) write_biff_rec(A, 0x01b7 /* RefreshAll */, writebool(false));\n\twrite_biff_rec(A, 0x00DA /* BookBool */, writeuint16(0));\n\t/* ... */\n\twrite_FONTS_biff8(A, wb, opts);\n\twrite_FMTS_biff8(A, wb.SSF, opts);\n\twrite_CELLXFS_biff8(A, opts);\n\t/* ... */\n\tif(b8) write_biff_rec(A, 0x0160 /* UsesELFs */, writebool(false));\n\tvar a = A.end();\n\n\tvar C = buf_array();\n\t/* METADATA [MTRSettings] [ForceFullCalculation] */\n\tif(b8) write_biff_rec(C, 0x008C /* Country */, write_Country());\n\t/* *SUPBOOK *LBL *RTD [RecalcId] *HFPicture */\n\n\t/* BIFF8: MsoDrawingGroup [*Continue] */\n\tif(b8 && b8ocnts.length) write_biff_rec(C, 0x00EB /* MsoDrawingGroup */, write_MsoDrawingGroup());\n\t/* BIFF8: [SST *Continue] ExtSST */\n\tif(b8 && opts.Strings) write_biff_continue(C, 0x00FC /* SST */, write_SST(opts.Strings, opts));\n\n\t/* *WebPub [WOpt] [CrErr] [BookExt] *FeatHdr *DConn [THEME] [CompressPictures] [Compat12] [GUIDTypeLib] */\n\twrite_biff_rec(C, 0x000A /* EOF */);\n\tvar c = C.end();\n\n\tvar B = buf_array();\n\tvar blen = 0, j = 0;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) blen += (b8 ? 12 : 11) + (b8 ? 2 : 1) * wb.SheetNames[j].length;\n\tvar start = a.length + blen + c.length;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) {\n\t\tvar _sheet/*:WBWSProp*/ = _sheets[j] || ({}/*:any*/);\n\t\twrite_biff_rec(B, 0x0085 /* BoundSheet8 */, write_BoundSheet8({pos:start, hs:_sheet.Hidden||0, dt:0, name:wb.SheetNames[j]}, opts));\n\t\tstart += bufs[j].length;\n\t}\n\t/* 1*BoundSheet8 */\n\tvar b = B.end();\n\tif(blen != b.length) throw new Error(\"BS8 \" + blen + \" != \" + b.length);\n\n\tvar out = [];\n\tif(a.length) out.push(a);\n\tif(b.length) out.push(b);\n\tif(c.length) out.push(c);\n\treturn bconcat(out);\n}\n\n/* [MS-XLS] 2.1.7.20 Workbook Stream */\nfunction write_biff8_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tvar o = opts || {};\n\tvar bufs = [];\n\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = dup(table_fmt);\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\to.revssf = evert_num(wb.SSF); o.revssf[wb.SSF[65535]] = 0;\n\t\to.ssf = wb.SSF;\n\t}\n\n\tb8oid = 1; b8ocnts = [];\n\to.Strings = /*::((*/[]/*:: :any):SST)*/; o.Strings.Count = 0; o.Strings.Unique = 0;\n\tfix_write_opts(o);\n\n\to.cellXfs = [];\n\tget_cell_style(o.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) bufs[bufs.length] = write_ws_biff8(i, o, wb);\n\tbufs.unshift(write_biff8_global(wb, bufs, o));\n\treturn bconcat(bufs);\n}\n\nfunction write_biff_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tfor(var i = 0; i <= wb.SheetNames.length; ++i) {\n\t\tvar ws = wb.Sheets[wb.SheetNames[i]];\n\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\tvar range = decode_range(ws[\"!ref\"]);\n\t\tif(range.e.c > 255) { // note: 255 is IV\n\t\t\tif(typeof console != \"undefined\" && console.error) console.error(\"Worksheet '\" + wb.SheetNames[i] + \"' extends beyond column IV (255). Data may be lost.\");\n\t\t}\n\t}\n\n\tvar o = opts || {};\n\tswitch(o.biff || 2) {\n\t\tcase 8: case 5: return write_biff8_buf(wb, opts);\n\t\tcase 4: case 3: case 2: return write_biff2_buf(wb, opts);\n\t}\n\tthrow new Error(\"invalid type \" + o.bookType + \" for BIFF\");\n}\n/* note: browser DOM element cannot see mso- style attrs, must parse */\nfunction html_to_sheet(str/*:string*/, _opts)/*:Workbook*/ {\n\tvar opts = _opts || {};\n\tvar dense = (opts.dense != null) ? opts.dense : DENSE;\n\tvar ws/*:Worksheet*/ = ({}/*:any*/); if(dense) ws[\"!data\"] = [];\n\tstr = str.replace(//g, \"\");\n\tvar mtch/*:any*/ = str.match(/\");\n\tvar mtch2/*:any*/ = str.match(/<\\/table/i);\n\tvar i/*:number*/ = mtch.index, j/*:number*/ = mtch2 && mtch2.index || str.length;\n\tvar rows = split_regex(str.slice(i, j), /(:?]*>)/i, \"\");\n\tvar R = -1, C = 0, RS = 0, CS = 0;\n\tvar range/*:Range*/ = {s:{r:10000000, c:10000000},e:{r:0,c:0}};\n\tvar merges/*:Array*/ = [];\n\tfor(i = 0; i < rows.length; ++i) {\n\t\tvar row = rows[i].trim();\n\t\tvar hd = row.slice(0,3).toLowerCase();\n\t\tif(hd == \"/i);\n\t\tfor(j = 0; j < cells.length; ++j) {\n\t\t\tvar cell = cells[j].trim();\n\t\t\tif(!cell.match(/\")) > -1) m = m.slice(cc+1);\n\t\t\tfor(var midx = 0; midx < merges.length; ++midx) {\n\t\t\t\tvar _merge/*:Range*/ = merges[midx];\n\t\t\t\tif(_merge.s.c == C && _merge.s.r < R && R <= _merge.e.r) { C = _merge.e.c + 1; midx = -1; }\n\t\t\t}\n\t\t\tvar tag = parsexmltag(cell.slice(0, cell.indexOf(\">\")));\n\t\t\tCS = tag.colspan ? +tag.colspan : 1;\n\t\t\tif((RS = +tag.rowspan)>1 || CS>1) merges.push({s:{r:R,c:C},e:{r:R + (RS||1) - 1, c:C + CS - 1}});\n\t\t\tvar _t/*:string*/ = tag.t || tag[\"data-t\"] || \"\";\n\t\t\t/* TODO: generate stub cells */\n\t\t\tif(!m.length) { C += CS; continue; }\n\t\t\tm = htmldecode(m);\n\t\t\tif(range.s.r > R) range.s.r = R; if(range.e.r < R) range.e.r = R;\n\t\t\tif(range.s.c > C) range.s.c = C; if(range.e.c < C) range.e.c = C;\n\t\t\tif(!m.length) { C += CS; continue; }\n\t\t\tvar o/*:Cell*/ = {t:'s', v:m};\n\t\t\tif(opts.raw || !m.trim().length || _t == 's'){}\n\t\t\telse if(m === 'TRUE') o = {t:'b', v:true};\n\t\t\telse if(m === 'FALSE') o = {t:'b', v:false};\n\t\t\telse if(!isNaN(fuzzynum(m))) o = {t:'n', v:fuzzynum(m)};\n\t\t\telse if(!isNaN(fuzzydate(m).getDate())) {\n\t\t\t\to = ({t:'d', v:parseDate(m)}/*:any*/);\n\t\t\t\tif(opts.UTC === false) o.v = utc_to_local(o.v);\n\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)}/*:any*/);\n\t\t\t\to.z = opts.dateNF || table_fmt[14];\n\t\t\t}\n\t\t\tif(o.cellText !== false) o.w = m;\n\t\t\tif(dense) { if(!ws[\"!data\"][R]) ws[\"!data\"][R] = []; ws[\"!data\"][R][C] = o; }\n\t\t\telse ws[encode_cell({r:R, c:C})] = o;\n\t\t\tC += CS;\n\t\t}\n\t}\n\tws['!ref'] = encode_range(range);\n\tif(merges.length) ws[\"!merges\"] = merges;\n\treturn ws;\n}\nfunction make_html_row(ws/*:Worksheet*/, r/*:Range*/, R/*:number*/, o/*:Sheet2HTMLOpts*/)/*:string*/ {\n\tvar M/*:Array*/ = (ws['!merges'] ||[]);\n\tvar oo/*:Array*/ = [];\n\tvar sp = ({}/*:any*/);\n\tvar dense = ws[\"!data\"] != null;\n\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\tvar RS = 0, CS = 0;\n\t\tfor(var j = 0; j < M.length; ++j) {\n\t\t\tif(M[j].s.r > R || M[j].s.c > C) continue;\n\t\t\tif(M[j].e.r < R || M[j].e.c < C) continue;\n\t\t\tif(M[j].s.r < R || M[j].s.c < C) { RS = -1; break; }\n\t\t\tRS = M[j].e.r - M[j].s.r + 1; CS = M[j].e.c - M[j].s.c + 1; break;\n\t\t}\n\t\tif(RS < 0) continue;\n\t\tvar coord = encode_col(C) + encode_row(R);\n\t\tvar cell = dense ? (ws[\"!data\"][R]||[])[C] : ws[coord];\n\t\t/* TODO: html entities */\n\t\tvar w = (cell && cell.v != null) && (cell.h || escapehtml(cell.w || (format_cell(cell), cell.w) || \"\")) || \"\";\n\t\tsp = ({}/*:any*/);\n\t\tif(RS > 1) sp.rowspan = RS;\n\t\tif(CS > 1) sp.colspan = CS;\n\t\tif(o.editable) w = '' + w + '';\n\t\telse if(cell) {\n\t\t\tsp[\"data-t\"] = cell && cell.t || 'z';\n\t\t\t// note: data-v is unaffected by the timezone interpretation\n\t\t\tif(cell.v != null) sp[\"data-v\"] = cell.v instanceof Date ? cell.v.toISOString() : cell.v;\n\t\t\tif(cell.z != null) sp[\"data-z\"] = cell.z;\n\t\t\tif(cell.l && (cell.l.Target || \"#\").charAt(0) != \"#\") w = '' + w + '';\n\t\t}\n\t\tsp.id = (o.id || \"sjs\") + \"-\" + coord;\n\t\too.push(writextag('td', w, sp));\n\t}\n\tvar preamble = \"\";\n\treturn preamble + oo.join(\"\") + \"\";\n}\n\nvar HTML_BEGIN = 'SheetJS Table Export';\nvar HTML_END = '';\n\nfunction html_to_workbook(str/*:string*/, opts)/*:Workbook*/ {\n\tvar mtch = str.match(/[\\s\\S]*?<\\/table>/gi);\n\tif(!mtch || mtch.length == 0) throw new Error(\"Invalid HTML: could not find
\");\n\tif(mtch.length == 1) {\n\t\tvar w = sheet_to_workbook(html_to_sheet(mtch[0], opts), opts);\n\t\tw.bookType = \"html\";\n\t\treturn w;\n\t}\n\tvar wb = book_new();\n\tmtch.forEach(function(s, idx) { book_append_sheet(wb, html_to_sheet(s, opts), \"Sheet\" + (idx+1)); });\n\twb.bookType = \"html\";\n\treturn wb;\n}\n\nfunction make_html_preamble(ws/*:Worksheet*/, R/*:Range*/, o/*:Sheet2HTMLOpts*/)/*:string*/ {\n\tvar out/*:Array*/ = [];\n\treturn out.join(\"\") + '';\n}\n\nfunction sheet_to_html(ws/*:Worksheet*/, opts/*:?Sheet2HTMLOpts*//*, wb:?Workbook*/)/*:string*/ {\n\tvar o = opts || {};\n\tvar header = o.header != null ? o.header : HTML_BEGIN;\n\tvar footer = o.footer != null ? o.footer : HTML_END;\n\tvar out/*:Array*/ = [header];\n\tvar r = decode_range(ws['!ref']);\n\tout.push(make_html_preamble(ws, r, o));\n\tfor(var R = r.s.r; R <= r.e.r; ++R) out.push(make_html_row(ws, r, R, o));\n\tout.push(\"
\" + footer);\n\treturn out.join(\"\");\n}\n\nfunction sheet_add_dom(ws/*:Worksheet*/, table/*:HTMLElement*/, _opts/*:?any*/)/*:Worksheet*/ {\n\tvar rows/*:HTMLCollection*/ = table.rows;\n\tif(!rows) {\n\t\t/* not an HTML TABLE */\n\t\tthrow \"Unsupported origin when \" + table.tagName + \" is not a TABLE\";\n\t}\n\n\tvar opts = _opts || {};\n\tvar dense = ws[\"!data\"] != null;\n\tvar or_R = 0, or_C = 0;\n\tif(opts.origin != null) {\n\t\tif(typeof opts.origin == 'number') or_R = opts.origin;\n\t\telse {\n\t\t\tvar _origin/*:CellAddress*/ = typeof opts.origin == \"string\" ? decode_cell(opts.origin) : opts.origin;\n\t\t\tor_R = _origin.r; or_C = _origin.c;\n\t\t}\n\t}\n\n\tvar sheetRows = Math.min(opts.sheetRows||10000000, rows.length);\n\tvar range/*:Range*/ = {s:{r:0,c:0},e:{r:or_R,c:or_C}};\n\tif(ws[\"!ref\"]) {\n\t\tvar _range/*:Range*/ = decode_range(ws[\"!ref\"]);\n\t\trange.s.r = Math.min(range.s.r, _range.s.r);\n\t\trange.s.c = Math.min(range.s.c, _range.s.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\tif(or_R == -1) range.e.r = or_R = _range.e.r + 1;\n\t}\n\tvar merges/*:Array*/ = [], midx = 0;\n\tvar rowinfo/*:Array*/ = ws[\"!rows\"] || (ws[\"!rows\"] = []);\n\tvar _R = 0, R = 0, _C = 0, C = 0, RS = 0, CS = 0;\n\tif(!ws[\"!cols\"]) ws['!cols'] = [];\n\tfor(; _R < rows.length && R < sheetRows; ++_R) {\n\t\tvar row/*:HTMLTableRowElement*/ = rows[_R];\n\t\tif (is_dom_element_hidden(row)) {\n\t\t\tif (opts.display) continue;\n\t\t\trowinfo[R] = {hidden: true};\n\t\t}\n\t\tvar elts/*:HTMLCollection*/ = (row.cells);\n\t\tfor(_C = C = 0; _C < elts.length; ++_C) {\n\t\t\tvar elt/*:HTMLTableCellElement*/ = elts[_C];\n\t\t\tif (opts.display && is_dom_element_hidden(elt)) continue;\n\t\t\tvar v/*:?string*/ = elt.hasAttribute('data-v') ? elt.getAttribute('data-v') : elt.hasAttribute('v') ? elt.getAttribute('v') : htmldecode(elt.innerHTML);\n\t\t\tvar z/*:?string*/ = elt.getAttribute('data-z') || elt.getAttribute('z');\n\t\t\tfor(midx = 0; midx < merges.length; ++midx) {\n\t\t\t\tvar m/*:Range*/ = merges[midx];\n\t\t\t\tif(m.s.c == C + or_C && m.s.r < R + or_R && R + or_R <= m.e.r) { C = m.e.c+1 - or_C; midx = -1; }\n\t\t\t}\n\t\t\t/* TODO: figure out how to extract nonstandard mso- style */\n\t\t\tCS = +elt.getAttribute(\"colspan\") || 1;\n\t\t\tif( ((RS = (+elt.getAttribute(\"rowspan\") || 1)))>1 || CS>1) merges.push({s:{r:R + or_R,c:C + or_C},e:{r:R + or_R + (RS||1) - 1, c:C + or_C + (CS||1) - 1}});\n\t\t\tvar o/*:Cell*/ = {t:'s', v:v};\n\t\t\tvar _t/*:string*/ = elt.getAttribute(\"data-t\") || elt.getAttribute(\"t\") || \"\";\n\t\t\tif(v != null) {\n\t\t\t\tif(v.length == 0) o.t = _t || 'z';\n\t\t\t\telse if(opts.raw || v.trim().length == 0 || _t == \"s\"){}\n\t\t\t\telse if(v === 'TRUE') o = {t:'b', v:true};\n\t\t\t\telse if(v === 'FALSE') o = {t:'b', v:false};\n\t\t\t\telse if(!isNaN(fuzzynum(v))) o = {t:'n', v:fuzzynum(v)};\n\t\t\t\telse if(!isNaN(fuzzydate(v).getDate())) {\n\t\t\t\t\to = ({t:'d', v:parseDate(v)}/*:any*/);\n\t\t\t\t\tif(opts.UTC) o.v = local_to_utc(o.v);\n\t\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)}/*:any*/);\n\t\t\t\t\to.z = opts.dateNF || table_fmt[14];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(o.z === undefined && z != null) o.z = z;\n\t\t\t/* The first link is used. Links are assumed to be fully specified.\n\t\t\t * TODO: The right way to process relative links is to make a new */\n\t\t\tvar l = \"\", Aelts = elt.getElementsByTagName(\"A\");\n\t\t\tif(Aelts && Aelts.length) for(var Aelti = 0; Aelti < Aelts.length; ++Aelti)\tif(Aelts[Aelti].hasAttribute(\"href\")) {\n\t\t\t\tl = Aelts[Aelti].getAttribute(\"href\"); if(l.charAt(0) != \"#\") break;\n\t\t\t}\n\t\t\tif(l && l.charAt(0) != \"#\" &&\tl.slice(0, 11).toLowerCase() != 'javascript:') o.l = ({ Target: l });\n\t\t\tif(dense) { if(!ws[\"!data\"][R + or_R]) ws[\"!data\"][R + or_R] = []; ws[\"!data\"][R + or_R][C + or_C] = o; }\n\t\t\telse ws[encode_cell({c:C + or_C, r:R + or_R})] = o;\n\t\t\tif(range.e.c < C + or_C) range.e.c = C + or_C;\n\t\t\tC += CS;\n\t\t}\n\t\t++R;\n\t}\n\tif(merges.length) ws['!merges'] = (ws[\"!merges\"] || []).concat(merges);\n\trange.e.r = Math.max(range.e.r, R - 1 + or_R);\n\tws['!ref'] = encode_range(range);\n\tif(R >= sheetRows) ws['!fullref'] = encode_range((range.e.r = rows.length-_R+R-1 + or_R,range)); // We can count the real number of rows to parse but we don't to improve the performance\n\treturn ws;\n}\n\nfunction parse_dom_table(table/*:HTMLElement*/, _opts/*:?any*/)/*:Worksheet*/ {\n\tvar opts = _opts || {};\n\tvar ws/*:Worksheet*/ = ({}/*:any*/); if(opts.dense) ws[\"!data\"] = [];\n\treturn sheet_add_dom(ws, table, _opts);\n}\n\nfunction table_to_book(table/*:HTMLElement*/, opts/*:?any*/)/*:Workbook*/ {\n\tvar o = sheet_to_workbook(parse_dom_table(table, opts), opts);\n\t//o.bookType = \"dom\"; // TODO: define a type for this\n\treturn o;\n}\n\nfunction is_dom_element_hidden(element/*:HTMLElement*/)/*:boolean*/ {\n\tvar display/*:string*/ = '';\n\tvar get_computed_style/*:?function*/ = get_get_computed_style_function(element);\n\tif(get_computed_style) display = get_computed_style(element).getPropertyValue('display');\n\tif(!display) display = element.style && element.style.display;\n\treturn display === 'none';\n}\n\n/* global getComputedStyle */\nfunction get_get_computed_style_function(element/*:HTMLElement*/)/*:?function*/ {\n\t// The proper getComputedStyle implementation is the one defined in the element window\n\tif(element.ownerDocument.defaultView && typeof element.ownerDocument.defaultView.getComputedStyle === 'function') return element.ownerDocument.defaultView.getComputedStyle;\n\t// If it is not available, try to get one from the global namespace\n\tif(typeof getComputedStyle === 'function') return getComputedStyle;\n\treturn null;\n}\n/* OpenDocument */\nfunction parse_text_p(text/*:string*//*::, tag*/)/*:Array*/ {\n\t/* 6.1.2 White Space Characters */\n\tvar fixed = text\n\t\t.replace(/[\\t\\r\\n]/g, \" \").trim().replace(/ +/g, \" \")\n\t\t.replace(//g,\" \")\n\t\t.replace(//g, function($$,$1) { return Array(parseInt($1,10)+1).join(\" \"); })\n\t\t.replace(/]*\\/>/g,\"\\t\")\n\t\t.replace(//g,\"\\n\");\n\tvar v = unescapexml(fixed.replace(/<[^>]*>/g,\"\"));\n\n\treturn [v];\n}\n\n/* Note: ODS can stick styles in content.xml or styles.xml, FODS blurs lines */\nfunction parse_ods_styles(d/*:string*/, _opts, _nfm) {\n\tvar number_format_map = _nfm || {};\n\tvar str = xlml_normalize(d);\n\txlmlregex.lastIndex = 0;\n\tstr = str.replace(//mg,\"\").replace(//gm,\"\");\n\tvar Rn, NFtag, NF = \"\", tNF = \"\", y, etpos = 0, tidx = -1, infmt = false, payload = \"\";\n\twhile((Rn = xlmlregex.exec(str))) {\n\t\tswitch((Rn[3]=Rn[3].replace(/_.*$/,\"\"))) {\n\t\t/* Number Format Definitions */\n\t\tcase 'number-style': // 16.29.2\n\t\tcase 'currency-style': // 16.29.8\n\t\tcase 'percentage-style': // 16.29.10\n\t\tcase 'date-style': // 16.29.11\n\t\tcase 'time-style': // 16.29.19\n\t\tcase 'text-style': // 16.29.26\n\t\t\tif(Rn[1]==='/') {\n\t\t\t\tinfmt = false;\n\t\t\t\tif(NFtag['truncate-on-overflow'] == \"false\") {\n\t\t\t\t\tif(NF.match(/h/)) NF = NF.replace(/h+/, \"[$&]\");\n\t\t\t\t\telse if(NF.match(/m/)) NF = NF.replace(/m+/, \"[$&]\");\n\t\t\t\t\telse if(NF.match(/s/)) NF = NF.replace(/s+/, \"[$&]\");\n\t\t\t\t}\n\t\t\t\tnumber_format_map[NFtag.name] = NF;\n\t\t\t\tNF = \"\";\n\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\tinfmt = true;\n\t\t\t\tNF = \"\";\n\t\t\t\tNFtag = parsexmltag(Rn[0], false);\n\t\t\t} break;\n\n\t\t// LibreOffice bug https://bugs.documentfoundation.org/show_bug.cgi?id=149484\n\t\tcase 'boolean-style': // 16.29.24\n\t\t\tif(Rn[1]==='/') {\n\t\t\t\tinfmt = false;\n\t\t\t\tnumber_format_map[NFtag.name] = \"General\";\n\t\t\t\tNF = \"\";\n\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\tinfmt = true;\n\t\t\t\tNF = \"\";\n\t\t\t\tNFtag = parsexmltag(Rn[0], false);\n\t\t\t} break;\n\n\t\t/* Number Format Elements */\n\t\tcase 'boolean': // 16.29.25\n\t\t\tNF += \"General\"; // ODF spec is unfortunately underspecified here\n\t\t\tbreak;\n\n\t\tcase 'text': // 16.29.27\n\t\t\tif(Rn[1]==='/') {\n\t\t\t\tpayload = str.slice(tidx, xlmlregex.lastIndex - Rn[0].length);\n\t\t\t\t// NOTE: Excel has a different interpretation of \"%%\" and friends\n\t\t\t\tif(payload == \"%\" && NFtag[0] == ' 16.29.12\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tswitch(y[\"style\"]) {\n\t\t\t\tcase \"short\": NF += \"d\"; break;\n\t\t\t\tcase \"long\": NF += \"dd\"; break;\n\t\t\t\tdefault: NF += \"dd\"; break; // TODO: error condition\n\t\t\t}\n\t\t} break;\n\n\t\tcase 'day-of-week': { // 16.29.16\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tswitch(y[\"style\"]) {\n\t\t\t\tcase \"short\": NF += \"ddd\"; break;\n\t\t\t\tcase \"long\": NF += \"dddd\"; break;\n\t\t\t\tdefault: NF += \"ddd\"; break;\n\t\t\t}\n\t\t} break;\n\n\t\tcase 'era': { // 16.29.15 TODO: proper mapping\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tswitch(y[\"style\"]) {\n\t\t\t\tcase \"short\": NF += \"ee\"; break;\n\t\t\t\tcase \"long\": NF += \"eeee\"; break;\n\t\t\t\tdefault: NF += \"eeee\"; break; // TODO: error condition\n\t\t\t}\n\t\t} break;\n\n\t\tcase 'hours': { // 16.29.20\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tswitch(y[\"style\"]) {\n\t\t\t\tcase \"short\": NF += \"h\"; break;\n\t\t\t\tcase \"long\": NF += \"hh\"; break;\n\t\t\t\tdefault: NF += \"hh\"; break; // TODO: error condition\n\t\t\t}\n\t\t} break;\n\n\t\tcase 'minutes': { // 16.29.21\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tswitch(y[\"style\"]) {\n\t\t\t\tcase \"short\": NF += \"m\"; break;\n\t\t\t\tcase \"long\": NF += \"mm\"; break;\n\t\t\t\tdefault: NF += \"mm\"; break; // TODO: error condition\n\t\t\t}\n\t\t} break;\n\n\t\tcase 'month': { // 16.29.13\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tif(y[\"textual\"]) NF += \"mm\";\n\t\t\tswitch(y[\"style\"]) {\n\t\t\t\tcase \"short\": NF += \"m\"; break;\n\t\t\t\tcase \"long\": NF += \"mm\"; break;\n\t\t\t\tdefault: NF += \"m\"; break;\n\t\t\t}\n\t\t} break;\n\n\t\tcase 'seconds': { // 16.29.22\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tswitch(y[\"style\"]) {\n\t\t\t\tcase \"short\": NF += \"s\"; break;\n\t\t\t\tcase \"long\": NF += \"ss\"; break;\n\t\t\t\tdefault: NF += \"ss\"; break; // TODO: error condition\n\t\t\t}\n\t\t\tif(y[\"decimal-places\"]) NF += \".\" + fill(\"0\", +y[\"decimal-places\"]);\n\t\t} break;\n\n\t\tcase 'year': { // 16.29.14\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tswitch(y[\"style\"]) {\n\t\t\t\tcase \"short\": NF += \"yy\"; break;\n\t\t\t\tcase \"long\": NF += \"yyyy\"; break;\n\t\t\t\tdefault: NF += \"yy\"; break; // TODO: error condition\n\t\t\t}\n\t\t} break;\n\n\t\tcase 'am-pm': // 16.29.23\n\t\t\tNF += \"AM/PM\"; // LO autocorrects A/P -> AM/PM\n\t\t\tbreak;\n\n\t\tcase 'week-of-year': // 16.29.17\n\t\tcase 'quarter': // 16.29.18\n\t\t\tconsole.error(\"Excel does not support ODS format token \" + Rn[3]);\n\t\t\tbreak;\n\n\t\tcase 'fill-character': // 16.29.5\n\t\t\tif(Rn[1]==='/') {\n\t\t\t\tpayload = str.slice(tidx, xlmlregex.lastIndex - Rn[0].length);\n\t\t\t\t// NOTE: Excel has a different interpretation of \"%%\" and friends\n\t\t\t\tNF += '\"' + payload.replace(/\"/g, '\"\"') + '\"*';\n\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\ttidx = xlmlregex.lastIndex;\n\t\t\t} break;\n\n\t\tcase 'scientific-number': // 16.29.6\n\t\t\t// TODO: find a mapping for all parameters\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tNF += \"0.\" + fill(\"0\", +y[\"min-decimal-places\"] || +y[\"decimal-places\"] || 2) + fill(\"?\", +y[\"decimal-places\"] - +y[\"min-decimal-places\"] || 0) + \"E\" + (parsexmlbool(y[\"forced-exponent-sign\"]) ? \"+\" : \"\") + fill(\"0\", +y[\"min-exponent-digits\"] || 2);\n\t\t\tbreak;\n\n\t\tcase 'fraction': // 16.29.7\n\t\t\t// TODO: find a mapping for all parameters\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tif(!+y[\"min-integer-digits\"]) NF += \"#\";\n\t\t\telse NF += fill(\"0\", +y[\"min-integer-digits\"]);\n\t\t\tNF += \" \";\n\t\t\tNF += fill(\"?\", +y[\"min-numerator-digits\"] || 1);\n\t\t\tNF += \"/\";\n\t\t\tif(+y[\"denominator-value\"]) NF += y[\"denominator-value\"];\n\t\t\telse NF += fill(\"?\", +y[\"min-denominator-digits\"] || 1);\n\t\t\tbreak;\n\n\t\tcase 'currency-symbol': // 16.29.9\n\t\t\t// TODO: localization with [$-...]\n\t\t\tif(Rn[1]==='/') {\n\t\t\t\tNF += '\"' + str.slice(tidx, xlmlregex.lastIndex - Rn[0].length).replace(/\"/g, '\"\"') + '\"';\n\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\ttidx = xlmlregex.lastIndex;\n\t\t\t} else NF += \"$\";\n\t\t\tbreak;\n\n\t\tcase 'text-properties': // 16.29.29\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tswitch((y[\"color\"]||\"\").toLowerCase().replace(\"#\", \"\")) {\n\t\t\t\tcase \"ff0000\": case \"red\": NF = \"[Red]\" + NF; break;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'text-content': // 16.29.28\n\t\t\tNF += \"@\";\n\t\t\tbreak;\n\n\t\tcase 'map': // 16.3\n\t\t\t// TODO: handle more complex maps\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tif(unescapexml(y[\"condition\"]) == \"value()>=0\") NF = number_format_map[y[\"apply-style-name\"]] + \";\" + NF;\n\t\t\telse console.error(\"ODS number format may be incorrect: \" + y[\"condition\"]);\n\t\t\tbreak;\n\n\t\tcase 'number': // 16.29.3\n\t\t\t// TODO: handle all the attributes\n\t\t\tif(Rn[1]==='/') break;\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\ttNF = \"\";\n\t\t\ttNF += fill(\"0\", +y[\"min-integer-digits\"] || 1);\n\t\t\tif(parsexmlbool(y[\"grouping\"])) tNF = commaify(fill(\"#\", Math.max(0, 4 - tNF.length)) + tNF);\n\t\t\tif(+y[\"min-decimal-places\"] || +y[\"decimal-places\"]) tNF += \".\";\n\t\t\tif(+y[\"min-decimal-places\"]) tNF += fill(\"0\", +y[\"min-decimal-places\"] || 1);\n\t\t\tif(+y[\"decimal-places\"] - (+y[\"min-decimal-places\"]||0)) tNF += fill(\"0\", +y[\"decimal-places\"] - (+y[\"min-decimal-places\"]||0)); // TODO: should this be \"#\" ?\n\t\t\tNF += tNF;\n\t\t\tbreak;\n\n\t\tcase 'embedded-text': // 16.29.4\n\t\t\t// TODO: verify interplay with grouping et al\n\t\t\tif(Rn[1]==='/') {\n\t\t\t\tif(etpos == 0) NF += '\"' + str.slice(tidx, xlmlregex.lastIndex - Rn[0].length).replace(/\"/g, '\"\"') + '\"';\n\t\t\t\telse NF = NF.slice(0, etpos) + '\"' + str.slice(tidx, xlmlregex.lastIndex - Rn[0].length).replace(/\"/g, '\"\"') + '\"' + NF.slice(etpos);\n\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\ttidx = xlmlregex.lastIndex;\n\t\t\t\tetpos = -+parsexmltag(Rn[0], false)[\"position\"] || 0;\n\t\t\t} break;\n\n\t}}\n\treturn number_format_map;\n}\n\nfunction parse_content_xml(d/*:string*/, _opts, _nfm)/*:Workbook*/ {\n\t\tvar opts = _opts || {};\n\t\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\t\tvar str = xlml_normalize(d);\n\t\tvar state/*:Array*/ = [], tmp;\n\t\tvar tag/*:: = {}*/;\n\t\tvar nfidx, NF = \"\", pidx = 0;\n\t\tvar sheetag/*:: = {name:\"\", '名称':\"\"}*/;\n\t\tvar rowtag/*:: = {'行号':\"\"}*/;\n\t\tvar Sheets = {}, SheetNames/*:Array*/ = [];\n\t\tvar ws = ({}/*:any*/); if(opts.dense) ws[\"!data\"] = [];\n\t\tvar Rn, q/*:: :any = ({t:\"\", v:null, z:null, w:\"\",c:[],}:any)*/;\n\t\tvar ctag = ({value:\"\"}/*:any*/);\n\t\tvar textp = \"\", textpidx = 0, textptag/*:: = {}*/, oldtextp = \"\", oldtextpidx = 0;\n\t\tvar textR = [], oldtextR = [];\n\t\tvar R = -1, C = -1, range = {s: {r:1000000,c:10000000}, e: {r:0, c:0}};\n\t\tvar row_ol = 0;\n\t\tvar number_format_map = _nfm || {}, styles = {};\n\t\tvar merges/*:Array*/ = [], mrange = {}, mR = 0, mC = 0;\n\t\tvar rowinfo/*:Array*/ = [], rowpeat = 1, colpeat = 1;\n\t\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\t\tvar WB = {Names:[], WBProps:{}};\n\t\tvar atag = ({}/*:any*/);\n\t\tvar _Ref/*:[string, string]*/ = [\"\", \"\"];\n\t\tvar comments/*:Array*/ = [], comment/*:Comment*/ = ({}/*:any*/);\n\t\tvar creator = \"\", creatoridx = 0;\n\t\tvar isstub = false, intable = false;\n\t\tvar i = 0;\n\t\txlmlregex.lastIndex = 0;\n\t\tstr = str.replace(//mg,\"\").replace(//gm,\"\");\n\t\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3]=Rn[3].replace(/_.*$/,\"\"))) {\n\n\t\t\tcase 'table': case '工作表': // 9.1.2 \n\t\t\t\tif(Rn[1]==='/') {\n\t\t\t\t\tif(range.e.c >= range.s.c && range.e.r >= range.s.r) ws['!ref'] = encode_range(range);\n\t\t\t\t\telse ws['!ref'] = \"A1:A1\";\n\t\t\t\t\tif(opts.sheetRows > 0 && opts.sheetRows <= range.e.r) {\n\t\t\t\t\t\tws['!fullref'] = ws['!ref'];\n\t\t\t\t\t\trange.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tws['!ref'] = encode_range(range);\n\t\t\t\t\t}\n\t\t\t\t\tif(merges.length) ws['!merges'] = merges;\n\t\t\t\t\tif(rowinfo.length) ws[\"!rows\"] = rowinfo;\n\t\t\t\t\tsheetag.name = sheetag['名称'] || sheetag.name;\n\t\t\t\t\tif(typeof JSON !== 'undefined') JSON.stringify(sheetag);\n\t\t\t\t\tSheetNames.push(sheetag.name);\n\t\t\t\t\tSheets[sheetag.name] = ws;\n\t\t\t\t\tintable = false;\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tsheetag = parsexmltag(Rn[0], false);\n\t\t\t\t\tR = C = -1;\n\t\t\t\t\trange.s.r = range.s.c = 10000000; range.e.r = range.e.c = 0;\n\t\t\t\t\tws = ({}/*:any*/); if(opts.dense) ws[\"!data\"] = []; merges = [];\n\t\t\t\t\trowinfo = [];\n\t\t\t\t\tintable = true;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'table-row-group': // 9.1.9 \n\t\t\t\tif(Rn[1] === \"/\") --row_ol; else ++row_ol;\n\t\t\t\tbreak;\n\t\t\tcase 'table-row': case '行': // 9.1.3 \n\t\t\t\tif(Rn[1] === '/') { R+=rowpeat; rowpeat = 1; break; }\n\t\t\t\trowtag = parsexmltag(Rn[0], false);\n\t\t\t\tif(rowtag['行号']) R = rowtag['行号'] - 1; else if(R == -1) R = 0;\n\t\t\t\trowpeat = +rowtag['number-rows-repeated'] || 1;\n\t\t\t\t/* TODO: remove magic */\n\t\t\t\tif(rowpeat < 10) for(i = 0; i < rowpeat; ++i) if(row_ol > 0) rowinfo[R + i] = {level: row_ol};\n\t\t\t\tC = -1; break;\n\t\t\tcase 'covered-table-cell': // 9.1.5 \n\t\t\t\tif(Rn[1] !== '/') ++C;\n\t\t\t\tif(opts.sheetStubs) {\n\t\t\t\t\tif(opts.dense) { if(!ws[\"!data\"][R]) ws[\"!data\"][R] = []; ws[\"!data\"][R][C] = {t:'z'}; }\n\t\t\t\t\telse ws[encode_cell({r:R,c:C})] = {t:'z'};\n\t\t\t\t}\n\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\tbreak; /* stub */\n\t\t\tcase 'table-cell': case '数据':\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) === '/') {\n\t\t\t\t\t++C;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tq = ({t:'z', v:null/*:: , z:null, w:\"\",c:[]*/}/*:any*/);\n\t\t\t\t\tif(ctag.formula && opts.cellFormula != false) q.f = ods_to_csf_formula(unescapexml(ctag.formula));\n\t\t\t\t\tif(ctag[\"style-name\"] && styles[ctag[\"style-name\"]]) q.z = styles[ctag[\"style-name\"]];\n\t\t\t\t\tif((ctag['数据类型'] || ctag['value-type']) == \"string\") {\n\t\t\t\t\t\tq.t = \"s\"; q.v = unescapexml(ctag['string-value'] || \"\");\n\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\tif(!ws[\"!data\"][R]) ws[\"!data\"][R] = [];\n\t\t\t\t\t\t\tws[\"!data\"][R][C] = q;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tws[encode_col(C) + encode_row(R)] = q;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tC+= colpeat-1;\n\t\t\t\t} else if(Rn[1]!=='/') {\n\t\t\t\t\t++C;\n\t\t\t\t\ttextp = oldtextp = \"\"; textpidx = oldtextpidx = 0; textR = []; oldtextR = [];\n\t\t\t\t\tcolpeat = 1;\n\t\t\t\t\tvar rptR = rowpeat ? R + rowpeat - 1 : R;\n\t\t\t\t\tif(C > range.e.c) range.e.c = C;\n\t\t\t\t\tif(C < range.s.c) range.s.c = C;\n\t\t\t\t\tif(R < range.s.r) range.s.r = R;\n\t\t\t\t\tif(rptR > range.e.r) range.e.r = rptR;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcomments = []; comment = ({}/*:any*/);\n\t\t\t\t\tq = ({t:ctag['数据类型'] || ctag['value-type'], v:null/*:: , z:null, w:\"\",c:[]*/}/*:any*/);\n\t\t\t\t\tif(ctag[\"style-name\"] && styles[ctag[\"style-name\"]]) q.z = styles[ctag[\"style-name\"]];\n\t\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\t\tif(ctag.formula) ctag.formula = unescapexml(ctag.formula);\n\t\t\t\t\t\tif(ctag['number-matrix-columns-spanned'] && ctag['number-matrix-rows-spanned']) {\n\t\t\t\t\t\t\tmR = parseInt(ctag['number-matrix-rows-spanned'],10) || 0;\n\t\t\t\t\t\t\tmC = parseInt(ctag['number-matrix-columns-spanned'],10) || 0;\n\t\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\t\tq.F = encode_range(mrange);\n\t\t\t\t\t\t\tarrayf.push([mrange, q.F]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(ctag.formula) q.f = ods_to_csf_formula(ctag.formula);\n\t\t\t\t\t\telse for(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\t\t\tif(R >= arrayf[i][0].s.r && R <= arrayf[i][0].e.r)\n\t\t\t\t\t\t\t\tif(C >= arrayf[i][0].s.c && C <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\t\t\tq.F = arrayf[i][1];\n\t\t\t\t\t}\n\t\t\t\t\tif(ctag['number-columns-spanned'] || ctag['number-rows-spanned']) {\n\t\t\t\t\t\tmR = parseInt(ctag['number-rows-spanned'],10) || 0;\n\t\t\t\t\t\tmC = parseInt(ctag['number-columns-spanned'],10) || 0;\n\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\tmerges.push(mrange);\n\t\t\t\t\t}\n\n\t\t\t\t\t/* 19.675.2 table:number-columns-repeated */\n\t\t\t\t\tif(ctag['number-columns-repeated']) colpeat = parseInt(ctag['number-columns-repeated'], 10);\n\n\t\t\t\t\t/* 19.385 office:value-type TODO: verify ODS and UOS */\n\t\t\t\t\tswitch(q.t) {\n\t\t\t\t\t\tcase 'boolean': q.t = 'b'; q.v = parsexmlbool(ctag['boolean-value']) || (+ctag['boolean-value'] >= 1); break;\n\t\t\t\t\t\tcase 'float': q.t = 'n'; q.v = parseFloat(ctag.value);\n\t\t\t\t\t\t\tif(opts.cellDates && q.z && fmt_is_date(q.z)) { q.v = numdate(q.v + (WB.WBProps.date1904 ? 1462 : 0)); q.t = typeof q.v == \"number\" ? 'n' : 'd'; }\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'percentage': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'currency': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'date': q.t = 'd'; q.v = parseDate(ctag['date-value'], WB.WBProps.date1904);\n\t\t\t\t\t\t\tif(!opts.cellDates) { q.t = 'n'; q.v = datenum(q.v, WB.WBProps.date1904); }\n\t\t\t\t\t\t\tif(!q.z) q.z = 'm/d/yy'; break;\n\t\t\t\t\t\t/* NOTE: for `time`, Excel ODS export incorrectly uses durations relative to 1900 epoch even if 1904 is specified */\n\t\t\t\t\t\tcase 'time': q.t = 'n'; q.v = parse_isodur(ctag['time-value'])/86400;\n\t\t\t\t\t\t\tif(opts.cellDates) { q.v = numdate(q.v); q.t = typeof q.v == \"number\" ? 'n' : 'd'; }\n\t\t\t\t\t\t\tif(!q.z) q.z = 'HH:MM:SS'; break;\n\t\t\t\t\t\tcase 'number': q.t = 'n'; q.v = parseFloat(ctag['数据数值']);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tif(q.t === 'string' || q.t === 'text' || !q.t) {\n\t\t\t\t\t\t\t\tq.t = 's';\n\t\t\t\t\t\t\t\tif(ctag['string-value'] != null) { textp = unescapexml(ctag['string-value']); textR = []; }\n\t\t\t\t\t\t\t} else throw new Error('Unsupported value type ' + q.t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tisstub = false;\n\t\t\t\t\tif(q.t === 's') {\n\t\t\t\t\t\tq.v = textp || '';\n\t\t\t\t\t\tif(textR.length) q.R = textR;\n\t\t\t\t\t\tisstub = textpidx == 0;\n\t\t\t\t\t}\n\t\t\t\t\tif(atag.Target) q.l = atag;\n\t\t\t\t\tif(comments.length > 0) { q.c = comments; comments = []; }\n\t\t\t\t\tif(textp && opts.cellText !== false) q.w = textp;\n\t\t\t\t\tif(isstub) { q.t = \"z\"; delete q.v; }\n\t\t\t\t\tif(!isstub || opts.sheetStubs) {\n\t\t\t\t\t\tif(!(opts.sheetRows && opts.sheetRows <= R)) {\n\t\t\t\t\t\t\tfor(var rpt = 0; rpt < rowpeat; ++rpt) {\n\t\t\t\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!ws[\"!data\"][R + rpt]) ws[\"!data\"][R + rpt] = [];\n\t\t\t\t\t\t\t\t\tws[\"!data\"][R + rpt][C] = rpt == 0 ? q : dup(q);\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[\"!data\"][R + rpt][C + colpeat] = dup(q);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tws[encode_cell({r:R + rpt,c:C})] = q;\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[encode_cell({r:R + rpt,c:C + colpeat})] = dup(q);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(range.e.c <= C) range.e.c = C;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tC += colpeat-1; colpeat = 0;\n\t\t\t\t\tq = {/*:: t:\"\", v:null, z:null, w:\"\",c:[]*/};\n\t\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\t}\n\t\t\t\tatag = ({}/*:any*/);\n\t\t\t\tbreak; // 9.1.4 \n\n\t\t\t/* pure state */\n\t\t\tcase 'document': // TODO: is the root for FODS\n\t\t\tcase 'document-content': case '电子表格文档': // 3.1.3.2 \n\t\t\tcase 'spreadsheet': case '主体': // 3.7 \n\t\t\tcase 'scripts': // 3.12 \n\t\t\tcase 'styles': // TODO \n\t\t\tcase 'font-face-decls': // 3.14 \n\t\t\tcase 'master-styles': // 3.15.4 -- relevant for FODS\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\n\t\t\tcase 'annotation': // 14.1 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t\tcomment.t = textp;\n\t\t\t\t\tif(textR.length) /*::(*/comment/*:: :any)*/.R = textR;\n\t\t\t\t\tcomment.a = creator;\n\t\t\t\t\tcomments.push(comment);\n\t\t\t\t\ttextp = oldtextp; textpidx = oldtextpidx; textR = oldtextR;\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\t\tvar annotag = parsexmltag(Rn[0], true);\n\t\t\t\t\t/* office:display TODO: check if there is a global override */\n\t\t\t\t\tif(!(annotag[\"display\"] && parsexmlbool(annotag[\"display\"]))) comments.hidden = true;\n\t\t\t\t\toldtextp = textp; oldtextpidx = textpidx; oldtextR = textR;\n\t\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\t}\n\t\t\t\tcreator = \"\"; creatoridx = 0;\n\t\t\t\tbreak;\n\n\t\t\tcase 'creator': // 4.3.2.7 \n\t\t\t\tif(Rn[1]==='/') { creator = str.slice(creatoridx,Rn.index); }\n\t\t\t\telse creatoridx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\t/* ignore state */\n\t\t\tcase 'meta': case '元数据': // TODO: FODS/UOF\n\t\t\tcase 'settings': // TODO: \n\t\t\tcase 'config-item-set': // TODO: \n\t\t\tcase 'config-item-map-indexed': // TODO: \n\t\t\tcase 'config-item-map-entry': // TODO: \n\t\t\tcase 'config-item-map-named': // TODO: \n\t\t\tcase 'shapes': // 9.2.8 \n\t\t\tcase 'frame': // 10.4.2 \n\t\t\tcase 'text-box': // 10.4.3 \n\t\t\tcase 'image': // 10.4.4 \n\t\t\tcase 'data-pilot-tables': // 9.6.2 \n\t\t\tcase 'list-style': // 16.30 \n\t\t\tcase 'form': // 13.13 \n\t\t\tcase 'dde-links': // 9.8 \n\t\t\tcase 'event-listeners': // TODO\n\t\t\tcase 'chart': // TODO\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], false]);\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'scientific-number': // \n\t\t\tcase 'currency-symbol': // \n\t\t\tcase 'fill-character': // 16.29.5 \n\t\t\t\tbreak;\n\n\t\t\tcase 'text-style': // 16.27.25 \n\t\t\tcase 'boolean-style': // 16.27.23 \n\t\t\tcase 'number-style': // 16.27.2 \n\t\t\tcase 'currency-style': // 16.29.8 \n\t\t\tcase 'percentage-style': // 16.27.9 \n\t\t\tcase 'date-style': // 16.27.10 \n\t\t\tcase 'time-style': // 16.27.18 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tvar xlmlidx = xlmlregex.lastIndex;\n\t\t\t\t\tparse_ods_styles(str.slice(nfidx, xlmlregex.lastIndex), _opts, number_format_map);\n\t\t\t\t\txlmlregex.lastIndex = xlmlidx;\n\t\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tnfidx = xlmlregex.lastIndex - Rn[0].length;\n\t\t\t\t} break;\n\n\t\t\tcase 'script': break; // 3.13 \n\t\t\tcase 'libraries': break; // TODO: \n\t\t\tcase 'automatic-styles': break; // 3.15.3 \n\n\t\t\tcase 'default-style': // TODO: \n\t\t\tcase 'page-layout': break; // TODO: \n\t\t\tcase 'style': { // 16.2 \n\t\t\t\tvar styletag = parsexmltag(Rn[0], false);\n\t\t\t\tif(styletag[\"family\"] == \"table-cell\" && number_format_map[styletag[\"data-style-name\"]]) styles[styletag[\"name\"]] = number_format_map[styletag[\"data-style-name\"]];\n\t\t\t} break;\n\t\t\tcase 'map': break; // 16.3 \n\t\t\tcase 'font-face': break; // 16.21 \n\n\t\t\tcase 'paragraph-properties': break; // 17.6 \n\t\t\tcase 'table-properties': break; // 17.15 \n\t\t\tcase 'table-column-properties': break; // 17.16 \n\t\t\tcase 'table-row-properties': break; // 17.17 \n\t\t\tcase 'table-cell-properties': break; // 17.18 \n\n\t\t\tcase 'number': // 16.27.3 \n\t\t\t\tbreak;\n\n\t\t\tcase 'fraction': break; // TODO 16.27.6 \n\n\t\t\tcase 'day': // 16.27.11 \n\t\t\tcase 'month': // 16.27.12 \n\t\t\tcase 'year': // 16.27.13 \n\t\t\tcase 'era': // 16.27.14 \n\t\t\tcase 'day-of-week': // 16.27.15 \n\t\t\tcase 'week-of-year': // 16.27.16 \n\t\t\tcase 'quarter': // 16.27.17 \n\t\t\tcase 'hours': // 16.27.19 \n\t\t\tcase 'minutes': // 16.27.20 \n\t\t\tcase 'seconds': // 16.27.21 \n\t\t\tcase 'am-pm': // 16.27.22 \n\t\t\t\tbreak;\n\n\t\t\tcase 'boolean': break; // 16.27.24 \n\t\t\tcase 'text': // 16.27.26 \n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") switch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'number-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\t\tNF += str.slice(pidx, Rn.index);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\tcase 'named-range': // 9.4.12 \n\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t_Ref = ods_to_csf_3D(tag['cell-range-address']);\n\t\t\t\tvar nrange = ({Name:tag.name, Ref:_Ref[0] + '!' + _Ref[1]}/*:any*/);\n\t\t\t\tif(intable) nrange.Sheet = SheetNames.length;\n\t\t\t\tWB.Names.push(nrange);\n\t\t\t\tbreak;\n\n\t\t\tcase 'text-content': break; // 16.27.27 \n\t\t\tcase 'text-properties': break; // 16.27.27 \n\t\t\tcase 'embedded-text': break; // 16.27.4 \n\n\t\t\tcase 'body': case '电子表格': break; // 3.3 16.9.6 19.726.3\n\n\t\t\tcase 'forms': break; // 12.25.2 13.2\n\t\t\tcase 'table-column': break; // 9.1.6 \n\t\t\tcase 'table-header-rows': break; // 9.1.7 \n\t\t\tcase 'table-rows': break; // 9.1.12 \n\t\t\t/* TODO: outline levels */\n\t\t\tcase 'table-column-group': break; // 9.1.10 \n\t\t\tcase 'table-header-columns': break; // 9.1.11 \n\t\t\tcase 'table-columns': break; // 9.1.12 \n\n\t\t\tcase 'null-date': // 9.4.2 \n\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\tswitch(tag[\"date-value\"]) {\n\t\t\t\t\tcase \"1904-01-01\": WB.WBProps.date1904 = true; break;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'graphic-properties': break; // 17.21 \n\t\t\tcase 'calculation-settings': break; // 9.4.1 \n\t\t\tcase 'named-expressions': break; // 9.4.11 \n\t\t\tcase 'label-range': break; // 9.4.9 \n\t\t\tcase 'label-ranges': break; // 9.4.10 \n\t\t\tcase 'named-expression': break; // 9.4.13 \n\t\t\tcase 'sort': break; // 9.4.19 \n\t\t\tcase 'sort-by': break; // 9.4.20 \n\t\t\tcase 'sort-groups': break; // 9.4.22 \n\n\t\t\tcase 'tab': break; // 6.1.4 \n\t\t\tcase 'line-break': break; // 6.1.5 \n\t\t\tcase 'span': break; // 6.1.7 \n\t\t\tcase 'p': case '文本串': // 5.1.3 \n\t\t\t\tif(['master-styles'].indexOf(state[state.length-1][0]) > -1) break;\n\t\t\t\tif(Rn[1]==='/' && (!ctag || !ctag['string-value'])) {\n\t\t\t\t\tvar ptp = parse_text_p(str.slice(textpidx,Rn.index), textptag);\n\t\t\t\t\ttextp = (textp.length > 0 ? textp + \"\\n\" : \"\") + ptp[0];\n\t\t\t\t} else if(Rn[0].slice(-2) == \"/>\") {\n\t\t\t\t\t/* TODO: is self-closing 文本串 valid? */\n\t\t\t\t\ttextp += \"\\n\";\n\t\t\t\t} else { textptag = parsexmltag(Rn[0], false); textpidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak; // \n\t\t\tcase 's': break; // \n\n\t\t\tcase 'database-range': // 9.4.15 \n\t\t\t\tif(Rn[1]==='/') break;\n\t\t\t\ttry {\n\t\t\t\t\t_Ref = ods_to_csf_3D(parsexmltag(Rn[0])['target-range-address']);\n\t\t\t\t\tSheets[_Ref[0]]['!autofilter'] = { ref:_Ref[1] };\n\t\t\t\t} catch(e) {/* empty */}\n\t\t\t\tbreak;\n\n\t\t\tcase 'date': break; // <*:date>\n\n\t\t\tcase 'object': break; // 10.4.6.2 \n\t\t\tcase 'title': case '标题': break; // <*:title> OR \n\t\t\tcase 'desc': break; // <*:desc>\n\t\t\tcase 'binary-data': break; // 10.4.5 TODO: b64 blob\n\n\t\t\t/* 9.2 Advanced Tables */\n\t\t\tcase 'table-source': break; // 9.2.6\n\t\t\tcase 'scenario': break; // 9.2.6\n\n\t\t\tcase 'iteration': break; // 9.4.3 \n\t\t\tcase 'content-validations': break; // 9.4.4 \n\t\t\tcase 'filter': break; // 9.5.2 \n\t\t\tcase 'filter-and': break; // 9.5.3 \n\t\t\tcase 'filter-or': break; // 9.5.4 \n\t\t\tcase 'filter-condition': break; // 9.5.5 \n\n\t\t\tcase 'list-level-style-bullet': break; // 16.31 \n\t\t\tcase 'page-count': break; // TODO \n\t\t\tcase 'time': break; // TODO \n\n\t\t\t/* 9.3 Advanced Table Cells */\n\t\t\tcase 'cell-range-source': break; // 9.3.1 \n\t\t\tcase 'property': break; // 13.8 \n\n\t\t\tcase 'a': // 6.1.8 hyperlink\n\t\t\t\tif(Rn[1]!== '/') {\n\t\t\t\t\tatag = parsexmltag(Rn[0], false);\n\t\t\t\t\tif(!atag.href) break;\n\t\t\t\t\tatag.Target = unescapexml(atag.href); delete atag.href;\n\t\t\t\t\tif(atag.Target.charAt(0) == \"#\" && atag.Target.indexOf(\".\") > -1) {\n\t\t\t\t\t\t_Ref = ods_to_csf_3D(atag.Target.slice(1));\n\t\t\t\t\t\tatag.Target = \"#\" + _Ref[0] + \"!\" + _Ref[1];\n\t\t\t\t\t} else if(atag.Target.match(/^\\.\\.[\\\\\\/]/)) atag.Target = atag.Target.slice(3);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\t/* non-standard */\n\t\t\tcase 'table-protection': break;\n\t\t\tcase 'data-pilot-grand-total': break; // ',\n\t\t\t'',\n\t\t\t\t'',\n\t\t\t\t'',\n\t\t\t\t'',\n\t\t\t\t'',\n\t\t\t'',\n\t\t''\n\t].join(\"\");\n\n\tvar payload = '' + master_styles + '';\n\n\treturn function wso(/*::wb, opts*/) {\n\t\treturn XML_HEADER + payload;\n\t};\n})();\n\n// TODO: find out if anyone actually read the spec. LO has some wild errors\nfunction write_number_format_ods(nf/*:string*/, nfidx/*:string*/)/*:string*/ {\n\tvar type = \"number\", payload = \"\", nopts = { \"style:name\": nfidx }, c = \"\", i = 0;\n\tnf = nf.replace(/\"[$]\"/g, \"$\");\n\t/* TODO: replace with an actual parser based on a real grammar */\n\tj: {\n\t\t// TODO: support style maps\n\t\tif(nf.indexOf(\";\") > -1) {\n\t\t\tconsole.error(\"Unsupported ODS Style Map exported. Using first branch of \" + nf);\n\t\t\tnf = nf.slice(0, nf.indexOf(\";\"));\n\t\t}\n\n\t\tif(nf == \"@\") { type = \"text\"; payload = \"\"; break j; }\n\n\t\t/* currency flag */\n\t\tif(nf.indexOf(/\\$/) > -1) { type = \"currency\"; }\n\n\t\t/* opening string literal */\n\t\tif(nf[i] == '\"') {\n\t\t\tc = \"\";\n\t\t\twhile(nf[++i] != '\"' || nf[++i] == '\"') c += nf[i]; --i;\n\t\t\tif(nf[i+1] == \"*\") {\n\t\t\t\ti++;\n\t\t\t\tpayload += '' + escapexml(c.replace(/\"\"/g, '\"')) + '';\n\t\t\t} else {\n\t\t\t\tpayload += '' + escapexml(c.replace(/\"\"/g, '\"')) + '';\n\t\t\t}\n\t\t\tnf = nf.slice(i+1); i = 0;\n\t\t}\n\n\t\t/* fractions */\n\t\tvar t = nf.match(/# (\\?+)\\/(\\?+)/);\n\t\tif(t) { payload += writextag(\"number:fraction\", null, {\"number:min-integer-digits\":0, \"number:min-numerator-digits\": t[1].length, \"number:max-denominator-value\": Math.max(+(t[1].replace(/./g, \"9\")), +(t[2].replace(/./g, \"9\"))) }); break j; }\n\t\tif((t=nf.match(/# (\\?+)\\/(\\d+)/))) { payload += writextag(\"number:fraction\", null, {\"number:min-integer-digits\":0, \"number:min-numerator-digits\": t[1].length, \"number:denominator-value\": +t[2]}); break j; }\n\n\t\t/* percentages */\n\t\tif((t=nf.match(/(\\d+)(|\\.\\d+)%/))) { type = \"percentage\"; payload += writextag(\"number:number\", null, {\"number:decimal-places\": t[2] && t.length - 1 || 0, \"number:min-decimal-places\": t[2] && t.length - 1 || 0, \"number:min-integer-digits\": t[1].length }) + \"%\"; break j; }\n\n\t\t/* datetime */\n\t\tvar has_time = false;\n\t\tif([\"y\",\"m\",\"d\"].indexOf(nf[0]) > -1) {\n\t\t\ttype = \"date\";\n\t\t\tk: for(; i < nf.length; ++i) switch((c = nf[i].toLowerCase())) {\n\t\t\t\tcase \"h\": case \"s\": has_time = true; --i; break k;\n\t\t\t\tcase \"m\":\n\t\t\t\t\tl: for(var h = i+1; h < nf.length; ++h) switch(nf[h]) {\n\t\t\t\t\t\tcase \"y\": case \"d\": break l;\n\t\t\t\t\t\tcase \"h\": case \"s\": has_time = true; --i; break k;\n\t\t\t\t\t}\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase \"y\": case \"d\":\n\t\t\t\t\twhile((nf[++i]||\"\").toLowerCase() == c[0]) c += c[0]; --i;\n\t\t\t\t\tswitch(c) {\n\t\t\t\t\t\tcase \"y\": case \"yy\": payload += \"\"; break;\n\t\t\t\t\t\tcase \"yyy\": case \"yyyy\": payload += ''; break;\n\t\t\t\t\t\tcase \"mmmmm\": console.error(\"ODS has no equivalent of format |mmmmm|\");\n\t\t\t\t\t\t\t/* falls through */\n\t\t\t\t\t\tcase \"m\": case \"mm\": case \"mmm\": case \"mmmm\":\n\t\t\t\t\t\t\tpayload += '= 3 ? \"true\" : \"false\") + '\"/>';\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"d\": case \"dd\": payload += ''; break;\n\t\t\t\t\t\tcase \"ddd\": case \"dddd\": payload += ''; break;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase '\"':\n\t\t\t\t\twhile(nf[++i] != '\"' || nf[++i] == '\"') c += nf[i]; --i;\n\t\t\t\t\tpayload += '' + escapexml(c.slice(1).replace(/\"\"/g, '\"')) + '';\n\t\t\t\t\tbreak;\n\t\t\t\tcase '\\\\': c = nf[++i];\n\t\t\t\t\tpayload += '' + escapexml(c) + ''; break;\n\t\t\t\tcase '/': case ':': payload += '' + escapexml(c) + ''; break;\n\t\t\t\tdefault: console.error(\"unrecognized character \" + c + \" in ODF format \" + nf);\n\t\t\t}\n\t\t\tif(!has_time) break j;\n\t\t\tnf = nf.slice(i+1); i = 0;\n\t\t}\n\t\tif(nf.match(/^\\[?[hms]/)) {\n\t\t\tif(type == \"number\") type = \"time\";\n\t\t\tif(nf.match(/\\[/)) {\n\t\t\t\tnf = nf.replace(/[\\[\\]]/g, \"\");\n\t\t\t\tnopts['number:truncate-on-overflow'] = \"false\";\n\t\t\t}\n\t\t\tfor(; i < nf.length; ++i) switch((c = nf[i].toLowerCase())) {\n\t\t\t\tcase \"h\": case \"m\": case \"s\":\n\t\t\t\t\twhile((nf[++i]||\"\").toLowerCase() == c[0]) c += c[0]; --i;\n\t\t\t\t\tswitch(c) {\n\t\t\t\t\t\tcase \"h\": case \"hh\": payload += ''; break;\n\t\t\t\t\t\tcase \"m\": case \"mm\": payload += ''; break;\n\t\t\t\t\t\tcase \"s\": case \"ss\":\n\t\t\t\t\t\t\tif(nf[i+1] == \".\") do { c += nf[i+1]; ++i; } while(nf[i+1] == \"0\");\n\t\t\t\t\t\t\tpayload += ''; break;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase '\"':\n\t\t\t\t\twhile(nf[++i] != '\"' || nf[++i] == '\"') c += nf[i]; --i;\n\t\t\t\t\tpayload += '' + escapexml(c.slice(1).replace(/\"\"/g, '\"')) + '';\n\t\t\t\t\tbreak;\n\t\t\t\tcase '/': case ':': payload += '' + escapexml(c) + ''; break;\n\t\t\t\tcase \"a\":\n\t\t\t\t\tif(nf.slice(i, i+3).toLowerCase() == \"a/p\") { payload += ''; i += 2; break; } // Note: ODF does not support A/P\n\t\t\t\t\tif(nf.slice(i, i+5).toLowerCase() == \"am/pm\") { payload += ''; i += 4; break; }\n\t\t\t\t\t/* falls through */\n\t\t\t\tdefault: console.error(\"unrecognized character \" + c + \" in ODF format \" + nf);\n\t\t\t}\n\t\t\tbreak j;\n\t\t}\n\n\t\t/* currency flag */\n\t\tif(nf.indexOf(/\\$/) > -1) { type = \"currency\"; }\n\n\t\t/* should be in a char loop */\n\t\tif(nf[0] == \"$\") { payload += '$'; nf = nf.slice(1); i = 0; }\n\t\ti = 0; if(nf[i] == '\"') {\n\t\t\twhile(nf[++i] != '\"' || nf[++i] == '\"') c += nf[i]; --i;\n\t\t\tif(nf[i+1] == \"*\") {\n\t\t\t\ti++;\n\t\t\t\tpayload += '' + escapexml(c.replace(/\"\"/g, '\"')) + '';\n\t\t\t} else {\n\t\t\t\tpayload += '' + escapexml(c.replace(/\"\"/g, '\"')) + '';\n\t\t\t}\n\t\t\tnf = nf.slice(i+1); i = 0;\n\t\t}\n\n\t\t/* number TODO: interstitial text e.g. 000)000-0000 */\n\t\tvar np = nf.match(/([#0][0#,]*)(\\.[0#]*|)(E[+]?0*|)/i);\n\t\tif(!np || !np[0]) console.error(\"Could not find numeric part of \" + nf);\n\t\telse {\n\t\t\tvar base = np[1].replace(/,/g, \"\");\n\t\t\tpayload += ' -1 ? ' number:grouping=\"true\"' : \"\") +\n\t\t\t\t(np[2] && ' number:decimal-places=\"' + (np[2].length - 1) + '\"' || ' number:decimal-places=\"0\"') +\n\t\t\t\t(np[3] && np[3].indexOf(\"+\") > -1 ? ' number:forced-exponent-sign=\"true\"' : \"\" ) +\n\t\t\t\t(np[3] ? ' number:min-exponent-digits=\"' + np[3].match(/0+/)[0].length + '\"' : \"\" ) +\n\t\t\t\t'>' +\n\t\t\t\t/* TODO: interstitial text placeholders */\n\t\t\t\t'';\n\t\t\ti = np.index + np[0].length;\n\t\t}\n\n\t\t/* residual text */\n\t\tif(nf[i] == '\"') {\n\t\t\tc = \"\";\n\t\t\twhile(nf[++i] != '\"' || nf[++i] == '\"') c += nf[i]; --i;\n\t\t\tpayload += '' + escapexml(c.replace(/\"\"/g, '\"')) + '';\n\t\t}\n\t}\n\n\tif(!payload) { console.error(\"Could not generate ODS number format for |\" + nf + \"|\"); return \"\"; }\n\treturn writextag(\"number:\" + type + \"-style\", payload, nopts);\n}\n\nfunction write_names_ods(Names, SheetNames, idx) {\n\t//var scoped = Names.filter(function(name) { return name.Sheet == (idx == -1 ? null : idx); });\n\tvar scoped = []; for(var namei = 0; namei < Names.length; ++namei) {\n\t\tvar name = Names[namei];\n\t\tif(!name) continue;\n\t\tif(name.Sheet == (idx == -1 ? null : idx)) scoped.push(name);\n\t}\n\tif(!scoped.length) return \"\";\n\treturn \" \\n\" + scoped.map(function(name) {\n\t\tvar odsref = (idx == -1 ? \"$\" : \"\") + csf_to_ods_3D(name.Ref);\n\t\treturn \" \" + writextag(\"table:named-range\", null, {\n\t\t\t\"table:name\": name.Name,\n\t\t\t\"table:cell-range-address\": odsref,\n\t\t\t\"table:base-cell-address\": odsref.replace(/[\\.]?[^\\.]*$/, \".$A$1\")\n\t\t});\n\t}).join(\"\\n\") + \"\\n \\n\";\n}\nvar write_content_ods/*:{(wb:any, opts:any):string}*/ = /* @__PURE__ */(function() {\n\t/* 6.1.2 White Space Characters */\n\tvar write_text_p = function(text/*:string*/)/*:string*/ {\n\t\treturn escapexml(text)\n\t\t\t.replace(/ +/g, function($$){return '';})\n\t\t\t.replace(/\\t/g, \"\")\n\t\t\t.replace(/\\n/g, \"\")\n\t\t\t.replace(/^ /, \"\").replace(/ $/, \"\");\n\t};\n\n\tvar null_cell_xml = ' \\n';\n\tvar write_ws = function(ws, wb/*:Workbook*/, i/*:number*/, opts, nfs, date1904)/*:string*/ {\n\t\t/* Section 9 Tables */\n\t\tvar o/*:Array*/ = [];\n\t\to.push(' \\n');\n\t\tvar R=0,C=0, range = decode_range(ws['!ref']||\"A1\");\n\t\tvar marr/*:Array*/ = ws['!merges'] || [], mi = 0;\n\t\tvar dense = ws[\"!data\"] != null;\n\t\tif(ws[\"!cols\"]) {\n\t\t\tfor(C = 0; C <= range.e.c; ++C) o.push(' \\n');\n\t\t}\n\t\tvar H = \"\", ROWS = ws[\"!rows\"]||[];\n\t\tfor(R = 0; R < range.s.r; ++R) {\n\t\t\tH = ROWS[R] ? ' table:style-name=\"ro' + ROWS[R].ods + '\"' : \"\";\n\t\t\to.push(' \\n');\n\t\t}\n\t\tfor(; R <= range.e.r; ++R) {\n\t\t\tH = ROWS[R] ? ' table:style-name=\"ro' + ROWS[R].ods + '\"' : \"\";\n\t\t\to.push(' \\n');\n\t\t\tfor(C=0; C < range.s.c; ++C) o.push(null_cell_xml);\n\t\t\tfor(; C <= range.e.c; ++C) {\n\t\t\t\tvar skip = false, ct = {}, textp = \"\";\n\t\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\t\tct['table:number-columns-spanned'] = (marr[mi].e.c - marr[mi].s.c + 1);\n\t\t\t\t\tct['table:number-rows-spanned'] = (marr[mi].e.r - marr[mi].s.r + 1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(skip) { o.push(' \\n'); continue; }\n\t\t\t\tvar ref = encode_cell({r:R, c:C}), cell = dense ? (ws[\"!data\"][R]||[])[C]: ws[ref];\n\t\t\t\tif(cell && cell.f) {\n\t\t\t\t\tct['table:formula'] = escapexml(csf_to_ods_formula(cell.f));\n\t\t\t\t\tif(cell.F) {\n\t\t\t\t\t\tif(cell.F.slice(0, ref.length) == ref) {\n\t\t\t\t\t\t\tvar _Fref = decode_range(cell.F);\n\t\t\t\t\t\t\tct['table:number-matrix-columns-spanned'] = (_Fref.e.c - _Fref.s.c + 1);\n\t\t\t\t\t\t\tct['table:number-matrix-rows-spanned'] = (_Fref.e.r - _Fref.s.r + 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(!cell) { o.push(null_cell_xml); continue; }\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\ttextp = (cell.v ? 'TRUE' : 'FALSE');\n\t\t\t\t\t\tct['office:value-type'] = \"boolean\";\n\t\t\t\t\t\tct['office:boolean-value'] = (cell.v ? 'true' : 'false');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\ttextp = (cell.w||String(cell.v||0));\n\t\t\t\t\t\tct['office:value-type'] = \"float\";\n\t\t\t\t\t\tct['office:value'] = (cell.v||0);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 's': case 'str':\n\t\t\t\t\t\ttextp = cell.v == null ? \"\" : cell.v;\n\t\t\t\t\t\tct['office:value-type'] = \"string\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\ttextp = (cell.w||(parseDate(cell.v, date1904).toISOString()));\n\t\t\t\t\t\tct['office:value-type'] = \"date\";\n\t\t\t\t\t\tct['office:date-value'] = (parseDate(cell.v, date1904).toISOString());\n\t\t\t\t\t\tct['table:style-name'] = \"ce1\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t//case 'e': // TODO: translate to ODS errors\n\t\t\t\t\tdefault: o.push(null_cell_xml); continue; // TODO: empty cell with comments\n\t\t\t\t}\n\t\t\t\tvar text_p = write_text_p(textp);\n\t\t\t\tif(cell.l && cell.l.Target) {\n\t\t\t\t\tvar _tgt = cell.l.Target;\n\t\t\t\t\t_tgt = _tgt.charAt(0) == \"#\" ? \"#\" + csf_to_ods_3D(_tgt.slice(1)) : _tgt;\n\t\t\t\t\t// TODO: choose correct parent path format based on link delimiters\n\t\t\t\t\tif(_tgt.charAt(0) != \"#\" && !_tgt.match(/^\\w+:/)) _tgt = '../' + _tgt;\n\t\t\t\t\ttext_p = writextag('text:a', text_p, {'xlink:href': _tgt.replace(/&/g, \"&\")});\n\t\t\t\t}\n\t\t\t\tif(nfs[cell.z]) ct[\"table:style-name\"] = \"ce\" + nfs[cell.z].slice(1);\n\t\t\t\tvar payload = writextag('text:p', text_p, {});\n\t\t\t\tif(cell.c) {\n\t\t\t\t\tvar acreator = \"\", apayload = \"\", aprops = {};\n\t\t\t\t\tfor(var ci = 0; ci < cell.c.length; ++ci) {\n\t\t\t\t\t\tif(!acreator && cell.c[ci].a) acreator = cell.c[ci].a;\n\t\t\t\t\t\tapayload += \"\" + write_text_p(cell.c[ci].t) + \"\";\n\t\t\t\t\t}\n\t\t\t\t\tif(!cell.c.hidden) aprops[\"office:display\"] = true;\n\t\t\t\t\tpayload = writextag('office:annotation', apayload, aprops) + payload;\n\t\t\t\t}\n\t\t\t\to.push(' ' + writextag('table:table-cell', payload, ct) + '\\n');\n\t\t\t}\n\t\t\to.push(' \\n');\n\t\t}\n\t\tif((wb.Workbook||{}).Names) o.push(write_names_ods(wb.Workbook.Names, wb.SheetNames, i));\n\t\to.push(' \\n');\n\t\treturn o.join(\"\");\n\t};\n\n\tvar write_automatic_styles_ods = function(o/*:Array*/, wb) {\n\t\to.push(' \\n');\n\n\t\t/* column styles */\n\t\tvar cidx = 0;\n\t\twb.SheetNames.map(function(n) { return wb.Sheets[n]; }).forEach(function(ws) {\n\t\t\tif(!ws) return;\n\t\t\tif(ws[\"!cols\"]) {\n\t\t\t\tfor(var C = 0; C < ws[\"!cols\"].length; ++C) if(ws[\"!cols\"][C]) {\n\t\t\t\t\tvar colobj = ws[\"!cols\"][C];\n\t\t\t\t\tif(colobj.width == null && colobj.wpx == null && colobj.wch == null) continue;\n\t\t\t\t\tprocess_col(colobj);\n\t\t\t\t\tcolobj.ods = cidx;\n\t\t\t\t\tvar w = ws[\"!cols\"][C].wpx + \"px\";\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\t++cidx;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t/* row styles */\n\t\tvar ridx = 0;\n\t\twb.SheetNames.map(function(n) { return wb.Sheets[n]; }).forEach(function(ws) {\n\t\t\tif(!ws) return;\n\t\t\tif(ws[\"!rows\"]) {\n\t\t\t\tfor(var R = 0; R < ws[\"!rows\"].length; ++R) if(ws[\"!rows\"][R]) {\n\t\t\t\t\tws[\"!rows\"][R].ods = ridx;\n\t\t\t\t\tvar h = ws[\"!rows\"][R].hpx + \"px\";\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\t++ridx;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t/* table */\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\t/* number formats, table cells, text */\n\t\tvar nfs = {};\n\t\tvar nfi = 69;\n\t\twb.SheetNames.map(function(n) { return wb.Sheets[n]; }).forEach(function(ws) {\n\t\t\tif(!ws) return;\n\t\t\tvar dense = (ws[\"!data\"] != null);\n\t\t\tvar range = decode_range(ws[\"!ref\"]);\n\t\t\tfor(var R = 0; R <= range.e.r; ++R) for(var C = 0; C <= range.e.c; ++C) {\n\t\t\t\tvar c = dense ? (ws[\"!data\"][R]||[])[C] : ws[encode_cell({r:R,c:C})];\n\t\t\t\tif(!c || !c.z || c.z.toLowerCase() == \"general\") continue;\n\t\t\t\tif(!nfs[c.z]) {\n\t\t\t\t\tvar out = write_number_format_ods(c.z, \"N\" + nfi);\n\t\t\t\t\tif(out) { nfs[c.z] = \"N\" + nfi; ++nfi; o.push(out + \"\\n\"); }\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\to.push(' \\n');\n\t\tkeys(nfs).forEach(function(nf) {\n\t\t\to.push('\\n');\n\t\t});\n\n\t\t/* page-layout */\n\n\t\to.push(' \\n');\n\t\treturn nfs;\n\t};\n\n\treturn function wcx(wb, opts) {\n\t\tvar o = [XML_HEADER];\n\t\t/* 3.1.3.2 */\n\t\tvar attr = wxt_helper({\n\t\t\t'xmlns:office': \"urn:oasis:names:tc:opendocument:xmlns:office:1.0\",\n\t\t\t'xmlns:table': \"urn:oasis:names:tc:opendocument:xmlns:table:1.0\",\n\t\t\t'xmlns:style': \"urn:oasis:names:tc:opendocument:xmlns:style:1.0\",\n\t\t\t'xmlns:text': \"urn:oasis:names:tc:opendocument:xmlns:text:1.0\",\n\t\t\t'xmlns:draw': \"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\",\n\t\t\t'xmlns:fo': \"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\",\n\t\t\t'xmlns:xlink': \"http://www.w3.org/1999/xlink\",\n\t\t\t'xmlns:dc': \"http://purl.org/dc/elements/1.1/\",\n\t\t\t'xmlns:meta': \"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\",\n\t\t\t'xmlns:number': \"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0\",\n\t\t\t'xmlns:presentation': \"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0\",\n\t\t\t'xmlns:svg': \"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\",\n\t\t\t'xmlns:chart': \"urn:oasis:names:tc:opendocument:xmlns:chart:1.0\",\n\t\t\t'xmlns:dr3d': \"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0\",\n\t\t\t'xmlns:math': \"http://www.w3.org/1998/Math/MathML\",\n\t\t\t'xmlns:form': \"urn:oasis:names:tc:opendocument:xmlns:form:1.0\",\n\t\t\t'xmlns:script': \"urn:oasis:names:tc:opendocument:xmlns:script:1.0\",\n\t\t\t'xmlns:ooo': \"http://openoffice.org/2004/office\",\n\t\t\t'xmlns:ooow': \"http://openoffice.org/2004/writer\",\n\t\t\t'xmlns:oooc': \"http://openoffice.org/2004/calc\",\n\t\t\t'xmlns:dom': \"http://www.w3.org/2001/xml-events\",\n\t\t\t'xmlns:xforms': \"http://www.w3.org/2002/xforms\",\n\t\t\t'xmlns:xsd': \"http://www.w3.org/2001/XMLSchema\",\n\t\t\t'xmlns:xsi': \"http://www.w3.org/2001/XMLSchema-instance\",\n\t\t\t'xmlns:sheet': \"urn:oasis:names:tc:opendocument:sh33tjs:1.0\",\n\t\t\t'xmlns:rpt': \"http://openoffice.org/2005/report\",\n\t\t\t'xmlns:of': \"urn:oasis:names:tc:opendocument:xmlns:of:1.2\",\n\t\t\t'xmlns:xhtml': \"http://www.w3.org/1999/xhtml\",\n\t\t\t'xmlns:grddl': \"http://www.w3.org/2003/g/data-view#\",\n\t\t\t'xmlns:tableooo': \"http://openoffice.org/2009/table\",\n\t\t\t'xmlns:drawooo': \"http://openoffice.org/2010/draw\",\n\t\t\t'xmlns:calcext': \"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0\",\n\t\t\t'xmlns:loext': \"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0\",\n\t\t\t'xmlns:field': \"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0\",\n\t\t\t'xmlns:formx': \"urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0\",\n\t\t\t'xmlns:css3t': \"http://www.w3.org/TR/css3-text/\",\n\t\t\t'office:version': \"1.2\"\n\t\t});\n\n\t\tvar fods = wxt_helper({\n\t\t\t'xmlns:config': \"urn:oasis:names:tc:opendocument:xmlns:config:1.0\",\n\t\t\t'office:mimetype': \"application/vnd.oasis.opendocument.spreadsheet\"\n\t\t});\n\n\t\tif(opts.bookType == \"fods\") {\n\t\t\to.push('\\n');\n\t\t\to.push(write_meta_ods().replace(//, \"\").replace(/<\\/office:document-meta>/, \"\") + \"\\n\");\n\t\t\t// TODO: settings (equiv of settings.xml for ODS)\n\t\t} else o.push('\\n');\n\t\t// o.push(' \\n');\n\t\tvar nfs = write_automatic_styles_ods(o, wb);\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tif(((wb.Workbook||{}).WBProps||{}).date1904) o.push(' \\n \\n \\n');\n\t\tfor(var i = 0; i != wb.SheetNames.length; ++i) o.push(write_ws(wb.Sheets[wb.SheetNames[i]], wb, i, opts, nfs, ((wb.Workbook||{}).WBProps||{}).date1904));\n\t\tif((wb.Workbook||{}).Names) o.push(write_names_ods(wb.Workbook.Names, wb.SheetNames, -1));\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tif(opts.bookType == \"fods\") o.push('');\n\t\telse o.push('');\n\t\treturn o.join(\"\");\n\t};\n})();\n\nfunction write_ods(wb/*:any*/, opts/*:any*/) {\n\tif(opts.bookType == \"fods\") return write_content_ods(wb, opts);\n\n\tvar zip = zip_new();\n\tvar f = \"\";\n\n\tvar manifest/*:Array >*/ = [];\n\tvar rdf/*:Array<[string, string]>*/ = [];\n\n\t/* Part 3 Section 3.3 MIME Media Type */\n\tf = \"mimetype\";\n\tzip_add_file(zip, f, \"application/vnd.oasis.opendocument.spreadsheet\");\n\n\t/* Part 1 Section 2.2 Documents */\n\tf = \"content.xml\";\n\tzip_add_file(zip, f, write_content_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"ContentFile\"]);\n\n\t/* TODO: these are hard-coded styles to satiate excel */\n\tf = \"styles.xml\";\n\tzip_add_file(zip, f, write_styles_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"StylesFile\"]);\n\n\t/* TODO: this is hard-coded to satiate excel */\n\tf = \"meta.xml\";\n\tzip_add_file(zip, f, XML_HEADER + write_meta_ods(/*::wb, opts*/));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"MetadataFile\"]);\n\n\t/* Part 3 Section 6 Metadata Manifest File */\n\tf = \"manifest.rdf\";\n\tzip_add_file(zip, f, write_rdf(rdf/*, opts*/));\n\tmanifest.push([f, \"application/rdf+xml\"]);\n\n\t/* Part 3 Section 4 Manifest File */\n\tf = \"META-INF/manifest.xml\";\n\tzip_add_file(zip, f, write_manifest(manifest/*, opts*/));\n\n\treturn zip;\n}\n\n/*! sheetjs (C) 2013-present SheetJS -- http://sheetjs.com */\nvar subarray = function() {\n try {\n if (typeof Uint8Array == \"undefined\")\n return \"slice\";\n if (typeof Uint8Array.prototype.subarray == \"undefined\")\n return \"slice\";\n if (typeof Buffer !== \"undefined\") {\n if (typeof Buffer.prototype.subarray == \"undefined\")\n return \"slice\";\n if ((typeof Buffer.from == \"function\" ? Buffer.from([72, 62]) : new Buffer([72, 62])) instanceof Uint8Array)\n return \"subarray\";\n return \"slice\";\n }\n return \"subarray\";\n } catch (e) {\n return \"slice\";\n }\n}();\nfunction u8_to_dataview(array) {\n return new DataView(array.buffer, array.byteOffset, array.byteLength);\n}\nfunction u8str(u8) {\n return typeof TextDecoder != \"undefined\" ? new TextDecoder().decode(u8) : utf8read(a2s(u8));\n}\nfunction stru8(str) {\n return typeof TextEncoder != \"undefined\" ? new TextEncoder().encode(str) : s2a(utf8write(str));\n}\nfunction u8concat(u8a) {\n var len = 0;\n for (var i = 0; i < u8a.length; ++i)\n len += u8a[i].length;\n var out = new Uint8Array(len);\n var off = 0;\n for (i = 0; i < u8a.length; ++i) {\n var u8 = u8a[i], L = u8.length;\n if (L < 250) {\n for (var j = 0; j < L; ++j)\n out[off++] = u8[j];\n } else {\n out.set(u8, off);\n off += L;\n }\n }\n return out;\n}\nfunction popcnt(x) {\n x -= x >> 1 & 1431655765;\n x = (x & 858993459) + (x >> 2 & 858993459);\n return (x + (x >> 4) & 252645135) * 16843009 >>> 24;\n}\nfunction readDecimal128LE(buf, offset) {\n var exp = (buf[offset + 15] & 127) << 7 | buf[offset + 14] >> 1;\n var mantissa = buf[offset + 14] & 1;\n for (var j = offset + 13; j >= offset; --j)\n mantissa = mantissa * 256 + buf[j];\n return (buf[offset + 15] & 128 ? -mantissa : mantissa) * Math.pow(10, exp - 6176);\n}\nfunction writeDecimal128LE(buf, offset, value) {\n var exp = Math.floor(value == 0 ? 0 : Math.LOG10E * Math.log(Math.abs(value))) + 6176 - 16;\n var mantissa = value / Math.pow(10, exp - 6176);\n buf[offset + 15] |= exp >> 7;\n buf[offset + 14] |= (exp & 127) << 1;\n for (var i = 0; mantissa >= 1; ++i, mantissa /= 256)\n buf[offset + i] = mantissa & 255;\n buf[offset + 15] |= value >= 0 ? 0 : 128;\n}\nfunction parse_varint49(buf, ptr) {\n var l = ptr.l;\n var usz = buf[l] & 127;\n varint:\n if (buf[l++] >= 128) {\n usz |= (buf[l] & 127) << 7;\n if (buf[l++] < 128)\n break varint;\n usz |= (buf[l] & 127) << 14;\n if (buf[l++] < 128)\n break varint;\n usz |= (buf[l] & 127) << 21;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 28);\n ++l;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 35);\n ++l;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 42);\n ++l;\n if (buf[l++] < 128)\n break varint;\n }\n ptr.l = l;\n return usz;\n}\nfunction write_varint49(v) {\n var usz = new Uint8Array(7);\n usz[0] = v & 127;\n var L = 1;\n sz:\n if (v > 127) {\n usz[L - 1] |= 128;\n usz[L] = v >> 7 & 127;\n ++L;\n if (v <= 16383)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v >> 14 & 127;\n ++L;\n if (v <= 2097151)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v >> 21 & 127;\n ++L;\n if (v <= 268435455)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v / 256 >>> 21 & 127;\n ++L;\n if (v <= 34359738367)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v / 65536 >>> 21 & 127;\n ++L;\n if (v <= 4398046511103)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v / 16777216 >>> 21 & 127;\n ++L;\n }\n return usz[subarray](0, L);\n}\nfunction parse_packed_varints(buf) {\n var ptr = { l: 0 };\n var out = [];\n while (ptr.l < buf.length)\n out.push(parse_varint49(buf, ptr));\n return out;\n}\nfunction write_packed_varints(nums) {\n return u8concat(nums.map(function(x) {\n return write_varint49(x);\n }));\n}\nfunction varint_to_i32(buf) {\n var l = 0, i32 = buf[l] & 127;\n if (buf[l++] < 128)\n return i32;\n i32 |= (buf[l] & 127) << 7;\n if (buf[l++] < 128)\n return i32;\n i32 |= (buf[l] & 127) << 14;\n if (buf[l++] < 128)\n return i32;\n i32 |= (buf[l] & 127) << 21;\n if (buf[l++] < 128)\n return i32;\n i32 |= (buf[l] & 15) << 28;\n return i32;\n}\nfunction varint_to_u64(buf) {\n var l = 0, lo = buf[l] & 127, hi = 0;\n varint:\n if (buf[l++] >= 128) {\n lo |= (buf[l] & 127) << 7;\n if (buf[l++] < 128)\n break varint;\n lo |= (buf[l] & 127) << 14;\n if (buf[l++] < 128)\n break varint;\n lo |= (buf[l] & 127) << 21;\n if (buf[l++] < 128)\n break varint;\n lo |= (buf[l] & 127) << 28;\n hi = buf[l] >> 4 & 7;\n if (buf[l++] < 128)\n break varint;\n hi |= (buf[l] & 127) << 3;\n if (buf[l++] < 128)\n break varint;\n hi |= (buf[l] & 127) << 10;\n if (buf[l++] < 128)\n break varint;\n hi |= (buf[l] & 127) << 17;\n if (buf[l++] < 128)\n break varint;\n hi |= (buf[l] & 127) << 24;\n if (buf[l++] < 128)\n break varint;\n hi |= (buf[l] & 127) << 31;\n }\n return [lo >>> 0, hi >>> 0];\n}\nfunction parse_shallow(buf) {\n var out = [], ptr = { l: 0 };\n while (ptr.l < buf.length) {\n var off = ptr.l;\n var num = parse_varint49(buf, ptr);\n var type = num & 7;\n num = num / 8 | 0;\n var data;\n var l = ptr.l;\n switch (type) {\n case 0:\n {\n while (buf[l++] >= 128)\n ;\n data = buf[subarray](ptr.l, l);\n ptr.l = l;\n }\n break;\n case 1:\n {\n data = buf[subarray](l, l + 8);\n ptr.l = l + 8;\n }\n break;\n case 2:\n {\n var len = parse_varint49(buf, ptr);\n data = buf[subarray](ptr.l, ptr.l + len);\n ptr.l += len;\n }\n break;\n case 5:\n {\n data = buf[subarray](l, l + 4);\n ptr.l = l + 4;\n }\n break;\n default:\n throw new Error(\"PB Type \".concat(type, \" for Field \").concat(num, \" at offset \").concat(off));\n }\n var v = { data: data, type: type };\n if (out[num] == null)\n out[num] = [];\n out[num].push(v);\n }\n return out;\n}\nfunction write_shallow(proto) {\n var out = [];\n proto.forEach(function(field, idx) {\n if (idx == 0)\n return;\n field.forEach(function(item) {\n if (!item.data)\n return;\n out.push(write_varint49(idx * 8 + item.type));\n if (item.type == 2)\n out.push(write_varint49(item.data.length));\n out.push(item.data);\n });\n });\n return u8concat(out);\n}\nfunction mappa(data, cb) {\n return (data == null ? void 0 : data.map(function(d) {\n return cb(d.data);\n })) || [];\n}\nfunction parse_iwa_file(buf) {\n var _a;\n var out = [], ptr = { l: 0 };\n while (ptr.l < buf.length) {\n var len = parse_varint49(buf, ptr);\n var ai = parse_shallow(buf[subarray](ptr.l, ptr.l + len));\n ptr.l += len;\n var res = {\n id: varint_to_i32(ai[1][0].data),\n messages: []\n };\n ai[2].forEach(function(b) {\n var mi = parse_shallow(b.data);\n var fl = varint_to_i32(mi[3][0].data);\n res.messages.push({\n meta: mi,\n data: buf[subarray](ptr.l, ptr.l + fl)\n });\n ptr.l += fl;\n });\n if ((_a = ai[3]) == null ? void 0 : _a[0])\n res.merge = varint_to_i32(ai[3][0].data) >>> 0 > 0;\n out.push(res);\n }\n return out;\n}\nfunction write_iwa_file(ias) {\n var bufs = [];\n ias.forEach(function(ia) {\n var ai = [\n [],\n [{ data: write_varint49(ia.id), type: 0 }],\n []\n ];\n if (ia.merge != null)\n ai[3] = [{ data: write_varint49(+!!ia.merge), type: 0 }];\n var midata = [];\n ia.messages.forEach(function(mi) {\n midata.push(mi.data);\n mi.meta[3] = [{ type: 0, data: write_varint49(mi.data.length) }];\n ai[2].push({ data: write_shallow(mi.meta), type: 2 });\n });\n var aipayload = write_shallow(ai);\n bufs.push(write_varint49(aipayload.length));\n bufs.push(aipayload);\n midata.forEach(function(mid) {\n return bufs.push(mid);\n });\n });\n return u8concat(bufs);\n}\nfunction parse_snappy_chunk(type, buf) {\n if (type != 0)\n throw new Error(\"Unexpected Snappy chunk type \".concat(type));\n var ptr = { l: 0 };\n var usz = parse_varint49(buf, ptr);\n var chunks = [];\n var l = ptr.l;\n while (l < buf.length) {\n var tag = buf[l] & 3;\n if (tag == 0) {\n var len = buf[l++] >> 2;\n if (len < 60)\n ++len;\n else {\n var c = len - 59;\n len = buf[l];\n if (c > 1)\n len |= buf[l + 1] << 8;\n if (c > 2)\n len |= buf[l + 2] << 16;\n if (c > 3)\n len |= buf[l + 3] << 24;\n len >>>= 0;\n len++;\n l += c;\n }\n chunks.push(buf[subarray](l, l + len));\n l += len;\n continue;\n } else {\n var offset = 0, length = 0;\n if (tag == 1) {\n length = (buf[l] >> 2 & 7) + 4;\n offset = (buf[l++] & 224) << 3;\n offset |= buf[l++];\n } else {\n length = (buf[l++] >> 2) + 1;\n if (tag == 2) {\n offset = buf[l] | buf[l + 1] << 8;\n l += 2;\n } else {\n offset = (buf[l] | buf[l + 1] << 8 | buf[l + 2] << 16 | buf[l + 3] << 24) >>> 0;\n l += 4;\n }\n }\n if (offset == 0)\n throw new Error(\"Invalid offset 0\");\n var j = chunks.length - 1, off = offset;\n while (j >= 0 && off >= chunks[j].length) {\n off -= chunks[j].length;\n --j;\n }\n if (j < 0) {\n if (off == 0)\n off = chunks[j = 0].length;\n else\n throw new Error(\"Invalid offset beyond length\");\n }\n if (length < off)\n chunks.push(chunks[j][subarray](chunks[j].length - off, chunks[j].length - off + length));\n else {\n if (off > 0) {\n chunks.push(chunks[j][subarray](chunks[j].length - off));\n length -= off;\n }\n ++j;\n while (length >= chunks[j].length) {\n chunks.push(chunks[j]);\n length -= chunks[j].length;\n ++j;\n }\n if (length)\n chunks.push(chunks[j][subarray](0, length));\n }\n if (chunks.length > 25)\n chunks = [u8concat(chunks)];\n }\n }\n var clen = 0;\n for (var u8i = 0; u8i < chunks.length; ++u8i)\n clen += chunks[u8i].length;\n if (clen != usz)\n throw new Error(\"Unexpected length: \".concat(clen, \" != \").concat(usz));\n return chunks;\n}\nfunction decompress_iwa_file(buf) {\n if (Array.isArray(buf))\n buf = new Uint8Array(buf);\n var out = [];\n var l = 0;\n while (l < buf.length) {\n var t = buf[l++];\n var len = buf[l] | buf[l + 1] << 8 | buf[l + 2] << 16;\n l += 3;\n out.push.apply(out, parse_snappy_chunk(t, buf[subarray](l, l + len)));\n l += len;\n }\n if (l !== buf.length)\n throw new Error(\"data is not a valid framed stream!\");\n return out.length == 1 ? out[0] : u8concat(out);\n}\nfunction compress_iwa_file(buf) {\n var out = [];\n var l = 0;\n while (l < buf.length) {\n var c = Math.min(buf.length - l, 268435455);\n var frame = new Uint8Array(4);\n out.push(frame);\n var usz = write_varint49(c);\n var L = usz.length;\n out.push(usz);\n if (c <= 60) {\n L++;\n out.push(new Uint8Array([c - 1 << 2]));\n } else if (c <= 256) {\n L += 2;\n out.push(new Uint8Array([240, c - 1 & 255]));\n } else if (c <= 65536) {\n L += 3;\n out.push(new Uint8Array([244, c - 1 & 255, c - 1 >> 8 & 255]));\n } else if (c <= 16777216) {\n L += 4;\n out.push(new Uint8Array([248, c - 1 & 255, c - 1 >> 8 & 255, c - 1 >> 16 & 255]));\n } else if (c <= 4294967296) {\n L += 5;\n out.push(new Uint8Array([252, c - 1 & 255, c - 1 >> 8 & 255, c - 1 >> 16 & 255, c - 1 >>> 24 & 255]));\n }\n out.push(buf[subarray](l, l + c));\n L += c;\n frame[0] = 0;\n frame[1] = L & 255;\n frame[2] = L >> 8 & 255;\n frame[3] = L >> 16 & 255;\n l += c;\n }\n return u8concat(out);\n}\nvar numbers_lut_new = function() {\n return { sst: [], rsst: [], ofmt: [], nfmt: [], fmla: [], ferr: [], cmnt: [] };\n};\nfunction numbers_format_cell(cell, t, flags, ofmt, nfmt) {\n var _a, _b, _c, _d;\n var ctype = t & 255, ver = t >> 8;\n var fmt = ver >= 5 ? nfmt : ofmt;\n dur:\n if (flags & (ver > 4 ? 8 : 4) && cell.t == \"n\" && ctype == 7) {\n var dstyle = ((_a = fmt[7]) == null ? void 0 : _a[0]) ? varint_to_i32(fmt[7][0].data) : -1;\n if (dstyle == -1)\n break dur;\n var dmin = ((_b = fmt[15]) == null ? void 0 : _b[0]) ? varint_to_i32(fmt[15][0].data) : -1;\n var dmax = ((_c = fmt[16]) == null ? void 0 : _c[0]) ? varint_to_i32(fmt[16][0].data) : -1;\n var auto = ((_d = fmt[40]) == null ? void 0 : _d[0]) ? varint_to_i32(fmt[40][0].data) : -1;\n var d = cell.v, dd = d;\n autodur:\n if (auto) {\n if (d == 0) {\n dmin = dmax = 2;\n break autodur;\n }\n if (d >= 604800)\n dmin = 1;\n else if (d >= 86400)\n dmin = 2;\n else if (d >= 3600)\n dmin = 4;\n else if (d >= 60)\n dmin = 8;\n else if (d >= 1)\n dmin = 16;\n else\n dmin = 32;\n if (Math.floor(d) != d)\n dmax = 32;\n else if (d % 60)\n dmax = 16;\n else if (d % 3600)\n dmax = 8;\n else if (d % 86400)\n dmax = 4;\n else if (d % 604800)\n dmax = 2;\n if (dmax < dmin)\n dmax = dmin;\n }\n if (dmin == -1 || dmax == -1)\n break dur;\n var dstr = [], zstr = [];\n if (dmin == 1) {\n dd = d / 604800;\n if (dmax == 1) {\n zstr.push('d\"d\"');\n } else {\n dd |= 0;\n d -= 604800 * dd;\n }\n dstr.push(dd + (dstyle == 2 ? \" week\" + (dd == 1 ? \"\" : \"s\") : dstyle == 1 ? \"w\" : \"\"));\n }\n if (dmin <= 2 && dmax >= 2) {\n dd = d / 86400;\n if (dmax > 2) {\n dd |= 0;\n d -= 86400 * dd;\n }\n zstr.push('d\"d\"');\n dstr.push(dd + (dstyle == 2 ? \" day\" + (dd == 1 ? \"\" : \"s\") : dstyle == 1 ? \"d\" : \"\"));\n }\n if (dmin <= 4 && dmax >= 4) {\n dd = d / 3600;\n if (dmax > 4) {\n dd |= 0;\n d -= 3600 * dd;\n }\n zstr.push((dmin >= 4 ? \"[h]\" : \"h\") + '\"h\"');\n dstr.push(dd + (dstyle == 2 ? \" hour\" + (dd == 1 ? \"\" : \"s\") : dstyle == 1 ? \"h\" : \"\"));\n }\n if (dmin <= 8 && dmax >= 8) {\n dd = d / 60;\n if (dmax > 8) {\n dd |= 0;\n d -= 60 * dd;\n }\n zstr.push((dmin >= 8 ? \"[m]\" : \"m\") + '\"m\"');\n if (dstyle == 0)\n dstr.push((dmin == 8 && dmax == 8 || dd >= 10 ? \"\" : \"0\") + dd);\n else\n dstr.push(dd + (dstyle == 2 ? \" minute\" + (dd == 1 ? \"\" : \"s\") : dstyle == 1 ? \"m\" : \"\"));\n }\n if (dmin <= 16 && dmax >= 16) {\n dd = d;\n if (dmax > 16) {\n dd |= 0;\n d -= dd;\n }\n zstr.push((dmin >= 16 ? \"[s]\" : \"s\") + '\"s\"');\n if (dstyle == 0)\n dstr.push((dmax == 16 && dmin == 16 || dd >= 10 ? \"\" : \"0\") + dd);\n else\n dstr.push(dd + (dstyle == 2 ? \" second\" + (dd == 1 ? \"\" : \"s\") : dstyle == 1 ? \"s\" : \"\"));\n }\n if (dmax >= 32) {\n dd = Math.round(1e3 * d);\n if (dmin < 32)\n zstr.push('.000\"ms\"');\n if (dstyle == 0)\n dstr.push((dd >= 100 ? \"\" : dd >= 10 ? \"0\" : \"00\") + dd);\n else\n dstr.push(dd + (dstyle == 2 ? \" millisecond\" + (dd == 1 ? \"\" : \"s\") : dstyle == 1 ? \"ms\" : \"\"));\n }\n cell.w = dstr.join(dstyle == 0 ? \":\" : \" \");\n cell.z = zstr.join(dstyle == 0 ? '\":\"' : \" \");\n if (dstyle == 0)\n cell.w = cell.w.replace(/:(\\d\\d\\d)$/, \".$1\");\n }\n}\nfunction parse_old_storage(buf, lut, v, opts) {\n var dv = u8_to_dataview(buf);\n var flags = dv.getUint32(4, true);\n var ridx = -1, sidx = -1, zidx = -1, ieee = NaN, dc = 0, dt = new Date(Date.UTC(2001, 0, 1));\n var doff = v > 1 ? 12 : 8;\n if (flags & 2) {\n zidx = dv.getUint32(doff, true);\n doff += 4;\n }\n doff += popcnt(flags & (v > 1 ? 3468 : 396)) * 4;\n if (flags & 512) {\n ridx = dv.getUint32(doff, true);\n doff += 4;\n }\n doff += popcnt(flags & (v > 1 ? 12288 : 4096)) * 4;\n if (flags & 16) {\n sidx = dv.getUint32(doff, true);\n doff += 4;\n }\n if (flags & 32) {\n ieee = dv.getFloat64(doff, true);\n doff += 8;\n }\n if (flags & 64) {\n dt.setTime(dt.getTime() + (dc = dv.getFloat64(doff, true)) * 1e3);\n doff += 8;\n }\n if (v > 1) {\n flags = dv.getUint32(8, true) >>> 16;\n if (flags & 255) {\n if (zidx == -1)\n zidx = dv.getUint32(doff, true);\n doff += 4;\n }\n }\n var ret;\n var t = buf[v >= 4 ? 1 : 2];\n switch (t) {\n case 0:\n return void 0;\n case 2:\n ret = { t: \"n\", v: ieee };\n break;\n case 3:\n ret = { t: \"s\", v: lut.sst[sidx] };\n break;\n case 5:\n {\n if (opts == null ? void 0 : opts.cellDates)\n ret = { t: \"d\", v: dt };\n else\n ret = { t: \"n\", v: dc / 86400 + 35430, z: table_fmt[14] };\n }\n break;\n case 6:\n ret = { t: \"b\", v: ieee > 0 };\n break;\n case 7:\n ret = { t: \"n\", v: ieee };\n break;\n case 8:\n ret = { t: \"e\", v: 0 };\n break;\n case 9:\n {\n if (ridx > -1) {\n var rts = lut.rsst[ridx];\n ret = { t: \"s\", v: rts.v };\n if (rts.l)\n ret.l = { Target: rts.l };\n } else\n throw new Error(\"Unsupported cell type \".concat(buf[subarray](0, 4)));\n }\n break;\n default:\n throw new Error(\"Unsupported cell type \".concat(buf[subarray](0, 4)));\n }\n if (zidx > -1)\n numbers_format_cell(ret, t | v << 8, flags, lut.ofmt[zidx], lut.nfmt[zidx]);\n if (t == 7)\n ret.v /= 86400;\n return ret;\n}\nfunction parse_new_storage(buf, lut, opts) {\n var dv = u8_to_dataview(buf);\n var flags = dv.getUint32(4, true);\n var fields = dv.getUint32(8, true);\n var doff = 12;\n var ridx = -1, sidx = -1, zidx = -1, d128 = NaN, ieee = NaN, dc = 0, dt = new Date(Date.UTC(2001, 0, 1)), eidx = -1, fidx = -1;\n if (fields & 1) {\n d128 = readDecimal128LE(buf, doff);\n doff += 16;\n }\n if (fields & 2) {\n ieee = dv.getFloat64(doff, true);\n doff += 8;\n }\n if (fields & 4) {\n dt.setTime(dt.getTime() + (dc = dv.getFloat64(doff, true)) * 1e3);\n doff += 8;\n }\n if (fields & 8) {\n sidx = dv.getUint32(doff, true);\n doff += 4;\n }\n if (fields & 16) {\n ridx = dv.getUint32(doff, true);\n doff += 4;\n }\n doff += popcnt(fields & 480) * 4;\n if (fields & 512) {\n fidx = dv.getUint32(doff, true);\n doff += 4;\n }\n doff += popcnt(fields & 1024) * 4;\n if (fields & 2048) {\n eidx = dv.getUint32(doff, true);\n doff += 4;\n }\n var ret;\n var t = buf[1];\n switch (t) {\n case 0:\n ret = { t: \"z\" };\n break;\n case 2:\n ret = { t: \"n\", v: d128 };\n break;\n case 3:\n ret = { t: \"s\", v: lut.sst[sidx] };\n break;\n case 5:\n {\n if (opts == null ? void 0 : opts.cellDates)\n ret = { t: \"d\", v: dt };\n else\n ret = { t: \"n\", v: dc / 86400 + 35430, z: table_fmt[14] };\n }\n break;\n case 6:\n ret = { t: \"b\", v: ieee > 0 };\n break;\n case 7:\n ret = { t: \"n\", v: ieee };\n break;\n case 8:\n ret = { t: \"e\", v: 0 };\n break;\n case 9:\n {\n if (ridx > -1) {\n var rts = lut.rsst[ridx];\n ret = { t: \"s\", v: rts.v };\n if (rts.l)\n ret.l = { Target: rts.l };\n } else\n throw new Error(\"Unsupported cell type \".concat(buf[1], \" : \").concat(fields & 31, \" : \").concat(buf[subarray](0, 4)));\n }\n break;\n case 10:\n ret = { t: \"n\", v: d128 };\n break;\n default:\n throw new Error(\"Unsupported cell type \".concat(buf[1], \" : \").concat(fields & 31, \" : \").concat(buf[subarray](0, 4)));\n }\n doff += popcnt(fields & 4096) * 4;\n if (fields & 516096) {\n if (zidx == -1)\n zidx = dv.getUint32(doff, true);\n doff += 4;\n }\n if (fields & 524288) {\n var cmntidx = dv.getUint32(doff, true);\n doff += 4;\n if (lut.cmnt[cmntidx])\n ret.c = iwa_to_s5s_comment(lut.cmnt[cmntidx]);\n }\n if (zidx > -1)\n numbers_format_cell(ret, t | 5 << 8, fields >> 13, lut.ofmt[zidx], lut.nfmt[zidx]);\n if (t == 7)\n ret.v /= 86400;\n return ret;\n}\nfunction write_new_storage(cell, lut) {\n var out = new Uint8Array(32), dv = u8_to_dataview(out), l = 12, fields = 0;\n out[0] = 5;\n switch (cell.t) {\n case \"n\":\n if (cell.z && fmt_is_date(cell.z)) {\n out[1] = 5;\n dv.setFloat64(l, (numdate(cell.v + 1462).getTime() - Date.UTC(2001, 0, 1)) / 1e3, true);\n fields |= 4;\n l += 8;\n break;\n } else {\n out[1] = 2;\n writeDecimal128LE(out, l, cell.v);\n fields |= 1;\n l += 16;\n }\n break;\n case \"b\":\n out[1] = 6;\n dv.setFloat64(l, cell.v ? 1 : 0, true);\n fields |= 2;\n l += 8;\n break;\n case \"s\":\n {\n var s = cell.v == null ? \"\" : String(cell.v);\n if (cell.l) {\n var irsst = lut.rsst.findIndex(function(v) {\n var _a;\n return v.v == s && v.l == ((_a = cell.l) == null ? void 0 : _a.Target);\n });\n if (irsst == -1)\n lut.rsst[irsst = lut.rsst.length] = { v: s, l: cell.l.Target };\n out[1] = 9;\n dv.setUint32(l, irsst, true);\n fields |= 16;\n l += 4;\n } else {\n var isst = lut.sst.indexOf(s);\n if (isst == -1)\n lut.sst[isst = lut.sst.length] = s;\n out[1] = 3;\n dv.setUint32(l, isst, true);\n fields |= 8;\n l += 4;\n }\n }\n break;\n case \"d\":\n out[1] = 5;\n dv.setFloat64(l, (cell.v.getTime() - Date.UTC(2001, 0, 1)) / 1e3, true);\n fields |= 4;\n l += 8;\n break;\n case \"z\":\n out[1] = 0;\n break;\n default:\n throw \"unsupported cell type \" + cell.t;\n }\n if (cell.c) {\n lut.cmnt.push(s5s_to_iwa_comment(cell.c));\n dv.setUint32(l, lut.cmnt.length - 1, true);\n fields |= 524288;\n l += 4;\n }\n dv.setUint32(8, fields, true);\n return out[subarray](0, l);\n}\nfunction write_old_storage(cell, lut) {\n var out = new Uint8Array(32), dv = u8_to_dataview(out), l = 12, fields = 0, s = \"\";\n out[0] = 4;\n switch (cell.t) {\n case \"n\":\n break;\n case \"b\":\n break;\n case \"s\":\n {\n s = cell.v == null ? \"\" : String(cell.v);\n if (cell.l) {\n var irsst = lut.rsst.findIndex(function(v) {\n var _a;\n return v.v == s && v.l == ((_a = cell.l) == null ? void 0 : _a.Target);\n });\n if (irsst == -1)\n lut.rsst[irsst = lut.rsst.length] = { v: s, l: cell.l.Target };\n out[1] = 9;\n dv.setUint32(l, irsst, true);\n fields |= 512;\n l += 4;\n } else {\n }\n }\n break;\n case \"d\":\n break;\n case \"e\":\n break;\n case \"z\":\n break;\n default:\n throw \"unsupported cell type \" + cell.t;\n }\n if (cell.c) {\n dv.setUint32(l, lut.cmnt.length - 1, true);\n fields |= 4096;\n l += 4;\n }\n switch (cell.t) {\n case \"n\":\n out[1] = 2;\n dv.setFloat64(l, cell.v, true);\n fields |= 32;\n l += 8;\n break;\n case \"b\":\n out[1] = 6;\n dv.setFloat64(l, cell.v ? 1 : 0, true);\n fields |= 32;\n l += 8;\n break;\n case \"s\":\n {\n s = cell.v == null ? \"\" : String(cell.v);\n if (cell.l) {\n } else {\n var isst = lut.sst.indexOf(s);\n if (isst == -1)\n lut.sst[isst = lut.sst.length] = s;\n out[1] = 3;\n dv.setUint32(l, isst, true);\n fields |= 16;\n l += 4;\n }\n }\n break;\n case \"d\":\n out[1] = 5;\n dv.setFloat64(l, (cell.v.getTime() - Date.UTC(2001, 0, 1)) / 1e3, true);\n fields |= 64;\n l += 8;\n break;\n case \"z\":\n out[1] = 0;\n break;\n default:\n throw \"unsupported cell type \" + cell.t;\n }\n dv.setUint32(8, fields, true);\n return out[subarray](0, l);\n}\nfunction parse_cell_storage(buf, lut, opts) {\n switch (buf[0]) {\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n return parse_old_storage(buf, lut, buf[0], opts);\n case 5:\n return parse_new_storage(buf, lut, opts);\n default:\n throw new Error(\"Unsupported payload version \".concat(buf[0]));\n }\n}\nfunction parse_TSP_Reference(buf) {\n var pb = parse_shallow(buf);\n return varint_to_i32(pb[1][0].data);\n}\nfunction write_TSP_Reference(idx) {\n return write_shallow([\n [],\n [{ type: 0, data: write_varint49(idx) }]\n ]);\n}\nfunction numbers_add_oref(iwa, ref) {\n var _a;\n var orefs = ((_a = iwa.messages[0].meta[5]) == null ? void 0 : _a[0]) ? parse_packed_varints(iwa.messages[0].meta[5][0].data) : [];\n var orefidx = orefs.indexOf(ref);\n if (orefidx == -1) {\n orefs.push(ref);\n iwa.messages[0].meta[5] = [{ type: 2, data: write_packed_varints(orefs) }];\n }\n}\nfunction numbers_del_oref(iwa, ref) {\n var _a;\n var orefs = ((_a = iwa.messages[0].meta[5]) == null ? void 0 : _a[0]) ? parse_packed_varints(iwa.messages[0].meta[5][0].data) : [];\n iwa.messages[0].meta[5] = [{ type: 2, data: write_packed_varints(orefs.filter(function(r) {\n return r != ref;\n })) }];\n}\nfunction parse_TST_TableDataList(M, root) {\n var pb = parse_shallow(root.data);\n var type = varint_to_i32(pb[1][0].data);\n var entries = pb[3];\n var data = [];\n (entries || []).forEach(function(entry) {\n var _a, _b;\n var le = parse_shallow(entry.data);\n if (!le[1])\n return;\n var key = varint_to_i32(le[1][0].data) >>> 0;\n switch (type) {\n case 1:\n data[key] = u8str(le[3][0].data);\n break;\n case 8:\n {\n var rt = M[parse_TSP_Reference(le[9][0].data)][0];\n var rtp = parse_shallow(rt.data);\n var rtpref = M[parse_TSP_Reference(rtp[1][0].data)][0];\n var mtype = varint_to_i32(rtpref.meta[1][0].data);\n if (mtype != 2001)\n throw new Error(\"2000 unexpected reference to \".concat(mtype));\n var tswpsa = parse_shallow(rtpref.data);\n var richtext = { v: tswpsa[3].map(function(x) {\n return u8str(x.data);\n }).join(\"\") };\n data[key] = richtext;\n sfields:\n if ((_a = tswpsa == null ? void 0 : tswpsa[11]) == null ? void 0 : _a[0]) {\n var smartfields = (_b = parse_shallow(tswpsa[11][0].data)) == null ? void 0 : _b[1];\n if (!smartfields)\n break sfields;\n smartfields.forEach(function(sf) {\n var _a2, _b2, _c;\n var attr = parse_shallow(sf.data);\n if ((_a2 = attr[2]) == null ? void 0 : _a2[0]) {\n var obj = M[parse_TSP_Reference((_b2 = attr[2]) == null ? void 0 : _b2[0].data)][0];\n var objtype = varint_to_i32(obj.meta[1][0].data);\n switch (objtype) {\n case 2032:\n var hlink = parse_shallow(obj.data);\n if (((_c = hlink == null ? void 0 : hlink[2]) == null ? void 0 : _c[0]) && !richtext.l)\n richtext.l = u8str(hlink[2][0].data);\n break;\n case 2039:\n break;\n default:\n console.log(\"unrecognized ObjectAttribute type \".concat(objtype));\n }\n }\n });\n }\n }\n break;\n case 2:\n data[key] = parse_shallow(le[6][0].data);\n break;\n case 3:\n data[key] = parse_shallow(le[5][0].data);\n break;\n case 10:\n {\n var cs = M[parse_TSP_Reference(le[10][0].data)][0];\n data[key] = parse_TSD_CommentStorageArchive(M, cs.data);\n }\n break;\n default:\n throw type;\n }\n });\n return data;\n}\nfunction parse_TST_TileRowInfo(u8, type) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n;\n var pb = parse_shallow(u8);\n var R = varint_to_i32(pb[1][0].data) >>> 0;\n var cnt = varint_to_i32(pb[2][0].data) >>> 0;\n var wide_offsets = ((_b = (_a = pb[8]) == null ? void 0 : _a[0]) == null ? void 0 : _b.data) && varint_to_i32(pb[8][0].data) > 0 || false;\n var used_storage_u8, used_storage;\n if (((_d = (_c = pb[7]) == null ? void 0 : _c[0]) == null ? void 0 : _d.data) && type != 0) {\n used_storage_u8 = (_f = (_e = pb[7]) == null ? void 0 : _e[0]) == null ? void 0 : _f.data;\n used_storage = (_h = (_g = pb[6]) == null ? void 0 : _g[0]) == null ? void 0 : _h.data;\n } else if (((_j = (_i = pb[4]) == null ? void 0 : _i[0]) == null ? void 0 : _j.data) && type != 1) {\n used_storage_u8 = (_l = (_k = pb[4]) == null ? void 0 : _k[0]) == null ? void 0 : _l.data;\n used_storage = (_n = (_m = pb[3]) == null ? void 0 : _m[0]) == null ? void 0 : _n.data;\n } else\n throw \"NUMBERS Tile missing \".concat(type, \" cell storage\");\n var width = wide_offsets ? 4 : 1;\n var used_storage_offsets = u8_to_dataview(used_storage_u8);\n var offsets = [];\n for (var C = 0; C < used_storage_u8.length / 2; ++C) {\n var off = used_storage_offsets.getUint16(C * 2, true);\n if (off < 65535)\n offsets.push([C, off]);\n }\n if (offsets.length != cnt)\n throw \"Expected \".concat(cnt, \" cells, found \").concat(offsets.length);\n var cells = [];\n for (C = 0; C < offsets.length - 1; ++C)\n cells[offsets[C][0]] = used_storage[subarray](offsets[C][1] * width, offsets[C + 1][1] * width);\n if (offsets.length >= 1)\n cells[offsets[offsets.length - 1][0]] = used_storage[subarray](offsets[offsets.length - 1][1] * width);\n return { R: R, cells: cells };\n}\nfunction parse_TST_Tile(M, root) {\n var _a;\n var pb = parse_shallow(root.data);\n var storage = -1;\n if ((_a = pb == null ? void 0 : pb[7]) == null ? void 0 : _a[0]) {\n if (varint_to_i32(pb[7][0].data) >>> 0)\n storage = 1;\n else\n storage = 0;\n }\n var ri = mappa(pb[5], function(u8) {\n return parse_TST_TileRowInfo(u8, storage);\n });\n return {\n nrows: varint_to_i32(pb[4][0].data) >>> 0,\n data: ri.reduce(function(acc, x) {\n if (!acc[x.R])\n acc[x.R] = [];\n x.cells.forEach(function(cell, C) {\n if (acc[x.R][C])\n throw new Error(\"Duplicate cell r=\".concat(x.R, \" c=\").concat(C));\n acc[x.R][C] = cell;\n });\n return acc;\n }, [])\n };\n}\nfunction parse_TSD_CommentStorageArchive(M, data) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;\n var out = { t: \"\", a: \"\" };\n var csp = parse_shallow(data);\n if ((_b = (_a = csp == null ? void 0 : csp[1]) == null ? void 0 : _a[0]) == null ? void 0 : _b.data)\n out.t = u8str((_d = (_c = csp == null ? void 0 : csp[1]) == null ? void 0 : _c[0]) == null ? void 0 : _d.data) || \"\";\n if ((_f = (_e = csp == null ? void 0 : csp[3]) == null ? void 0 : _e[0]) == null ? void 0 : _f.data) {\n var as = M[parse_TSP_Reference((_h = (_g = csp == null ? void 0 : csp[3]) == null ? void 0 : _g[0]) == null ? void 0 : _h.data)][0];\n var asp = parse_shallow(as.data);\n if ((_j = (_i = asp[1]) == null ? void 0 : _i[0]) == null ? void 0 : _j.data)\n out.a = u8str(asp[1][0].data);\n }\n if (csp == null ? void 0 : csp[4]) {\n out.replies = [];\n csp[4].forEach(function(pi) {\n var cs = M[parse_TSP_Reference(pi.data)][0];\n out.replies.push(parse_TSD_CommentStorageArchive(M, cs.data));\n });\n }\n return out;\n}\nfunction iwa_to_s5s_comment(iwa) {\n var out = [];\n out.push({ t: iwa.t || \"\", a: iwa.a, T: iwa.replies && iwa.replies.length > 0 });\n if (iwa.replies)\n iwa.replies.forEach(function(reply) {\n out.push({ t: reply.t || \"\", a: reply.a, T: true });\n });\n return out;\n}\nfunction s5s_to_iwa_comment(s5s) {\n var out = { a: \"\", t: \"\", replies: [] };\n for (var i = 0; i < s5s.length; ++i) {\n if (i == 0) {\n out.a = s5s[i].a;\n out.t = s5s[i].t;\n } else {\n out.replies.push({ a: s5s[i].a, t: s5s[i].t });\n }\n }\n return out;\n}\nfunction parse_TST_TableModelArchive(M, root, ws, opts) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i;\n var pb = parse_shallow(root.data);\n var range = { s: { r: 0, c: 0 }, e: { r: 0, c: 0 } };\n range.e.r = (varint_to_i32(pb[6][0].data) >>> 0) - 1;\n if (range.e.r < 0)\n throw new Error(\"Invalid row varint \".concat(pb[6][0].data));\n range.e.c = (varint_to_i32(pb[7][0].data) >>> 0) - 1;\n if (range.e.c < 0)\n throw new Error(\"Invalid col varint \".concat(pb[7][0].data));\n ws[\"!ref\"] = encode_range(range);\n var dense = ws[\"!data\"] != null, dws = ws;\n var store = parse_shallow(pb[4][0].data);\n var lut = numbers_lut_new();\n if ((_a = store[4]) == null ? void 0 : _a[0])\n lut.sst = parse_TST_TableDataList(M, M[parse_TSP_Reference(store[4][0].data)][0]);\n if ((_b = store[6]) == null ? void 0 : _b[0])\n lut.fmla = parse_TST_TableDataList(M, M[parse_TSP_Reference(store[6][0].data)][0]);\n if ((_c = store[11]) == null ? void 0 : _c[0])\n lut.ofmt = parse_TST_TableDataList(M, M[parse_TSP_Reference(store[11][0].data)][0]);\n if ((_d = store[12]) == null ? void 0 : _d[0])\n lut.ferr = parse_TST_TableDataList(M, M[parse_TSP_Reference(store[12][0].data)][0]);\n if ((_e = store[17]) == null ? void 0 : _e[0])\n lut.rsst = parse_TST_TableDataList(M, M[parse_TSP_Reference(store[17][0].data)][0]);\n if ((_f = store[19]) == null ? void 0 : _f[0])\n lut.cmnt = parse_TST_TableDataList(M, M[parse_TSP_Reference(store[19][0].data)][0]);\n if ((_g = store[22]) == null ? void 0 : _g[0])\n lut.nfmt = parse_TST_TableDataList(M, M[parse_TSP_Reference(store[22][0].data)][0]);\n var tile = parse_shallow(store[3][0].data);\n var _R = 0;\n tile[1].forEach(function(t) {\n var tl = parse_shallow(t.data);\n var ref2 = M[parse_TSP_Reference(tl[2][0].data)][0];\n var mtype2 = varint_to_i32(ref2.meta[1][0].data);\n if (mtype2 != 6002)\n throw new Error(\"6001 unexpected reference to \".concat(mtype2));\n var _tile = parse_TST_Tile(M, ref2);\n _tile.data.forEach(function(row, R) {\n row.forEach(function(buf, C) {\n var res = parse_cell_storage(buf, lut, opts);\n if (res) {\n if (dense) {\n if (!dws[\"!data\"][_R + R])\n dws[\"!data\"][_R + R] = [];\n dws[\"!data\"][_R + R][C] = res;\n } else {\n ws[encode_col(C) + encode_row(_R + R)] = res;\n }\n }\n });\n });\n _R += _tile.nrows;\n });\n if ((_h = store[13]) == null ? void 0 : _h[0]) {\n var ref = M[parse_TSP_Reference(store[13][0].data)][0];\n var mtype = varint_to_i32(ref.meta[1][0].data);\n if (mtype != 6144)\n throw new Error(\"Expected merge type 6144, found \".concat(mtype));\n ws[\"!merges\"] = (_i = parse_shallow(ref.data)) == null ? void 0 : _i[1].map(function(pi) {\n var merge = parse_shallow(pi.data);\n var origin = u8_to_dataview(parse_shallow(merge[1][0].data)[1][0].data), size = u8_to_dataview(parse_shallow(merge[2][0].data)[1][0].data);\n return {\n s: { r: origin.getUint16(0, true), c: origin.getUint16(2, true) },\n e: {\n r: origin.getUint16(0, true) + size.getUint16(0, true) - 1,\n c: origin.getUint16(2, true) + size.getUint16(2, true) - 1\n }\n };\n });\n }\n}\nfunction parse_TST_TableInfoArchive(M, root, opts) {\n var pb = parse_shallow(root.data);\n var out = { \"!ref\": \"A1\" };\n if (opts == null ? void 0 : opts.dense)\n out[\"!data\"] = [];\n var tableref = M[parse_TSP_Reference(pb[2][0].data)];\n var mtype = varint_to_i32(tableref[0].meta[1][0].data);\n if (mtype != 6001)\n throw new Error(\"6000 unexpected reference to \".concat(mtype));\n parse_TST_TableModelArchive(M, tableref[0], out, opts);\n return out;\n}\nfunction parse_TN_SheetArchive(M, root, opts) {\n var _a;\n var pb = parse_shallow(root.data);\n var out = {\n name: ((_a = pb[1]) == null ? void 0 : _a[0]) ? u8str(pb[1][0].data) : \"\",\n sheets: []\n };\n var shapeoffs = mappa(pb[2], parse_TSP_Reference);\n shapeoffs.forEach(function(off) {\n M[off].forEach(function(m) {\n var mtype = varint_to_i32(m.meta[1][0].data);\n if (mtype == 6e3)\n out.sheets.push(parse_TST_TableInfoArchive(M, m, opts));\n });\n });\n return out;\n}\nfunction parse_TN_DocumentArchive(M, root, opts) {\n var _a;\n var out = book_new();\n out.Workbook = { WBProps: { date1904: true } };\n var pb = parse_shallow(root.data);\n if ((_a = pb[2]) == null ? void 0 : _a[0])\n throw new Error(\"Keynote presentations are not supported\");\n var sheetoffs = mappa(pb[1], parse_TSP_Reference);\n sheetoffs.forEach(function(off) {\n M[off].forEach(function(m) {\n var mtype = varint_to_i32(m.meta[1][0].data);\n if (mtype == 2) {\n var root2 = parse_TN_SheetArchive(M, m, opts);\n root2.sheets.forEach(function(sheet, idx) {\n book_append_sheet(out, sheet, idx == 0 ? root2.name : root2.name + \"_\" + idx, true);\n });\n }\n });\n });\n if (out.SheetNames.length == 0)\n throw new Error(\"Empty NUMBERS file\");\n out.bookType = \"numbers\";\n return out;\n}\nfunction parse_numbers_iwa(cfb, opts) {\n var _a, _b, _c, _d, _e, _f, _g;\n var M = {}, indices = [];\n cfb.FullPaths.forEach(function(p) {\n if (p.match(/\\.iwpv2/))\n throw new Error(\"Unsupported password protection\");\n });\n cfb.FileIndex.forEach(function(s) {\n if (!s.name.match(/\\.iwa$/))\n return;\n if (s.content[0] != 0)\n return;\n var o;\n try {\n o = decompress_iwa_file(s.content);\n } catch (e) {\n return console.log(\"?? \" + s.content.length + \" \" + (e.message || e));\n }\n var packets;\n try {\n packets = parse_iwa_file(o);\n } catch (e) {\n return console.log(\"## \" + (e.message || e));\n }\n packets.forEach(function(packet) {\n M[packet.id] = packet.messages;\n indices.push(packet.id);\n });\n });\n if (!indices.length)\n throw new Error(\"File has no messages\");\n if (((_c = (_b = (_a = M == null ? void 0 : M[1]) == null ? void 0 : _a[0].meta) == null ? void 0 : _b[1]) == null ? void 0 : _c[0].data) && varint_to_i32(M[1][0].meta[1][0].data) == 1e4)\n throw new Error(\"Pages documents are not supported\");\n var docroot = ((_g = (_f = (_e = (_d = M == null ? void 0 : M[1]) == null ? void 0 : _d[0]) == null ? void 0 : _e.meta) == null ? void 0 : _f[1]) == null ? void 0 : _g[0].data) && varint_to_i32(M[1][0].meta[1][0].data) == 1 && M[1][0];\n if (!docroot)\n indices.forEach(function(idx) {\n M[idx].forEach(function(iwam) {\n var mtype = varint_to_i32(iwam.meta[1][0].data) >>> 0;\n if (mtype == 1) {\n if (!docroot)\n docroot = iwam;\n else\n throw new Error(\"Document has multiple roots\");\n }\n });\n });\n if (!docroot)\n throw new Error(\"Cannot find Document root\");\n return parse_TN_DocumentArchive(M, docroot, opts);\n}\nfunction write_TST_TileRowInfo(data, lut, wide) {\n var _a, _b, _c;\n var tri = [\n [],\n [{ type: 0, data: write_varint49(0) }],\n [{ type: 0, data: write_varint49(0) }],\n [{ type: 2, data: new Uint8Array([]) }],\n [{ type: 2, data: new Uint8Array(Array.from({ length: 510 }, function() {\n return 255;\n })) }],\n [{ type: 0, data: write_varint49(5) }],\n [{ type: 2, data: new Uint8Array([]) }],\n [{ type: 2, data: new Uint8Array(Array.from({ length: 510 }, function() {\n return 255;\n })) }],\n [{ type: 0, data: write_varint49(1) }]\n ];\n if (!((_a = tri[6]) == null ? void 0 : _a[0]) || !((_b = tri[7]) == null ? void 0 : _b[0]))\n throw \"Mutation only works on post-BNC storages!\";\n var cnt = 0;\n if (tri[7][0].data.length < 2 * data.length) {\n var new_7 = new Uint8Array(2 * data.length);\n new_7.set(tri[7][0].data);\n tri[7][0].data = new_7;\n }\n if (tri[4][0].data.length < 2 * data.length) {\n var new_4 = new Uint8Array(2 * data.length);\n new_4.set(tri[4][0].data);\n tri[4][0].data = new_4;\n }\n var dv = u8_to_dataview(tri[7][0].data), last_offset = 0, cell_storage = [];\n var _dv = u8_to_dataview(tri[4][0].data), _last_offset = 0, _cell_storage = [];\n var width = wide ? 4 : 1;\n for (var C = 0; C < data.length; ++C) {\n if (data[C] == null || data[C].t == \"z\" && !((_c = data[C].c) == null ? void 0 : _c.length) || data[C].t == \"e\") {\n dv.setUint16(C * 2, 65535, true);\n _dv.setUint16(C * 2, 65535);\n continue;\n }\n dv.setUint16(C * 2, last_offset / width, true);\n _dv.setUint16(C * 2, _last_offset / width, true);\n var celload, _celload;\n switch (data[C].t) {\n case \"d\":\n if (data[C].v instanceof Date) {\n celload = write_new_storage(data[C], lut);\n _celload = write_old_storage(data[C], lut);\n break;\n }\n celload = write_new_storage(data[C], lut);\n _celload = write_old_storage(data[C], lut);\n break;\n case \"s\":\n case \"n\":\n case \"b\":\n case \"z\":\n celload = write_new_storage(data[C], lut);\n _celload = write_old_storage(data[C], lut);\n break;\n default:\n throw new Error(\"Unsupported value \" + data[C]);\n }\n cell_storage.push(celload);\n last_offset += celload.length;\n {\n _cell_storage.push(_celload);\n _last_offset += _celload.length;\n }\n ++cnt;\n }\n tri[2][0].data = write_varint49(cnt);\n tri[5][0].data = write_varint49(5);\n for (; C < tri[7][0].data.length / 2; ++C) {\n dv.setUint16(C * 2, 65535, true);\n _dv.setUint16(C * 2, 65535, true);\n }\n tri[6][0].data = u8concat(cell_storage);\n tri[3][0].data = u8concat(_cell_storage);\n tri[8] = [{ type: 0, data: write_varint49(wide ? 1 : 0) }];\n return tri;\n}\nfunction write_iwam(type, payload) {\n return {\n meta: [\n [],\n [{ type: 0, data: write_varint49(type) }]\n ],\n data: payload\n };\n}\nfunction get_unique_msgid(dep, dependents) {\n if (!dependents.last)\n dependents.last = 927262;\n for (var i = dependents.last; i < 2e6; ++i)\n if (!dependents[i]) {\n dependents[dependents.last = i] = dep;\n return i;\n }\n throw new Error(\"Too many messages\");\n}\nfunction build_numbers_deps(cfb) {\n var dependents = {};\n var indices = [];\n cfb.FileIndex.map(function(fi, idx) {\n return [fi, cfb.FullPaths[idx]];\n }).forEach(function(row) {\n var fi = row[0], fp = row[1];\n if (fi.type != 2)\n return;\n if (!fi.name.match(/\\.iwa/))\n return;\n if (fi.content[0] != 0)\n return;\n parse_iwa_file(decompress_iwa_file(fi.content)).forEach(function(packet) {\n indices.push(packet.id);\n dependents[packet.id] = { deps: [], location: fp, type: varint_to_i32(packet.messages[0].meta[1][0].data) };\n });\n });\n cfb.FileIndex.forEach(function(fi) {\n if (!fi.name.match(/\\.iwa/))\n return;\n if (fi.content[0] != 0)\n return;\n parse_iwa_file(decompress_iwa_file(fi.content)).forEach(function(ia) {\n ia.messages.forEach(function(mess) {\n [5, 6].forEach(function(f) {\n if (!mess.meta[f])\n return;\n mess.meta[f].forEach(function(x) {\n dependents[ia.id].deps.push(varint_to_i32(x.data));\n });\n });\n });\n });\n });\n return dependents;\n}\nfunction write_TSP_Color_RGB(r, g, b) {\n return write_shallow([\n [],\n [{ type: 0, data: write_varint49(1) }],\n [],\n [{ type: 5, data: new Uint8Array(Float32Array.from([r / 255]).buffer) }],\n [{ type: 5, data: new Uint8Array(Float32Array.from([g / 255]).buffer) }],\n [{ type: 5, data: new Uint8Array(Float32Array.from([b / 255]).buffer) }],\n [{ type: 5, data: new Uint8Array(Float32Array.from([1]).buffer) }],\n [],\n [],\n [],\n [],\n [],\n [{ type: 0, data: write_varint49(1) }]\n ]);\n}\nfunction get_author_color(n) {\n switch (n) {\n case 0:\n return write_TSP_Color_RGB(99, 222, 171);\n case 1:\n return write_TSP_Color_RGB(162, 197, 240);\n case 2:\n return write_TSP_Color_RGB(255, 189, 189);\n }\n return write_TSP_Color_RGB(Math.random() * 255, Math.random() * 255, Math.random() * 255);\n}\nfunction write_numbers_iwa(wb, opts) {\n if (!opts || !opts.numbers)\n throw new Error(\"Must pass a `numbers` option -- check the README\");\n var cfb = CFB.read(opts.numbers, { type: \"base64\" });\n var deps = build_numbers_deps(cfb);\n var docroot = numbers_iwa_find(cfb, deps, 1);\n if (docroot == null)\n throw \"Could not find message \".concat(1, \" in Numbers template\");\n var sheetrefs = mappa(parse_shallow(docroot.messages[0].data)[1], parse_TSP_Reference);\n if (sheetrefs.length > 1)\n throw new Error(\"Template NUMBERS file must have exactly one sheet\");\n wb.SheetNames.forEach(function(name, idx) {\n if (idx >= 1) {\n numbers_add_ws(cfb, deps, idx + 1);\n docroot = numbers_iwa_find(cfb, deps, 1);\n sheetrefs = mappa(parse_shallow(docroot.messages[0].data)[1], parse_TSP_Reference);\n }\n write_numbers_ws(cfb, deps, wb.Sheets[name], name, idx, sheetrefs[idx]);\n });\n return cfb;\n}\nfunction numbers_iwa_doit(cfb, deps, id, cb) {\n var entry = CFB.find(cfb, deps[id].location);\n if (!entry)\n throw \"Could not find \".concat(deps[id].location, \" in Numbers template\");\n var x = parse_iwa_file(decompress_iwa_file(entry.content));\n var ainfo = x.find(function(packet) {\n return packet.id == id;\n });\n cb(ainfo, x);\n entry.content = compress_iwa_file(write_iwa_file(x));\n entry.size = entry.content.length;\n}\nfunction numbers_iwa_find(cfb, deps, id) {\n var entry = CFB.find(cfb, deps[id].location);\n if (!entry)\n throw \"Could not find \".concat(deps[id].location, \" in Numbers template\");\n var x = parse_iwa_file(decompress_iwa_file(entry.content));\n var ainfo = x.find(function(packet) {\n return packet.id == id;\n });\n return ainfo;\n}\nfunction numbers_add_meta(mlist, newid, newloc) {\n mlist[3].push({ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(newid) }],\n [{ type: 2, data: stru8(newloc.replace(/-.*$/, \"\")) }],\n [{ type: 2, data: stru8(newloc) }],\n [{ type: 2, data: new Uint8Array([2, 0, 0]) }],\n [{ type: 2, data: new Uint8Array([2, 0, 0]) }],\n [],\n [],\n [],\n [],\n [{ type: 0, data: write_varint49(0) }],\n [],\n [{ type: 0, data: write_varint49(0) }]\n ]) });\n mlist[1] = [{ type: 0, data: write_varint49(Math.max(newid + 1, varint_to_i32(mlist[1][0].data))) }];\n}\nfunction numbers_add_msg(cfb, type, msg, path, deps, id) {\n if (!id)\n id = get_unique_msgid({ deps: [], location: \"\", type: type }, deps);\n var loc = \"\".concat(path, \"-\").concat(id, \".iwa\");\n deps[id].location = \"Root Entry\" + loc;\n CFB.utils.cfb_add(cfb, loc, compress_iwa_file(write_iwa_file([{\n id: id,\n messages: [write_iwam(type, write_shallow(msg))]\n }])));\n var newloc = loc.replace(/^[\\/]/, \"\").replace(/^Index\\//, \"\").replace(/\\.iwa$/, \"\");\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n numbers_add_meta(mlist, id || 0, newloc);\n ai.messages[0].data = write_shallow(mlist);\n });\n return id;\n}\nfunction numbers_meta_add_dep(mlist, deps, id, dep) {\n var loc = deps[id].location.replace(/^Root Entry\\//, \"\").replace(/^Index\\//, \"\").replace(/\\.iwa$/, \"\");\n var parentidx = mlist[3].findIndex(function(m) {\n var _a, _b;\n var mm = parse_shallow(m.data);\n if ((_a = mm[3]) == null ? void 0 : _a[0])\n return u8str(mm[3][0].data) == loc;\n if (((_b = mm[2]) == null ? void 0 : _b[0]) && u8str(mm[2][0].data) == loc)\n return true;\n return false;\n });\n var parent = parse_shallow(mlist[3][parentidx].data);\n if (!parent[6])\n parent[6] = [];\n (Array.isArray(dep) ? dep : [dep]).forEach(function(dep2) {\n parent[6].push({\n type: 2,\n data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(dep2) }]\n ])\n });\n });\n mlist[3][parentidx].data = write_shallow(parent);\n}\nfunction numbers_meta_del_dep(mlist, deps, id, dep) {\n var loc = deps[id].location.replace(/^Root Entry\\//, \"\").replace(/^Index\\//, \"\").replace(/\\.iwa$/, \"\");\n var parentidx = mlist[3].findIndex(function(m) {\n var _a, _b;\n var mm = parse_shallow(m.data);\n if ((_a = mm[3]) == null ? void 0 : _a[0])\n return u8str(mm[3][0].data) == loc;\n if (((_b = mm[2]) == null ? void 0 : _b[0]) && u8str(mm[2][0].data) == loc)\n return true;\n return false;\n });\n var parent = parse_shallow(mlist[3][parentidx].data);\n if (!parent[6])\n parent[6] = [];\n parent[6] = parent[6].filter(function(m) {\n return varint_to_i32(parse_shallow(m.data)[1][0].data) != dep;\n });\n mlist[3][parentidx].data = write_shallow(parent);\n}\nfunction numbers_add_ws(cfb, deps, wsidx) {\n var sheetref = -1, newsheetref = -1;\n var remap = {};\n numbers_iwa_doit(cfb, deps, 1, function(docroot, arch) {\n var doc = parse_shallow(docroot.messages[0].data);\n sheetref = parse_TSP_Reference(parse_shallow(docroot.messages[0].data)[1][0].data);\n newsheetref = get_unique_msgid({ deps: [1], location: deps[sheetref].location, type: 2 }, deps);\n remap[sheetref] = newsheetref;\n numbers_add_oref(docroot, newsheetref);\n doc[1].push({ type: 2, data: write_TSP_Reference(newsheetref) });\n var sheet = numbers_iwa_find(cfb, deps, sheetref);\n sheet.id = newsheetref;\n if (deps[1].location == deps[newsheetref].location)\n arch.push(sheet);\n else\n numbers_iwa_doit(cfb, deps, newsheetref, function(_, x) {\n return x.push(sheet);\n });\n docroot.messages[0].data = write_shallow(doc);\n });\n var tiaref = -1;\n numbers_iwa_doit(cfb, deps, newsheetref, function(sheetroot, arch) {\n var sa = parse_shallow(sheetroot.messages[0].data);\n for (var i = 3; i <= 69; ++i)\n delete sa[i];\n var drawables = mappa(sa[2], parse_TSP_Reference);\n drawables.forEach(function(n) {\n return numbers_del_oref(sheetroot, n);\n });\n tiaref = get_unique_msgid({ deps: [newsheetref], location: deps[drawables[0]].location, type: deps[drawables[0]].type }, deps);\n numbers_add_oref(sheetroot, tiaref);\n remap[drawables[0]] = tiaref;\n sa[2] = [{ type: 2, data: write_TSP_Reference(tiaref) }];\n var tia = numbers_iwa_find(cfb, deps, drawables[0]);\n tia.id = tiaref;\n if (deps[drawables[0]].location == deps[newsheetref].location)\n arch.push(tia);\n else {\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n numbers_meta_add_dep(mlist, deps, newsheetref, tiaref);\n ai.messages[0].data = write_shallow(mlist);\n });\n numbers_iwa_doit(cfb, deps, tiaref, function(_, x) {\n return x.push(tia);\n });\n }\n sheetroot.messages[0].data = write_shallow(sa);\n });\n var tmaref = -1;\n numbers_iwa_doit(cfb, deps, tiaref, function(tiaroot, arch) {\n var tia = parse_shallow(tiaroot.messages[0].data);\n var da = parse_shallow(tia[1][0].data);\n for (var i = 3; i <= 69; ++i)\n delete da[i];\n var dap = parse_TSP_Reference(da[2][0].data);\n da[2][0].data = write_TSP_Reference(remap[dap]);\n tia[1][0].data = write_shallow(da);\n var oldtmaref = parse_TSP_Reference(tia[2][0].data);\n numbers_del_oref(tiaroot, oldtmaref);\n tmaref = get_unique_msgid({ deps: [tiaref], location: deps[oldtmaref].location, type: deps[oldtmaref].type }, deps);\n numbers_add_oref(tiaroot, tmaref);\n remap[oldtmaref] = tmaref;\n tia[2][0].data = write_TSP_Reference(tmaref);\n var tma = numbers_iwa_find(cfb, deps, oldtmaref);\n tma.id = tmaref;\n if (deps[tiaref].location == deps[tmaref].location)\n arch.push(tma);\n else\n numbers_iwa_doit(cfb, deps, tmaref, function(_, x) {\n return x.push(tma);\n });\n tiaroot.messages[0].data = write_shallow(tia);\n });\n numbers_iwa_doit(cfb, deps, tmaref, function(tmaroot, arch) {\n var _a, _b;\n var tma = parse_shallow(tmaroot.messages[0].data);\n var uuid = u8str(tma[1][0].data), new_uuid = uuid.replace(/-[A-Z0-9]*/, \"-\".concat((\"0000\" + wsidx.toString(16)).slice(-4)));\n tma[1][0].data = stru8(new_uuid);\n [12, 13, 29, 31, 32, 33, 39, 44, 47, 81, 82, 84].forEach(function(n) {\n return delete tma[n];\n });\n if (tma[45]) {\n var srrta = parse_shallow(tma[45][0].data);\n var ref = parse_TSP_Reference(srrta[1][0].data);\n numbers_del_oref(tmaroot, ref);\n delete tma[45];\n }\n if (tma[70]) {\n var hsoa = parse_shallow(tma[70][0].data);\n (_a = hsoa[2]) == null ? void 0 : _a.forEach(function(item) {\n var hsa = parse_shallow(item.data);\n [2, 3].map(function(n) {\n return hsa[n][0];\n }).forEach(function(hseadata) {\n var hsea = parse_shallow(hseadata.data);\n if (!hsea[8])\n return;\n var ref2 = parse_TSP_Reference(hsea[8][0].data);\n numbers_del_oref(tmaroot, ref2);\n });\n });\n delete tma[70];\n }\n [\n 46,\n 30,\n 34,\n 35,\n 36,\n 38,\n 48,\n 49,\n 60,\n 61,\n 62,\n 63,\n 64,\n 71,\n 72,\n 73,\n 74,\n 75,\n 85,\n 86,\n 87,\n 88,\n 89\n ].forEach(function(n) {\n if (!tma[n])\n return;\n var ref2 = parse_TSP_Reference(tma[n][0].data);\n delete tma[n];\n numbers_del_oref(tmaroot, ref2);\n });\n var store = parse_shallow(tma[4][0].data);\n {\n [2, 4, 5, 6, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22].forEach(function(n) {\n var _a2;\n if (!((_a2 = store[n]) == null ? void 0 : _a2[0]))\n return;\n var oldref = parse_TSP_Reference(store[n][0].data);\n var newref = get_unique_msgid({ deps: [tmaref], location: deps[oldref].location, type: deps[oldref].type }, deps);\n numbers_del_oref(tmaroot, oldref);\n numbers_add_oref(tmaroot, newref);\n remap[oldref] = newref;\n var msg = numbers_iwa_find(cfb, deps, oldref);\n msg.id = newref;\n if (deps[oldref].location == deps[tmaref].location)\n arch.push(msg);\n else {\n deps[newref].location = deps[oldref].location.replace(oldref.toString(), newref.toString());\n if (deps[newref].location == deps[oldref].location)\n deps[newref].location = deps[newref].location.replace(/\\.iwa/, \"-\".concat(newref, \".iwa\"));\n CFB.utils.cfb_add(cfb, deps[newref].location, compress_iwa_file(write_iwa_file([msg])));\n var newloc = deps[newref].location.replace(/^Root Entry\\//, \"\").replace(/^Index\\//, \"\").replace(/\\.iwa$/, \"\");\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n numbers_add_meta(mlist, newref, newloc);\n numbers_meta_add_dep(mlist, deps, tmaref, newref);\n ai.messages[0].data = write_shallow(mlist);\n });\n }\n store[n][0].data = write_TSP_Reference(newref);\n });\n var row_headers = parse_shallow(store[1][0].data);\n {\n (_b = row_headers[2]) == null ? void 0 : _b.forEach(function(tspref) {\n var oldref = parse_TSP_Reference(tspref.data);\n var newref = get_unique_msgid({ deps: [tmaref], location: deps[oldref].location, type: deps[oldref].type }, deps);\n numbers_del_oref(tmaroot, oldref);\n numbers_add_oref(tmaroot, newref);\n remap[oldref] = newref;\n var msg = numbers_iwa_find(cfb, deps, oldref);\n msg.id = newref;\n if (deps[oldref].location == deps[tmaref].location) {\n arch.push(msg);\n } else {\n deps[newref].location = deps[oldref].location.replace(oldref.toString(), newref.toString());\n if (deps[newref].location == deps[oldref].location)\n deps[newref].location = deps[newref].location.replace(/\\.iwa/, \"-\".concat(newref, \".iwa\"));\n CFB.utils.cfb_add(cfb, deps[newref].location, compress_iwa_file(write_iwa_file([msg])));\n var newloc = deps[newref].location.replace(/^Root Entry\\//, \"\").replace(/^Index\\//, \"\").replace(/\\.iwa$/, \"\");\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n numbers_add_meta(mlist, newref, newloc);\n numbers_meta_add_dep(mlist, deps, tmaref, newref);\n ai.messages[0].data = write_shallow(mlist);\n });\n }\n tspref.data = write_TSP_Reference(newref);\n });\n }\n store[1][0].data = write_shallow(row_headers);\n var tiles = parse_shallow(store[3][0].data);\n {\n tiles[1].forEach(function(t) {\n var tst = parse_shallow(t.data);\n var oldtileref = parse_TSP_Reference(tst[2][0].data);\n var newtileref = remap[oldtileref];\n if (!remap[oldtileref]) {\n newtileref = get_unique_msgid({ deps: [tmaref], location: \"\", type: deps[oldtileref].type }, deps);\n deps[newtileref].location = \"Root Entry/Index/Tables/Tile-\".concat(newtileref, \".iwa\");\n remap[oldtileref] = newtileref;\n var oldtile = numbers_iwa_find(cfb, deps, oldtileref);\n oldtile.id = newtileref;\n numbers_del_oref(tmaroot, oldtileref);\n numbers_add_oref(tmaroot, newtileref);\n CFB.utils.cfb_add(cfb, \"/Index/Tables/Tile-\".concat(newtileref, \".iwa\"), compress_iwa_file(write_iwa_file([oldtile])));\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n mlist[3].push({ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(newtileref) }],\n [{ type: 2, data: stru8(\"Tables/Tile\") }],\n [{ type: 2, data: stru8(\"Tables/Tile-\".concat(newtileref)) }],\n [{ type: 2, data: new Uint8Array([2, 0, 0]) }],\n [{ type: 2, data: new Uint8Array([2, 0, 0]) }],\n [],\n [],\n [],\n [],\n [{ type: 0, data: write_varint49(0) }],\n [],\n [{ type: 0, data: write_varint49(0) }]\n ]) });\n mlist[1] = [{ type: 0, data: write_varint49(Math.max(newtileref + 1, varint_to_i32(mlist[1][0].data))) }];\n numbers_meta_add_dep(mlist, deps, tmaref, newtileref);\n ai.messages[0].data = write_shallow(mlist);\n });\n }\n tst[2][0].data = write_TSP_Reference(newtileref);\n t.data = write_shallow(tst);\n });\n }\n store[3][0].data = write_shallow(tiles);\n }\n tma[4][0].data = write_shallow(store);\n tmaroot.messages[0].data = write_shallow(tma);\n });\n}\nfunction write_numbers_ws(cfb, deps, ws, wsname, sheetidx, rootref) {\n var drawables = [];\n numbers_iwa_doit(cfb, deps, rootref, function(docroot) {\n var sheetref = parse_shallow(docroot.messages[0].data);\n {\n sheetref[1] = [{ type: 2, data: stru8(wsname) }];\n drawables = mappa(sheetref[2], parse_TSP_Reference);\n }\n docroot.messages[0].data = write_shallow(sheetref);\n });\n var tia = numbers_iwa_find(cfb, deps, drawables[0]);\n var tmaref = parse_TSP_Reference(parse_shallow(tia.messages[0].data)[2][0].data);\n numbers_iwa_doit(cfb, deps, tmaref, function(docroot, x) {\n return write_numbers_tma(cfb, deps, ws, docroot, x, tmaref);\n });\n}\nvar USE_WIDE_ROWS = true;\nfunction write_numbers_tma(cfb, deps, ws, tmaroot, tmafile, tmaref) {\n var range = decode_range(ws[\"!ref\"]);\n range.s.r = range.s.c = 0;\n var trunc = false;\n if (range.e.c > 999) {\n trunc = true;\n range.e.c = 999;\n }\n if (range.e.r > 999999) {\n trunc = true;\n range.e.r = 999999;\n }\n if (trunc)\n console.error(\"Truncating to \".concat(encode_range(range)));\n var data = [];\n if (ws[\"!data\"])\n data = ws[\"!data\"];\n else {\n var colstr = [];\n for (var _C = 0; _C <= range.e.c; ++_C)\n colstr[_C] = encode_col(_C);\n for (var R_ = 0; R_ <= range.e.r; ++R_) {\n data[R_] = [];\n var _R = \"\" + (R_ + 1);\n for (_C = 0; _C <= range.e.c; ++_C) {\n var _cell = ws[colstr[_C] + _R];\n if (!_cell)\n continue;\n data[R_][_C] = _cell;\n }\n }\n }\n var LUT = {\n cmnt: [{ a: \"~54ee77S~\", t: \"... the people who are crazy enough to think they can change the world, are the ones who do.\" }],\n ferr: [],\n fmla: [],\n nfmt: [],\n ofmt: [],\n rsst: [{ v: \"~54ee77S~\", l: \"https://sheetjs.com/\" }],\n sst: [\"~Sh33tJ5~\"]\n };\n var pb = parse_shallow(tmaroot.messages[0].data);\n {\n pb[6][0].data = write_varint49(range.e.r + 1);\n pb[7][0].data = write_varint49(range.e.c + 1);\n delete pb[46];\n var store = parse_shallow(pb[4][0].data);\n {\n var row_header_ref = parse_TSP_Reference(parse_shallow(store[1][0].data)[2][0].data);\n numbers_iwa_doit(cfb, deps, row_header_ref, function(rowhead, _x) {\n var _a;\n var base_bucket = parse_shallow(rowhead.messages[0].data);\n if ((_a = base_bucket == null ? void 0 : base_bucket[2]) == null ? void 0 : _a[0])\n for (var R2 = 0; R2 < data.length; ++R2) {\n var _bucket = parse_shallow(base_bucket[2][0].data);\n _bucket[1][0].data = write_varint49(R2);\n _bucket[4][0].data = write_varint49(data[R2].length);\n base_bucket[2][R2] = { type: base_bucket[2][0].type, data: write_shallow(_bucket) };\n }\n rowhead.messages[0].data = write_shallow(base_bucket);\n });\n var col_header_ref = parse_TSP_Reference(store[2][0].data);\n numbers_iwa_doit(cfb, deps, col_header_ref, function(colhead, _x) {\n var base_bucket = parse_shallow(colhead.messages[0].data);\n for (var C = 0; C <= range.e.c; ++C) {\n var _bucket = parse_shallow(base_bucket[2][0].data);\n _bucket[1][0].data = write_varint49(C);\n _bucket[4][0].data = write_varint49(range.e.r + 1);\n base_bucket[2][C] = { type: base_bucket[2][0].type, data: write_shallow(_bucket) };\n }\n colhead.messages[0].data = write_shallow(base_bucket);\n });\n var rbtree = parse_shallow(store[9][0].data);\n rbtree[1] = [];\n var tilestore = parse_shallow(store[3][0].data);\n {\n var tstride = 256;\n tilestore[2] = [{ type: 0, data: write_varint49(tstride) }];\n var tileref = parse_TSP_Reference(parse_shallow(tilestore[1][0].data)[2][0].data);\n var save_token = function() {\n var metadata = numbers_iwa_find(cfb, deps, 2);\n var mlist = parse_shallow(metadata.messages[0].data);\n var mlst = mlist[3].filter(function(m) {\n return varint_to_i32(parse_shallow(m.data)[1][0].data) == tileref;\n });\n return (mlst == null ? void 0 : mlst.length) ? varint_to_i32(parse_shallow(mlst[0].data)[12][0].data) : 0;\n }();\n {\n CFB.utils.cfb_del(cfb, deps[tileref].location);\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n mlist[3] = mlist[3].filter(function(m) {\n return varint_to_i32(parse_shallow(m.data)[1][0].data) != tileref;\n });\n numbers_meta_del_dep(mlist, deps, tmaref, tileref);\n ai.messages[0].data = write_shallow(mlist);\n });\n numbers_del_oref(tmaroot, tileref);\n }\n tilestore[1] = [];\n var ntiles = Math.ceil((range.e.r + 1) / tstride);\n for (var tidx = 0; tidx < ntiles; ++tidx) {\n var newtileid = get_unique_msgid({\n deps: [],\n location: \"\",\n type: 6002\n }, deps);\n deps[newtileid].location = \"Root Entry/Index/Tables/Tile-\".concat(newtileid, \".iwa\");\n var tiledata = [\n [],\n [{ type: 0, data: write_varint49(0) }],\n [{ type: 0, data: write_varint49(Math.min(range.e.r + 1, (tidx + 1) * tstride)) }],\n [{ type: 0, data: write_varint49(0) }],\n [{ type: 0, data: write_varint49(Math.min((tidx + 1) * tstride, range.e.r + 1) - tidx * tstride) }],\n [],\n [{ type: 0, data: write_varint49(5) }],\n [{ type: 0, data: write_varint49(1) }],\n [{ type: 0, data: write_varint49(USE_WIDE_ROWS ? 1 : 0) }]\n ];\n for (var R = tidx * tstride; R <= Math.min(range.e.r, (tidx + 1) * tstride - 1); ++R) {\n var tilerow = write_TST_TileRowInfo(data[R], LUT, USE_WIDE_ROWS);\n tilerow[1][0].data = write_varint49(R - tidx * tstride);\n tiledata[5].push({ data: write_shallow(tilerow), type: 2 });\n }\n tilestore[1].push({ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(tidx) }],\n [{ type: 2, data: write_TSP_Reference(newtileid) }]\n ]) });\n var newtile = {\n id: newtileid,\n messages: [write_iwam(6002, write_shallow(tiledata))]\n };\n var tilecontent = compress_iwa_file(write_iwa_file([newtile]));\n CFB.utils.cfb_add(cfb, \"/Index/Tables/Tile-\".concat(newtileid, \".iwa\"), tilecontent);\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n mlist[3].push({ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(newtileid) }],\n [{ type: 2, data: stru8(\"Tables/Tile\") }],\n [{ type: 2, data: stru8(\"Tables/Tile-\".concat(newtileid)) }],\n [{ type: 2, data: new Uint8Array([2, 0, 0]) }],\n [{ type: 2, data: new Uint8Array([2, 0, 0]) }],\n [],\n [],\n [],\n [],\n [{ type: 0, data: write_varint49(0) }],\n [],\n [{ type: 0, data: write_varint49(save_token) }]\n ]) });\n mlist[1] = [{ type: 0, data: write_varint49(Math.max(newtileid + 1, varint_to_i32(mlist[1][0].data))) }];\n numbers_meta_add_dep(mlist, deps, tmaref, newtileid);\n ai.messages[0].data = write_shallow(mlist);\n });\n numbers_add_oref(tmaroot, newtileid);\n rbtree[1].push({ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(tidx * tstride) }],\n [{ type: 0, data: write_varint49(tidx) }]\n ]) });\n }\n }\n store[3][0].data = write_shallow(tilestore);\n store[9][0].data = write_shallow(rbtree);\n store[10] = [{ type: 2, data: new Uint8Array([]) }];\n if (ws[\"!merges\"]) {\n var mergeid = get_unique_msgid({\n type: 6144,\n deps: [tmaref],\n location: deps[tmaref].location\n }, deps);\n tmafile.push({\n id: mergeid,\n messages: [write_iwam(6144, write_shallow([\n [],\n ws[\"!merges\"].map(function(m) {\n return { type: 2, data: write_shallow([\n [],\n [{ type: 2, data: write_shallow([\n [],\n [{ type: 5, data: new Uint8Array(new Uint16Array([m.s.r, m.s.c]).buffer) }]\n ]) }],\n [{ type: 2, data: write_shallow([\n [],\n [{ type: 5, data: new Uint8Array(new Uint16Array([m.e.r - m.s.r + 1, m.e.c - m.s.c + 1]).buffer) }]\n ]) }]\n ]) };\n })\n ]))]\n });\n store[13] = [{ type: 2, data: write_TSP_Reference(mergeid) }];\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n numbers_meta_add_dep(mlist, deps, tmaref, mergeid);\n ai.messages[0].data = write_shallow(mlist);\n });\n numbers_add_oref(tmaroot, mergeid);\n } else\n delete store[13];\n var sstref = parse_TSP_Reference(store[4][0].data);\n numbers_iwa_doit(cfb, deps, sstref, function(sstroot) {\n var sstdata = parse_shallow(sstroot.messages[0].data);\n {\n sstdata[3] = [];\n LUT.sst.forEach(function(str, i) {\n if (i == 0)\n return;\n sstdata[3].push({ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(i) }],\n [{ type: 0, data: write_varint49(1) }],\n [{ type: 2, data: stru8(str) }]\n ]) });\n });\n }\n sstroot.messages[0].data = write_shallow(sstdata);\n });\n var rsstref = parse_TSP_Reference(store[17][0].data);\n numbers_iwa_doit(cfb, deps, rsstref, function(rsstroot) {\n var rsstdata = parse_shallow(rsstroot.messages[0].data);\n rsstdata[3] = [];\n var style_indices = [\n 904980,\n 903835,\n 903815,\n 903845\n ];\n LUT.rsst.forEach(function(rsst, i) {\n if (i == 0)\n return;\n var tswpsa = [\n [],\n [{ type: 0, data: new Uint8Array([5]) }],\n [],\n [{ type: 2, data: stru8(rsst.v) }]\n ];\n tswpsa[10] = [{ type: 0, data: new Uint8Array([1]) }];\n tswpsa[19] = [{ type: 2, data: new Uint8Array([10, 6, 8, 0, 18, 2, 101, 110]) }];\n tswpsa[5] = [{ type: 2, data: new Uint8Array([10, 8, 8, 0, 18, 4, 8, 155, 149, 55]) }];\n tswpsa[2] = [{ type: 2, data: new Uint8Array([8, 148, 158, 55]) }];\n tswpsa[6] = [{ type: 2, data: new Uint8Array([10, 6, 8, 0, 16, 0, 24, 0]) }];\n tswpsa[7] = [{ type: 2, data: new Uint8Array([10, 8, 8, 0, 18, 4, 8, 135, 149, 55]) }];\n tswpsa[8] = [{ type: 2, data: new Uint8Array([10, 8, 8, 0, 18, 4, 8, 165, 149, 55]) }];\n tswpsa[14] = [{ type: 2, data: new Uint8Array([10, 6, 8, 0, 16, 0, 24, 0]) }];\n tswpsa[24] = [{ type: 2, data: new Uint8Array([10, 6, 8, 0, 16, 0, 24, 0]) }];\n var tswpsaid = get_unique_msgid({ deps: [], location: \"\", type: 2001 }, deps);\n var tswpsarefs = [];\n if (rsst.l) {\n var newhlinkid = numbers_add_msg(cfb, 2032, [\n [],\n [],\n [{ type: 2, data: stru8(rsst.l) }]\n ], \"/Index/Tables/DataList\", deps);\n tswpsa[11] = [];\n var smartfield = [[], []];\n if (!smartfield[1])\n smartfield[1] = [];\n smartfield[1].push({ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(0) }],\n [{ type: 2, data: write_TSP_Reference(newhlinkid) }]\n ]) });\n tswpsa[11][0] = { type: 2, data: write_shallow(smartfield) };\n tswpsarefs.push(newhlinkid);\n }\n numbers_add_msg(cfb, 2001, tswpsa, \"/Index/Tables/DataList\", deps, tswpsaid);\n numbers_iwa_doit(cfb, deps, tswpsaid, function(iwa) {\n style_indices.forEach(function(ref) {\n return numbers_add_oref(iwa, ref);\n });\n tswpsarefs.forEach(function(ref) {\n return numbers_add_oref(iwa, ref);\n });\n });\n var rtpaid = numbers_add_msg(cfb, 6218, [\n [],\n [{ type: 2, data: write_TSP_Reference(tswpsaid) }],\n [],\n [{ type: 2, data: new Uint8Array([13, 255, 255, 255, 0, 18, 10, 16, 255, 255, 1, 24, 255, 255, 255, 255, 7]) }]\n ], \"/Index/Tables/DataList\", deps);\n numbers_iwa_doit(cfb, deps, rtpaid, function(iwa) {\n return numbers_add_oref(iwa, tswpsaid);\n });\n rsstdata[3].push({ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(i) }],\n [{ type: 0, data: write_varint49(1) }],\n [],\n [],\n [],\n [],\n [],\n [],\n [{ type: 2, data: write_TSP_Reference(rtpaid) }]\n ]) });\n numbers_add_oref(rsstroot, rtpaid);\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n numbers_meta_add_dep(mlist, deps, rsstref, rtpaid);\n numbers_meta_add_dep(mlist, deps, rtpaid, tswpsaid);\n numbers_meta_add_dep(mlist, deps, tswpsaid, tswpsarefs);\n numbers_meta_add_dep(mlist, deps, tswpsaid, style_indices);\n ai.messages[0].data = write_shallow(mlist);\n });\n });\n rsstroot.messages[0].data = write_shallow(rsstdata);\n });\n if (LUT.cmnt.length > 1) {\n var cmntref = parse_TSP_Reference(store[19][0].data);\n var authors = {}, iauthor = 0;\n numbers_iwa_doit(cfb, deps, cmntref, function(cmntroot) {\n var cmntdata = parse_shallow(cmntroot.messages[0].data);\n {\n cmntdata[3] = [];\n LUT.cmnt.forEach(function(cc, i) {\n if (i == 0)\n return;\n var replies = [];\n if (cc.replies)\n cc.replies.forEach(function(c) {\n if (!authors[c.a || \"\"])\n authors[c.a || \"\"] = numbers_add_msg(cfb, 212, [\n [],\n [{ type: 2, data: stru8(c.a || \"\") }],\n [{ type: 2, data: get_author_color(++iauthor) }],\n [],\n [{ type: 0, data: write_varint49(0) }]\n ], \"/Index/Tables/DataList\", deps);\n var aaaid2 = authors[c.a || \"\"];\n var csaid2 = numbers_add_msg(cfb, 3056, [\n [],\n [{ type: 2, data: stru8(c.t || \"\") }],\n [{ type: 2, data: write_shallow([\n [],\n [{ type: 1, data: new Uint8Array([0, 0, 0, 128, 116, 109, 182, 65]) }]\n ]) }],\n [{ type: 2, data: write_TSP_Reference(aaaid2) }]\n ], \"/Index/Tables/DataList\", deps);\n numbers_iwa_doit(cfb, deps, csaid2, function(iwa) {\n return numbers_add_oref(iwa, aaaid2);\n });\n replies.push(csaid2);\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n numbers_meta_add_dep(mlist, deps, csaid2, aaaid2);\n ai.messages[0].data = write_shallow(mlist);\n });\n });\n if (!authors[cc.a || \"\"])\n authors[cc.a || \"\"] = numbers_add_msg(cfb, 212, [\n [],\n [{ type: 2, data: stru8(cc.a || \"\") }],\n [{ type: 2, data: get_author_color(++iauthor) }],\n [],\n [{ type: 0, data: write_varint49(0) }]\n ], \"/Index/Tables/DataList\", deps);\n var aaaid = authors[cc.a || \"\"];\n var csaid = numbers_add_msg(cfb, 3056, [\n [],\n [{ type: 2, data: stru8(cc.t || \"\") }],\n [{ type: 2, data: write_shallow([\n [],\n [{ type: 1, data: new Uint8Array([0, 0, 0, 128, 116, 109, 182, 65]) }]\n ]) }],\n [{ type: 2, data: write_TSP_Reference(aaaid) }],\n replies.map(function(r) {\n return { type: 2, data: write_TSP_Reference(r) };\n }),\n [{ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(i) }],\n [{ type: 0, data: write_varint49(0) }]\n ]) }]\n ], \"/Index/Tables/DataList\", deps);\n numbers_iwa_doit(cfb, deps, csaid, function(iwa) {\n numbers_add_oref(iwa, aaaid);\n replies.forEach(function(r) {\n return numbers_add_oref(iwa, r);\n });\n });\n cmntdata[3].push({ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(i) }],\n [{ type: 0, data: write_varint49(1) }],\n [],\n [],\n [],\n [],\n [],\n [],\n [],\n [{ type: 2, data: write_TSP_Reference(csaid) }]\n ]) });\n numbers_add_oref(cmntroot, csaid);\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n numbers_meta_add_dep(mlist, deps, cmntref, csaid);\n numbers_meta_add_dep(mlist, deps, csaid, aaaid);\n if (replies.length)\n numbers_meta_add_dep(mlist, deps, csaid, replies);\n ai.messages[0].data = write_shallow(mlist);\n });\n });\n }\n cmntdata[2][0].data = write_varint49(LUT.cmnt.length + 1);\n cmntroot.messages[0].data = write_shallow(cmntdata);\n });\n }\n }\n pb[4][0].data = write_shallow(store);\n }\n tmaroot.messages[0].data = write_shallow(pb);\n}\nfunction fix_opts_func(defaults/*:Array >*/)/*:{(o:any):void}*/ {\n\treturn function fix_opts(opts) {\n\t\tfor(var i = 0; i != defaults.length; ++i) {\n\t\t\tvar d = defaults[i];\n\t\t\tif(opts[d[0]] === undefined) opts[d[0]] = d[1];\n\t\t\tif(d[2] === 'n') opts[d[0]] = Number(opts[d[0]]);\n\t\t}\n\t};\n}\n\nfunction fix_read_opts(opts) {\nfix_opts_func([\n\t['cellNF', false], /* emit cell number format string as .z */\n\t['cellHTML', true], /* emit html string as .h */\n\t['cellFormula', true], /* emit formulae as .f */\n\t['cellStyles', false], /* emits style/theme as .s */\n\t['cellText', true], /* emit formatted text as .w */\n\t['cellDates', false], /* emit date cells with type `d` */\n\n\t['sheetStubs', false], /* emit empty cells */\n\t['sheetRows', 0, 'n'], /* read n rows (0 = read all rows) */\n\n\t['bookDeps', false], /* parse calculation chains */\n\t['bookSheets', false], /* only try to get sheet names (no Sheets) */\n\t['bookProps', false], /* only try to get properties (no Sheets) */\n\t['bookFiles', false], /* include raw file structure (keys, files, cfb) */\n\t['bookVBA', false], /* include vba raw data (vbaraw) */\n\n\t['password',''], /* password */\n\t['WTF', false] /* WTF mode (throws errors) */\n])(opts);\n}\n\nfunction fix_write_opts(opts) {\nfix_opts_func([\n\t['cellDates', false], /* write date cells with type `d` */\n\n\t['bookSST', false], /* Generate Shared String Table */\n\n\t['bookType', 'xlsx'], /* Type of workbook (xlsx/m/b) */\n\n\t['compression', false], /* Use file compression */\n\n\t['WTF', false] /* WTF mode (throws errors) */\n])(opts);\n}\nfunction get_sheet_type(n/*:string*/)/*:string*/ {\n\tif(RELS.WS.indexOf(n) > -1) return \"sheet\";\n\tif(RELS.CS && n == RELS.CS) return \"chart\";\n\tif(RELS.DS && n == RELS.DS) return \"dialog\";\n\tif(RELS.MS && n == RELS.MS) return \"macro\";\n\treturn (n && n.length) ? n : \"sheet\";\n}\nfunction safe_parse_wbrels(wbrels, sheets) {\n\tif(!wbrels) return 0;\n\ttry {\n\t\twbrels = sheets.map(function pwbr(w) { if(!w.id) w.id = w.strRelID; return [w.name, wbrels['!id'][w.id].Target, get_sheet_type(wbrels['!id'][w.id].Type)]; });\n\t} catch(e) { return null; }\n\treturn !wbrels || wbrels.length === 0 ? null : wbrels;\n}\n\nfunction parse_sheet_legacy_drawing(sheet, type, zip, path, idx, opts, wb, comments) {\n\tif(!sheet || !sheet['!legdrawel']) return;\n\tvar dfile = resolve_path(sheet['!legdrawel'].Target, path);\n\tvar draw = getzipstr(zip, dfile, true);\n\tif(draw) parse_vml(utf8read(draw), sheet, comments||[]);\n}\n\nfunction safe_parse_sheet(zip, path/*:string*/, relsPath/*:string*/, sheet, idx/*:number*/, sheetRels, sheets, stype/*:string*/, opts, wb, themes, styles) {\n\ttry {\n\t\tsheetRels[sheet]=parse_rels(getzipstr(zip, relsPath, true), path);\n\t\tvar data = getzipdata(zip, path);\n\t\tvar _ws;\n\t\tswitch(stype) {\n\t\t\tcase 'sheet': _ws = parse_ws(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'chart': _ws = parse_cs(data, path, idx, opts, sheetRels[sheet], wb, themes, styles);\n\t\t\t\tif(!_ws || !_ws['!drawel']) break;\n\t\t\t\tvar dfile = resolve_path(_ws['!drawel'].Target, path);\n\t\t\t\tvar drelsp = get_rels_path(dfile);\n\t\t\t\tvar draw = parse_drawing(getzipstr(zip, dfile, true), parse_rels(getzipstr(zip, drelsp, true), dfile));\n\t\t\t\tvar chartp = resolve_path(draw, dfile);\n\t\t\t\tvar crelsp = get_rels_path(chartp);\n\t\t\t\t_ws = parse_chart(getzipstr(zip, chartp, true), chartp, opts, parse_rels(getzipstr(zip, crelsp, true), chartp), wb, _ws);\n\t\t\t\tbreak;\n\t\t\tcase 'macro': _ws = parse_ms(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'dialog': _ws = parse_ds(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tdefault: throw new Error(\"Unrecognized sheet type \" + stype);\n\t\t}\n\t\tsheets[sheet] = _ws;\n\n\t\t/* scan rels for comments and threaded comments */\n\t\tvar comments = [], tcomments = [];\n\t\tif(sheetRels && sheetRels[sheet]) keys(sheetRels[sheet]).forEach(function(n) {\n\t\t\tvar dfile = \"\";\n\t\t\tif(sheetRels[sheet][n].Type == RELS.CMNT) {\n\t\t\t\tdfile = resolve_path(sheetRels[sheet][n].Target, path);\n\t\t\t\tcomments = parse_cmnt(getzipdata(zip, dfile, true), dfile, opts);\n\t\t\t\tif(!comments || !comments.length) return;\n\t\t\t\tsheet_insert_comments(_ws, comments, false);\n\t\t\t}\n\t\t\tif(sheetRels[sheet][n].Type == RELS.TCMNT) {\n\t\t\t\tdfile = resolve_path(sheetRels[sheet][n].Target, path);\n\t\t\t\ttcomments = tcomments.concat(parse_tcmnt_xml(getzipdata(zip, dfile, true), opts));\n\t\t\t}\n\t\t});\n\t\tif(tcomments && tcomments.length) sheet_insert_comments(_ws, tcomments, true, opts.people || []);\n\t\tparse_sheet_legacy_drawing(_ws, stype, zip, path, idx, opts, wb, comments);\n\t} catch(e) { if(opts.WTF) throw e; }\n}\n\nfunction strip_front_slash(x/*:string*/)/*:string*/ { return x.charAt(0) == '/' ? x.slice(1) : x; }\n\nfunction parse_zip(zip/*:ZIP*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tmake_ssf();\n\topts = opts || {};\n\tfix_read_opts(opts);\n\n\t/* OpenDocument Part 3 Section 2.2.1 OpenDocument Package */\n\tif(safegetzipfile(zip, 'META-INF/manifest.xml')) return parse_ods(zip, opts);\n\t/* UOC */\n\tif(safegetzipfile(zip, 'objectdata.xml')) return parse_ods(zip, opts);\n\t/* Numbers */\n\tif(safegetzipfile(zip, 'Index/Document.iwa')) {\n\t\tif(typeof Uint8Array == \"undefined\") throw new Error('NUMBERS file parsing requires Uint8Array support');\n\t\tif(typeof parse_numbers_iwa != \"undefined\") {\n\t\t\tif(zip.FileIndex) return parse_numbers_iwa(zip, opts);\n\t\t\tvar _zip = CFB.utils.cfb_new();\n\t\t\tzipentries(zip).forEach(function(e) { zip_add_file(_zip, e, getzipbin(zip, e)); });\n\t\t\treturn parse_numbers_iwa(_zip, opts);\n\t\t}\n\t\tthrow new Error('Unsupported NUMBERS file');\n\t}\n\tif(!safegetzipfile(zip, '[Content_Types].xml')) {\n\t\tif(safegetzipfile(zip, 'index.xml.gz')) throw new Error('Unsupported NUMBERS 08 file');\n\t\tif(safegetzipfile(zip, 'index.xml')) throw new Error('Unsupported NUMBERS 09 file');\n\t\tvar index_zip = CFB.find(zip, 'Index.zip');\n\t\tif(index_zip) {\n\t\t\topts = dup(opts);\n\t\t\tdelete opts.type;\n\t\t\tif(typeof index_zip.content == \"string\") opts.type = \"binary\";\n\t\t\t// TODO: Bun buffer bug\n\t\t\tif(typeof Bun !== \"undefined\" && Buffer.isBuffer(index_zip.content)) return readSync(new Uint8Array(index_zip.content), opts);\n\t\t\treturn readSync(index_zip.content, opts);\n\t\t}\n\t\tthrow new Error('Unsupported ZIP file');\n\t}\n\n\tvar entries = zipentries(zip);\n\tvar dir = parse_ct((getzipstr(zip, '[Content_Types].xml')/*:?any*/));\n\tvar xlsb = false;\n\tvar sheets, binname;\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.xml\";\n\t\tif(getzipdata(zip,binname, true)) dir.workbooks.push(binname);\n\t}\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.bin\";\n\t\tif(!getzipdata(zip,binname,true)) throw new Error(\"Could not find workbook\");\n\t\tdir.workbooks.push(binname);\n\t\txlsb = true;\n\t}\n\tif(dir.workbooks[0].slice(-3) == \"bin\") xlsb = true;\n\n\tvar themes = ({}/*:any*/);\n\tvar styles = ({}/*:any*/);\n\tif(!opts.bookSheets && !opts.bookProps) {\n\t\tstrs = [];\n\t\tif(dir.sst) try { strs=parse_sst(getzipdata(zip, strip_front_slash(dir.sst)), dir.sst, opts); } catch(e) { if(opts.WTF) throw e; }\n\n\t\tif(opts.cellStyles && dir.themes.length) themes = parse_theme_xml(getzipstr(zip, dir.themes[0].replace(/^\\//,''), true)||\"\", opts);\n\n\t\tif(dir.style) styles = parse_sty(getzipdata(zip, strip_front_slash(dir.style)), dir.style, themes, opts);\n\t}\n\n\t/*var externbooks = */dir.links.map(function(link) {\n\t\ttry {\n\t\t\tvar rels = parse_rels(getzipstr(zip, get_rels_path(strip_front_slash(link))), link);\n\t\t\treturn parse_xlink(getzipdata(zip, strip_front_slash(link)), rels, link, opts);\n\t\t} catch(e) {}\n\t});\n\n\tvar wb = parse_wb(getzipdata(zip, strip_front_slash(dir.workbooks[0])), dir.workbooks[0], opts);\n\n\tvar props = {}, propdata = \"\";\n\n\tif(dir.coreprops.length) {\n\t\tpropdata = getzipdata(zip, strip_front_slash(dir.coreprops[0]), true);\n\t\tif(propdata) props = parse_core_props(propdata);\n\t\tif(dir.extprops.length !== 0) {\n\t\t\tpropdata = getzipdata(zip, strip_front_slash(dir.extprops[0]), true);\n\t\t\tif(propdata) parse_ext_props(propdata, props, opts);\n\t\t}\n\t}\n\n\tvar custprops = {};\n\tif(!opts.bookSheets || opts.bookProps) {\n\t\tif (dir.custprops.length !== 0) {\n\t\t\tpropdata = getzipstr(zip, strip_front_slash(dir.custprops[0]), true);\n\t\t\tif(propdata) custprops = parse_cust_props(propdata, opts);\n\t\t}\n\t}\n\n\tvar out = ({}/*:any*/);\n\tif(opts.bookSheets || opts.bookProps) {\n\t\tif(wb.Sheets) sheets = wb.Sheets.map(function pluck(x){ return x.name; });\n\t\telse if(props.Worksheets && props.SheetNames.length > 0) sheets=props.SheetNames;\n\t\tif(opts.bookProps) { out.Props = props; out.Custprops = custprops; }\n\t\tif(opts.bookSheets && typeof sheets !== 'undefined') out.SheetNames = sheets;\n\t\tif(opts.bookSheets ? out.SheetNames : opts.bookProps) return out;\n\t}\n\tsheets = {};\n\n\tvar deps = {};\n\tif(opts.bookDeps && dir.calcchain) deps=parse_cc(getzipdata(zip, strip_front_slash(dir.calcchain)),dir.calcchain,opts);\n\n\tvar i=0;\n\tvar sheetRels = ({}/*:any*/);\n\tvar path, relsPath;\n\n\t{\n\t\tvar wbsheets = wb.Sheets;\n\t\tprops.Worksheets = wbsheets.length;\n\t\tprops.SheetNames = [];\n\t\tfor(var j = 0; j != wbsheets.length; ++j) {\n\t\t\tprops.SheetNames[j] = wbsheets[j].name;\n\t\t}\n\t}\n\n\tvar wbext = xlsb ? \"bin\" : \"xml\";\n\tvar wbrelsi = dir.workbooks[0].lastIndexOf(\"/\");\n\tvar wbrelsfile = (dir.workbooks[0].slice(0, wbrelsi+1) + \"_rels/\" + dir.workbooks[0].slice(wbrelsi+1) + \".rels\").replace(/^\\//,\"\");\n\tif(!safegetzipfile(zip, wbrelsfile)) wbrelsfile = 'xl/_rels/workbook.' + wbext + '.rels';\n\tvar wbrels = parse_rels(getzipstr(zip, wbrelsfile, true), wbrelsfile.replace(/_rels.*/, \"s5s\"));\n\n\tif((dir.metadata || []).length >= 1) {\n\t\t/* TODO: MDX and other types of metadata */\n\t\topts.xlmeta = parse_xlmeta(getzipdata(zip, strip_front_slash(dir.metadata[0])),dir.metadata[0],opts);\n\t}\n\n\tif((dir.people || []).length >= 1) {\n\t\topts.people = parse_people_xml(getzipdata(zip, strip_front_slash(dir.people[0])),opts);\n\t}\n\n\tif(wbrels) wbrels = safe_parse_wbrels(wbrels, wb.Sheets);\n\n\t/* Numbers iOS hack */\n\tvar nmode = (getzipdata(zip,\"xl/worksheets/sheet.xml\",true))?1:0;\n\twsloop: for(i = 0; i != props.Worksheets; ++i) {\n\t\tvar stype = \"sheet\";\n\t\tif(wbrels && wbrels[i]) {\n\t\t\tpath = 'xl/' + (wbrels[i][1]).replace(/[\\/]?xl\\//, \"\");\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrels[i][1];\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrelsfile.replace(/_rels\\/.*$/,\"\") + wbrels[i][1];\n\t\t\tstype = wbrels[i][2];\n\t\t} else {\n\t\t\tpath = 'xl/worksheets/sheet'+(i+1-nmode)+\".\" + wbext;\n\t\t\tpath = path.replace(/sheet0\\./,\"sheet.\");\n\t\t}\n\t\trelsPath = path.replace(/^(.*)(\\/)([^\\/]*)$/, \"$1/_rels/$3.rels\");\n\t\tif(opts && opts.sheets != null) switch(typeof opts.sheets) {\n\t\t\tcase \"number\": if(i != opts.sheets) continue wsloop; break;\n\t\t\tcase \"string\": if(props.SheetNames[i].toLowerCase() != opts.sheets.toLowerCase()) continue wsloop; break;\n\t\t\tdefault: if(Array.isArray && Array.isArray(opts.sheets)) {\n\t\t\t\tvar snjseen = false;\n\t\t\t\tfor(var snj = 0; snj != opts.sheets.length; ++snj) {\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"number\" && opts.sheets[snj] == i) snjseen=1;\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"string\" && opts.sheets[snj].toLowerCase() == props.SheetNames[i].toLowerCase()) snjseen = 1;\n\t\t\t\t}\n\t\t\t\tif(!snjseen) continue wsloop;\n\t\t\t}\n\t\t}\n\t\tsafe_parse_sheet(zip, path, relsPath, props.SheetNames[i], i, sheetRels, sheets, stype, opts, wb, themes, styles);\n\t}\n\n\tout = ({\n\t\tDirectory: dir,\n\t\tWorkbook: wb,\n\t\tProps: props,\n\t\tCustprops: custprops,\n\t\tDeps: deps,\n\t\tSheets: sheets,\n\t\tSheetNames: props.SheetNames,\n\t\tStrings: strs,\n\t\tStyles: styles,\n\t\tThemes: themes,\n\t\tSSF: dup(table_fmt)\n\t}/*:any*/);\n\tif(opts && opts.bookFiles) {\n\t\tif(zip.files) {\n\t\t\tout.keys = entries;\n\t\t\tout.files = zip.files;\n\t\t} else {\n\t\t\tout.keys = [];\n\t\t\tout.files = {};\n\t\t\tzip.FullPaths.forEach(function(p, idx) {\n\t\t\t\tp = p.replace(/^Root Entry[\\/]/, \"\");\n\t\t\t\tout.keys.push(p);\n\t\t\t\tout.files[p] = zip.FileIndex[idx];\n\t\t\t});\n\t\t}\n\t}\n\tif(opts && opts.bookVBA) {\n\t\tif(dir.vba.length > 0) out.vbaraw = getzipdata(zip,strip_front_slash(dir.vba[0]),true);\n\t\telse if(dir.defaults && dir.defaults.bin === CT_VBA) out.vbaraw = getzipdata(zip, 'xl/vbaProject.bin',true);\n\t}\n\t// TODO: pass back content types metdata for xlsm/xlsx resolution\n\tout.bookType = xlsb ? \"xlsb\" : \"xlsx\";\n\treturn out;\n}\n\n/* [MS-OFFCRYPTO] 2.1.1 */\nfunction parse_xlsxcfb(cfb, _opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tvar opts = _opts || {};\n\tvar f = 'Workbook', data = CFB.find(cfb, f);\n\ttry {\n\tf = '/!DataSpaces/Version';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var version = */parse_DataSpaceVersionInfo(data.content);\n\n\t/* 2.3.4.1 */\n\tf = '/!DataSpaces/DataSpaceMap';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar dsm = parse_DataSpaceMap(data.content);\n\tif(dsm.length !== 1 || dsm[0].comps.length !== 1 || dsm[0].comps[0].t !== 0 || dsm[0].name !== \"StrongEncryptionDataSpace\" || dsm[0].comps[0].v !== \"EncryptedPackage\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.2 */\n\tf = '/!DataSpaces/DataSpaceInfo/StrongEncryptionDataSpace';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar seds = parse_DataSpaceDefinition(data.content);\n\tif(seds.length != 1 || seds[0] != \"StrongEncryptionTransform\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.3 */\n\tf = '/!DataSpaces/TransformInfo/StrongEncryptionTransform/!Primary';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var hdr = */parse_Primary(data.content);\n\t} catch(e) {}\n\n\tf = '/EncryptionInfo';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar einfo = parse_EncryptionInfo(data.content);\n\n\t/* 2.3.4.4 */\n\tf = '/EncryptedPackage';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\n/*global decrypt_agile */\n/*:: declare var decrypt_agile:any; */\n\tif(einfo[0] == 0x04 && typeof decrypt_agile !== 'undefined') return decrypt_agile(einfo[1], data.content, opts.password || \"\", opts);\n/*global decrypt_std76 */\n/*:: declare var decrypt_std76:any; */\n\tif(einfo[0] == 0x02 && typeof decrypt_std76 !== 'undefined') return decrypt_std76(einfo[1], data.content, opts.password || \"\", opts);\n\tthrow new Error(\"File is password-protected\");\n}\n\nfunction write_zip_xlsb(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:ZIP*/ {\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = dup(table_fmt);\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t}\n\topts.rels = {}; opts.wbrels = {};\n\topts.Strings = /*::((*/[]/*:: :any):SST)*/; opts.Strings.Count = 0; opts.Strings.Unique = 0;\n\tif(browser_has_Map) opts.revStrings = new Map();\n\telse { opts.revStrings = {}; opts.revStrings.foo = []; delete opts.revStrings.foo; }\n\tvar wbext = \"bin\";\n\tvar vbafmt = true;\n\tvar ct = new_ct();\n\tfix_write_opts(opts = opts || {});\n\tvar zip = zip_new();\n\tvar f = \"\", rId = 0;\n\n\topts.cellXfs = [];\n\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tf = \"docProps/core.xml\";\n\tzip_add_file(zip, f, write_core_props(wb.Props, opts));\n\tct.coreprops.push(f);\n\tadd_rels(opts.rels, 2, f, RELS.CORE_PROPS);\n\n\t/*::if(!wb.Props) throw \"unreachable\"; */\n\tf = \"docProps/app.xml\";\n\tif(wb.Props && wb.Props.SheetNames){/* empty */}\n\telse if(!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;\n\telse {\n\t\tvar _sn = [];\n\t\tfor(var _i = 0; _i < wb.SheetNames.length; ++_i)\n\t\t\tif((wb.Workbook.Sheets[_i]||{}).Hidden != 2) _sn.push(wb.SheetNames[_i]);\n\t\twb.Props.SheetNames = _sn;\n\t}\n\twb.Props.Worksheets = wb.Props.SheetNames.length;\n\tzip_add_file(zip, f, write_ext_props(wb.Props, opts));\n\tct.extprops.push(f);\n\tadd_rels(opts.rels, 3, f, RELS.EXT_PROPS);\n\n\tif(wb.Custprops !== wb.Props && keys(wb.Custprops||{}).length > 0) {\n\t\tf = \"docProps/custom.xml\";\n\t\tzip_add_file(zip, f, write_cust_props(wb.Custprops, opts));\n\t\tct.custprops.push(f);\n\t\tadd_rels(opts.rels, 4, f, RELS.CUST_PROPS);\n\t}\n\n\tvar people = [\"SheetJ5\"];\n\topts.tcid = 0;\n\n\tfor(rId=1;rId <= wb.SheetNames.length; ++rId) {\n\t\tvar wsrels = {'!id':{}};\n\t\tvar ws = wb.Sheets[wb.SheetNames[rId-1]];\n\t\tvar _type = (ws || {})[\"!type\"] || \"sheet\";\n\t\tswitch(_type) {\n\t\tcase \"chart\":\n\t\t\t/* falls through */\n\t\tdefault:\n\t\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip_add_file(zip, f, write_ws_bin(rId-1, opts, wb, wsrels));\n\t\t\tct.sheets.push(f);\n\t\t\tadd_rels(opts.wbrels, -1, \"worksheets/sheet\" + rId + \".\" + wbext, RELS.WS[0]);\n\t\t}\n\n\t\tif(ws) {\n\t\t\tvar comments = ws['!comments'];\n\t\t\tvar need_vml = false;\n\t\t\tvar cf = \"\";\n\t\t\tif(comments && comments.length > 0) {\n\t\t\t\tvar needtc = false;\n\t\t\t\tcomments.forEach(function(carr) {\n\t\t\t\t\tcarr[1].forEach(function(c) { if(c.T == true) needtc = true; });\n\t\t\t\t});\n\t\t\t\tif(needtc) {\n\t\t\t\t\tcf = \"xl/threadedComments/threadedComment\" + rId + \".xml\";\n\t\t\t\t\tzip_add_file(zip, cf, write_tcmnt_xml(comments, people, opts));\n\t\t\t\t\tct.threadedcomments.push(cf);\n\t\t\t\t\tadd_rels(wsrels, -1, \"../threadedComments/threadedComment\" + rId + \".xml\", RELS.TCMNT);\n\t\t\t\t}\n\n\t\t\t\tcf = \"xl/comments\" + rId + \".\" + wbext;\n\t\t\t\tzip_add_file(zip, cf, write_comments_bin(comments, opts));\n\t\t\t\tct.comments.push(cf);\n\t\t\t\tadd_rels(wsrels, -1, \"../comments\" + rId + \".\" + wbext, RELS.CMNT);\n\t\t\t\tneed_vml = true;\n\t\t\t}\n\t\t\tif(ws['!legacy']) {\n\t\t\t\tif(need_vml) zip_add_file(zip, \"xl/drawings/vmlDrawing\" + (rId) + \".vml\", write_vml(rId, ws['!comments']));\n\t\t\t}\n\t\t\tdelete ws['!comments'];\n\t\t\tdelete ws['!legacy'];\n\t\t}\n\n\t\tif(wsrels['!id'].rId1) zip_add_file(zip, get_rels_path(f), write_rels(wsrels));\n\t}\n\n\tif(opts.Strings != null && opts.Strings.length > 0) {\n\t\tf = \"xl/sharedStrings.\" + wbext;\n\t\tzip_add_file(zip, f, write_sst_bin(opts.Strings, opts));\n\t\tct.strs.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"sharedStrings.\" + wbext, RELS.SST);\n\t}\n\n\tf = \"xl/workbook.\" + wbext;\n\tzip_add_file(zip, f, write_wb_bin(wb, opts));\n\tct.workbooks.push(f);\n\tadd_rels(opts.rels, 1, f, RELS.WB);\n\n\t/* TODO: something more intelligent with themes */\n\n\tf = \"xl/theme/theme1.xml\";\n\tvar ww = write_theme(wb.Themes, opts);\n\tzip_add_file(zip, f, ww);\n\tct.themes.push(f);\n\tadd_rels(opts.wbrels, -1, \"theme/theme1.xml\", RELS.THEME);\n\n\t/* TODO: something more intelligent with styles */\n\n\tf = \"xl/styles.\" + wbext;\n\tzip_add_file(zip, f, write_sty_bin(wb, opts));\n\tct.styles.push(f);\n\tadd_rels(opts.wbrels, -1, \"styles.\" + wbext, RELS.STY);\n\n\tif(wb.vbaraw && vbafmt) {\n\t\tf = \"xl/vbaProject.bin\";\n\t\tzip_add_file(zip, f, wb.vbaraw);\n\t\tct.vba.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"vbaProject.bin\", RELS.VBA);\n\t}\n\n\tf = \"xl/metadata.\" + wbext;\n\tzip_add_file(zip, f, write_xlmeta_bin());\n\tct.metadata.push(f);\n\tadd_rels(opts.wbrels, -1, \"metadata.\" + wbext, RELS.XLMETA);\n\n\tif(people.length > 1) {\n\t\tf = \"xl/persons/person.xml\";\n\t\tzip_add_file(zip, f, write_people_xml(people, opts));\n\t\tct.people.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"persons/person.xml\", RELS.PEOPLE);\n\t}\n\n\tzip_add_file(zip, \"[Content_Types].xml\", write_ct(ct, opts));\n\tzip_add_file(zip, '_rels/.rels', write_rels(opts.rels));\n\tzip_add_file(zip, 'xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels));\n\n\tdelete opts.revssf; delete opts.ssf;\n\treturn zip;\n}\n\nfunction write_zip_xlsx(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:ZIP*/ {\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = dup(table_fmt);\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t}\n\topts.rels = {}; opts.wbrels = {};\n\topts.Strings = /*::((*/[]/*:: :any):SST)*/; opts.Strings.Count = 0; opts.Strings.Unique = 0;\n\tif(browser_has_Map) opts.revStrings = new Map();\n\telse { opts.revStrings = {}; opts.revStrings.foo = []; delete opts.revStrings.foo; }\n\tvar wbext = \"xml\";\n\tvar vbafmt = VBAFMTS.indexOf(opts.bookType) > -1;\n\tvar ct = new_ct();\n\tfix_write_opts(opts = opts || {});\n\tvar zip = zip_new();\n\tvar f = \"\", rId = 0;\n\n\topts.cellXfs = [];\n\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tf = \"docProps/core.xml\";\n\tzip_add_file(zip, f, write_core_props(wb.Props, opts));\n\tct.coreprops.push(f);\n\tadd_rels(opts.rels, 2, f, RELS.CORE_PROPS);\n\n\t/*::if(!wb.Props) throw \"unreachable\"; */\n\tf = \"docProps/app.xml\";\n\tif(wb.Props && wb.Props.SheetNames){/* empty */}\n\telse if(!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;\n\telse {\n\t\tvar _sn = [];\n\t\tfor(var _i = 0; _i < wb.SheetNames.length; ++_i)\n\t\t\tif((wb.Workbook.Sheets[_i]||{}).Hidden != 2) _sn.push(wb.SheetNames[_i]);\n\t\twb.Props.SheetNames = _sn;\n\t}\n\twb.Props.Worksheets = wb.Props.SheetNames.length;\n\tzip_add_file(zip, f, write_ext_props(wb.Props, opts));\n\tct.extprops.push(f);\n\tadd_rels(opts.rels, 3, f, RELS.EXT_PROPS);\n\n\tif(wb.Custprops !== wb.Props && keys(wb.Custprops||{}).length > 0) {\n\t\tf = \"docProps/custom.xml\";\n\t\tzip_add_file(zip, f, write_cust_props(wb.Custprops, opts));\n\t\tct.custprops.push(f);\n\t\tadd_rels(opts.rels, 4, f, RELS.CUST_PROPS);\n\t}\n\n\tvar people = [\"SheetJ5\"];\n\topts.tcid = 0;\n\n\tfor(rId=1;rId <= wb.SheetNames.length; ++rId) {\n\t\tvar wsrels = {'!id':{}};\n\t\tvar ws = wb.Sheets[wb.SheetNames[rId-1]];\n\t\tvar _type = (ws || {})[\"!type\"] || \"sheet\";\n\t\tswitch(_type) {\n\t\tcase \"chart\":\n\t\t\t/* falls through */\n\t\tdefault:\n\t\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip_add_file(zip, f, write_ws_xml(rId-1, opts, wb, wsrels));\n\t\t\tct.sheets.push(f);\n\t\t\tadd_rels(opts.wbrels, -1, \"worksheets/sheet\" + rId + \".\" + wbext, RELS.WS[0]);\n\t\t}\n\n\t\tif(ws) {\n\t\t\tvar comments = ws['!comments'];\n\t\t\tvar need_vml = false;\n\t\t\tvar cf = \"\";\n\t\t\tif(comments && comments.length > 0) {\n\t\t\t\tvar needtc = false;\n\t\t\t\tcomments.forEach(function(carr) {\n\t\t\t\t\tcarr[1].forEach(function(c) { if(c.T == true) needtc = true; });\n\t\t\t\t});\n\t\t\t\tif(needtc) {\n\t\t\t\t\tcf = \"xl/threadedComments/threadedComment\" + rId + \".xml\";\n\t\t\t\t\tzip_add_file(zip, cf, write_tcmnt_xml(comments, people, opts));\n\t\t\t\t\tct.threadedcomments.push(cf);\n\t\t\t\t\tadd_rels(wsrels, -1, \"../threadedComments/threadedComment\" + rId + \".xml\", RELS.TCMNT);\n\t\t\t\t}\n\n\t\t\t\tcf = \"xl/comments\" + rId + \".\" + wbext;\n\t\t\t\tzip_add_file(zip, cf, write_comments_xml(comments, opts));\n\t\t\t\tct.comments.push(cf);\n\t\t\t\tadd_rels(wsrels, -1, \"../comments\" + rId + \".\" + wbext, RELS.CMNT);\n\t\t\t\tneed_vml = true;\n\t\t\t}\n\t\t\tif(ws['!legacy']) {\n\t\t\t\tif(need_vml) zip_add_file(zip, \"xl/drawings/vmlDrawing\" + (rId) + \".vml\", write_vml(rId, ws['!comments']));\n\t\t\t}\n\t\t\tdelete ws['!comments'];\n\t\t\tdelete ws['!legacy'];\n\t\t}\n\n\t\tif(wsrels['!id'].rId1) zip_add_file(zip, get_rels_path(f), write_rels(wsrels));\n\t}\n\n\tif(opts.Strings != null && opts.Strings.length > 0) {\n\t\tf = \"xl/sharedStrings.\" + wbext;\n\t\tzip_add_file(zip, f, write_sst_xml(opts.Strings, opts));\n\t\tct.strs.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"sharedStrings.\" + wbext, RELS.SST);\n\t}\n\n\tf = \"xl/workbook.\" + wbext;\n\tzip_add_file(zip, f, write_wb_xml(wb, opts));\n\tct.workbooks.push(f);\n\tadd_rels(opts.rels, 1, f, RELS.WB);\n\n\t/* TODO: something more intelligent with themes */\n\n\tf = \"xl/theme/theme1.xml\";\n\tzip_add_file(zip, f, write_theme(wb.Themes, opts));\n\tct.themes.push(f);\n\tadd_rels(opts.wbrels, -1, \"theme/theme1.xml\", RELS.THEME);\n\n\t/* TODO: something more intelligent with styles */\n\n\tf = \"xl/styles.\" + wbext;\n\tzip_add_file(zip, f, write_sty_xml(wb, opts));\n\tct.styles.push(f);\n\tadd_rels(opts.wbrels, -1, \"styles.\" + wbext, RELS.STY);\n\n\tif(wb.vbaraw && vbafmt) {\n\t\tf = \"xl/vbaProject.bin\";\n\t\tzip_add_file(zip, f, wb.vbaraw);\n\t\tct.vba.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"vbaProject.bin\", RELS.VBA);\n\t}\n\n\tf = \"xl/metadata.\" + wbext;\n\tzip_add_file(zip, f, write_xlmeta_xml());\n\tct.metadata.push(f);\n\tadd_rels(opts.wbrels, -1, \"metadata.\" + wbext, RELS.XLMETA);\n\n\tif(people.length > 1) {\n\t\tf = \"xl/persons/person.xml\";\n\t\tzip_add_file(zip, f, write_people_xml(people, opts));\n\t\tct.people.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"persons/person.xml\", RELS.PEOPLE);\n\t}\n\n\tzip_add_file(zip, \"[Content_Types].xml\", write_ct(ct, opts));\n\tzip_add_file(zip, '_rels/.rels', write_rels(opts.rels));\n\tzip_add_file(zip, 'xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels));\n\n\tdelete opts.revssf; delete opts.ssf;\n\treturn zip;\n}\n\nfunction firstbyte(f/*:RawData*/,o/*:?TypeOpts*/)/*:Array*/ {\n\tvar x = \"\";\n\tswitch((o||{}).type || \"base64\") {\n\t\tcase 'buffer': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tcase 'base64': x = Base64_decode(f.slice(0,12)); break;\n\t\tcase 'binary': x = f; break;\n\t\tcase 'array': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tdefault: throw new Error(\"Unrecognized type \" + (o && o.type || \"undefined\"));\n\t}\n\treturn [x.charCodeAt(0), x.charCodeAt(1), x.charCodeAt(2), x.charCodeAt(3), x.charCodeAt(4), x.charCodeAt(5), x.charCodeAt(6), x.charCodeAt(7)];\n}\n\nfunction read_cfb(cfb/*:CFBContainer*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tif(CFB.find(cfb, \"EncryptedPackage\")) return parse_xlsxcfb(cfb, opts);\n\treturn parse_xlscfb(cfb, opts);\n}\n\nfunction read_zip(data/*:RawData*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tvar zip, d = data;\n\tvar o = opts||{};\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tzip = zip_read(d, o);\n\treturn parse_zip(zip, o);\n}\n\nfunction read_plaintext(data/*:string*/, o/*:ParseOpts*/)/*:Workbook*/ {\n\tvar i = 0;\n\tmain: while(i < data.length) switch(data.charCodeAt(i)) {\n\t\tcase 0x0A: case 0x0D: case 0x20: ++i; break;\n\t\tcase 0x3C: return parse_xlml(data.slice(i),o);\n\t\tdefault: break main;\n\t}\n\treturn PRN.to_workbook(data, o);\n}\n\nfunction read_plaintext_raw(data/*:RawData*/, o/*:ParseOpts*/)/*:Workbook*/ {\n\tvar str = \"\", bytes = firstbyte(data, o);\n\tswitch(o.type) {\n\t\tcase 'base64': str = Base64_decode(data); break;\n\t\tcase 'binary': str = data; break;\n\t\tcase 'buffer': str = data.toString('binary'); break;\n\t\tcase 'array': str = cc2str(data); break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str);\n\to.type = \"binary\";\n\treturn read_plaintext(str, o);\n}\n\nfunction read_utf16(data/*:RawData*/, o/*:ParseOpts*/)/*:Workbook*/ {\n\tvar d = data;\n\tif(o.type == 'base64') d = Base64_decode(d);\n\tif(typeof ArrayBuffer !== \"undefined\" && data instanceof ArrayBuffer) d = new Uint8Array(data);\n\td = typeof $cptable !== \"undefined\" ? $cptable.utils.decode(1200, d.slice(2), 'str') : (\n\t\t(has_buf && Buffer.isBuffer(data)) ? data.slice(2).toString(\"utf16le\") :\n\t\t(typeof Uint8Array !== \"undefined\" && d instanceof Uint8Array) ? (\n\t\t\ttypeof TextDecoder !== \"undefined\" ? new TextDecoder(\"utf-16le\").decode(d.slice(2)) : utf16lereadu(d.slice(2))\n\t\t) : utf16leread(d.slice(2))\n\t);\n\to.type = \"binary\";\n\treturn read_plaintext(d, o);\n}\n\nfunction bstrify(data/*:string*/)/*:string*/ {\n\treturn !data.match(/[^\\x00-\\x7F]/) ? data : utf8write(data);\n}\n\nfunction read_prn(data, d, o, str) {\n\tif(str) { o.type = \"string\"; return PRN.to_workbook(data, o); }\n\treturn PRN.to_workbook(d, o);\n}\n\nfunction readSync(data/*:RawData*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\treset_cp();\n\tvar o = opts||{};\n\tif(o.codepage && typeof $cptable === \"undefined\") console.error(\"Codepage tables are not loaded. Non-ASCII characters may not give expected results\");\n\tif(typeof ArrayBuffer !== 'undefined' && data instanceof ArrayBuffer) return readSync(new Uint8Array(data), (o = dup(o), o.type = \"array\", o));\n\tif(typeof Uint8Array !== 'undefined' && data instanceof Uint8Array && !o.type) o.type = typeof Deno !== \"undefined\" ? \"buffer\" : \"array\";\n\tvar d = data, n = [0,0,0,0], str = false;\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\t_ssfopts = {};\n\tif(o.dateNF) _ssfopts.dateNF = o.dateNF;\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tif(o.type == \"file\") { o.type = has_buf ? \"buffer\" : \"binary\"; d = read_binary(data); if(typeof Uint8Array !== 'undefined' && !has_buf) o.type = \"array\"; }\n\tif(o.type == \"string\") { str = true; o.type = \"binary\"; o.codepage = 65001; d = bstrify(data); }\n\tif(o.type == 'array' && typeof Uint8Array !== 'undefined' && data instanceof Uint8Array && typeof ArrayBuffer !== 'undefined') {\n\t\t// $FlowIgnore\n\t\tvar ab=new ArrayBuffer(3), vu=new Uint8Array(ab); vu.foo=\"bar\";\n\t\t// $FlowIgnore\n\t\tif(!vu.foo) {o=dup(o); o.type='array'; return readSync(ab2a(d), o);}\n\t}\n\tswitch((n = firstbyte(d, o))[0]) {\n\t\tcase 0xD0: if(n[1] === 0xCF && n[2] === 0x11 && n[3] === 0xE0 && n[4] === 0xA1 && n[5] === 0xB1 && n[6] === 0x1A && n[7] === 0xE1) return read_cfb(CFB.read(d, o), o); break;\n\t\tcase 0x09: if(n[1] <= 0x08) return parse_xlscfb(d, o); break;\n\t\tcase 0x3C: return parse_xlml(d, o);\n\t\tcase 0x49:\n\t\t\tif(n[1] === 0x49 && n[2] === 0x2a && n[3] === 0x00) throw new Error(\"TIFF Image File is not a spreadsheet\");\n\t\t\tif(n[1] === 0x44) return read_wb_ID(d, o);\n\t\t\tbreak;\n\t\tcase 0x54: if(n[1] === 0x41 && n[2] === 0x42 && n[3] === 0x4C) return DIF.to_workbook(d, o); break;\n\t\tcase 0x50: return (n[1] === 0x4B && n[2] < 0x09 && n[3] < 0x09) ? read_zip(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xEF: return n[3] === 0x3C ? parse_xlml(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xFF:\n\t\t\tif(n[1] === 0xFE) { return read_utf16(d, o); }\n\t\t\telse if(n[1] === 0x00 && n[2] === 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o);\n\t\t\tbreak;\n\t\tcase 0x00:\n\t\t\tif(n[1] === 0x00) {\n\t\t\t\tif(n[2] >= 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o);\n\t\t\t\tif(n[2] === 0x00 && (n[3] === 0x08 || n[3] === 0x09)) return WK_.to_workbook(d, o);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 0x03: case 0x83: case 0x8B: case 0x8C: return DBF.to_workbook(d, o);\n\t\tcase 0x7B: if(n[1] === 0x5C && n[2] === 0x72 && n[3] === 0x74) return rtf_to_workbook(d, o); break;\n\t\tcase 0x0A: case 0x0D: case 0x20: return read_plaintext_raw(d, o);\n\t\tcase 0x89: if(n[1] === 0x50 && n[2] === 0x4E && n[3] === 0x47) throw new Error(\"PNG Image File is not a spreadsheet\"); break;\n\t\tcase 0x08: if(n[1] === 0xE7) throw new Error(\"Unsupported Multiplan 1.x file!\"); break;\n\t\tcase 0x0C:\n\t\t\tif(n[1] === 0xEC) throw new Error(\"Unsupported Multiplan 2.x file!\");\n\t\t\tif(n[1] === 0xED) throw new Error(\"Unsupported Multiplan 3.x file!\");\n\t\t\tbreak;\n\t}\n\tif(DBF_SUPPORTED_VERSIONS.indexOf(n[0]) > -1 && n[2] <= 12 && n[3] <= 31) return DBF.to_workbook(d, o);\n\treturn read_prn(data, d, o, str);\n}\n\nfunction readFileSync(filename/*:string*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tvar o = opts||{}; o.type = 'file';\n\treturn readSync(filename, o);\n}\nfunction write_cfb_ctr(cfb/*:CFBContainer*/, o/*:WriteOpts*/)/*:any*/ {\n\tswitch(o.type) {\n\t\tcase \"base64\": case \"binary\": break;\n\t\tcase \"buffer\": case \"array\": o.type = \"\"; break;\n\t\tcase \"file\": return write_dl(o.file, CFB.write(cfb, {type:has_buf ? 'buffer' : \"\"}));\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\treturn CFB.write(cfb, o);\n}\n\nfunction write_zip(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:ZIP*/ {\n\tswitch(opts.bookType) {\n\t\tcase \"ods\": return write_ods(wb, opts);\n\t\tcase \"numbers\": return write_numbers_iwa(wb, opts);\n\t\tcase \"xlsb\": return write_zip_xlsb(wb, opts);\n\t\tdefault: return write_zip_xlsx(wb, opts);\n\t}\n}\n\n/*:: declare var encrypt_agile:any; */\nfunction write_zip_type(wb/*:Workbook*/, opts/*:?WriteOpts*/)/*:any*/ {\n\tvar o = dup(opts||{});\n\tvar z = write_zip(wb, o);\n\treturn write_zip_denouement(z, o);\n}\nfunction write_zip_typeXLSX(wb/*:Workbook*/, opts/*:?WriteOpts*/)/*:any*/ {\n\tvar o = dup(opts||{});\n\tvar z = write_zip_xlsx(wb, o);\n\treturn write_zip_denouement(z, o);\n}\nfunction write_zip_denouement(z/*:any*/, o/*:?WriteOpts*/)/*:any*/ {\n\tvar oopts = {};\n\tvar ftype = has_buf ? \"nodebuffer\" : (typeof Uint8Array !== \"undefined\" ? \"array\" : \"string\");\n\tif(o.compression) oopts.compression = 'DEFLATE';\n\tif(o.password) oopts.type = ftype;\n\telse switch(o.type) {\n\t\tcase \"base64\": oopts.type = \"base64\"; break;\n\t\tcase \"binary\": oopts.type = \"string\"; break;\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tcase \"buffer\":\n\t\tcase \"file\": oopts.type = ftype; break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tvar out = z.FullPaths ? CFB.write(z, {fileType:\"zip\", type: /*::(*/{\"nodebuffer\": \"buffer\", \"string\": \"binary\"}/*:: :any)*/[oopts.type] || oopts.type, compression: !!o.compression}) : z.generate(oopts);\n\tif(typeof Deno !== \"undefined\") {\n\t\tif(typeof out == \"string\") {\n\t\t\tif(o.type == \"binary\" || o.type == \"base64\") return out;\n\t\t\tout = new Uint8Array(s2ab(out));\n\t\t}\n\t}\n/*jshint -W083 */\n\tif(o.password && typeof encrypt_agile !== 'undefined') return write_cfb_ctr(encrypt_agile(out, o.password), o); // eslint-disable-line no-undef\n/*jshint +W083 */\n\tif(o.type === \"file\") return write_dl(o.file, out);\n\treturn o.type == \"string\" ? utf8read(/*::(*/out/*:: :any)*/) : out;\n}\n\nfunction write_cfb_type(wb/*:Workbook*/, opts/*:?WriteOpts*/)/*:any*/ {\n\tvar o = opts||{};\n\tvar cfb/*:CFBContainer*/ = write_xlscfb(wb, o);\n\treturn write_cfb_ctr(cfb, o);\n}\n\nfunction write_string_type(out/*:string*/, opts/*:WriteOpts*/, bom/*:?string*/)/*:any*/ {\n\tif(!bom) bom = \"\";\n\tvar o = bom + out;\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64_encode(utf8write(o));\n\t\tcase \"binary\": return utf8write(o);\n\t\tcase \"string\": return out;\n\t\tcase \"file\": return write_dl(opts.file, o, 'utf8');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(o, 'utf8');\n\t\t\telse if(typeof TextEncoder !== \"undefined\") return new TextEncoder().encode(o);\n\t\t\telse return write_string_type(o, {type:'binary'}).split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\nfunction write_stxt_type(out/*:string*/, opts/*:WriteOpts*/)/*:any*/ {\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64_encode_pass(out);\n\t\tcase \"binary\": return out;\n\t\tcase \"string\": return out; /* override in sheet_to_txt */\n\t\tcase \"file\": return write_dl(opts.file, out, 'binary');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(out, 'binary');\n\t\t\telse return out.split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\n/* TODO: test consistency */\nfunction write_binary_type(out, opts/*:WriteOpts*/)/*:any*/ {\n\tswitch(opts.type) {\n\t\tcase \"string\":\n\t\tcase \"base64\":\n\t\tcase \"binary\":\n\t\t\tvar bstr = \"\";\n\t\t\t// $FlowIgnore\n\t\t\tfor(var i = 0; i < out.length; ++i) bstr += String.fromCharCode(out[i]);\n\t\t\treturn opts.type == 'base64' ? Base64_encode(bstr) : opts.type == 'string' ? utf8read(bstr) : bstr;\n\t\tcase \"file\": return write_dl(opts.file, out);\n\t\tcase \"buffer\": return out;\n\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t}\n}\n\nfunction writeSyncXLSX(wb/*:Workbook*/, opts/*:?WriteOpts*/) {\n\treset_cp();\n\tcheck_wb(wb);\n\tvar o = dup(opts||{});\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\tif(o.type == \"array\") { o.type = \"binary\"; var out/*:string*/ = (writeSyncXLSX(wb, o)/*:any*/); o.type = \"array\"; return s2ab(out); }\n\treturn write_zip_typeXLSX(wb, o);\n}\n\nfunction writeSync(wb/*:Workbook*/, opts/*:?WriteOpts*/) {\n\treset_cp();\n\tcheck_wb(wb);\n\tvar o = dup(opts||{});\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\tif(o.type == \"array\") { o.type = \"binary\"; var out/*:string*/ = (writeSync(wb, o)/*:any*/); o.type = \"array\"; return s2ab(out); }\n\tvar idx = 0;\n\tif(o.sheet) {\n\t\tif(typeof o.sheet == \"number\") idx = o.sheet;\n\t\telse idx = wb.SheetNames.indexOf(o.sheet);\n\t\tif(!wb.SheetNames[idx]) throw new Error(\"Sheet not found: \" + o.sheet + \" : \" + (typeof o.sheet));\n\t}\n\tswitch(o.bookType || 'xlsb') {\n\t\tcase 'xml':\n\t\tcase 'xlml': return write_string_type(write_xlml(wb, o), o);\n\t\tcase 'slk':\n\t\tcase 'sylk': return write_string_type(SYLK.from_sheet(wb.Sheets[wb.SheetNames[idx]], o, wb), o);\n\t\tcase 'htm':\n\t\tcase 'html': return write_string_type(sheet_to_html(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'txt': return write_stxt_type(sheet_to_txt(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'csv': return write_string_type(sheet_to_csv(wb.Sheets[wb.SheetNames[idx]], o), o, \"\\ufeff\");\n\t\tcase 'dif': return write_string_type(DIF.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'dbf': return write_binary_type(DBF.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'prn': return write_string_type(PRN.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'rtf': return write_string_type(sheet_to_rtf(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'eth': return write_string_type(ETH.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'fods': return write_string_type(write_ods(wb, o), o);\n\t\tcase 'wk1': return write_binary_type(WK_.sheet_to_wk1(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'wk3': return write_binary_type(WK_.book_to_wk3(wb, o), o);\n\t\tcase 'biff2': if(!o.biff) o.biff = 2; /* falls through */\n\t\tcase 'biff3': if(!o.biff) o.biff = 3; /* falls through */\n\t\tcase 'biff4': if(!o.biff) o.biff = 4; return write_binary_type(write_biff_buf(wb, o), o);\n\t\tcase 'biff5': if(!o.biff) o.biff = 5; /* falls through */\n\t\tcase 'biff8':\n\t\tcase 'xla':\n\t\tcase 'xls': if(!o.biff) o.biff = 8; return write_cfb_type(wb, o);\n\t\tcase 'xlsx':\n\t\tcase 'xlsm':\n\t\tcase 'xlam':\n\t\tcase 'xlsb':\n\t\tcase 'numbers':\n\t\tcase 'ods': return write_zip_type(wb, o);\n\t\tdefault: throw new Error (\"Unrecognized bookType |\" + o.bookType + \"|\");\n\t}\n}\n\nfunction resolve_book_type(o/*:WriteFileOpts*/) {\n\tif(o.bookType) return;\n\tvar _BT = {\n\t\t\"xls\": \"biff8\",\n\t\t\"htm\": \"html\",\n\t\t\"slk\": \"sylk\",\n\t\t\"socialcalc\": \"eth\",\n\t\t\"Sh33tJS\": \"WTF\"\n\t};\n\tvar ext = o.file.slice(o.file.lastIndexOf(\".\")).toLowerCase();\n\tif(ext.match(/^\\.[a-z]+$/)) o.bookType = ext.slice(1);\n\to.bookType = _BT[o.bookType] || o.bookType;\n}\n\nfunction writeFileSync(wb/*:Workbook*/, filename/*:string*/, opts/*:?WriteFileOpts*/) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\treturn writeSync(wb, o);\n}\n\nfunction writeFileSyncXLSX(wb/*:Workbook*/, filename/*:string*/, opts/*:?WriteFileOpts*/) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\treturn writeSyncXLSX(wb, o);\n}\n\n\nfunction writeFileAsync(filename/*:string*/, wb/*:Workbook*/, opts/*:?WriteFileOpts*/, cb/*:?(e?:ErrnoError)=>void*/) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\to.type = 'buffer';\n\tvar _cb = cb; if(!(_cb instanceof Function)) _cb = (opts/*:any*/);\n\treturn _fs.writeFile(filename, writeSync(wb, o), _cb);\n}\n/*::\ntype MJRObject = {\n\trow: any;\n\tisempty: boolean;\n};\n*/\nfunction make_json_row(sheet/*:Worksheet*/, r/*:Range*/, R/*:number*/, cols/*:Array*/, header/*:number*/, hdr/*:Array*/, o/*:Sheet2JSONOpts*/)/*:MJRObject*/ {\n\tvar rr = encode_row(R);\n\tvar defval = o.defval, raw = o.raw || !Object.prototype.hasOwnProperty.call(o, \"raw\");\n\tvar isempty = true, dense = (sheet[\"!data\"] != null);\n\tvar row/*:any*/ = (header === 1) ? [] : {};\n\tif(header !== 1) {\n\t\tif(Object.defineProperty) try { Object.defineProperty(row, '__rowNum__', {value:R, enumerable:false}); } catch(e) { row.__rowNum__ = R; }\n\t\telse row.__rowNum__ = R;\n\t}\n\tif(!dense || sheet[\"!data\"][R]) for (var C = r.s.c; C <= r.e.c; ++C) {\n\t\tvar val = dense ? (sheet[\"!data\"][R]||[])[C] : sheet[cols[C] + rr];\n\t\tif(val == null || val.t === undefined) {\n\t\t\tif(defval === undefined) continue;\n\t\t\tif(hdr[C] != null) { row[hdr[C]] = defval; }\n\t\t\tcontinue;\n\t\t}\n\t\tvar v = val.v;\n\t\tswitch(val.t){\n\t\t\tcase 'z': if(v == null) break; continue;\n\t\t\tcase 'e': v = (v == 0 ? null : void 0); break;\n\t\t\tcase 's': case 'b':\n\t\t\tcase 'n': if(!val.z || !fmt_is_date(val.z)) break;\n\t\t\tv = numdate(v); // TODO: date1904 setting should also be stored in worksheet object\n\t\t\tif(typeof v == \"number\") break;\n\t\t\t/* falls through */\n\t\t\tcase 'd': if(!(o && o.UTC)) v = utc_to_local(v); break;\n\t\t\tdefault: throw new Error('unrecognized type ' + val.t);\n\t\t}\n\t\tif(hdr[C] != null) {\n\t\t\tif(v == null) {\n\t\t\t\tif(val.t == \"e\" && v === null) row[hdr[C]] = null;\n\t\t\t\telse if(defval !== undefined) row[hdr[C]] = defval;\n\t\t\t\telse if(raw && v === null) row[hdr[C]] = null;\n\t\t\t\telse continue;\n\t\t\t} else {\n\t\t\t\trow[hdr[C]] = raw && (val.t !== \"n\" || (val.t === \"n\" && o.rawNumbers !== false)) ? v : format_cell(val,v,o);\n\t\t\t}\n\t\t\tif(v != null) isempty = false;\n\t\t}\n\t}\n\treturn { row: row, isempty: isempty };\n}\n\n\nfunction sheet_to_json(sheet/*:Worksheet*/, opts/*:?Sheet2JSONOpts*/) {\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr/*:Array*/ = [], v=0, vv=\"\";\n\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\tvar o = opts || {};\n\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\tif(o.header === 1) header = 1;\n\telse if(o.header === \"A\") header = 2;\n\telse if(Array.isArray(o.header)) header = 3;\n\telse if(o.header == null) header = 0;\n\tswitch(typeof range) {\n\t\tcase 'string': r = safe_decode_range(range); break;\n\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\tdefault: r = range;\n\t}\n\tif(header > 0) offset = 0;\n\tvar rr = encode_row(r.s.r);\n\tvar cols/*:Array*/ = [];\n\tvar out/*:Array*/ = [];\n\tvar outi = 0, counter = 0;\n\tvar dense = sheet[\"!data\"] != null;\n\tvar R = r.s.r, C = 0;\n\tvar header_cnt = {};\n\tif(dense && !sheet[\"!data\"][R]) sheet[\"!data\"][R] = [];\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\tif(((colinfo[C]||{}).hidden)) continue;\n\t\tcols[C] = encode_col(C);\n\t\tval = dense ? sheet[\"!data\"][R][C] : sheet[cols[C] + rr];\n\t\tswitch(header) {\n\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\tdefault:\n\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\tcounter = header_cnt[v] || 0;\n\t\t\t\tif(!counter) header_cnt[v] = 1;\n\t\t\t\telse {\n\t\t\t\t\tdo { vv = v + \"_\" + (counter++); } while(header_cnt[vv]); header_cnt[v] = counter;\n\t\t\t\t\theader_cnt[vv] = 1;\n\t\t\t\t}\n\t\t\t\thdr[C] = vv;\n\t\t}\n\t}\n\tfor (R = r.s.r + offset; R <= r.e.r; ++R) {\n\t\tif ((rowinfo[R]||{}).hidden) continue;\n\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, o);\n\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) out[outi++] = row.row;\n\t}\n\tout.length = outi;\n\treturn out;\n}\n\nvar qreg = /\"/g;\nfunction make_csv_row(sheet/*:Worksheet*/, r/*:Range*/, R/*:number*/, cols/*:Array*/, fs/*:number*/, rs/*:number*/, FS/*:string*/, o/*:Sheet2CSVOpts*/)/*:?string*/ {\n\tvar isempty = true;\n\tvar row/*:Array*/ = [], txt = \"\", rr = encode_row(R);\n\tvar dense = sheet[\"!data\"] != null;\n\tvar datarow = dense && sheet[\"!data\"][R] || [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\tif (!cols[C]) continue;\n\t\tvar val = dense ? datarow[C]: sheet[cols[C] + rr];\n\t\tif(val == null) txt = \"\";\n\t\telse if(val.v != null) {\n\t\t\tisempty = false;\n\t\t\ttxt = ''+(o.rawNumbers && val.t == \"n\" ? val.v : format_cell(val, null, o));\n\t\t\tfor(var i = 0, cc = 0; i !== txt.length; ++i) if((cc = txt.charCodeAt(i)) === fs || cc === rs || cc === 34 || o.forceQuotes) {txt = \"\\\"\" + txt.replace(qreg, '\"\"') + \"\\\"\"; break; }\n\t\t\tif(txt == \"ID\") txt = '\"ID\"';\n\t\t} else if(val.f != null && !val.F) {\n\t\t\tisempty = false;\n\t\t\ttxt = '=' + val.f; if(txt.indexOf(\",\") >= 0) txt = '\"' + txt.replace(qreg, '\"\"') + '\"';\n\t\t} else txt = \"\";\n\t\t/* NOTE: Excel CSV does not support array formulae */\n\t\trow.push(txt);\n\t}\n\tif(o.blankrows === false && isempty) return null;\n\treturn row.join(FS);\n}\n\nfunction sheet_to_csv(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/)/*:string*/ {\n\tvar out/*:Array*/ = [];\n\tvar o = opts == null ? {} : opts;\n\tif(sheet == null || sheet[\"!ref\"] == null) return \"\";\n\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\tvar row = \"\", cols/*:Array*/ = [];\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\tvar w = 0;\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\tif ((rowinfo[R]||{}).hidden) continue;\n\t\trow = make_csv_row(sheet, r, R, cols, fs, rs, FS, o);\n\t\tif(row == null) { continue; }\n\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\tif(row || (o.blankrows !== false)) out.push((w++ ? RS : \"\") + row);\n\t}\n\treturn out.join(\"\");\n}\n\nfunction sheet_to_txt(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) {\n\tif(!opts) opts = {}; opts.FS = \"\\t\"; opts.RS = \"\\n\";\n\tvar s = sheet_to_csv(sheet, opts);\n\tif(typeof $cptable == 'undefined' || opts.type == 'string') return s;\n\tvar o = $cptable.utils.encode(1200, s, 'str');\n\treturn String.fromCharCode(255) + String.fromCharCode(254) + o;\n}\n\nfunction sheet_to_formulae(sheet/*:Worksheet*/)/*:Array*/ {\n\tvar y = \"\", x, val=\"\";\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar r = safe_decode_range(sheet['!ref']), rr = \"\", cols/*:Array*/ = [], C;\n\tvar cmds/*:Array*/ = [];\n\tvar dense = sheet[\"!data\"] != null;\n\tfor(C = r.s.c; C <= r.e.c; ++C) cols[C] = encode_col(C);\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\ty = cols[C] + rr;\n\t\t\tx = dense ? (sheet[\"!data\"][R]||[])[C] : sheet[y];\n\t\t\tval = \"\";\n\t\t\tif(x === undefined) continue;\n\t\t\telse if(x.F != null) {\n\t\t\t\ty = x.F;\n\t\t\t\tif(!x.f) continue;\n\t\t\t\tval = x.f;\n\t\t\t\tif(y.indexOf(\":\") == -1) y = y + \":\" + y;\n\t\t\t}\n\t\t\tif(x.f != null) val = x.f;\n\t\t\telse if(x.t == 'z') continue;\n\t\t\telse if(x.t == 'n' && x.v != null) val = \"\" + x.v;\n\t\t\telse if(x.t == 'b') val = x.v ? \"TRUE\" : \"FALSE\";\n\t\t\telse if(x.w !== undefined) val = \"'\" + x.w;\n\t\t\telse if(x.v === undefined) continue;\n\t\t\telse if(x.t == 's') val = \"'\" + x.v;\n\t\t\telse val = \"\"+x.v;\n\t\t\tcmds[cmds.length] = y + \"=\" + val;\n\t\t}\n\t}\n\treturn cmds;\n}\n\nfunction sheet_add_json(_ws/*:?Worksheet*/, js/*:Array*/, opts)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tvar dense = _ws ? (_ws[\"!data\"] != null) : o.dense;\n\tif(DENSE != null && dense == null) dense = DENSE;\n\tvar offset = +!o.skipHeader;\n\tvar ws/*:Worksheet*/ = _ws || ({});\n\tif(!_ws && dense) ws[\"!data\"] = [];\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin/*:CellAddress*/ = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t}\n\tvar range/*:Range*/ = ({s: {c:0, r:0}, e: {c:_C, r:_R + js.length - 1 + offset}}/*:any*/);\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) { _R = _range.e.r + 1; range.e.r = _R + js.length - 1 + offset; }\n\t} else {\n\t\tif(_R == -1) { _R = 0; range.e.r = js.length - 1 + offset; }\n\t}\n\tvar hdr/*:Array*/ = o.header || [], C = 0;\n\tvar ROW = [];\n\tjs.forEach(function (JS, R/*:number*/) {\n\t\tif(dense && !ws[\"!data\"][_R + R + offset]) ws[\"!data\"][_R + R + offset] = [];\n\t\tif(dense) ROW = ws[\"!data\"][_R + R + offset];\n\t\tkeys(JS).forEach(function(k) {\n\t\t\tif((C=hdr.indexOf(k)) == -1) hdr[C=hdr.length] = k;\n\t\t\tvar v = JS[k];\n\t\t\tvar t = 'z';\n\t\t\tvar z = \"\";\n\t\t\tvar ref = dense ? \"\" : (encode_col(_C + C) + encode_row(_R + R + offset));\n\t\t\tvar cell/*:Cell*/ = dense ? ROW[_C + C] : ws[ref];\n\t\t\tif(v && typeof v === 'object' && !(v instanceof Date)){\n\t\t\t\tif(dense) ROW[_C + C] = v;\n\t\t\t\telse ws[ref] = v;\n\t\t\t} else {\n\t\t\t\tif(typeof v == 'number') t = 'n';\n\t\t\t\telse if(typeof v == 'boolean') t = 'b';\n\t\t\t\telse if(typeof v == 'string') t = 's';\n\t\t\t\telse if(v instanceof Date) {\n\t\t\t\t\tt = 'd';\n\t\t\t\t\tif(!o.UTC) v = local_to_utc(v);\n\t\t\t\t\tif(!o.cellDates) { t = 'n'; v = datenum(v); }\n\t\t\t\t\tz = (cell != null && cell.z && fmt_is_date(cell.z)) ? cell.z : (o.dateNF || table_fmt[14]);\n\t\t\t\t}\n\t\t\t\telse if(v === null && o.nullError) { t = 'e'; v = 0; }\n\t\t\t\tif(!cell) {\n\t\t\t\t\tif(!dense) ws[ref] = cell = ({t:t, v:v}/*:any*/);\n\t\t\t\t\telse ROW[_C + C] = cell = ({t:t, v:v}/*:any*/);\n\t\t\t\t} else {\n\t\t\t\t\tcell.t = t; cell.v = v;\n\t\t\t\t\tdelete cell.w; delete cell.R;\n\t\t\t\t\tif(z) cell.z = z;\n\t\t\t\t}\n\t\t\t\tif(z) cell.z = z;\n\t\t\t}\n\t\t});\n\t});\n\trange.e.c = Math.max(range.e.c, _C + hdr.length - 1);\n\tvar __R = encode_row(_R);\n\tif(dense && !ws[\"!data\"][_R]) ws[\"!data\"][_R] = [];\n\tif(offset) for(C = 0; C < hdr.length; ++C) {\n\t\tif(dense) ws[\"!data\"][_R][C + _C] = {t:'s', v:hdr[C]};\n\t\telse ws[encode_col(C + _C) + __R] = {t:'s', v:hdr[C]};\n\t}\n\tws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction json_to_sheet(js/*:Array*/, opts)/*:Worksheet*/ { return sheet_add_json(null, js, opts); }\n\n/* get cell, creating a stub if necessary */\nfunction ws_get_cell_stub(ws/*:Worksheet*/, R, C/*:?number*/)/*:Cell*/ {\n\t/* A1 cell address */\n\tif(typeof R == \"string\") {\n\t\tif(ws[\"!data\"] != null) {\n\t\t\tvar RC = decode_cell(R);\n\t\t\tif(!ws[\"!data\"][RC.r]) ws[\"!data\"][RC.r] = [];\n\t\t\treturn ws[\"!data\"][RC.r][RC.c] || (ws[\"!data\"][RC.r][RC.c] = {t:'z'});\n\t\t}\n\t\treturn ws[R] || (ws[R] = {t:'z'});\n\t}\n\t/* cell address object */\n\tif(typeof R != \"number\") return ws_get_cell_stub(ws, encode_cell(R));\n\t/* R and C are 0-based indices */\n\treturn ws_get_cell_stub(ws, encode_col(C||0) + encode_row(R));\n}\n\n/* find sheet index for given name / validate index */\nfunction wb_sheet_idx(wb/*:Workbook*/, sh/*:number|string*/) {\n\tif(typeof sh == \"number\") {\n\t\tif(sh >= 0 && wb.SheetNames.length > sh) return sh;\n\t\tthrow new Error(\"Cannot find sheet # \" + sh);\n\t} else if(typeof sh == \"string\") {\n\t\tvar idx = wb.SheetNames.indexOf(sh);\n\t\tif(idx > -1) return idx;\n\t\tthrow new Error(\"Cannot find sheet name |\" + sh + \"|\");\n\t} else throw new Error(\"Cannot find sheet |\" + sh + \"|\");\n}\n\n/* simple blank workbook object */\nfunction book_new()/*:Workbook*/ {\n\treturn { SheetNames: [], Sheets: {} };\n}\n\n/* add a worksheet to the end of a given workbook */\nfunction book_append_sheet(wb/*:Workbook*/, ws/*:Worksheet*/, name/*:?string*/, roll/*:?boolean*/)/*:string*/ {\n\tvar i = 1;\n\tif(!name) for(; i <= 0xFFFF; ++i, name = undefined) if(wb.SheetNames.indexOf(name = \"Sheet\" + i) == -1) break;\n\tif(!name || wb.SheetNames.length >= 0xFFFF) throw new Error(\"Too many worksheets\");\n\tif(roll && wb.SheetNames.indexOf(name) >= 0) {\n\t\tvar m = name.match(/(^.*?)(\\d+)$/);\n\t\ti = m && +m[2] || 0;\n\t\tvar root = m && m[1] || name;\n\t\tfor(++i; i <= 0xFFFF; ++i) if(wb.SheetNames.indexOf(name = root + i) == -1) break;\n\t}\n\tcheck_ws_name(name);\n\tif(wb.SheetNames.indexOf(name) >= 0) throw new Error(\"Worksheet with name |\" + name + \"| already exists!\");\n\n\twb.SheetNames.push(name);\n\twb.Sheets[name] = ws;\n\treturn name;\n}\n\n/* set sheet visibility (visible/hidden/very hidden) */\nfunction book_set_sheet_visibility(wb/*:Workbook*/, sh/*:number|string*/, vis/*:number*/) {\n\tif(!wb.Workbook) wb.Workbook = {};\n\tif(!wb.Workbook.Sheets) wb.Workbook.Sheets = [];\n\n\tvar idx = wb_sheet_idx(wb, sh);\n\t// $FlowIgnore\n\tif(!wb.Workbook.Sheets[idx]) wb.Workbook.Sheets[idx] = {};\n\n\tswitch(vis) {\n\t\tcase 0: case 1: case 2: break;\n\t\tdefault: throw new Error(\"Bad sheet visibility setting \" + vis);\n\t}\n\t// $FlowIgnore\n\twb.Workbook.Sheets[idx].Hidden = vis;\n}\n\n/* set number format */\nfunction cell_set_number_format(cell/*:Cell*/, fmt/*:string|number*/) {\n\tcell.z = fmt;\n\treturn cell;\n}\n\n/* set cell hyperlink */\nfunction cell_set_hyperlink(cell/*:Cell*/, target/*:string*/, tooltip/*:?string*/) {\n\tif(!target) {\n\t\tdelete cell.l;\n\t} else {\n\t\tcell.l = ({ Target: target }/*:Hyperlink*/);\n\t\tif(tooltip) cell.l.Tooltip = tooltip;\n\t}\n\treturn cell;\n}\nfunction cell_set_internal_link(cell/*:Cell*/, range/*:string*/, tooltip/*:?string*/) { return cell_set_hyperlink(cell, \"#\" + range, tooltip); }\n\n/* add to cell comments */\nfunction cell_add_comment(cell/*:Cell*/, text/*:string*/, author/*:?string*/) {\n\tif(!cell.c) cell.c = [];\n\tcell.c.push({t:text, a:author||\"SheetJS\"});\n}\n\n/* set array formula and flush related cells */\nfunction sheet_set_array_formula(ws/*:Worksheet*/, range, formula/*:string*/, dynamic/*:boolean*/) {\n\tvar rng = typeof range != \"string\" ? range : safe_decode_range(range);\n\tvar rngstr = typeof range == \"string\" ? range : encode_range(range);\n\tfor(var R = rng.s.r; R <= rng.e.r; ++R) for(var C = rng.s.c; C <= rng.e.c; ++C) {\n\t\tvar cell = ws_get_cell_stub(ws, R, C);\n\t\tcell.t = 'n';\n\t\tcell.F = rngstr;\n\t\tdelete cell.v;\n\t\tif(R == rng.s.r && C == rng.s.c) {\n\t\t\tcell.f = formula;\n\t\t\tif(dynamic) cell.D = true;\n\t\t}\n\t}\n\tvar wsr = decode_range(ws[\"!ref\"]);\n\tif(wsr.s.r > rng.s.r) wsr.s.r = rng.s.r;\n\tif(wsr.s.c > rng.s.c) wsr.s.c = rng.s.c;\n\tif(wsr.e.r < rng.e.r) wsr.e.r = rng.e.r;\n\tif(wsr.e.c < rng.e.c) wsr.e.c = rng.e.c;\n\tws[\"!ref\"] = encode_range(wsr);\n\treturn ws;\n}\n\nvar utils/*:any*/ = {\n\tencode_col: encode_col,\n\tencode_row: encode_row,\n\tencode_cell: encode_cell,\n\tencode_range: encode_range,\n\tdecode_col: decode_col,\n\tdecode_row: decode_row,\n\tsplit_cell: split_cell,\n\tdecode_cell: decode_cell,\n\tdecode_range: decode_range,\n\tformat_cell: format_cell,\n\tsheet_add_aoa: sheet_add_aoa,\n\tsheet_add_json: sheet_add_json,\n\tsheet_add_dom: sheet_add_dom,\n\taoa_to_sheet: aoa_to_sheet,\n\tjson_to_sheet: json_to_sheet,\n\ttable_to_sheet: parse_dom_table,\n\ttable_to_book: table_to_book,\n\tsheet_to_csv: sheet_to_csv,\n\tsheet_to_txt: sheet_to_txt,\n\tsheet_to_json: sheet_to_json,\n\tsheet_to_html: sheet_to_html,\n\tsheet_to_formulae: sheet_to_formulae,\n\tsheet_to_row_object_array: sheet_to_json,\n\tsheet_get_cell: ws_get_cell_stub,\n\tbook_new: book_new,\n\tbook_append_sheet: book_append_sheet,\n\tbook_set_sheet_visibility: book_set_sheet_visibility,\n\tcell_set_number_format: cell_set_number_format,\n\tcell_set_hyperlink: cell_set_hyperlink,\n\tcell_set_internal_link: cell_set_internal_link,\n\tcell_add_comment: cell_add_comment,\n\tsheet_set_array_formula: sheet_set_array_formula,\n\tconsts: {\n\t\tSHEET_VISIBLE: 0,\n\t\tSHEET_HIDDEN: 1,\n\t\tSHEET_VERY_HIDDEN: 2\n\t}\n};\n\nvar _Readable;\nfunction set_readable(R) { _Readable = R; }\n\nfunction write_csv_stream(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) {\n\tvar stream = _Readable();\n\tvar o = opts == null ? {} : opts;\n\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\tvar row/*:?string*/ = \"\", cols/*:Array*/ = [];\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\tvar R = r.s.r;\n\tvar BOM = false, w = 0;\n\tstream._read = function() {\n\t\tif(!BOM) { BOM = true; return stream.push(\"\\uFEFF\"); }\n\t\twhile(R <= r.e.r) {\n\t\t\t++R;\n\t\t\tif ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\trow = make_csv_row(sheet, r, R-1, cols, fs, rs, FS, o);\n\t\t\tif(row != null) {\n\t\t\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\t\t\tif(row || (o.blankrows !== false)) return stream.push((w++ ? RS : \"\") + row);\n\t\t\t}\n\t\t}\n\t\treturn stream.push(null);\n\t};\n\treturn stream;\n}\n\nfunction write_html_stream(ws/*:Worksheet*/, opts/*:?Sheet2HTMLOpts*/) {\n\tvar stream = _Readable();\n\n\tvar o = opts || {};\n\tvar header = o.header != null ? o.header : HTML_BEGIN;\n\tvar footer = o.footer != null ? o.footer : HTML_END;\n\tstream.push(header);\n\tvar r = decode_range(ws['!ref']);\n\tstream.push(make_html_preamble(ws, r, o));\n\tvar R = r.s.r;\n\tvar end = false;\n\tstream._read = function() {\n\t\tif(R > r.e.r) {\n\t\t\tif(!end) { end = true; stream.push(\"\" + footer); }\n\t\t\treturn stream.push(null);\n\t\t}\n\t\twhile(R <= r.e.r) {\n\t\t\tstream.push(make_html_row(ws, r, R, o));\n\t\t\t++R;\n\t\t\tbreak;\n\t\t}\n\t};\n\treturn stream;\n}\n\nfunction write_json_stream(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) {\n\tvar stream = _Readable({objectMode:true});\n\n\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr/*:Array*/ = [], v=0, vv=\"\";\n\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\tvar o = opts || {};\n\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\tif(o.header === 1) header = 1;\n\telse if(o.header === \"A\") header = 2;\n\telse if(Array.isArray(o.header)) header = 3;\n\tswitch(typeof range) {\n\t\tcase 'string': r = safe_decode_range(range); break;\n\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\tdefault: r = range;\n\t}\n\tif(header > 0) offset = 0;\n\tvar rr = encode_row(r.s.r);\n\tvar cols/*:Array*/ = [];\n\tvar counter = 0;\n\tvar dense = sheet[\"!data\"] != null;\n\tvar R = r.s.r, C = 0;\n\tvar header_cnt = {};\n\tif(dense && !sheet[\"!data\"][R]) sheet[\"!data\"][R] = [];\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\tif(((colinfo[C]||{}).hidden)) continue;\n\t\tcols[C] = encode_col(C);\n\t\tval = dense ? sheet[\"!data\"][R][C] : sheet[cols[C] + rr];\n\t\tswitch(header) {\n\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\tdefault:\n\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\tcounter = header_cnt[v] || 0;\n\t\t\t\tif(!counter) header_cnt[v] = 1;\n\t\t\t\telse {\n\t\t\t\t\tdo { vv = v + \"_\" + (counter++); } while(header_cnt[vv]); header_cnt[v] = counter;\n\t\t\t\t\theader_cnt[vv] = 1;\n\t\t\t\t}\n\t\t\t\thdr[C] = vv;\n\t\t}\n\t}\n\tR = r.s.r + offset;\n\tstream._read = function() {\n\t\twhile(R <= r.e.r) {\n\t\t\tif ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, o);\n\t\t\t++R;\n\t\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) {\n\t\t\t\tstream.push(row.row);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\treturn stream.push(null);\n\t};\n\treturn stream;\n}\n\nvar __stream = {\n\tto_json: write_json_stream,\n\tto_html: write_html_stream,\n\tto_csv: write_csv_stream,\n\tset_readable: set_readable\n};\nexport const version = XLSX.version;\nexport {\n\tparse_xlscfb,\n\tparse_zip,\n\treadSync as read,\n\treadFileSync as readFile,\n\treadFileSync,\n\twriteSync as write,\n\twriteFileSync as writeFile,\n\twriteFileSync,\n\twriteFileAsync,\n\twriteSyncXLSX as writeXLSX,\n\twriteFileSyncXLSX as writeFileXLSX,\n\tutils,\n\tset_fs,\n\tset_cptable,\n\t__stream as stream,\n\tSSF,\n\tCFB\n};\nexport default {\n\tparse_xlscfb,\n\tparse_zip,\n\tread: readSync,\n\treadFile: readFileSync,\n\treadFileSync,\n\twrite: writeSync,\n\twriteFile: writeFileSync,\n\twriteFileSync,\n\twriteFileAsync,\n\twriteXLSX: writeSyncXLSX,\n\twriteFileXLSX: writeFileSyncXLSX,\n\tutils,\n\tset_fs,\n\tset_cptable,\n\tstream: __stream,\n\tSSF,\n\tCFB\n}\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6 6h12v12H6z\"\n}), 'Stop');\n\nexports.default = _default;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes } from '@material-ui/utils';\nimport withStyles from '../styles/withStyles';\nimport { alpha } from '../styles/colorManipulator';\nimport ButtonBase from '../ButtonBase';\nimport capitalize from '../utils/capitalize';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n textAlign: 'center',\n flex: '0 0 auto',\n fontSize: theme.typography.pxToRem(24),\n padding: 12,\n borderRadius: '50%',\n overflow: 'visible',\n // Explicitly set the default value to solve a bug on IE 11.\n color: theme.palette.action.active,\n transition: theme.transitions.create('background-color', {\n duration: theme.transitions.duration.shortest\n }),\n '&:hover': {\n backgroundColor: alpha(theme.palette.action.active, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n },\n '&$disabled': {\n backgroundColor: 'transparent',\n color: theme.palette.action.disabled\n }\n },\n\n /* Styles applied to the root element if `edge=\"start\"`. */\n edgeStart: {\n marginLeft: -12,\n '$sizeSmall&': {\n marginLeft: -3\n }\n },\n\n /* Styles applied to the root element if `edge=\"end\"`. */\n edgeEnd: {\n marginRight: -12,\n '$sizeSmall&': {\n marginRight: -3\n }\n },\n\n /* Styles applied to the root element if `color=\"inherit\"`. */\n colorInherit: {\n color: 'inherit'\n },\n\n /* Styles applied to the root element if `color=\"primary\"`. */\n colorPrimary: {\n color: theme.palette.primary.main,\n '&:hover': {\n backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n },\n\n /* Styles applied to the root element if `color=\"secondary\"`. */\n colorSecondary: {\n color: theme.palette.secondary.main,\n '&:hover': {\n backgroundColor: alpha(theme.palette.secondary.main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n },\n\n /* Pseudo-class applied to the root element if `disabled={true}`. */\n disabled: {},\n\n /* Styles applied to the root element if `size=\"small\"`. */\n sizeSmall: {\n padding: 3,\n fontSize: theme.typography.pxToRem(18)\n },\n\n /* Styles applied to the children container element. */\n label: {\n width: '100%',\n display: 'flex',\n alignItems: 'inherit',\n justifyContent: 'inherit'\n }\n };\n};\n/**\n * Refer to the [Icons](/components/icons/) section of the documentation\n * regarding the available icon options.\n */\n\nvar IconButton = /*#__PURE__*/React.forwardRef(function IconButton(props, ref) {\n var _props$edge = props.edge,\n edge = _props$edge === void 0 ? false : _props$edge,\n children = props.children,\n classes = props.classes,\n className = props.className,\n _props$color = props.color,\n color = _props$color === void 0 ? 'default' : _props$color,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled,\n _props$disableFocusRi = props.disableFocusRipple,\n disableFocusRipple = _props$disableFocusRi === void 0 ? false : _props$disableFocusRi,\n _props$size = props.size,\n size = _props$size === void 0 ? 'medium' : _props$size,\n other = _objectWithoutProperties(props, [\"edge\", \"children\", \"classes\", \"className\", \"color\", \"disabled\", \"disableFocusRipple\", \"size\"]);\n\n return /*#__PURE__*/React.createElement(ButtonBase, _extends({\n className: clsx(classes.root, className, color !== 'default' && classes[\"color\".concat(capitalize(color))], disabled && classes.disabled, size === \"small\" && classes[\"size\".concat(capitalize(size))], {\n 'start': classes.edgeStart,\n 'end': classes.edgeEnd\n }[edge]),\n centerRipple: true,\n focusRipple: !disableFocusRipple,\n disabled: disabled,\n ref: ref\n }, other), /*#__PURE__*/React.createElement(\"span\", {\n className: classes.label\n }, children));\n});\nprocess.env.NODE_ENV !== \"production\" ? IconButton.propTypes = {\n /**\n * The icon element.\n */\n children: chainPropTypes(PropTypes.node, function (props) {\n var found = React.Children.toArray(props.children).some(function (child) {\n return /*#__PURE__*/React.isValidElement(child) && child.props.onClick;\n });\n\n if (found) {\n return new Error(['Material-UI: You are providing an onClick event listener ' + 'to a child of a button element.', 'Firefox will never trigger the event.', 'You should move the onClick listener to the parent button element.', 'https://github.com/mui-org/material-ui/issues/13957'].join('\\n'));\n }\n\n return null;\n }),\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object.isRequired,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The color of the component. It supports those theme colors that make sense for this component.\n */\n color: PropTypes.oneOf(['default', 'inherit', 'primary', 'secondary']),\n\n /**\n * If `true`, the button will be disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the keyboard focus ripple will be disabled.\n */\n disableFocusRipple: PropTypes.bool,\n\n /**\n * If `true`, the ripple effect will be disabled.\n */\n disableRipple: PropTypes.bool,\n\n /**\n * If given, uses a negative margin to counteract the padding on one\n * side (this is often helpful for aligning the left or right\n * side of the icon with content above or below, without ruining the border\n * size and shape).\n */\n edge: PropTypes.oneOf(['start', 'end', false]),\n\n /**\n * The size of the button.\n * `small` is equivalent to the dense button styling.\n */\n size: PropTypes.oneOf(['small', 'medium'])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiIconButton'\n})(IconButton);","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","// We need to centralize the zIndex definitions as they work\n// like global values in the browser.\nvar zIndex = {\n mobileStepper: 1000,\n speedDial: 1050,\n appBar: 1100,\n drawer: 1200,\n modal: 1300,\n snackbar: 1400,\n tooltip: 1500\n};\nexport default zIndex;","// A change of the browser zoom change the scrollbar size.\n// Credit https://github.com/twbs/bootstrap/blob/3ffe3a5d82f6f561b82ff78d82b32a7d14aed558/js/src/modal.js#L512-L519\nexport default function getScrollbarSize() {\n var scrollDiv = document.createElement('div');\n scrollDiv.style.width = '99px';\n scrollDiv.style.height = '99px';\n scrollDiv.style.position = 'absolute';\n scrollDiv.style.top = '-9999px';\n scrollDiv.style.overflow = 'scroll';\n document.body.appendChild(scrollDiv);\n var scrollbarSize = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarSize;\n}","import * as React from 'react';\n/**\n * @ignore - internal component.\n */\n\nvar TableContext = React.createContext();\n\nif (process.env.NODE_ENV !== 'production') {\n TableContext.displayName = 'TableContext';\n}\n\nexport default TableContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { refType } from '@material-ui/utils';\nimport useControlled from '../utils/useControlled';\nimport useFormControl from '../FormControl/useFormControl';\nimport withStyles from '../styles/withStyles';\nimport IconButton from '../IconButton';\nexport var styles = {\n root: {\n padding: 9\n },\n checked: {},\n disabled: {},\n input: {\n cursor: 'inherit',\n position: 'absolute',\n opacity: 0,\n width: '100%',\n height: '100%',\n top: 0,\n left: 0,\n margin: 0,\n padding: 0,\n zIndex: 1\n }\n};\n/**\n * @ignore - internal component.\n */\n\nvar SwitchBase = /*#__PURE__*/React.forwardRef(function SwitchBase(props, ref) {\n var autoFocus = props.autoFocus,\n checkedProp = props.checked,\n checkedIcon = props.checkedIcon,\n classes = props.classes,\n className = props.className,\n defaultChecked = props.defaultChecked,\n disabledProp = props.disabled,\n icon = props.icon,\n id = props.id,\n inputProps = props.inputProps,\n inputRef = props.inputRef,\n name = props.name,\n onBlur = props.onBlur,\n onChange = props.onChange,\n onFocus = props.onFocus,\n readOnly = props.readOnly,\n required = props.required,\n tabIndex = props.tabIndex,\n type = props.type,\n value = props.value,\n other = _objectWithoutProperties(props, [\"autoFocus\", \"checked\", \"checkedIcon\", \"classes\", \"className\", \"defaultChecked\", \"disabled\", \"icon\", \"id\", \"inputProps\", \"inputRef\", \"name\", \"onBlur\", \"onChange\", \"onFocus\", \"readOnly\", \"required\", \"tabIndex\", \"type\", \"value\"]);\n\n var _useControlled = useControlled({\n controlled: checkedProp,\n default: Boolean(defaultChecked),\n name: 'SwitchBase',\n state: 'checked'\n }),\n _useControlled2 = _slicedToArray(_useControlled, 2),\n checked = _useControlled2[0],\n setCheckedState = _useControlled2[1];\n\n var muiFormControl = useFormControl();\n\n var handleFocus = function handleFocus(event) {\n if (onFocus) {\n onFocus(event);\n }\n\n if (muiFormControl && muiFormControl.onFocus) {\n muiFormControl.onFocus(event);\n }\n };\n\n var handleBlur = function handleBlur(event) {\n if (onBlur) {\n onBlur(event);\n }\n\n if (muiFormControl && muiFormControl.onBlur) {\n muiFormControl.onBlur(event);\n }\n };\n\n var handleInputChange = function handleInputChange(event) {\n var newChecked = event.target.checked;\n setCheckedState(newChecked);\n\n if (onChange) {\n // TODO v5: remove the second argument.\n onChange(event, newChecked);\n }\n };\n\n var disabled = disabledProp;\n\n if (muiFormControl) {\n if (typeof disabled === 'undefined') {\n disabled = muiFormControl.disabled;\n }\n }\n\n var hasLabelFor = type === 'checkbox' || type === 'radio';\n return /*#__PURE__*/React.createElement(IconButton, _extends({\n component: \"span\",\n className: clsx(classes.root, className, checked && classes.checked, disabled && classes.disabled),\n disabled: disabled,\n tabIndex: null,\n role: undefined,\n onFocus: handleFocus,\n onBlur: handleBlur,\n ref: ref\n }, other), /*#__PURE__*/React.createElement(\"input\", _extends({\n autoFocus: autoFocus,\n checked: checkedProp,\n defaultChecked: defaultChecked,\n className: classes.input,\n disabled: disabled,\n id: hasLabelFor && id,\n name: name,\n onChange: handleInputChange,\n readOnly: readOnly,\n ref: inputRef,\n required: required,\n tabIndex: tabIndex,\n type: type,\n value: value\n }, inputProps)), checked ? checkedIcon : icon);\n}); // NB: If changed, please update Checkbox, Switch and Radio\n// so that the API documentation is updated.\n\nprocess.env.NODE_ENV !== \"production\" ? SwitchBase.propTypes = {\n /**\n * If `true`, the `input` element will be focused during the first mount.\n */\n autoFocus: PropTypes.bool,\n\n /**\n * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n\n /**\n * The icon to display when the component is checked.\n */\n checkedIcon: PropTypes.node.isRequired,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object.isRequired,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * @ignore\n */\n defaultChecked: PropTypes.bool,\n\n /**\n * If `true`, the switch will be disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * The icon to display when the component is unchecked.\n */\n icon: PropTypes.node.isRequired,\n\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n\n /*\n * @ignore\n */\n name: PropTypes.string,\n\n /**\n * @ignore\n */\n onBlur: PropTypes.func,\n\n /**\n * Callback fired when the state is changed.\n *\n * @param {object} event The event source of the callback.\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n\n /**\n * It prevents the user from changing the value of the field\n * (not from interacting with the field).\n */\n readOnly: PropTypes.bool,\n\n /**\n * If `true`, the `input` element will be required.\n */\n required: PropTypes.bool,\n\n /**\n * @ignore\n */\n tabIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * The input component prop `type`.\n */\n type: PropTypes.string.isRequired,\n\n /**\n * The value of the component.\n */\n value: PropTypes.any\n} : void 0;\nexport default withStyles(styles, {\n name: 'PrivateSwitchBase'\n})(SwitchBase);","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V7l-4-4zm-5 16c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm3-10H5V5h10v4z\"\n}), 'Save');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z\"\n}), 'Lock');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z\"\n}), 'ArrowForward');\n\nexports.default = _default;","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n throw new Error(prefix + \": \" + (message || ''));\n}\n\nexport default invariant;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes } from '@material-ui/utils';\nimport withStyles from '../styles/withStyles';\nexport var styles = function styles(theme) {\n var elevations = {};\n theme.shadows.forEach(function (shadow, index) {\n elevations[\"elevation\".concat(index)] = {\n boxShadow: shadow\n };\n });\n return _extends({\n /* Styles applied to the root element. */\n root: {\n backgroundColor: theme.palette.background.paper,\n color: theme.palette.text.primary,\n transition: theme.transitions.create('box-shadow')\n },\n\n /* Styles applied to the root element if `square={false}`. */\n rounded: {\n borderRadius: theme.shape.borderRadius\n },\n\n /* Styles applied to the root element if `variant=\"outlined\"`. */\n outlined: {\n border: \"1px solid \".concat(theme.palette.divider)\n }\n }, elevations);\n};\nvar Paper = /*#__PURE__*/React.forwardRef(function Paper(props, ref) {\n var classes = props.classes,\n className = props.className,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n _props$square = props.square,\n square = _props$square === void 0 ? false : _props$square,\n _props$elevation = props.elevation,\n elevation = _props$elevation === void 0 ? 1 : _props$elevation,\n _props$variant = props.variant,\n variant = _props$variant === void 0 ? 'elevation' : _props$variant,\n other = _objectWithoutProperties(props, [\"classes\", \"className\", \"component\", \"square\", \"elevation\", \"variant\"]);\n\n return /*#__PURE__*/React.createElement(Component, _extends({\n className: clsx(classes.root, className, variant === 'outlined' ? classes.outlined : classes[\"elevation\".concat(elevation)], !square && classes.rounded),\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? Paper.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * Shadow depth, corresponds to `dp` in the spec.\n * It accepts values between 0 and 24 inclusive.\n */\n elevation: chainPropTypes(PropTypes.number, function (props) {\n var classes = props.classes,\n elevation = props.elevation; // in case `withStyles` fails to inject we don't need this warning\n\n if (classes === undefined) {\n return null;\n }\n\n if (elevation != null && classes[\"elevation\".concat(elevation)] === undefined) {\n return new Error(\"Material-UI: This elevation `\".concat(elevation, \"` is not implemented.\"));\n }\n\n return null;\n }),\n\n /**\n * If `true`, rounded corners are disabled.\n */\n square: PropTypes.bool,\n\n /**\n * The variant to use.\n */\n variant: PropTypes.oneOf(['elevation', 'outlined'])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiPaper'\n})(Paper);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport Tablelvl2Context from '../Table/Tablelvl2Context';\nimport { alpha } from '../styles/colorManipulator';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n color: 'inherit',\n display: 'table-row',\n verticalAlign: 'middle',\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0,\n '&$hover:hover': {\n backgroundColor: theme.palette.action.hover\n },\n '&$selected, &$selected:hover': {\n backgroundColor: alpha(theme.palette.secondary.main, theme.palette.action.selectedOpacity)\n }\n },\n\n /* Pseudo-class applied to the root element if `selected={true}`. */\n selected: {},\n\n /* Pseudo-class applied to the root element if `hover={true}`. */\n hover: {},\n\n /* Styles applied to the root element if table variant=\"head\". */\n head: {},\n\n /* Styles applied to the root element if table variant=\"footer\". */\n footer: {}\n };\n};\nvar defaultComponent = 'tr';\n/**\n * Will automatically set dynamic row height\n * based on the material table element parent (head, body, etc).\n */\n\nvar TableRow = /*#__PURE__*/React.forwardRef(function TableRow(props, ref) {\n var classes = props.classes,\n className = props.className,\n _props$component = props.component,\n Component = _props$component === void 0 ? defaultComponent : _props$component,\n _props$hover = props.hover,\n hover = _props$hover === void 0 ? false : _props$hover,\n _props$selected = props.selected,\n selected = _props$selected === void 0 ? false : _props$selected,\n other = _objectWithoutProperties(props, [\"classes\", \"className\", \"component\", \"hover\", \"selected\"]);\n\n var tablelvl2 = React.useContext(Tablelvl2Context);\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: ref,\n className: clsx(classes.root, className, tablelvl2 && {\n 'head': classes.head,\n 'footer': classes.footer\n }[tablelvl2.variant], hover && classes.hover, selected && classes.selected),\n role: Component === defaultComponent ? null : 'row'\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? TableRow.propTypes = {\n /**\n * Should be valid children such as `TableCell`.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object.isRequired,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * If `true`, the table row will shade on hover.\n */\n hover: PropTypes.bool,\n\n /**\n * If `true`, the table row will have the selected shading.\n */\n selected: PropTypes.bool\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiTableRow'\n})(TableRow);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n padding: 16,\n '&:last-child': {\n paddingBottom: 24\n }\n }\n};\nvar CardContent = /*#__PURE__*/React.forwardRef(function CardContent(props, ref) {\n var classes = props.classes,\n className = props.className,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n other = _objectWithoutProperties(props, [\"classes\", \"className\", \"component\"]);\n\n return /*#__PURE__*/React.createElement(Component, _extends({\n className: clsx(classes.root, className),\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? CardContent.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes\n /* @typescript-to-proptypes-ignore */\n .elementType\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiCardContent'\n})(CardContent);","import { Children, cloneElement, isValidElement } from 'react';\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\n\nexport function getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && isValidElement(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\nexport function mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nexport function getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\nexport function getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!isValidElement(child)) return;\n var hasPrev = (key in prevChildMapping);\n var hasNext = (key in nextChildMapping);\n var prevChild = prevChildMapping[key];\n var isLeaving = isValidElement(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = cloneElement(child, {\n in: false\n });\n } else if (hasNext && hasPrev && isValidElement(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { getChildMapping, getInitialChildMapping, getNextChildMapping } from './utils/ChildMapping';\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n};\n/**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\nvar TransitionGroup = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_this)); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n contextValue: {\n isMounting: true\n },\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true;\n this.setState({\n contextValue: {\n isMounting: false\n }\n });\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? getInitialChildMapping(nextProps, handleExited) : getNextChildMapping(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n } // node is `undefined` when user provided `nodeRef` prop\n ;\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = getChildMapping(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var contextValue = this.state.contextValue;\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(Component, props, children));\n };\n\n return TransitionGroup;\n}(React.Component);\n\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: PropTypes.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: PropTypes.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: PropTypes.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\nexport default TransitionGroup;","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport useEventCallback from '../utils/useEventCallback';\nvar useEnhancedEffect = typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect;\n/**\n * @ignore - internal component.\n */\n\nfunction Ripple(props) {\n var classes = props.classes,\n _props$pulsate = props.pulsate,\n pulsate = _props$pulsate === void 0 ? false : _props$pulsate,\n rippleX = props.rippleX,\n rippleY = props.rippleY,\n rippleSize = props.rippleSize,\n inProp = props.in,\n _props$onExited = props.onExited,\n onExited = _props$onExited === void 0 ? function () {} : _props$onExited,\n timeout = props.timeout;\n\n var _React$useState = React.useState(false),\n leaving = _React$useState[0],\n setLeaving = _React$useState[1];\n\n var rippleClassName = clsx(classes.ripple, classes.rippleVisible, pulsate && classes.ripplePulsate);\n var rippleStyles = {\n width: rippleSize,\n height: rippleSize,\n top: -(rippleSize / 2) + rippleY,\n left: -(rippleSize / 2) + rippleX\n };\n var childClassName = clsx(classes.child, leaving && classes.childLeaving, pulsate && classes.childPulsate);\n var handleExited = useEventCallback(onExited); // Ripple is used for user feedback (e.g. click or press) so we want to apply styles with the highest priority\n\n useEnhancedEffect(function () {\n if (!inProp) {\n // react-transition-group#onExit\n setLeaving(true); // react-transition-group#onExited\n\n var timeoutId = setTimeout(handleExited, timeout);\n return function () {\n clearTimeout(timeoutId);\n };\n }\n\n return undefined;\n }, [handleExited, inProp, timeout]);\n return /*#__PURE__*/React.createElement(\"span\", {\n className: rippleClassName,\n style: rippleStyles\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: childClassName\n }));\n}\n\nprocess.env.NODE_ENV !== \"production\" ? Ripple.propTypes = {\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object.isRequired,\n\n /**\n * @ignore - injected from TransitionGroup\n */\n in: PropTypes.bool,\n\n /**\n * @ignore - injected from TransitionGroup\n */\n onExited: PropTypes.func,\n\n /**\n * If `true`, the ripple pulsates, typically indicating the keyboard focus state of an element.\n */\n pulsate: PropTypes.bool,\n\n /**\n * Diameter of the ripple.\n */\n rippleSize: PropTypes.number,\n\n /**\n * Horizontal position of the ripple center.\n */\n rippleX: PropTypes.number,\n\n /**\n * Vertical position of the ripple center.\n */\n rippleY: PropTypes.number,\n\n /**\n * exit delay\n */\n timeout: PropTypes.number.isRequired\n} : void 0;\nexport default Ripple;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { TransitionGroup } from 'react-transition-group';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport Ripple from './Ripple';\nvar DURATION = 550;\nexport var DELAY_RIPPLE = 80;\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n overflow: 'hidden',\n pointerEvents: 'none',\n position: 'absolute',\n zIndex: 0,\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n borderRadius: 'inherit'\n },\n\n /* Styles applied to the internal `Ripple` components `ripple` class. */\n ripple: {\n opacity: 0,\n position: 'absolute'\n },\n\n /* Styles applied to the internal `Ripple` components `rippleVisible` class. */\n rippleVisible: {\n opacity: 0.3,\n transform: 'scale(1)',\n animation: \"$enter \".concat(DURATION, \"ms \").concat(theme.transitions.easing.easeInOut)\n },\n\n /* Styles applied to the internal `Ripple` components `ripplePulsate` class. */\n ripplePulsate: {\n animationDuration: \"\".concat(theme.transitions.duration.shorter, \"ms\")\n },\n\n /* Styles applied to the internal `Ripple` components `child` class. */\n child: {\n opacity: 1,\n display: 'block',\n width: '100%',\n height: '100%',\n borderRadius: '50%',\n backgroundColor: 'currentColor'\n },\n\n /* Styles applied to the internal `Ripple` components `childLeaving` class. */\n childLeaving: {\n opacity: 0,\n animation: \"$exit \".concat(DURATION, \"ms \").concat(theme.transitions.easing.easeInOut)\n },\n\n /* Styles applied to the internal `Ripple` components `childPulsate` class. */\n childPulsate: {\n position: 'absolute',\n left: 0,\n top: 0,\n animation: \"$pulsate 2500ms \".concat(theme.transitions.easing.easeInOut, \" 200ms infinite\")\n },\n '@keyframes enter': {\n '0%': {\n transform: 'scale(0)',\n opacity: 0.1\n },\n '100%': {\n transform: 'scale(1)',\n opacity: 0.3\n }\n },\n '@keyframes exit': {\n '0%': {\n opacity: 1\n },\n '100%': {\n opacity: 0\n }\n },\n '@keyframes pulsate': {\n '0%': {\n transform: 'scale(1)'\n },\n '50%': {\n transform: 'scale(0.92)'\n },\n '100%': {\n transform: 'scale(1)'\n }\n }\n };\n};\n/**\n * @ignore - internal component.\n *\n * TODO v5: Make private\n */\n\nvar TouchRipple = /*#__PURE__*/React.forwardRef(function TouchRipple(props, ref) {\n var _props$center = props.center,\n centerProp = _props$center === void 0 ? false : _props$center,\n classes = props.classes,\n className = props.className,\n other = _objectWithoutProperties(props, [\"center\", \"classes\", \"className\"]);\n\n var _React$useState = React.useState([]),\n ripples = _React$useState[0],\n setRipples = _React$useState[1];\n\n var nextKey = React.useRef(0);\n var rippleCallback = React.useRef(null);\n React.useEffect(function () {\n if (rippleCallback.current) {\n rippleCallback.current();\n rippleCallback.current = null;\n }\n }, [ripples]); // Used to filter out mouse emulated events on mobile.\n\n var ignoringMouseDown = React.useRef(false); // We use a timer in order to only show the ripples for touch \"click\" like events.\n // We don't want to display the ripple for touch scroll events.\n\n var startTimer = React.useRef(null); // This is the hook called once the previous timeout is ready.\n\n var startTimerCommit = React.useRef(null);\n var container = React.useRef(null);\n React.useEffect(function () {\n return function () {\n clearTimeout(startTimer.current);\n };\n }, []);\n var startCommit = React.useCallback(function (params) {\n var pulsate = params.pulsate,\n rippleX = params.rippleX,\n rippleY = params.rippleY,\n rippleSize = params.rippleSize,\n cb = params.cb;\n setRipples(function (oldRipples) {\n return [].concat(_toConsumableArray(oldRipples), [/*#__PURE__*/React.createElement(Ripple, {\n key: nextKey.current,\n classes: classes,\n timeout: DURATION,\n pulsate: pulsate,\n rippleX: rippleX,\n rippleY: rippleY,\n rippleSize: rippleSize\n })]);\n });\n nextKey.current += 1;\n rippleCallback.current = cb;\n }, [classes]);\n var start = React.useCallback(function () {\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var cb = arguments.length > 2 ? arguments[2] : undefined;\n var _options$pulsate = options.pulsate,\n pulsate = _options$pulsate === void 0 ? false : _options$pulsate,\n _options$center = options.center,\n center = _options$center === void 0 ? centerProp || options.pulsate : _options$center,\n _options$fakeElement = options.fakeElement,\n fakeElement = _options$fakeElement === void 0 ? false : _options$fakeElement;\n\n if (event.type === 'mousedown' && ignoringMouseDown.current) {\n ignoringMouseDown.current = false;\n return;\n }\n\n if (event.type === 'touchstart') {\n ignoringMouseDown.current = true;\n }\n\n var element = fakeElement ? null : container.current;\n var rect = element ? element.getBoundingClientRect() : {\n width: 0,\n height: 0,\n left: 0,\n top: 0\n }; // Get the size of the ripple\n\n var rippleX;\n var rippleY;\n var rippleSize;\n\n if (center || event.clientX === 0 && event.clientY === 0 || !event.clientX && !event.touches) {\n rippleX = Math.round(rect.width / 2);\n rippleY = Math.round(rect.height / 2);\n } else {\n var _ref = event.touches ? event.touches[0] : event,\n clientX = _ref.clientX,\n clientY = _ref.clientY;\n\n rippleX = Math.round(clientX - rect.left);\n rippleY = Math.round(clientY - rect.top);\n }\n\n if (center) {\n rippleSize = Math.sqrt((2 * Math.pow(rect.width, 2) + Math.pow(rect.height, 2)) / 3); // For some reason the animation is broken on Mobile Chrome if the size if even.\n\n if (rippleSize % 2 === 0) {\n rippleSize += 1;\n }\n } else {\n var sizeX = Math.max(Math.abs((element ? element.clientWidth : 0) - rippleX), rippleX) * 2 + 2;\n var sizeY = Math.max(Math.abs((element ? element.clientHeight : 0) - rippleY), rippleY) * 2 + 2;\n rippleSize = Math.sqrt(Math.pow(sizeX, 2) + Math.pow(sizeY, 2));\n } // Touche devices\n\n\n if (event.touches) {\n // check that this isn't another touchstart due to multitouch\n // otherwise we will only clear a single timer when unmounting while two\n // are running\n if (startTimerCommit.current === null) {\n // Prepare the ripple effect.\n startTimerCommit.current = function () {\n startCommit({\n pulsate: pulsate,\n rippleX: rippleX,\n rippleY: rippleY,\n rippleSize: rippleSize,\n cb: cb\n });\n }; // Delay the execution of the ripple effect.\n\n\n startTimer.current = setTimeout(function () {\n if (startTimerCommit.current) {\n startTimerCommit.current();\n startTimerCommit.current = null;\n }\n }, DELAY_RIPPLE); // We have to make a tradeoff with this value.\n }\n } else {\n startCommit({\n pulsate: pulsate,\n rippleX: rippleX,\n rippleY: rippleY,\n rippleSize: rippleSize,\n cb: cb\n });\n }\n }, [centerProp, startCommit]);\n var pulsate = React.useCallback(function () {\n start({}, {\n pulsate: true\n });\n }, [start]);\n var stop = React.useCallback(function (event, cb) {\n clearTimeout(startTimer.current); // The touch interaction occurs too quickly.\n // We still want to show ripple effect.\n\n if (event.type === 'touchend' && startTimerCommit.current) {\n event.persist();\n startTimerCommit.current();\n startTimerCommit.current = null;\n startTimer.current = setTimeout(function () {\n stop(event, cb);\n });\n return;\n }\n\n startTimerCommit.current = null;\n setRipples(function (oldRipples) {\n if (oldRipples.length > 0) {\n return oldRipples.slice(1);\n }\n\n return oldRipples;\n });\n rippleCallback.current = cb;\n }, []);\n React.useImperativeHandle(ref, function () {\n return {\n pulsate: pulsate,\n start: start,\n stop: stop\n };\n }, [pulsate, start, stop]);\n return /*#__PURE__*/React.createElement(\"span\", _extends({\n className: clsx(classes.root, className),\n ref: container\n }, other), /*#__PURE__*/React.createElement(TransitionGroup, {\n component: null,\n exit: true\n }, ripples));\n});\nprocess.env.NODE_ENV !== \"production\" ? TouchRipple.propTypes = {\n /**\n * If `true`, the ripple starts at the center of the component\n * rather than at the point of interaction.\n */\n center: PropTypes.bool,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object.isRequired,\n\n /**\n * @ignore\n */\n className: PropTypes.string\n} : void 0;\nexport default withStyles(styles, {\n flip: false,\n name: 'MuiTouchRipple'\n})( /*#__PURE__*/React.memo(TouchRipple));","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport * as ReactDOM from 'react-dom';\nimport clsx from 'clsx';\nimport { elementTypeAcceptingRef, refType } from '@material-ui/utils';\nimport useForkRef from '../utils/useForkRef';\nimport useEventCallback from '../utils/useEventCallback';\nimport deprecatedPropType from '../utils/deprecatedPropType';\nimport withStyles from '../styles/withStyles';\nimport useIsFocusVisible from '../utils/useIsFocusVisible';\nimport TouchRipple from './TouchRipple';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n WebkitTapHighlightColor: 'transparent',\n backgroundColor: 'transparent',\n // Reset default value\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0,\n border: 0,\n margin: 0,\n // Remove the margin in Safari\n borderRadius: 0,\n padding: 0,\n // Remove the padding in Firefox\n cursor: 'pointer',\n userSelect: 'none',\n verticalAlign: 'middle',\n '-moz-appearance': 'none',\n // Reset\n '-webkit-appearance': 'none',\n // Reset\n textDecoration: 'none',\n // So we take precedent over the style of a native element.\n color: 'inherit',\n '&::-moz-focus-inner': {\n borderStyle: 'none' // Remove Firefox dotted outline.\n\n },\n '&$disabled': {\n pointerEvents: 'none',\n // Disable link interactions\n cursor: 'default'\n },\n '@media print': {\n colorAdjust: 'exact'\n }\n },\n\n /* Pseudo-class applied to the root element if `disabled={true}`. */\n disabled: {},\n\n /* Pseudo-class applied to the root element if keyboard focused. */\n focusVisible: {}\n};\n/**\n * `ButtonBase` contains as few styles as possible.\n * It aims to be a simple building block for creating a button.\n * It contains a load of style reset and some focus/ripple logic.\n */\n\nvar ButtonBase = /*#__PURE__*/React.forwardRef(function ButtonBase(props, ref) {\n var action = props.action,\n buttonRefProp = props.buttonRef,\n _props$centerRipple = props.centerRipple,\n centerRipple = _props$centerRipple === void 0 ? false : _props$centerRipple,\n children = props.children,\n classes = props.classes,\n className = props.className,\n _props$component = props.component,\n component = _props$component === void 0 ? 'button' : _props$component,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled,\n _props$disableRipple = props.disableRipple,\n disableRipple = _props$disableRipple === void 0 ? false : _props$disableRipple,\n _props$disableTouchRi = props.disableTouchRipple,\n disableTouchRipple = _props$disableTouchRi === void 0 ? false : _props$disableTouchRi,\n _props$focusRipple = props.focusRipple,\n focusRipple = _props$focusRipple === void 0 ? false : _props$focusRipple,\n focusVisibleClassName = props.focusVisibleClassName,\n onBlur = props.onBlur,\n onClick = props.onClick,\n onFocus = props.onFocus,\n onFocusVisible = props.onFocusVisible,\n onKeyDown = props.onKeyDown,\n onKeyUp = props.onKeyUp,\n onMouseDown = props.onMouseDown,\n onMouseLeave = props.onMouseLeave,\n onMouseUp = props.onMouseUp,\n onTouchEnd = props.onTouchEnd,\n onTouchMove = props.onTouchMove,\n onTouchStart = props.onTouchStart,\n onDragLeave = props.onDragLeave,\n _props$tabIndex = props.tabIndex,\n tabIndex = _props$tabIndex === void 0 ? 0 : _props$tabIndex,\n TouchRippleProps = props.TouchRippleProps,\n _props$type = props.type,\n type = _props$type === void 0 ? 'button' : _props$type,\n other = _objectWithoutProperties(props, [\"action\", \"buttonRef\", \"centerRipple\", \"children\", \"classes\", \"className\", \"component\", \"disabled\", \"disableRipple\", \"disableTouchRipple\", \"focusRipple\", \"focusVisibleClassName\", \"onBlur\", \"onClick\", \"onFocus\", \"onFocusVisible\", \"onKeyDown\", \"onKeyUp\", \"onMouseDown\", \"onMouseLeave\", \"onMouseUp\", \"onTouchEnd\", \"onTouchMove\", \"onTouchStart\", \"onDragLeave\", \"tabIndex\", \"TouchRippleProps\", \"type\"]);\n\n var buttonRef = React.useRef(null);\n\n function getButtonNode() {\n // #StrictMode ready\n return ReactDOM.findDOMNode(buttonRef.current);\n }\n\n var rippleRef = React.useRef(null);\n\n var _React$useState = React.useState(false),\n focusVisible = _React$useState[0],\n setFocusVisible = _React$useState[1];\n\n if (disabled && focusVisible) {\n setFocusVisible(false);\n }\n\n var _useIsFocusVisible = useIsFocusVisible(),\n isFocusVisible = _useIsFocusVisible.isFocusVisible,\n onBlurVisible = _useIsFocusVisible.onBlurVisible,\n focusVisibleRef = _useIsFocusVisible.ref;\n\n React.useImperativeHandle(action, function () {\n return {\n focusVisible: function focusVisible() {\n setFocusVisible(true);\n buttonRef.current.focus();\n }\n };\n }, []);\n React.useEffect(function () {\n if (focusVisible && focusRipple && !disableRipple) {\n rippleRef.current.pulsate();\n }\n }, [disableRipple, focusRipple, focusVisible]);\n\n function useRippleHandler(rippleAction, eventCallback) {\n var skipRippleAction = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : disableTouchRipple;\n return useEventCallback(function (event) {\n if (eventCallback) {\n eventCallback(event);\n }\n\n var ignore = skipRippleAction;\n\n if (!ignore && rippleRef.current) {\n rippleRef.current[rippleAction](event);\n }\n\n return true;\n });\n }\n\n var handleMouseDown = useRippleHandler('start', onMouseDown);\n var handleDragLeave = useRippleHandler('stop', onDragLeave);\n var handleMouseUp = useRippleHandler('stop', onMouseUp);\n var handleMouseLeave = useRippleHandler('stop', function (event) {\n if (focusVisible) {\n event.preventDefault();\n }\n\n if (onMouseLeave) {\n onMouseLeave(event);\n }\n });\n var handleTouchStart = useRippleHandler('start', onTouchStart);\n var handleTouchEnd = useRippleHandler('stop', onTouchEnd);\n var handleTouchMove = useRippleHandler('stop', onTouchMove);\n var handleBlur = useRippleHandler('stop', function (event) {\n if (focusVisible) {\n onBlurVisible(event);\n setFocusVisible(false);\n }\n\n if (onBlur) {\n onBlur(event);\n }\n }, false);\n var handleFocus = useEventCallback(function (event) {\n // Fix for https://github.com/facebook/react/issues/7769\n if (!buttonRef.current) {\n buttonRef.current = event.currentTarget;\n }\n\n if (isFocusVisible(event)) {\n setFocusVisible(true);\n\n if (onFocusVisible) {\n onFocusVisible(event);\n }\n }\n\n if (onFocus) {\n onFocus(event);\n }\n });\n\n var isNonNativeButton = function isNonNativeButton() {\n var button = getButtonNode();\n return component && component !== 'button' && !(button.tagName === 'A' && button.href);\n };\n /**\n * IE 11 shim for https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/repeat\n */\n\n\n var keydownRef = React.useRef(false);\n var handleKeyDown = useEventCallback(function (event) {\n // Check if key is already down to avoid repeats being counted as multiple activations\n if (focusRipple && !keydownRef.current && focusVisible && rippleRef.current && event.key === ' ') {\n keydownRef.current = true;\n event.persist();\n rippleRef.current.stop(event, function () {\n rippleRef.current.start(event);\n });\n }\n\n if (event.target === event.currentTarget && isNonNativeButton() && event.key === ' ') {\n event.preventDefault();\n }\n\n if (onKeyDown) {\n onKeyDown(event);\n } // Keyboard accessibility for non interactive elements\n\n\n if (event.target === event.currentTarget && isNonNativeButton() && event.key === 'Enter' && !disabled) {\n event.preventDefault();\n\n if (onClick) {\n onClick(event);\n }\n }\n });\n var handleKeyUp = useEventCallback(function (event) {\n // calling preventDefault in keyUp on a \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","export var forceReflow = function forceReflow(node) {\n return node.scrollTop;\n};","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","/*!\n * jQuery JavaScript Library v3.6.4\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2023-03-08T15:28Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket trac-14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n\t\t// Support: Chrome <=57, Firefox <=52\n\t\t// In some browsers, typeof returns \"function\" for HTML elements\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\t\t// We don't want to classify *any* DOM node as a function.\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\n\t\t\ttypeof obj.item !== \"function\";\n\t};\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.6.4\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.10\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2023-02-14\n */\n( function( window ) {\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ( {} ).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpushNative = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[ i ] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" +\n\t\t\"ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5]\n\t\t// or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" +\n\t\twhitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trleadingCombinator = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace +\n\t\t\"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\treturn nonHex ?\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\tnonHex :\n\n\t\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t\t// Support: IE <=11+\n\t\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t\t// surrogate pair\n\t\t\thigh < 0 ?\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" +\n\t\t\t\tch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( ( target[ j++ ] = els[ i++ ] ) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t( nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\" ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rleadingCombinator.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\tif ( newContext !== context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split( \"|\" ),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[ i ] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( ( cur = cur.nextSibling ) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn ( name === \"input\" || name === \"button\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem && elem.namespaceURI,\n\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( preferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n\t// Safari 4 - 5 only, Opera <=11.6 - 12.x only\n\t// IE/Edge & older browsers don't support the :scope pseudo-class.\n\t// Support: Safari 6.0 only\n\t// Safari 6.0 supports :scope but it's an alias of :root there.\n\tsupport.scope = assert( function( el ) {\n\t\tdocElem.appendChild( el ).appendChild( document.createElement( \"div\" ) );\n\t\treturn typeof el.querySelectorAll !== \"undefined\" &&\n\t\t\t!el.querySelectorAll( \":scope fieldset div\" ).length;\n\t} );\n\n\t// Support: Chrome 105 - 110+, Safari 15.4 - 16.3+\n\t// Make sure the the `:has()` argument is parsed unforgivingly.\n\t// We include `*` in the test to detect buggy implementations that are\n\t// _selectively_ forgiving (specifically when the list includes at least\n\t// one valid selector).\n\t// Note that we treat complete lack of support for `:has()` as if it were\n\t// spec-compliant support, which is fine because use of `:has()` in such\n\t// environments will fail in the qSA path and fall back to jQuery traversal\n\t// anyway.\n\tsupport.cssHas = assert( function() {\n\t\ttry {\n\t\t\tdocument.querySelector( \":has(*,:jqfake)\" );\n\t\t\treturn false;\n\t\t} catch ( e ) {\n\t\t\treturn true;\n\t\t}\n\t} );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert( function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute( \"className\" );\n\t} );\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert( function( el ) {\n\t\tel.appendChild( document.createComment( \"\" ) );\n\t\treturn !el.getElementsByTagName( \"*\" ).length;\n\t} );\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[ \"TAG\" ] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[ \"CLASS\" ] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {\n\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert( function( el ) {\n\n\t\t\tvar input;\n\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll( \"[msallowcapture^='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"~=\" );\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t\t// Adding a temporary attribute to the document before the selection works\n\t\t\t// around the issue.\n\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\t\tinput = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"name\", \"\" );\n\t\t\tel.appendChild( input );\n\t\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\t\trbuggyQSA.push( \":checked\" );\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t\t}\n\n\t\t\t// Support: Firefox <=3.6 - 5 only\n\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\n\t\t\tel.querySelectorAll( \"\\\\\\f\" );\n\t\t\trbuggyQSA.push( \"[\\\\r\\\\n\\\\f]\" );\n\t\t} );\n\n\t\tassert( function( el ) {\n\t\t\tel.innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll( \"[name=d]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll( \":enabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: Opera 10 - 11 only\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll( \"*,:x\" );\n\t\t\trbuggyQSA.push( \",.*:\" );\n\t\t} );\n\t}\n\n\tif ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector ) ) ) ) {\n\n\t\tassert( function( el ) {\n\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t} );\n\t}\n\n\tif ( !support.cssHas ) {\n\n\t\t// Support: Chrome 105 - 110+, Safari 15.4 - 16.3+\n\t\t// Our regular `try-catch` mechanism fails to detect natively-unsupported\n\t\t// pseudo-classes inside `:has()` (such as `:has(:contains(\"Foo\"))`)\n\t\t// in browsers that parse the `:has()` argument as a forgiving selector list.\n\t\t// https://drafts.csswg.org/selectors/#relational now requires the argument\n\t\t// to be parsed unforgivingly, but browsers have not yet fully adjusted.\n\t\trbuggyQSA.push( \":has\" );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( \"|\" ) );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\n\t\t\t// Support: IE <9 only\n\t\t\t// IE doesn't have `contains` on `document` so we need to check for\n\t\t\t// `documentElement` presence.\n\t\t\t// We need to fall back to `a` when `documentElement` is missing\n\t\t\t// as `ownerDocument` of elements within `